CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_10_patch1/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/HBHEDataFrame.h"
00005 #include "DataFormats/HcalDigi/interface/HFDataFrame.h"
00006 #include "DataFormats/HcalDigi/interface/HODataFrame.h"
00007 #include "DataFormats/HcalDigi/interface/ZDCDataFrame.h"
00008 #include "DataFormats/HcalDigi/interface/HcalCalibDataFrame.h"
00009 #include "DataFormats/HcalRecHit/interface/HBHERecHit.h"
00010 #include "DataFormats/HcalRecHit/interface/HFRecHit.h"
00011 #include "DataFormats/HcalRecHit/interface/HORecHit.h"
00012 #include "DataFormats/HcalRecHit/interface/ZDCRecHit.h"
00013 #include "DataFormats/HcalRecHit/interface/HcalCalibRecHit.h"
00014 #include "CalibFormats/HcalObjects/interface/HcalCoder.h"
00015 #include "CalibFormats/HcalObjects/interface/HcalCalibrations.h"
00016 #include "CalibCalorimetry/HcalAlgos/interface/HcalPulseContainmentManager.h"
00017 #include <memory>
00018 
00032 class HcalSimpleRecAlgo {
00033 public:
00035   HcalSimpleRecAlgo(bool correctForTimeslew, 
00036                     bool correctForContainment, float fixedPhaseNs);
00038   HcalSimpleRecAlgo();
00039   void beginRun(edm::EventSetup const & es);
00040   void endRun();
00041 
00042   void initPulseCorr(int toadd); 
00043 
00044   // set RecoParams channel-by-channel.
00045   void setRecoParams(bool correctForTimeslew, bool correctForPulse, bool setLeakCorrection, int pileupCleaningID, float phaseNS);
00046 
00047   // ugly hack related to HB- e-dependent corrections
00048   void setForData();
00049   // usage of leak correction 
00050   void setLeakCorrection();
00051 
00052   HBHERecHit reconstruct(const HBHEDataFrame& digi, int first, int toadd, const HcalCoder& coder, const HcalCalibrations& calibs) const;
00053   HFRecHit reconstruct(const HFDataFrame& digi,  int first, int toadd, const HcalCoder& coder, const HcalCalibrations& calibs) const;
00054   HORecHit reconstruct(const HODataFrame& digi,  int first, int toadd, const HcalCoder& coder, const HcalCalibrations& calibs) const;
00055   HcalCalibRecHit reconstruct(const HcalCalibDataFrame& digi,  int first, int toadd, const HcalCoder& coder, const HcalCalibrations& calibs) const;
00056 private:
00057   bool correctForTimeslew_;
00058   bool correctForPulse_;
00059   float phaseNS_;
00060   std::auto_ptr<HcalPulseContainmentManager> pulseCorr_;
00061   bool setForData_;
00062   bool setLeakCorrection_;
00063   int pileupCleaningID_;
00064 };
00065 
00066 #endif