BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
CbmKFUMeasurement.cxx
Go to the documentation of this file.
1
#include "
CbmKFUMeasurement.h
"
2
3
#include <cmath>
4
5
void
CbmKFUMeasurement::Set
(
Double_t
z_,
Double_t
u_,
Double_t
phi_,
Double_t
sigma2_)
6
{
7
this->
z
= z_;
8
this->
u
= u_;
9
this->
phi
= phi_;
10
this->
sigma2
= sigma2_;
11
phi_s
=
sin
(phi_);
12
phi_c
=
cos
(phi_);
13
phi_ss
=
phi_s
*
phi_s
;
14
phi_cc
=
phi_c
*
phi_c
;
15
phi_2sc
= 2. *
phi_s
*
phi_c
;
16
}
17
18
Int_t
CbmKFUMeasurement::Filter
(
CbmKFTrackInterface
& track)
19
{
20
21
Double_t
* T = track.
GetTrack
();
22
Double_t
* C = track.
GetCovMatrix
();
23
24
Double_t
W
=
sigma2
+
phi_cc
* C[0] +
phi_2sc
* C[1] +
phi_ss
* C[2];
25
if
(!finite(
W
) ||
W
< 1.e-10)
26
return
1;
27
W
= 1. /
W
;
28
if
(!finite(
W
))
29
return
1;
30
31
Double_t
zeta =
phi_c
* T[0] +
phi_s
* T[1] -
u
;
32
33
track.
GetRefChi2
() += zeta * zeta *
W
;
34
track.
GetRefNDF
() += 1;
35
Double_t
K[5] = {
phi_c
* C[0] +
phi_s
* C[1],
phi_c
* C[1] +
phi_s
* C[2],
phi_c
* C[3] +
phi_s
* C[4],
36
phi_c
* C[6] +
phi_s
* C[7],
phi_c
* C[10] +
phi_s
* C[11]};
37
38
Double_t
KW[5] = {K[0] *
W
, K[1] *
W
, K[2] *
W
, K[3] *
W
, K[4] *
W
};
39
40
T[0] -= KW[0] * zeta;
41
T[1] -= KW[1] * zeta;
42
T[2] -= KW[2] * zeta;
43
T[3] -= KW[3] * zeta;
44
T[4] -= KW[4] * zeta;
45
46
C[0] -= K[0] * KW[0];
47
C[1] -= K[1] * KW[0];
48
C[2] -= K[1] * KW[1];
49
C[3] -= K[2] * KW[0];
50
C[4] -= K[2] * KW[1];
51
C[5] -= K[2] * KW[2];
52
C[6] -= K[3] * KW[0];
53
C[7] -= K[3] * KW[1];
54
C[8] -= K[3] * KW[2];
55
C[9] -= K[3] * KW[3];
56
C[10] -= K[4] * KW[0];
57
C[11] -= K[4] * KW[1];
58
C[12] -= K[4] * KW[2];
59
C[13] -= K[4] * KW[3];
60
C[14] -= K[4] * KW[4];
61
return
0;
62
}
W
vector< Double_t > W(vector< Double_t > dist, Double_t sig)
Definition
BmnMath.cxx:878
Int_t
int Int_t
Double_t
double Double_t
CbmKFTrackInterface
Definition
CbmKFTrackInterface.h:26
CbmKFTrackInterface::GetTrack
virtual Double_t * GetTrack()
Is it electron.
Definition
CbmKFTrackInterface.cxx:31
CbmKFTrackInterface::GetRefNDF
virtual Int_t & GetRefNDF()
Chi^2 after fit.
Definition
CbmKFTrackInterface.cxx:43
CbmKFTrackInterface::GetCovMatrix
virtual Double_t * GetCovMatrix()
array[6] of track parameters(x,y,tx,ty,qp,z)
Definition
CbmKFTrackInterface.cxx:35
CbmKFTrackInterface::GetRefChi2
virtual Double_t & GetRefChi2()
array[15] of covariance matrix
Definition
CbmKFTrackInterface.cxx:39
CbmKFUMeasurement::u
Double_t u
Definition
CbmKFUMeasurement.h:33
CbmKFUMeasurement::Set
void Set(Double_t z, Double_t u, Double_t phi, Double_t sigma2)
Definition
CbmKFUMeasurement.cxx:5
CbmKFUMeasurement::phi_s
Double_t phi_s
Definition
CbmKFUMeasurement.h:40
CbmKFUMeasurement::sigma2
Double_t sigma2
Definition
CbmKFUMeasurement.h:34
CbmKFUMeasurement::phi_2sc
Double_t phi_2sc
Definition
CbmKFUMeasurement.h:44
CbmKFUMeasurement::phi_c
Double_t phi_c
Definition
CbmKFUMeasurement.h:41
CbmKFUMeasurement::phi_cc
Double_t phi_cc
Definition
CbmKFUMeasurement.h:43
CbmKFUMeasurement::Filter
Int_t Filter(CbmKFTrackInterface &track)
Definition
CbmKFUMeasurement.cxx:18
CbmKFUMeasurement::phi
Double_t phi
Definition
CbmKFUMeasurement.h:35
CbmKFUMeasurement::z
Double_t z
Definition
CbmKFUMeasurement.h:32
CbmKFUMeasurement::phi_ss
Double_t phi_ss
Definition
CbmKFUMeasurement.h:42
cos
RVec< PromoteType< T > > cos(const RVec< T > &v)
sin
RVec< PromoteType< T > > sin(const RVec< T > &v)
CbmKFUMeasurement.h
reconstruction
KF
CbmKFUMeasurement.cxx
Generated on
for BmnRoot by
1.17.0