emcRawDataCalibrator.h

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