28 const float logz =
log(z);
32 float dp1 = rl/beta2/
h;
33 float logdp1 =
log(dp1);
34 float logdp2 = 2./3.*logz + logdp1;
37 if ( logdp2<
log(0.5) )
38 w2 = 0.05283+0.0077*logdp2+0.00069*logdp2*logdp2;
40 w2 =-0.01517+0.1151*logdp2-0.00653*logdp2*logdp2;
45 float var1 = 0.8510+0.03314*logdp1-0.001825*logdp1*logdp1;
46 float var2 = (1.-w1*var1)/w2;
47 for (
int ic=0; ic<2; ic++ ) {
49 float var = ic==0 ? var1 : var2;
50 var *= 225.e-6*dp1/p/
p;
54 float sl = pvec.
perp();
56 float cf = pvec.
x()/sl;
57 float sf = pvec.
y()/sl;
58 using namespace materialEffect;
59 effects[ic].
deltaCov[
msxx] += var*(sf*sf*cl*cl + cf*cf)/(cl*cl*cl*cl);
60 effects[ic].
deltaCov[
msxy] += var*(cf*sf*sl*sl )/(cl*cl*cl*cl);
61 effects[ic].
deltaCov[
msyy] += var*(cf*cf*cl*cl + sf*sf)/(cl*cl*cl*cl);
common ppss p3p6s2 common epss epspn46 common const1 w2
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
virtual void compute(const TrajectoryStateOnSurface &, const PropagationDirection, Effect[]) const
Computation: generates vectors of weights, means and standard deviations.
LocalVector localMomentum() const
const SurfaceType & surface() const
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
const MediumProperties & mediumProperties() const
Power< A, B >::type pow(const A &a, const B &b)