Analysis Software
Documentation for
sPHENIX
simulation software
Home page
Related Pages
Modules
Namespaces
Classes
Files
Examples
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
KalmanFitterRefTrack.h
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file KalmanFitterRefTrack.h
1
/* Copyright 2013, Ludwig-Maximilians Universität München,
2
Authors: Tobias Schlüter & Johannes Rauch
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 genfit_KalmanFitterRefTrack_h
24
#define genfit_KalmanFitterRefTrack_h
25
26
#include "
AbsKalmanFitter.h
"
27
28
29
namespace
genfit {
30
31
class
KalmanFitterInfo;
32
class
TrackPoint;
33
37
class
KalmanFitterRefTrack
:
public
AbsKalmanFitter
{
38
public
:
39
KalmanFitterRefTrack
(
unsigned
int
maxIterations = 4,
double
deltaPval = 1
e
-3,
double
blowUpFactor = 1e3,
40
bool
squareRootFormalism =
false
)
41
:
AbsKalmanFitter
(maxIterations, deltaPval, blowUpFactor),
refitAll_
(
false
),
deltaChi2Ref_
(1),
42
squareRootFormalism_
(squareRootFormalism)
43
{}
44
45
virtual
~KalmanFitterRefTrack
() {}
46
51
TrackPoint
*
fitTrack
(
Track
* tr,
const
AbsTrackRep
* rep,
double
& chi2,
double
& ndf,
int
direction);
52
53
void
processTrackWithRep
(
Track
* tr,
const
AbsTrackRep
* rep,
bool
resortHits =
false
)
override
;
54
62
bool
prepareTrack
(
Track
* tr,
const
AbsTrackRep
* rep,
bool
setSortingParams,
int
& nFailedHits);
63
65
void
setRefitAll
(
bool
refit =
true
) {
refitAll_
= refit;}
66
71
void
setDeltaChi2Ref
(
double
dChi2) {
deltaChi2Ref_
= dChi2;}
72
73
private
:
74
void
processTrackPoint
(
KalmanFitterInfo
* fi,
const
KalmanFitterInfo
* prevFi,
const
TrackPoint
*
tp
,
double
& chi2,
double
& ndf,
int
direction);
75
void
processTrackPointSqrt
(
KalmanFitterInfo
* fi,
const
KalmanFitterInfo
* prevFi,
const
TrackPoint
*
tp
,
double
& chi2,
double
& ndf,
int
direction);
76
83
bool
removeOutdated
(
Track
* tr,
const
AbsTrackRep
* rep,
int
& notChangedUntil,
int
& notChangedFrom);
84
86
void
removeForwardBackwardInfo
(
Track
* tr,
const
AbsTrackRep
* rep,
int
notChangedUntil,
int
notChangedFrom)
const
;
87
88
bool
refitAll_
;
// always refit all points or only if reference states have changed
89
double
deltaChi2Ref_
;
// reference track update cut
90
91
// aux variables for prepareTrack
92
TMatrixD
FTransportMatrix_
;
93
TMatrixD
BTransportMatrix_
;
94
TMatrixDSym
FNoiseMatrix_
;
95
TMatrixDSym
BNoiseMatrix_
;
96
TVectorD
forwardDeltaState_
;
97
TVectorD
backwardDeltaState_
;
98
99
// aux variables for processTrackPoint
100
TVectorD
p_
;
101
TMatrixDSym
C_
;
102
TMatrixDSym
covSumInv_
;
103
TMatrixDSym
Rinv_
;
104
TVectorD
res_
;
105
106
// aux variables for removeOutdated
107
TVectorD
resM_
;
108
109
bool
squareRootFormalism_
;
110
111
public
:
112
ClassDefOverride(
KalmanFitterRefTrack
, 1)
113
114
};
115
116
}
/* End of namespace genfit */
119
#endif //genfit_KalmanFitterRefTrack_h
GenFit
blob
master
fitters
include
KalmanFitterRefTrack.h
Built by
Jin Huang
. updated:
Sat Feb 17 2024 22:18:17
using
1.8.2 with
sPHENIX GitHub integration