00001 #ifndef __EMCRAWDATACALIBRATOR_H__ 00002 #define __EMCRAWDATACALIBRATOR_H__ 00003 00004 #ifndef __EMCCALIBRATOR_H__ 00005 #include "emcCalibrator.h" 00006 #endif 00007 #ifndef __EMCMANAGEABLE_H__ 00008 #include "emcManageable.h" 00009 #endif 00010 #include <vector> 00011 00012 class emcRawDataObject; 00013 class emcMixedDataObject; 00014 class emcCalibratedDataObject; 00015 class emcFEMtuple ; 00016 class emcWalkTofs ; 00017 class emcLCTofs ; 00018 class emcTofT0s; 00019 class emcGains ; 00020 class emcQAs ; 00021 class emcPedestals ; 00022 class emcHLRatios ; 00023 class emcTacPeds; 00024 00038 class emcRawDataCalibrator : public emcCalibrator 00039 { 00040 public: 00041 00043 emcRawDataCalibrator() ; 00045 virtual ~emcRawDataCalibrator() ; 00046 00048 virtual bool Calibrate(const emcRawDataObject& rdo, 00049 emcMixedDataObject& mdo, 00050 const PHTimeStamp& when) ; 00052 virtual bool Calibrate(const emcMixedDataObject& mdo, 00053 emcCalibratedDataObject& cdo, 00054 const PHTimeStamp& when) ; 00055 00057 virtual bool Calibrate(const emcRawDataObject& rdo, 00058 emcCalibratedDataObject& cdo, 00059 const PHTimeStamp& when) ; 00060 00065 virtual bool GetCollectionStatus(const char* type) const ; 00066 00068 virtual void Print() const ; 00069 00071 virtual void printData(const emcRawDataObject& rdo, const int towerId) const {;} 00072 00074 virtual void Reset(void) ; 00075 00081 virtual bool SelectSource(const char* type, emcManageable::EStorage source); 00082 00085 virtual void SetExtraRejectListFilename(const char* filename = "" ) 00086 { 00087 fExtraRejectListFilename = filename ; 00088 } 00089 00091 virtual void SetSMBasedCorrectionFilename(const char* filename = "" ) 00092 { 00093 fSMBasedCorrectionFilename = filename ; 00094 } 00096 virtual void SetTwrGlobalT0(char * filename = 0); 00097 00098 private: 00099 00100 bool CalibrateEnergy(Float_t & adc, const Int_t index, 00101 const Int_t TowerId, int incrementalTime) ; 00102 00103 bool CalibrateTime(Float_t & tdc, float adc, const Int_t index, 00104 const Int_t TowerId, int incrementalTime) ; 00105 00106 void CollectForMDO(const PHTimeStamp& when) ; 00107 void CollectForCDO(const PHTimeStamp& when) ; 00108 00109 bool GetECalAtT0(const PHTimeStamp& when, bool normalizationON = false ) ; 00110 00111 private: 00112 00113 std::string fExtraRejectListFilename ; 00114 std::string fSMBasedCorrectionFilename ; 00115 00117 emcQAs* fQA ; 00119 std::vector<float> fECalAtT0 ; 00121 emcManageable::EStorage fPedestalsSource ; 00123 emcManageable::EStorage fHLRatiosSource ; 00125 emcManageable::EStorage fGainsSource ; 00127 emcManageable::EStorage fTofSource ; 00129 emcManageable::EStorage fQASource ; 00131 emcManageable::EStorage fIniCalSource ; 00132 00134 bool fCollectPedestalStatus ; 00136 bool fCollectHLRatioStatus ; 00138 bool fCollectGainStatus ; 00140 bool fCollectTofStatus ; 00142 Int_t maxFailPed, maxFailHLR, maxFailGain, maxFailTof; 00143 00144 emcPedestals *fPedestals ; 00145 emcHLRatios *fHLRatios ; 00146 emcGains *fGains ; 00147 emcLCTofs *fLCTofs ; 00148 emcWalkTofs *fWalkTofs ; 00149 emcTofT0s *fTofT0s ; 00150 emcTacPeds *fTacPeds ; 00151 } ; 00152 00153 #endif