27 const float logz =
log(z);
28 const float h = (z + 1) / z *
log(287 *
sqrt(z)) /
log(159 *
pow(z, -1. / 3.));
29 float beta2 = 1. / (1. +
mass() *
mass() / p /
p);
31 float dp1 = rl / beta2 /
h;
32 float logdp1 =
log(dp1);
33 float logdp2 = 2. / 3. * logz + logdp1;
36 if (logdp2 <
log(0.5))
37 w2 = 0.05283 + 0.0077 * logdp2 + 0.00069 * logdp2 * logdp2;
39 w2 = -0.01517 + 0.1151 * logdp2 - 0.00653 * logdp2 * logdp2;
44 float var1 = 0.8510 + 0.03314 * logdp1 - 0.001825 * logdp1 * logdp1;
45 float var2 = (1. - w1 * var1) / w2;
46 for (
int ic = 0; ic < 2; ic++) {
48 float var = ic == 0 ? var1 : var2;
49 var *= 225.e-6 * dp1 / p /
p;
53 float sl = pvec.
perp();
55 float cf = pvec.
x() / sl;
56 float sf = pvec.
y() / sl;
58 effects[ic].
deltaCov[
msxx] += var * (sf * sf * cl * cl + cf * cf) / (cl * cl * cl * cl);
59 effects[ic].
deltaCov[
msxy] += var * (cf * sf * sl * sl) / (cl * cl * cl * cl);
60 effects[ic].
deltaCov[
msyy] += var * (cf * cf * cl * cl + sf * sf) / (cl * cl * cl * cl);
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
common ppss p3p6s2 common epss epspn46 common const1 w2
void compute(const TrajectoryStateOnSurface &, const PropagationDirection, Effect[]) const override
Computation: generates vectors of weights, means and standard deviations.
LocalVector localMomentum() const
const SurfaceType & surface() const
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
const MediumProperties & mediumProperties() const
Power< A, B >::type pow(const A &a, const B &b)