00001
00002
00003
00004
00005
00006 #ifndef StMaker_H
00007 #include "StMaker.h"
00008 #endif
00009
00010 #ifndef STAR_StBemcTrigger
00011 #define STAR_StBemcTrigger
00012 #include "TObject.h"
00013
00014 #include "StMessMgr.h"
00015
00016 #define kNPatches 300
00017 #define kNJet 12
00018 #define kNTowers 4800
00019 #define k12bits 4096
00020 #define kN_sequences 25 //# TP inside a JP as defined by StEmcDecoder
00021
00022 class StEmcGeom;
00023 class StEmcDecoder;
00024 class StEvent;
00025 class StBemcTables;
00026
00027 struct emcTrigger
00028 {
00029
00030 short HTBits;
00031 short PatchStatus[kNPatches];
00032 short TowerStatus[kNTowers];
00033 short HT[kNPatches];
00034 short HTID[kNPatches];
00035 short Patch[kNPatches];
00036 short Jet[kNJet];
00037 short Et;
00038 };
00039
00040 class StBemcTrigger: public TObject
00041 {
00042 private:
00043
00044 StEmcGeom* mGeo;
00045 StEmcDecoder* mDecoder;
00046 StEvent* mEvent;
00047 StBemcTables* mTables;
00048 emcTrigger mTrigger;
00049
00050 int get2003Trigger();
00051 int get2004Trigger();
00052 int get2005Trigger();
00053 int get2006Trigger();
00054 void PatchMap();
00055
00056 int mIsTrig[50];
00057 int mTowJetId[50];
00058 int mDsmAdc[50];
00059 int mnumHT[12];
00060 int mnumJP[12];
00061 int mnumHTTP[6];
00062 int mHT12005array[kNTowers];
00063 int mJP12005array[kNJet];
00064 int mHT22005array[kNTowers];
00065 int mJP22005array[kNJet];
00066 int mJPSI2005adc[kNJet];
00067 int mJPSI2005id[kNJet];
00068 int mHT22006array[6][kNTowers];
00069 int mJP02006array[6][kNJet];
00070 int mJP12006array[6][kNJet];
00071 int mJPSI2006adc[6][kNJet];
00072 int mJPSI2006id[6][kNJet];
00073 int mHTTP2006arrayHT[6][kNPatches];
00074 int mHTTP2006arrayHTADC[6][kNPatches];
00075 int mHTTP2006arrayTP[6][kNPatches];
00076 int mHTTP2006arrayTPADC[6][kNPatches];
00077 int mBL12006arrayADC[kNJet];
00078
00079 int mIs2003HT1;
00080 int mIs2003HT2;
00081 int mIs2004HT1;
00082 int mIs2004JP1;
00083 int mIs2004HT2;
00084 int mIs2004JP2;
00085 int mIs2005HT1;
00086 int mIs2005JP1;
00087 int mIs2005HT2;
00088 int mIs2005JP2;
00089 int mIs2005ADJ;
00090 int mIs2005JPSI;
00091 int mIs2006HT2[6];
00092 int mIs2006JP0[6];
00093 int mIs2006JP1[6];
00094 int mIs2006JPSI[6];
00095 int mIs2006BHTTP[6];
00096
00097 int HT1_ID_2003;
00098 int HT2_ID_2003;
00099 int HT1_ID_2004;
00100 int HT2_ID_2004;
00101 int JP1_ID_2004;
00102 int JP2_ID_2004;
00103 int HT1_ID_2005;
00104 int HT2_ID_2005;
00105 int JP1_ID_2005;
00106 int JP2_ID_2005;
00107 int ADJ_ID_2005;
00108 int HT2_ID_2006[6];
00109 int JP0_ID_2006[6];
00110 int JP1_ID_2006[6];
00111
00112 int HT1_DSM_2003;
00113 int HT2_DSM_2003;
00114 int HT1_DSM_2004;
00115 int HT2_DSM_2004;
00116 int JP1_DSM_2004;
00117 int JP2_DSM_2004;
00118 int HT1_DSM_2005;
00119 int HT2_DSM_2005;
00120 int JP1_DSM_2005;
00121 int JP2_DSM_2005;
00122 int ADJ_DSM_2005;
00123 int HT2_DSM_2006[6];
00124 int JP0_DSM_2006[6];
00125 int JP1_DSM_2006[6];
00126 int JP_TP[12][25];
00127 int BETOT_DSM_2006;
00128
00129 int numHT1_2005;
00130 int numHT2_2005;
00131 int numJP1_2005;
00132 int numJP2_2005;
00133 int numADJ_2005;
00134 int numHT2_2006[6];
00135 int numJP0_2006[6];
00136 int numJP1_2006[6];
00137 int numHTTP_2006[6];
00138
00139 int HT1_2005_array[kNTowers];
00140 int HT2_2005_array[kNTowers];
00141 int JP1_2005_array[kNJet];
00142 int JP2_2005_array[kNJet];
00143 int JPSI_2005_ADC[kNJet];
00144 int JPSI_2005_ID[kNJet];
00145 int HT2_2006_array[6][kNTowers];
00146 int JP0_2006_array[6][kNJet];
00147 int JP1_2006_array[6][kNJet];
00148 int JPSI_2006_ADC[6][kNJet];
00149 int JPSI_2006_ID[6][kNJet];
00150 int BHTTP_2006_HT[6][kNPatches];
00151 int BHTTP_2006_HT_ADC[6][kNPatches];
00152 int BHTTP_2006_TP[6][kNPatches];
00153 int BHTTP_2006_TP_ADC[6][kNPatches];
00154 int BL1_ADC_2006[kNJet/2];
00155
00156 public:
00157
00158
00159 StBemcTrigger();
00160 virtual ~StBemcTrigger();
00161
00162 int makeTrigger();
00163 void zero();
00164 void resetConf();
00165 void setEvent(StEvent* e) { mEvent = e; }
00166 void setPrint(bool a) {
00167 LOG_INFO << "::setPrint() is obsolete. Use logger config file to set verbosity instead." << endm;
00168 }
00169 void setTableMaker(StBemcTables *tab) { mTables =tab; }
00170
00171
00172 int* isTrigEvent() { return mIsTrig; }
00173
00174 int* getTowPatchId() { return mTowJetId; }
00175
00176 int* getTowPatchDSM() { return mDsmAdc; }
00177 int* getNHT() { return mnumHT; }
00178 int* getNJP() { return mnumJP; }
00179 int* getNHTTP() { return numHTTP_2006; }
00180 int* getHT12005array() { return mHT12005array; }
00181 int* getHT22005array() { return mHT22005array; }
00182 int* getJP12005array(){ return mJP12005array; }
00183 int* getJP22005array() { return mJP22005array; }
00184 int* getJPSI2005adc() { return mJPSI2005adc; }
00185 int* getJPSI2005id() { return mJPSI2005id; }
00186 int* getBL12006arrayADC() { return mBL12006arrayADC; }
00187 int getHT22006array(int i,int j) { return mHT22006array[i][j]; }
00188 int getJP02006array(int i,int j) { return mJP02006array[i][j]; }
00189 int getJP12006array(int i,int j) { return mJP12006array[i][j]; }
00190 int getJPSI2006adc(int i,int j) { return mJPSI2006adc[i][j]; }
00191 int getJPSI2006id(int i,int j) { return mJPSI2006id[i][j]; }
00192 int getHTTP2006arrayHT(int i, int j) { return mHTTP2006arrayHT[i][j]; }
00193 int getHTTP2006arrayHTADC(int i, int j) { return mHTTP2006arrayHTADC[i][j]; }
00194 int getHTTP2006arrayTP(int i, int j) { return mHTTP2006arrayTP[i][j]; }
00195 int getHTTP2006arrayTPADC(int i, int j) { return mHTTP2006arrayTPADC[i][j]; }
00196
00197 emcTrigger getTrigger() { return mTrigger; }
00198 const StEmcDecoder* decoder() const { return mDecoder; }
00199
00200 int trgPatch[300];
00201
00202 ClassDef(StBemcTrigger, 1)
00203 };
00204
00205 #endif
00206
00207