5#ifndef G4ATLASALG_G4AtlasAlg_H
6#define G4ATLASALG_G4AtlasAlg_H
16#include "GaudiKernel/ServiceHandle.h"
17#include "GaudiKernel/ToolHandle.h"
59 G4AtlasAlg(
const std::string& name, ISvcLocator* pSvcLocator);
95 void commandLog(
int returnCode,
const std::string& commandString)
const;
120 Gaudi::Property<std::string>
m_libList{
this,
"Dll",
"",
""};
121 Gaudi::Property<std::string>
m_physList{
this,
"Physics",
"",
""};
122 Gaudi::Property<std::string>
m_fieldMap{
this,
"FieldMap",
"",
""};
123 Gaudi::Property<std::string>
m_rndmGen{
this,
"RandomGenerator",
"athena",
""};
128 Gaudi::Property<std::vector<std::string> >
m_g4commands{
this,
"G4Commands", {},
"Commands to send to the G4UI"};
130 Gaudi::Property<bool>
m_useMT{
this,
"MultiThreading",
false,
"Multi-threading specific settings"};
132 BooleanProperty
m_useShadowEvent{
this,
"UseShadowEvent",
false,
"New approach to selecting particles for simulation" };
142 PublicToolHandle<IDetectorConstructionTool>
m_detConstruction{
this,
"DetectorConstruction",
"",
"Tool handle of the DetectorConstruction"};
143 PublicToolHandleArray<IPhysicsInitializationTool>
m_physicsInitializationTools{
this,
"PhysicsInitializationTools", {},
"Physics initialization happening after Geant4 initialization"};
148 ToolHandle<ISF::IGenEventFilter>
m_truthPreselectionTool{
this,
"TruthPreselectionTool",
"",
"Tool for filtering out quasi-stable particle daughters"};
155 PublicToolHandle<ISensitiveDetectorMasterTool>
m_senDetTool{
this,
"SenDetMasterTool",
"SensitiveDetectorMasterTool",
""};
157 PublicToolHandle<IFastSimulationMasterTool>
m_fastSimTool{
this,
"FastSimMasterTool",
"FastSimulationMasterTool",
""};
159 PublicToolHandleArray<G4UA::IUserActionTool>
m_actionTools{
this,
"UserActionTools", {},
"User action tools to be added to the G4 Action service."};
161 Gaudi::Property<std::string>
m_simplifiedGeoPath{
this,
"SimplifiedGeoPath",
"",
"Path to the simplified geometry file used to transport particles"};
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
Define macros for attributes used to control the static checker.
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
ServiceHandle< ISF::IInputConverter > m_inputConverter
Service to convert ISF_Particles into a G4Event.
Gaudi::Property< std::string > m_fieldMap
ServiceHandle< ISF::ITruthSvc > m_truthRecordSvc
Central Truth Service.
ServiceHandle< Simulation::IZeroLifetimePatcher > m_qspatcher
Quasi-Stable Particle Simulation Patcher.
void commandLog(int returnCode, const std::string &commandString) const
This command prints a message about a G4Command depending on its returnCode.
std::map< std::string, std::string > m_verbosities
Verbosity settings for Geant4.
Gaudi::Property< std::string > m_physList
Gaudi::Property< bool > m_quietMode
PublicToolHandle< ISensitiveDetectorMasterTool > m_senDetTool
Sensitive Detector Master Tool.
Gaudi::Property< bool > m_useMT
Activate multi-threading configuration.
G4AtlasAlg(const std::string &name, ISvcLocator *pSvcLocator)
Standard algorithm constructor.
StatusCode execute() override
Simulate one Athena event.
virtual ~G4AtlasAlg()
Virtual destructor.
ServiceHandle< IAthRNGSvc > m_rndmGenSvc
Random number service.
StatusCode finalize() override
Finalize the algorithm and invoke G4 run termination.
bool isClonable() const override
this Alg is Clonable (for AthenaMT)
BooleanProperty m_useShadowEvent
ToolHandle< ISF::IGenEventFilter > m_truthPreselectionTool
PublicToolHandleArray< IPhysicsInitializationTool > m_physicsInitializationTools
Gaudi::Property< std::vector< std::string > > m_g4commands
Commands to send to the G4 UI.
Gaudi::Property< std::string > m_randomStreamName
Random Stream Name.
PublicToolHandle< IFastSimulationMasterTool > m_fastSimTool
Fast Simulation Master Tool.
Gaudi::Property< bool > m_killAbortedEvents
PublicToolHandleArray< G4UA::IUserActionTool > m_actionTools
SG::ReadHandleKey< McEventCollection > m_inputTruthCollectionKey
input hard scatter collection
PublicToolHandle< IDetectorConstructionTool > m_detConstruction
Gaudi::Property< bool > m_activateParallelGeometries
ServiceHandle< G4UA::IUserActionSvc > m_userActionSvc
User Action Service.
ServiceHandle< IUserLimitsSvc > m_userLimitsSvc
Gaudi::Property< std::string > m_libList
Gaudi::Property< std::string > m_simplifiedGeoPath
ServiceHandle< ISF::IGeoIDSvc > m_geoIDSvc
Geo ID Service.
void initializeG4()
Poorly named possibly unused method which sets some verbosities.
Gaudi::Property< bool > m_recordFlux
SG::WriteHandleKey< McEventCollection > m_outputTruthCollectionKey
output hard scatter truth collection
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
ServiceHandle< IPhysicsListSvc > m_physListSvc
Physics List Tool.
Gaudi::Property< bool > m_releaseGeoModel
StatusCode initialize ATLAS_NOT_THREAD_SAFE() override
Initialize the algorithm.
Gaudi::Property< std::string > m_rndmGen
Gaudi::Property< bool > m_flagAbortedEvents
void initializeOnce()
G4 initialization called only by the first alg instance.
void finalizeOnce()
G4 finalization called only by the first alg instance.
void releaseGeoModel()
Releases the GeoModel geometry from memory once it has been used to build the G4 geometry and is no-l...
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.