CMS 3D CMS Logo

FWTGeoRecoGeometryESProducer.h
Go to the documentation of this file.
1 #ifndef GEOMETRY_FWTGEORECO_GEOMETRY_ES_PRODUCER_H
2 #define GEOMETRY_FWTGEORECO_GEOMETRY_ES_PRODUCER_H
3 
4 #include <memory>
5 
9 
10 namespace edm {
11  class ParameterSet;
12 }
13 
14 class CaloGeometry;
16 class TrackerGeometry;
17 class TrackerTopology;
18 class FWTGeoRecoGeometry;
20 
21 class TGeoManager;
22 class TGeoShape;
23 class TGeoVolume;
24 class TGeoMaterial;
25 class TGeoMedium;
26 class GeomDet;
27 class CaloCellGeometry;
29  enum ERecoDet {
42  kHGCH
43  };
44 
45 public:
47  ~FWTGeoRecoGeometryESProducer(void) override;
48 
49  std::unique_ptr<FWTGeoRecoGeometry> produce(const FWTGeoRecoGeometryRecord&);
50 
51 private:
54 
55  TGeoManager* createManager(int level);
56  TGeoShape* createShape(const GeomDet* det);
57  TGeoVolume* createVolume(const std::string& name, const GeomDet* det, ERecoDet = kDummy);
58  // TGeoMaterial* createMaterial( const std::string& name );
59 
60  TGeoVolume* GetDaughter(TGeoVolume* mother, const char* prefix, ERecoDet cidx, int id);
61  TGeoVolume* GetDaughter(TGeoVolume* mother, const char* prefix, ERecoDet cidx);
62  TGeoVolume* GetTopHolder(const char* prefix, ERecoDet cidx);
63 
64  TGeoMedium* GetMedium(ERecoDet);
65 
66  void addPixelBarrelGeometry();
67  void addPixelForwardGeometry();
68  void addTIBGeometry();
69  void addTOBGeometry();
70  void addTIDGeometry();
71  void addTECGeometry();
72  void addCSCGeometry();
73  void addDTGeometry();
74  void addRPCGeometry();
75  void addGEMGeometry();
76  void addME0Geometry();
77  void addEcalCaloGeometry();
78  void addHcalCaloGeometryBarrel();
79  void addHcalCaloGeometryEndcap();
80  void addHcalCaloGeometryOuter();
81  void addHcalCaloGeometryForward();
82  void addCaloTowerGeometry();
83 
84  std::map<std::string, TGeoShape*> m_nameToShape;
85  std::map<TGeoShape*, TGeoVolume*> m_shapeToVolume;
86  std::map<ERecoDet, TGeoMedium*> m_recoMedium;
87 
92 
93  TGeoMedium* m_dummyMedium;
94 
95  bool m_tracker;
96  bool m_muon;
97  bool m_calo;
98 };
99 
100 #endif // GEOMETRY_FWTGEORECO_GEOMETRY_ES_PRODUCER_H
edm::ESHandle< GlobalTrackingGeometry > m_geomRecord
std::map< TGeoShape *, TGeoVolume * > m_shapeToVolume
std::map< std::string, TGeoShape * > m_nameToShape
std::map< ERecoDet, TGeoMedium * > m_recoMedium
HLT enums.