ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkDetDescr
TrkGeometry
TrkGeometry
AssociatedMaterial.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3
*/
4
6
// AssociatedMaterial.h, (c) ATLAS Detector software
8
9
#ifndef TRKGEOMETRY_ASSOCIATEDMATERIAL_H
10
#define TRKGEOMETRY_ASSOCIATEDMATERIAL_H
11
12
// Amg
13
#include "
GeoPrimitives/GeoPrimitives.h
"
14
// Trk includes
15
#include "
TrkGeometry/MaterialProperties.h
"
16
#include "
TrkGeometry/MaterialStep.h
"
17
18
class
MsgStream;
19
20
namespace
Trk
{
21
22
class
Layer
;
23
class
TrackingVolume
;
24
32
33
class
AssociatedMaterial
{
34
public
:
36
AssociatedMaterial
();
37
39
AssociatedMaterial
(
const
Amg::Vector3D
& hitpos,
float
steplength
,
float
X0,
40
float
L0
,
float
A
,
float
Z
,
float
rho
,
41
float
correctionFactor
,
const
Trk::TrackingVolume
* tvol,
42
const
Trk::Layer
* lay);
43
45
AssociatedMaterial
(
const
Amg::Vector3D
& hitpos,
float
steplength
,
46
const
Trk::Material
&,
float
correctionFactor
,
47
const
Trk::TrackingVolume
* tvol,
const
Trk::Layer
* lay);
48
50
AssociatedMaterial
(
const
Amg::Vector3D
& hitpos,
51
const
Trk::MaterialProperties
*,
float
correctionFactor
,
52
const
Trk::TrackingVolume
* tvol,
const
Trk::Layer
* lay);
53
55
AssociatedMaterial
(
const
Trk::MaterialStep
*,
float
correctionFactor
,
56
const
Trk::TrackingVolume
* tvol,
const
Trk::Layer
* lay);
57
59
AssociatedMaterial
(
const
Amg::Vector3D
& hitpos,
60
const
Trk::TrackingVolume
* tvol,
const
Trk::Layer
* lay);
61
63
AssociatedMaterial
(
const
AssociatedMaterial
& am);
64
66
AssociatedMaterial
(
AssociatedMaterial
&& am)
noexcept
;
67
69
~AssociatedMaterial
();
70
72
AssociatedMaterial
&
operator=
(
const
AssociatedMaterial
& am);
73
75
AssociatedMaterial
&
operator=
(
AssociatedMaterial
&& am)
noexcept
;
76
78
const
Trk::MaterialProperties
*
materialProperties
()
const
;
79
81
const
Trk::MaterialStep
*
materialStep
()
const
;
82
84
const
Amg::Vector3D
&
materialPosition
()
const
;
85
87
double
correctionFactor
()
const
;
88
90
const
Trk::TrackingVolume
*
associatedTrackingVolume
()
const
;
91
93
const
Trk::Layer
*
associatedLayer
()
const
;
94
96
double
steplength
()
const
;
97
99
double
steplengthInX0
()
const
;
100
102
double
steplengthInL0
()
const
;
103
105
double
x0
()
const
;
106
double
l0
()
const
;
107
double
A
()
const
;
108
double
Z
()
const
;
109
double
rho
()
const
;
110
112
MsgStream&
dump
(MsgStream& sl)
const
;
113
115
std::ostream&
dump
(std::ostream& sl)
const
;
116
117
private
:
118
Amg::Vector3D
m_materialPosition
;
119
float
m_correctionFactor
;
120
const
Trk::MaterialProperties
*
m_materialProperties
;
121
const
Trk::MaterialStep
*
m_materialStep
;
122
const
Trk::TrackingVolume
*
m_trackingVolume
;
123
const
Trk::Layer
*
m_layer
;
124
bool
m_cleanup
;
125
};
126
128
inline
const
Trk::MaterialProperties
*
AssociatedMaterial::materialProperties
()
129
const
{
130
return
m_materialProperties
;
131
}
132
134
inline
const
Trk::MaterialStep
*
AssociatedMaterial::materialStep
()
const
{
135
return
m_materialStep
;
136
}
137
139
inline
const
Amg::Vector3D
&
AssociatedMaterial::materialPosition
()
const
{
140
return
m_materialPosition
;
141
}
142
144
inline
double
AssociatedMaterial::correctionFactor
()
const
{
145
return
m_correctionFactor
;
146
}
147
149
inline
const
Trk::TrackingVolume
*
AssociatedMaterial::associatedTrackingVolume
()
150
const
{
151
return
m_trackingVolume
;
152
}
153
155
inline
const
Trk::Layer
*
AssociatedMaterial::associatedLayer
()
const
{
156
return
m_layer
;
157
}
158
160
inline
double
AssociatedMaterial::x0
()
const
{
161
if
(
m_materialProperties
)
return
m_materialProperties
->x0();
162
if
(
m_materialStep
)
return
m_materialStep
->x0();
163
return
0.;
164
}
165
167
inline
double
AssociatedMaterial::steplength
()
const
{
168
if
(
m_materialProperties
)
return
m_correctionFactor
;
169
if
(
m_materialStep
)
return
m_materialStep
->steplength();
170
return
0.;
171
}
172
174
inline
double
AssociatedMaterial::steplengthInX0
()
const
{
175
if
(
m_materialProperties
)
176
return
m_materialProperties
->thicknessInX0() *
m_correctionFactor
;
177
if
(
m_materialStep
)
return
m_materialStep
->steplengthInX0();
178
return
0.;
179
}
180
182
inline
double
AssociatedMaterial::steplengthInL0
()
const
{
183
if
(
m_materialProperties
)
184
return
m_materialProperties
->thicknessInL0() *
m_correctionFactor
;
185
if
(
m_materialStep
)
return
m_materialStep
->steplengthInL0();
186
return
0.;
187
}
188
189
inline
double
AssociatedMaterial::l0
()
const
{
190
if
(
m_materialProperties
)
return
m_materialProperties
->l0();
191
if
(
m_materialStep
)
return
m_materialStep
->l0();
192
return
0.;
193
}
194
195
inline
double
AssociatedMaterial::A
()
const
{
196
if
(
m_materialProperties
)
return
m_materialProperties
->averageA();
197
if
(
m_materialStep
)
return
m_materialStep
->A();
198
return
0.;
199
}
200
201
inline
double
AssociatedMaterial::Z
()
const
{
202
if
(
m_materialProperties
)
return
m_materialProperties
->averageZ();
203
if
(
m_materialStep
)
return
m_materialStep
->Z();
204
return
0.;
205
}
206
207
inline
double
AssociatedMaterial::rho
()
const
{
208
if
(
m_materialProperties
)
return
m_materialProperties
->averageRho();
209
if
(
m_materialStep
)
return
m_materialStep
->rho();
210
return
0.;
211
}
212
215
MsgStream&
operator<<
(MsgStream& sl,
const
AssociatedMaterial
& mstep);
216
std::ostream&
operator<<
(std::ostream& sl,
const
AssociatedMaterial
& mstep);
217
218
}
// namespace Trk
219
220
#endif
GeoPrimitives.h
MaterialProperties.h
MaterialStep.h
Trk::AssociatedMaterial
It is used in the Mapping process ( using MaterialSteps ), the validation and recostruction ( using M...
Definition
AssociatedMaterial.h:33
Trk::AssociatedMaterial::x0
double x0() const
Access method : material X0/A/Z/rho.
Definition
AssociatedMaterial.h:160
Trk::AssociatedMaterial::Z
double Z() const
Definition
AssociatedMaterial.h:201
Trk::AssociatedMaterial::m_trackingVolume
const Trk::TrackingVolume * m_trackingVolume
Definition
AssociatedMaterial.h:122
Trk::AssociatedMaterial::l0
double l0() const
Definition
AssociatedMaterial.h:189
Trk::AssociatedMaterial::m_cleanup
bool m_cleanup
Definition
AssociatedMaterial.h:124
Trk::AssociatedMaterial::associatedLayer
const Trk::Layer * associatedLayer() const
Trivial Access methods.
Definition
AssociatedMaterial.h:155
Trk::AssociatedMaterial::steplengthInX0
double steplengthInX0() const
Access method : steplength.
Definition
AssociatedMaterial.h:174
Trk::AssociatedMaterial::rho
double rho() const
Definition
AssociatedMaterial.h:207
Trk::AssociatedMaterial::A
double A() const
Definition
AssociatedMaterial.h:195
Trk::AssociatedMaterial::steplength
double steplength() const
Access method : steplength.
Definition
AssociatedMaterial.h:167
Trk::AssociatedMaterial::m_materialPosition
Amg::Vector3D m_materialPosition
Definition
AssociatedMaterial.h:118
Trk::AssociatedMaterial::~AssociatedMaterial
~AssociatedMaterial()
Destructor.
Definition
AssociatedMaterial.cxx:162
Trk::AssociatedMaterial::materialProperties
const Trk::MaterialProperties * materialProperties() const
Trivial Access methods.
Definition
AssociatedMaterial.h:128
Trk::AssociatedMaterial::materialStep
const Trk::MaterialStep * materialStep() const
Trivial Access methods.
Definition
AssociatedMaterial.h:134
Trk::AssociatedMaterial::AssociatedMaterial
AssociatedMaterial()
Default constructor.
Definition
AssociatedMaterial.cxx:18
Trk::AssociatedMaterial::operator=
AssociatedMaterial & operator=(const AssociatedMaterial &am)
Assignment operator.
Definition
AssociatedMaterial.cxx:116
Trk::AssociatedMaterial::steplengthInL0
double steplengthInL0() const
Access method : steplength.
Definition
AssociatedMaterial.h:182
Trk::AssociatedMaterial::associatedTrackingVolume
const Trk::TrackingVolume * associatedTrackingVolume() const
Trivial Access methods.
Definition
AssociatedMaterial.h:149
Trk::AssociatedMaterial::materialPosition
const Amg::Vector3D & materialPosition() const
Trivial Access methods.
Definition
AssociatedMaterial.h:139
Trk::AssociatedMaterial::m_correctionFactor
float m_correctionFactor
Definition
AssociatedMaterial.h:119
Trk::AssociatedMaterial::m_layer
const Trk::Layer * m_layer
Definition
AssociatedMaterial.h:123
Trk::AssociatedMaterial::m_materialStep
const Trk::MaterialStep * m_materialStep
Definition
AssociatedMaterial.h:121
Trk::AssociatedMaterial::m_materialProperties
const Trk::MaterialProperties * m_materialProperties
Definition
AssociatedMaterial.h:120
Trk::AssociatedMaterial::correctionFactor
double correctionFactor() const
Trivial Access methods.
Definition
AssociatedMaterial.h:144
Trk::Layer
Base Class for a Detector Layer in the Tracking realm.
Definition
Layer.h:72
Trk::MaterialProperties
Material with information about thickness of material.
Definition
MaterialProperties.h:40
Trk::MaterialStep
is needed for the recording of MaterialProperties from Geant4 and read them in with the mapping algor...
Definition
MaterialStep.h:34
Trk::Material
A common object to be contained by.
Definition
Material.h:117
Trk::TrackingVolume
Full Volume description used in Tracking, it inherits from Volume to get the geometrical structure,...
Definition
TrackingVolume.h:119
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition
GeoPrimitives.h:47
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition
FakeTrackBuilder.h:9
Trk::operator<<
MsgStream & operator<<(MsgStream &sl, const AlignModule &alignModule)
overload of << operator for MsgStream for debug output
Definition
AlignModule.cxx:204
Trk::L0
@ L0
Definition
AlignModuleList.h:32
dump
-event-from-file
Generated on
for ATLAS Offline Software by
1.17.0