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
00035
00036 #ifndef STAR_StEmcTriggerMaker
00037 #define STAR_StEmcTriggerMaker
00038
00039 #ifndef StMaker_H
00040 #include "StMaker.h"
00041 #endif
00042 #include <TH1.h>
00043 #include <TH2.h>
00044 #include "emc_def.h"
00045 #include "StBemcTrigger.h"
00046 #include "StEmcUtil/database/StBemcTables.h"
00047 #include "StMessMgr.h"
00048
00049 #include <map>
00050 using namespace std;
00051
00052 #define kNPatches 300
00053 #define kNJet 12
00054 #define kNTowers 4800
00055 #define k12bits 4096
00056
00057 class StEvent;
00058 class St_db_Maker;
00059
00060 class StEmcTriggerMaker : public StMaker
00061 {
00062 private:
00063 StBemcTrigger* mBemcTrigger;
00064
00065 int isTrig[50];
00066 int TowJetId[50];
00067 int DsmAdc[50];
00068 int numHT[12];
00069 int numJP[12];
00070 int numHTTP[6];
00071 int HT12005array[kNTowers];
00072 int HT22005array[kNTowers];
00073 int JP12005array[kNJet];
00074 int JP22005array[kNJet];
00075 int JPSI2005adc[kNJet];
00076 int JPSI2005id[kNJet];
00077 int BL12006arrayADC[kNJet/2];
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 mIs2006JP0[6];
00092 int mIs2006HT2[6];
00093 int mIs2006JP1[6];
00094 int mIs2006JPSI[6];
00095 int mIs2006HTTP[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 BETOT_DSM_2006;
00127
00128 int numHT1_2005;
00129 int numHT2_2005;
00130 int numJP1_2005;
00131 int numJP2_2005;
00132 int numADJ_2005;
00133 int HT1_2005_array[kNTowers];
00134 int HT2_2005_array[kNTowers];
00135 int JP1_2005_array[kNJet];
00136 int JP2_2005_array[kNJet];
00137 int ADJ_2005_array[kNJet];
00138 int JPSI_2005_ADC[kNJet];
00139 int JPSI_2005_ID[kNJet];
00140 int numHT2_2006[6];
00141 int numJP0_2006[6];
00142 int numJP1_2006[6];
00143 int HT2_2006_array[6][kNTowers];
00144 int JP0_2006_array[6][kNJet];
00145 int JP1_2006_array[6][kNJet];
00146 int JPSI_2006_ADC[6][kNJet];
00147 int JPSI_2006_ID[6][kNJet];
00148 int numHTTP_2006[6];
00149 int HTTP_2006_arrayTP[6][kNPatches];
00150 int HTTP_2006_arrayHT[6][kNPatches];
00151 int HTTP_2006_arrayTP_ADC[6][kNPatches];
00152 int HTTP_2006_arrayHT_ADC[6][kNPatches];
00153 int BL1_2006_arrayADC[kNJet/2];
00154
00155 protected:
00156 public:
00157 StEmcTriggerMaker(const char *name="bemctrigger");
00158 virtual ~StEmcTriggerMaker();
00159
00160 virtual Int_t Init();
00161 virtual Int_t Make();
00162 virtual Int_t Finish();
00163
00164 void fillStEvent(StEvent*);
00165 void saveHistograms(char*);
00166
00167 void set2006Trigger(int);
00168
00170 int isTrigger(int trigId);
00172 int barrelTowerThreshold(int trigId, int softId=1);
00174 int barrelTriggerPatchThreshold(int trigId, int patchId=1);
00176 int barrelJetPatchThreshold(int trigId, int patchId=1);
00179
00181 map<int,int> barrelTowersAboveThreshold(int trigId);
00183 map<int,int> barrelTriggerPatchesAboveThreshold(int trigId);
00185 map<int,int> barrelJetPatchesAboveThreshold(int trigId);
00186
00187 int barrelTriggerPatchForTower(int softId);
00188
00189 int endcapTowerThreshold(int trigId);
00190 int endcapTriggerPatchThreshold(int trigId);
00191 int endcapJetPatchThreshold(int trigId);
00192
00193 map<int,int> endcapTowersAboveThreshold(int trigId);
00194 map<int,int> endcapTriggerPatchesAboveThreshold(int trigId);
00195 map<int,int> endcapJetPatchesAboveThreshold(int trigId);
00196
00198 int totalEnergyThreshold(int trigId);
00200 int totalEnergy();
00201
00202
00203 int is2003HT1() {return mIs2003HT1;}
00204 int is2003HT2() {return mIs2003HT2;}
00205 int is2004HT1() {return mIs2004HT1;}
00206 int is2004HT2() {return mIs2004HT2;}
00207 int is2004JP1() {return mIs2004JP1;}
00208 int is2004JP2() {return mIs2004JP2;}
00209 int is2005HT1() {return mIs2005HT1;}
00210 int is2005HT2() {return mIs2005HT2;}
00211 int is2005JP1() {return mIs2005JP1;}
00212 int is2005JP2() {return mIs2005JP2;}
00213 int is2005ADJ() {return mIs2005ADJ;}
00214 int is2005JPSI() {return mIs2005JPSI;}
00215
00216 int get2003HT1_ID() {return HT1_ID_2003;}
00217 int get2003HT2_ID() {return HT2_ID_2003;}
00218 int get2004HT1_ID() {return HT1_ID_2004;}
00219 int get2004HT2_ID() {return HT2_ID_2004;}
00220 int get2004JP1_ID() {return JP1_ID_2004;}
00221 int get2004JP2_ID() {return JP2_ID_2004;}
00222 int get2005HT1_ID() {return HT1_ID_2005;}
00223 int get2005HT2_ID() {return HT2_ID_2005;}
00224 int get2005JP1_ID() {return JP1_ID_2005;}
00225 int get2005JP2_ID() {return JP2_ID_2005;}
00226 int get2005ADJ_ID() {return ADJ_ID_2005;}
00227
00228 int get2003HT1_ADC() {return HT1_DSM_2003;}
00229 int get2003HT2_ADC() {return HT2_DSM_2003;}
00230 int get2004HT1_ADC() {return HT1_DSM_2004;}
00231 int get2004HT2_ADC() {return HT2_DSM_2004;}
00232 int get2004JP1_ADC() {return JP1_DSM_2004;}
00233 int get2004JP2_ADC() {return JP2_DSM_2004;}
00234 int get2005HT1_ADC() {return HT1_DSM_2005;}
00235 int get2005HT2_ADC() {return HT2_DSM_2005;}
00236 int get2005JP1_ADC() {return JP1_DSM_2005;}
00237 int get2005JP2_ADC() {return JP2_DSM_2005;}
00238 int get2005ADJ_ADC() {return ADJ_DSM_2005;}
00239
00240 void get2005HT1_TOWS(int, int*);
00241 void get2005HT2_TOWS(int, int*);
00242 int get2005HT1_NTOWS() {return numHT1_2005;}
00243 int get2005HT2_NTOWS() {return numHT2_2005;}
00244
00245 void get2005JP1_PATCHES(int, int*);
00246 void get2005JP2_PATCHES(int, int*);
00247 int get2005JP1_NPATCHES() {return numJP1_2005;}
00248 int get2005JP2_NPATCHES() {return numJP2_2005;}
00249
00250 void get2005JPSI_ADC(int, int*);
00251 void get2005JPSI_ID(int, int*);
00252 void get2006BL1_ADC(int, int*);
00253
00254
00255 StBemcTrigger* getTrigger()
00256 {
00257 return mBemcTrigger;
00258 }
00259
00260 void setDbMaker(St_db_Maker *dbMk)
00261 {
00262
00263
00264
00265 }
00266
00267 StBemcTables* tables;
00268
00269 void setTableMaker(StBemcTables *bemcTab)
00270 {
00271 mBemcTrigger->setTableMaker(bemcTab);
00272 }
00273
00274 int trigPatch[300];
00275
00276 ClassDef(StEmcTriggerMaker,0)
00277 };
00278 #endif