ATLAS Offline Software
MultipleScatteringUpdator.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 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:
71 
72  //========== used for Gaussian mixture model =================================================
77  std::string m_randomEngineName;
78 };
79 
80 } // end of namespace
81 
82 #endif // TRKEXTOOLS_MULTIPLESCATTERING_H
83 
Trk::MultipleScatteringUpdator::m_gaussianMixture
bool m_gaussianMixture
mainly for Fatras
Definition: MultipleScatteringUpdator.h:69
Trk::MultipleScatteringUpdator::m_useTrkUtils
bool m_useTrkUtils
use eloss parametrisation from TrkUtils MaterialInterAction.h
Definition: MultipleScatteringUpdator.h:67
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition: ParticleHypothesis.h:76
Trk::MultipleScatteringUpdator::MultipleScatteringUpdator
MultipleScatteringUpdator(const std::string &, const std::string &, const IInterface *)
AlgTool like constructor.
Definition: MultipleScatteringUpdator.cxx:44
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
Trk::MultipleScatteringUpdator::m_rndGenSvc
ServiceHandle< IAthRNGSvc > m_rndGenSvc
Random Generator service
Definition: MultipleScatteringUpdator.h:74
Trk::MultipleScatteringUpdator::initialize
virtual StatusCode initialize() override
AlgTool initailize method.
Definition: MultipleScatteringUpdator.cxx:71
mat
GeoMaterial * mat
Definition: LArDetectorConstructionTBEC.cxx:53
Trk::MultipleScatteringUpdator::m_rngWrapper
ATHRNG::RNGWrapper * m_rngWrapper
Random engine
Definition: MultipleScatteringUpdator.h:76
PropDirection.h
Trk::MultipleScatteringUpdator::m_log_include
bool m_log_include
boolean switch to include log term
Definition: MultipleScatteringUpdator.h:68
Trk::ParticleHypothesis
ParticleHypothesis
Definition: ParticleHypothesis.h:25
GeoPrimitives.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Trk::pion
@ pion
Definition: ParticleHypothesis.h:29
AthAlgTool.h
Trk::MultipleScatteringUpdator::m_optGaussianMixtureG4
bool m_optGaussianMixtureG4
modifies the Fruehwirth/Regler model to fit with G4
Definition: MultipleScatteringUpdator.h:70
ParticleHypothesis.h
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_randomEngineName
std::string m_randomEngineName
Name of the random number stream.
Definition: MultipleScatteringUpdator.h:77
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::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:100
IAthRNGSvc.h
ServiceHandle< IAthRNGSvc >