CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/CalibCalorimetry/HcalAlgos/interface/HcalPulseContainmentManager.h

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