LArSoft
v06_85_00
Liquid Argon Software toolkit - http://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 45 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 356 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 400 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 381 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 452 of file GFDaf.cxx.
References fBeta.
Referenced by GFDaf(), and setBlowUpFactor().
|
inline |
Set the blowup factor (see blowUpCovs() )
Definition at line 73 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 422 of file GFDaf.cxx.
References chi2Cuts, E, GFException::setFatal(), and GFException::setNumbers().
Referenced by GFDaf(), and setBlowUpFactor().
|
private |
Definition at line 110 of file GFDaf.h.
Referenced by processTrack(), and setProbCut().
|
private |
Definition at line 109 of file GFDaf.h.
Referenced by processTrack(), and setBetas().
|
private |
Definition at line 108 of file GFDaf.h.
Referenced by blowUpCovs(), and setBlowUpFactor().