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 "boost/shared_ptr.hpp"
5 
9 
10 namespace edm
11 {
12  class ParameterSet;
13 }
14 
15 class CaloGeometry;
17 class TrackerGeometry;
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 {
30  enum ERecoDet {kDummy,
35 public:
37  virtual ~FWTGeoRecoGeometryESProducer( void );
38 
39  boost::shared_ptr<FWTGeoRecoGeometry> produce( const FWTGeoRecoGeometryRecord& );
40 
41 private:
44 
45  TGeoManager* createManager( int level );
46  TGeoShape* createShape( const GeomDet *det );
47  TGeoVolume* createVolume( const std::string& name, const GeomDet *det, ERecoDet = kDummy );
48  // TGeoMaterial* createMaterial( const std::string& name );
49 
50  TGeoVolume* GetDaughter(TGeoVolume* mother, const char* prefix, ERecoDet cidx, int id);
51  TGeoVolume* GetDaughter(TGeoVolume* mother, const char* prefix, ERecoDet cidx);
52  TGeoVolume* GetTopHolder( const char* prefix, ERecoDet cidx);
53 
54  TGeoMedium* GetMedium(ERecoDet);
55 
58  void addTIBGeometry();
59  void addTOBGeometry();
60  void addTIDGeometry();
61  void addTECGeometry();
62  void addCSCGeometry();
63  void addDTGeometry();
64  void addRPCGeometry();
65  void addGEMGeometry();
66  void addME0Geometry();
67  void addEcalCaloGeometry();
70 
71  std::map<std::string, TGeoShape*> m_nameToShape;
72  std::map<TGeoShape*, TGeoVolume*> m_shapeToVolume;
73  std::map<ERecoDet, TGeoMedium*> m_recoMedium;
74 
78 
79  boost::shared_ptr<FWTGeoRecoGeometry> m_fwGeometry;
80 
81  TGeoMedium* m_dummyMedium;
82 };
83 
84 #endif // GEOMETRY_FWTGEORECO_GEOMETRY_ES_PRODUCER_H
edm::ESHandle< CaloGeometry > m_caloGeom
edm::ESHandle< GlobalTrackingGeometry > m_geomRecord
TGeoShape * createShape(const GeomDet *det)
const reco::GenParticle * mother(const reco::GenParticle &p, unsigned int imoth=0)
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)
boost::shared_ptr< FWTGeoRecoGeometry > produce(const FWTGeoRecoGeometryRecord &)
boost::shared_ptr< FWTGeoRecoGeometry > m_fwGeometry
FWTGeoRecoGeometryESProducer(const edm::ParameterSet &)
tuple level
Definition: testEve_cfg.py:34
const FWTGeoRecoGeometryESProducer & operator=(const FWTGeoRecoGeometryESProducer &)
TGeoVolume * GetTopHolder(const char *prefix, ERecoDet cidx)
TGeoVolume * createVolume(const std::string &name, const GeomDet *det, ERecoDet=kDummy)