CMS 3D CMS Logo

DD4hep_DDDWorld.h
Go to the documentation of this file.
1 #ifndef SIMG4CORE_DD4HEP_DDDWORLD_H
2 #define SIMG4CORE_DD4HEP_DDDWORLD_H
3 
4 #include "G4VPhysicalVolume.hh"
5 #include "DDG4/Geant4GeometryInfo.h"
6 
7 namespace cms {
8  class DDDetector;
9 }
10 
11 namespace cms {
12  class DDDWorld {
13  public:
14  DDDWorld(const cms::DDDetector*, dd4hep::sim::Geant4GeometryMaps::VolumeMap&);
15  ~DDDWorld();
16  static void workerSetAsWorld(G4VPhysicalVolume* pv);
17  const G4VPhysicalVolume* getWorldVolume() const { return m_world; }
18 
19  // In order to share the world volume with the worker threads, we
20  // need a non-const pointer. Thread-safety is handled inside Geant4
21  // with TLS. Should we consider a friend declaration here in order
22  // to avoid misuse?
23  G4VPhysicalVolume* getWorldVolumeForWorker() const { return m_world; }
24 
25  private:
26  void setAsWorld(G4VPhysicalVolume* pv);
27  G4VPhysicalVolume* m_world;
28  };
29 } // namespace cms
30 
31 #endif
cms::DDDWorld::setAsWorld
void setAsWorld(G4VPhysicalVolume *pv)
Definition: DD4hep_DDDWorld.cc:54
cms::DDDWorld::m_world
G4VPhysicalVolume * m_world
Definition: DD4hep_DDDWorld.h:27
cms::DDDWorld::workerSetAsWorld
static void workerSetAsWorld(G4VPhysicalVolume *pv)
Definition: DD4hep_DDDWorld.cc:65
cms::DDDWorld::getWorldVolume
const G4VPhysicalVolume * getWorldVolume() const
Definition: DD4hep_DDDWorld.h:17
cms::DDDWorld::~DDDWorld
~DDDWorld()
Definition: DD4hep_DDDWorld.cc:52
volumeBasedMagneticField_dd4hep_160812_cfi.DDDetector
DDDetector
Definition: volumeBasedMagneticField_dd4hep_160812_cfi.py:27
MetAnalyzer.pv
def pv(vc)
Definition: MetAnalyzer.py:7
cms::DDDWorld::DDDWorld
DDDWorld(const cms::DDDetector *, dd4hep::sim::Geant4GeometryMaps::VolumeMap &)
Definition: DD4hep_DDDWorld.cc:19
cms::DDDetector
Definition: DDDetector.h:12
cms::DDDWorld
Definition: DD4hep_DDDWorld.h:12
cms::DDDWorld::getWorldVolumeForWorker
G4VPhysicalVolume * getWorldVolumeForWorker() const
Definition: DD4hep_DDDWorld.h:23
cms
Namespace of DDCMS conversion namespace.
Definition: ProducerAnalyzer.cc:21