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 42 of file LayerMaterialRecord.h.

Constructor & Destructor Documentation

◆ LayerMaterialRecord() [1/3]

Trk::LayerMaterialRecord::LayerMaterialRecord ( )

Default Constructor.

Definition at line 24 of file LayerMaterialRecord.cxx.

25 : m_layerThickness(0.),
26 m_binUtility(nullptr),
27 m_bins0(0),
28 m_bins1(0),
29 m_minFraction(0.),
30 m_steps(0),
31 m_pos(Amg::Vector3D(0., 0., 0.)),
32 m_emptyHitCase(false),
33 m_s(0.),
34 m_s_in_x0(0.),
35 m_s_in_l0(0.),
36 m_a(0.),
37 m_z(0.),
38 m_rho(0.),
40 // m_pos = Amg::Vector3D(0.,0.,0.);
41}
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 43 of file LayerMaterialRecord.cxx.

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

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

◆ ~LayerMaterialRecord()

Trk::LayerMaterialRecord::~LayerMaterialRecord ( )

Destructor.

Definition at line 149 of file LayerMaterialRecord.cxx.

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

Member Function Documentation

◆ associatedLayerMaterial()

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

return method for the LayerMaterial

Definition at line 129 of file LayerMaterialRecord.h.

129 {
131}
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 188 of file LayerMaterialRecord.cxx.

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

◆ 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 154 of file LayerMaterialRecord.cxx.

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

◆ binCounts()

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

return method for the events used for this

Definition at line 134 of file LayerMaterialRecord.h.

134 {
135 return m_run_events;
136}

◆ binUtility()

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

return the BinUtility

Definition at line 138 of file LayerMaterialRecord.h.

138 {
139 return m_binUtility;
140}

◆ clearMaterial()

void Trk::LayerMaterialRecord::clearMaterial ( )
private

copy from another vector

Definition at line 361 of file LayerMaterialRecord.cxx.

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

◆ copyMaterial()

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

Definition at line 377 of file LayerMaterialRecord.cxx.

378 {
379 // clear the vector
381
382 Trk::MaterialPropertiesMatrix::const_iterator matMatrixIter =
383 materialMatrix.begin();
384 Trk::MaterialPropertiesMatrix::const_iterator matMatrixIterEnd =
385 materialMatrix.end();
386 for (; matMatrixIter != matMatrixIterEnd; ++matMatrixIter) {
388 // loop over the subsets
389 std::vector<const Trk::MaterialProperties*>::const_iterator matIter =
390 (*matMatrixIter).begin();
391 std::vector<const Trk::MaterialProperties*>::const_iterator matIterEnd =
392 (*matMatrixIter).end();
393 for (; matIter != matIterEnd; ++matIter) {
394 // test it
395 matProp.push_back(((*matIter) ? (*matIter)->clone() : nullptr));
396 }
397 // and now push back the vector
398 m_associatedLayerMaterial.push_back(matProp);
399 }
400}
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 195 of file LayerMaterialRecord.cxx.

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

◆ finalizeRun()

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

finalize the Run

Definition at line 285 of file LayerMaterialRecord.cxx.

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

◆ operator=()

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

Assignment operator.

Definition at line 113 of file LayerMaterialRecord.cxx.

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

Member Data Documentation

◆ m_a

double Trk::LayerMaterialRecord::m_a
private

Definition at line 101 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 105 of file LayerMaterialRecord.h.

◆ m_associatedLayerMaterial

MaterialPropertiesMatrix Trk::LayerMaterialRecord::m_associatedLayerMaterial
private

clear the material -> calls delete

Definition at line 120 of file LayerMaterialRecord.h.

◆ m_bins0

int Trk::LayerMaterialRecord::m_bins0
private

number of bins in coordinate 1

Definition at line 88 of file LayerMaterialRecord.h.

◆ m_bins1

int Trk::LayerMaterialRecord::m_bins1
private

number of bins in coordinate 2

Definition at line 89 of file LayerMaterialRecord.h.

◆ m_binUtility

BinUtility* Trk::LayerMaterialRecord::m_binUtility
private

record the BinnedArray

Definition at line 87 of file LayerMaterialRecord.h.

◆ m_elements

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

Definition at line 104 of file LayerMaterialRecord.h.

◆ m_emptyHitCase

bool Trk::LayerMaterialRecord::m_emptyHitCase
private

Definition at line 97 of file LayerMaterialRecord.h.

◆ m_layerThickness

double Trk::LayerMaterialRecord::m_layerThickness
private

record the layerThickness

Definition at line 86 of file LayerMaterialRecord.h.

◆ m_minFraction

double Trk::LayerMaterialRecord::m_minFraction
private

minimum element fraction to be recorded

event normalizers

Definition at line 90 of file LayerMaterialRecord.h.

◆ m_pos

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

event related information

Definition at line 94 of file LayerMaterialRecord.h.

◆ m_rho

double Trk::LayerMaterialRecord::m_rho
private

Definition at line 103 of file LayerMaterialRecord.h.

◆ m_run_a

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

Definition at line 113 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 117 of file LayerMaterialRecord.h.

◆ m_run_events

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

Definition at line 108 of file LayerMaterialRecord.h.

◆ m_run_pos

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

Definition at line 109 of file LayerMaterialRecord.h.

◆ m_run_rho

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

Definition at line 115 of file LayerMaterialRecord.h.

◆ m_run_s

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

Definition at line 110 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 112 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 111 of file LayerMaterialRecord.h.

◆ m_run_z

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

Definition at line 114 of file LayerMaterialRecord.h.

◆ m_s

double Trk::LayerMaterialRecord::m_s
private

Definition at line 98 of file LayerMaterialRecord.h.

◆ m_s_in_l0

double Trk::LayerMaterialRecord::m_s_in_l0
private

Definition at line 100 of file LayerMaterialRecord.h.

◆ m_s_in_x0

double Trk::LayerMaterialRecord::m_s_in_x0
private

Definition at line 99 of file LayerMaterialRecord.h.

◆ m_steps

int Trk::LayerMaterialRecord::m_steps
private

Definition at line 93 of file LayerMaterialRecord.h.

◆ m_z

double Trk::LayerMaterialRecord::m_z
private

Definition at line 102 of file LayerMaterialRecord.h.


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