5 #ifndef ISF_GEANT4TOOLS_G4LEGACYTRANSPORTTOOL_H
6 #define ISF_GEANT4TOOLS_G4LEGACYTRANSPORTTOOL_H
11 #include "GaudiKernel/ToolHandle.h"
12 #include "GaudiKernel/ServiceHandle.h"
37 #include <unordered_map>
85 using
ISF::BaseSimulatorG4Tool::releaseEvent;
86 using
ISF::BaseSimulatorG4Tool::setupEvent;
87 using
ISF::BaseSimulatorG4Tool::simulate;
88 using
ISF::BaseSimulatorG4Tool::simulateVector;
114 void commandLog(
int returnCode,
const std::string& commandString)
const;
122 Gaudi::Property<bool> m_doTiming{
this,
"PrintTimingInfo",
true,
""};
124 float m_accumulatedEventTime{0.};
125 float m_accumulatedEventTimeSq{0.};
126 unsigned int m_nrOfEntries{0};
128 G4Timer* m_runTimer{
nullptr};
129 G4Timer* m_eventTimer{
nullptr};
133 std::unordered_map<ISF::ISFParticle const*, ISF::ISFParticleContainer>
140 Gaudi::Property<std::string> m_mcEventCollectionName{
141 this,
"McEventCollection",
"TruthEvent",
""};
143 PublicToolHandle<ISF::IG4RunManagerHelper> m_g4RunManagerHelper{
144 this,
"G4RunManagerHelper",
145 "iGeant4::G4RunManagerHelper/G4RunManagerHelper",
""};
148 Gaudi::Property<std::string> m_libList{
this,
"Dll",
"",
""};
149 Gaudi::Property<std::string> m_physList{
this,
"Physics",
"",
""};
150 Gaudi::Property<std::string> m_fieldMap{
this,
"FieldMap",
"",
""};
151 Gaudi::Property<bool> m_releaseGeoModel{
this,
"ReleaseGeoModel",
true,
""};
152 Gaudi::Property<bool> m_recordFlux{
this,
"RecordFlux",
false,
""};
153 Gaudi::Property<bool> m_quietMode{
this,
"QuietMode",
false,
""};
155 Gaudi::Property<std::vector<std::string> > m_g4commands{
156 this,
"G4Commands", {},
"Commands to send to the G4UI"};
158 Gaudi::Property<bool> m_useMT{
this,
"MultiThreading",
false,
159 "Multi-threading specific settings"};
160 Gaudi::Property<bool> m_activateParallelGeometries{
161 this,
"ActivateParallelWorlds",
false,
162 "Toggle on/off the G4 parallel geometry system"};
167 Gaudi::Property<std::string> m_randomStreamName{
this,
"RandomStreamName",
171 "UserLimitsSvc",
""};
175 PublicToolHandle<IDetectorConstructionTool> m_detConstruction{
this,
"DetectorConstruction",
"",
"Tool handle of the DetectorConstruction"};
178 this,
"InputConverter",
"ISF_InputConverter",
""};
181 "PhysicsListSvc",
""};
183 PublicToolHandle<ISensitiveDetectorMasterTool> m_senDetTool{
184 this,
"SenDetMasterTool",
"SensitiveDetectorMasterTool",
""};
186 PublicToolHandle<IFastSimulationMasterTool> m_fastSimTool{
187 this,
"FastSimMasterTool",
"FastSimulationMasterTool",
""};
188 PublicToolHandleArray<IPhysicsInitializationTool> m_physicsInitializationTools{
this,
"PhysicsInitializationTools", {},
"Physics initialization happening after Geant4 initialization"};
194 #endif // ISF_GEANT4TOOLS_G4LEGACYTRANSPORTTOOL_H