40 float radLen = mp.
radLen()*xf;
44 float fact = 1.f + 0.038f*unsafe_logf<2>(radLen); fact *=fact;
45 float a = fact/(beta2*
p2);
46 sigt2 = amscon*radLen*
a;
55 float error2_QoverP = covMatrix(0,0);
59 sigt2 *= 1.f + error2_QoverP *( p2 + m2*beta2*(5.f + 3.f*p2*error2_QoverP) ) ;
67 float betaMin2 = pMin2/(pMin2 + m2);
68 float a_max = fact/(betaMin2 * pMin2);
69 float sigt2_max = amscon*radLen*a_max;
70 if (sigt2 > sigt2_max) sigt2 = sigt2_max;
72 std::cout<<
" after P constraint ("<<pMin<<
") = "<<
sqrt(sigt2);
73 std::cout<<
" for track with 1/p="<<1/
p<<
"+-"<<
sqrt(error2_QoverP)<<std::endl;
77 float isl2 = 1.f/d.perp2();
78 float cl2 = (d.z()*d.z());
79 float cf2 = (d.x()*d.x())*isl2;
80 float sf2 = (d.y()*d.y())*isl2;
83 float den = 1.f/(cl2*
cl2);
84 using namespace materialEffect;
121 float xf = 1./fabs(d.
z());
123 const float amscon = 1.8496e-4;
124 const float m =
mass;
125 float e =
sqrt(p*p + m*m);
128 float radLen = mp.
radLen()*xf;
132 float a = (1. + 0.038*
log(radLen))/(beta*p); a *=
a;
133 sigt2 = amscon*radLen*
a;
141 float error2_QoverP = covMatrix(0,0);
145 sigt2 *= (1. + (p*
p) * error2_QoverP *
146 (1. + 5*m*m/(e*e) + 3*m*m*beta*beta*error2_QoverP));
154 float betaMin = pMin/
sqrt(pMin * pMin + m*m);
155 float a_max = (1. + 0.038*
log(radLen))/(betaMin * pMin); a_max *= a_max;
156 float sigt2_max = amscon*radLen*a_max;
157 if (sigt2 > sigt2_max) sigt2 = sigt2_max;
159 std::cout<<
" after P constraint ("<<pMin<<
") = "<<
sqrt(sigt2);
160 std::cout<<
" for track with 1/p="<<1/p<<
"+-"<<
sqrt(error2_QoverP)<<std::endl;
170 std::cout <<
"old " << sigt2*(sf*sf*cl*cl + cf*cf)/(cl*cl*cl*cl)
171 <<
" " << sigt2*(cf*sf*sl*sl )/(cl*cl*cl*cl)
172 <<
" " << sigt2*(cf*cf*cl*cl + sf*sf)/(cl*cl*cl*cl) << std::endl;
static std::vector< std::string > checklist log
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
virtual void compute(const TrajectoryStateOnSurface &, const PropagationDirection, Effect &effect) const
LocalVector localMomentum() const
const SurfaceType & surface() const
Abs< T >::type abs(const T &t)
const AlgebraicSymMatrix55 & matrix() const
const LocalTrajectoryError & localError() const
GlobalVector globalMomentum() const
void oldMUcompute(const TrajectoryStateOnSurface &TSoS, const PropagationDirection propDir, double mass, double ptmin)
const MediumProperties & mediumProperties() const