26 constexpr
float z = 14;
27 const float logz =
log(
z);
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;
common ppss p3p6s2 common epss epspn46 common const1 w2
const SurfaceType & surface() const
LocalVector localMomentum() const
void compute(const TrajectoryStateOnSurface &, const PropagationDirection, Effect[]) const override
Computation: generates vectors of weights, means and standard deviations.
weight_default_t w1[2000]
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
const MediumProperties & mediumProperties() const
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Power< A, B >::type pow(const A &a, const B &b)