Collection of parametrizations used in the Tracking realm.
More...
#include <MaterialInteraction.h>
|
| static double | dEdl_ionization (double p, const Material &mat, ParticleHypothesis particle, double &sigma, double &kazL) |
| | dE/dl ionization energy loss per path unit
|
| static double | dEdXBetheBloch (const Trk::MaterialProperties &mat, double beta, double gamma, Trk::ParticleHypothesis particle) |
| | dE/dl ionization energy loss per path unit
|
| static double | dE_MPV_ionization (double p, const Trk::Material &mat, Trk::ParticleHypothesis particle, double &sigma, double &kazL, double path) |
| | Most Propable dE ionization energly loss.
|
| static double | dEdl_radiation (double p, const Material &mat, ParticleHypothesis particle, double &sigma) |
| | dE/dl radiation energy loss per path unit
|
| static double | dEdXBetheHeitler (const Trk::MaterialProperties &mat, double initialE, Trk::ParticleHypothesis particle) |
| static double | sigmaMS (double dInX0, double p, double beta) |
| | multiple scattering as function of dInX0
|
Collection of parametrizations used in the Tracking realm.
- Author
- sarka.nosp@m..tod.nosp@m.orova.nosp@m.@cer.nosp@m.n.ch
-
Christos Anastopoulos (Athena MT)
Definition at line 24 of file MaterialInteraction.h.
◆ dE_MPV_ionization()
Most Propable dE ionization energly loss.
Most Propable dE ionization energly loss It returns dE in MeV.
For the meaning of sigma, kazL look at comments on std Landau distribution
Definition at line 205 of file MaterialInteraction.cxx.
207 {
208
210 const double E = std::sqrt(p * p + m * m);
211 const double beta =
p /
E;
213 const double I = MeanExcitationEnergy(mat);
214 const double zOverAtimesRho =
mat.zOverAtimesRho();
215 double kaz = KAZ(zOverAtimesRho);
218 const double delta = DensityEffect(zOverAtimesRho,
eta, gamma,
I);
219
222 const double MPV = LandauMPV(kazL, eta2,
I, beta, delta);
224
225 return MPV;
226}
Scalar eta() const
pseudorapidity method
constexpr double mass[PARTICLEHYPOTHESES]
the array of masses
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
path
python interpreter configuration --------------------------------------—
◆ dEdl_ionization()
dE/dl ionization energy loss per path unit
dE/dl ionization energy loss per path unit It returns de/dl in MeV/mm For the meaning of sigma and kazL look at comments on the ATLAS Landau approximation.
Definition at line 117 of file MaterialInteraction.cxx.
119 {
120
123 if (
mat.averageZ() < 1) {
124 return 0.;
125 }
127 const double mfrac = s_me /
m;
128 const double E = std::sqrt(p * p + m * m);
129 const double beta =
p /
E;
131 const double I = MeanExcitationEnergy(mat);
132 const double zOverAtimesRho =
mat.zOverAtimesRho();
133 double kaz = KAZ(zOverAtimesRho);
134 double Ionization = 0.;
135
137
138
139
140 Ionization = -kaz * (2. *
log(2. * s_me /
I) + 3. *
log(gamma) - 1.95);
141
143 } else {
146 const double delta = DensityEffect(zOverAtimesRho,
eta, gamma,
I);
147
148 const double tMax =
149 2. *
eta2 * s_me / (1. + 2. *
gamma * mfrac + mfrac * mfrac);
150
152
153 Ionization = -kaz * (std::log(2. * s_me * eta2 * tMax / (
I *
I)) -
155
156
157 const double MPV = LandauMPV(kaz, eta2,
I, beta, delta);
158 constexpr double factor = (1. / 3.59524);
159 sigma = -(Ionization - MPV) * factor;
161 }
162 return Ionization;
163}
◆ dEdl_radiation()
dE/dl radiation energy loss per path unit
Definition at line 229 of file MaterialInteraction.cxx.
231 {
234 return 0.;
235
236
238 const double mfrac = s_me /
m;
239 const double E = sqrt(p * p + m * m);
240
241
242 double Radiation = -
E * mfrac * mfrac;
243
245
246
247
248
249
250
251 if ((particle ==
Trk::muon) && (E > 8000.)) {
252 if (E < 1.e6) {
253 Radiation += 0.5345 - 6.803e-5 *
E - 2.278e-11 *
E *
E +
254 9.899e-18 *
E *
E *
E;
255 sigma += (0.1828 - 3.966e-3 * std::sqrt(E) + 2.151e-5 *
E);
256 } else {
257 Radiation += 2.986 - 9.253e-5 *
E;
258 sigma += 17.73 + 2.409e-5 * (
E - 1000000.);
259 }
260 }
262
263 return Radiation /
mat.x0();
264}
◆ dEdXBetheBloch()
dE/dl ionization energy loss per path unit
Definition at line 165 of file MaterialInteraction.cxx.
167 {
169 return 0.;
170 }
171
172 if (
mat.averageZ() == 0. ||
mat.zOverAtimesRho() == 0.) {
173 return 0.;
174 }
175 const double iPot = 16.e-6 * std::pow(
mat.averageZ(), 0.9);
177 const double zOverAtimesRho =
mat.zOverAtimesRho();
178 double kaz = KAZ(
mat.zOverAtimesRho());
179
183 double delta = DensityEffect(zOverAtimesRho,
eta, gamma, iPot);
184
185 double mfrac = s_me /
m;
186
187 double tMax = 2. *
eta2 * s_me / (1. + 2. *
gamma * mfrac + mfrac * mfrac);
188
190
191 return kaz * (std::log(2. * s_me * eta2 * tMax / (iPot * iPot)) -
193 }
194
195
196
197 return kaz * (2. * std::log(2. * s_me / iPot) + 3. * std::log(gamma) - 1.95);
198}
◆ dEdXBetheHeitler()
Definition at line 266 of file MaterialInteraction.cxx.
268 {
270 return 0.;
271 }
273 mfrac *= mfrac;
274 return initialE /
mat.x0() * mfrac;
275}
◆ sigmaMS()
| double Trk::MaterialInteraction::sigmaMS |
( |
double | dInX0, |
|
|
double | p, |
|
|
double | beta ) |
|
static |
multiple scattering as function of dInX0
Definition at line 278 of file MaterialInteraction.cxx.
278 {
279
280 if (dInX0 == 0. || p == 0. || beta == 0.) {
281 return 0.;
282 }
283
284
285 return 13.6 * std::sqrt(dInX0) / (
beta *
p) *
286 (1. + 0.038 * std::log(dInX0 / (beta * beta)));
287}
The documentation for this class was generated from the following files: