BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
CbmKFParticle_simd.h
Go to the documentation of this file.
1
/** The CbmKFParticle_simd 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_SIMD_H
11
#define CBMKFPARTICLE_SIMD_H
12
13
#include "
CbmKFTrackInterface.h
"
14
#include "
CbmKFVertexInterface.h
"
15
class
CbmKFParticle
;
16
17
#include "
CbmL1Def.h
"
18
#include "
L1Field.h
"
19
20
#include <vector>
21
22
using namespace
std
;
23
24
class
CbmKFParticle_simd
25
{
26
27
public
:
28
void
*
operator
new
(
size_t
bytes) {
return
_mm_malloc(bytes, 16); }
29
void
operator
delete
(
void
* p) { _mm_free(p); }
30
31
public
:
32
CbmKFParticle_simd
();
33
CbmKFParticle_simd
(
CbmKFTrackInterface
* Track[],
Int_t
* qHypo = 0,
const
Int_t
* pdg = 0);
34
CbmKFParticle_simd
(
CbmKFTrackInterface
& Track,
Int_t
* qHypo = 0,
const
Int_t
* pdg = 0);
35
CbmKFParticle_simd
(
CbmKFParticle
* part[]);
36
CbmKFParticle_simd
(
CbmKFParticle
& part);
37
38
~CbmKFParticle_simd
() {};
39
40
// Construction
41
void
Create
(
CbmKFTrackInterface
* Track[],
int
Ntracks =
fvecLen
,
Int_t
* qHypo = 0,
const
Int_t
* pdg = 0);
42
void
Create
(
CbmKFParticle
* part[],
int
N =
fvecLen
);
43
44
// Accessors
45
46
//* Simple accessors
47
fvec
GetX
()
const
{
return
r
[0]; }
48
fvec
GetY
()
const
{
return
r
[1]; }
49
fvec
GetZ
()
const
{
return
r
[2]; }
50
fvec
GetPx
()
const
{
return
r
[3]; }
51
fvec
GetPy
()
const
{
return
r
[4]; }
52
fvec
GetPz
()
const
{
return
r
[5]; }
53
fvec
GetE
()
const
{
return
r
[6]; }
54
fvec
GetS
()
const
{
return
r
[7]; }
55
fvec
GetQ
()
const
{
return
Q; }
56
fvec
GetChi2
()
const
{
return
Chi2; }
57
fvec
GetNDF
()
const
{
return
NDF; }
58
fvec
*
GetParameters
() {
return
r
; }
59
const
fvec
*
GetParameters
()
const
{
return
r
; }
60
fvec
*
GetCovMatrix
() {
return
C
; }
61
fvec
GetParameter
(
Int_t
i
)
const
{
return
r
[
i
]; }
62
fvec
GetCovariance
(
Int_t
i
)
const
{
return
C
[
i
]; }
63
64
// fvec GetParameter ( Int_t i ) const { return r[i]; }
65
// fvec GetCovariance( Int_t i ) const { return C[i]; }
66
// fvec GetCovariance( Int_t i, Int_t j ) const { return C[IJ(i,j)]; }
67
68
fvec
GetVtxGuess
(
int
i
)
const
{
return
fVtxGuess
[
i
]; }
69
fvec
GetVtxErrGuess
(
int
i
)
const
{
return
fVtxErrGuess
[
i
]; }
70
fvec
*
GetVtxGuess
() {
return
fVtxGuess
; }
71
fvec
*
GetVtxErrGuess
() {
return
fVtxErrGuess
; }
72
73
//*
74
//* MODIFIERS
75
//*
76
77
fvec
&
rX
() {
return
r
[0]; }
78
fvec
&
rY
() {
return
r
[1]; }
79
fvec
&
rZ
() {
return
r
[2]; }
80
fvec
&
rPx
() {
return
r
[3]; }
81
fvec
&
rPy
() {
return
r
[4]; }
82
fvec
&
rPz
() {
return
r
[5]; }
83
fvec
&
rE
() {
return
r
[6]; }
84
fvec
&
rS
() {
return
r
[7]; }
85
fvec
&
rQ
() {
return
Q; }
86
fvec
&
rChi2
() {
return
Chi2; }
87
fvec
&
rNDF
() {
return
NDF; }
88
89
// fvec & rParameter ( Int_t i ) { return r[i]; }
90
// fvec & rCovariance( Int_t i ) { return C[i]; }
91
// fvec & rCovariance( Int_t i, Int_t j ) { return C[IJ(i,j)]; }
92
93
//* Accessor with calculations
94
95
void
GetKFTrack
(
CbmKFTrackInterface
** Track);
96
97
fvec
GetTx
()
const
{
return
r
[3] /
r
[5]; }
98
fvec
GetTy
()
const
{
return
r
[4] /
r
[5]; }
99
100
void
GetMomentum
(
fvec
& P,
fvec
&
Error
);
101
void
GetMass
(
fvec
& M,
fvec
&
Error
);
102
void
GetDecayLength
(
fvec
& L,
fvec
&
Error
);
103
void
GetLifeTime
(
fvec
& T,
fvec
&
Error
);
104
105
fvec
GetRapidity
()
const
{
return
0.5 *
log
((
r
[6] +
r
[5]) / (
r
[6] -
r
[5])); }
106
fvec
GetPt
()
const
{
return
sqrt
(
r
[3] *
r
[3] +
r
[4] *
r
[4]); }
107
fvec
GetTheta
()
const
{
return
atan2
(
GetPt
(),
r
[5]); }
108
fvec
GetPhi
()
const
{
return
atan2
(
r
[4],
r
[5]); }
109
110
void
SetVtxGuess
(
fvec
& x,
fvec
& y,
fvec
& z);
111
void
SetVtxErrGuess
(
fvec
& d_x,
fvec
& d_y,
fvec
& d_z);
112
113
void
SetField
();
114
void
SetField
(
CbmKFTrackInterface
** Track);
115
void
SetField
(
const
L1FieldRegion
& field,
bool
isOneEntry = 0,
const
int
iVec = 0);
116
117
void
SetPDG
(
fvec
pdg) {
fPDG
= pdg; }
118
const
fvec
&
GetPDG
()
const
{
return
fPDG
; }
119
120
void
SetId
(
fvec
id
) {
fId
= id; };
121
void
SetNDaughters
(
int
n
) {
fDaughterIds
.reserve(
n
); }
122
void
AddDaughterId
(
fvec
id
) {
fDaughterIds
.push_back(
id
); };
123
void
CleanDaughtersId
() {
fDaughterIds
.clear(); }
124
125
fvec
Id
()
const
{
return
fId
; };
126
int
NDaughters
()
const
{
return
fDaughterIds
.size(); };
127
vector<fvec>&
DaughterIds
() {
return
fDaughterIds
; };
128
129
private
:
130
fvec
fId
;
// id of particle
131
vector<fvec>
fDaughterIds
;
// id of particles it created from. if size == 1 then this is id of track.
132
133
public
:
134
fvec
r
[8];
135
fvec
C
[36];
136
fvec
fVtxGuess
[3];
137
fvec
fVtxErrGuess
[3];
138
139
fvec
NDF
_fvecalignment
;
140
fvec
Chi2
_fvecalignment
, Q
_fvecalignment
;
141
142
fvec
fPDG
;
// PDG hypothesis
143
144
bool
AtProductionVertex
;
145
bool
fIsVtxGuess
;
146
bool
fIsVtxErrGuess
;
147
148
L1FieldRegion
fField
;
149
150
}
_fvecalignment
;
151
#endif
/* !CBMKFPARTICLE_H */
CbmL1Def.h
L1Field.h
fvecLen
const int fvecLen
Definition
P4_F32vec4.h:233
_fvecalignment
#define _fvecalignment
Definition
P4_F32vec4.h:236
i
int i
Definition
P4_F32vec4.h:22
fvec
F32vec4 fvec
Definition
P4_F32vec4.h:231
Int_t
int Int_t
Error
void Error(const char *location, const char *msgfmt,...)
CbmKFParticle_simd::Create
void Create(CbmKFTrackInterface *Track[], int Ntracks=fvecLen, Int_t *qHypo=0, const Int_t *pdg=0)
Definition
CbmKFParticle_simd.cxx:252
CbmKFParticle_simd::GetDecayLength
void GetDecayLength(fvec &L, fvec &Error)
Definition
CbmKFParticle_simd.cxx:436
CbmKFParticle_simd::GetRapidity
fvec GetRapidity() const
Definition
CbmKFParticle_simd.h:105
CbmKFParticle_simd::SetId
void SetId(fvec id)
Definition
CbmKFParticle_simd.h:120
CbmKFParticle_simd::SetVtxErrGuess
void SetVtxErrGuess(fvec &d_x, fvec &d_y, fvec &d_z)
Definition
CbmKFParticle_simd.cxx:470
CbmKFParticle_simd::_fvecalignment
fvec NDF _fvecalignment
Definition
CbmKFParticle_simd.h:139
CbmKFParticle_simd::GetChi2
fvec GetChi2() const
Definition
CbmKFParticle_simd.h:56
CbmKFParticle_simd::fIsVtxErrGuess
bool fIsVtxErrGuess
Definition
CbmKFParticle_simd.h:146
CbmKFParticle_simd::GetNDF
fvec GetNDF() const
Definition
CbmKFParticle_simd.h:57
CbmKFParticle_simd::GetPz
fvec GetPz() const
Definition
CbmKFParticle_simd.h:52
CbmKFParticle_simd::CbmKFParticle_simd
CbmKFParticle_simd()
Definition
CbmKFParticle_simd.cxx:35
CbmKFParticle_simd::rChi2
fvec & rChi2()
Definition
CbmKFParticle_simd.h:86
CbmKFParticle_simd::SetField
void SetField(CbmKFTrackInterface **Track)
CbmKFParticle_simd::SetField
void SetField()
CbmKFParticle_simd::rS
fvec & rS()
Definition
CbmKFParticle_simd.h:84
CbmKFParticle_simd::~CbmKFParticle_simd
~CbmKFParticle_simd()
Definition
CbmKFParticle_simd.h:38
CbmKFParticle_simd::GetVtxErrGuess
fvec * GetVtxErrGuess()
Definition
CbmKFParticle_simd.h:71
CbmKFParticle_simd::GetVtxGuess
fvec GetVtxGuess(int i) const
Definition
CbmKFParticle_simd.h:68
CbmKFParticle_simd::C
fvec C[36]
Definition
CbmKFParticle_simd.h:135
CbmKFParticle_simd::rPx
fvec & rPx()
Definition
CbmKFParticle_simd.h:80
CbmKFParticle_simd::GetMomentum
void GetMomentum(fvec &P, fvec &Error)
Definition
CbmKFParticle_simd.cxx:408
CbmKFParticle_simd::SetNDaughters
void SetNDaughters(int n)
Definition
CbmKFParticle_simd.h:121
CbmKFParticle_simd::NDaughters
int NDaughters() const
Definition
CbmKFParticle_simd.h:126
CbmKFParticle_simd::AddDaughterId
void AddDaughterId(fvec id)
Definition
CbmKFParticle_simd.h:122
CbmKFParticle_simd::rQ
fvec & rQ()
Definition
CbmKFParticle_simd.h:85
CbmKFParticle_simd::fPDG
fvec fPDG
Definition
CbmKFParticle_simd.h:142
CbmKFParticle_simd::GetCovariance
fvec GetCovariance(Int_t i) const
Definition
CbmKFParticle_simd.h:62
CbmKFParticle_simd::GetCovMatrix
fvec * GetCovMatrix()
Definition
CbmKFParticle_simd.h:60
CbmKFParticle_simd::SetVtxGuess
void SetVtxGuess(fvec &x, fvec &y, fvec &z)
Definition
CbmKFParticle_simd.cxx:462
CbmKFParticle_simd::rPy
fvec & rPy()
Definition
CbmKFParticle_simd.h:81
CbmKFParticle_simd::GetVtxGuess
fvec * GetVtxGuess()
Definition
CbmKFParticle_simd.h:70
CbmKFParticle_simd::GetY
fvec GetY() const
Definition
CbmKFParticle_simd.h:48
CbmKFParticle_simd::GetE
fvec GetE() const
Definition
CbmKFParticle_simd.h:53
CbmKFParticle_simd::GetParameters
const fvec * GetParameters() const
Definition
CbmKFParticle_simd.h:59
CbmKFParticle_simd::GetPDG
const fvec & GetPDG() const
Definition
CbmKFParticle_simd.h:118
CbmKFParticle_simd::fDaughterIds
vector< fvec > fDaughterIds
Definition
CbmKFParticle_simd.h:131
CbmKFParticle_simd::fField
L1FieldRegion fField
Definition
CbmKFParticle_simd.h:148
CbmKFParticle_simd::fVtxErrGuess
fvec fVtxErrGuess[3]
Definition
CbmKFParticle_simd.h:137
CbmKFParticle_simd::GetTy
fvec GetTy() const
Definition
CbmKFParticle_simd.h:98
CbmKFParticle_simd::r
fvec r[8]
Definition
CbmKFParticle_simd.h:134
CbmKFParticle_simd::rX
fvec & rX()
Definition
CbmKFParticle_simd.h:77
CbmKFParticle_simd::GetPt
fvec GetPt() const
Definition
CbmKFParticle_simd.h:106
CbmKFParticle_simd::GetMass
void GetMass(fvec &M, fvec &Error)
Definition
CbmKFParticle_simd.cxx:421
CbmKFParticle_simd::GetPhi
fvec GetPhi() const
Definition
CbmKFParticle_simd.h:108
CbmKFParticle_simd::GetParameter
fvec GetParameter(Int_t i) const
Definition
CbmKFParticle_simd.h:61
CbmKFParticle_simd::GetVtxErrGuess
fvec GetVtxErrGuess(int i) const
Definition
CbmKFParticle_simd.h:69
CbmKFParticle_simd::GetKFTrack
void GetKFTrack(CbmKFTrackInterface **Track)
Definition
CbmKFParticle_simd.cxx:352
CbmKFParticle_simd::rE
fvec & rE()
Definition
CbmKFParticle_simd.h:83
CbmKFParticle_simd::rPz
fvec & rPz()
Definition
CbmKFParticle_simd.h:82
CbmKFParticle_simd::GetTx
fvec GetTx() const
Definition
CbmKFParticle_simd.h:97
CbmKFParticle_simd::fIsVtxGuess
bool fIsVtxGuess
Definition
CbmKFParticle_simd.h:145
CbmKFParticle_simd::Id
fvec Id() const
Definition
CbmKFParticle_simd.h:125
CbmKFParticle_simd::CleanDaughtersId
void CleanDaughtersId()
Definition
CbmKFParticle_simd.h:123
CbmKFParticle_simd::DaughterIds
vector< fvec > & DaughterIds()
Definition
CbmKFParticle_simd.h:127
CbmKFParticle_simd::GetPx
fvec GetPx() const
Definition
CbmKFParticle_simd.h:50
CbmKFParticle_simd::GetParameters
fvec * GetParameters()
Definition
CbmKFParticle_simd.h:58
CbmKFParticle_simd::GetS
fvec GetS() const
Definition
CbmKFParticle_simd.h:54
CbmKFParticle_simd::GetQ
fvec GetQ() const
Definition
CbmKFParticle_simd.h:55
CbmKFParticle_simd::SetPDG
void SetPDG(fvec pdg)
Definition
CbmKFParticle_simd.h:117
CbmKFParticle_simd::AtProductionVertex
bool AtProductionVertex
Definition
CbmKFParticle_simd.h:144
CbmKFParticle_simd::GetLifeTime
void GetLifeTime(fvec &T, fvec &Error)
Definition
CbmKFParticle_simd.cxx:453
CbmKFParticle_simd::rNDF
fvec & rNDF()
Definition
CbmKFParticle_simd.h:87
CbmKFParticle_simd::fId
fvec fId
Definition
CbmKFParticle_simd.h:130
CbmKFParticle_simd::fVtxGuess
fvec fVtxGuess[3]
Definition
CbmKFParticle_simd.h:136
CbmKFParticle_simd::GetX
fvec GetX() const
Definition
CbmKFParticle_simd.h:47
CbmKFParticle_simd::rY
fvec & rY()
Definition
CbmKFParticle_simd.h:78
CbmKFParticle_simd::GetZ
fvec GetZ() const
Definition
CbmKFParticle_simd.h:49
CbmKFParticle_simd::GetPy
fvec GetPy() const
Definition
CbmKFParticle_simd.h:51
CbmKFParticle_simd::GetTheta
fvec GetTheta() const
Definition
CbmKFParticle_simd.h:107
CbmKFParticle_simd::rZ
fvec & rZ()
Definition
CbmKFParticle_simd.h:79
CbmKFParticle
Definition
CbmKFParticle.h:20
CbmKFTrackInterface
Definition
CbmKFTrackInterface.h:26
L1FieldRegion
Definition
L1Field.h:86
log
RVec< PromoteType< T > > log(const RVec< T > &v)
sqrt
RVec< PromoteType< T > > sqrt(const RVec< T > &v)
atan2
RVec< PromoteTypes< T0, T1 > > atan2(const RVec< T0 > &v, const T1 &y)
n
*brief user defined string literal for JSON values *sa std::size_t n
Definition
json.hpp:20362
std
Definition
json.hpp:4446
CbmKFTrackInterface.h
CbmKFVertexInterface.h
reconstruction
KF
CbmKFParticle_simd.h
Generated on
for BmnRoot by
1.17.0