CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_9/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 
00018 class HcalPulseShapes {
00019 public:
00020   typedef HcalPulseShape Shape;
00021   HcalPulseShapes();
00022   ~HcalPulseShapes();
00023   // only needed if you'll be geting shapes by DetId
00024   void beginRun(edm::EventSetup const & es);
00025   void endRun();
00026 
00027   const Shape& hbShape() const { return hpdShape_; }
00028   const Shape& heShape() const { return hpdShape_; }
00029   const Shape& hfShape() const { return hfShape_; }
00030   const Shape& hoShape(bool sipm=false) const { return sipm ? siPMShape_ : hpdShape_; }
00031   //  return Shpape for given shapeType.
00032   const Shape& getShape(int shapeType) const;
00034   const Shape& shape(const HcalDetId & detId) const;
00035   const Shape& shapeForReco(const HcalDetId & detId) const;
00037   const Shape& defaultShape(const HcalDetId & detId) const;
00038 private:
00039   void computeHPDShape(float, float, float, float, float ,
00040                        float, float, float, Shape&);
00041   // void computeHPDShape();
00042   void computeHFShape();
00043   void computeSiPMShape();
00044   Shape hpdShape_, hfShape_, siPMShape_;
00045   Shape hpdShape_v2, hpdShapeMC_v2;
00046   Shape hpdShape_v3, hpdShapeMC_v3;
00047   Shape hpdBV30Shape_v2, hpdBV30ShapeMC_v2;
00048   const HcalMCParams * theMCParams;
00049   const HcalRecoParams * theRecoParams;
00050   typedef std::map<int, const Shape *> ShapeMap;
00051   ShapeMap theShapes;
00052 
00053 };
00054 #endif