PandaRoot
GFDafHit Class Reference

Wrapper class for use with GFDaf. More...

#include <GFDafHit.h>

Inheritance diagram for GFDafHit:
GFAbsRecoHit

Public Member Functions

 GFDafHit ()
 
 ~GFDafHit ()
 
 GFDafHit (std::vector< GFAbsRecoHit *> HitsInPlane)
 Constructor adding hits. More...
 
TMatrixT< double > getHitCoord (const GFDetPlane &pl)
 Get the hit coordinates. More...
 
TMatrixT< double > getHitCov (const GFDetPlane &pl)
 Get the hit covariance. More...
 
TMatrixT< double > getHMatrix (const GFAbsTrackRep *rep)
 Get the H matrix. More...
 
GFDafHitclone ()
 Get clone of this object. More...
 
const GFDetPlanegetDetPlane (GFAbsTrackRep *rep)
 Get the detector plane. More...
 
void setWeights (std::vector< double > weights)
 Set the weights. More...
 
void setBlowUp (double blow_up)
 Set the \(\beta\) blow up factor for the covariance matrices. More...
 
unsigned int getNumHits ()
 Get the number of hits in the GFDafHit. More...
 
GFAbsRecoHitgetHit (unsigned int ihit)
 Get at hit from the GFDafHit. More...
 
const std::string & getPolicyName ()
 Get the name of the hit policy. More...
 
- Public Member Functions inherited from GFAbsRecoHit
virtual ~GFAbsRecoHit ()
 
 GFAbsRecoHit (int NparHit)
 Constructor specifying dimension of coordinate vector. More...
 
 GFAbsRecoHit ()
 Default constructor needed for compatibility with ROOT. More...
 
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 ()
 

Additional Inherited Members

- Protected Attributes inherited from GFAbsRecoHit
TMatrixT< double > fHitCoord
 Vector of raw coordinates of hit. More...
 
TMatrixT< double > fHitCov
 Covariance of raw hit coordinates. More...
 

Detailed Description

Wrapper class for use with GFDaf.

The GFDafHit is a hit class which acts as an effective hit. As the DAF is capable of handling multiple hits in one plane, but GFKalman cannot handle this, the GFDafHit combines all hits in one plane.

Definition at line 40 of file GFDafHit.h.

Constructor & Destructor Documentation

◆ GFDafHit() [1/2]

GFDafHit::GFDafHit ( )
inline

Definition at line 42 of file GFDafHit.h.

Referenced by ~GFDafHit().

42 {};

◆ ~GFDafHit()

GFDafHit::~GFDafHit ( )
inline

Definition at line 44 of file GFDafHit.h.

References clone(), getDetPlane(), getHitCoord(), getHitCov(), getHMatrix(), GFDafHit(), setBlowUp(), and setWeights().

44 { fRawHits.clear(); };

◆ GFDafHit() [2/2]

GFDafHit::GFDafHit ( std::vector< GFAbsRecoHit *>  HitsInPlane)

Constructor adding hits.

With this constructor, the GFDafHit is normally initialized. All the hits of the argument should be in one plane.

Member Function Documentation

◆ clone()

GFDafHit* GFDafHit::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.

Referenced by ~GFDafHit().

◆ getDetPlane()

const GFDetPlane& GFDafHit::getDetPlane ( GFAbsTrackRep rep)
virtual

Get the detector plane.

Returns the plane as returned by GFDetPlan() of the first hit in the GFDafHit. This is valid because all hits are on the same plane.

Implements GFAbsRecoHit.

Referenced by ~GFDafHit().

◆ getHit()

GFAbsRecoHit* GFDafHit::getHit ( unsigned int  ihit)

Get at hit from the GFDafHit.

Referenced by getNumHits().

◆ getHitCoord()

TMatrixT<double> GFDafHit::getHitCoord ( const GFDetPlane pl)
virtual

Get the hit coordinates.

Due to the nature of the GFDafHit, the coordinates returned are not necessarily the coordinates of the real hits. There are two cases: if the GFDafHit contains only one hit, then the hit coordinates of this hit are returned. If however, the GFDafHit contains several hits, then the following formula is used to obtain the hit coordinates:

\[ \mathbf{m} = \mathbf{V} \cdot \sum_{i}p_{i}\cdot \mathbf{V}_{i}^{-1}\cdot \mathbf{m}_{i} \]

with \(\mathbf{m_{i}}\) the real hit coordinates, \(\mathbf{V}_{i}\) the real hit covariance and \(p_{i}\) the weights. The sum runs over all real hits in the GFDafHit. \(\mathbf{V}\) is the effective hit covariance as returned by getHitCov(). This calculation is only done, if the plane has changed from the last time gitHitCoord() was called.

Implements GFAbsRecoHit.

Referenced by ~GFDafHit().

◆ getHitCov()

TMatrixT<double> GFDafHit::getHitCov ( const GFDetPlane pl)
virtual

Get the hit covariance.

Analog to getHitCoord(), there are two cases: if the GFDafHit contains only one hit, the covariance is calculated like:

\[ \mathbf{V} = \frac{1}{p_{1}}\cdot\beta\cdot\mathbf{V}_{1} \]

with \(\beta\) the blow up factor for the temperature annealing as set in setBlowUp() and the rest of the symbols analog to getHitCoord(). If there are several hits in the GFDafHit, the following formula is used:

\[ \mathbf{V} = \left( \sum_{i} p_{i} \cdot \left( \beta \mathbf{V}_{i}\right)^{-1} \right)^{-1} \]

As before, these calculations are only done if the plane is different from the one getHitCov was last called.

Implements GFAbsRecoHit.

Referenced by ~GFDafHit().

◆ getHMatrix()

TMatrixT<double> GFDafHit::getHMatrix ( const GFAbsTrackRep rep)
virtual

Get the H matrix.

Returns the H matrix of the first hit in the GFDafHit. This is valid because all hits are on the same plane.

Implements GFAbsRecoHit.

Referenced by ~GFDafHit().

◆ getNumHits()

unsigned int GFDafHit::getNumHits ( )
inline

Get the number of hits in the GFDafHit.

Definition at line 120 of file GFDafHit.h.

References getHit(), and getPolicyName().

120 { return fRawHits.size(); };

◆ getPolicyName()

const std::string& GFDafHit::getPolicyName ( )
virtual

Get the name of the hit policy.

Returns the name of the hit policy of the first hit in the GFDafHit. This is valid because if there are several hits, they all have to be planar hits.

Reimplemented from GFAbsRecoHit.

Referenced by getNumHits().

◆ setBlowUp()

void GFDafHit::setBlowUp ( double  blow_up)

Set the \(\beta\) blow up factor for the covariance matrices.

Set the \(\beta\) as used by getHitCoord() and getHitCov().

Referenced by ~GFDafHit().

◆ setWeights()

void GFDafHit::setWeights ( std::vector< double >  weights)

Set the weights.

Set the weights as used by getHitCoord() and getHitCov().

Referenced by ~GFDafHit().


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