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 #include <algorithm>
00027 #include "StEmcTriggerDetector.h"
00028 #include "tables/St_dst_TrgDet_Table.h"
00029 #include "StTriggerData.h"
00030
00031 static const char rcsid[] = "$Id: StEmcTriggerDetector.cxx,v 2.4 2007/07/11 23:06:45 perev Exp $";
00032
00033 ClassImp(StEmcTriggerDetector)
00034
00035 StEmcTriggerDetector::StEmcTriggerDetector()
00036 {
00037 memset(mBeg,0,mEnd-mBeg);
00038 }
00039
00040 StEmcTriggerDetector::StEmcTriggerDetector(const dst_TrgDet_st& t)
00041 {
00042 memset(mBeg,0,mEnd-mBeg);
00043 for(int i=0; i<mNPatch; i++) {
00044 mHighTower[i]=static_cast<char>(t.emcHiTower[i]);
00045 mPatch[i]=static_cast<char>(t.emcTrigPatch[i]);
00046 }
00047 }
00048
00049 StEmcTriggerDetector::StEmcTriggerDetector(const StTriggerData &trg_dat)
00050 {
00051 memset(mBeg,0,mEnd-mBeg);
00052 for(int i=0; i<mNPatch; i++) {
00053 mHighTower[i]=trg_dat.bemcHighTower(i);
00054 mPatch[i]=trg_dat.bemcJetPatch(i);
00055 }
00056 for(int i=0; i<mENPatch; i++) {
00057 mEHighTower[i]=trg_dat.eemcHighTower(i);
00058 mEPatch[i]=trg_dat.eemcJetPatch(i);
00059 }
00060 for(int i=0; i<mNBemcLayer1; i++)
00061 mBemcLayer1[i]=trg_dat.bemcLayer1DSM(i);
00062 for(int i=0; i<mNEemcLayer1; i++)
00063 mEemcLayer1[i]=trg_dat.eemcLayer1DSM(i);
00064 for(int i=0; i<mNEmcLayer2; i++)
00065 mEmcLayer2[i]=trg_dat.emcLayer2DSM(i);
00066 }
00067
00068 StEmcTriggerDetector::~StEmcTriggerDetector() {}
00069
00070 int
00071 StEmcTriggerDetector::numberOfTowers() const {return mNPatch;}
00072
00073 int
00074 StEmcTriggerDetector::highTower(unsigned int i) const
00075 {
00076 if (i < mNPatch)
00077 return static_cast<int>(mHighTower[i]);
00078 else
00079 return 0;
00080 }
00081
00082 int
00083 StEmcTriggerDetector::patch(unsigned int i) const
00084 {
00085 if (i < mNPatch)
00086 return static_cast<int>(mPatch[i]);
00087 else
00088 return 0;
00089 }
00090
00091 int
00092 StEmcTriggerDetector::highTowerEndcap(unsigned int i) const
00093 {
00094 if (i < mENPatch)
00095 return static_cast<int>(mEHighTower[i]);
00096 else
00097 return 0;
00098 }
00099
00100 int
00101 StEmcTriggerDetector::patchEndcap(unsigned int i) const
00102 {
00103 if (i < mENPatch)
00104 return static_cast<int>(mEPatch[i]);
00105 else
00106 return 0;
00107 }
00108
00109 unsigned short StEmcTriggerDetector::bemcLayer1(int idx) const {
00110 if (idx>=0 && idx<mNBemcLayer1)
00111 return mBemcLayer1[idx];
00112 return 0;
00113 }
00114
00115 unsigned short StEmcTriggerDetector::eemcLayer1(int idx) const {
00116 if (idx>=0 && idx<mNEemcLayer1)
00117 return mEemcLayer1[idx];
00118 return 0;
00119 }
00120
00121 unsigned short StEmcTriggerDetector::emcLayer2(int idx) const {
00122 if (idx>=0 && idx<mNEmcLayer2)
00123 return mEmcLayer2[idx];
00124 return 0;
00125 }
00126
00127 void
00128 StEmcTriggerDetector::setHighTower(unsigned int i, int val)
00129 {
00130 if (i < mNPatch)
00131 mHighTower[i] = static_cast<char>(val);
00132 }
00133
00134 void
00135 StEmcTriggerDetector::setPatch(unsigned int i, int val)
00136 {
00137 if (i < mNPatch)
00138 mPatch[i] = static_cast<char>(val);
00139 }
00140
00141 void
00142 StEmcTriggerDetector::setHighTowerEndcap(unsigned int i, int val)
00143 {
00144 if (i < mENPatch)
00145 mEHighTower[i] = static_cast<char>(val);
00146 }
00147
00148 void
00149 StEmcTriggerDetector::setPatchEndcap(unsigned int i, int val)
00150 {
00151 if (i < mENPatch)
00152 mEPatch[i] = static_cast<char>(val);
00153 }