38 float beta2 = p2 / e2;
44 float fact = 1.f + 0.038f * unsafe_logf<2>(
radLen);
46 float a = fact / (beta2 *
p2);
47 sigt2 = amscon * radLen *
a;
56 float error2_QoverP = covMatrix(0, 0);
60 sigt2 *= 1.f + error2_QoverP * (p2 + m2 * beta2 * (5.f + 3.f * p2 * error2_QoverP));
68 float betaMin2 = pMin2 / (pMin2 + m2);
69 float a_max = fact / (betaMin2 * pMin2);
70 float sigt2_max = amscon * radLen * a_max;
71 if (sigt2 > sigt2_max)
75 std::cout <<
" for track with 1/p=" << 1 /
p <<
"+-" <<
sqrt(error2_QoverP) << std::endl;
79 float isl2 = 1.f / d.perp2();
80 float cl2 = (d.z() * d.z());
81 float cf2 = (d.x() * d.x()) * isl2;
82 float sf2 = (d.y() * d.y()) * isl2;
85 float den = 1.f / (cl2 *
cl2);
87 effect.
deltaCov[
msxx] += (den * sigt2) * (sf2 * cl2 + cf2);
88 effect.
deltaCov[
msxy] += (den * sigt2) * (d.x() * d.y());
89 effect.
deltaCov[
msyy] += (den * sigt2) * (cf2 * cl2 + sf2);
117 float xf = 1. / fabs(d.
z());
119 const float amscon = 1.8496e-4;
120 const float m =
mass;
121 float e =
sqrt(p * p + m * m);
128 float a = (1. + 0.038 *
log(radLen)) / (beta * p);
130 sigt2 = amscon * radLen *
a;
138 float error2_QoverP = covMatrix(0, 0);
142 sigt2 *= (1. + (p *
p) * error2_QoverP * (1. + 5 * m * m / (e * e) + 3 * m * m * beta * beta * error2_QoverP));
150 float betaMin = pMin /
sqrt(pMin * pMin + m * m);
151 float a_max = (1. + 0.038 *
log(radLen)) / (betaMin * pMin);
153 float sigt2_max = amscon * radLen * a_max;
154 if (sigt2 > sigt2_max)
157 std::cout <<
" after P constraint (" << pMin <<
") = " <<
sqrt(sigt2);
158 std::cout <<
" for track with 1/p=" << 1 / p <<
"+-" <<
sqrt(error2_QoverP) << std::endl;
164 float cf = d.
x() / sl;
165 float sf = d.
y() / sl;
168 std::cout <<
"old " << sigt2 * (sf * sf * cl * cl + cf * cf) / (cl * cl * cl * cl) <<
" " 169 << sigt2 * (cf * sf * sl * sl) / (cl * cl * cl * cl) <<
" " 170 << sigt2 * (cf * cf * cl * cl + sf * sf) / (cl * cl * cl * cl) << std::endl;
LocalVector localMomentum() const
const SurfaceType & surface() const
Abs< T >::type abs(const T &t)
const AlgebraicSymMatrix55 & matrix() const
void compute(const TrajectoryStateOnSurface &, const PropagationDirection, Effect &effect) const override
const LocalTrajectoryError & localError() const
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
GlobalVector globalMomentum() const
void oldMUcompute(const TrajectoryStateOnSurface &TSoS, const PropagationDirection propDir, double mass, double ptmin)
const MediumProperties & mediumProperties() const