emcRawDataCalibratorV1.h

Go to the documentation of this file.
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   // private:
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