00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047 #include "StCtbTriggerDetector.h"
00048 #include "tables/St_dst_TrgDet_Table.h"
00049 #include "StTriggerData.h"
00050
00051 static const char rcsid[] = "$Id: StCtbTriggerDetector.cxx,v 2.11 2009/04/16 15:23:10 ullrich Exp $";
00052
00053 ClassImp(StCtbTriggerDetector)
00054
00055 StCtbTriggerDetector::StCtbTriggerDetector()
00056 {
00057 memset(mBeg,0,mEnd-mBeg);
00058 }
00059
00060 StCtbTriggerDetector::StCtbTriggerDetector(const dst_TrgDet_st& t)
00061 {
00062 memset(mBeg,0,mEnd-mBeg);
00063 int i, j, k;
00064 for(i=0; i<mMaxTrays; i++) {
00065 for(j=0; j<mMaxSlats; j++) {
00066 for(k=0; k<mMaxEventSamples; k++) {
00067 mMips[i][j][k] = t.nCtb[i][j][k];
00068 mTime[i][j][k] = t.timeCtb[i][j][k];
00069 }
00070 }
00071 }
00072 for(i=0; i<mMaxAux; i++) {
00073 for(j=0; j<mMaxEventSamples; j++) {
00074 mAux[i][j] = t.ctbaux[i][j];
00075 }
00076 }
00077 mNumberOfPreSamples = t.npre;
00078 mNumberOfPostSamples = t.npost;
00079 }
00080
00081 StCtbTriggerDetector::StCtbTriggerDetector(const StTriggerData& t)
00082 {
00083 memset(mBeg,0,mEnd-mBeg);
00084 int evtmap[mMaxEventSamples] = {0, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5};
00085 int i, j, k, evt;
00086
00087 for(i=0; i<mMaxTrays; i++) {
00088 for(j=0; j<mMaxSlats; j++) {
00089
00090
00091 for(k=0; k<1; k++) {
00092 evt = evtmap[k];
00093 mMips[i][j][k] = t.ctbTraySlat(i,j,evt);
00094
00095
00096
00097
00098 }
00099 }
00100 }
00101 mNumberOfPreSamples = 5;
00102 mNumberOfPostSamples = 5;
00103 }
00104
00105 StCtbTriggerDetector::~StCtbTriggerDetector() {}
00106
00107 unsigned int
00108 StCtbTriggerDetector::numberOfTrays() const {return mMaxTrays;}
00109
00110 unsigned int
00111 StCtbTriggerDetector::numberOfSlats() const {return mMaxSlats;}
00112
00113 unsigned int
00114 StCtbTriggerDetector::numberOfAuxWords() const {return mMaxAux;}
00115
00116 unsigned int
00117 StCtbTriggerDetector::numberOfPreSamples() const {return mNumberOfPreSamples;}
00118
00119 unsigned int
00120 StCtbTriggerDetector::numberOfPostSamples() const {return mNumberOfPostSamples;}
00121
00122 float
00123 StCtbTriggerDetector::mips(unsigned int i, unsigned int j, unsigned int k) const
00124 {
00125 return mMips[i][j][k];
00126 }
00127
00128 double
00129 StCtbTriggerDetector::mips(unsigned int evt) const
00130 {
00131 double sum = 0;
00132 for (unsigned int i=0; i<mMaxTrays; i++)
00133 for (unsigned int j=0; j<mMaxSlats; j++)
00134 sum += mMips[i][j][evt];
00135 return sum;
00136 }
00137
00138 char
00139 StCtbTriggerDetector::time(unsigned int i, unsigned int j, unsigned int k) const
00140 {
00141 return mTime[i][j][k];
00142 }
00143
00144 float
00145 StCtbTriggerDetector::aux(unsigned int i, unsigned int j) const
00146 {
00147 return mAux[i][j];
00148 }
00149
00150 void
00151 StCtbTriggerDetector::setMips(unsigned int i, unsigned int j, unsigned int k, float val)
00152 {
00153 mMips[i][j][k] = val;
00154 }
00155
00156 void
00157 StCtbTriggerDetector::setTime(unsigned int i, unsigned int j, unsigned int k, char val)
00158 {
00159 mTime[i][j][k] = val;
00160 }
00161
00162 void
00163 StCtbTriggerDetector::setAux(unsigned int i, unsigned int j, float val)
00164 {
00165 mAux[i][j] = val;
00166 }
00167
00168 void
00169 StCtbTriggerDetector::setNumberOfPreSamples(unsigned int val)
00170 {
00171 mNumberOfPreSamples = val;
00172 }
00173
00174 void
00175 StCtbTriggerDetector::setNumberOfPostSamples(unsigned int val)
00176 {
00177 mNumberOfPostSamples = val;
00178 }
00179