LArSoft  v07_13_02
Liquid Argon Software toolkit - http://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 */
24 #ifndef GFDAF_H
25 #define GFDAF_H
26 
27 #include <map>
28 #include <vector>
29 
30 #include "TMatrixT.h"
31 
32 
33 
45 namespace genf {
46 
47 class GFAbsRecoHit;
48 class GFAbsTrackRep;
49 class GFTrack;
50 
51 
52 class GFDaf {
53 public:
54 
55 
58  GFDaf();
59 
60 
61  ~GFDaf();
62 
63 
64 
68  void processTrack(GFTrack*);
69 
70 
74 
81  void setProbCut(double val);
82 
87  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.);
88  // Private Methods -----------------
89 private:
90 
93  TMatrixT<Double_t> calcGain(const TMatrixT<Double_t>& cov,
94  const TMatrixT<Double_t>& HitCov,
95  const TMatrixT<Double_t>& H,
96  const double& p);
97 
98 
102  void blowUpCovs(GFTrack* trk);
103 
106  void invertMatrix(const TMatrixT<Double_t>&,TMatrixT<Double_t>&);
107 
109  std::vector<double> fBeta;
110  std::map<int,double> chi2Cuts;
111 };
112 
113 } // namespace genf
114 #endif
115 
GFDaf()
Standard CTOR. Sets default values for annealing scheme and probablity cut.
Definition: GFDaf.cxx:45
Generic Interface to magnetic fields in GENFIT.
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:381
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:452
void processTrack(GFTrack *)
Performs DAF fit on all track representations in a GFTrack.
Definition: GFDaf.cxx:53
double fBlowUpFactor
Definition: GFDaf.h:108
TFile f
Definition: plotHisto.C:6
std::map< int, double > chi2Cuts
Definition: GFDaf.h:110
std::vector< double > fBeta
Definition: GFDaf.h:109
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:400
void setProbCut(double val)
Set the probabilty cut for the weight calculation for the hits. Currently supported are the values 0...
Definition: GFDaf.cxx:422
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:356
void setBlowUpFactor(double f)
Set the blowup factor (see blowUpCovs() )
Definition: GFDaf.h:73