FairRoot/PandaRoot
Public Member Functions | Protected Attributes | Private Attributes | Static Private Attributes | List of all members
PndMdtRecoHit Class Reference

#include <PndMdtRecoHit.h>

Inheritance diagram for PndMdtRecoHit:
GFRecoHitIfc< GFSpacepointHitPolicy > GFAbsRecoHit

Public Member Functions

 PndMdtRecoHit ()
 
 PndMdtRecoHit (double x, double y, double z, double sigx, double sigy, double sigz)
 
 PndMdtRecoHit (const TVector3 &pos, const TVector3 &sig, bool smear=false)
 
 PndMdtRecoHit (PndMdtPoint *point)
 
 PndMdtRecoHit (PndMdtHit *hit)
 
virtual ~PndMdtRecoHit ()
 
virtual GFAbsRecoHitclone ()
 Get clone of this object. More...
 
virtual TMatrixT< double > getHMatrix (const GFAbsTrackRep *stateVector)
 Get transformation matrix. Transformation between hit coordinates and track representation coordinates. More...
 
PndMdtHitGetHit ()
 
virtual const GFDetPlanegetDetPlane (GFAbsTrackRep *rep)
 Returns the detector plane object for this hit and a given track representation. More...
 
virtual TMatrixT< double > getHitCoord (const GFDetPlane &plane)
 Get hit coordinates in a specific detector plane. More...
 
virtual TMatrixT< double > getHitCov (const GFDetPlane &plane)
 Get hit covariances in a specific detector plane. More...
 
const std::string & getPolicyName ()
 
 ClassDef (GFRecoHitIfc, 1)
 
virtual TMatrixT< double > residualVector (const GFAbsTrackRep *stateVector, const TMatrixT< double > &state, const GFDetPlane &d)
 Calculate residual with respect to a track representation. More...
 
TMatrixT< double > getRawHitCov () const
 Get raw hit covariances. More...
 
TMatrixT< double > getRawHitCoord () const
 Get raw hit coordinates. More...
 
virtual void Print ()
 Print raw hit coordinates. More...
 
int getNparHit ()
 

Protected Attributes

GFSpacepointHitPolicy fPolicy
 
TMatrixT< double > fHitCoord
 Vector of raw coordinates of hit. More...
 
TMatrixT< double > fHitCov
 Covariance of raw hit coordinates. More...
 

Private Attributes

PndMdtHitfHit
 

Static Private Attributes

static const int NparHitRep = 3
 
static TRandom3 rand
 

Detailed Description

Definition at line 38 of file PndMdtRecoHit.h.

Constructor & Destructor Documentation

PndMdtRecoHit::PndMdtRecoHit ( )

Definition at line 41 of file PndMdtRecoHit.cxx.

Referenced by clone().

43 {}
PndMdtHit * fHit
Definition: PndMdtRecoHit.h:66
static const int NparHitRep
Definition: PndMdtRecoHit.h:64
GFRecoHitIfc< GFSpacepointHitPolicy > SpacepointRecoHit
PndMdtRecoHit::PndMdtRecoHit ( double  x,
double  y,
double  z,
double  sigx,
double  sigy,
double  sigz 
)

Definition at line 45 of file PndMdtRecoHit.cxx.

References GFAbsRecoHit::fHitCoord, GFAbsRecoHit::fHitCov, x, y, and z.

48 {
49  fHitCoord[0][0] = x;
50  fHitCoord[1][0] = y;
51  fHitCoord[2][0] = z;
52 
53  fHitCov[0][0] = sigx*sigx;
54  fHitCov[1][1] = sigy*sigy;
55  fHitCov[2][2] = sigz*sigz;
56 }
TMatrixT< double > fHitCoord
Vector of raw coordinates of hit.
Definition: GFAbsRecoHit.h:76
PndMdtHit * fHit
Definition: PndMdtRecoHit.h:66
Double_t z
static const int NparHitRep
Definition: PndMdtRecoHit.h:64
Double_t x
Double_t y
GFRecoHitIfc< GFSpacepointHitPolicy > SpacepointRecoHit
TMatrixT< double > fHitCov
Covariance of raw hit coordinates.
Definition: GFAbsRecoHit.h:79
PndMdtRecoHit::PndMdtRecoHit ( const TVector3 &  pos,
const TVector3 &  sig,
bool  smear = false 
)

Definition at line 58 of file PndMdtRecoHit.cxx.

References GFAbsRecoHit::fHitCoord, GFAbsRecoHit::fHitCov, and rand.

62 {
63  if(!smear){
64  fHitCoord[0][0] = pos.X();
65  fHitCoord[1][0] = pos.Y();
66  fHitCoord[2][0] = pos.Z();
67  }
68  else{
69  fHitCoord[0][0] = rand.Gaus(pos.X(),sig.X());
70  fHitCoord[1][0] = rand.Gaus(pos.Y(),sig.Y());
71  fHitCoord[2][0] = rand.Gaus(pos.Z(),sig.Z());
72  }
73  fHitCov[0][0] = sig.X()*sig.X();
74  fHitCov[1][1] = sig.Y()*sig.Y();
75  fHitCov[2][2] = sig.Z()*sig.Z();
76 
77 }
TVector3 pos
TMatrixT< double > fHitCoord
Vector of raw coordinates of hit.
Definition: GFAbsRecoHit.h:76
PndMdtHit * fHit
Definition: PndMdtRecoHit.h:66
static const int NparHitRep
Definition: PndMdtRecoHit.h:64
static TRandom3 rand
Definition: PndMdtRecoHit.h:67
GFRecoHitIfc< GFSpacepointHitPolicy > SpacepointRecoHit
TMatrixT< double > fHitCov
Covariance of raw hit coordinates.
Definition: GFAbsRecoHit.h:79
PndMdtRecoHit::PndMdtRecoHit ( PndMdtPoint point)

Definition at line 79 of file PndMdtRecoHit.cxx.

References GFAbsRecoHit::fHitCoord, and GFAbsRecoHit::fHitCov.

81 {
82  fHitCoord[0][0] = point->GetX();
83  fHitCoord[1][0] = point->GetY();
84  fHitCoord[2][0] = point->GetZ();
85  // fixed errors on the monte carlo points
86  fHitCov[0][0] = 0.5;
87  fHitCov[1][1] = 0.5;
88  fHitCov[2][2] = 0.5;
89 }
TMatrixT< double > fHitCoord
Vector of raw coordinates of hit.
Definition: GFAbsRecoHit.h:76
PndMdtHit * fHit
Definition: PndMdtRecoHit.h:66
static const int NparHitRep
Definition: PndMdtRecoHit.h:64
GFRecoHitIfc< GFSpacepointHitPolicy > SpacepointRecoHit
TMatrixT< double > fHitCov
Covariance of raw hit coordinates.
Definition: GFAbsRecoHit.h:79
PndMdtRecoHit::PndMdtRecoHit ( PndMdtHit hit)

Definition at line 91 of file PndMdtRecoHit.cxx.

References fHit, GFAbsRecoHit::fHitCoord, GFAbsRecoHit::fHitCov, and hit.

93 {
94  TVector3 hitpos(0,0,0);
95  hit->Position(hitpos);
96  fHitCoord[0][0] = hitpos.X();
97  fHitCoord[1][0] = hitpos.Y();
98  fHitCoord[2][0] = hitpos.Z();
99 
100  TVector3 sig(0,0,0);
101  hit->PositionError(sig);
102  fHitCov[0][0] = sig.X()*sig.X();
103  fHitCov[1][1] = sig.Y()*sig.Y();
104  fHitCov[2][2] = sig.Z()*sig.Z();
105 
106  fHit = hit;
107 }
TMatrixT< double > fHitCoord
Vector of raw coordinates of hit.
Definition: GFAbsRecoHit.h:76
PndMdtHit * fHit
Definition: PndMdtRecoHit.h:66
static const int NparHitRep
Definition: PndMdtRecoHit.h:64
PndSdsMCPoint * hit
Definition: anasim.C:70
GFRecoHitIfc< GFSpacepointHitPolicy > SpacepointRecoHit
TMatrixT< double > fHitCov
Covariance of raw hit coordinates.
Definition: GFAbsRecoHit.h:79
PndMdtRecoHit::~PndMdtRecoHit ( )
virtual

Definition at line 38 of file PndMdtRecoHit.cxx.

39 {}

Member Function Documentation

GFRecoHitIfc< GFSpacepointHitPolicy >::ClassDef ( GFRecoHitIfc< GFSpacepointHitPolicy ,
 
)
inherited
GFAbsRecoHit * PndMdtRecoHit::clone ( )
virtual

Get clone of this object.

Virtual abstract method. Has to be implemented by inherting classes. Creates a deep copy of this object. Ownership is trandsferred to the caller!

Implements GFAbsRecoHit.

Definition at line 111 of file PndMdtRecoHit.cxx.

References PndMdtRecoHit().

111  {
112  return new PndMdtRecoHit(*this);
113 }
virtual const GFDetPlane& GFRecoHitIfc< GFSpacepointHitPolicy >::getDetPlane ( GFAbsTrackRep rep)
inlinevirtualinherited

Returns the detector plane object for this hit and a given track representation.

The actutal code for this method depends on the hit geometry and is implemented in the HitPolicy

See Also
PlanarHitPolicy
SpacepointHitPolicy
WirepointHitPolicy

Implements GFAbsRecoHit.

Definition at line 80 of file GFRecoHitIfc.h.

80 {return fPolicy.detPlane(this,rep);}
const GFDetPlane & detPlane(GFAbsRecoHit *, GFAbsTrackRep *)
Get detector plane perpendicular to track.
PndMdtHit* PndMdtRecoHit::GetHit ( )
inline

Definition at line 59 of file PndMdtRecoHit.h.

References fHit.

59 {return fHit;}
PndMdtHit * fHit
Definition: PndMdtRecoHit.h:66
virtual TMatrixT<double> GFRecoHitIfc< GFSpacepointHitPolicy >::getHitCoord ( const GFDetPlane plane)
inlinevirtualinherited

Get hit coordinates in a specific detector plane.

Implementation in the HitPolicy

Implements GFAbsRecoHit.

Definition at line 86 of file GFRecoHitIfc.h.

87  {return fPolicy.hitCoord(this,plane);}
TMatrixT< double > hitCoord(GFAbsRecoHit *, const GFDetPlane &)
Hit coordinates in detector plane.
virtual TMatrixT<double> GFRecoHitIfc< GFSpacepointHitPolicy >::getHitCov ( const GFDetPlane plane)
inlinevirtualinherited

Get hit covariances in a specific detector plane.

Implementation in the HitPolicy

Implements GFAbsRecoHit.

Definition at line 93 of file GFRecoHitIfc.h.

94  {return fPolicy.hitCov(this,plane);}
TMatrixT< double > hitCov(GFAbsRecoHit *, const GFDetPlane &)
Hit covariances in detector plane.
TMatrixT< double > PndMdtRecoHit::getHMatrix ( const GFAbsTrackRep stateVector)
virtual

Get transformation matrix. Transformation between hit coordinates and track representation coordinates.

This is a virtual abstract method which has to be implemented in the child classes.

In general there is a linear transformation between the coordinate system of the hit (which is defined by the detector plane) and the coordinates of the track representation in that plane. In the most simple case the track representation has 5 parameters (space + momentum) while a hit usually has less (one to three space coordinates).

The transformation matrix is then simply projecting out the space-components of the track representation.

Its dimensions are NxM. Where N is the number of dimensions of the hit in the detector plane (usually 2 or 1) and M is the dimension of the track representation.

In this method a hit has to define with which track representations it can work together. It should be the only point where this explicit coordination is necessary.

For example code see implementing classes below:

Implements GFAbsRecoHit.

Definition at line 117 of file PndMdtRecoHit.cxx.

118 {
119  assert(stateVector!=NULL);
120  if (dynamic_cast<const GeaneTrackRep*>(stateVector) != NULL) {
121  // Uses TrackParP (q/p,v',w',v,w)
122  // coordinates are defined by detplane!
123  TMatrixT<double> HMatrix(2,5);
124 
125  HMatrix[0][0] = 0.;
126  HMatrix[0][1] = 0.;
127  HMatrix[0][2] = 0.;
128  HMatrix[0][3] = 1.;
129  HMatrix[0][4] = 0.;
130 
131  HMatrix[1][0] = 0.;
132  HMatrix[1][1] = 0.;
133  HMatrix[1][2] = 0.;
134  HMatrix[1][3] = 0.;
135  HMatrix[1][4] = 1.;
136  return HMatrix;
137  }
138  else {
139  std::cerr << "PndMdtRecoHit can only handle state"
140  << " vectors of type GeaneTrackRep-> abort"
141  << std::endl;
142  throw;
143  }
144 
145 }
int GFAbsRecoHit::getNparHit ( )
inlineinherited

Definition at line 211 of file GFAbsRecoHit.h.

References GFAbsRecoHit::fNparHit.

211 {return fNparHit;}
const std::string& GFRecoHitIfc< GFSpacepointHitPolicy >::getPolicyName ( )
inlinevirtualinherited

Reimplemented from GFAbsRecoHit.

Definition at line 96 of file GFRecoHitIfc.h.

96 {return fPolicy.getName();}
const std::string & getName()
TMatrixT<double> GFAbsRecoHit::getRawHitCoord ( ) const
inlineinherited
TMatrixT<double> GFAbsRecoHit::getRawHitCov ( ) const
inlineinherited

Get raw hit covariances.

Definition at line 153 of file GFAbsRecoHit.h.

References GFAbsRecoHit::fHitCov.

Referenced by GFTools::getSmoothedChiSqu(), GFWirepointHitPolicy::hitCov(), GFWireHitPolicy::hitCov(), GFSpacepointHitPolicy::hitCov(), and GFPlanarHitPolicy::hitCov().

153 {return fHitCov;}
TMatrixT< double > fHitCov
Covariance of raw hit coordinates.
Definition: GFAbsRecoHit.h:79
virtual void GFAbsRecoHit::Print ( )
inlinevirtualinherited

Print raw hit coordinates.

Definition at line 207 of file GFAbsRecoHit.h.

References GFAbsRecoHit::fHitCoord.

207 {fHitCoord.Print();}
TMatrixT< double > fHitCoord
Vector of raw coordinates of hit.
Definition: GFAbsRecoHit.h:76
virtual TMatrixT<double> GFAbsRecoHit::residualVector ( const GFAbsTrackRep stateVector,
const TMatrixT< double > &  state,
const GFDetPlane d 
)
inlinevirtualinherited

Calculate residual with respect to a track representation.

Returns the N-dimensional residual of this vector to a given track representation.

This method is not doing any extrapolation. But it creates the necessary detector plane object. See GFAbsRecoHit::getGFDetPlane

Parameters
stateVectorpointer to track representation - used to synchronize with the track repesentation
stateparameter vector of the track representation
See Also
setHMatrix
getGFDetPlane

Definition at line 142 of file GFAbsRecoHit.h.

References GFAbsRecoHit::getHitCoord(), and GFAbsRecoHit::getHMatrix().

Referenced by GFKalman::getChi2Hit(), GFTrack::getResiduals(), and GFKalman::processHit().

144  {
145  TMatrixT<double> H = getHMatrix(stateVector);
146  return ( getHitCoord(d) - (H*state ));
147  }
virtual TMatrixT< double > getHMatrix(const GFAbsTrackRep *stateVector)=0
Get transformation matrix. Transformation between hit coordinates and track representation coordinate...
virtual TMatrixT< double > getHitCoord(const GFDetPlane &)=0
Get hit coordinates in a specific detector plane.

Member Data Documentation

PndMdtHit* PndMdtRecoHit::fHit
private

Definition at line 66 of file PndMdtRecoHit.h.

Referenced by GetHit(), and PndMdtRecoHit().

TMatrixT<double> GFAbsRecoHit::fHitCoord
protectedinherited
TMatrixT<double> GFAbsRecoHit::fHitCov
protectedinherited

Definition at line 62 of file GFRecoHitIfc.h.

const int PndMdtRecoHit::NparHitRep = 3
staticprivate

Definition at line 64 of file PndMdtRecoHit.h.

TRandom3 PndMdtRecoHit::rand
staticprivate

Definition at line 67 of file PndMdtRecoHit.h.

Referenced by PndMdtRecoHit().


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