EIC Software
Reference for
EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
GFKalman.h
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file GFKalman.h
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 GFKALMAN_H
24
#define GFKALMAN_H
25
26
#include <map>
27
#include <iostream>
28
29
#include "TMatrixT.h"
30
31
32
class
GFAbsRecoHit
;
33
class
GFAbsTrackRep
;
34
class
GFTrack
;
35
50
class
GFKalman
{
51
public
:
52
53
//friend class KalmanTester; // gives the Tester access to private methods
54
55
// Constructors/Destructors ---------
56
GFKalman
();
57
~GFKalman
();
58
59
// Operators
65
inline
void
operator()
(
GFTrack
* track){
processTrack
(track);}
66
72
inline
void
operator()
(std::pair<int,GFTrack*> tr){
processTrack
(tr.second);}
73
74
// Operations ----------------------
75
80
void
setLazy
(Int_t flag){
81
static_cast<
void
>
(flag);
82
std::cerr<<
"Using outdates setLazy method of class GFKalman:"
<<std::endl;
83
}
84
89
void
setNumIterations
(Int_t i){
fNumIt
=i;}
90
96
void
processTrack
(
GFTrack
* trk);
97
100
void
fittingPass
(
GFTrack
*,
int
dir);
// continues track from lastHitInFit
101
105
double
getChi2Hit
(
GFAbsRecoHit
*,
GFAbsTrackRep
*);
106
110
void
setInitialDirection
(
int
d
){
fInitialDirection
=
d
;}
111
114
void
setBlowUpFactor
(
double
f){
fBlowUpFactor
=f;}
115
116
// Protected Methods -----------------
117
protected
:
121
void
blowUpCovs
(
GFTrack
* trk);
122
123
// Private Methods -----------------
124
private
:
133
void
processHit
(
GFTrack
*,
int
,
int
,
int
);
134
137
void
switchDirection
(
GFTrack
* trk);
// switches the direction of propagation for all reps
138
141
TMatrixT<double>
calcGain
(
const
TMatrixT<double>&
cov
,
142
const
TMatrixT<double>& HitCov,
143
const
TMatrixT<double>& H);
144
147
double
chi2Increment
(
const
TMatrixT<double>& r,
const
TMatrixT<double>& H,
148
const
TMatrixT<double>&
cov
,
const
TMatrixT<double>& V);
149
150
151
152
int
fInitialDirection
;
153
Int_t
fNumIt
;
154
double
fBlowUpFactor
;
155
bool
fSmooth
;
156
bool
fSmoothFast
;
157
158
159
160
161
};
162
163
164
#endif
165
EicRoot
blob
master
genfit
GFKalman.h
Built by
Jin Huang
. updated:
Mon Jan 22 2024 12:43:36
using
1.8.2 with
EIC GitHub integration