00001 #ifndef TVFTXEVENT_H 00002 #define TVFTXEVENT_H 00003 00004 #include "TGo4EventElement.h" 00005 00006 /* 00007 * Put all definitions here and use them in processor, 00008 * since they are necessary for data structure of event 00009 */ 00010 #include "MBSUNPACK/TMbsCrateEvent.h" 00011 00012 #define NB_BIN_FTS 1024 00013 #define CLOCK_TIME 5000 //ps 00014 00015 class TVftxBoardData : public TObject { 00016 public: 00017 enum { MaxMult = 8 }; 00018 00019 Int_t iTriggerTime; 00020 Int_t iMultiplicity[FPGA_TDC_NBCHAN]; // how many hits par channel 00021 Int_t iFineTime[FPGA_TDC_NBCHAN][MaxMult]; 00022 Int_t iCoarseTime[FPGA_TDC_NBCHAN][MaxMult]; 00023 UInt_t uFutureBit[FPGA_TDC_NBCHAN][MaxMult]; 00024 Double_t dTimeCorr[FPGA_TDC_NBCHAN][MaxMult]; 00025 Double_t dFineTimeCorr[FPGA_TDC_NBCHAN][MaxMult]; 00026 00027 TVftxBoardData() : TObject() { Clear(); } 00028 void Clear(); 00029 Double_t GetCalibratedTime( UInt_t uChan, UInt_t uMult); 00030 Double_t GetCoarseCorrectedTime( UInt_t uChan, UInt_t uMult); 00031 }; 00032 00033 class TVftxEvent : public TGo4EventElement { 00034 public: 00035 00036 00037 TVftxEvent(); 00038 TVftxEvent(const char* name, Short_t id=0); 00039 virtual ~TVftxEvent(); 00040 00042 virtual void Clear(Option_t *t=""); 00043 TVftxBoardData fVftxBoards[MAX_FPGA_TDC]; 00044 00045 Double_t GetCoarseCorrectedTime( UInt_t uBoard, UInt_t uChan, UInt_t uMult); 00046 Double_t GetCalibratedTime( UInt_t uBoard, UInt_t uChan, UInt_t uMult, UInt_t uCoarseCorrected = 0); 00047 00048 ClassDef(TVftxEvent,1) 00049 }; 00050 #endif //TVFTXEVENT_H 00051 00052 00053