LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
GFDaf.h
Go to the documentation of this file.
1 /* Copyright 2008-2010, Technische Universitaet Muenchen,
2  Authors: Christian Hoeppner & Sebastian Neubert
3 
4  This file is part of GENFIT.
5 
6  GENFIT is free software: you can redistribute it and/or modify
7  it under the terms of the GNU Lesser General Public License as published
8  by the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  GENFIT is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU Lesser General Public License for more details.
15 
16  You should have received a copy of the GNU Lesser General Public License
17  along with GENFIT. If not, see <http://www.gnu.org/licenses/>.
18 */
23 #ifndef GFDAF_H
24 #define GFDAF_H
25 
26 #include <map>
27 #include <vector>
28 
29 #include "TMatrixT.h"
30 
42 namespace genf {
43 
44  class GFTrack;
45 
46  class GFDaf {
47  public:
50  GFDaf();
51 
52  ~GFDaf();
53 
57  void processTrack(GFTrack*);
58 
61  void setBlowUpFactor(double f) { fBlowUpFactor = f; }
62 
69  void setProbCut(double val);
70 
75  void setBetas(double b1,
76  double b2,
77  double b3 = -1.,
78  double b4 = -1.,
79  double b5 = -1.,
80  double b6 = -1.,
81  double b7 = -1.,
82  double b8 = -1.,
83  double b9 = -1.,
84  double b10 = -1.);
85  // Private Methods -----------------
86  private:
89  TMatrixT<Double_t> calcGain(const TMatrixT<Double_t>& cov,
90  const TMatrixT<Double_t>& HitCov,
91  const TMatrixT<Double_t>& H,
92  const double& p);
93 
97  void blowUpCovs(GFTrack* trk);
98 
101  void invertMatrix(const TMatrixT<Double_t>&, TMatrixT<Double_t>&);
102 
104  std::vector<double> fBeta;
105  std::map<int, double> chi2Cuts;
106  };
107 
108 } // namespace genf
109 #endif
110 
GFDaf()
Standard CTOR. Sets default values for annealing scheme and probablity cut.
Definition: GFDaf.cxx:42
Generic Interface to magnetic fields in GENFIT.
Definition: GFAbsBField.h:34
void invertMatrix(const TMatrixT< Double_t > &, TMatrixT< Double_t > &)
invert a matrix. First argument is matrix to be inverted, second is return by ref.
Definition: GFDaf.cxx:377
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 temper...
Definition: GFDaf.cxx:449
void processTrack(GFTrack *)
Performs DAF fit on all track representations in a GFTrack.
Definition: GFDaf.cxx:53
double fBlowUpFactor
Definition: GFDaf.h:103
TFile f
Definition: plotHisto.C:6
std::vector< double > fBeta
Definition: GFDaf.h:104
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.
Definition: GFDaf.cxx:395
std::map< int, double > chi2Cuts
Definition: GFDaf.h:105
void setProbCut(double val)
Set the probabilty cut for the weight calculation for the hits. Currently supported are the values 0...
Definition: GFDaf.cxx:417
void blowUpCovs(GFTrack *trk)
This is needed to blow up the covariance matrix before a fitting pass. The method drops off-diagonal ...
Definition: GFDaf.cxx:354
void setBlowUpFactor(double f)
Set the blowup factor (see blowUpCovs() )
Definition: GFDaf.h:61