00001 #ifndef TMATCHINGPROC_H 00002 #define TMATCHINGPROC_H 00003 00004 #include "TGsiAug12Analysis.h" 00005 #include "TCBMBeamtimeProc.h" 00006 #include "GenericDefines.h" 00007 00008 #include "MBSUNPACK/TMbsCrateEvent.h" 00009 #include "TTriglogEvent.h" 00010 #include "VFTX/TVftxEvent.h" 00011 #include "RPC/TRpcEvent.h" 00012 #include "PLASTICS/TPlasticsEvent.h" 00013 #include "SCALERS/TScalersEvent.h" 00014 00015 #include "TMatchingEvent.h" 00016 #include "TMatchingParam.h" 00017 00018 #include "TGsiAug12Param.h" 00019 #include "RPC/TRpcParam.h" 00020 #include "PLASTICS/TPlasticsParam.h" 00021 00022 #include "TGo4Picture.h" 00023 #include "TH1.h" 00024 #include "TH2.h" 00025 #include "TH3.h" 00026 #include "TProfile.h" 00027 00028 class TGo4EventElement; 00029 class TGo4MbsSubEvent; 00030 class TLatex; 00031 00032 class TMatchingProc : public TCBMBeamtimeProc { 00033 // friend class TCBMBeamtimeProc; 00034 public: 00035 TMatchingProc(const char* name = 0); 00036 virtual ~TMatchingProc(); 00037 00038 virtual void InitEvent(TGo4EventElement*); 00039 00040 virtual void FinalizeEvent(); 00041 private: 00042 00043 00044 protected: 00045 TMatchingParam * fPar; 00046 TMbsCrateEvent * fCrateInputEvent; 00047 TTriglogEvent * fTriglogInputEvent; 00048 TVftxEvent * fVftxInputEvent; 00049 TRpcEvent * fRpcInputEvent[NB_RPC]; 00050 TPlasticsEvent * fPlasticsInputEvent[NB_PLASTICS]; 00051 00052 TScalersEvent * fScalersInputEvent; 00053 00054 TMatchingEvent * fOutputEvent; 00055 00056 TGsiAug12Param * fParAnalysis; 00057 TRpcParam * fParRpc[NB_RPC]; 00058 TPlasticsParam * fParPlastics[NB_PLASTICS]; 00059 protected: 00060 // Single RPC 00061 TH2 * fSingleEvtClusterPosDisplay[NB_RPC]; 00062 TH2 * fRpcStrLeftRightTotAllData[NB_RPC]; 00063 TH2 * fRpcStrLeftRightTotSingleTdcData[NB_RPC]; 00064 00065 // RPC - RPC 00066 TH2 * fMulRpc1MulRpc2[ NB_RPC * (NB_RPC - 1)/2]; 00067 00068 // Multiplicity 1-1 events: 00069 TH2 * fXMatchingMul1[ NB_RPC * (NB_RPC - 1)/2]; 00070 TH2 * fYMatchingMul1[ NB_RPC * (NB_RPC - 1)/2]; 00071 TH2 * fMatchingMul1[ NB_RPC * (NB_RPC - 1)/2]; 00072 00073 TH2 * fXMatchingMul1StripRpc1[ NB_RPC * (NB_RPC - 1)/2]; 00074 TH2 * fYMatchingMul1StripRpc1[ NB_RPC * (NB_RPC - 1)/2]; 00075 TH3 * fMatchingMul1StripRpc1[ NB_RPC * (NB_RPC - 1)/2]; 00076 TH2 * fXMatchingMul1DtRpc1[ NB_RPC * (NB_RPC - 1)/2]; 00077 TH2 * fYMatchingMul1DtRpc1[ NB_RPC * (NB_RPC - 1)/2]; 00078 TH2 * fTMatchingMul1StripRpc1[ NB_RPC * (NB_RPC - 1)/2]; 00079 TH2 * fTMatchingMul1DtRpc1[ NB_RPC * (NB_RPC - 1)/2]; 00080 TH3 * fTMatchingMul1StripTotLeftRpc1[ NB_RPC * (NB_RPC - 1)/2]; 00081 TH3 * fTMatchingMul1StripTotRighRpc1[ NB_RPC * (NB_RPC - 1)/2]; 00082 00083 TH2 * fXMatchingMul1StripRpc2[ NB_RPC * (NB_RPC - 1)/2]; 00084 TH2 * fYMatchingMul1StripRpc2[ NB_RPC * (NB_RPC - 1)/2]; 00085 TH3 * fMatchingMul1StripRpc2[ NB_RPC * (NB_RPC - 1)/2]; 00086 TH2 * fXMatchingMul1DtRpc2[ NB_RPC * (NB_RPC - 1)/2]; 00087 TH2 * fYMatchingMul1DtRpc2[ NB_RPC * (NB_RPC - 1)/2]; 00088 TH2 * fTMatchingMul1StripRpc2[ NB_RPC * (NB_RPC - 1)/2]; 00089 TH2 * fTMatchingMul1DtRpc2[ NB_RPC * (NB_RPC - 1)/2]; 00090 TH3 * fTMatchingMul1StripTotLeftRpc2[ NB_RPC * (NB_RPC - 1)/2]; 00091 TH3 * fTMatchingMul1StripTotRighRpc2[ NB_RPC * (NB_RPC - 1)/2]; 00092 00093 TH1 * fDtMul1[ NB_RPC * (NB_RPC - 1)/2]; 00094 00095 // Multiplicity 1-X, X-1 events: 00096 TH2 * fMatchingMul1Rpc1[ NB_RPC * (NB_RPC - 1)/2]; 00097 TH2 * fMatchingMul1Rpc2[ NB_RPC * (NB_RPC - 1)/2]; 00098 00099 // Multiplicity 1-1, 2-1, 1-2, 2-2 events: 00100 TH2 * fXMatchingMul2[ NB_RPC * (NB_RPC - 1)/2]; 00101 TH2 * fYMatchingMul2[ NB_RPC * (NB_RPC - 1)/2]; 00102 TH2 * fMatchingMul2[ NB_RPC * (NB_RPC - 1)/2]; 00103 00104 // Multiplicity 2-1, 1-2 events: 00105 TH2 * fRpc1M1Rpc2R1R2[ NB_RPC * (NB_RPC - 1)/2]; 00106 TH2 * fRpc2M1Rpc1R1R2[ NB_RPC * (NB_RPC - 1)/2]; 00107 00108 // Multiplicity X-Y events: 00109 TH2 * fBestDistanceRpc1Index[ NB_RPC * (NB_RPC - 1)/2]; 00110 TH2 * fBestDistanceRpc2Index[ NB_RPC * (NB_RPC - 1)/2]; 00111 TH2 * fNbRpc2MatchingVsRpc1Index[ NB_RPC * (NB_RPC - 1)/2]; 00112 TH2 * fNbRpc1MatchingVsRpc2Index[ NB_RPC * (NB_RPC - 1)/2]; 00113 TH2 * fBestMatchingAllMul[ NB_RPC * (NB_RPC - 1)/2]; 00114 00115 // Single Plastics 00116 TH2 * f2PlasticsWalkLeft1[ NB_PLASTICS ]; 00117 TH2 * f2PlasticsWalkRight1[ NB_PLASTICS ]; 00118 TH2 * f2PlasticsWalkLeft2[ NB_PLASTICS ]; 00119 TH2 * f2PlasticsWalkRight2[ NB_PLASTICS ]; 00120 TH2 * fPlasticsLeftRightTotAllData[NB_PLASTICS][NB_PLASTICS_MAX]; 00121 TH2 * fPlasticsLeftRightTotSingleTdcData[NB_PLASTICS][NB_PLASTICS_MAX]; 00122 // Plastics - Plastics 00123 TH2 * f2PlasticsHitsNbComp[ NB_PLASTICS * (NB_PLASTICS - 1)/2][NB_PLASTICS_MAX]; 00124 TH2 * f2PlasticsTimeDiffComp[ NB_PLASTICS * (NB_PLASTICS - 1)/2]; 00125 00126 ClassDef(TMatchingProc,1) 00127 }; 00128 00129 #endif //TMATCHINGPROC_H 00130