ATLAS Offline Software
ActsFatrasSimTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 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"
22 #include "ActsFatrasWriteHandler.h"
23 
24 // ACTS
25 #include "Acts/Utilities/UnitVectors.hpp"
26 #include "ActsInterop/Logger.h"
27 #include "Acts/Geometry/GeometryContext.hpp"
28 #include "Acts/MagneticField/MagneticFieldContext.hpp"
29 #include "Acts/EventData/GenericCurvilinearTrackParameters.hpp"
30 #include "Acts/Propagator/Navigator.hpp"
31 #include "Acts/Propagator/EigenStepper.hpp"
32 #include "Acts/Propagator/EigenStepperDefaultExtension.hpp"
33 #include "Acts/Propagator/StraightLineStepper.hpp"
34 #include "Acts/Propagator/detail/SteppingLogger.hpp"
35 #include "Acts/Propagator/ActorList.hpp"
36 #include "Acts/Propagator/Propagator.hpp"
37 #include "Acts/Definitions/ParticleData.hpp"
38 #include "ActsFatras/EventData/ProcessType.hpp"
39 #include "ActsFatras/Kernel/InteractionList.hpp"
40 #include "ActsFatras/Kernel/Simulation.hpp"
41 #include "ActsFatras/Kernel/SimulationResult.hpp"
42 #include "ActsFatras/Physics/Decay/NoDecay.hpp"
43 #include "ActsFatras/Physics/StandardInteractions.hpp"
44 #include "ActsFatras/Selectors/SurfaceSelectors.hpp"
45 // Tracking
48 
49 #include <algorithm>
50 #include <cassert>
51 #include <vector>
52 
53 class AtlasDetectorID;
54 
55 namespace iFatras {
56  class ISimHitCreator;
57 }
58 
59 namespace ISF {
60 class IParticleHelper;
61 
69 
70  public:
74  bool operator()(const Acts::Surface &surface) const {
75  bool isSensitive = surface.associatedDetectorElement();
76  return isSensitive;
77  }
78  };
79  // SingleParticleSimulation
86  template <typename propagator_t, typename interactions_t,
87  typename hit_surface_selector_t, typename decay_t>
90  propagator_t propagator;
92  decay_t decay;
94  interactions_t interactions;
96  hit_surface_selector_t selectHitSurface;
98  double maxStepSize = 3.0; // leght in m
99  double maxStep = 1000;
100  double maxRungeKuttaStepTrials = 10000;
101  double pathLimit = 100.0; // lenght in cm
102  bool loopProtection = true;
103  double loopFraction = 0.5;
104  double targetTolerance = 0.0001;
105  double stepSizeCutOff = 0.;
106  // parameters for densEnv propagator options
107  double meanEnergyLoss = true;
108  bool includeGgradient = true;
109  double momentumCutOff = 0.;
110 
112  std::shared_ptr<const Acts::Logger> localLogger = nullptr;
113 
115  SingleParticleSimulation(propagator_t &&propagator_,
116  std::shared_ptr<const Acts::Logger> localLogger_)
117  : propagator(propagator_), localLogger(localLogger_) {}
118 
120  const Acts::Logger &logger() const { return *localLogger; }
121 
131  template <typename generator_t>
132  Acts::Result<ActsFatras::SimulationResult> simulate(
133  const Acts::GeometryContext &geoCtx,
134  const Acts::MagneticFieldContext &magCtx, generator_t &generator,
135  const ActsFatras::Particle &particle) const {
136  assert(localLogger and "Missing local logger");
137  ACTS_VERBOSE("Using ActsFatrasSimTool simulate()");
138  // propagator-related additional types
139  using SteppingLogger = Acts::detail::SteppingLogger;
140  using SimulationActor = ActsFatras::detail::SimulationActor<generator_t, decay_t, interactions_t, hit_surface_selector_t>;
141  using Result = typename SimulationActor::result_type;
142  using Actions = Acts::ActorList<SteppingLogger, SimulationActor, Acts::EndOfWorldReached>;
143  using PropagatorOptions = typename propagator_t::template Options<Actions>;
144 
145  // Construct per-call options.
146  PropagatorOptions options(geoCtx, magCtx);
147  // setup the interactor as part of the propagator options
148  auto &actor = options.actorList.template get<SimulationActor>();
149  actor.generator = &generator;
150  actor.decay = decay;
151  actor.interactions = interactions;
152  actor.selectHitSurface = selectHitSurface;
153  actor.initialParticle = particle;
154  // use AnyCharge to be able to handle neutral and charged parameters
155  Acts::GenericCurvilinearTrackParameters startPoint(
156  particle.fourPosition(), particle.direction(),
157  particle.qOverP(), std::nullopt, particle.hypothesis());
159  options.loopProtection = loopProtection;
160  options.maxSteps = maxStep;
161  options.stepping.maxStepSize = maxStepSize * Acts::UnitConstants::m;
162 
163  auto result = propagator.propagate(startPoint, options);
164  if (not result.ok()) {
165  return result.error();
166  }
167  return result.value().template get<Result>();
168  }
169  };// end of SingleParticleSimulation
170 
171  // Standard generator
172  using Generator = std::ranlux48;
173  // Use default navigator
175  // Propagate charged particles numerically in the B-field
176  using ChargedStepper = Acts::EigenStepper<Acts::EigenStepperDefaultExtension>;
177  using ChargedPropagator = Acts::Propagator<ChargedStepper, Navigator>;
178  // Propagate neutral particles in straight lines
179  using NeutralStepper = Acts::StraightLineStepper;
180  using NeutralPropagator = Acts::Propagator<NeutralStepper, Navigator>;
181 
182  // ===============================
183  // Setup ActsFatras simulator types
184  // Charged
185  using ChargedSelector = ActsFatras::ChargedSelector;
187  ActsFatras::StandardChargedElectroMagneticInteractions;
190  ActsFatras::NoDecay>;
191  // Neutral
192  using NeutralSelector = ActsFatras::NeutralSelector;
193  using NeutralInteractions = ActsFatras::InteractionList<>;
195  NeutralPropagator, NeutralInteractions, ActsFatras::NoSurface,
196  ActsFatras::NoDecay>;
197  // Combined
200  // ===============================
201 
202  ActsFatrasSimTool(const std::string& type, const std::string& name,
203  const IInterface* parent);
204  virtual ~ActsFatrasSimTool();
205 
206  // ISF BaseSimulatorTool Interface methods
207  virtual StatusCode initialize() override;
208  virtual StatusCode simulate(const EventContext& ctx, ISFParticle& isp, ISFParticleContainer&,
209  McEventCollection*) override;
210  virtual StatusCode simulateVector(
211  const EventContext& ctx,
213  ISFParticleContainer& secondaries,
214  McEventCollection* mcEventCollection, McEventCollection *shadowTruth=nullptr) override;
215  virtual StatusCode setupEvent(const EventContext&) override {
216  return StatusCode::SUCCESS; };
217  virtual StatusCode releaseEvent(const EventContext&) override {
218  return StatusCode::SUCCESS; };
219  virtual ISF::SimulationFlavor simFlavor() const override{
220  return ISF::Fatras; };
221 
222  virtual Acts::MagneticFieldContext getMagneticFieldContext(
223  const EventContext&) const;
224 
225  private:
226  // Templated tool retrieval
227  template <class T>
228  StatusCode retrieveTool(ToolHandle<T>& thandle) {
229  if (!thandle.empty() && thandle.retrieve().isFailure()) {
230  ATH_MSG_FATAL("Cannot retrieve " << thandle << ". Abort.");
231  return StatusCode::FAILURE;
232  } else ATH_MSG_DEBUG("Successfully retrieved " << thandle);
233  return StatusCode::SUCCESS;
234  }
235 
236  // Random number service
237  ServiceHandle<IAthRNGSvc> m_rngSvc{this, "RNGService", "AthRNGSvc"};
239  Gaudi::Property<std::string> m_randomEngineName{this, "RandomEngineName",
240  "RandomEngineName", "Name of random number stream"};
241 
242  // Tracking geometry
243  ToolHandle<IActsTrackingGeometryTool> m_trackingGeometryTool{
244  this, "TrackingGeometryTool", "ActsTrackingGeometryTool"};
245  std::shared_ptr<const Acts::TrackingGeometry> m_trackingGeometry;
246 
247  // Magnetic field
248  SG::ReadCondHandleKey<AtlasFieldCacheCondObj> m_fieldCacheCondObjInputKey {this, "AtlasFieldCacheCondObj", "fieldCondObj", "Name of the Magnetic Field conditions object key"};
249 
250  // Logging
251  std::shared_ptr<const Acts::Logger> m_logger{nullptr};
252 
253  // ISF Tools
254  PublicToolHandle<ISF::IParticleFilter> m_particleFilter{
255  this, "ParticleFilter", "", "Particle filter kinematic cuts, etc."};
256 
257  ServiceHandle<ISF::ITruthSvc> m_truthRecordSvc{this, "TruthRecordService", "ISF_TruthRecordSvc", ""};
258 
259  // ActsFatrasHitConvtTool
260  ToolHandle<ActsFatrasWriteHandler> m_ActsFatrasWriteHandler{
261  this, "ActsFatrasWriteHandler", "ActsFatrasWriteHandler"};
262 
263  Gaudi::Property<double> m_interact_minPt{this, "Interact_MinPt", 50.0,
264  "Min pT of the interactions (MeV)"};
265 
266  // DensEnviroment Propergator option
267  Gaudi::Property<bool> m_meanEnergyLoss{this, "MeanEnergyLoss", true, "Toggle between mean and mode evaluation of energy loss"};
268  Gaudi::Property<bool> m_includeGgradient{this, "IncludeGgradient", true, "Boolean flag for inclusion of d(dEds)d(q/p) into energy loss"};
269  Gaudi::Property<double> m_momentumCutOff{this, "MomentumCutOff", 0., "Cut-off value for the momentum in SI units"};
270  // Propergator option
271  Gaudi::Property<double> m_maxStep{this, "MaxSteps", 1000,
272  "Max number of steps"};
273  Gaudi::Property<double> m_maxRungeKuttaStepTrials{this, "MaxRungeKuttaStepTrials", 10000,
274  "Maximum number of Runge-Kutta steps for the stepper step call"};
275  Gaudi::Property<double> m_maxStepSize{this, "MaxStepSize", 3.0,
276  "Max step size (converted to Acts::UnitConstants::m)"};
277  Gaudi::Property<double> m_pathLimit{this, "PathLimit", 100.0,
278  "Track path limit (converted to Acts::UnitConstants::cm)"};
279  Gaudi::Property<bool> m_loopProtection{this, "LoopProtection", true,
280  "Loop protection, it adapts the pathLimit"};
281  Gaudi::Property<double> m_loopFraction{this, "LoopFraction", 0.5,
282  "Allowed loop fraction, 1 is a full loop"};
283  Gaudi::Property<double> m_tolerance{this, "Tolerance", 0.0001,
284  "Tolerance for the error of the integration"};
285  Gaudi::Property<double> m_stepSizeCutOff{this, "StepSizeCutOff", 0.,
286  "Cut-off value for the step size"};
287 
288  Gaudi::Property<std::map<int,int>> m_processTypeMap{this, "ProcessTypeMap",
289  {{0,0}, {1,201}, {2,14}, {3,3}, {4,121}}, "proessType map <ActsFatras,G4>"};
290  //{{ActsProcessType::eUndefined,0}, {ActsProcessType::eDecay,201}, {ActsProcessType::ePhotonConversion,14}, {ActsProcessType::eBremsstrahlung,3}, {ActsProcessType::eNuclearInteraction,121}}
291  inline int getATLASProcessCode(ActsFatras::ProcessType actspt){return m_processTypeMap[static_cast<uint32_t>(actspt)];};
292 };
293 
294 } // namespace ISF
295 
296 #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:177
ISF::ActsFatrasSimTool::m_interact_minPt
Gaudi::Property< double > m_interact_minPt
Definition: ActsFatrasSimTool.h:263
ISF::ActsFatrasSimTool::Generator
std::ranlux48 Generator
Definition: ActsFatrasSimTool.h:172
ISF::ActsFatrasSimTool::m_rngSvc
ServiceHandle< IAthRNGSvc > m_rngSvc
Definition: ActsFatrasSimTool.h:237
ISF::ActsFatrasSimTool::SingleParticleSimulation::localLogger
std::shared_ptr< const Acts::Logger > localLogger
Local logger for debug output.
Definition: ActsFatrasSimTool.h:112
ISF::ActsFatrasSimTool::m_trackingGeometry
std::shared_ptr< const Acts::TrackingGeometry > m_trackingGeometry
Definition: ActsFatrasSimTool.h:245
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:22
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:267
ISF::ActsFatrasSimTool::m_momentumCutOff
Gaudi::Property< double > m_momentumCutOff
Definition: ActsFatrasSimTool.h:269
ISF::ActsFatrasSimTool::SingleParticleSimulation::logger
const Acts::Logger & logger() const
Provide access to the local logger instance, e.g. for logging macros.
Definition: ActsFatrasSimTool.h:120
ISF::ActsFatrasSimTool::SingleParticleSimulation::targetTolerance
double targetTolerance
Definition: ActsFatrasSimTool.h:104
ISF::ActsFatrasSimTool::SingleParticleSimulation::interactions
interactions_t interactions
Interaction list containing the simulated interactions.
Definition: ActsFatrasSimTool.h:94
ISF::ActsFatrasSimTool::NeutralPropagator
Acts::Propagator< NeutralStepper, Navigator > NeutralPropagator
Definition: ActsFatrasSimTool.h:180
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
ISF::ActsFatrasSimTool::ChargedStepper
Acts::EigenStepper< Acts::EigenStepperDefaultExtension > ChargedStepper
Definition: ActsFatrasSimTool.h:176
ActsTrk::detail::Navigator
Acts::Navigator Navigator
Definition: Tracking/Acts/ActsTrackReconstruction/src/detail/Definitions.h:31
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:115
ISF::ActsFatrasSimTool::m_pathLimit
Gaudi::Property< double > m_pathLimit
Definition: ActsFatrasSimTool.h:277
ISF::ActsFatrasSimTool::HitSurfaceSelector
Simple struct to select surfaces where hits should be generated.
Definition: ActsFatrasSimTool.h:72
taskman.template
dictionary template
Definition: taskman.py:317
ISF::ISFParticle
Definition: ISFParticle.h:42
ATLASMagneticFieldWrapper.h
ISF::ActsFatrasSimTool::NeutralSelector
ActsFatras::NeutralSelector NeutralSelector
Definition: ActsFatrasSimTool.h:192
ISF::ActsFatrasSimTool::SingleParticleSimulation::meanEnergyLoss
double meanEnergyLoss
Definition: ActsFatrasSimTool.h:107
ISF::ActsFatrasSimTool::SingleParticleSimulation::stepSizeCutOff
double stepSizeCutOff
Definition: ActsFatrasSimTool.h:105
ISF::ActsFatrasSimTool::m_includeGgradient
Gaudi::Property< bool > m_includeGgradient
Definition: ActsFatrasSimTool.h:268
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:281
ISF::ActsFatrasSimTool::ChargedInteractions
ActsFatras::StandardChargedElectroMagneticInteractions ChargedInteractions
Definition: ActsFatrasSimTool.h:187
ISF::ActsFatrasSimTool::m_loopProtection
Gaudi::Property< bool > m_loopProtection
Definition: ActsFatrasSimTool.h:279
ISF::ActsFatrasSimTool::SingleParticleSimulation::propagator
propagator_t propagator
How and within which geometry to propagate the particle.
Definition: ActsFatrasSimTool.h:90
ISF::ActsFatrasSimTool::ATLAS_THREAD_SAFE
ATHRNG::RNGWrapper *m_randomEngine ATLAS_THREAD_SAFE
Definition: ActsFatrasSimTool.h:238
iFatras
Definition: ActsFatrasSimTool.h:55
cm
const double cm
Definition: Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/tools/FCAL_ChannelMap.cxx:25
ISF::ActsFatrasSimTool::m_maxStepSize
Gaudi::Property< double > m_maxStepSize
Definition: ActsFatrasSimTool.h:275
ISFParticle.h
ISF::ActsFatrasSimTool::ChargedSimulation
SingleParticleSimulation< ChargedPropagator, ChargedInteractions, HitSurfaceSelector, ActsFatras::NoDecay > ChargedSimulation
Definition: ActsFatrasSimTool.h:190
ISF::ActsFatrasSimTool::Navigator
Acts::Navigator Navigator
Definition: ActsFatrasSimTool.h:174
ISF::ActsFatrasSimTool::simulateVector
virtual StatusCode simulateVector(const EventContext &ctx, const ISFParticleVector &particles, ISFParticleContainer &secondaries, McEventCollection *mcEventCollection, McEventCollection *shadowTruth=nullptr) override
Simulation call for vectors of particles.
Definition: ActsFatrasSimTool.cxx:77
iFatras::ISimHitCreator
Definition: ISimHitCreator.h:50
ISF::ActsFatrasSimTool::initialize
virtual StatusCode initialize() override
Definition: ActsFatrasSimTool.cxx:24
IParticleFilter.h
ISF::ActsFatrasSimTool::SingleParticleSimulation::maxRungeKuttaStepTrials
double maxRungeKuttaStepTrials
Definition: ActsFatrasSimTool.h:100
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
ActsFatrasWriteHandler.h
ISF::ActsFatrasSimTool::SingleParticleSimulation::includeGgradient
bool includeGgradient
Definition: ActsFatrasSimTool.h:108
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:132
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:88
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:179
ISF::ActsFatrasSimTool::ActsFatrasSimTool
ActsFatrasSimTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: ActsFatrasSimTool.cxx:17
ISF::ActsFatrasSimTool::m_ActsFatrasWriteHandler
ToolHandle< ActsFatrasWriteHandler > m_ActsFatrasWriteHandler
Definition: ActsFatrasSimTool.h:260
ISF::ActsFatrasSimTool::ChargedSelector
ActsFatras::ChargedSelector ChargedSelector
Definition: ActsFatrasSimTool.h:185
ISF::ActsFatrasSimTool::HitSurfaceSelector::operator()
bool operator()(const Acts::Surface &surface) const
Check if the surface should be used.
Definition: ActsFatrasSimTool.h:74
ISF::ActsFatrasSimTool::SingleParticleSimulation::loopProtection
bool loopProtection
Definition: ActsFatrasSimTool.h:102
Result
Definition: fbtTestBasics.cxx:49
ISF::BaseSimulatorTool
Definition: BaseSimulatorTool.h:36
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
ATHRNG::RNGWrapper
A wrapper class for event-slot-local random engines.
Definition: RNGWrapper.h:56
ISF::ActsFatrasSimTool::SingleParticleSimulation::pathLimit
double pathLimit
Definition: ActsFatrasSimTool.h:101
ISF::Fatras
@ Fatras
Definition: SimulationFlavor.h:22
ISF::ActsFatrasSimTool::getMagneticFieldContext
virtual Acts::MagneticFieldContext getMagneticFieldContext(const EventContext &) const
Definition: ActsFatrasSimTool.cxx:222
RNGWrapper.h
ISF::ActsFatrasSimTool::retrieveTool
StatusCode retrieveTool(ToolHandle< T > &thandle)
Definition: ActsFatrasSimTool.h:228
ISF::ActsFatrasSimTool::simulate
virtual StatusCode simulate(const EventContext &ctx, ISFParticle &isp, ISFParticleContainer &, McEventCollection *) override
Definition: ActsFatrasSimTool.cxx:59
ISF::ActsFatrasSimTool::m_processTypeMap
Gaudi::Property< std::map< int, int > > m_processTypeMap
Definition: ActsFatrasSimTool.h:288
SG::ReadCondHandleKey< AtlasFieldCacheCondObj >
ISF::ActsFatrasSimTool::SingleParticleSimulation::selectHitSurface
hit_surface_selector_t selectHitSurface
Selector for surfaces that should generate hits.
Definition: ActsFatrasSimTool.h:96
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:251
ISF::ActsFatrasSimTool::SingleParticleSimulation::decay
decay_t decay
Decay module.
Definition: ActsFatrasSimTool.h:92
ISF
ISFParticleOrderedQueue.
Definition: PrimaryParticleInformation.h:13
ISF::ActsFatrasSimTool
Definition: ActsFatrasSimTool.h:68
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
ISF::ActsFatrasSimTool::SingleParticleSimulation::maxStepSize
double maxStepSize
parameters for propagator options
Definition: ActsFatrasSimTool.h:98
ISF::ActsFatrasSimTool::SingleParticleSimulation::loopFraction
double loopFraction
Definition: ActsFatrasSimTool.h:103
LArG4FSStartPointFilter.particles
list particles
Definition: LArG4FSStartPointFilter.py:84
ISF::ActsFatrasSimTool::m_maxStep
Gaudi::Property< double > m_maxStep
Definition: ActsFatrasSimTool.h:271
Simulation
Definition: BeamEffectsAlg.cxx:21
ISF::ActsFatrasSimTool::m_maxRungeKuttaStepTrials
Gaudi::Property< double > m_maxRungeKuttaStepTrials
Definition: ActsFatrasSimTool.h:273
TileCalibBlobPython_writeDefaultCs.Simulation
Simulation
Definition: TileCalibBlobPython_writeDefaultCs.py:12
ISF::ActsFatrasSimTool::m_stepSizeCutOff
Gaudi::Property< double > m_stepSizeCutOff
Definition: ActsFatrasSimTool.h:285
ITruthSvc.h
ISF::ActsFatrasSimTool::m_trackingGeometryTool
ToolHandle< IActsTrackingGeometryTool > m_trackingGeometryTool
Definition: ActsFatrasSimTool.h:243
ISF::ActsFatrasSimTool::NeutralInteractions
ActsFatras::InteractionList<> NeutralInteractions
Definition: ActsFatrasSimTool.h:193
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:99
ISF::ActsFatrasSimTool::simFlavor
virtual ISF::SimulationFlavor simFlavor() const override
Definition: ActsFatrasSimTool.h:219
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:217
ISF::ActsFatrasSimTool::m_fieldCacheCondObjInputKey
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCacheCondObjInputKey
Definition: ActsFatrasSimTool.h:248
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:215
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:254
ISF::ActsFatrasSimTool::getATLASProcessCode
int getATLASProcessCode(ActsFatras::ProcessType actspt)
Definition: ActsFatrasSimTool.h:291
ISF::ActsFatrasSimTool::SingleParticleSimulation::momentumCutOff
double momentumCutOff
Definition: ActsFatrasSimTool.h:109
ISF::ActsFatrasSimTool::m_randomEngineName
Gaudi::Property< std::string > m_randomEngineName
Definition: ActsFatrasSimTool.h:239
IAthRNGSvc.h
ISF::ActsFatrasSimTool::m_truthRecordSvc
ServiceHandle< ISF::ITruthSvc > m_truthRecordSvc
Definition: ActsFatrasSimTool.h:257
ServiceHandle< IAthRNGSvc >
ISF::ActsFatrasSimTool::m_tolerance
Gaudi::Property< double > m_tolerance
Definition: ActsFatrasSimTool.h:283