CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_1/src/CalibCalorimetry/HcalAlgos/interface/HcalPulseShapes.h

Go to the documentation of this file.
00001 #ifndef CALIBCALORIMETRY_HCALALGOS_HCALPULSESHAPES_H
00002 #define CALIBCALORIMETRY_HCALALGOS_HCALPULSESHAPES_H 1
00003 
00004 #include <vector>
00005 #include "CalibCalorimetry/HcalAlgos/interface/HcalPulseShape.h"
00006 #include "DataFormats/HcalDetId/interface/HcalDetId.h"
00007 #include "FWCore/Framework/interface/Frameworkfwd.h"
00008 
00015 class HcalMCParams;
00016 class HcalRecoParams;
00017 class HcalTopology;
00018 
00019 class HcalPulseShapes {
00020 public:
00021   typedef HcalPulseShape Shape;
00022   HcalPulseShapes();
00023   ~HcalPulseShapes();
00024   // only needed if you'll be geting shapes by DetId
00025   void beginRun(edm::EventSetup const & es);
00026   void endRun();
00027 
00028   const Shape& hbShape() const { return hpdShape_; }
00029   const Shape& heShape() const { return hpdShape_; }
00030   const Shape& hfShape() const { return hfShape_; }
00031   const Shape& hoShape(bool sipm=false) const { return sipm ? siPMShape_ : hpdShape_; }
00032   //  return Shpape for given shapeType.
00033   const Shape& getShape(int shapeType) const;
00035   const Shape& shape(const HcalDetId & detId) const;
00036   const Shape& shapeForReco(const HcalDetId & detId) const;
00038   const Shape& defaultShape(const HcalDetId & detId) const;
00039 private:
00040   void computeHPDShape(float, float, float, float, float ,
00041                        float, float, float, Shape&);
00042   // void computeHPDShape();
00043   void computeHFShape();
00044   void computeSiPMShape();
00045   Shape hpdShape_, hfShape_, siPMShape_;
00046   Shape hpdShape_v2, hpdShapeMC_v2;
00047   Shape hpdShape_v3, hpdShapeMC_v3;
00048   Shape hpdBV30Shape_v2, hpdBV30ShapeMC_v2;
00049   const HcalMCParams * theMCParams;
00050   const HcalTopology * theTopology;
00051   const HcalRecoParams * theRecoParams;
00052   typedef std::map<int, const Shape *> ShapeMap;
00053   ShapeMap theShapes;
00054 
00055 };
00056 #endif