EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GFDafHit Class Reference

Wrapper class for use with GFDaf. More...

#include <EicRoot/blob/master/genfit/GFDafHit.h>

+ Inheritance diagram for GFDafHit:
+ Collaboration diagram for GFDafHit:

Public Member Functions

 GFDafHit ()
 
 ~GFDafHit ()
 
 GFDafHit (std::vector< GFAbsRecoHit * > HitsInPlane)
 Constructor adding hits.
 
void getMeasurement (const GFAbsTrackRep *rep, const GFDetPlane &pl, const TMatrixT< double > &statePred, const TMatrixT< double > &covPred, TMatrixT< double > &m, TMatrixT< double > &V)
 Get the measurement m,V.
 
TMatrixT< double > getHMatrix (const GFAbsTrackRep *rep)
 Get the H matrix.
 
GFDafHitclone ()
 Get clone of this object.
 
const GFDetPlanegetDetPlane (GFAbsTrackRep *rep)
 Get the detector plane.
 
void setWeights (std::vector< double > weights)
 Set the weights.
 
unsigned int getNumHits ()
 Get the number of hits in the GFDafHit.
 
GFAbsRecoHitgetHit (unsigned int ihit)
 Get at hit from the GFDafHit.
 
const std::string & getPolicyName ()
 Get the name of the hit policy.
 
- Public Member Functions inherited from GFAbsRecoHit
virtual ~GFAbsRecoHit ()
 
 GFAbsRecoHit (int NparHit)
 Constructor specifying dimension of coordinate vector.
 
 GFAbsRecoHit ()
 Default constructor needed for compatibility with ROOT.
 
TMatrixT< double > getRawHitCov () const
 Get raw hit covariances.
 
TMatrixT< double > getRawHitCoord () const
 Get raw hit coordinates.
 
double getRho ()
 
void setRho (double rho)
 
virtual void Print (const Option_t *option="") const
 Print raw hit coordinates.
 
int getNparHit ()
 

Private Attributes

bool fHitUpd
 
GFDetPlane fPl
 
std::vector< TMatrixT< double > > fCovInvs
 
std::vector< GFAbsRecoHit * > fRawHits
 
std::vector< double > fWeights
 

Additional Inherited Members

- Protected Attributes inherited from GFAbsRecoHit
TMatrixT< double > fHitCoord
 Vector of raw coordinates of hit.
 
TMatrixT< double > fHitCov
 Covariance of raw hit coordinates.
 
double fRho
 Sorting parameter used in GFTrack::sortHits()
 

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.

View newest version in sPHENIX GitHub at line 40 of file GFDafHit.h

Constructor & Destructor Documentation

GFDafHit::GFDafHit ( )
inline

Definition at line 43 of file GFDafHit.h.

View newest version in sPHENIX GitHub at line 43 of file GFDafHit.h

Referenced by clone().

+ Here is the caller graph for this function:

GFDafHit::~GFDafHit ( )
inline

Definition at line 45 of file GFDafHit.h.

View newest version in sPHENIX GitHub at line 45 of file GFDafHit.h

References fRawHits.

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.

Definition at line 22 of file GFDafHit.cxx.

View newest version in sPHENIX GitHub at line 22 of file GFDafHit.cxx

References fHitUpd, fRawHits, and fWeights.

Member Function Documentation

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.

Definition at line 139 of file GFDafHit.cxx.

View newest version in sPHENIX GitHub at line 139 of file GFDafHit.cxx

References fRawHits, fWeights, GFDafHit(), and setWeights().

+ Here is the call graph for this function:

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.

Definition at line 42 of file GFDafHit.cxx.

View newest version in sPHENIX GitHub at line 42 of file GFDafHit.cxx

References fRawHits.

GFAbsRecoHit * GFDafHit::getHit ( unsigned int  ihit)

Get at hit from the GFDafHit.

Definition at line 30 of file GFDafHit.cxx.

View newest version in sPHENIX GitHub at line 30 of file GFDafHit.cxx

References fRawHits.

Referenced by GFDaf::calcWeights().

+ Here is the caller graph for this function:

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.

Definition at line 133 of file GFDafHit.cxx.

View newest version in sPHENIX GitHub at line 133 of file GFDafHit.cxx

References fRawHits.

void GFDafHit::getMeasurement ( const GFAbsTrackRep rep,
const GFDetPlane pl,
const TMatrixT< double > &  statePred,
const TMatrixT< double > &  covPred,
TMatrixT< double > &  m,
TMatrixT< double > &  V 
)
virtual

Get the measurement m,V.

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.

And now for the covariance matrix: There are two cases as well: if the GFDafHit contains only one hit, the covariance is calculated like:

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

with 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( \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.

Definition at line 48 of file GFDafHit.cxx.

View newest version in sPHENIX GitHub at line 48 of file GFDafHit.cxx

References Acts::UnitConstants::e, fCovInvs, GFAbsRecoHit::fHitCoord, GFAbsRecoHit::fHitCov, fHitUpd, fPl, fRawHits, fWeights, and GFTools::invertMatrix().

+ Here is the call graph for this function:

unsigned int GFDafHit::getNumHits ( )
inline

Get the number of hits in the GFDafHit.

Definition at line 111 of file GFDafHit.h.

View newest version in sPHENIX GitHub at line 111 of file GFDafHit.h

References fRawHits.

Referenced by GFDaf::calcWeights(), and GFDaf::copySmoothing().

+ Here is the caller graph for this function:

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.

Definition at line 147 of file GFDafHit.cxx.

View newest version in sPHENIX GitHub at line 147 of file GFDafHit.cxx

References fRawHits.

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

Set the weights.

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

Definition at line 36 of file GFDafHit.cxx.

View newest version in sPHENIX GitHub at line 36 of file GFDafHit.cxx

References fHitUpd, and fWeights.

Referenced by clone(), and GFDaf::processTrack().

+ Here is the caller graph for this function:

Member Data Documentation

std::vector<TMatrixT<double> > GFDafHit::fCovInvs
private

Definition at line 127 of file GFDafHit.h.

View newest version in sPHENIX GitHub at line 127 of file GFDafHit.h

Referenced by getMeasurement().

bool GFDafHit::fHitUpd
private

Definition at line 125 of file GFDafHit.h.

View newest version in sPHENIX GitHub at line 125 of file GFDafHit.h

Referenced by getMeasurement(), GFDafHit(), and setWeights().

GFDetPlane GFDafHit::fPl
private

Definition at line 126 of file GFDafHit.h.

View newest version in sPHENIX GitHub at line 126 of file GFDafHit.h

Referenced by getMeasurement().

std::vector<GFAbsRecoHit*> GFDafHit::fRawHits
private

Definition at line 128 of file GFDafHit.h.

View newest version in sPHENIX GitHub at line 128 of file GFDafHit.h

Referenced by clone(), getDetPlane(), getHit(), getHMatrix(), getMeasurement(), getNumHits(), getPolicyName(), GFDafHit(), and ~GFDafHit().

std::vector<double> GFDafHit::fWeights
private

Definition at line 129 of file GFDafHit.h.

View newest version in sPHENIX GitHub at line 129 of file GFDafHit.h

Referenced by clone(), getMeasurement(), GFDafHit(), and setWeights().


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