00001 #ifndef TROOTCONVPROC_H 00002 #define TROOTCONVPROC_H 00003 00004 #include "TRootConverterEvent.h" 00005 #include "TRootConverterParam.h" 00006 00007 // 4th level events 00008 #include "../MATCHING/TMatchingEvent.h" 00009 00010 // 3rd level events 00011 #include "../RPC/TRpcEvent.h" 00012 00013 // 2nd level events 00014 #include "../VFTX/TVftxEvent.h" 00015 00016 // 1st level events 00017 #include "MBSUNPACK/TMbsCrateEvent.h" 00018 #include "TTriglogEvent.h" 00019 #include "TEpicsEvent.h" 00020 00021 #include "TCBMBeamtimeProc.h" 00022 00023 #include "TFile.h" 00024 #include "TTree.h" 00025 #include "TH3.h" 00026 00027 class TGo4EventElement; 00028 class TGo4MbsSubEvent; 00029 00030 class TMbsCrateEvent; 00031 class TTriglogEvent; 00032 class TEpicsEvent; 00033 00034 class TVftxEvent; 00035 00036 class TRootConverterProc : public TCBMBeamtimeProc { 00037 public: 00038 00039 TRootConverterProc(const char* name = 0); 00040 virtual ~TRootConverterProc(); 00041 00042 00043 virtual void InitEvent(TGo4EventElement*); 00044 00045 /* this is the main processing function here*/ 00046 virtual void FinalizeEvent(); 00047 00048 protected: 00049 00050 protected: 00051 TRootConverterParam * fRootConvPar; 00052 00054 TVftxEvent * fVftxInputEvent; 00055 00057 TMbsCrateEvent * fCrateInputEvent; 00058 00060 TTriglogEvent * fTriglogInputEvent; 00061 00063 TEpicsEvent * fEpicsInputEvent; 00064 00066 TRpcEvent * fRpcHdInputEvent; 00067 00069 TRpcEvent * fRpcBucInputEvent; 00070 00072 TMatchingEvent * fMatchingInputEvent; 00073 00074 TRootConverterEvent * fOutputEvent; 00075 00076 // Options readout from setup file or assigned from #define 00077 UInt_t fNumRocs; 00078 00079 // General counters 00080 UInt_t uNbEvents; 00081 UInt_t uFirstEventIndex; 00082 UInt_t uPrevEventIndex; 00083 00084 // Tree outputs 00085 TString sOutputFilename; 00086 TDirectory* oldDir; 00087 TFile* fRootOut; 00088 TTree* cleanTree; 00089 00090 // EPICS Slow control 00091 UInt_t uSlowControlUpdateTime; 00092 vector< Double_t > vdPositiveHvI; 00093 vector< Double_t > vdPositiveHvU; 00094 vector< Double_t > vdNegativeHvI; 00095 vector< Double_t > vdNegativeHvU; 00096 00097 // Beam spot evolution histogramming 00098 UInt_t uFirstMbsTime; 00099 UInt_t uSpillStartMbsTime; 00100 UInt_t uLastMbsTime; 00101 00102 UInt_t uFirstMbsTimeMs; 00103 UInt_t uSpillStartMbsTimeMs; 00104 00105 // Histograms 00106 00107 // A bit of control, can be disabled 00108 TH1* hNbClustersPerEventHodoscope; 00109 TH3* hHit2DvsSeconds; 00110 TH3* hHit2DvsSecondsInSpill; 00111 TH3* hHit2DvsMilliSecondsInSpill; 00112 TH2* hHitXvsMilliSecondsInSpill; 00113 TH2* hHitYvsMilliSecondsInSpill; 00114 // Control over a flying pointer, not disableable 00115 UInt_t uEpicsTimeOrigin; 00116 TH1* hTimeEpicsUpdates; 00117 00118 private: 00119 00120 ClassDef(TRootConverterProc,1) 00121 }; 00122 00123 #endif //TROOTCONVPROC_H 00124