CMS 3D CMS Logo

Strip1DMeasurementTransformator.cc

Go to the documentation of this file.
00001 #include "TrackingTools/KalmanUpdators/interface/Strip1DMeasurementTransformator.h"
00002 #include "Geometry/CommonDetUnit/interface/GeomDetUnit.h"
00003 
00004 Strip1DMeasurementTransformator::Strip1DMeasurementTransformator(const TSOS& tsos,
00005                                                          const TransientTrackingRecHit& hit) : 
00006   theRecHit(hit),
00007   theState(tsos),
00008   theTopology(0) {
00009 
00010   init();
00011 }
00012 
00013 void Strip1DMeasurementTransformator::init() {
00014 
00015   theTopology = 
00016     dynamic_cast<const StripTopology*>(&(hit().detUnit()->topology()));
00017 }
00018 
00019 double Strip1DMeasurementTransformator::hitParameters() const {
00020   
00021   return topology()->measurementPosition(hit().localPosition()).x();
00022 }
00023 
00024 AlgebraicVector5 Strip1DMeasurementTransformator::trajectoryParameters() const {
00025     
00026   return state().localParameters().vector();
00027 }
00028 
00029 double Strip1DMeasurementTransformator::projectedTrajectoryParameters() const {
00030 
00031   return topology()->measurementPosition(state().localPosition()).x();
00032 }
00033 
00034 double Strip1DMeasurementTransformator::hitError() const {
00035 
00036   return     
00037     topology()->measurementError(hit().localPosition(),
00038                                  hit().localPositionError()).uu();
00039 }
00040 
00041 const AlgebraicSymMatrix55 & Strip1DMeasurementTransformator::trajectoryError() const {
00042 
00043   return state().localError().matrix();
00044 }
00045 
00046 double Strip1DMeasurementTransformator::projectedTrajectoryError() const {
00047 
00048   return 
00049     topology()->measurementError(state().localPosition(),
00050                                  state().localError().positionError()).uu();
00051 }
00052 
00053 AlgebraicMatrix15 Strip1DMeasurementTransformator::projectionMatrix() const {
00054 
00055   //  H(measurement <- local)
00056   //  m_meas = H*x_local + c
00057   AlgebraicMatrix15 H;
00058 
00059   double phi = 
00060     topology()->stripAngle(topology()->strip(state().localPosition()));
00061   double pitch = topology()->localPitch(state().localPosition());
00062   H(0,3) = cos(phi)/pitch; H(0,4) = sin(phi)/pitch;
00063   
00064   return H;
00065 }
00066 
00067 
00068 
00069 
00070 
00071 

Generated on Tue Jun 9 17:48:22 2009 for CMSSW by  doxygen 1.5.4