00001 #ifndef TRPCPROC_H 00002 #define TRPCPROC_H 00003 00004 #include "TGsiAug12Analysis.h" 00005 #include "TGsiAug12Param.h" 00006 00007 #include "TCBMBeamtimeProc.h" 00008 00009 #include "MBSUNPACK/TMbsCrateEvent.h" 00010 #include "TTriglogEvent.h" 00011 #include "VFTX/TVftxEvent.h" 00012 #include "VFTX/TVftxParam.h" 00013 #include "GET4V10/TGet4v1Event.h" 00014 #include "GET4V10/TGet4v1Param.h" 00015 00016 #include "TRpcEvent.h" 00017 #include "TRpcParam.h" 00018 00019 #include "TGo4Picture.h" 00020 #include "TH1.h" 00021 #include "TH2.h" 00022 00023 class TGo4EventElement; 00024 class TGo4MbsSubEvent; 00025 00026 class TRpcProc : public TCBMBeamtimeProc { 00027 // friend class TCBMBeamtimeProc; 00028 public: 00029 TRpcProc(const char* name = 0); 00030 virtual ~TRpcProc(); 00031 00032 virtual void InitEvent(TGo4EventElement*); 00033 00034 virtual void FinalizeEvent(); 00035 private: 00036 void ProcessCaenStrip( UInt_t uStripIndex, Double_t dCaenOtherOffset = 0 ); 00037 void ProcessVftxStrip( UInt_t uStripIndex, Double_t dVftxOtherOffset = 0 ); 00038 void ProcessGet4v10Strip( UInt_t uEventIndex , UInt_t uStripIndex, Double_t dGet4v10OtherOffset = 0 ); 00039 00040 00041 protected: 00042 TRpcParam * fPar; 00043 TVftxParam * fVftxPar; 00044 TGet4v1Param * fGet4v1Par; 00045 TGsiAug12Param * fParAnalysis; 00046 TMbsCrateEvent * fCrateInputEvent; 00047 TTriglogEvent * fTriglogInputEvent; 00048 TGet4v1Event * fGet4v1InputEvent; 00049 TVftxEvent * fVftxInputEvent; 00050 00051 TRpcEvent * fOutputEvent; 00052 00053 protected: 00054 Double_t dCaenBinSize; 00055 Double_t dRpcCenterOffset; 00056 Double_t dRpcCenterOffsetCm; 00057 00058 Rpc_Hit hitCurrent; 00059 Rpc_Cluster clusterCurrent; 00060 Rpc_Event eventCurrent; 00061 UInt_t uLastFiredStrip; 00062 UInt_t uMultiplicityStripRpc; 00063 00064 TH2* fBeamProfileStripRpc; // Beam profile in length units with Strip RPCs 00065 TH2* fSingleEvtBeamProfileStripRpc; // Beam profile in length units with Strip RPCs 00066 TH2* fBeamProfileStripRpcTime; // Beam profile in Time units with Strip RPCs 00067 TH2* fReference1ProfileRpc; // Profile against reference signal with Strip RPCs 00068 TH2* fReference2ProfileRpc; // Profile against diamond signal with Strip RPCs 00069 TH2* fMeanRefProfileRpc; // Profile against mean of 1st and 2nd reference signal with Strip RPCs 00070 TH2* fTotLeftStripRpc; // Tot profile with Strip RPCs for the left side 00071 TH2* fTotRightStripRpc; // Tot profile with Strip RPCs for the right side 00072 TH1* fMultiplicityStripRpc; // Multiplicity graph with Strip RPCs 00073 TH1* fTdcMultiRejectStripRpc; // Nb of rejected hits because of multiple TDc hits with Strip RPCs 00074 TH1* fClusterMultStripRpc; // Cluster multiplicity graph with Strip RPCs 00075 TH1* fClusterSizeStripRpc; // Cluster size graph with Strip RPCs 00076 TH2* fClusterProfileStripRpc; // Beam profile with clusters center Strip RPCs 00077 TH2* fClusterProfileStripRpcMinSize; // Beam profile with clusters center Strip RPCs 00078 00079 TH1* fMultiHitsEvents; // Events with at least 1 cluster and multiple hits on 1 side of a strip 00080 00081 ClassDef(TRpcProc,1) 00082 }; 00083 00084 Double_t box(Double_t*, Double_t*); 00085 00086 #endif //TRPCPROC_H 00087