BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
CbmKFParticle.h
Go to the documentation of this file.
1
/** The CbmKFParticle class
2
*
3
* @author S.Gorbunov, I.Kisel
4
* @version 1.0
5
* @since 24.11.06
6
*
7
* Class to fit decayed particle with the Kalman Filter method
8
*
9
*/
10
#ifndef CBMKFPARTICLE_H
11
#define CBMKFPARTICLE_H
12
13
#include "
CbmKFTrackInterface.h
"
14
#include "
CbmKFVertexInterface.h
"
15
16
#include <vector>
17
using namespace
std
;
18
19
class
CbmKFParticle
:
public
TObject
20
{
21
22
public
:
23
int
Id
()
const
{
return
fId
; };
24
int
NDaughters
()
const
{
return
fDaughtersIds
.size(); };
25
const
vector<int>&
DaughterIds
()
const
{
return
fDaughtersIds
; };
26
27
void
SetId
(
int
id
) {
fId
= id; }
// should be always used (manualy)
28
void
SetNDaughters
(
int
n
) {
fDaughtersIds
.reserve(
n
); }
29
void
AddDaughter
(
int
id
) {
fDaughtersIds
.push_back(
id
); }
30
void
CleanDaughtersId
() {
fDaughtersIds
.clear(); }
31
32
private
:
33
int
fId
;
// id of particle
34
vector<int>
fDaughtersIds
;
// id of particles it created from. if size == 1 then this is id of track. TODO use in
35
// functions. why unsigned short int doesn't work???
36
37
int
fPDG
;
// pdg hypothesis
38
39
public
:
40
Double_t
r
[8],
C
[36];
41
Int_t
NDF
;
42
Double_t
Chi2
,
Q
;
43
Bool_t
AtProductionVertex
;
44
45
float
fieldRegion
[10];
46
47
CbmKFParticle
()
48
:
fId
(-1)
49
,
fDaughtersIds
()
50
,
fPDG
(0)
51
,
NDF
(0)
52
,
Chi2
(0)
53
,
Q
(0)
54
,
AtProductionVertex
(0) {};
55
CbmKFParticle
(
CbmKFTrackInterface
* Track,
Double_t
* z0 = 0,
Int_t
* qHypo = 0,
Int_t
* pdg = 0);
56
57
~CbmKFParticle
() {};
58
59
// Construction
60
61
void
Construct
(vector<CbmKFTrackInterface*>& vDaughters,
62
CbmKFVertexInterface
* Parent = 0,
63
Double_t
Mass = -1,
64
Double_t
CutChi2 = -1);
65
66
void
ConstructFromKFParticle
(vector<CbmKFParticle*>& vDaughters,
67
CbmKFVertexInterface
* Parent = 0,
68
Double_t
Mass = -1,
69
Double_t
CutChi2 = -1);
70
71
// Transportation
72
73
void
TransportToProductionVertex
();
74
void
TransportToDecayVertex
();
75
76
Double_t
GetDStoPoint
(
const
Double_t
xyz[])
const
;
77
78
// Accessors ?
79
80
//* Simple accessors
81
Double_t
GetX
()
const
{
return
r
[0]; }
82
Double_t
GetY
()
const
{
return
r
[1]; }
83
Double_t
GetZ
()
const
{
return
r
[2]; }
84
Double_t
GetPx
()
const
{
return
r
[3]; }
85
Double_t
GetPy
()
const
{
return
r
[4]; }
86
Double_t
GetPz
()
const
{
return
r
[5]; }
87
Double_t
GetE
()
const
{
return
r
[6]; }
88
Double_t
GetS
()
const
{
return
r
[7]; }
89
Double_t
GetQ
()
const
{
return
Q
; }
90
Double_t
GetChi2
()
const
{
return
Chi2
; }
91
Int_t
GetNDF
()
const
{
return
NDF
; }
92
Double_t
*
GetParameters
() {
return
r
; }
93
Double_t
*
GetCovMatrix
() {
return
C
; }
94
95
Bool_t
GetAtProductionVertex
()
const
{
return
AtProductionVertex
; }
96
97
Double_t
GetParameter
(
Int_t
i
)
const
{
return
r
[
i
]; }
98
Double_t
GetCovariance
(
Int_t
i
)
const
{
return
C
[
i
]; }
99
Double_t
GetCovariance
(
Int_t
i
,
Int_t
j)
const
{
return
C
[
IJ
(
i
, j)]; }
100
101
//*
102
//* MODIFIERS
103
//*
104
105
Double_t
&
rX
() {
return
r
[0]; }
106
Double_t
&
rY
() {
return
r
[1]; }
107
Double_t
&
rZ
() {
return
r
[2]; }
108
Double_t
&
rPx
() {
return
r
[3]; }
109
Double_t
&
rPy
() {
return
r
[4]; }
110
Double_t
&
rPz
() {
return
r
[5]; }
111
Double_t
&
rE
() {
return
r
[6]; }
112
Double_t
&
rS
() {
return
r
[7]; }
113
Double_t
&
rQ
() {
return
Q
; }
114
Double_t
&
rChi2
() {
return
Chi2
; }
115
Int_t
&
rNDF
() {
return
NDF
; }
116
117
Double_t
&
rParameter
(
Int_t
i
) {
return
r
[
i
]; }
118
Double_t
&
rCovariance
(
Int_t
i
) {
return
C
[
i
]; }
119
Double_t
&
rCovariance
(
Int_t
i
,
Int_t
j) {
return
C
[
IJ
(
i
, j)]; }
120
121
//* Accessor with calculations
122
123
void
GetKFTrack
(
CbmKFTrackInterface
* Track);
124
void
GetKFVertex
(
CbmKFVertexInterface
& vtx);
125
void
GetMomentum
(
Double_t
& P,
Double_t
&
Error
);
126
void
GetMass
(
Double_t
& M,
Double_t
&
Error
);
127
void
GetDecayLength
(
Double_t
& L,
Double_t
&
Error
);
128
void
GetLifeTime
(
Double_t
& T,
Double_t
&
Error
);
129
130
Double_t
GetRapidity
()
const
;
131
Double_t
GetPt
()
const
;
132
Double_t
GetTheta
()
const
;
133
Double_t
GetPhi
()
const
;
134
135
void
Extrapolate
(
Double_t
r0[],
double
T);
136
void
ExtrapolateLine
(
Double_t
r0[],
double
T);
137
138
void
SetPDG
(
int
pdg) {
fPDG
= pdg; }
139
int
GetPDG
()
const
{
return
fPDG
; }
140
141
protected
:
142
Double_t
&
Cij
(
Int_t
i
,
Int_t
j) {
return
C
[(j <=
i
) ?
i
* (
i
+ 1) / 2 + j : j * (j + 1) / 2 +
i
]; }
143
static
Int_t
IJ
(
Int_t
i
,
Int_t
j) {
return
(j <=
i
) ?
i
* (
i
+ 1) / 2 + j : j * (j + 1) / 2 +
i
; }
144
145
void
MeasureMass
(
Double_t
r0[],
Double_t
Mass);
146
void
MeasureProductionVertex
(
Double_t
r0[],
CbmKFVertexInterface
* Parent);
147
void
Convert
(
Double_t
r0[],
bool
ToProduction);
148
149
ClassDef
(
CbmKFParticle
, 1);
150
};
151
#endif
/* !CBMKFPARTICLE_H */
i
int i
Definition
P4_F32vec4.h:22
Bool_t
bool Bool_t
Int_t
int Int_t
Double_t
double Double_t
ClassDef
#define ClassDef(name, id)
Error
void Error(const char *location, const char *msgfmt,...)
CbmKFParticle
Definition
CbmKFParticle.h:20
CbmKFParticle::SetNDaughters
void SetNDaughters(int n)
Definition
CbmKFParticle.h:28
CbmKFParticle::CbmKFParticle
CbmKFParticle()
Definition
CbmKFParticle.h:47
CbmKFParticle::GetMomentum
void GetMomentum(Double_t &P, Double_t &Error)
Definition
CbmKFParticle.cxx:1433
CbmKFParticle::NDaughters
int NDaughters() const
Definition
CbmKFParticle.h:24
CbmKFParticle::Extrapolate
void Extrapolate(Double_t r0[], double T)
Definition
CbmKFParticle.cxx:1191
CbmKFParticle::rQ
Double_t & rQ()
Definition
CbmKFParticle.h:113
CbmKFParticle::rCovariance
Double_t & rCovariance(Int_t i, Int_t j)
Definition
CbmKFParticle.h:119
CbmKFParticle::GetMass
void GetMass(Double_t &M, Double_t &Error)
Definition
CbmKFParticle.cxx:1446
CbmKFParticle::rS
Double_t & rS()
Definition
CbmKFParticle.h:112
CbmKFParticle::GetParameters
Double_t * GetParameters()
Definition
CbmKFParticle.h:92
CbmKFParticle::SetId
void SetId(int id)
Definition
CbmKFParticle.h:27
CbmKFParticle::CleanDaughtersId
void CleanDaughtersId()
Definition
CbmKFParticle.h:30
CbmKFParticle::r
Double_t r[8]
Definition
CbmKFParticle.h:40
CbmKFParticle::rCovariance
Double_t & rCovariance(Int_t i)
Definition
CbmKFParticle.h:118
CbmKFParticle::GetPt
Double_t GetPt() const
Definition
CbmKFParticle.cxx:1489
CbmKFParticle::GetPz
Double_t GetPz() const
Definition
CbmKFParticle.h:86
CbmKFParticle::ExtrapolateLine
void ExtrapolateLine(Double_t r0[], double T)
Definition
CbmKFParticle.cxx:1145
CbmKFParticle::GetNDF
Int_t GetNDF() const
Definition
CbmKFParticle.h:91
CbmKFParticle::GetE
Double_t GetE() const
Definition
CbmKFParticle.h:87
CbmKFParticle::GetLifeTime
void GetLifeTime(Double_t &T, Double_t &Error)
Definition
CbmKFParticle.cxx:1476
CbmKFParticle::GetDecayLength
void GetDecayLength(Double_t &L, Double_t &Error)
Definition
CbmKFParticle.cxx:1459
CbmKFParticle::GetRapidity
Double_t GetRapidity() const
Definition
CbmKFParticle.cxx:1485
CbmKFParticle::IJ
static Int_t IJ(Int_t i, Int_t j)
Definition
CbmKFParticle.h:143
CbmKFParticle::rZ
Double_t & rZ()
Definition
CbmKFParticle.h:107
CbmKFParticle::GetPx
Double_t GetPx() const
Definition
CbmKFParticle.h:84
CbmKFParticle::Chi2
Double_t Chi2
Definition
CbmKFParticle.h:42
CbmKFParticle::fDaughtersIds
vector< int > fDaughtersIds
Definition
CbmKFParticle.h:34
CbmKFParticle::rX
Double_t & rX()
Definition
CbmKFParticle.h:105
CbmKFParticle::GetParameter
Double_t GetParameter(Int_t i) const
Definition
CbmKFParticle.h:97
CbmKFParticle::GetChi2
Double_t GetChi2() const
Definition
CbmKFParticle.h:90
CbmKFParticle::Cij
Double_t & Cij(Int_t i, Int_t j)
Definition
CbmKFParticle.h:142
CbmKFParticle::NDF
Int_t NDF
Definition
CbmKFParticle.h:41
CbmKFParticle::GetPDG
int GetPDG() const
Definition
CbmKFParticle.h:139
CbmKFParticle::GetS
Double_t GetS() const
Definition
CbmKFParticle.h:88
CbmKFParticle::rY
Double_t & rY()
Definition
CbmKFParticle.h:106
CbmKFParticle::GetY
Double_t GetY() const
Definition
CbmKFParticle.h:82
CbmKFParticle::GetZ
Double_t GetZ() const
Definition
CbmKFParticle.h:83
CbmKFParticle::GetKFVertex
void GetKFVertex(CbmKFVertexInterface &vtx)
Definition
CbmKFParticle.cxx:1422
CbmKFParticle::SetPDG
void SetPDG(int pdg)
Definition
CbmKFParticle.h:138
CbmKFParticle::~CbmKFParticle
~CbmKFParticle()
Definition
CbmKFParticle.h:57
CbmKFParticle::TransportToProductionVertex
void TransportToProductionVertex()
Definition
CbmKFParticle.cxx:1349
CbmKFParticle::GetTheta
Double_t GetTheta() const
Definition
CbmKFParticle.cxx:1493
CbmKFParticle::GetCovariance
Double_t GetCovariance(Int_t i) const
Definition
CbmKFParticle.h:98
CbmKFParticle::GetX
Double_t GetX() const
Definition
CbmKFParticle.h:81
CbmKFParticle::GetAtProductionVertex
Bool_t GetAtProductionVertex() const
Definition
CbmKFParticle.h:95
CbmKFParticle::Id
int Id() const
Definition
CbmKFParticle.h:23
CbmKFParticle::DaughterIds
const vector< int > & DaughterIds() const
Definition
CbmKFParticle.h:25
CbmKFParticle::rPy
Double_t & rPy()
Definition
CbmKFParticle.h:109
CbmKFParticle::C
Double_t C[36]
Definition
CbmKFParticle.h:40
CbmKFParticle::rPz
Double_t & rPz()
Definition
CbmKFParticle.h:110
CbmKFParticle::GetQ
Double_t GetQ() const
Definition
CbmKFParticle.h:89
CbmKFParticle::MeasureProductionVertex
void MeasureProductionVertex(Double_t r0[], CbmKFVertexInterface *Parent)
Definition
CbmKFParticle.cxx:916
CbmKFParticle::fId
int fId
Definition
CbmKFParticle.h:33
CbmKFParticle::rNDF
Int_t & rNDF()
Definition
CbmKFParticle.h:115
CbmKFParticle::fieldRegion
float fieldRegion[10]
Definition
CbmKFParticle.h:45
CbmKFParticle::AtProductionVertex
Bool_t AtProductionVertex
Definition
CbmKFParticle.h:43
CbmKFParticle::rE
Double_t & rE()
Definition
CbmKFParticle.h:111
CbmKFParticle::fPDG
int fPDG
Definition
CbmKFParticle.h:37
CbmKFParticle::TransportToDecayVertex
void TransportToDecayVertex()
Definition
CbmKFParticle.cxx:1361
CbmKFParticle::AddDaughter
void AddDaughter(int id)
Definition
CbmKFParticle.h:29
CbmKFParticle::GetPy
Double_t GetPy() const
Definition
CbmKFParticle.h:85
CbmKFParticle::GetDStoPoint
Double_t GetDStoPoint(const Double_t xyz[]) const
Definition
CbmKFParticle.cxx:1502
CbmKFParticle::rChi2
Double_t & rChi2()
Definition
CbmKFParticle.h:114
CbmKFParticle::rPx
Double_t & rPx()
Definition
CbmKFParticle.h:108
CbmKFParticle::MeasureMass
void MeasureMass(Double_t r0[], Double_t Mass)
Definition
CbmKFParticle.cxx:879
CbmKFParticle::Q
Double_t Q
Definition
CbmKFParticle.h:42
CbmKFParticle::GetKFTrack
void GetKFTrack(CbmKFTrackInterface *Track)
Definition
CbmKFParticle.cxx:1373
CbmKFParticle::GetCovariance
Double_t GetCovariance(Int_t i, Int_t j) const
Definition
CbmKFParticle.h:99
CbmKFParticle::rParameter
Double_t & rParameter(Int_t i)
Definition
CbmKFParticle.h:117
CbmKFParticle::GetCovMatrix
Double_t * GetCovMatrix()
Definition
CbmKFParticle.h:93
CbmKFParticle::Convert
void Convert(Double_t r0[], bool ToProduction)
Definition
CbmKFParticle.cxx:1069
CbmKFParticle::ConstructFromKFParticle
void ConstructFromKFParticle(vector< CbmKFParticle * > &vDaughters, CbmKFVertexInterface *Parent=0, Double_t Mass=-1, Double_t CutChi2=-1)
Definition
CbmKFParticle.cxx:504
CbmKFParticle::GetPhi
Double_t GetPhi() const
Definition
CbmKFParticle.cxx:1497
CbmKFParticle::Construct
void Construct(vector< CbmKFTrackInterface * > &vDaughters, CbmKFVertexInterface *Parent=0, Double_t Mass=-1, Double_t CutChi2=-1)
Definition
CbmKFParticle.cxx:141
CbmKFTrackInterface
Definition
CbmKFTrackInterface.h:26
CbmKFVertexInterface
Definition
CbmKFVertexInterface.h:25
TObject::TObject
TObject()
CbmKFTrackInterface.h
CbmKFVertexInterface.h
n
*brief user defined string literal for JSON values *sa std::size_t n
Definition
json.hpp:20362
std
Definition
json.hpp:4446
install
include
CbmKFParticle.h
Generated on
for BmnRoot by
1.17.0