CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
StripMeasurementTransformator.cc
Go to the documentation of this file.
3 
6  theRecHit(hit),
7  theState(tsos),
8  theTopology(0) {
9 
10  init();
11 }
12 
14 
15  theTopology =
16  dynamic_cast<const StripTopology*>(&(hit().detUnit()->topology()));
17 }
18 
20 
22  MeasurementPoint mp =
23  topology()->measurementPosition(hit().localPosition());
24  av[0] = mp.x();
25  av[1] = mp.y();
26 
27  return av;
28 }
29 
31 
32  return state().localParameters().vector();
33 }
34 
37 
39  MeasurementPoint mp =
40  topology()->measurementPosition(state().localPosition());
41  av[0] = mp.x();
42  av[1] = mp.y();
43 
44  return av;
45 }
46 
48 
50  MeasurementError me =
51  topology()->measurementError(hit().localPosition(),
52  hit().localPositionError());
53  am(0,0) = me.uu();
54  am(1,0) = me.uv();
55  am(1,1) = me.vv();
56 
57  return am;
58 }
59 
61 
62  return state().localError().matrix();
63 }
64 
67 
69  MeasurementError me =
70  topology()->measurementError(state().localPosition(),
71  state().localError().positionError());
72  am(0,0) = me.uu();
73  am(1,0) = me.uv();
74  am(1,1) = me.vv();
75 
76  return am;
77 }
78 
80 
81  // H(measurement <- local)
82  // m_meas = H*x_local + c
84 
85  float phi =
86  topology()->stripAngle(topology()->strip(state().localPosition()));
87  float pitch = topology()->localPitch(state().localPosition());
88  float length = topology()->localStripLength(state().localPosition());
89  H(0,3) = cos(phi)/pitch; H(0,4) = sin(phi)/pitch;
90  H(1,3) = -sin(phi)/length; H(1,4) = cos(phi)/length;
91 
92  return H;
93 }
94 
float vv() const
T y() const
Definition: PV2DBase.h:45
void strip(std::string &input, const std::string &blanks=" \n\t")
Definition: stringTools.cc:16
ROOT::Math::SMatrix< double, 2, 2, ROOT::Math::MatRepSym< double, 2 > > AlgebraicSymMatrix22
virtual float stripAngle(float strip) const =0
const LocalTrajectoryParameters & localParameters() const
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
StripMeasurementTransformator(const TSOS &aTsos, const TransientTrackingRecHit &aHit)
AlgebraicVector5 vector() const
virtual const Topology & topology() const =0
virtual float localPitch(const LocalPoint &) const =0
virtual MeasurementError measurementError(const LocalPoint &, const LocalError &) const =0
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
float uu() const
const StripTopology * topology() const
const AlgebraicSymMatrix55 & matrix() const
virtual MeasurementPoint measurementPosition(const LocalPoint &) const =0
const TransientTrackingRecHit & hit() const
const LocalTrajectoryError & localError() const
ROOT::Math::SVector< double, 5 > AlgebraicVector5
virtual float localStripLength(const LocalPoint &aLP) const =0
ROOT::Math::SMatrix< double, 2, 5, ROOT::Math::MatRepStd< double, 2, 5 > > AlgebraicMatrix25
virtual const GeomDetUnit * detUnit() const
T x() const
Definition: PV2DBase.h:44
ROOT::Math::SVector< double, 2 > AlgebraicVector2
float uv() const
Definition: DDAxes.h:10