CMS 3D CMS Logo

List of all members | Public Member Functions
RecHitPropagator Class Reference

#include <RecHitPropagator.h>

Public Member Functions

TrajectoryStateOnSurface propagate (const TrackingRecHit &hit, const Plane &plane, const TrajectoryStateOnSurface &ts) const
 

Detailed Description

Definition at line 10 of file RecHitPropagator.h.

Member Function Documentation

◆ propagate()

TrajectoryStateOnSurface RecHitPropagator::propagate ( const TrackingRecHit hit,
const Plane plane,
const TrajectoryStateOnSurface ts 
) const

Definition at line 5 of file RecHitPropagator.cc.

References anyDirection, TrajectoryStateOnSurface::charge(), geometryDiff::epsilon, TrajectoryStateOnSurface::globalParameters(), visualization-live-secondInstance_cfg::m, GlobalTrajectoryParameters::magneticField(), AnalyticalPropagator::propagate(), TrajectoryStateOnSurface::surface(), LocalError::xx(), LocalError::xy(), and LocalError::yy().

Referenced by TkGluedMeasurementDet::checkHitProjection().

7  {
8  const MagneticField& field = ts.globalParameters().magneticField();
11  TrajectoryStateOnSurface hitts = prop.propagate(tsNoErr, hit.det()->specificSurface());
12 
13  // LocalVector ldir = hit.det()->specificSurface().toLocal(ts.globalMomentum());
14  LocalVector ldir = hitts.localMomentum();
15  LocalTrajectoryParameters ltp(hit.localPosition(), ldir, ts.charge());
17  LocalError lhe = hit.localPositionError();
18  m[3][3] = lhe.xx();
19  m[3][4] = lhe.xy();
20  m[4][4] = lhe.yy();
21 
22  const double epsilon = 1.e-8; // very small errors on momentum and angle
23  m[0][0] = epsilon;
24  m[1][1] = epsilon;
25  m[2][2] = epsilon;
27 
28  TrajectoryStateOnSurface startingState(ltp, lte, hit.det()->specificSurface(), &field);
29 
30  return prop.propagate(startingState, plane);
31 }
const GlobalTrajectoryParameters & globalParameters() const
const SurfaceType & surface() const
float yy() const
Definition: LocalError.h:24
float xy() const
Definition: LocalError.h:23
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
const MagneticField & magneticField() const
float xx() const
Definition: LocalError.h:22