DD4hep  1.30.0
Detector Description Toolkit for High Energy Physics
Public Member Functions | Private Member Functions | Private Attributes | List of all members
dd4hep::sim::Geant4DetectorGeometryConstruction Class Reference

Class to create Geant4 detector geometry from TGeo representation in memory. More...

Inheritance diagram for dd4hep::sim::Geant4DetectorGeometryConstruction:
dd4hep::sim::Geant4DetectorConstruction dd4hep::sim::Geant4Action

Public Member Functions

 Geant4DetectorGeometryConstruction (Geant4Context *ctxt, const std::string &nam)
 Initializing constructor for DDG4. More...
 
virtual ~Geant4DetectorGeometryConstruction ()
 Default destructor. More...
 
void constructGeo (Geant4DetectorConstructionContext *ctxt) override
 Geometry construction callback. Called at "Construct()". More...
 
virtual void installCommandMessenger () override
 Install command control messenger to write GDML file from command prompt. More...
 
- Public Member Functions inherited from dd4hep::sim::Geant4DetectorConstruction
 Geant4DetectorConstruction (Geant4Context *context, const std::string &nam)
 Standard Constructor. More...
 
virtual ~Geant4DetectorConstruction ()
 Default destructor. More...
 
virtual void constructField (Geant4DetectorConstructionContext *ctxt)
 Electromagnetic field construction callback. Called at "ConstructSDandField()". More...
 
virtual void constructSensitives (Geant4DetectorConstructionContext *ctxt)
 Sensitive detector construction callback. Called at "ConstructSDandField()". More...
 
virtual G4VSensitiveDetectorcreateSensitiveDetector (const std::string &type, const std::string &name)
 Create Geant4 sensitive detector object using the factory mechanism. More...
 
- Public Member Functions inherited from dd4hep::sim::Geant4Action
 Geant4Action (Geant4Context *context, const std::string &nam)
 Standard constructor. More...
 
long addRef ()
 Increase reference count. More...
 
long release ()
 Decrease reference count. Implicit destruction. More...
 
Geant4Contextcontext () const
 Access the context. More...
 
virtual void updateContext (Geant4Context *ctxt)
 Set or update client context. More...
 
virtual void configureFiber (Geant4Context *thread_context)
 Set or update client for the use in a new thread fiber. More...
 
const std::string & name () const
 Access name of the action. More...
 
const char * c_name () const
 Access name of the action. More...
 
void setName (const std::string &new_name)
 Set the object name. More...
 
PropertyManagerproperties ()
 Access to the properties of the object. More...
 
PrintLevel outputLevel () const
 Access the output level. More...
 
PrintLevel setOutputLevel (PrintLevel new_level)
 Set the output level; returns previous value. More...
 
Geant4UIMessengercontrol () const
 Access to the UI messenger. More...
 
virtual void enableUI ()
 Enable and install UI messenger. More...
 
template<typename T >
Geant4ActiondeclareProperty (const std::string &nam, T &val)
 Declare property. More...
 
template<typename T >
Geant4ActiondeclareProperty (const char *nam, T &val)
 Declare property. More...
 
bool hasProperty (const std::string &name) const
 Check property for existence. More...
 
Propertyproperty (const std::string &name)
 Access single property. More...
 
virtual void installMessengers ()
 Install property control messenger if wanted. More...
 
virtual void installPropertyMessenger ()
 Install property control messenger if wanted. More...
 
void print (const char *fmt,...) const
 Support for messages with variable output level using output level. More...
 
void printM1 (const char *fmt,...) const
 Support for messages with variable output level using output level-1. More...
 
void printM2 (const char *fmt,...) const
 Support for messages with variable output level using output level-2. More...
 
void printP1 (const char *fmt,...) const
 Support for messages with variable output level using output level+1. More...
 
void printP2 (const char *fmt,...) const
 Support for messages with variable output level using output level+2. More...
 
void always (const char *fmt,...) const
 Support of always printed messages. More...
 
void debug (const char *fmt,...) const
 Support of debug messages. More...
 
void info (const char *fmt,...) const
 Support of info messages. More...
 
void warning (const char *fmt,...) const
 Support of warning messages. More...
 
void error (const char *fmt,...) const
 Support of error messages. More...
 
bool return_error (bool return_value, const char *fmt,...) const
 Action to support error messages. More...
 
void fatal (const char *fmt,...) const
 Support of fatal messages. Throws exception. More...
 
void except (const char *fmt,...) const
 Support of exceptions: Print fatal message and throw runtime_error. More...
 
void abortRun (const std::string &exception, const char *fmt,...) const
 Abort Geant4 Run by throwing a G4Exception with type RunMustBeAborted. More...
 
Geant4RunActionSequencerunAction () const
 Access to the main run action sequence from the kernel object. More...
 
Geant4EventActionSequenceeventAction () const
 Access to the main event action sequence from the kernel object. More...
 
Geant4SteppingActionSequencesteppingAction () const
 Access to the main stepping action sequence from the kernel object. More...
 
Geant4TrackingActionSequencetrackingAction () const
 Access to the main tracking action sequence from the kernel object. More...
 
Geant4StackingActionSequencestackingAction () const
 Access to the main stacking action sequence from the kernel object. More...
 
Geant4GeneratorActionSequencegeneratorAction () const
 Access to the main generator action sequence from the kernel object. More...
 

Private Member Functions

int writeGDML (const char *gdml_output)
 Write GDML file. More...
 
int printVolumeObj (const char *vol_path, PlacedVolume pv, int flg)
 Print geant4 volume. More...
 
int printVolumeTree (const char *vol_path)
 Print volume tree with attributes. More...
 
int printVolTree (const char *vol_path)
 Print volume tree WITHOUT attributes. More...
 
int printG4Tree (const char *vol_path)
 Print geant4 volume tree. More...
 
int printVolume (const char *vol_path)
 Print geant4 volume. More...
 
int checkVolume (const char *vol_path)
 Check geant4 volume. More...
 
int printMaterial (const char *mat_name)
 Print geant4 material. More...
 
std::pair< std::string, PlacedVolumeresolve_path (const char *vol_path) const
 
void printG4 (const std::string &prefix, const G4VPhysicalVolume *g4pv) const
 

Private Attributes

unsigned long m_dumpHierarchy = 0
 Property: Dump geometry hierarchy if not NULL. Flags can steer actions. More...
 
bool m_debugMaterials = false
 Property: Flag to debug materials during conversion mechanism. More...
 
bool m_debugElements = false
 Property: Flag to debug elements during conversion mechanism. More...
 
bool m_debugShapes = false
 Property: Flag to debug shapes during conversion mechanism. More...
 
bool m_debugVolumes = false
 Property: Flag to debug volumes during conversion mechanism. More...
 
bool m_debugPlacements = false
 Property: Flag to debug placements during conversion mechanism. More...
 
bool m_debugReflections = false
 Property: Flag to debug reflections during conversion mechanism. More...
 
bool m_debugRegions = false
 Property: Flag to debug regions during conversion mechanism. More...
 
bool m_debugLimits = false
 Property: Flag to debug limit sets during conversion mechanism. More...
 
bool m_debugSurfaces = false
 Property: Flag to debug regions during conversion mechanism. More...
 
bool m_printPlacements = false
 Property: Flag to dump all placements after the conversion procedure. More...
 
bool m_printSensitives = false
 Property: Flag to dump all sensitives after the conversion procedure. More...
 
int m_geoInfoPrintLevel
 Property: Printout level of info object. More...
 
std::string m_dumpGDML
 Property: G4 GDML dump file name (default: empty. If non empty, dump) More...
 

Additional Inherited Members

- Protected Member Functions inherited from dd4hep::sim::Geant4Action
 DDG4_DEFINE_ACTION_CONSTRUCTORS (Geant4Action)
 Define standard assignments and constructors. More...
 
virtual ~Geant4Action ()
 Default destructor. More...
 
- Protected Attributes inherited from dd4hep::sim::Geant4Action
Geant4Contextm_context { nullptr }
 Reference to the Geant4 context. More...
 
Geant4UIMessengerm_control { nullptr }
 Control directory of this action. More...
 
int m_outputLevel { 3 }
 Default property: Output level. More...
 
bool m_needsControl { false }
 Default property: Flag to create control instance. More...
 
std::string m_name { }
 Action name. More...
 
PropertyManager m_properties { }
 Property pool. More...
 
long m_refCount { 1 }
 Reference count. Initial value: 1. More...
 

Detailed Description

Class to create Geant4 detector geometry from TGeo representation in memory.

On demand (ie. when calling "Construct") the dd4hep geometry is converted to Geant4 with all volumes, assemblies, shapes, materials etc. The actuak work is performed by the Geant4Converter class called by this method.

Author
M.Frank
Version
1.0

Definition at line 34 of file Geant4DetectorGeometryConstruction.cpp.

Constructor & Destructor Documentation

◆ Geant4DetectorGeometryConstruction()

Geant4DetectorGeometryConstruction::Geant4DetectorGeometryConstruction ( Geant4Context ctxt,
const std::string &  nam 
)

Initializing constructor for DDG4.

Initializing constructor for other clients.

Definition at line 133 of file Geant4DetectorGeometryConstruction.cpp.

◆ ~Geant4DetectorGeometryConstruction()

Geant4DetectorGeometryConstruction::~Geant4DetectorGeometryConstruction ( )
virtual

Default destructor.

Definition at line 156 of file Geant4DetectorGeometryConstruction.cpp.

Member Function Documentation

◆ checkVolume()

int Geant4DetectorGeometryConstruction::checkVolume ( const char *  vol_path)
private

Check geant4 volume.

Definition at line 377 of file Geant4DetectorGeometryConstruction.cpp.

◆ constructGeo()

void Geant4DetectorGeometryConstruction::constructGeo ( Geant4DetectorConstructionContext ctxt)
overridevirtual

Geometry construction callback. Called at "Construct()".

Reimplemented from dd4hep::sim::Geant4DetectorConstruction.

Definition at line 161 of file Geant4DetectorGeometryConstruction.cpp.

◆ installCommandMessenger()

void Geant4DetectorGeometryConstruction::installCommandMessenger ( )
overridevirtual

Install command control messenger to write GDML file from command prompt.

Reimplemented from dd4hep::sim::Geant4Action.

Definition at line 465 of file Geant4DetectorGeometryConstruction.cpp.

◆ printG4()

void Geant4DetectorGeometryConstruction::printG4 ( const std::string &  prefix,
const G4VPhysicalVolume *  g4pv 
) const
private

Definition at line 438 of file Geant4DetectorGeometryConstruction.cpp.

◆ printG4Tree()

int Geant4DetectorGeometryConstruction::printG4Tree ( const char *  vol_path)
private

Print geant4 volume tree.

Definition at line 448 of file Geant4DetectorGeometryConstruction.cpp.

◆ printMaterial()

int Geant4DetectorGeometryConstruction::printMaterial ( const char *  mat_name)
private

Print geant4 material.

Definition at line 212 of file Geant4DetectorGeometryConstruction.cpp.

◆ printVolTree()

int Geant4DetectorGeometryConstruction::printVolTree ( const char *  vol_path)
private

Print volume tree WITHOUT attributes.

Definition at line 356 of file Geant4DetectorGeometryConstruction.cpp.

◆ printVolume()

int Geant4DetectorGeometryConstruction::printVolume ( const char *  vol_path)
private

Print geant4 volume.

Definition at line 324 of file Geant4DetectorGeometryConstruction.cpp.

◆ printVolumeObj()

int Geant4DetectorGeometryConstruction::printVolumeObj ( const char *  vol_path,
PlacedVolume  pv,
int  flg 
)
private

Print geant4 volume.

Definition at line 241 of file Geant4DetectorGeometryConstruction.cpp.

◆ printVolumeTree()

int Geant4DetectorGeometryConstruction::printVolumeTree ( const char *  vol_path)
private

Print volume tree with attributes.

Print geant4 volume.

Definition at line 336 of file Geant4DetectorGeometryConstruction.cpp.

◆ resolve_path()

std::pair< std::string, dd4hep::PlacedVolume > Geant4DetectorGeometryConstruction::resolve_path ( const char *  vol_path) const
private

Definition at line 196 of file Geant4DetectorGeometryConstruction.cpp.

◆ writeGDML()

int Geant4DetectorGeometryConstruction::writeGDML ( const char *  gdml_output)
private

Write GDML file.

Definition at line 410 of file Geant4DetectorGeometryConstruction.cpp.

Member Data Documentation

◆ m_debugElements

bool dd4hep::sim::Geant4DetectorGeometryConstruction::m_debugElements = false
private

Property: Flag to debug elements during conversion mechanism.

Definition at line 40 of file Geant4DetectorGeometryConstruction.cpp.

◆ m_debugLimits

bool dd4hep::sim::Geant4DetectorGeometryConstruction::m_debugLimits = false
private

Property: Flag to debug limit sets during conversion mechanism.

Definition at line 52 of file Geant4DetectorGeometryConstruction.cpp.

◆ m_debugMaterials

bool dd4hep::sim::Geant4DetectorGeometryConstruction::m_debugMaterials = false
private

Property: Flag to debug materials during conversion mechanism.

Definition at line 38 of file Geant4DetectorGeometryConstruction.cpp.

◆ m_debugPlacements

bool dd4hep::sim::Geant4DetectorGeometryConstruction::m_debugPlacements = false
private

Property: Flag to debug placements during conversion mechanism.

Definition at line 46 of file Geant4DetectorGeometryConstruction.cpp.

◆ m_debugReflections

bool dd4hep::sim::Geant4DetectorGeometryConstruction::m_debugReflections = false
private

Property: Flag to debug reflections during conversion mechanism.

Definition at line 48 of file Geant4DetectorGeometryConstruction.cpp.

◆ m_debugRegions

bool dd4hep::sim::Geant4DetectorGeometryConstruction::m_debugRegions = false
private

Property: Flag to debug regions during conversion mechanism.

Definition at line 50 of file Geant4DetectorGeometryConstruction.cpp.

◆ m_debugShapes

bool dd4hep::sim::Geant4DetectorGeometryConstruction::m_debugShapes = false
private

Property: Flag to debug shapes during conversion mechanism.

Definition at line 42 of file Geant4DetectorGeometryConstruction.cpp.

◆ m_debugSurfaces

bool dd4hep::sim::Geant4DetectorGeometryConstruction::m_debugSurfaces = false
private

Property: Flag to debug regions during conversion mechanism.

Definition at line 54 of file Geant4DetectorGeometryConstruction.cpp.

◆ m_debugVolumes

bool dd4hep::sim::Geant4DetectorGeometryConstruction::m_debugVolumes = false
private

Property: Flag to debug volumes during conversion mechanism.

Definition at line 44 of file Geant4DetectorGeometryConstruction.cpp.

◆ m_dumpGDML

std::string dd4hep::sim::Geant4DetectorGeometryConstruction::m_dumpGDML
private

Property: G4 GDML dump file name (default: empty. If non empty, dump)

Definition at line 64 of file Geant4DetectorGeometryConstruction.cpp.

◆ m_dumpHierarchy

unsigned long dd4hep::sim::Geant4DetectorGeometryConstruction::m_dumpHierarchy = 0
private

Property: Dump geometry hierarchy if not NULL. Flags can steer actions.

Definition at line 36 of file Geant4DetectorGeometryConstruction.cpp.

◆ m_geoInfoPrintLevel

int dd4hep::sim::Geant4DetectorGeometryConstruction::m_geoInfoPrintLevel
private

Property: Printout level of info object.

Definition at line 62 of file Geant4DetectorGeometryConstruction.cpp.

◆ m_printPlacements

bool dd4hep::sim::Geant4DetectorGeometryConstruction::m_printPlacements = false
private

Property: Flag to dump all placements after the conversion procedure.

Definition at line 57 of file Geant4DetectorGeometryConstruction.cpp.

◆ m_printSensitives

bool dd4hep::sim::Geant4DetectorGeometryConstruction::m_printSensitives = false
private

Property: Flag to dump all sensitives after the conversion procedure.

Definition at line 59 of file Geant4DetectorGeometryConstruction.cpp.


The documentation for this class was generated from the following file: