ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkExtrapolation
TrkExTools
TrkExTools
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
12
#include "
TrkExInterfaces/IMultipleScatteringUpdator.h
"
13
// Trk
14
#include "
AthenaKernel/IAthRNGSvc.h
"
15
#include "GaudiKernel/ServiceHandle.h"
16
#include "
TrkEventPrimitives/ParticleHypothesis.h
"
17
#include "
TrkEventPrimitives/PropDirection.h
"
18
19
// Gaudi
20
#include "
AthenaBaseComps/AthAlgTool.h
"
21
22
#include "CLHEP/Random/RandFlat.h"
23
#include "
EventPrimitives/EventPrimitives.h
"
24
#include "
GeoPrimitives/GeoPrimitives.h
"
25
26
namespace
Trk
{
27
28
class
MaterialProperties
;
29
42
class
MultipleScatteringUpdator
final
43
:
public
AthAlgTool
44
,
virtual
public
IMultipleScatteringUpdator
45
{
46
47
public
:
49
MultipleScatteringUpdator
(
const
std::string&,
const
std::string&,
const
IInterface*);
50
52
virtual
~MultipleScatteringUpdator
();
53
55
virtual
StatusCode
initialize
()
override
;
56
60
virtual
double
sigmaSquare
(
const
MaterialProperties
& mat,
61
double
p,
62
double
pathcorrection,
63
ParticleHypothesis
particle =
pion
,
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"
};
80
81
ATHRNG::RNGWrapper
*
m_rngWrapper
=
nullptr
;
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
AthAlgTool.h
EventPrimitives.h
GeoPrimitives.h
IAthRNGSvc.h
IMultipleScatteringUpdator.h
ParticleHypothesis.h
PropDirection.h
ATHRNG::RNGWrapper
A wrapper class for event-slot-local random engines.
Definition
RNGWrapper.h:56
AthAlgTool::AthAlgTool
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Definition
AthAlgTool.cxx:16
ServiceHandle
Definition
ClusterMakerTool.h:36
Trk::IMultipleScatteringUpdator
Interface class IMultipleScatteringUpdator.
Definition
IMultipleScatteringUpdator.h:29
Trk::MaterialProperties
Material with information about thickness of material.
Definition
MaterialProperties.h:40
Trk::MultipleScatteringUpdator::m_optGaussianMixtureG4
BooleanProperty m_optGaussianMixtureG4
Definition
MultipleScatteringUpdator.h:73
Trk::MultipleScatteringUpdator::m_rngWrapper
ATHRNG::RNGWrapper * m_rngWrapper
Random engine.
Definition
MultipleScatteringUpdator.h:81
Trk::MultipleScatteringUpdator::m_gaussianMixture
BooleanProperty m_gaussianMixture
Definition
MultipleScatteringUpdator.h:71
Trk::MultipleScatteringUpdator::initialize
virtual StatusCode initialize() override
AlgTool initailize method.
Definition
MultipleScatteringUpdator.cxx:59
Trk::MultipleScatteringUpdator::MultipleScatteringUpdator
MultipleScatteringUpdator(const std::string &, const std::string &, const IInterface *)
AlgTool like constructor.
Definition
MultipleScatteringUpdator.cxx:47
Trk::MultipleScatteringUpdator::m_useTrkUtils
BooleanProperty m_useTrkUtils
Definition
MultipleScatteringUpdator.h:67
Trk::MultipleScatteringUpdator::m_log_include
BooleanProperty m_log_include
Definition
MultipleScatteringUpdator.h:69
Trk::MultipleScatteringUpdator::~MultipleScatteringUpdator
virtual ~MultipleScatteringUpdator()
Virtual destructor.
Trk::MultipleScatteringUpdator::m_rndGenSvc
ServiceHandle< IAthRNGSvc > m_rndGenSvc
Random Generator service.
Definition
MultipleScatteringUpdator.h:78
Trk::MultipleScatteringUpdator::m_randomEngineName
StringProperty m_randomEngineName
Definition
MultipleScatteringUpdator.h:82
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:88
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition
FakeTrackBuilder.h:9
Trk::ParticleHypothesis
ParticleHypothesis
Enumeration for Particle hypothesis respecting the interaction with material.
Definition
ParticleHypothesis.h:28
Trk::pion
@ pion
Definition
ParticleHypothesis.h:32
Generated on
for ATLAS Offline Software by
1.17.0