LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
#include "GFDaf.h"
Public Member Functions | |
GFDaf () | |
Standard CTOR. Sets default values for annealing scheme and probablity cut. More... | |
~GFDaf () | |
void | processTrack (GFTrack *) |
Performs DAF fit on all track representations in a GFTrack. More... | |
void | setBlowUpFactor (double f) |
Set the blowup factor (see blowUpCovs() ) More... | |
void | setProbCut (double val) |
Set the probabilty cut for the weight calculation for the hits. Currently supported are the values 0.01 0.005, and 0.001. The corresponding chi2 cuts for different hits dimensionalities are hardcoded in the implementation because I did not yet figure out how to calculate them. Please feel very welcome to change the implementtion if you know how to do it. More... | |
void | setBetas (double b1, double b2, double b3=-1., double b4=-1., double b5=-1., double b6=-1., double b7=-1., double b8=-1., double b9=-1., double b10=-1.) |
Configure the annealing scheme. In the current implementation you need to provide at least two temperatures. The maximum would ten tempertatures. More... | |
Private Member Functions | |
TMatrixT< Double_t > | calcGain (const TMatrixT< Double_t > &cov, const TMatrixT< Double_t > &HitCov, const TMatrixT< Double_t > &H, const double &p) |
Calculate Kalman Gain. More... | |
void | blowUpCovs (GFTrack *trk) |
This is needed to blow up the covariance matrix before a fitting pass. The method drops off-diagonal elements and blows up diagonal by blowUpFactor. More... | |
void | invertMatrix (const TMatrixT< Double_t > &, TMatrixT< Double_t > &) |
invert a matrix. First argument is matrix to be inverted, second is return by ref. More... | |
Private Attributes | |
double | fBlowUpFactor |
std::vector< double > | fBeta |
std::map< int, double > | chi2Cuts |
genf::GFDaf::GFDaf | ( | ) |
Standard CTOR. Sets default values for annealing scheme and probablity cut.
Definition at line 42 of file GFDaf.cxx.
References setBetas(), and setProbCut().
|
private |
This is needed to blow up the covariance matrix before a fitting pass. The method drops off-diagonal elements and blows up diagonal by blowUpFactor.
Definition at line 354 of file GFDaf.cxx.
References fBlowUpFactor, genf::GFAbsTrackRep::getCov(), genf::GFTrack::getNumReps(), genf::GFAbsTrackRep::getStatusFlag(), genf::GFTrack::getTrackRep(), and genf::GFAbsTrackRep::setCov().
Referenced by processTrack(), and setBlowUpFactor().
|
private |
Calculate Kalman Gain.
Definition at line 395 of file GFDaf.cxx.
References invertMatrix().
Referenced by processTrack(), and setBlowUpFactor().
|
private |
invert a matrix. First argument is matrix to be inverted, second is return by ref.
Definition at line 377 of file GFDaf.cxx.
References e, mat, and GFException::setFatal().
Referenced by calcGain(), processTrack(), and setBlowUpFactor().
void genf::GFDaf::processTrack | ( | GFTrack * | trk | ) |
Performs DAF fit on all track representations in a GFTrack.
Definition at line 53 of file GFDaf.cxx.
References genf::GFTrack::addFailedHit(), blowUpCovs(), genf::GFBookkeeping::bookGFDetPlanes(), genf::GFBookkeeping::bookMatrices(), genf::GFBookkeeping::bookNumbers(), calcGain(), chi2Cuts, genf::GFTrack::clearBookkeeping(), genf::GFTrack::clearFailedHits(), COVEXC, E, genf::GFAbsTrackRep::extrapolate(), fBeta, genf::GFTrack::getBK(), genf::GFAbsTrackRep::getCov(), genf::GFBookkeeping::getDetPlane(), genf::GFAbsTrackRep::getDim(), genf::GFTrack::getHit(), genf::GFTrack::getHitsByPlane(), genf::GFBookkeeping::getMatrix(), genf::GFBookkeeping::getNumber(), genf::GFTrack::getNumHits(), genf::GFTrack::getNumReps(), genf::GFAbsTrackRep::getReferencePlane(), genf::GFAbsTrackRep::getState(), genf::GFAbsTrackRep::getStatusFlag(), genf::GFTrack::getTrackRep(), genf::GFBookkeeping::hitFailed(), hits(), GFException::info(), invertMatrix(), GFException::isFatal(), genf::GFAbsTrackRep::setData(), genf::GFBookkeeping::setDetPlane(), genf::GFBookkeeping::setMatrix(), genf::GFBookkeeping::setNhits(), genf::GFBookkeeping::setNumber(), genf::GFAbsTrackRep::setStatusFlag(), and GFException::what().
void genf::GFDaf::setBetas | ( | double | b1, |
double | b2, | ||
double | b3 = -1. , |
||
double | b4 = -1. , |
||
double | b5 = -1. , |
||
double | b6 = -1. , |
||
double | b7 = -1. , |
||
double | b8 = -1. , |
||
double | b9 = -1. , |
||
double | b10 = -1. |
||
) |
Configure the annealing scheme. In the current implementation you need to provide at least two temperatures. The maximum would ten tempertatures.
Definition at line 449 of file GFDaf.cxx.
References fBeta.
Referenced by GFDaf(), and setBlowUpFactor().
|
inline |
Set the blowup factor (see blowUpCovs() )
Definition at line 61 of file GFDaf.h.
References blowUpCovs(), calcGain(), f, fBlowUpFactor, invertMatrix(), setBetas(), and setProbCut().
void genf::GFDaf::setProbCut | ( | double | val | ) |
Set the probabilty cut for the weight calculation for the hits. Currently supported are the values 0.01 0.005, and 0.001. The corresponding chi2 cuts for different hits dimensionalities are hardcoded in the implementation because I did not yet figure out how to calculate them. Please feel very welcome to change the implementtion if you know how to do it.
Definition at line 417 of file GFDaf.cxx.
References chi2Cuts, E, GFException::setFatal(), and GFException::setNumbers().
Referenced by GFDaf(), and setBlowUpFactor().
|
private |
Definition at line 105 of file GFDaf.h.
Referenced by processTrack(), and setProbCut().
|
private |
Definition at line 104 of file GFDaf.h.
Referenced by processTrack(), and setBetas().
|
private |
Definition at line 103 of file GFDaf.h.
Referenced by blowUpCovs(), and setBlowUpFactor().