ATLAS Offline Software
Loading...
Searching...
No Matches
Trk::LayerMaterialRecord Class Reference

Helper Class to record the material during the GeantinoNtupleMappingProcess. More...

#include <LayerMaterialRecord.h>

Collaboration diagram for Trk::LayerMaterialRecord:

Public Member Functions

 LayerMaterialRecord ()
 Default Constructor.
 LayerMaterialRecord (double tlayer, const BinUtility *binutils, double minFraction, MaterialAssociationType assoc=EffectiveNumAtoms)
 Constructor.
 LayerMaterialRecord (const LayerMaterialRecord &lmr)
 Constructor.
 ~LayerMaterialRecord ()
 Destructor.
LayerMaterialRecordoperator= (const LayerMaterialRecord &lmr)
 Assignment operator.
void associateGeantinoHit (const Amg::Vector3D &pos, double s, const Trk::Material &mat)
 adding the information about the Geantino hit
void associateEmptyHit (const Amg::Vector3D &pos)
 adding the information about an empty hit scaling- particle crossed layer, but no mapping information
AssociatedMaterialfinalizeEvent (const Trk::Layer &lay, bool fullHit=false)
 finalize the Event
void finalizeRun (bool recordElements=true)
 finalize the Run
const MaterialPropertiesMatrixassociatedLayerMaterial () const
 return method for the LayerMaterial
const std::vector< std::vector< unsigned int > > & binCounts () const
 return method for the events used for this
const Trk::BinUtilitybinUtility () const
 return the BinUtility

Private Member Functions

void clearMaterial ()
 copy from another vector
void copyMaterial (const MaterialPropertiesMatrix &mat)

Private Attributes

double m_layerThickness
 record the layerThickness
BinUtilitym_binUtility
 record the BinnedArray
int m_bins0
 number of bins in coordinate 1
int m_bins1
 number of bins in coordinate 2
double m_minFraction
 minimum element fraction to be recorded
int m_steps
Amg::Vector3D m_pos
 event related information
bool m_emptyHitCase
double m_s
double m_s_in_x0
double m_s_in_l0
double m_a
double m_z
double m_rho
std::map< unsigned int, double > m_elements
MaterialAssociationType m_assoc
 type of hit association
std::vector< std::vector< unsigned int > > m_run_events
std::vector< std::vector< Amg::Vector3D > > m_run_pos
std::vector< std::vector< double > > m_run_s
std::vector< std::vector< double > > m_run_s_in_x0
std::vector< std::vector< double > > m_run_s_in_l0
std::vector< std::vector< double > > m_run_a
std::vector< std::vector< double > > m_run_z
std::vector< std::vector< double > > m_run_rho
std::vector< std::vector< std::map< unsigned int, double > > > m_run_elements
 the final material properties
MaterialPropertiesMatrix m_associatedLayerMaterial
 clear the material -> calls delete

Detailed Description

Helper Class to record the material during the GeantinoNtupleMappingProcess.

Author
Andre.nosp@m.as.S.nosp@m.alzbu.nosp@m.rger.nosp@m.@cern.nosp@m..ch

Definition at line 45 of file LayerMaterialRecord.h.

Constructor & Destructor Documentation

◆ LayerMaterialRecord() [1/3]

Trk::LayerMaterialRecord::LayerMaterialRecord ( )

Default Constructor.

Definition at line 22 of file LayerMaterialRecord.cxx.

23 : m_layerThickness(0.),
24 m_binUtility(nullptr),
25 m_bins0(0),
26 m_bins1(0),
27 m_minFraction(0.),
28 m_steps(0),
29 m_pos(Amg::Vector3D(0., 0., 0.)),
30 m_emptyHitCase(false),
31 m_s(0.),
32 m_s_in_x0(0.),
33 m_s_in_l0(0.),
34 m_a(0.),
35 m_z(0.),
36 m_rho(0.),
38 // m_pos = Amg::Vector3D(0.,0.,0.);
39}
int m_bins1
number of bins in coordinate 2
double m_layerThickness
record the layerThickness
Amg::Vector3D m_pos
event related information
MaterialAssociationType m_assoc
type of hit association
BinUtility * m_binUtility
record the BinnedArray
double m_minFraction
minimum element fraction to be recorded
int m_bins0
number of bins in coordinate 1
Eigen::Matrix< double, 3, 1 > Vector3D

◆ LayerMaterialRecord() [2/3]

Trk::LayerMaterialRecord::LayerMaterialRecord ( double tlayer,
const BinUtility * binutils,
double minFraction,
Trk::MaterialAssociationType assoc = EffectiveNumAtoms )

Constructor.

Definition at line 41 of file LayerMaterialRecord.cxx.

44 : m_layerThickness(thickness),
45 m_binUtility(binutils ? binutils->clone() : nullptr),
46 m_bins0(binutils ? (binutils->max(0) + 1) : 1),
47 m_bins1(binutils && binutils->dimensions() > 1 ? (binutils->max(1) + 1)
48 : 1),
49 m_minFraction(minfraction),
50 m_steps(0),
51 m_pos(Amg::Vector3D(0., 0., 0.)),
52 m_emptyHitCase(false),
53 m_s(0.),
54 m_s_in_x0(0.),
55 m_s_in_l0(0.),
56 m_a(0.),
57 m_z(0.),
58 m_rho(0.),
59 m_assoc(assoc) {
60 // initialize for the run
61 const auto zeroedVectorDbl = std::vector<double>(m_bins0, 0.);
62 const auto zeroedVectorUInt = std::vector<unsigned int>(m_bins0, 0);
63 const auto zeroedVectorVector3D = std::vector<Amg::Vector3D>(m_bins0, m_pos);
64 using Element_t = std::map<unsigned int, double>;
65 const auto zeroedVectorElements =
66 std::vector<Element_t>(m_bins0, Element_t());
67 for (int ibin = 0; ibin < m_bins1; ++ibin) {
68 // run-related parameters
69 m_run_pos.push_back(zeroedVectorVector3D);
70 m_run_events.push_back(zeroedVectorUInt);
71 m_run_s.push_back(zeroedVectorDbl);
72 m_run_s_in_x0.push_back(zeroedVectorDbl);
73 m_run_s_in_l0.push_back(zeroedVectorDbl);
74 m_run_a.push_back(zeroedVectorDbl);
75 m_run_z.push_back(zeroedVectorDbl);
76 m_run_rho.push_back(zeroedVectorDbl);
77 m_run_elements.push_back(zeroedVectorElements);
78 }
79}
std::vector< std::vector< unsigned int > > m_run_events
std::vector< std::vector< double > > m_run_s_in_x0
std::vector< std::vector< double > > m_run_s
std::vector< std::vector< double > > m_run_a
std::vector< std::vector< Amg::Vector3D > > m_run_pos
std::vector< std::vector< std::map< unsigned int, double > > > m_run_elements
the final material properties
std::vector< std::vector< double > > m_run_s_in_l0
std::vector< std::vector< double > > m_run_z
std::vector< std::vector< double > > m_run_rho

◆ LayerMaterialRecord() [3/3]

Trk::LayerMaterialRecord::LayerMaterialRecord ( const LayerMaterialRecord & lmr)

Constructor.

Definition at line 81 of file LayerMaterialRecord.cxx.

83 : m_layerThickness(lmr.m_layerThickness),
84 m_binUtility(lmr.m_binUtility ? lmr.m_binUtility->clone() : nullptr),
85 m_bins0(lmr.m_bins0),
86 m_bins1(lmr.m_bins1),
87 m_minFraction(lmr.m_minFraction),
88 m_steps(lmr.m_steps),
89 m_pos(Amg::Vector3D(0., 0., 0.)),
90 m_emptyHitCase(lmr.m_emptyHitCase),
91 m_s(lmr.m_s),
92 m_s_in_x0(lmr.m_s_in_x0),
93 m_s_in_l0(lmr.m_s_in_l0),
94 m_a(lmr.m_a),
95 m_z(lmr.m_z),
96 m_rho(lmr.m_rho),
97 m_elements(lmr.m_elements),
98 m_assoc(lmr.m_assoc),
99 m_run_events(lmr.m_run_events),
100 m_run_pos(lmr.m_run_pos),
101 m_run_s(lmr.m_run_s),
102 m_run_s_in_x0(lmr.m_run_s_in_x0),
103 m_run_s_in_l0(lmr.m_run_s_in_l0),
104 m_run_a(lmr.m_run_a),
105 m_run_z(lmr.m_run_z),
106 m_run_rho(lmr.m_run_rho),
107 m_run_elements(lmr.m_run_elements) {
108 copyMaterial(lmr.m_associatedLayerMaterial);
109}
std::map< unsigned int, double > m_elements
void copyMaterial(const MaterialPropertiesMatrix &mat)

◆ ~LayerMaterialRecord()

Trk::LayerMaterialRecord::~LayerMaterialRecord ( )

Destructor.

Definition at line 147 of file LayerMaterialRecord.cxx.

147 {
148 // don't delete the material -> its given to the outside world
149 delete m_binUtility;
150}

Member Function Documentation

◆ associatedLayerMaterial()

const MaterialPropertiesMatrix & Trk::LayerMaterialRecord::associatedLayerMaterial ( ) const
inline

return method for the LayerMaterial

Definition at line 132 of file LayerMaterialRecord.h.

132 {
134}
MaterialPropertiesMatrix m_associatedLayerMaterial
clear the material -> calls delete

◆ associateEmptyHit()

void Trk::LayerMaterialRecord::associateEmptyHit ( const Amg::Vector3D & pos)

adding the information about an empty hit scaling- particle crossed layer, but no mapping information

Definition at line 186 of file LayerMaterialRecord.cxx.

186 {
187 // just remember that you had an empty hit
188 m_emptyHitCase = true;
189 // take the position to increase the event counter by one
190 m_pos = pos;
191}

◆ associateGeantinoHit()

void Trk::LayerMaterialRecord::associateGeantinoHit ( const Amg::Vector3D & pos,
double s,
const Trk::Material & mat )

adding the information about the Geantino hit

Definition at line 152 of file LayerMaterialRecord.cxx.

154 {
155 m_steps++;
156
157 m_s += s;
158 // path association method
159 m_pos += pos;
160 // path lenght updates
161 m_s_in_x0 += s / mat.X0;
162 m_s_in_l0 += s / mat.L0;
163 // effective rho, A, Z weithed by pathlength through it
164 m_rho += mat.rho * s;
165 m_a += mat.A * s * mat.rho;
166 m_z += mat.Z * s * mat.rho;
167
168 // record the composition - since this is mainly for hadronic interactions :
169 // weight by s/L0
170 MaterialComposition* mComposition = mat.composition;
171 if (mComposition) {
172 for (auto& it : (*mComposition)) {
173 // element identification
174 unsigned int Z = uchar2uint(it.first);
175 double fraction = uchar2dfrac(it.second);
176 // record the elements, let's weight the fractions in s/mat.L0
177 auto eIter = m_elements.find(Z);
178 if (eIter == m_elements.end())
179 m_elements[Z] = fraction * s / mat.L0;
180 else
181 m_elements[Z] += fraction * s / mat.L0;
182 }
183 }
184}

◆ binCounts()

const std::vector< std::vector< unsigned int > > & Trk::LayerMaterialRecord::binCounts ( ) const
inline

return method for the events used for this

Definition at line 137 of file LayerMaterialRecord.h.

137 {
138 return m_run_events;
139}

◆ binUtility()

const Trk::BinUtility * Trk::LayerMaterialRecord::binUtility ( ) const
inline

return the BinUtility

Definition at line 141 of file LayerMaterialRecord.h.

141 {
142 return m_binUtility;
143}

◆ clearMaterial()

void Trk::LayerMaterialRecord::clearMaterial ( )
private

copy from another vector

Definition at line 365 of file LayerMaterialRecord.cxx.

365 {
366 Trk::MaterialPropertiesMatrix::iterator matMatrixIter =
368 Trk::MaterialPropertiesMatrix::iterator matMatrixIterEnd =
370 for (; matMatrixIter != matMatrixIterEnd; ++matMatrixIter) {
371 // loop over the subsets
372 std::vector<const Trk::MaterialProperties*>::iterator matIter =
373 (*matMatrixIter).begin();
374 std::vector<const Trk::MaterialProperties*>::iterator matIterEnd =
375 (*matMatrixIter).end();
376 for (; matIter != matIterEnd; ++matIter) delete (*matIter);
377 }
379}

◆ copyMaterial()

void Trk::LayerMaterialRecord::copyMaterial ( const MaterialPropertiesMatrix & mat)
private

Definition at line 381 of file LayerMaterialRecord.cxx.

382 {
383 // clear the vector
385
386 Trk::MaterialPropertiesMatrix::const_iterator matMatrixIter =
387 materialMatrix.begin();
388 Trk::MaterialPropertiesMatrix::const_iterator matMatrixIterEnd =
389 materialMatrix.end();
390 for (; matMatrixIter != matMatrixIterEnd; ++matMatrixIter) {
392 // loop over the subsets
393 std::vector<const Trk::MaterialProperties*>::const_iterator matIter =
394 (*matMatrixIter).begin();
395 std::vector<const Trk::MaterialProperties*>::const_iterator matIterEnd =
396 (*matMatrixIter).end();
397 for (; matIter != matIterEnd; ++matIter) {
398 // test it
399 matProp.push_back(((*matIter) ? (*matIter)->clone() : nullptr));
400 }
401 // and now push back the vector
402 m_associatedLayerMaterial.push_back(std::move(matProp));
403 }
404}
std::vector< const MaterialProperties * > MaterialPropertiesVector
Useful typedefs.

◆ finalizeEvent()

Trk::AssociatedMaterial * Trk::LayerMaterialRecord::finalizeEvent ( const Trk::Layer & lay,
bool fullHit = false )

finalize the Event

Constructor with explicit arguments

Definition at line 193 of file LayerMaterialRecord.cxx.

194 {
195 Trk::AssociatedMaterial* fullHitMaterial = nullptr;
196 // empty hit scaling
197 if (m_emptyHitCase) {
198 // averge the hit positions
199 int rBin0 = m_binUtility ? m_binUtility->bin(m_pos, 0) : 0;
200 int rBin1 = (m_binUtility && m_binUtility->dimensions() > 1)
201 ? m_binUtility->bin(m_pos, 1)
202 : 0;
203 // simply increas the event counter
204 m_run_events[rBin1][rBin0]++;
205 // material hit collection
206 } else if (m_steps) {
207 // only if there was a single step in the event
208 Amg::Vector3D hitPosition(m_pos * 1. / (m_steps));
209 // get the correction factor depending on the layer type
210 double corrFactorInv = fabs(1. / lay.surfaceRepresentation().pathCorrection(
211 hitPosition, hitPosition));
212 // averge the hit positions
213 int rBin0 = m_binUtility ? m_binUtility->bin(hitPosition, 0) : 0;
214 int rBin1 = (m_binUtility && m_binUtility->dimensions() > 1)
215 ? m_binUtility->bin(hitPosition, 1)
216 : 0;
217
218 // event averaging
219 m_run_events[rBin1][rBin0]++;
220 m_run_s[rBin1][rBin0] += m_s;
221 m_run_pos[rBin1][rBin0] += hitPosition;
222 m_run_s_in_x0[rBin1][rBin0] += m_s_in_x0 * corrFactorInv;
223 m_run_s_in_l0[rBin1][rBin0] += m_s_in_l0 * corrFactorInv;
224 // a & z are normalised to rho
225 m_run_a[rBin1][rBin0] += m_a / m_rho;
226 m_run_z[rBin1][rBin0] += m_z / m_rho;
227 // rho is normalised to the layer thickness times corection factor
228 m_run_rho[rBin1][rBin0] += m_rho * corrFactorInv / m_layerThickness; // ST
229
230 // add to the run element table
231 for (auto& eIter : m_elements) {
232 // first normalize the element fraction
233 double nef = eIter.second * corrFactorInv / m_s_in_l0;
234 if (m_run_elements[rBin1][rBin0].find(eIter.first) ==
235 m_run_elements[rBin1][rBin0].end())
236 m_run_elements[rBin1][rBin0][eIter.first] = nef;
237 else
238 m_run_elements[rBin1][rBin0][eIter.first] += nef;
239 }
240
241 // just for validation purpose
242 if (fullHit) {
243 // average the material for the per event validation
244 double eventNorm = 1. / double(m_run_events[rBin1][rBin0]);
245
246 // normalize the value by number of recorded events - each event counts
247 // the same
248 double a = m_run_a[rBin1][rBin0] * eventNorm;
249 double z = m_run_z[rBin1][rBin0] * eventNorm;
250 double rho = m_run_rho[rBin1][rBin0] * eventNorm;
251
252 // the average s/X0 and s/L0 is the average over all events corrected by
253 // the incident angle
254 double s_in_x0 = m_run_s_in_x0[rBin1][rBin0] * eventNorm;
255 double s_in_l0 = m_run_s_in_l0[rBin1][rBin0] * eventNorm;
256
257 // condense to the layer thickness
258 double x0 = m_layerThickness / s_in_x0;
259 double l0 = m_layerThickness / s_in_l0;
260
262 fullHitMaterial = new Trk::AssociatedMaterial(
263 hitPosition, m_run_s[rBin1][rBin0] * eventNorm, x0, l0, a, z, rho,
264 corrFactorInv, lay.enclosingTrackingVolume(), &lay);
265 }
266 }
267
268 // reset event variables
269 m_emptyHitCase = false;
270 m_steps = 0;
271 m_pos = Amg::Vector3D(0., 0., 0.);
272 m_s = 0.;
273 m_s_in_x0 = 0.;
274 m_s_in_l0 = 0.;
275 m_a = 0.;
276 m_z = 0.;
277 m_rho = 0.;
278 m_elements.clear();
279
280 return fullHitMaterial;
281}
static Double_t a
virtual const Surface & surfaceRepresentation() const =0
Transforms the layer into a Surface representation for extrapolation.
const TrackingVolume * enclosingTrackingVolume() const
get the confining TrackingVolume
virtual double pathCorrection(const Amg::Vector3D &pos, const Amg::Vector3D &mom) const
the pathCorrection for derived classes with thickness - it reflects if the direction projection is po...
std::string find(const std::string &s)
return a remapped string
Definition hcg.cxx:140
@ z
global position (cartesian)
Definition ParamDefs.h:57

◆ finalizeRun()

void Trk::LayerMaterialRecord::finalizeRun ( bool recordElements = true)

finalize the Run

Definition at line 283 of file LayerMaterialRecord.cxx.

283 {
285
286 for (int ibin1 = 0; ibin1 < m_bins1; ++ibin1) {
287 // create the vector first
289 matVector.reserve(m_bins0);
290 // loop over local 1 bins
291 for (int ibin0 = 0; ibin0 < m_bins0; ++ibin0) {
292 Trk::MaterialProperties* binMaterial = nullptr;
293 if (m_run_events[ibin1][ibin0]) {
294 // The event norm
295 double eventNorm = 1. / double(m_run_events[ibin1][ibin0]);
296
297 // normalize the value by number of recorded events - each event counts
298 // the same
299 m_run_a[ibin1][ibin0] *= eventNorm;
300 m_run_z[ibin1][ibin0] *= eventNorm;
301 m_run_rho[ibin1][ibin0] *= eventNorm;
302
303 // the average s/X0 and s/L0 is the average over all events corrected by
304 // the incident angle
305 m_run_s_in_x0[ibin1][ibin0] *= eventNorm;
306 m_run_s_in_l0[ibin1][ibin0] *= eventNorm;
307
308 // condense to the layer thickness
309 double x0 = m_layerThickness / m_run_s_in_x0[ibin1][ibin0];
310 double l0 = m_layerThickness / m_run_s_in_l0[ibin1][ibin0];
311
312 // prepare the material composition
313 Trk::MaterialComposition* matComposition = nullptr;
314 if (recordElements) {
315 // pre-loop to get a sample
316 double preTotalFraction = 0.;
317 std::map<unsigned int, double> binElements =
318 m_run_elements[ibin1][ibin0];
319 for (auto& peIter : binElements) {
320 // normalize the fraction to the number of events
321 peIter.second *= eventNorm;
322 preTotalFraction += peIter.second;
323 }
324 if (preTotalFraction == 0.) [[unlikely]]{
325 throw std::runtime_error("Trk::LayerMaterialRecord::finalizeRun: preTotalFraction is zero.");
326 }
327 // first loop to sort rescale
328 std::map<double, unsigned int> probabilityOrdered;
329 double totalFraction = 0.;
330 for (auto& eIter : binElements) {
331 // get the fraction
332 double eFraction = eIter.second / preTotalFraction;
333 if (eFraction < m_minFraction) continue;
334 probabilityOrdered[eIter.second] = eIter.first;
335 totalFraction += eIter.second;
336 }
337 if (totalFraction == 0.) [[unlikely]]{
338 throw std::runtime_error("Trk::LayerMaterialRecord::finalizeRun: totalFraction is zero.");
339 }
340 // second loop to fill the element fractions
341 std::vector<Trk::ElementFraction> elementFractions;
342 elementFractions.reserve(binElements.size());
343 for (auto& poEl : probabilityOrdered) {
344 double fracEl = poEl.first / totalFraction;
345 unsigned int fracEluChar = fracEl * UCHAR_MAX;
346 elementFractions.emplace_back(poEl.second, fracEluChar);
347 }
348 // reverse the order to have the one with the highest fraction first
349 std::reverse(elementFractions.begin(), elementFractions.end());
350 matComposition = new Trk::MaterialComposition(elementFractions);
351 }
352
353 Trk::Material material(x0, l0, m_run_a[ibin1][ibin0],
354 m_run_z[ibin1][ibin0], m_run_rho[ibin1][ibin0],
355 0., matComposition);
356
357 binMaterial = new Trk::MaterialProperties(material, m_layerThickness);
358 }
359 matVector.push_back(binMaterial);
360 }
361 m_associatedLayerMaterial.push_back(std::move(matVector));
362 }
363}
void reverse(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of reverse for DataVector/List.
#define unlikely(x)

◆ operator=()

Trk::LayerMaterialRecord & Trk::LayerMaterialRecord::operator= ( const LayerMaterialRecord & lmr)

Assignment operator.

Definition at line 111 of file LayerMaterialRecord.cxx.

112 {
113 if (this != &lmr) {
114 m_layerThickness = lmr.m_layerThickness;
115 delete m_binUtility;
116 m_binUtility = lmr.m_binUtility ? lmr.m_binUtility->clone() : nullptr;
117 m_bins0 = lmr.m_bins0;
118 m_bins1 = lmr.m_bins1;
119 m_minFraction = lmr.m_minFraction;
120 m_assoc = lmr.m_assoc;
121 m_steps = lmr.m_steps;
122 m_pos = lmr.m_pos;
123 m_emptyHitCase = lmr.m_emptyHitCase;
124 m_s = lmr.m_s;
125 m_s_in_x0 = lmr.m_s_in_x0;
126 m_s_in_l0 = lmr.m_s_in_l0;
127 m_a = lmr.m_a;
128 m_z = lmr.m_z;
129 m_rho = lmr.m_rho;
130 m_elements = lmr.m_elements;
131 m_run_events = lmr.m_run_events;
132 m_run_s = lmr.m_run_s;
133 m_run_s_in_x0 = lmr.m_run_s_in_x0;
134 m_run_s_in_l0 = lmr.m_run_s_in_l0;
135 m_run_pos = lmr.m_run_pos;
136 m_run_a = lmr.m_run_a;
137 m_run_z = lmr.m_run_z;
138 m_run_rho = lmr.m_run_rho;
139 m_run_elements = lmr.m_run_elements;
140 // deal with the material
142 copyMaterial(lmr.m_associatedLayerMaterial);
143 }
144 return (*this);
145}
void clearMaterial()
copy from another vector

Member Data Documentation

◆ m_a

double Trk::LayerMaterialRecord::m_a
private

Definition at line 104 of file LayerMaterialRecord.h.

◆ m_assoc

MaterialAssociationType Trk::LayerMaterialRecord::m_assoc
private

type of hit association

run related information - normalized per event

Definition at line 108 of file LayerMaterialRecord.h.

◆ m_associatedLayerMaterial

MaterialPropertiesMatrix Trk::LayerMaterialRecord::m_associatedLayerMaterial
private

clear the material -> calls delete

Definition at line 123 of file LayerMaterialRecord.h.

◆ m_bins0

int Trk::LayerMaterialRecord::m_bins0
private

number of bins in coordinate 1

Definition at line 91 of file LayerMaterialRecord.h.

◆ m_bins1

int Trk::LayerMaterialRecord::m_bins1
private

number of bins in coordinate 2

Definition at line 92 of file LayerMaterialRecord.h.

◆ m_binUtility

BinUtility* Trk::LayerMaterialRecord::m_binUtility
private

record the BinnedArray

Definition at line 90 of file LayerMaterialRecord.h.

◆ m_elements

std::map<unsigned int, double> Trk::LayerMaterialRecord::m_elements
private

Definition at line 107 of file LayerMaterialRecord.h.

◆ m_emptyHitCase

bool Trk::LayerMaterialRecord::m_emptyHitCase
private

Definition at line 100 of file LayerMaterialRecord.h.

◆ m_layerThickness

double Trk::LayerMaterialRecord::m_layerThickness
private

record the layerThickness

Definition at line 89 of file LayerMaterialRecord.h.

◆ m_minFraction

double Trk::LayerMaterialRecord::m_minFraction
private

minimum element fraction to be recorded

event normalizers

Definition at line 93 of file LayerMaterialRecord.h.

◆ m_pos

Amg::Vector3D Trk::LayerMaterialRecord::m_pos
private

event related information

Definition at line 97 of file LayerMaterialRecord.h.

◆ m_rho

double Trk::LayerMaterialRecord::m_rho
private

Definition at line 106 of file LayerMaterialRecord.h.

◆ m_run_a

std::vector<std::vector<double> > Trk::LayerMaterialRecord::m_run_a
private

Definition at line 116 of file LayerMaterialRecord.h.

◆ m_run_elements

std::vector<std::vector<std::map<unsigned int, double> > > Trk::LayerMaterialRecord::m_run_elements
private

the final material properties

Definition at line 120 of file LayerMaterialRecord.h.

◆ m_run_events

std::vector<std::vector<unsigned int> > Trk::LayerMaterialRecord::m_run_events
private

Definition at line 111 of file LayerMaterialRecord.h.

◆ m_run_pos

std::vector<std::vector<Amg::Vector3D> > Trk::LayerMaterialRecord::m_run_pos
private

Definition at line 112 of file LayerMaterialRecord.h.

◆ m_run_rho

std::vector<std::vector<double> > Trk::LayerMaterialRecord::m_run_rho
private

Definition at line 118 of file LayerMaterialRecord.h.

◆ m_run_s

std::vector<std::vector<double> > Trk::LayerMaterialRecord::m_run_s
private

Definition at line 113 of file LayerMaterialRecord.h.

◆ m_run_s_in_l0

std::vector<std::vector<double> > Trk::LayerMaterialRecord::m_run_s_in_l0
private

Definition at line 115 of file LayerMaterialRecord.h.

◆ m_run_s_in_x0

std::vector<std::vector<double> > Trk::LayerMaterialRecord::m_run_s_in_x0
private

Definition at line 114 of file LayerMaterialRecord.h.

◆ m_run_z

std::vector<std::vector<double> > Trk::LayerMaterialRecord::m_run_z
private

Definition at line 117 of file LayerMaterialRecord.h.

◆ m_s

double Trk::LayerMaterialRecord::m_s
private

Definition at line 101 of file LayerMaterialRecord.h.

◆ m_s_in_l0

double Trk::LayerMaterialRecord::m_s_in_l0
private

Definition at line 103 of file LayerMaterialRecord.h.

◆ m_s_in_x0

double Trk::LayerMaterialRecord::m_s_in_x0
private

Definition at line 102 of file LayerMaterialRecord.h.

◆ m_steps

int Trk::LayerMaterialRecord::m_steps
private

Definition at line 96 of file LayerMaterialRecord.h.

◆ m_z

double Trk::LayerMaterialRecord::m_z
private

Definition at line 105 of file LayerMaterialRecord.h.


The documentation for this class was generated from the following files: