ATLAS Offline Software
Loading...
Searching...
No Matches
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
14// Trk includes
17
18class MsgStream;
19
20namespace Trk {
21
22class Layer;
23class TrackingVolume;
24
32
34 public:
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
52 const Trk::TrackingVolume* tvol, const Trk::Layer* lay);
53
56 const Trk::TrackingVolume* tvol, const Trk::Layer* lay);
57
60 const Trk::TrackingVolume* tvol, const Trk::Layer* lay);
61
64
67
70
73
76
79
81 const Trk::MaterialStep* materialStep() const;
82
84 const Amg::Vector3D& materialPosition() const;
85
87 double correctionFactor() const;
88
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:
125};
126
132
137
142
145 return m_correctionFactor;
146}
147
153
156 return m_layer;
157}
158
160inline double AssociatedMaterial::x0() const {
162 if (m_materialStep) return m_materialStep->x0();
163 return 0.;
164}
165
167inline double AssociatedMaterial::steplength() const {
169 if (m_materialStep) return m_materialStep->steplength();
170 return 0.;
171}
172
176 return m_materialProperties->thicknessInX0() * m_correctionFactor;
177 if (m_materialStep) return m_materialStep->steplengthInX0();
178 return 0.;
179}
180
184 return m_materialProperties->thicknessInL0() * m_correctionFactor;
185 if (m_materialStep) return m_materialStep->steplengthInL0();
186 return 0.;
187}
188
189inline double AssociatedMaterial::l0() const {
191 if (m_materialStep) return m_materialStep->l0();
192 return 0.;
193}
194
195inline 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
201inline 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
207inline 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
215MsgStream& operator<<(MsgStream& sl, const AssociatedMaterial& mstep);
216std::ostream& operator<<(std::ostream& sl, const AssociatedMaterial& mstep);
217
218} // namespace Trk
219
220#endif
It is used in the Mapping process ( using MaterialSteps ), the validation and recostruction ( using M...
double x0() const
Access method : material X0/A/Z/rho.
const Trk::TrackingVolume * m_trackingVolume
const Trk::Layer * associatedLayer() const
Trivial Access methods.
double steplengthInX0() const
Access method : steplength.
double steplength() const
Access method : steplength.
const Trk::MaterialProperties * materialProperties() const
Trivial Access methods.
const Trk::MaterialStep * materialStep() const
Trivial Access methods.
AssociatedMaterial()
Default constructor.
AssociatedMaterial & operator=(const AssociatedMaterial &am)
Assignment operator.
double steplengthInL0() const
Access method : steplength.
const Trk::TrackingVolume * associatedTrackingVolume() const
Trivial Access methods.
const Amg::Vector3D & materialPosition() const
Trivial Access methods.
const Trk::MaterialStep * m_materialStep
const Trk::MaterialProperties * m_materialProperties
double correctionFactor() const
Trivial Access methods.
Base Class for a Detector Layer in the Tracking realm.
Definition Layer.h:72
Material with information about thickness of material.
is needed for the recording of MaterialProperties from Geant4 and read them in with the mapping algor...
A common object to be contained by.
Definition Material.h:117
Full Volume description used in Tracking, it inherits from Volume to get the geometrical structure,...
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
MsgStream & operator<<(MsgStream &sl, const AlignModule &alignModule)
overload of << operator for MsgStream for debug output
-event-from-file