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;
15 class CaloGeometryRecord;
18 class TrackerGeometry;
19 class TrackerTopology;
20 class TrackerTopologyRcd;
21 class FWTGeoRecoGeometry;
23 
24 class TGeoManager;
25 class TGeoShape;
26 class TGeoVolume;
27 class TGeoMaterial;
28 class TGeoMedium;
29 class GeomDet;
30 class CaloCellGeometry;
32  enum ERecoDet {
46  };
47 
48 public:
50  ~FWTGeoRecoGeometryESProducer(void) override;
51 
52  std::unique_ptr<FWTGeoRecoGeometry> produce(const FWTGeoRecoGeometryRecord&);
53 
54 private:
57 
58  TGeoManager* createManager(int level);
59  TGeoShape* createShape(const GeomDet* det);
60  TGeoVolume* createVolume(const std::string& name, const GeomDet* det, ERecoDet = kDummy);
61  // TGeoMaterial* createMaterial( const std::string& name );
62 
63  TGeoVolume* GetDaughter(TGeoVolume* mother, const char* prefix, ERecoDet cidx, int id);
64  TGeoVolume* GetDaughter(TGeoVolume* mother, const char* prefix, ERecoDet cidx);
65  TGeoVolume* GetTopHolder(const char* prefix, ERecoDet cidx);
66 
67  TGeoMedium* GetMedium(ERecoDet);
68 
71  void addTIBGeometry();
72  void addTOBGeometry();
73  void addTIDGeometry();
74  void addTECGeometry();
75  void addCSCGeometry();
76  void addDTGeometry();
77  void addRPCGeometry();
78  void addGEMGeometry();
79  void addME0Geometry();
80  void addEcalCaloGeometry();
85  void addCaloTowerGeometry();
86 
87  std::map<std::string, TGeoShape*> m_nameToShape;
88  std::map<TGeoShape*, TGeoVolume*> m_shapeToVolume;
89  std::map<ERecoDet, TGeoMedium*> m_recoMedium;
90 
94 
96  const CaloGeometry* m_caloGeom = nullptr;
97  const TrackerGeometry* m_trackerGeom = nullptr;
99 
100  TGeoMedium* m_dummyMedium = nullptr;
101 
102  bool m_tracker;
103  bool m_muon;
104  bool m_gem;
105  bool m_calo;
106 };
107 
108 #endif // GEOMETRY_FWTGEORECO_GEOMETRY_ES_PRODUCER_H
const GlobalTrackingGeometry * m_trackingGeom
TGeoShape * createShape(const GeomDet *det)
std::map< TGeoShape *, TGeoVolume * > m_shapeToVolume
edm::ESGetToken< GlobalTrackingGeometry, GlobalTrackingGeometryRecord > m_trackingGeomToken
TGeoManager * createManager(int level)
std::map< std::string, TGeoShape * > m_nameToShape
std::map< ERecoDet, TGeoMedium * > m_recoMedium
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > m_trackerTopologyToken
TGeoVolume * GetDaughter(TGeoVolume *mother, const char *prefix, ERecoDet cidx, int id)
std::unique_ptr< FWTGeoRecoGeometry > produce(const FWTGeoRecoGeometryRecord &)
HLT enums.
FWTGeoRecoGeometryESProducer(const edm::ParameterSet &)
const FWTGeoRecoGeometryESProducer & operator=(const FWTGeoRecoGeometryESProducer &)
TGeoVolume * GetTopHolder(const char *prefix, ERecoDet cidx)
TGeoVolume * createVolume(const std::string &name, const GeomDet *det, ERecoDet=kDummy)
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > m_caloGeomToken