ATLAS Offline Software
MultipleScatteringUpdator.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // MultipleScatteringUpdator.h, (c) ATLAS Detector software
8 
9 #ifndef TRKEXTOOLS_MULTIPLESCATTERINGUPDATOR_H
10 #define TRKEXTOOLS_MULTIPLESCATTERINGUPDATOR_H
11 
13 // Trk
15 #include "GaudiKernel/ServiceHandle.h"
18 
19 // Gaudi
21 
22 #include "CLHEP/Random/RandFlat.h"
25 
26 namespace Trk {
27 
28 class MaterialProperties;
29 
43  : public AthAlgTool
44  , virtual public IMultipleScatteringUpdator
45 {
46 
47 public:
49  MultipleScatteringUpdator(const std::string&, const std::string&, const IInterface*);
50 
53 
55  virtual StatusCode initialize() override;
56 
60  virtual double sigmaSquare(const MaterialProperties& mat,
61  double p,
62  double pathcorrection,
64  double deltaE = 0.) const override;
65 
66 private:
67  BooleanProperty m_useTrkUtils{this, "UseTrkUtils", true,
68  "use eloss parametrisation from TrkUtils MaterialInterAction.h"};
69  BooleanProperty m_log_include{this, "MultipleScatteringLogarithmicTermOn", true,
70  "boolean switch to include log term"};
71  BooleanProperty m_gaussianMixture{this, "GaussianMixtureModel", false,
72  "mainly for Fatras"};
73  BooleanProperty m_optGaussianMixtureG4{this, "G4OptimisedGaussianMixtureModel", true,
74  "modifies the Fruehwirth/Regler model to fit with G4"};
75 
76  //========== used for Gaussian mixture model =================================================
78  ServiceHandle<IAthRNGSvc> m_rndGenSvc{this, "RandomNumberService", "AthRNGSvc",
79  "Name of the random number service"};
82  StringProperty m_randomEngineName{this, "RandomStreamName", "TrkExRnd",
83  "Name of the random number stream"};
84 };
85 
86 } // end of namespace
87 
88 #endif // TRKEXTOOLS_MULTIPLESCATTERING_H
89 
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition: ParticleHypothesis.h:79
Trk::MultipleScatteringUpdator::MultipleScatteringUpdator
MultipleScatteringUpdator(const std::string &, const std::string &, const IInterface *)
AlgTool like constructor.
Definition: MultipleScatteringUpdator.cxx:44
Trk::MultipleScatteringUpdator::m_rndGenSvc
ServiceHandle< IAthRNGSvc > m_rndGenSvc
Random Generator service
Definition: MultipleScatteringUpdator.h:78
Trk::MultipleScatteringUpdator::initialize
virtual StatusCode initialize() override
AlgTool initailize method.
Definition: MultipleScatteringUpdator.cxx:56
Trk::MultipleScatteringUpdator::m_gaussianMixture
BooleanProperty m_gaussianMixture
Definition: MultipleScatteringUpdator.h:71
mat
GeoMaterial * mat
Definition: LArDetectorConstructionTBEC.cxx:55
Trk::MultipleScatteringUpdator::m_randomEngineName
StringProperty m_randomEngineName
Definition: MultipleScatteringUpdator.h:82
Trk::MultipleScatteringUpdator::m_rngWrapper
ATHRNG::RNGWrapper * m_rngWrapper
Random engine
Definition: MultipleScatteringUpdator.h:81
PropDirection.h
Trk::ParticleHypothesis
ParticleHypothesis
Definition: ParticleHypothesis.h:28
GeoPrimitives.h
Trk::MultipleScatteringUpdator::m_optGaussianMixtureG4
BooleanProperty m_optGaussianMixtureG4
Definition: MultipleScatteringUpdator.h:73
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:209
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Trk::pion
@ pion
Definition: ParticleHypothesis.h:32
AthAlgTool.h
ParticleHypothesis.h
columnar::final
CM final
Definition: ColumnAccessor.h:106
Trk::MultipleScatteringUpdator::~MultipleScatteringUpdator
virtual ~MultipleScatteringUpdator()
Virtual destructor.
EventPrimitives.h
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
IMultipleScatteringUpdator.h
ATHRNG::RNGWrapper
A wrapper class for event-slot-local random engines.
Definition: RNGWrapper.h:56
Trk::MultipleScatteringUpdator::m_log_include
BooleanProperty m_log_include
Definition: MultipleScatteringUpdator.h:69
Trk::MaterialProperties
Definition: MaterialProperties.h:40
Trk::MultipleScatteringUpdator
Definition: MultipleScatteringUpdator.h:45
AthAlgTool
Definition: AthAlgTool.h:26
Trk::IMultipleScatteringUpdator
Definition: IMultipleScatteringUpdator.h:29
Trk::MultipleScatteringUpdator::m_useTrkUtils
BooleanProperty m_useTrkUtils
Definition: MultipleScatteringUpdator.h:67
Trk::MultipleScatteringUpdator::sigmaSquare
virtual double sigmaSquare(const MaterialProperties &mat, double p, double pathcorrection, ParticleHypothesis particle=pion, double deltaE=0.) const override
Calculate the sigma on theta introduced by multiple scattering, according to the RutherFord-Scott For...
Definition: MultipleScatteringUpdator.cxx:85
IAthRNGSvc.h
ServiceHandle< IAthRNGSvc >