00001 #ifndef __EMCRAWDATACALIBRATORV1_H__
00002 #define __EMCRAWDATACALIBRATORV1_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 emcTacPeds;
00020 class emcGains ;
00021 class emcQAs ;
00022 class emcPedestals5 ;
00023 class emcHLRatios ;
00024 class pbscTimingFixes;
00025
00050 class emcRawDataCalibratorV1 : public emcCalibrator
00051 {
00052 public:
00053
00055 emcRawDataCalibratorV1() ;
00057 virtual ~emcRawDataCalibratorV1() ;
00058
00060 virtual bool Calibrate(const emcRawDataObject& rdo,
00061 emcMixedDataObject& mdo,
00062 const PHTimeStamp& when) ;
00064 virtual bool Calibrate(const emcMixedDataObject& mdo,
00065 emcCalibratedDataObject& cdo,
00066 const PHTimeStamp& when) ;
00067
00069 virtual bool Calibrate(const emcRawDataObject& rdo,
00070 emcCalibratedDataObject& cdo,
00071 const PHTimeStamp& when) ;
00072
00073 void ForceDBCollection(const PHTimeStamp& when);
00074
00079 virtual void SetCollectionStatus(const char* type);
00080
00085 virtual bool GetCollectionStatus(const char* type) const ;
00086
00088 virtual void Print() const ;
00089
00091 virtual void printData(const emcRawDataObject& rdo, const int towerId) const {;}
00092
00094 virtual void Reset(void) ;
00095
00101 virtual bool SelectSource(const char* type, emcManageable::EStorage source);
00102
00105 virtual void SetExtraRejectListFilename(const char* filename = "" ) { fExtraRejectListFilename = filename ; }
00106
00108 virtual void SetSMBasedCorrectionFilename(const char* filename = "" ) { fSMBasedCorrectionFilename = filename ; }
00110 virtual void SetTwrGlobalT0(char * filename=0);
00111
00112
00113
00114 bool CalibrateEnergy(Float_t & adc, const Int_t index,
00115 const Int_t TowerId, int incrementalTime) ;
00116
00117 bool CalibrateTime(Float_t & tdc, float adc, const Int_t index,
00118 const Int_t TowerId, int incrementalTime) ;
00119
00120 void CollectForMDO(const PHTimeStamp& when) ;
00121 void CollectForCDO(const PHTimeStamp& when) ;
00122
00123 bool GetECalAtT0(const PHTimeStamp& when, bool normalizationON=false ) ;
00124
00125 private:
00126
00127 std::string fExtraRejectListFilename ;
00128 std::string fSMBasedCorrectionFilename ;
00129
00131 emcQAs* fQA ;
00133 std::vector<float> fECalAtT0 ;
00135 emcManageable::EStorage fPedestalsSource ;
00137 emcManageable::EStorage fHLRatiosSource ;
00139 emcManageable::EStorage fGainsSource ;
00141 emcManageable::EStorage fTofSource ;
00143 emcManageable::EStorage fQASource ;
00145 emcManageable::EStorage fIniCalSource ;
00146
00148 bool fCollectPedestalStatus ;
00150 bool fCollectHLRatioStatus ;
00152 bool fCollectGainStatus ;
00154 bool fCollectTofStatus ;
00156 Int_t maxFailPed, maxFailHLR, maxFailGain, maxFailTof;
00157
00158 emcPedestals5 *fPedestals ;
00159 emcHLRatios *fHLRatios ;
00160 emcGains *fGains ;
00161 emcLCTofs *fLCTofs ;
00162 emcWalkTofs *fWalkTofs ;
00163 emcTofT0s *fTofT0s ;
00164 emcTacPeds *fTacPeds ;
00165
00166 bool fMustCollectForMDO ;
00167 bool fMustCollectForCDO ;
00168 pbscTimingFixes * tf;
00169 } ;
00170
00171 #endif