Analysis Software
Documentation for sPHENIX simulation software
|
Abstract base class for Kalman fitter and derived fitting algorithms. More...
#include <GenFit/blob/master/fitters/include/AbsKalmanFitter.h>
Public Member Functions | |
AbsKalmanFitter (unsigned int maxIterations=4, double deltaPval=1e-3, double blowUpFactor=1e3) | |
virtual | ~AbsKalmanFitter () |
void | getChiSquNdf (const Track *tr, const AbsTrackRep *rep, double &bChi2, double &fChi2, double &bNdf, double &fNdf) const |
double | getChiSqu (const Track *tr, const AbsTrackRep *rep, int direction=-1) const |
double | getNdf (const Track *tr, const AbsTrackRep *rep, int direction=-1) const |
double | getRedChiSqu (const Track *tr, const AbsTrackRep *rep, int direction=-1) const |
double | getPVal (const Track *tr, const AbsTrackRep *rep, int direction=-1) const |
unsigned int | getMinIterations () const |
unsigned int | getMaxIterations () const |
double | getDeltaPval () const |
double | getRelChi2Change () const |
double | getBlowUpFactor () const |
bool | getResetOffDiagonals () const |
double | getBlowUpMaxVal () const |
eMultipleMeasurementHandling | getMultipleMeasurementHandling () const |
int | getMaxFailedHits () const |
virtual void | setMinIterations (unsigned int n) |
Set the minimum number of iterations. | |
virtual void | setMaxIterations (unsigned int n) |
Set the maximum number of iterations. | |
void | setDeltaPval (double deltaPval) |
Set Convergence criterion. | |
void | setRelChi2Change (double relChi2Change) |
void | setBlowUpFactor (double blowUpFactor) |
void | setResetOffDiagonals (bool resetOffDiagonals) |
void | setBlowUpMaxVal (double blowUpMaxVal) |
Limit the cov entries to this maximum value when blowing up the cov. Set to negative value to disable. Default is 1.E6. | |
void | setMultipleMeasurementHandling (eMultipleMeasurementHandling mmh) |
How should multiple measurements be handled? | |
virtual void | setMaxFailedHits (int val) |
bool | isTrackPrepared (const Track *tr, const AbsTrackRep *rep) const |
bool | isTrackFitted (const Track *tr, const AbsTrackRep *rep) const |
bool | canIgnoreWeights () const |
returns if the fitter can ignore the weights and handle the MeasurementOnPlanes as if they had weight 1. | |
Public Member Functions inherited from genfit::AbsFitter | |
AbsFitter () | |
virtual | ~AbsFitter () |
virtual void | processTrackWithRep (Track *, const AbsTrackRep *, bool resortHits=false)=0 |
void | processTrack (Track *, bool resortHits=false) |
virtual void | setDebugLvl (unsigned int lvl=1) |
Protected Member Functions | |
const std::vector < MeasurementOnPlane * > | getMeasurements (const KalmanFitterInfo *fi, const TrackPoint *tp, int direction) const |
get the measurementsOnPlane taking the multipleMeasurementHandling_ into account | |
Protected Attributes | |
unsigned int | minIterations_ |
Minimum number of iterations to attempt. Forward and backward are counted as one iteration. | |
unsigned int | maxIterations_ |
Maximum number of iterations to attempt. Forward and backward are counted as one iteration. | |
double | deltaPval_ |
Convergence criterion. | |
double | relChi2Change_ |
double | blowUpFactor_ |
Blow up the covariance of the forward (backward) fit by this factor before seeding the backward (forward) fit. | |
bool | resetOffDiagonals_ |
Reset the off-diagonals to 0 when blowing up the cov. | |
double | blowUpMaxVal_ |
Limit the cov entries to this maxuimum value when blowing up the cov. | |
eMultipleMeasurementHandling | multipleMeasurementHandling_ |
How to handle if there are multiple MeasurementsOnPlane. | |
int | maxFailedHits_ |
Protected Attributes inherited from genfit::AbsFitter | |
unsigned int | debugLvl_ |
Abstract base class for Kalman fitter and derived fitting algorithms.
Definition at line 51 of file AbsKalmanFitter.h.
View newest version in sPHENIX GitHub at line 51 of file AbsKalmanFitter.h
|
inline |
Definition at line 55 of file AbsKalmanFitter.h.
View newest version in sPHENIX GitHub at line 55 of file AbsKalmanFitter.h
References maxIterations_, and minIterations_.
|
inlinevirtual |
Definition at line 64 of file AbsKalmanFitter.h.
View newest version in sPHENIX GitHub at line 64 of file AbsKalmanFitter.h
bool AbsKalmanFitter::canIgnoreWeights | ( | ) | const |
returns if the fitter can ignore the weights and handle the MeasurementOnPlanes as if they had weight 1.
Definition at line 256 of file AbsKalmanFitter.cc.
View newest version in sPHENIX GitHub at line 256 of file AbsKalmanFitter.cc
References Acts::UnitConstants::e, multipleMeasurementHandling_, genfit::Exception::setFatal(), genfit::unweightedAverage, genfit::unweightedClosestToPrediction, genfit::unweightedClosestToPredictionWire, genfit::unweightedClosestToReference, genfit::unweightedClosestToReferenceWire, genfit::weightedAverage, genfit::weightedClosestToPrediction, genfit::weightedClosestToPredictionWire, genfit::weightedClosestToReference, and genfit::weightedClosestToReferenceWire.
Referenced by genfit::KalmanFitter::processTrackPoint(), genfit::KalmanFitterRefTrack::processTrackPoint(), and genfit::KalmanFitterRefTrack::processTrackPointSqrt().
|
inline |
Definition at line 78 of file AbsKalmanFitter.h.
View newest version in sPHENIX GitHub at line 78 of file AbsKalmanFitter.h
References blowUpFactor_.
|
inline |
Definition at line 80 of file AbsKalmanFitter.h.
View newest version in sPHENIX GitHub at line 80 of file AbsKalmanFitter.h
References blowUpMaxVal_.
double AbsKalmanFitter::getChiSqu | ( | const Track * | tr, |
const AbsTrackRep * | rep, | ||
int | direction = -1 |
||
) | const |
Definition at line 84 of file AbsKalmanFitter.cc.
View newest version in sPHENIX GitHub at line 84 of file AbsKalmanFitter.cc
References fChi2, and getChiSquNdf().
void AbsKalmanFitter::getChiSquNdf | ( | const Track * | tr, |
const AbsTrackRep * | rep, | ||
double & | bChi2, | ||
double & | fChi2, | ||
double & | bNdf, | ||
double & | fNdf | ||
) | const |
Definition at line 40 of file AbsKalmanFitter.cc.
View newest version in sPHENIX GitHub at line 40 of file AbsKalmanFitter.cc
References genfit::KalmanFitterInfo::getBackwardUpdate(), genfit::KalmanFittedStateOnPlane::getChiSquareIncrement(), genfit::AbsTrackRep::getDim(), genfit::KalmanFitterInfo::getForwardUpdate(), genfit::KalmanFittedStateOnPlane::getNdf(), and genfit::Track::getPointsWithMeasurement().
Referenced by getChiSqu(), getNdf(), getPVal(), and getRedChiSqu().
|
inline |
Definition at line 76 of file AbsKalmanFitter.h.
View newest version in sPHENIX GitHub at line 76 of file AbsKalmanFitter.h
References deltaPval_.
|
inline |
Definition at line 82 of file AbsKalmanFitter.h.
View newest version in sPHENIX GitHub at line 82 of file AbsKalmanFitter.h
References maxFailedHits_.
|
inline |
Definition at line 75 of file AbsKalmanFitter.h.
View newest version in sPHENIX GitHub at line 75 of file AbsKalmanFitter.h
References maxIterations_.
|
protected |
get the measurementsOnPlane taking the multipleMeasurementHandling_ into account
Definition at line 177 of file AbsKalmanFitter.cc.
View newest version in sPHENIX GitHub at line 177 of file AbsKalmanFitter.cc
References Acts::UnitConstants::e, genfit::KalmanFitterInfo::getClosestMeasurementOnPlane(), genfit::KalmanFitterInfo::getMeasurementsOnPlane(), genfit::TrackPoint::getNumRawMeasurements(), genfit::KalmanFitterInfo::getPrediction(), genfit::TrackPoint::getRawMeasurement(), genfit::KalmanFitterInfo::getReferenceState(), genfit::AbsFitterInfo::hasPrediction(), genfit::KalmanFitterInfo::hasReferenceState(), genfit::AbsMeasurement::isLeftRightMeasurement(), multipleMeasurementHandling_, genfit::Exception::setFatal(), genfit::unweightedAverage, genfit::unweightedClosestToPrediction, genfit::unweightedClosestToPredictionWire, genfit::unweightedClosestToReference, genfit::unweightedClosestToReferenceWire, genfit::weightedAverage, genfit::weightedClosestToPrediction, genfit::weightedClosestToPredictionWire, genfit::weightedClosestToReference, and genfit::weightedClosestToReferenceWire.
Referenced by genfit::KalmanFitter::processTrackPoint(), genfit::KalmanFitterRefTrack::processTrackPoint(), and genfit::KalmanFitterRefTrack::processTrackPointSqrt().
|
inline |
Definition at line 74 of file AbsKalmanFitter.h.
View newest version in sPHENIX GitHub at line 74 of file AbsKalmanFitter.h
References minIterations_.
|
inline |
Definition at line 81 of file AbsKalmanFitter.h.
View newest version in sPHENIX GitHub at line 81 of file AbsKalmanFitter.h
References multipleMeasurementHandling_.
double AbsKalmanFitter::getNdf | ( | const Track * | tr, |
const AbsTrackRep * | rep, | ||
int | direction = -1 |
||
) | const |
Definition at line 94 of file AbsKalmanFitter.cc.
View newest version in sPHENIX GitHub at line 94 of file AbsKalmanFitter.cc
References fChi2, and getChiSquNdf().
double AbsKalmanFitter::getPVal | ( | const Track * | tr, |
const AbsTrackRep * | rep, | ||
int | direction = -1 |
||
) | const |
Definition at line 114 of file AbsKalmanFitter.cc.
View newest version in sPHENIX GitHub at line 114 of file AbsKalmanFitter.cc
References fChi2, and getChiSquNdf().
Referenced by main().
double AbsKalmanFitter::getRedChiSqu | ( | const Track * | tr, |
const AbsTrackRep * | rep, | ||
int | direction = -1 |
||
) | const |
Definition at line 104 of file AbsKalmanFitter.cc.
View newest version in sPHENIX GitHub at line 104 of file AbsKalmanFitter.cc
References fChi2, and getChiSquNdf().
|
inline |
Definition at line 77 of file AbsKalmanFitter.h.
View newest version in sPHENIX GitHub at line 77 of file AbsKalmanFitter.h
References relChi2Change_.
|
inline |
Definition at line 79 of file AbsKalmanFitter.h.
View newest version in sPHENIX GitHub at line 79 of file AbsKalmanFitter.h
References resetOffDiagonals_.
bool AbsKalmanFitter::isTrackFitted | ( | const Track * | tr, |
const AbsTrackRep * | rep | ||
) | const |
Definition at line 147 of file AbsKalmanFitter.cc.
View newest version in sPHENIX GitHub at line 147 of file AbsKalmanFitter.cc
References genfit::KalmanFitterInfo::checkConsistency(), genfit::Track::getFitStatus(), genfit::Track::getPointsWithMeasurement(), genfit::KalmanFitterInfo::hasBackwardUpdate(), genfit::KalmanFitterInfo::hasForwardUpdate(), and genfit::FitStatus::isFitted().
bool AbsKalmanFitter::isTrackPrepared | ( | const Track * | tr, |
const AbsTrackRep * | rep | ||
) | const |
Definition at line 125 of file AbsKalmanFitter.cc.
View newest version in sPHENIX GitHub at line 125 of file AbsKalmanFitter.cc
References genfit::KalmanFitterInfo::checkConsistency(), genfit::Track::getPointsWithMeasurement(), and genfit::KalmanFitterInfo::hasReferenceState().
Referenced by genfit::KalmanFitterRefTrack::prepareTrack().
|
inline |
Definition at line 108 of file AbsKalmanFitter.h.
View newest version in sPHENIX GitHub at line 108 of file AbsKalmanFitter.h
References blowUpFactor_.
|
inline |
Limit the cov entries to this maximum value when blowing up the cov. Set to negative value to disable. Default is 1.E6.
This is especially useful for fits where the measurements do not constrain one direction, e.g. parallel wire measurements. The fit will not be constrained along the wire direction. This also means that the covariance along the wire direction will not get smaller during the fit. However, it will be blown up before the next iteration, leading to an exponential growth of the covariance element(s) corresponding to the wire direction. This can then lead to numerical problems. To prevent this, the maximum value of the covariance elements after blowing up can be limited.
Definition at line 119 of file AbsKalmanFitter.h.
View newest version in sPHENIX GitHub at line 119 of file AbsKalmanFitter.h
References blowUpMaxVal_.
|
inline |
Set Convergence criterion.
if track total P-value changes less than this between consecutive iterations, consider the track converged. chiĀ² from the backwards fit is used.
Definition at line 95 of file AbsKalmanFitter.h.
View newest version in sPHENIX GitHub at line 95 of file AbsKalmanFitter.h
References deltaPval_.
|
inlinevirtual |
Reimplemented in genfit::DAF.
Definition at line 124 of file AbsKalmanFitter.h.
View newest version in sPHENIX GitHub at line 124 of file AbsKalmanFitter.h
References maxFailedHits_.
Referenced by genfit::DAF::setMaxFailedHits().
|
inlinevirtual |
Set the maximum number of iterations.
Reimplemented in genfit::DAF.
Definition at line 87 of file AbsKalmanFitter.h.
View newest version in sPHENIX GitHub at line 87 of file AbsKalmanFitter.h
References maxIterations_, minIterations_, and n.
Referenced by main().
|
inlinevirtual |
Set the minimum number of iterations.
Definition at line 85 of file AbsKalmanFitter.h.
View newest version in sPHENIX GitHub at line 85 of file AbsKalmanFitter.h
References maxIterations_, and minIterations_.
|
inline |
How should multiple measurements be handled?
Definition at line 122 of file AbsKalmanFitter.h.
View newest version in sPHENIX GitHub at line 122 of file AbsKalmanFitter.h
References multipleMeasurementHandling_.
Referenced by main().
|
inline |
@ brief Set Non-convergence criterion
if the relative chi^2 between two iterations is larger than relChi2Change_, the fit is NOT converged and further iterations will be done, even if the deltaPval_ convergence criterium is met. This is especially useful for fits which have a p-value of almost 0 (possibly due to bad start values), where the p-value from one iteration to the next might not change much. However, a significant change in chi^2 tells us, that the fit might not yet be converged.
Definition at line 106 of file AbsKalmanFitter.h.
View newest version in sPHENIX GitHub at line 106 of file AbsKalmanFitter.h
References relChi2Change_.
|
inline |
Definition at line 109 of file AbsKalmanFitter.h.
View newest version in sPHENIX GitHub at line 109 of file AbsKalmanFitter.h
References resetOffDiagonals_.
|
protected |
Blow up the covariance of the forward (backward) fit by this factor before seeding the backward (forward) fit.
Definition at line 161 of file AbsKalmanFitter.h.
View newest version in sPHENIX GitHub at line 161 of file AbsKalmanFitter.h
Referenced by getBlowUpFactor(), genfit::KalmanFitterRefTrack::prepareTrack(), genfit::KalmanFitter::processTrackPartially(), genfit::KalmanFitterRefTrack::processTrackPoint(), genfit::KalmanFitterRefTrack::processTrackPointSqrt(), genfit::KalmanFitterRefTrack::processTrackWithRep(), genfit::KalmanFitter::processTrackWithRep(), and setBlowUpFactor().
|
protected |
Limit the cov entries to this maxuimum value when blowing up the cov.
Definition at line 165 of file AbsKalmanFitter.h.
View newest version in sPHENIX GitHub at line 165 of file AbsKalmanFitter.h
Referenced by getBlowUpMaxVal(), genfit::KalmanFitterRefTrack::prepareTrack(), genfit::KalmanFitter::processTrackPartially(), genfit::KalmanFitterRefTrack::processTrackPoint(), genfit::KalmanFitterRefTrack::processTrackPointSqrt(), genfit::KalmanFitterRefTrack::processTrackWithRep(), genfit::KalmanFitter::processTrackWithRep(), and setBlowUpMaxVal().
|
protected |
Convergence criterion.
if track total P-value changes less than this between consecutive iterations, consider the track converged. chiĀ² from the backwards fit is used.
Definition at line 148 of file AbsKalmanFitter.h.
View newest version in sPHENIX GitHub at line 148 of file AbsKalmanFitter.h
Referenced by getDeltaPval(), genfit::KalmanFitterRefTrack::processTrackWithRep(), genfit::KalmanFitter::processTrackWithRep(), genfit::DAF::processTrackWithRep(), and setDeltaPval().
|
protected |
after how many failed hits (exception during construction of plane, extrapolation etc.) should the fit be cancelled. -1 means don't cancel
Definition at line 172 of file AbsKalmanFitter.h.
View newest version in sPHENIX GitHub at line 172 of file AbsKalmanFitter.h
Referenced by genfit::KalmanFitter::fitTrack(), getMaxFailedHits(), genfit::KalmanFitterRefTrack::prepareTrack(), and setMaxFailedHits().
|
protected |
Maximum number of iterations to attempt. Forward and backward are counted as one iteration.
Definition at line 141 of file AbsKalmanFitter.h.
View newest version in sPHENIX GitHub at line 141 of file AbsKalmanFitter.h
Referenced by AbsKalmanFitter(), getMaxIterations(), genfit::KalmanFitterRefTrack::processTrackWithRep(), genfit::KalmanFitter::processTrackWithRep(), genfit::DAF::processTrackWithRep(), genfit::DAF::setAnnealingScheme(), setMaxIterations(), genfit::DAF::setMaxIterations(), and setMinIterations().
|
protected |
Minimum number of iterations to attempt. Forward and backward are counted as one iteration.
Definition at line 138 of file AbsKalmanFitter.h.
View newest version in sPHENIX GitHub at line 138 of file AbsKalmanFitter.h
Referenced by AbsKalmanFitter(), getMinIterations(), genfit::KalmanFitterRefTrack::processTrackWithRep(), genfit::KalmanFitter::processTrackWithRep(), genfit::DAF::processTrackWithRep(), genfit::DAF::setAnnealingScheme(), setMaxIterations(), and setMinIterations().
|
protected |
How to handle if there are multiple MeasurementsOnPlane.
Definition at line 168 of file AbsKalmanFitter.h.
View newest version in sPHENIX GitHub at line 168 of file AbsKalmanFitter.h
Referenced by canIgnoreWeights(), genfit::KalmanFitter::fitTrack(), getMeasurements(), getMultipleMeasurementHandling(), and setMultipleMeasurementHandling().
|
protected |
@ brief Non-convergence criterion
if the relative chi^2 between two iterations is larger than relChi2Change_, the fit is NOT converged and further iterations will be done, even if the deltaPval_ convergence criterium is met. This is especially useful for fits which have a p-value of almost 0 (possibly due to bad start values), where the p-value from one iteration to the next might not change much. However, a significant change in chi^2 tells us, that the fit might not yet be converged.
Definition at line 158 of file AbsKalmanFitter.h.
View newest version in sPHENIX GitHub at line 158 of file AbsKalmanFitter.h
Referenced by getRelChi2Change(), genfit::KalmanFitterRefTrack::processTrackWithRep(), genfit::KalmanFitter::processTrackWithRep(), and setRelChi2Change().
|
protected |
Reset the off-diagonals to 0 when blowing up the cov.
Definition at line 163 of file AbsKalmanFitter.h.
View newest version in sPHENIX GitHub at line 163 of file AbsKalmanFitter.h
Referenced by getResetOffDiagonals(), genfit::KalmanFitterRefTrack::prepareTrack(), genfit::KalmanFitter::processTrackPartially(), genfit::KalmanFitterRefTrack::processTrackPoint(), genfit::KalmanFitterRefTrack::processTrackPointSqrt(), genfit::KalmanFitterRefTrack::processTrackWithRep(), genfit::KalmanFitter::processTrackWithRep(), and setResetOffDiagonals().