test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
VolumeMultipleScatteringEstimator.cc
Go to the documentation of this file.
2 
8 
11  double pathLength,
12  const VolumeMediumProperties& medium) const
13 {
14  //
15  // Initialise the update to the covariance matrix
16  // (dP is constantly 0).
17  //
18  AlgebraicSymMatrix55 deltaCov; // assume initialization to 0 ...
19  //
20  // Now get information on medium
21  //
22  // Momentum vector
23  double p = refTSOS.localMomentum().mag();
24  // MediumProperties mp(0.02, .5e-4);
25  // calculate general physics things
26  const double amscon = 1.8496e-4; // (13.6MeV)**2
27  const double m = mass(); // use mass hypothesis from constructor
28  double e = sqrt(p*p + m*m);
29  double beta = p/e;
30  // calculate the multiple scattering angle
31  double radLen = pathLength / medium.x0(); // effective rad. length
32  double sigth2 = 0.; // sigma(theta)
33  if (radLen > 0) {
34  double a = (1. + 0.038*log(radLen))/(beta*p);
35  sigth2 = amscon*radLen*a*a;
36  }
37  // Create update (transformation of independant variations
38  // on positions and angles in a cartesian system
39  // with z-axis parallel to the track.
40  deltaCov(1,1) = deltaCov(2,2) = sigth2;
41  deltaCov(3,3) = deltaCov(4,4) = sigth2/3.*pathLength*pathLength;
42  deltaCov(1,3) = deltaCov(3,1) =
43  deltaCov(2,4) = deltaCov(4,2) = sigth2/2.; // correlation of sqrt(3)/2
44  return VolumeMaterialEffectsEstimate(0.,deltaCov);
45 }
46 
49 {
50  return new VolumeMultipleScatteringEstimator(*this);
51 }
const double beta
virtual float mass() const
Particle mass assigned at construction.
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
virtual VolumeMultipleScatteringEstimator * clone() const
LocalVector localMomentum() const
T mag() const
Definition: PV3DBase.h:67
T sqrt(T t)
Definition: SSEVec.h:48
virtual VolumeMaterialEffectsEstimate estimate(const TrajectoryStateOnSurface refTSOS, double pathLength, const VolumeMediumProperties &medium) const
Creates an estimate.
double a
Definition: hdecay.h:121
VolumeMultipleScatteringEstimator(float mass)
Constructor with explicit mass hypothesis.