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
00046 void setRecoParams(bool correctForTimeslew, bool correctForPulse, bool setLeakCorrection, int pileupCleaningID, float phaseNS);
00047
00048
00049 void setForData();
00050
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