CMS 3D CMS Logo

HcalShapes.h
Go to the documentation of this file.
1 #ifndef HcalSimAlgos_HcalShapes_h
2 #define HcalSimAlgos_HcalShapes_h
3 
12 #include <vector>
13 #include <map>
14 class CaloVShape;
15 class DetId;
16 class HcalMCParams;
17 class HcalTopology;
18 
19 class HcalShapes : public CaloShapes
20 {
21 public:
22  enum {HPD=101, LONG=102, ZECOTEK=201, HAMAMATSU=202, HE2017=203, HF=301, ZDC=401};
23  HcalShapes();
24  ~HcalShapes() override;
25 
26  void beginRun(edm::EventSetup const & es);
27  void endRun();
28 
29  const CaloVShape * shape(const DetId & detId, bool precise=false) const override;
30 
31 private:
32  typedef std::map<int, const CaloVShape *> ShapeMap;
33  // hardcoded, if we can't figure it out from the DB
34  const CaloVShape * defaultShape(const DetId & detId, bool precise=false) const;
35  const ShapeMap& getShapeMap(bool precise) const;
38  ShapeMap theShapes;
39  ShapeMap theShapesPrecise;
41  // list of vShapes.
42  std::vector<HcalShape> theHcalShapes;
43 
44 };
45 
46 #endif
47 
shaper for ZDC
Definition: ZDCShape.h:16
Electronic response of the preamp.
Definition: CaloVShape.h:11
const CaloVShape * shape(const DetId &detId, bool precise=false) const override
Definition: HcalShapes.cc:79
std::map< int, const CaloVShape * > ShapeMap
Definition: HcalShapes.h:32
const CaloVShape * defaultShape(const DetId &detId, bool precise=false) const
Definition: HcalShapes.cc:96
~HcalShapes() override
Definition: HcalShapes.cc:43
void endRun()
Definition: HcalShapes.cc:70
Definition: DetId.h:18
const ShapeMap & getShapeMap(bool precise) const
Definition: HcalShapes.cc:115
const HcalTopology * theTopology
Definition: HcalShapes.h:37
ZDCShape theZDCShape
Definition: HcalShapes.h:40
void beginRun(edm::EventSetup const &es)
Definition: HcalShapes.cc:55
std::vector< HcalShape > theHcalShapes
Definition: HcalShapes.h:42
HcalMCParams * theMCParams
Definition: HcalShapes.h:36
ShapeMap theShapes
Definition: HcalShapes.h:38
ShapeMap theShapesPrecise
Definition: HcalShapes.h:39