14 float averageA,
float averageZ,
15 float averageRho,
float dEdX)
16 : m_material(Xo, Lo, averageA, averageZ, averageRho, dEdX),
17 m_dInX0(Xo * Xo > 10
e-10 ?
path / Xo : 0.),
18 m_dInL0(Lo * Lo > 10
e-10 ?
path / Lo : 0.),
19 m_zOaTrTd(averageA * averageA > 10
e-10
20 ? averageZ / averageA * averageRho *
path
26 : m_material(material),
27 m_dInX0(material.
X0 * material.
X0 > 10
e-10 ?
path / material.
X0 : 0.),
28 m_dInL0(material.
L0 * material.
L0 > 10
e-10 ?
path / material.
L0 : 0.),
29 m_zOaTrTd(material.
A * material.
A > 10
e-10
30 ?
path * material.Z / material.
A * material.
rho
50 float fnew = dInX0 *
mat.X0 / (m_dInX0 * m_material.X0 + dInX0 *
mat.X0);
51 float fold = 1. - fnew;
58 1. / (fnew /
mat.L0 + fold / m_material.L0),
59 fnew *
mat.A + fold * m_material.A,
60 fnew *
mat.Z + fold * m_material.Z,
61 fnew *
mat.rho + fold * m_material.rho);
64 m_dInL0 = m_dInX0 * m_material.X0 / m_material.L0;
65 m_zOaTrTd = m_material.A > 0 ? m_dInX0 * m_material.X0 * m_material.Z /
66 m_material.A * m_material.rho
74 m_dInX0 = thickness /
mat.X0;
75 m_dInL0 = thickness /
mat.L0;
76 m_zOaTrTd =
mat.Z /
mat.A *
mat.rho * thickness;
81 m_material.dEdX = dEdX;
86 sl <<
"Trk::MaterialProperties: " <<
endmsg;
89 sl <<
" - thickness [mm] = " << mprop.
thickness()
91 sl <<
" - radiation length X0 [mm] = " << mprop.
x0() <<
endmsg;
92 sl <<
" - nuclear interaction length L0 [mm] = " << mprop.
l0() <<
endmsg;
93 sl <<
" - average material Z/A*rho [gram/mm^3] = "
100 sl <<
"Trk::MaterialProperties: " << std::endl;
103 sl <<
" - thickness [mm] = " << mprop.
thickness()
105 sl <<
" - radiation length X0 [mm] = " << mprop.
x0()
107 sl <<
" - nuclear interaction length L0 [mm] = " << mprop.
l0()
109 sl <<
" - average material Z/A*rho [gram/mm^3] = "