CMS 3D CMS Logo

RecHitPropagator Class Reference

#include <RecoTracker/MeasurementDet/interface/RecHitPropagator.h>

List of all members.

Public Member Functions

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


Detailed Description

Definition at line 10 of file RecHitPropagator.h.


Member Function Documentation

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

Definition at line 6 of file RecHitPropagator.cc.

References anyDirection, TrajectoryStateOnSurface::charge(), TransientTrackingRecHit::det(), geometryDiff::epsilon, TrajectoryStateOnSurface::globalParameters(), TrajectoryStateOnSurface::localMomentum(), TrackingRecHit::localPosition(), TrackingRecHit::localPositionError(), m, GlobalTrajectoryParameters::magneticField(), AnalyticalPropagator::propagate(), GeomDet::specificSurface(), TrajectoryStateOnSurface::surface(), LocalError::xx(), LocalError::xy(), and LocalError::yy().

Referenced by TkGluedMeasurementDet::checkHitProjection().

00009 {
00010   const MagneticField& field = ts.globalParameters().magneticField();
00011   AnalyticalPropagator prop( &field, anyDirection);
00012   TrajectoryStateOnSurface tsNoErr = TrajectoryStateOnSurface( ts.globalParameters(), ts.surface());
00013   TrajectoryStateOnSurface hitts = prop.propagate( tsNoErr, hit.det()->specificSurface());
00014 
00015   // LocalVector ldir = hit.det()->specificSurface().toLocal(ts.globalMomentum());
00016   LocalVector ldir = hitts.localMomentum();
00017   LocalTrajectoryParameters ltp( hit.localPosition(), ldir, ts.charge());
00018   AlgebraicSymMatrix m(5,0);
00019   LocalError lhe = hit.localPositionError();
00020   m[3][3] = lhe.xx();
00021   m[3][4] = lhe.xy();
00022   m[4][4] = lhe.yy();
00023 
00024   const double epsilon = 1.e-8; // very small errors on momentum and angle
00025   m[0][0] = epsilon;
00026   m[1][1] = epsilon;
00027   m[2][2] = epsilon;
00028   LocalTrajectoryError lte( m);
00029 
00030   TrajectoryStateOnSurface startingState( ltp, lte, hit.det()->specificSurface(), &field);
00031 
00032   return prop.propagate( startingState, plane);
00033 }


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:30:40 2009 for CMSSW by  doxygen 1.5.4