ATLAS Offline Software
ActsFatrasSimTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ISF_ACTSTOOLS_ACTSFATRASSIMTOOL_H
6 #define ISF_ACTSTOOLS_ACTSFATRASSIMTOOL_H
7 
8 // Gaudi
9 #include "GaudiKernel/ServiceHandle.h"
10 #include "GaudiKernel/ToolHandle.h"
11 
12 // Athena
16 
17 // ISF
18 #include "ISF_Event/ISFParticle.h"
21 
22 // ACTS
23 #include "Acts/Utilities/UnitVectors.hpp"
24 #include "ActsInterop/Logger.h"
25 #include "Acts/Geometry/GeometryContext.hpp"
26 #include "Acts/MagneticField/MagneticFieldContext.hpp"
27 #include "Acts/EventData/GenericCurvilinearTrackParameters.hpp"
28 #include "Acts/Propagator/Navigator.hpp"
29 #include "Acts/Propagator/EigenStepper.hpp"
30 #include "Acts/Propagator/StraightLineStepper.hpp"
31 #include "Acts/Propagator/detail/SteppingLogger.hpp"
32 #include "Acts/Propagator/ActionList.hpp"
33 #include "Acts/Propagator/Propagator.hpp"
34 #include "Acts/Definitions/ParticleData.hpp"
35 #include "ActsFatras/EventData/ProcessType.hpp"
36 #include "ActsFatras/Kernel/InteractionList.hpp"
37 #include "ActsFatras/Kernel/Simulation.hpp"
38 #include "ActsFatras/Kernel/SimulationResult.hpp"
39 #include "ActsFatras/Physics/Decay/NoDecay.hpp"
40 #include "ActsFatras/Physics/StandardInteractions.hpp"
41 #include "ActsFatras/Selectors/SurfaceSelectors.hpp"
42 // Tracking
45 
46 #include <algorithm>
47 #include <cassert>
48 #include <vector>
49 
50 class AtlasDetectorID;
51 
52 namespace iFatras {
53  class ISimHitCreator;
54 }
55 
56 namespace ISF {
57 class IParticleHelper;
58 
66 
67  public:
71  bool operator()(const Acts::Surface &surface) const {
72  bool isSensitive = surface.associatedDetectorElement();
73  return isSensitive;
74  }
75  };
76  // SingleParticleSimulation
83  template <typename propagator_t, typename interactions_t,
84  typename hit_surface_selector_t, typename decay_t>
87  propagator_t propagator;
89  decay_t decay;
91  interactions_t interactions;
93  hit_surface_selector_t selectHitSurface;
95  double maxStepSize = 3.0; // leght in m
96  double maxStep = 1000;
97  double maxRungeKuttaStepTrials = 10000;
98  double pathLimit = 100.0; // lenght in cm
99  bool loopProtection = true;
100  double loopFraction = 0.5;
101  double targetTolerance = 0.0001;
102  double stepSizeCutOff = 0.;
103  // parameters for densEnv propagator options
104  double meanEnergyLoss = true;
105  bool includeGgradient = true;
106  double momentumCutOff = 0.;
107 
109  std::shared_ptr<const Acts::Logger> localLogger = nullptr;
110 
112  SingleParticleSimulation(propagator_t &&propagator_,
113  std::shared_ptr<const Acts::Logger> localLogger_)
114  : propagator(propagator_), localLogger(localLogger_) {}
115 
117  const Acts::Logger &logger() const { return *localLogger; }
118 
128  template <typename generator_t>
129  Acts::Result<ActsFatras::SimulationResult> simulate(
130  const Acts::GeometryContext &geoCtx,
131  const Acts::MagneticFieldContext &magCtx, generator_t &generator,
132  const ActsFatras::Particle &particle) const {
133  assert(localLogger and "Missing local logger");
134  ACTS_VERBOSE("Using ActsFatrasSimTool simulate()");
135  // propagator-related additional types
136  using SteppingLogger = Acts::detail::SteppingLogger;
137  using Actor = ActsFatras::detail::SimulationActor<generator_t, decay_t, interactions_t, hit_surface_selector_t>;
138  using Aborter = typename Actor::ParticleNotAlive;
139  using Result = typename Actor::result_type;
140  using Actions = Acts::ActionList<SteppingLogger, Actor>;
141  using Abort = Acts::AbortList<Aborter, Acts::EndOfWorldReached>;
142  using PropagatorOptions = Acts::DenseStepperPropagatorOptions<Actions, Abort>;
143 
144  // Construct per-call options.
145  PropagatorOptions options(geoCtx, magCtx);
146  // setup the interactor as part of the propagator options
147  auto &actor = options.actionList.template get<Actor>();
148  actor.generator = &generator;
149  actor.decay = decay;
150  actor.interactions = interactions;
151  actor.selectHitSurface = selectHitSurface;
152  actor.initialParticle = particle;
153  // use AnyCharge to be able to handle neutral and charged parameters
154  Acts::GenericCurvilinearTrackParameters startPoint(
155  particle.fourPosition(), particle.direction(),
156  particle.qOverP(), std::nullopt, particle.hypothesis());
158  options.loopProtection = loopProtection;
160  options.maxSteps = maxStep;
161 
162  auto result = propagator.propagate(startPoint, options);
163  if (not result.ok()) {
164  return result.error();
165  }
166  return result.value().template get<Result>();
167  }
168  };// end of SingleParticleSimulation
169 
170  // Standard generator
171  using Generator = std::ranlux48;
172  // Use default navigator
173  using Navigator = Acts::Navigator;
174  // Propagate charged particles numerically in the B-field
175  using ChargedStepper = Acts::EigenStepper<Acts::StepperExtensionList<
176  Acts::DefaultExtension,
177  Acts::DenseEnvironmentExtension
178  >
179  >;
180  using ChargedPropagator = Acts::Propagator<ChargedStepper, Navigator>;
181  // Propagate neutral particles in straight lines
182  using NeutralStepper = Acts::StraightLineStepper;
183  using NeutralPropagator = Acts::Propagator<NeutralStepper, Navigator>;
184 
185  // ===============================
186  // Setup ActsFatras simulator types
187  // Charged
188  using ChargedSelector = ActsFatras::ChargedSelector;
190  ActsFatras::StandardChargedElectroMagneticInteractions;
193  ActsFatras::NoDecay>;
194  // Neutral
195  using NeutralSelector = ActsFatras::NeutralSelector;
196  using NeutralInteractions = ActsFatras::InteractionList<>;
198  NeutralPropagator, NeutralInteractions, ActsFatras::NoSurface,
199  ActsFatras::NoDecay>;
200  // Combined
203  // ===============================
204 
205  ActsFatrasSimTool(const std::string& type, const std::string& name,
206  const IInterface* parent);
207  virtual ~ActsFatrasSimTool();
208 
209  // ISF BaseSimulatorTool Interface methods
210  virtual StatusCode initialize() override;
212  McEventCollection*) override;
213  virtual StatusCode simulateVector(
215  ISFParticleContainer& secondaries,
216  McEventCollection* mcEventCollection, McEventCollection *shadowTruth=nullptr) override;
217  virtual StatusCode setupEvent(const EventContext&) override {
218  return StatusCode::SUCCESS; };
219  virtual StatusCode releaseEvent(const EventContext&) override {
220  return StatusCode::SUCCESS; };
221  virtual ISF::SimulationFlavor simFlavor() const override{
222  return ISF::Fatras; };
223 
224  virtual Acts::MagneticFieldContext getMagneticFieldContext(
225  const EventContext&) const;
226 
227  private:
228  // Templated tool retrieval
229  template <class T>
230  StatusCode retrieveTool(ToolHandle<T>& thandle) {
231  if (!thandle.empty() && thandle.retrieve().isFailure()) {
232  ATH_MSG_FATAL("Cannot retrieve " << thandle << ". Abort.");
233  return StatusCode::FAILURE;
234  } else ATH_MSG_DEBUG("Successfully retrieved " << thandle);
235  return StatusCode::SUCCESS;
236  }
237 
238  // Random number service
239  ServiceHandle<IAthRNGSvc> m_rngSvc{this, "RNGServec", "AthRNGSvc"};
241  Gaudi::Property<std::string> m_randomEngineName{this, "RandomEngineName",
242  "RandomEngineName", "Name of random number stream"};
243 
244  // Tracking geometry
245  ToolHandle<IActsTrackingGeometryTool> m_trackingGeometryTool{
246  this, "TrackingGeometryTool", "ActsTrackingGeometryTool"};
247  std::shared_ptr<const Acts::TrackingGeometry> m_trackingGeometry;
248 
249  // Magnetic field
250  SG::ReadCondHandleKey<AtlasFieldCacheCondObj> m_fieldCacheCondObjInputKey {this, "AtlasFieldCacheCondObj", "fieldCondObj", "Name of the Magnetic Field conditions object key"};
251 
252  // Logging
253  std::shared_ptr<const Acts::Logger> m_logger{nullptr};
254 
255  // ISF Tools
256  PublicToolHandle<ISF::IParticleFilter> m_particleFilter{
257  this, "ParticleFilter", "", "Particle filter kinematic cuts, etc."};
258 
259  Gaudi::Property<double> m_interact_minPt{this, "Interact_MinPt", 50.0,
260  "Min pT of the interactions (MeV)"};
261 
262  // DensEnviroment Propergator option
263  Gaudi::Property<bool> m_meanEnergyLoss{this, "MeanEnergyLoss", true, "Toggle between mean and mode evaluation of energy loss"};
264  Gaudi::Property<bool> m_includeGgradient{this, "IncludeGgradient", true, "Boolean flag for inclusion of d(dEds)d(q/p) into energy loss"};
265  Gaudi::Property<double> m_momentumCutOff{this, "MomentumCutOff", 0., "Cut-off value for the momentum in SI units"};
266  // Propergator option
267  Gaudi::Property<double> m_maxStep{this, "MaxSteps", 1000,
268  "Max number of steps"};
269  Gaudi::Property<double> m_maxRungeKuttaStepTrials{this, "MaxRungeKuttaStepTrials", 10000,
270  "Maximum number of Runge-Kutta steps for the stepper step call"};
271  Gaudi::Property<double> m_maxStepSize{this, "MaxStepSize", 3.0,
272  "Max step size (converted to Acts::UnitConstants::m)"};
273  Gaudi::Property<double> m_pathLimit{this, "PathLimit", 100.0,
274  "Track path limit (converted to Acts::UnitConstants::cm)"};
275  Gaudi::Property<bool> m_loopProtection{this, "LoopProtection", true,
276  "Loop protection, it adapts the pathLimit"};
277  Gaudi::Property<double> m_loopFraction{this, "LoopFraction", 0.5,
278  "Allowed loop fraction, 1 is a full loop"};
279  Gaudi::Property<double> m_tolerance{this, "Tolerance", 0.0001,
280  "Tolerance for the error of the integration"};
281  Gaudi::Property<double> m_stepSizeCutOff{this, "StepSizeCutOff", 0.,
282  "Cut-off value for the step size"};
283 
284  Gaudi::Property<std::map<int,int>> m_processTypeMap{this, "ProcessTypeMap",
285  {{0,0}, {1,201}, {2,14}, {3,3}, {4,121}}, "proessType map <ActsFatras,G4>"};
286  //{{ActsProcessType::eUndefined,0}, {ActsProcessType::eDecay,201}, {ActsProcessType::ePhotonConversion,14}, {ActsProcessType::eBremsstrahlung,3}, {ActsProcessType::eNuclearInteraction,121}}
287  inline int getATLASProcessCode(ActsFatras::ProcessType actspt){return m_processTypeMap[static_cast<uint32_t>(actspt)];};
288 };
289 
290 } // namespace ISF
291 
292 #endif
ISF::ISFParticleContainer
std::list< ISF::ISFParticle * > ISFParticleContainer
generic ISFParticle container (not necessarily a std::list!)
Definition: ISFParticleContainer.h:23
ISF::ActsFatrasSimTool::ChargedPropagator
Acts::Propagator< ChargedStepper, Navigator > ChargedPropagator
Definition: ActsFatrasSimTool.h:180
ISF::ActsFatrasSimTool::m_interact_minPt
Gaudi::Property< double > m_interact_minPt
Definition: ActsFatrasSimTool.h:259
ISF::ActsFatrasSimTool::Generator
std::ranlux48 Generator
Definition: ActsFatrasSimTool.h:171
ISF::ActsFatrasSimTool::m_rngSvc
ServiceHandle< IAthRNGSvc > m_rngSvc
Definition: ActsFatrasSimTool.h:239
ISF::ActsFatrasSimTool::SingleParticleSimulation::localLogger
std::shared_ptr< const Acts::Logger > localLogger
Local logger for debug output.
Definition: ActsFatrasSimTool.h:109
ISF::ActsFatrasSimTool::m_trackingGeometry
std::shared_ptr< const Acts::TrackingGeometry > m_trackingGeometry
Definition: ActsFatrasSimTool.h:247
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition: ParticleHypothesis.h:76
ISF::ActsFatrasSimTool::~ActsFatrasSimTool
virtual ~ActsFatrasSimTool()
Definition: ActsFatrasSimTool.cxx:21
get_generator_info.result
result
Definition: get_generator_info.py:21
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
ISF::ActsFatrasSimTool::m_meanEnergyLoss
Gaudi::Property< bool > m_meanEnergyLoss
Definition: ActsFatrasSimTool.h:263
ISF::ActsFatrasSimTool::m_momentumCutOff
Gaudi::Property< double > m_momentumCutOff
Definition: ActsFatrasSimTool.h:265
ISF::ActsFatrasSimTool::SingleParticleSimulation::logger
const Acts::Logger & logger() const
Provide access to the local logger instance, e.g. for logging macros.
Definition: ActsFatrasSimTool.h:117
ISF::ActsFatrasSimTool::SingleParticleSimulation::targetTolerance
double targetTolerance
Definition: ActsFatrasSimTool.h:101
ISF::ActsFatrasSimTool::SingleParticleSimulation::interactions
interactions_t interactions
Interaction list containing the simulated interactions.
Definition: ActsFatrasSimTool.h:91
ISF::ActsFatrasSimTool::NeutralPropagator
Acts::Propagator< NeutralStepper, Navigator > NeutralPropagator
Definition: ActsFatrasSimTool.h:183
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
ISF::ActsFatrasSimTool::SingleParticleSimulation::SingleParticleSimulation
SingleParticleSimulation(propagator_t &&propagator_, std::shared_ptr< const Acts::Logger > localLogger_)
Alternatively construct the simulator with an external logger.
Definition: ActsFatrasSimTool.h:112
ISF::ActsFatrasSimTool::simulateVector
virtual StatusCode simulateVector(const ISFParticleVector &particles, ISFParticleContainer &secondaries, McEventCollection *mcEventCollection, McEventCollection *shadowTruth=nullptr) override
Simulation call for vectors of particles.
Definition: ActsFatrasSimTool.cxx:72
ISF::ActsFatrasSimTool::m_pathLimit
Gaudi::Property< double > m_pathLimit
Definition: ActsFatrasSimTool.h:273
ISF::ActsFatrasSimTool::HitSurfaceSelector
Simple struct to select surfaces where hits should be generated.
Definition: ActsFatrasSimTool.h:69
ISF::ISFParticle
Definition: ISFParticle.h:42
ATLASMagneticFieldWrapper.h
ISF::ActsFatrasSimTool::NeutralSelector
ActsFatras::NeutralSelector NeutralSelector
Definition: ActsFatrasSimTool.h:195
ISF::ActsFatrasSimTool::SingleParticleSimulation::meanEnergyLoss
double meanEnergyLoss
Definition: ActsFatrasSimTool.h:104
ISF::ActsFatrasSimTool::SingleParticleSimulation::stepSizeCutOff
double stepSizeCutOff
Definition: ActsFatrasSimTool.h:102
ISF::ActsFatrasSimTool::m_includeGgradient
Gaudi::Property< bool > m_includeGgradient
Definition: ActsFatrasSimTool.h:264
xAOD::Particle
Particle_v1 Particle
Define the latest version of the particle class.
Definition: Event/xAOD/xAODParticleEvent/xAODParticleEvent/Particle.h:17
ISF::ActsFatrasSimTool::m_loopFraction
Gaudi::Property< double > m_loopFraction
Definition: ActsFatrasSimTool.h:277
ISF::ActsFatrasSimTool::ChargedInteractions
ActsFatras::StandardChargedElectroMagneticInteractions ChargedInteractions
Definition: ActsFatrasSimTool.h:190
ISF::ActsFatrasSimTool::m_loopProtection
Gaudi::Property< bool > m_loopProtection
Definition: ActsFatrasSimTool.h:275
ISF::ActsFatrasSimTool::SingleParticleSimulation::propagator
propagator_t propagator
How and within which geometry to propagate the particle.
Definition: ActsFatrasSimTool.h:87
ISF::ActsFatrasSimTool::ATLAS_THREAD_SAFE
ATHRNG::RNGWrapper *m_randomEngine ATLAS_THREAD_SAFE
Definition: ActsFatrasSimTool.h:240
iFatras
Definition: ActsFatrasSimTool.h:52
cm
const double cm
Definition: Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/tools/FCAL_ChannelMap.cxx:25
ISF::ActsFatrasSimTool::ChargedStepper
Acts::EigenStepper< Acts::StepperExtensionList< Acts::DefaultExtension, Acts::DenseEnvironmentExtension > > ChargedStepper
Definition: ActsFatrasSimTool.h:179
ISF::ActsFatrasSimTool::m_maxStepSize
Gaudi::Property< double > m_maxStepSize
Definition: ActsFatrasSimTool.h:271
ISFParticle.h
ISF::ActsFatrasSimTool::ChargedSimulation
SingleParticleSimulation< ChargedPropagator, ChargedInteractions, HitSurfaceSelector, ActsFatras::NoDecay > ChargedSimulation
Definition: ActsFatrasSimTool.h:193
ISF::ActsFatrasSimTool::Navigator
Acts::Navigator Navigator
Definition: ActsFatrasSimTool.h:173
iFatras::ISimHitCreator
Definition: ISimHitCreator.h:50
ISF::ActsFatrasSimTool::initialize
virtual StatusCode initialize() override
Definition: ActsFatrasSimTool.cxx:23
IParticleFilter.h
ISF::ActsFatrasSimTool::SingleParticleSimulation::maxRungeKuttaStepTrials
double maxRungeKuttaStepTrials
Definition: ActsFatrasSimTool.h:97
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
ISF::ActsFatrasSimTool::SingleParticleSimulation::includeGgradient
bool includeGgradient
Definition: ActsFatrasSimTool.h:105
ISF::ActsFatrasSimTool::SingleParticleSimulation::simulate
Acts::Result< ActsFatras::SimulationResult > simulate(const Acts::GeometryContext &geoCtx, const Acts::MagneticFieldContext &magCtx, generator_t &generator, const ActsFatras::Particle &particle) const
Simulate a single particle without secondaries.
Definition: ActsFatrasSimTool.h:129
ISF::ISFParticleVector
std::vector< ISF::ISFParticle * > ISFParticleVector
ISFParticle vector.
Definition: ISFParticleContainer.h:26
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ISF::ActsFatrasSimTool::SingleParticleSimulation
Single particle simulation with fixed propagator, interactions, and decay.
Definition: ActsFatrasSimTool.h:85
BaseSimulatorTool.h
python.AtlRunQueryLib.options
options
Definition: AtlRunQueryLib.py:379
McEventCollection
This defines the McEventCollection, which is really just an ObjectVector of McEvent objects.
Definition: McEventCollection.h:33
ISF::ActsFatrasSimTool::NeutralStepper
Acts::StraightLineStepper NeutralStepper
Definition: ActsFatrasSimTool.h:182
ISF::ActsFatrasSimTool::ActsFatrasSimTool
ActsFatrasSimTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: ActsFatrasSimTool.cxx:16
ISF::ActsFatrasSimTool::ChargedSelector
ActsFatras::ChargedSelector ChargedSelector
Definition: ActsFatrasSimTool.h:188
ISF::ActsFatrasSimTool::HitSurfaceSelector::operator()
bool operator()(const Acts::Surface &surface) const
Check if the surface should be used.
Definition: ActsFatrasSimTool.h:71
ISF::ActsFatrasSimTool::SingleParticleSimulation::loopProtection
bool loopProtection
Definition: ActsFatrasSimTool.h:99
Result
Definition: fbtTestBasics.cxx:47
ISF::BaseSimulatorTool
Definition: BaseSimulatorTool.h:36
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
ATHRNG::RNGWrapper
A wrapper class for event-slot-local random engines.
Definition: RNGWrapper.h:56
ISF::ActsFatrasSimTool::SingleParticleSimulation::pathLimit
double pathLimit
Definition: ActsFatrasSimTool.h:98
ISF::Fatras
@ Fatras
Definition: SimulationFlavor.h:22
ISF::ActsFatrasSimTool::getMagneticFieldContext
virtual Acts::MagneticFieldContext getMagneticFieldContext(const EventContext &) const
Definition: ActsFatrasSimTool.cxx:193
ISF::ActsFatrasSimTool::simulate
virtual StatusCode simulate(ISFParticle &isp, ISFParticleContainer &, McEventCollection *) override
Definition: ActsFatrasSimTool.cxx:55
RNGWrapper.h
ISF::ActsFatrasSimTool::retrieveTool
StatusCode retrieveTool(ToolHandle< T > &thandle)
Definition: ActsFatrasSimTool.h:230
ISF::ActsFatrasSimTool::m_processTypeMap
Gaudi::Property< std::map< int, int > > m_processTypeMap
Definition: ActsFatrasSimTool.h:284
SG::ReadCondHandleKey< AtlasFieldCacheCondObj >
ISF::ActsFatrasSimTool::SingleParticleSimulation::selectHitSurface
hit_surface_selector_t selectHitSurface
Selector for surfaces that should generate hits.
Definition: ActsFatrasSimTool.h:93
mc.generator
generator
Configure Herwig7 These are the commands corresponding to what would go into the regular Herwig infil...
Definition: mc.MGH7_FxFx_H71-DEFAULT_test.py:18
ISF::ActsFatrasSimTool::m_logger
std::shared_ptr< const Acts::Logger > m_logger
Definition: ActsFatrasSimTool.h:253
ISF::ActsFatrasSimTool::SingleParticleSimulation::decay
decay_t decay
Decay module.
Definition: ActsFatrasSimTool.h:89
ISF
ISFParticleOrderedQueue.
Definition: PrimaryParticleInformation.h:13
ISF::ActsFatrasSimTool
Definition: ActsFatrasSimTool.h:65
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
ISF::ActsFatrasSimTool::SingleParticleSimulation::maxStepSize
double maxStepSize
parameters for propagator options
Definition: ActsFatrasSimTool.h:95
ISF::ActsFatrasSimTool::SingleParticleSimulation::loopFraction
double loopFraction
Definition: ActsFatrasSimTool.h:100
LArG4FSStartPointFilter.particles
list particles
Definition: LArG4FSStartPointFilter.py:84
ISF::ActsFatrasSimTool::m_maxStep
Gaudi::Property< double > m_maxStep
Definition: ActsFatrasSimTool.h:267
Simulation
Definition: BeamEffectsAlg.cxx:21
ISF::ActsFatrasSimTool::m_maxRungeKuttaStepTrials
Gaudi::Property< double > m_maxRungeKuttaStepTrials
Definition: ActsFatrasSimTool.h:269
TileCalibBlobPython_writeDefaultCs.Simulation
Simulation
Definition: TileCalibBlobPython_writeDefaultCs.py:12
ISF::ActsFatrasSimTool::m_stepSizeCutOff
Gaudi::Property< double > m_stepSizeCutOff
Definition: ActsFatrasSimTool.h:281
ISF::ActsFatrasSimTool::m_trackingGeometryTool
ToolHandle< IActsTrackingGeometryTool > m_trackingGeometryTool
Definition: ActsFatrasSimTool.h:245
ISF::ActsFatrasSimTool::NeutralInteractions
ActsFatras::InteractionList<> NeutralInteractions
Definition: ActsFatrasSimTool.h:196
Logger.h
checker_macros.h
Define macros for attributes used to control the static checker.
ISF::SimulationFlavor
int SimulationFlavor
Identifier type for simulation flavor.
Definition: SimulationFlavor.h:16
ISF::ActsFatrasSimTool::SingleParticleSimulation::maxStep
double maxStep
Definition: ActsFatrasSimTool.h:96
ISF::ActsFatrasSimTool::simFlavor
virtual ISF::SimulationFlavor simFlavor() const override
Definition: ActsFatrasSimTool.h:221
ISF::ActsFatrasSimTool::releaseEvent
virtual StatusCode releaseEvent(const EventContext &) override
Release Event chain - in case of an end-of event action is needed.
Definition: ActsFatrasSimTool.h:219
ISF::ActsFatrasSimTool::m_fieldCacheCondObjInputKey
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCacheCondObjInputKey
Definition: ActsFatrasSimTool.h:250
ISF::ActsFatrasSimTool::setupEvent
virtual StatusCode setupEvent(const EventContext &) override
Setup Event chain - in case of a begin-of event action is needed.
Definition: ActsFatrasSimTool.h:217
AtlasDetectorID
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
Definition: AtlasDetectorID.h:57
IActsTrackingGeometryTool.h
ISF::ActsFatrasSimTool::m_particleFilter
PublicToolHandle< ISF::IParticleFilter > m_particleFilter
Definition: ActsFatrasSimTool.h:256
ISF::ActsFatrasSimTool::getATLASProcessCode
int getATLASProcessCode(ActsFatras::ProcessType actspt)
Definition: ActsFatrasSimTool.h:287
ISF::ActsFatrasSimTool::SingleParticleSimulation::momentumCutOff
double momentumCutOff
Definition: ActsFatrasSimTool.h:106
ISF::ActsFatrasSimTool::m_randomEngineName
Gaudi::Property< std::string > m_randomEngineName
Definition: ActsFatrasSimTool.h:241
IAthRNGSvc.h
ServiceHandle< IAthRNGSvc >
ISF::ActsFatrasSimTool::m_tolerance
Gaudi::Property< double > m_tolerance
Definition: ActsFatrasSimTool.h:279