00001 #ifndef CASTORSIMPLERECALGO_H 00002 #define CASTORSIMPLERECALGO_H 1 00003 00004 #include "DataFormats/HcalDigi/interface/CastorDataFrame.h" 00005 #include "DataFormats/HcalRecHit/interface/CastorRecHit.h" 00006 #include "CalibFormats/CastorObjects/interface/CastorCoder.h" 00007 #include "CalibFormats/CastorObjects/interface/CastorCalibrations.h" 00008 #include "CalibCalorimetry/CastorCalib/interface/CastorPulseContainmentCorrection.h" 00009 #include <memory> 00010 00022 class CastorSimpleRecAlgo { 00023 public: 00025 CastorSimpleRecAlgo(int firstSample, int samplesToAdd, bool correctForTimeslew, 00026 bool correctForContainment, float fixedPhaseNs); 00028 CastorSimpleRecAlgo(int firstSample, int samplesToAdd); 00029 00030 CastorRecHit reconstruct(const CastorDataFrame& digi, const CastorCoder& coder, const CastorCalibrations& calibs) const; 00031 00032 void resetTimeSamples(int f,int t){ 00033 firstSample_=f; 00034 samplesToAdd_=t; 00035 } 00036 private: 00037 int firstSample_, samplesToAdd_; 00038 bool correctForTimeslew_; 00039 std::auto_ptr<CastorPulseContainmentCorrection> pulseCorr_; 00040 }; 00041 00042 #endif