test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 {
12  class ParameterSet;
13 }
14 
15 class CaloGeometry;
17 class TrackerGeometry;
18 class TrackerTopology;
19 class FWTGeoRecoGeometry;
21 
22 class TGeoManager;
23 class TGeoShape;
24 class TGeoVolume;
25 class TGeoMaterial;
26 class TGeoMedium;
27 class GeomDet;
28 class CaloCellGeometry;
30 {
31  enum ERecoDet {kDummy,
36 public:
38  virtual ~FWTGeoRecoGeometryESProducer( void );
39 
40  std::shared_ptr<FWTGeoRecoGeometry> produce( const FWTGeoRecoGeometryRecord& );
41 
42 private:
45 
46  TGeoManager* createManager( int level );
47  TGeoShape* createShape( const GeomDet *det );
48  TGeoVolume* createVolume( const std::string& name, const GeomDet *det, ERecoDet = kDummy );
49  // TGeoMaterial* createMaterial( const std::string& name );
50 
51  TGeoVolume* GetDaughter(TGeoVolume* mother, const char* prefix, ERecoDet cidx, int id);
52  TGeoVolume* GetDaughter(TGeoVolume* mother, const char* prefix, ERecoDet cidx);
53  TGeoVolume* GetTopHolder( const char* prefix, ERecoDet cidx);
54 
55  TGeoMedium* GetMedium(ERecoDet);
56 
59  void addTIBGeometry();
60  void addTOBGeometry();
61  void addTIDGeometry();
62  void addTECGeometry();
63  void addCSCGeometry();
64  void addDTGeometry();
65  void addRPCGeometry();
66  void addGEMGeometry();
67  void addME0Geometry();
68  void addEcalCaloGeometry();
73  void addCaloTowerGeometry();
74 
75  std::map<std::string, TGeoShape*> m_nameToShape;
76  std::map<TGeoShape*, TGeoVolume*> m_shapeToVolume;
77  std::map<ERecoDet, TGeoMedium*> m_recoMedium;
78 
83 
84  std::shared_ptr<FWTGeoRecoGeometry> m_fwGeometry;
85 
86  TGeoMedium* m_dummyMedium;
87 
88  bool m_tracker;
89  bool m_muon;
90  bool m_calo;
91 };
92 
93 #endif // GEOMETRY_FWTGEORECO_GEOMETRY_ES_PRODUCER_H
std::shared_ptr< FWTGeoRecoGeometry > produce(const FWTGeoRecoGeometryRecord &)
edm::ESHandle< CaloGeometry > m_caloGeom
edm::ESHandle< GlobalTrackingGeometry > m_geomRecord
TGeoShape * createShape(const GeomDet *det)
std::map< TGeoShape *, TGeoVolume * > m_shapeToVolume
TGeoManager * createManager(int level)
std::map< std::string, TGeoShape * > m_nameToShape
std::map< ERecoDet, TGeoMedium * > m_recoMedium
TGeoVolume * GetDaughter(TGeoVolume *mother, const char *prefix, ERecoDet cidx, int id)
FWTGeoRecoGeometryESProducer(const edm::ParameterSet &)
tuple level
Definition: testEve_cfg.py:34
const FWTGeoRecoGeometryESProducer & operator=(const FWTGeoRecoGeometryESProducer &)
TGeoVolume * GetTopHolder(const char *prefix, ERecoDet cidx)
std::shared_ptr< FWTGeoRecoGeometry > m_fwGeometry
TGeoVolume * createVolume(const std::string &name, const GeomDet *det, ERecoDet=kDummy)