SND@LHC Software
Loading...
Searching...
No Matches
genfit::HMatrixUV Class Reference

AbsHMatrix implementation for two-dimensional MeasurementOnPlane and RKTrackRep parameterization. More...

#include <HMatrixUV.h>

Inheritance diagram for genfit::HMatrixUV:
Collaboration diagram for genfit::HMatrixUV:

Public Member Functions

 HMatrixUV ()
 
const TMatrixD & getMatrix () const
 Get the actual matrix representation.
 
TVectorD Hv (const TVectorD &v) const
 H*v.
 
TMatrixD MHt (const TMatrixDSym &M) const
 M*H^t.
 
TMatrixD MHt (const TMatrixD &M) const
 
void HMHt (TMatrixDSym &M) const
 similarity: H*M*H^t
 
virtual AbsHMatrixclone () const
 
virtual bool isEqual (const AbsHMatrix &other) const
 
- Public Member Functions inherited from genfit::AbsHMatrix
 AbsHMatrix ()
 
virtual ~AbsHMatrix ()
 
bool operator== (const AbsHMatrix &other) const
 
bool operator!= (const AbsHMatrix &other) const
 
virtual void Print (const Option_t *="") const
 

Additional Inherited Members

- Protected Member Functions inherited from genfit::AbsHMatrix
 AbsHMatrix (const AbsHMatrix &o)
 
AbsHMatrixoperator= (const AbsHMatrix &)
 

Detailed Description

AbsHMatrix implementation for two-dimensional MeasurementOnPlane and RKTrackRep parameterization.

This projects out u and v. H = (0, 0, 0, 1, 0) (0, 0, 0, 0, 1)

Definition at line 39 of file HMatrixUV.h.

Constructor & Destructor Documentation

◆ HMatrixUV()

genfit::HMatrixUV::HMatrixUV ( )
inline

Definition at line 44 of file HMatrixUV.h.

44{;}

Member Function Documentation

◆ clone()

virtual AbsHMatrix * genfit::HMatrixUV::clone ( ) const
inlinevirtual

Implements genfit::AbsHMatrix.

Definition at line 55 of file HMatrixUV.h.

55{return new HMatrixUV(*this);}

◆ getMatrix()

const TMatrixD & genfit::HMatrixUV::getMatrix ( ) const
virtual

Get the actual matrix representation.

Implements genfit::AbsHMatrix.

Definition at line 30 of file HMatrixUV.cc.

30 {
31 static const double HMatrixContent[2*5] = {0, 0, 0, 1, 0,
32 0, 0, 0, 0, 1};
33
34 static const TMatrixD HMatrix(2,5, HMatrixContent);
35
36 return HMatrix;
37}

◆ HMHt()

void genfit::HMatrixUV::HMHt ( TMatrixDSym &  M) const
virtual

similarity: H*M*H^t

Reimplemented from genfit::AbsHMatrix.

Definition at line 83 of file HMatrixUV.cc.

83 {
84 assert (M.GetNrows() == 5);
85 double* MatArray = M.GetMatrixArray();
86
87 //
88 // HMH^t = ( M_33 M_34 ) where M_34 == M_43
89 // ( M_43 M_44 )
90 //
91 double uu = MatArray[3*5 + 3];
92 double uv = MatArray[3*5 + 4];
93 double vv = MatArray[4*5 + 4];
94
95 M.ResizeTo(2,2);
96 MatArray = M.GetMatrixArray();
97 MatArray[0] = uu; MatArray[1] = uv;
98 MatArray[2] = uv; MatArray[3] = vv;
99}

◆ Hv()

TVectorD genfit::HMatrixUV::Hv ( const TVectorD &  v) const
virtual

H*v.

Reimplemented from genfit::AbsHMatrix.

Definition at line 40 of file HMatrixUV.cc.

40 {
41 assert (v.GetNrows() == 5);
42
43 double* retValArray =(double *)alloca(sizeof(double) * 2);
44 const double* VecArray = v.GetMatrixArray();
45
46 retValArray[0] = VecArray[3]; // u
47 retValArray[1] = VecArray[4]; // v
48
49 return TVectorD(2, retValArray);
50}

◆ isEqual()

virtual bool genfit::HMatrixUV::isEqual ( const AbsHMatrix other) const
inlinevirtual

Implements genfit::AbsHMatrix.

Definition at line 57 of file HMatrixUV.h.

57{return (dynamic_cast<const HMatrixUV*>(&other) != NULL);}

◆ MHt() [1/2]

TMatrixD genfit::HMatrixUV::MHt ( const TMatrixD &  M) const
virtual

Reimplemented from genfit::AbsHMatrix.

Definition at line 68 of file HMatrixUV.cc.

68 {
69 assert (M.GetNcols() == 5);
70
71 double* retValArray =(double *)alloca(sizeof(double) * M.GetNrows()*2);
72 const double* MatArray = M.GetMatrixArray();
73
74 for (int i = 0; i < M.GetNrows(); ++i) {
75 retValArray[i*2] = MatArray[i*5 + 3];
76 retValArray[i*2 + 1] = MatArray[i*5 + 4];
77 }
78
79 return TMatrixD(M.GetNrows(),2, retValArray);
80}
int i
Definition ShipAna.py:86

◆ MHt() [2/2]

TMatrixD genfit::HMatrixUV::MHt ( const TMatrixDSym &  M) const
virtual

M*H^t.

Reimplemented from genfit::AbsHMatrix.

Definition at line 53 of file HMatrixUV.cc.

53 {
54 assert (M.GetNcols() == 5);
55
56 double* retValArray =(double *)alloca(sizeof(double) * 5*2);
57 const double* MatArray = M.GetMatrixArray();
58
59 for (unsigned int i=0; i<5; ++i) {
60 retValArray[i*2] = MatArray[i*5 + 3];
61 retValArray[i*2 + 1] = MatArray[i*5 + 4];
62 }
63
64 return TMatrixD(5,2, retValArray);
65}

The documentation for this class was generated from the following files: