CMS 3D CMS Logo

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

#include <StripMeasurementTransformator.h>

Public Member Functions

const TransientTrackingRecHithit () const
 
ASM22 hitError () const
 
AV2 hitParameters () const
 
ASM22 projectedTrajectoryError () const
 
AV2 projectedTrajectoryParameters () const
 
AM25 projectionMatrix () const
 
const TSOSstate () const
 
 StripMeasurementTransformator (const TSOS &aTsos, const TransientTrackingRecHit &aHit)
 
const StripTopologytopology () const
 
const ASM55trajectoryError () const
 
AV5 trajectoryParameters () const
 
 ~StripMeasurementTransformator ()
 

Private Types

typedef AlgebraicMatrix AM
 
typedef AlgebraicMatrix25 AM25
 
typedef AlgebraicSymMatrix22 ASM22
 
typedef AlgebraicSymMatrix55 ASM55
 
typedef AlgebraicVector2 AV2
 
typedef AlgebraicVector5 AV5
 
typedef TrajectoryStateOnSurface TSOS
 

Private Member Functions

void init ()
 

Private Attributes

const TransientTrackingRecHittheRecHit
 
TSOS theState
 
const StripTopologytheTopology
 

Detailed Description

Helper class for accessing the RecHit and the TrajectoryState parameters and errors in the measurement frame. Ported from ORCA.

Date:
2007/05/09 13:50:25
Revision:
1.4
Author
todorov, cerati

Definition at line 19 of file StripMeasurementTransformator.h.

Member Typedef Documentation

Definition at line 26 of file StripMeasurementTransformator.h.

Definition at line 27 of file StripMeasurementTransformator.h.

Definition at line 24 of file StripMeasurementTransformator.h.

Definition at line 25 of file StripMeasurementTransformator.h.

Definition at line 29 of file StripMeasurementTransformator.h.

Definition at line 28 of file StripMeasurementTransformator.h.

Definition at line 23 of file StripMeasurementTransformator.h.

Constructor & Destructor Documentation

StripMeasurementTransformator::StripMeasurementTransformator ( const TSOS aTsos,
const TransientTrackingRecHit aHit 
)
StripMeasurementTransformator::~StripMeasurementTransformator ( )
inline

Definition at line 35 of file StripMeasurementTransformator.h.

35 {}

Member Function Documentation

const TransientTrackingRecHit& StripMeasurementTransformator::hit ( void  ) const
inline

Definition at line 45 of file StripMeasurementTransformator.h.

References theRecHit.

Referenced by hitError(), hitParameters(), and init().

45 {return theRecHit;}
const TransientTrackingRecHit & theRecHit
AlgebraicSymMatrix22 StripMeasurementTransformator::hitError ( ) const

Definition at line 47 of file StripMeasurementTransformator.cc.

References hit(), Topology::measurementError(), topology(), MeasurementError::uu(), MeasurementError::uv(), and MeasurementError::vv().

Referenced by KFStripUpdator::update().

47  {
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 }
float vv() const
ROOT::Math::SMatrix< double, 2, 2, ROOT::Math::MatRepSym< double, 2 > > AlgebraicSymMatrix22
virtual MeasurementError measurementError(const LocalPoint &, const LocalError &) const =0
float uu() const
const StripTopology * topology() const
const TransientTrackingRecHit & hit() const
float uv() const
AlgebraicVector2 StripMeasurementTransformator::hitParameters ( ) const

Definition at line 19 of file StripMeasurementTransformator.cc.

References hit(), Topology::measurementPosition(), topology(), PV2DBase< T, PVType, FrameType >::x(), and PV2DBase< T, PVType, FrameType >::y().

Referenced by KFStripUpdator::update().

19  {
20 
22  MeasurementPoint mp =
23  topology()->measurementPosition(hit().localPosition());
24  av[0] = mp.x();
25  av[1] = mp.y();
26 
27  return av;
28 }
T y() const
Definition: PV2DBase.h:45
const StripTopology * topology() const
virtual MeasurementPoint measurementPosition(const LocalPoint &) const =0
const TransientTrackingRecHit & hit() const
T x() const
Definition: PV2DBase.h:44
ROOT::Math::SVector< double, 2 > AlgebraicVector2
void StripMeasurementTransformator::init ( void  )
private

Definition at line 13 of file StripMeasurementTransformator.cc.

References TransientTrackingRecHit::detUnit(), hit(), theTopology, and GeomDetUnit::topology().

Referenced by StripMeasurementTransformator().

13  {
14 
15  theTopology =
16  dynamic_cast<const StripTopology*>(&(hit().detUnit()->topology()));
17 }
virtual const Topology & topology() const =0
const TransientTrackingRecHit & hit() const
virtual const GeomDetUnit * detUnit() const
AlgebraicSymMatrix22 StripMeasurementTransformator::projectedTrajectoryError ( ) const

Definition at line 66 of file StripMeasurementTransformator.cc.

References Topology::measurementError(), state(), topology(), MeasurementError::uu(), MeasurementError::uv(), and MeasurementError::vv().

Referenced by KFStripUpdator::update().

66  {
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 }
float vv() const
ROOT::Math::SMatrix< double, 2, 2, ROOT::Math::MatRepSym< double, 2 > > AlgebraicSymMatrix22
virtual MeasurementError measurementError(const LocalPoint &, const LocalError &) const =0
float uu() const
const StripTopology * topology() const
float uv() const
AlgebraicVector2 StripMeasurementTransformator::projectedTrajectoryParameters ( ) const

Definition at line 36 of file StripMeasurementTransformator.cc.

References Topology::measurementPosition(), state(), topology(), PV2DBase< T, PVType, FrameType >::x(), and PV2DBase< T, PVType, FrameType >::y().

Referenced by KFStripUpdator::update().

36  {
37 
39  MeasurementPoint mp =
40  topology()->measurementPosition(state().localPosition());
41  av[0] = mp.x();
42  av[1] = mp.y();
43 
44  return av;
45 }
T y() const
Definition: PV2DBase.h:45
const StripTopology * topology() const
virtual MeasurementPoint measurementPosition(const LocalPoint &) const =0
T x() const
Definition: PV2DBase.h:44
ROOT::Math::SVector< double, 2 > AlgebraicVector2
AlgebraicMatrix25 StripMeasurementTransformator::projectionMatrix ( ) const

Definition at line 79 of file StripMeasurementTransformator.cc.

References funct::cos(), StripTopology::localPitch(), StripTopology::localStripLength(), phi, funct::sin(), state(), strip(), StripTopology::stripAngle(), and topology().

Referenced by KFStripUpdator::update().

79  {
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 }
void strip(std::string &input, const std::string &blanks=" \n\t")
Definition: stringTools.cc:16
virtual float stripAngle(float strip) const =0
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
virtual float localPitch(const LocalPoint &) const =0
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
const StripTopology * topology() const
virtual float localStripLength(const LocalPoint &aLP) const =0
ROOT::Math::SMatrix< double, 2, 5, ROOT::Math::MatRepStd< double, 2, 5 > > AlgebraicMatrix25
Definition: DDAxes.h:10
const TSOS& StripMeasurementTransformator::state ( ) const
inline
const StripTopology* StripMeasurementTransformator::topology ( ) const
inline
const AlgebraicSymMatrix55 & StripMeasurementTransformator::trajectoryError ( ) const

Definition at line 60 of file StripMeasurementTransformator.cc.

References TrajectoryStateOnSurface::localError(), LocalTrajectoryError::matrix(), and state().

Referenced by KFStripUpdator::update().

60  {
61 
62  return state().localError().matrix();
63 }
const AlgebraicSymMatrix55 & matrix() const
const LocalTrajectoryError & localError() const
AlgebraicVector5 StripMeasurementTransformator::trajectoryParameters ( ) const

Definition at line 30 of file StripMeasurementTransformator.cc.

References TrajectoryStateOnSurface::localParameters(), state(), and LocalTrajectoryParameters::vector().

Referenced by KFStripUpdator::update().

30  {
31 
32  return state().localParameters().vector();
33 }
const LocalTrajectoryParameters & localParameters() const
AlgebraicVector5 vector() const

Member Data Documentation

const TransientTrackingRecHit& StripMeasurementTransformator::theRecHit
private

Definition at line 51 of file StripMeasurementTransformator.h.

Referenced by hit().

TSOS StripMeasurementTransformator::theState
private

Definition at line 52 of file StripMeasurementTransformator.h.

Referenced by state().

const StripTopology* StripMeasurementTransformator::theTopology
private

Definition at line 53 of file StripMeasurementTransformator.h.

Referenced by init(), and topology().