5#ifndef G4ATLASTOOLS_PHYSICSLISTSVC_H
6#define G4ATLASTOOLS_PHYSICSLISTSVC_H
14#include "GaudiKernel/ToolHandle.h"
17class G4VModularPhysicsList;
18class G4VUserPhysicsList;
41 void CommandLog(
int returnCode,
const std::string& commandString)
const;
43 ToolHandle<IPhysicsOptionTool>
m_fastSimulationConstructor{
this,
"FastSimConstructor",
"",
"Physics Constructor for fast simulation physics"};
45 ToolHandleArray<IPhysicsOptionTool>
m_phys_option{
this,
"PhysOption", {},
"Tool handle array of physics options" };
46 ToolHandleArray<IPhysicsOptionTool>
m_phys_decay{
this,
"PhysicsDecay", {},
"Tool handle array of physics decays"};
48 Gaudi::Property<std::string>
m_physicsListName{
this,
"PhysicsList",
"FTFP_BERT",
"Name for physics list"};
49 Gaudi::Property<double>
m_neutronTimeCut{
this,
"NeutronTimeCut", 0,
"Time cut for neutron killer"};
50 Gaudi::Property<double>
m_neutronEnergyCut{
this,
"NeutronEnergyCut", 0,
"Energy cut for neutron killer"};
51 Gaudi::Property<double>
m_generalCut{
this,
"GeneralCut", 0,
"General cut"};
52 Gaudi::Property<double>
m_emMaxEnergy{
this,
"EMMaxEnergy", -1.,
"Maximum energy for EM tables"};
53 Gaudi::Property<double>
m_emMinEnergy{
this,
"EMMinEnergy", -1.,
"Minimum energy for EM tables"};
60 Gaudi::Property<int>
m_emNumberOfBinsPerDecade{
this,
"EMNumberOfBinsPerDecade", -1,
"Number of bins per Energy decade. Used for both DeDx and for the Lambda binning."};
61 Gaudi::Property<bool>
m_applyEMCuts{
this,
"ApplyEMCuts",
true,
"Apply cuts EM flag in Geant4"};
62 Gaudi::Property<bool>
m_quietMode{
this,
"QuietMode",
false,
""};
63 Gaudi::Property<bool>
m_unstableAntiNeutrons{
this,
"UnstableAntiNeutrons",
false,
"Bugfix for ATLASSIM-6634 until we switch to using Geant4 11"};
Gaudi::Property< double > m_neutronEnergyCut
!< Time cut for neutrons (in the neutron killer process)
Gaudi::Property< double > m_emMaxEnergy
!< A general cut - this isn't normally used in our simulation
ToolHandleArray< IPhysicsOptionTool > m_phys_option
virtual void SetPhysicsOptions() override
Gaudi::Property< double > m_emMinEnergy
!< Maximum energy of the pre-calculated EM cross-section tables
Gaudi::Property< double > m_neutronTimeCut
!< Name for the physics list (property to be set in the tool)
Gaudi::Property< bool > m_applyEMCuts
!< Number of bins per Energy decade. Used for both DeDx and for the Lambda binning.
virtual void SetPhysicsList() override
Gaudi::Property< int > m_emNumberOfBinsPerDecade
!< Minimum energy of the pre-calculated EM cross-section tables
ToolHandle< IPhysicsOptionTool > m_fastSimulationConstructor
virtual StatusCode initialize() override
Gaudi::Property< bool > m_unstableAntiNeutrons
PhysicsListSvc(const std::string &name, ISvcLocator *pSvcLocator)
Gaudi::Property< bool > m_quietMode
!< Switch for the G4 "apply cuts" EM physics flag
virtual G4VUserPhysicsList * GetPhysicsList() override
ToolHandleArray< IPhysicsOptionTool > m_phys_decay
Gaudi::Property< std::string > m_physicsListName
!< Handle on the physics list
G4VModularPhysicsList * m_physicsList
virtual void CreatePhysicsList() override
void CommandLog(int returnCode, const std::string &commandString) const
This command prints a message about a G4Command depending on its returnCode.
virtual ~PhysicsListSvc()=default
Gaudi::Property< double > m_generalCut
!< Energy cut for neutrons (in the neutron killer process)