CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/RecoLocalCalo/HcalRecAlgos/interface/HcalSimpleRecAlgo.h

Go to the documentation of this file.
00001 #ifndef HCALSIMPLERECALGO_H
00002 #define HCALSIMPLERECALGO_H 1
00003 
00004 #include "DataFormats/HcalDigi/interface/HcalUpgradeDataFrame.h"
00005 #include "DataFormats/HcalDigi/interface/HBHEDataFrame.h"
00006 #include "DataFormats/HcalDigi/interface/HFDataFrame.h"
00007 #include "DataFormats/HcalDigi/interface/HODataFrame.h"
00008 #include "DataFormats/HcalDigi/interface/ZDCDataFrame.h"
00009 #include "DataFormats/HcalDigi/interface/HcalCalibDataFrame.h"
00010 #include "DataFormats/HcalRecHit/interface/HBHERecHit.h"
00011 #include "DataFormats/HcalRecHit/interface/HFRecHit.h"
00012 #include "DataFormats/HcalRecHit/interface/HORecHit.h"
00013 #include "DataFormats/HcalRecHit/interface/ZDCRecHit.h"
00014 #include "DataFormats/HcalRecHit/interface/HcalCalibRecHit.h"
00015 #include "CalibFormats/HcalObjects/interface/HcalCoder.h"
00016 #include "CalibFormats/HcalObjects/interface/HcalCalibrations.h"
00017 #include "CalibCalorimetry/HcalAlgos/interface/HcalPulseContainmentManager.h"
00018 #include <memory>
00019 
00033 class HcalSimpleRecAlgo {
00034 public:
00036   HcalSimpleRecAlgo(bool correctForTimeslew, 
00037                     bool correctForContainment, float fixedPhaseNs);
00039   HcalSimpleRecAlgo();
00040   void beginRun(edm::EventSetup const & es);
00041   void endRun();
00042 
00043   void initPulseCorr(int toadd); 
00044 
00045   // set RecoParams channel-by-channel.
00046   void setRecoParams(bool correctForTimeslew, bool correctForPulse, bool setLeakCorrection, int pileupCleaningID, float phaseNS);
00047 
00048   // ugly hack related to HB- e-dependent corrections
00049   void setForData();
00050   // usage of leak correction 
00051   void setLeakCorrection();
00052 
00053   HBHERecHit reconstruct(const HBHEDataFrame& digi, int first, int toadd, const HcalCoder& coder, const HcalCalibrations& calibs) const;
00054   HBHERecHit reconstructHBHEUpgrade(const HcalUpgradeDataFrame& digi,  int first, int toadd, const HcalCoder& coder, const HcalCalibrations& calibs) const;
00055 
00056   HFRecHit reconstruct(const HFDataFrame& digi,  int first, int toadd, const HcalCoder& coder, const HcalCalibrations& calibs) const;
00057   HFRecHit reconstructHFUpgrade(const HcalUpgradeDataFrame& digi,  int first, int toadd, const HcalCoder& coder, const HcalCalibrations& calibs) const;
00058 
00059   HORecHit reconstruct(const HODataFrame& digi,  int first, int toadd, const HcalCoder& coder, const HcalCalibrations& calibs) const;
00060   HcalCalibRecHit reconstruct(const HcalCalibDataFrame& digi,  int first, int toadd, const HcalCoder& coder, const HcalCalibrations& calibs) const;
00061 
00062 
00063 
00064 private:
00065   bool correctForTimeslew_;
00066   bool correctForPulse_;
00067   float phaseNS_;
00068   std::auto_ptr<HcalPulseContainmentManager> pulseCorr_;
00069   bool setForData_;
00070   bool setLeakCorrection_;
00071   int pileupCleaningID_;
00072 };
00073 
00074 #endif