CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions
VolumeMultipleScatteringEstimator Class Reference

#include <VolumeMultipleScatteringEstimator.h>

Inheritance diagram for VolumeMultipleScatteringEstimator:
VolumeMaterialEffectsEstimator

Public Member Functions

virtual
VolumeMultipleScatteringEstimator
clone () const
 
virtual
VolumeMaterialEffectsEstimate 
estimate (const TrajectoryStateOnSurface refTSOS, double pathLength, const VolumeMediumProperties &medium) const
 Creates an estimate. More...
 
 VolumeMultipleScatteringEstimator (float mass)
 Constructor with explicit mass hypothesis. More...
 
virtual ~VolumeMultipleScatteringEstimator ()
 
- Public Member Functions inherited from VolumeMaterialEffectsEstimator
virtual float mass () const
 Particle mass assigned at construction. More...
 
 VolumeMaterialEffectsEstimator (float mass)
 Constructor with explicit mass hypothesis. More...
 
virtual ~VolumeMaterialEffectsEstimator ()
 

Detailed Description

Estimation of multiple scattering for a finite step size in a volume. Based on path length and medium properties; neglects "higher order effects" like magnetic field, orientation of the exit surface, etc.

Definition at line 17 of file VolumeMultipleScatteringEstimator.h.

Constructor & Destructor Documentation

VolumeMultipleScatteringEstimator::VolumeMultipleScatteringEstimator ( float  mass)
inline

Constructor with explicit mass hypothesis.

Definition at line 21 of file VolumeMultipleScatteringEstimator.h.

Referenced by clone().

21  :
virtual float mass() const
Particle mass assigned at construction.
VolumeMaterialEffectsEstimator(float mass)
Constructor with explicit mass hypothesis.
virtual VolumeMultipleScatteringEstimator::~VolumeMultipleScatteringEstimator ( )
inlinevirtual

Definition at line 24 of file VolumeMultipleScatteringEstimator.h.

24 {}

Member Function Documentation

VolumeMultipleScatteringEstimator * VolumeMultipleScatteringEstimator::clone ( void  ) const
virtual

Implements VolumeMaterialEffectsEstimator.

Definition at line 48 of file VolumeMultipleScatteringEstimator.cc.

References VolumeMultipleScatteringEstimator().

49 {
50  return new VolumeMultipleScatteringEstimator(*this);
51 }
VolumeMultipleScatteringEstimator(float mass)
Constructor with explicit mass hypothesis.
VolumeMaterialEffectsEstimate VolumeMultipleScatteringEstimator::estimate ( const TrajectoryStateOnSurface  refTSOS,
double  pathLength,
const VolumeMediumProperties medium 
) const
virtual

Creates an estimate.

Implements VolumeMaterialEffectsEstimator.

Definition at line 10 of file VolumeMultipleScatteringEstimator.cc.

References a, beta, alignCSCRings::e, TrajectoryStateOnSurface::localMomentum(), create_public_lumi_plots::log, visualization-live-secondInstance_cfg::m, PV3DBase< T, PVType, FrameType >::mag(), VolumeMaterialEffectsEstimator::mass(), AlCaHLTBitMon_ParallelJobs::p, mathSSE::sqrt(), and VolumeMediumProperties::x0().

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 }
const double beta
virtual float mass() const
Particle mass assigned at construction.
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
LocalVector localMomentum() const
T mag() const
Definition: PV3DBase.h:67
T sqrt(T t)
Definition: SSEVec.h:48
double a
Definition: hdecay.h:121