42 static const double HMatrixContent[5] = {0, 0, 0,
cosPhi_,
sinPhi_};
44 static const TMatrixD HMatrix(1,5, HMatrixContent);
51 assert (v.GetNrows() == 5);
53 double* retValArray =(
double *)alloca(
sizeof(
double) * 1);
57 return TVectorD(1, retValArray);
62 assert (M.GetNcols() == 5);
64 double* retValArray =(
double *)alloca(
sizeof(
double) * 5);
65 const double* MatArray = M.GetMatrixArray();
67 for (
unsigned int i=0; i<5; ++i) {
68 retValArray[i] =
cosPhi_*MatArray[i*5 + 3] +
sinPhi_*MatArray[i*5 + 4];
71 return TMatrixD(5,1, retValArray);
76 assert (M.GetNcols() == 5);
78 double* retValArray =(
double *)alloca(
sizeof(
double) * M.GetNrows());
79 const double* MatArray = M.GetMatrixArray();
81 for (
int i = 0; i < M.GetNrows(); ++i) {
82 retValArray[i] =
cosPhi_*MatArray[i*5 + 3] +
sinPhi_*MatArray[i*5 + 4];
85 return TMatrixD(M.GetNrows(),1, retValArray);
90 assert (M.GetNrows() == 5);
100 if (
dynamic_cast<const HMatrixPhi*
>(&other) == NULL)
103 return (phi_ ==
static_cast<const HMatrixPhi*
>(&other)->phi_);
107void HMatrixPhi::Streamer(TBuffer &R__b) {
112 if (R__b.IsReading()) {
113 R__b.ReadClassBuffer(genfit::HMatrixPhi::Class(),
this);
117 R__b.WriteClassBuffer(genfit::HMatrixPhi::Class(),
this);
HMatrix for projecting from AbsTrackRep parameters to measured parameters in a DetPlane.
AbsHMatrix implementation for one-dimensional MeasurementOnPlane and RKTrackRep parameterization.
TVectorD Hv(const TVectorD &v) const
H*v.
ClassDef(HMatrixPhi, 1) private double cosPhi_
const TMatrixD & getMatrix() const
Get the actual matrix representation.
virtual bool isEqual(const AbsHMatrix &other) const
TMatrixD MHt(const TMatrixDSym &M) const
M*H^t.
void HMHt(TMatrixDSym &M) const
similarity: H*M*H^t