Go to the documentation of this file.00001 #ifndef CalibCalorimetry_HcalAlgos_HcalPulseContainmentManager_h
00002 #define CalibCalorimetry_HcalAlgos_HcalPulseContainmentManager_h
00003
00004 #include "CalibCalorimetry/HcalAlgos/interface/HcalPulseContainmentCorrection.h"
00005 #include "CalibCalorimetry/HcalAlgos/interface/HcalPulseShapes.h"
00006 #include "DataFormats/HcalDetId/interface/HcalDetId.h"
00007
00008 class HcalPulseContainmentManager {
00009 public:
00010 HcalPulseContainmentManager(float max_fracerror);
00011 double correction(const HcalDetId & detId, int toAdd, float fixedphase_ns, double fc_ampl);
00012 const HcalPulseContainmentCorrection * get(const HcalDetId & detId, int toAdd, float fixedphase_ns);
00013
00014 void beginRun(edm::EventSetup const & es);
00015 void endRun();
00016
00017 private:
00018
00019 struct HcalPulseContainmentEntry {
00020 HcalPulseContainmentEntry(int toAdd, float fixedphase_ns, const HcalPulseShape * shape, const HcalPulseContainmentCorrection & correction)
00021 : toAdd_(toAdd), fixedphase_ns_(fixedphase_ns),shape_(shape), correction_(correction) {}
00022 int toAdd_;
00023 float fixedphase_ns_;
00024 const HcalPulseShape * shape_;
00025 HcalPulseContainmentCorrection correction_;
00026 };
00027
00028 std::vector<HcalPulseContainmentEntry> entries_;
00029 HcalPulseShapes shapes_;
00030 float fixedphase_ns_;
00031 float max_fracerror_;
00032 };
00033
00034 #endif