5#ifndef G4ATLASALG_G4AtlasAlg_H
6#define G4ATLASALG_G4AtlasAlg_H
16#include "GaudiKernel/ServiceHandle.h"
17#include "GaudiKernel/ToolHandle.h"
58 G4AtlasAlg(
const std::string& name, ISvcLocator* pSvcLocator);
78 StatusCode
execute(
const EventContext& ctx)
override;
94 void commandLog(
int returnCode,
const std::string& commandString)
const;
117 Gaudi::Property<std::string>
m_libList{
this,
"Dll",
"",
""};
118 Gaudi::Property<std::string>
m_physList{
this,
"Physics",
"",
""};
119 Gaudi::Property<std::string>
m_fieldMap{
this,
"FieldMap",
"",
""};
120 Gaudi::Property<std::string>
m_rndmGen{
this,
"RandomGenerator",
"athena",
""};
125 Gaudi::Property<std::vector<std::string> >
m_g4commands{
this,
"G4Commands", {},
"Commands to send to the G4UI"};
127 Gaudi::Property<bool>
m_useMT{
this,
"MultiThreading",
false,
"Multi-threading specific settings"};
129 BooleanProperty
m_useShadowEvent{
this,
"UseShadowEvent",
false,
"New approach to selecting particles for simulation" };
139 PublicToolHandle<IDetectorConstructionTool>
m_detConstruction{
this,
"DetectorConstruction",
"",
"Tool handle of the DetectorConstruction"};
140 PublicToolHandleArray<IPhysicsInitializationTool>
m_physicsInitializationTools{
this,
"PhysicsInitializationTools", {},
"Physics initialization happening after Geant4 initialization"};
145 ToolHandle<ISF::IGenEventFilter>
m_truthPreselectionTool{
this,
"TruthPreselectionTool",
"",
"Tool for filtering out quasi-stable particle daughters"};
152 PublicToolHandle<ISensitiveDetectorMasterTool>
m_senDetTool{
this,
"SenDetMasterTool",
"SensitiveDetectorMasterTool",
""};
154 PublicToolHandle<IFastSimulationMasterTool>
m_fastSimTool{
this,
"FastSimMasterTool",
"FastSimulationMasterTool",
""};
156 PublicToolHandleArray<G4UA::IUserActionTool>
m_actionTools{
this,
"UserActionTools", {},
"User action tools to be added to the G4 Action service."};
158 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.
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.
virtual ~G4AtlasAlg()
Virtual destructor.
ServiceHandle< IAthRNGSvc > m_rndmGenSvc
Random number service.
StatusCode execute(const EventContext &ctx) override
Simulate one Athena event.
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
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.