CMS 3D CMS Logo

HcalShapes.h
Go to the documentation of this file.
1 #ifndef HcalSimAlgos_HcalShapes_h
2 #define HcalSimAlgos_HcalShapes_h
3 
13 #include <vector>
14 #include <map>
15 class CaloVShape;
16 class DetId;
17 
18 class HcalShapes : public CaloShapes
19 {
20 public:
21  enum {HPD=101, LONG=102, ZECOTEK=201, HAMAMATSU=202, HE2017=203, HE2018=206, HF=301, ZDC=401};
22  HcalShapes();
23  ~HcalShapes() override;
24 
25  void setDbService(const HcalDbService * service) {theDbService = service;}
26 
27  const CaloVShape * shape(const DetId & detId, bool precise=false) const override;
28 
29 private:
30  typedef std::map<int, const CaloVShape *> ShapeMap;
31  // hardcoded, if we can't figure it out from the DB
32  const CaloVShape * defaultShape(const DetId & detId, bool precise=false) const;
33  const ShapeMap& getShapeMap(bool precise) const;
35  ShapeMap theShapes;
36  ShapeMap theShapesPrecise;
38  // list of vShapes.
39  std::vector<HcalShape> theHcalShapes;
40 
41 };
42 
43 #endif
44 
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:55
std::map< int, const CaloVShape * > ShapeMap
Definition: HcalShapes.h:30
const CaloVShape * defaultShape(const DetId &detId, bool precise=false) const
Definition: HcalShapes.cc:72
~HcalShapes() override
Definition: HcalShapes.cc:45
Definition: DetId.h:18
const ShapeMap & getShapeMap(bool precise) const
Definition: HcalShapes.cc:91
void setDbService(const HcalDbService *service)
Definition: HcalShapes.h:25
ZDCShape theZDCShape
Definition: HcalShapes.h:37
const HcalDbService * theDbService
Definition: HcalShapes.h:34
std::vector< HcalShape > theHcalShapes
Definition: HcalShapes.h:39
ShapeMap theShapes
Definition: HcalShapes.h:35
ShapeMap theShapesPrecise
Definition: HcalShapes.h:36