00001 #ifndef TGEMPROC_H 00002 #define TGEMPROC_H 00003 00004 #include "TRocProc.h" 00005 #include "TGEMEvent.h" 00006 #include "TGEMParam.h" 00007 #include "TBeamMonitorEvent.h" 00008 #include "TFiberHodEvent.h" 00009 #include "TCBMBeamtimeProc.h" 00010 #include "TGo4WinCond.h" 00011 00012 #include "TH1.h" 00013 #include "TH2.h" 00014 00015 class TRocEvent; 00016 00017 //#define _GEM_MAP_DEBUG_ 1 00018 00019 00020 class TGEMProc : public TCBMBeamtimeProc { 00021 public: 00022 00023 TGEMProc(const char* name = 0); 00024 virtual ~TGEMProc(); 00025 00026 00027 virtual void InitEvent(TGo4EventElement*); 00028 00029 /* this is the main processing function here*/ 00030 virtual void FinalizeEvent(); 00031 00032 00033 protected: 00034 00035 Bool_t IsGEM(TRocMessageExtended& msg); 00036 00037 00038 Bool_t GEM_Map(Int_t rocid, Int_t nxid, Int_t nxCh, Int_t &gemno, Int_t &xpos, Int_t &ypos); 00039 00040 void Init_GEM_Map(); 00041 00042 TH1* fratio0_evt; //eff 00043 TH1* fcellMult_evt; //eff 00044 TH1* fGEMtm[NUM_GEM_STATIONS]; 00045 TGo4WinCond* fGEMtmGate[NUM_GEM_STATIONS]; 00046 00047 TH1* fGEM_adc_corrected[NUM_GEM_STATIONS]; 00048 TH1* fGEM_adc[NUM_GEM_STATIONS]; 00049 00050 TH2* fGEM_Map[NUM_GEM_STATIONS]; 00051 TH2* fGEM_Map_Time[NUM_GEM_STATIONS]; 00052 TH2* fGEM_Map_Adc[NUM_GEM_STATIONS]; 00053 TH2* fGEM_Map_Adc_Time[NUM_GEM_STATIONS]; 00054 00055 TH1* fGEM_Strip[NUM_GEM_STATIONS]; 00056 TH1* fGEM_Strip_Time[NUM_GEM_STATIONS]; 00057 TH1* fGEM_Strip_Adc[NUM_GEM_STATIONS]; 00058 TH1* fGEM_Strip_Adc_Time[NUM_GEM_STATIONS]; 00059 00060 TH2* fMappingSource[NUM_GEM_STATIONS]; 00061 00062 TGEMParam * fPar; 00063 00065 TRocEvent * fRocInputEvent; 00066 00067 static UChar_t fGEMRocIds[NUM_GEM_ROCS*NUM_GEM_STATIONS]; 00068 static UChar_t fGEMRocStripStation; 00069 static UChar_t fGEMROCStripNx; 00070 00071 static Int_t fGEM_Y_BoundariesLeft[NUM_GEM_Y]; 00072 static Int_t fGEM_Y_PeriodLeft[NUM_GEM_Y]; 00073 static Int_t fGEM_Y_ShiftLeft[NUM_GEM_Y]; 00074 00075 static Int_t fGEM_Y_BoundariesRight[NUM_GEM_Y]; 00076 static Int_t fGEM_Y_PeriodRight[NUM_GEM_Y]; 00077 static Int_t fGEM_Y_ShiftRight[NUM_GEM_Y]; 00078 00079 Int_t fGEM_X[NUM_GEM_ROCS][NUM_GEM_NX][NUM_GEM_CH]; 00080 Int_t fGEM_Y[NUM_GEM_ROCS][NUM_GEM_NX][NUM_GEM_CH]; 00081 00082 00083 00084 TGEMEvent * fOutputEvent; 00085 00086 TBeamMonitorEvent* fBeamEvent; 00087 TFiberHodEvent* fFiberHodEvent1; 00088 TFiberHodEvent* fFiberHodEvent2; 00089 00090 protected: 00091 00092 00093 ClassDef(TGEMProc,1) 00094 }; 00095 00096 #endif //TUNPACKPROCESSOR_H 00097