PandaRoot
GFDaf Class Reference

Determinstic Annealing Filter (DAF) implementation. More...

#include <GFDaf.h>

Inheritance diagram for GFDaf:
GFKalman

Public Member Functions

 GFDaf ()
 
 ~GFDaf ()
 
void processTrack (GFTrack *trk)
 Process a track using the DAF. More...
 
const std::vector< std::vector< std::vector< double > > > getWeights ()
 Return the weights present after the track was processed. More...
 
void setProbCut (double prob_cut)
 Set the probabilty cut for the weight calculation for the hits. 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. More...
 

Detailed Description

Determinstic Annealing Filter (DAF) implementation.

Author
Christian Höppner (Technische Universität München, original author)
Karl Bicker (Technische Universität München)

The DAF is an iterative Kalman filter with annealing. It is capable of fitting tracks which are contaminated with noise hits. The algorithm is taken from the references R. Fruehwirth & A. Strandlie, Computer Physics Communications 120 (1999) 197-214 and CERN thesis: Dissertation by Matthias Winkler.

Definition at line 46 of file GFDaf.h.

Constructor & Destructor Documentation

◆ GFDaf()

GFDaf::GFDaf ( )

◆ ~GFDaf()

GFDaf::~GFDaf ( )
inline

Definition at line 49 of file GFDaf.h.

References processTrack().

49 {};

Member Function Documentation

◆ getWeights()

const std::vector<std::vector<std::vector<double> > > GFDaf::getWeights ( )
inline

Return the weights present after the track was processed.

The DAF uses special effective hits defined in the class GFDafHit. A GFDafHit is a wrappe class and contains all the real hits from one plane. The structure of the return vector of getWeights allows to reconstruct in what way the hits were grouped: the outermost vector represents the track representation, there is one entry per track representation. The middle vector represents the effective hits, and the innermost vector contains the real hits contained in the corresponding effective hit.

Definition at line 65 of file GFDaf.h.

References setBetas(), and setProbCut().

65 { return fWeights; };

◆ processTrack()

void GFDaf::processTrack ( GFTrack trk)

Process a track using the DAF.

Referenced by ~GFDaf().

◆ setBetas()

void 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.

Referenced by getWeights().

◆ setProbCut()

void GFDaf::setProbCut ( double  prob_cut)

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.

Referenced by getWeights().


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