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/HcalPulseContainmentCorrection.h" 00017 00031 class HcalSimpleRecAlgo { 00032 public: 00034 HcalSimpleRecAlgo(int firstSample, int samplesToAdd, bool correctForTimeslew, 00035 bool correctForContainment, float fixedPhaseNs); 00037 HcalSimpleRecAlgo(int firstSample, int samplesToAdd); 00038 00039 HBHERecHit reconstruct(const HBHEDataFrame& digi, const HcalCoder& coder, const HcalCalibrations& calibs) const; 00040 HFRecHit reconstruct(const HFDataFrame& digi, const HcalCoder& coder, const HcalCalibrations& calibs) const; 00041 HORecHit reconstruct(const HODataFrame& digi, const HcalCoder& coder, const HcalCalibrations& calibs) const; 00042 ZDCRecHit reconstruct(const ZDCDataFrame& digi, const HcalCoder& coder, const HcalCalibrations& calibs) const; 00043 HcalCalibRecHit reconstruct(const HcalCalibDataFrame& digi, const HcalCoder& coder, const HcalCalibrations& calibs) const; 00044 private: 00045 int firstSample_, samplesToAdd_; 00046 bool correctForTimeslew_; 00047 std::auto_ptr<HcalPulseContainmentCorrection> pulseCorr_; 00048 }; 00049 00050 #endif