BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
CbmKFParticle_simd.cxx
Go to the documentation of this file.
1
// 3456789012345678901234567890123456789012345678901234567890123456789012
2
/** Implementation of the CbmKFParticle_simd class
3
*
4
* @author S.Gorbunov, I.Kisel
5
* @version 1.0
6
* @since 06.02.06
7
*
8
*/
9
10
#include "
CbmKFParticle_simd.h
"
11
12
#include "
CbmKF.h
"
13
#include "
CbmKFHit.h
"
14
#include "
CbmKFMath.h
"
15
#include "
CbmKFParticle.h
"
16
#include "CbmKFTrack.h"
17
#include "CbmStsHit.h"
18
#include "CbmStsKFTrackFitter.h"
19
#include "
TMath.h
"
20
// #include "TDatabasePDG.h"
21
22
#include "CbmKFParticleDatabase.h"
23
24
// #include "CbmKFField.h"
25
26
#include "
TStopwatch.h
"
27
28
#include <cmath>
29
#include <vector>
30
31
#define cnst static const fvec
32
33
using namespace
std
;
34
35
CbmKFParticle_simd::CbmKFParticle_simd
()
36
:
fId
(-1)
37
,
fDaughterIds
()
38
, NDF(0)
39
, Chi2(0)
40
, Q(0)
41
,
fPDG
(0)
42
,
AtProductionVertex
(0)
43
,
fIsVtxGuess
(0)
44
,
fIsVtxErrGuess
(0)
45
,
fField
()
46
{
47
cnst
ZERO = 0.0, ONE = 1.;
48
49
for
(
int
i
= 0;
i
< 8;
i
++)
50
r
[
i
] = ZERO;
51
for
(
int
i
= 0;
i
< 36;
i
++)
52
C
[
i
] = ZERO;
53
for
(
int
i
= 0;
i
< 3;
i
++) {
54
fVtxGuess
[
i
] = ZERO;
55
fVtxErrGuess
[
i
] = ONE;
56
}
57
}
58
59
CbmKFParticle_simd::CbmKFParticle_simd
(
CbmKFParticle
& part)
60
:
fId
(part.
Id
())
61
,
fDaughterIds
()
62
, NDF(part.
GetNDF
())
63
, Chi2(part.
GetChi2
())
64
, Q(part.
GetQ
())
65
,
fPDG
(part.
GetPDG
())
66
,
AtProductionVertex
(part.GetAtProductionVertex())
67
,
fIsVtxGuess
(0)
68
,
fIsVtxErrGuess
(0)
69
,
fField
()
70
{
71
SetNDaughters
(part.
NDaughters
());
72
for
(
int
i
= 0;
i
< part.
NDaughters
(); ++
i
) {
73
fDaughterIds
.push_back(part.
DaughterIds
()[
i
]);
74
}
75
76
for
(
int
i
= 0;
i
< 8; ++
i
)
77
r
[
i
] = part.
GetParameters
()[
i
];
78
for
(
int
i
= 0;
i
< 36; ++
i
)
79
C
[
i
] = part.
GetCovMatrix
()[
i
];
80
81
fField
=
L1FieldRegion
(part.
fieldRegion
);
82
}
83
84
CbmKFParticle_simd::CbmKFParticle_simd
(
CbmKFParticle
* part[])
85
:
fId
(-1)
86
,
fDaughterIds
()
87
, NDF(0)
88
, Chi2(0)
89
, Q(0)
90
,
fPDG
(0)
91
,
AtProductionVertex
(0)
92
,
fIsVtxGuess
(0)
93
,
fIsVtxErrGuess
(0)
94
,
fField
()
95
{
96
Create
(part);
97
}
98
99
void
CbmKFParticle_simd::Create
(
CbmKFParticle
* parts[],
int
N)
100
{
101
102
{
// check
103
bool
ok = 1;
104
const
int
nD = (parts[0])->
NDaughters
();
105
for
(
int
ie = 1; ie < N; ie++) {
106
const
CbmKFParticle
& part = *(parts[ie]);
107
ok &= part.
NDaughters
() == nD;
108
}
109
// assert(ok);
110
if
(!ok) {
111
std::cout <<
" void CbmKFParticle_simd::Create(CbmKFParticle *parts[], int N) "
<< std::endl;
112
exit(1);
113
}
114
}
115
116
fDaughterIds
.resize((parts[0])->
NDaughters
(),
fvec
(-1));
117
118
for
(
int
ie = 0; ie < N; ie++) {
119
CbmKFParticle
& part = *(parts[ie]);
120
121
fId
[ie] = part.
Id
();
122
fDaughterIds
.back()[ie] = part.
Id
();
123
124
fPDG
[ie] = part.
GetPDG
();
125
126
for
(
int
i
= 0;
i
< 8; ++
i
)
127
r
[
i
][ie] = part.
GetParameters
()[
i
];
128
for
(
int
i
= 0;
i
< 36; ++
i
)
129
C
[
i
][ie] = part.
GetCovMatrix
()[
i
];
130
131
NDF[ie] = part.
GetNDF
();
132
Chi2[ie] = part.
GetChi2
();
133
Q[ie] = part.
GetQ
();
134
AtProductionVertex
= part.
GetAtProductionVertex
();
// CHECKME
135
136
L1FieldRegion
field(part.
fieldRegion
);
137
fField
.SetOneEntry(ie, field, 0);
138
}
139
}
140
141
CbmKFParticle_simd::CbmKFParticle_simd
(
CbmKFTrackInterface
& Track,
Int_t
* qHypo,
const
Int_t
* pdg)
142
:
fId
(-1)
143
,
fDaughterIds
()
144
, NDF(0)
145
, Chi2(0)
146
, Q(0)
147
,
fPDG
(0)
148
,
AtProductionVertex
(1)
149
,
fIsVtxGuess
(0)
150
,
fIsVtxErrGuess
(0)
151
,
fField
()
152
{
153
fDaughterIds
.push_back(Track.
Id
());
154
155
fvec
m
[6];
156
fvec
V[15];
157
fvec
TrMass;
158
159
CbmKFTrack
Tr(Track);
160
for
(
unsigned
int
i
= 0;
i
< 6;
i
++)
161
m
[
i
] = Tr.GetTrack()[
i
];
162
for
(
unsigned
int
i
= 0;
i
< 15;
i
++)
163
V[
i
] = Tr.GetCovMatrix()[
i
];
164
// TrMass = pdg ? TDatabasePDG::Instance()->GetParticle(*pdg)->Mass() :Tr.GetMass();
165
TrMass = pdg ?
CbmKFParticleDatabase::Instance
()->
GetMass
(*pdg) : Tr.GetMass();
166
167
NDF = Tr.GetRefNDF();
168
Chi2 = Tr.GetRefChi2();
169
170
fvec
a =
m
[2], b =
m
[3], qp =
m
[4];
171
172
//* convert the track to (x,y,px,py,pz,e,t/p) parameterization
173
174
fvec
c2 = 1. / (1. + a * a + b * b);
175
fvec
pq = 1. / qp;
176
fvec
p2 = pq * pq;
177
fvec
pz =
sqrt
(p2 * c2);
178
fvec
px = a * pz;
179
fvec
py = b * pz;
180
fvec
E =
sqrt
(TrMass * TrMass + p2);
181
182
fvec
H[3] = {-px * c2, -py * c2, -pz * pq};
183
fvec
HE = -pq * p2 / E;
184
185
r
[0] =
m
[0];
186
r
[1] =
m
[1];
187
r
[2] =
m
[5];
188
r
[3] = px;
189
r
[4] = py;
190
r
[5] = pz;
191
r
[6] = E;
192
r
[7] = 0;
193
194
fvec
cxpz = H[0] * V[3] + H[1] * V[6] + H[2] * V[10];
195
fvec
cypz = H[0] * V[4] + H[1] * V[7] + H[2] * V[11];
196
fvec
capz = H[0] * V[5] + H[1] * V[8] + H[2] * V[12];
197
fvec
cbpz = H[0] * V[8] + H[1] * V[9] + H[2] * V[13];
198
fvec
cqpz = H[0] * V[12] + H[1] * V[13] + H[2] * V[14];
199
fvec
cpzpz = H[0] * H[0] * V[5] + H[1] * H[1] * V[9] + H[2] * H[2] * V[14]
200
+ 2 * (H[0] * H[1] * V[8] + H[0] * H[2] * V[12] + H[1] * H[2] * V[13]);
201
202
C
[0] = V[0];
203
C
[1] = V[1];
204
C
[2] = V[2];
205
C
[3] = 0;
206
C
[4] = 0;
207
C
[5] = 0;
208
C
[6] = V[3] * pz + a * cxpz;
209
C
[7] = V[4] * pz + a * cypz;
210
C
[8] = 0;
211
C
[9] = V[5] * pz * pz + 2 * a * pz * capz + a * a * cpzpz;
212
C
[10] = V[6] * pz + b * cxpz;
213
C
[11] = V[7] * pz + b * cypz;
214
C
[12] = 0;
215
C
[13] = V[8] * pz * pz + a * pz * cbpz + b * pz * capz + a * b * cpzpz;
216
C
[14] = V[9] * pz * pz + 2 * b * pz * cbpz + b * b * cpzpz;
217
C
[15] = cxpz;
218
C
[16] = cypz;
219
C
[17] = 0;
220
C
[18] = capz * pz + a * cpzpz;
221
C
[19] = cbpz * pz + b * cpzpz;
222
C
[20] = cpzpz;
223
C
[21] = HE * V[10];
224
C
[22] = HE * V[11];
225
C
[23] = 0;
226
C
[24] = HE * (V[12] * pz + a * cqpz);
227
C
[25] = HE * (V[13] * pz + b * cqpz);
228
C
[26] = HE * cqpz;
229
C
[27] = HE * HE * V[14];
230
C
[28] =
C
[29] =
C
[30] =
C
[31] =
C
[32] =
C
[33] =
C
[34] = 0;
231
C
[35] = 1.;
232
233
for
(
int
j = 0; j <
fvecLen
; j++)
234
Q[j] = (qp[j] > 0.) ? 1 : ((qp[j] < 0) ? -1 : 0);
235
}
236
237
CbmKFParticle_simd::CbmKFParticle_simd
(
CbmKFTrackInterface
* Track[],
Int_t
* qHypo,
const
Int_t
* pdg)
238
:
fId
(-1)
239
,
fDaughterIds
()
240
, NDF(0)
241
, Chi2(0)
242
, Q(0)
243
,
fPDG
(0)
244
,
AtProductionVertex
(0)
245
,
fIsVtxGuess
(0)
246
,
fIsVtxErrGuess
(0)
247
,
fField
()
248
{
249
Create
(Track,
fvecLen
, qHypo, pdg);
250
}
251
252
void
CbmKFParticle_simd::Create
(
CbmKFTrackInterface
* Track[],
int
NTracks,
Int_t
* qHypo,
const
Int_t
* pdg)
253
{
254
fvec
m
[6];
255
fvec
V[15];
256
fvec
TrMass;
257
258
fDaughterIds
.push_back(
fvec
(-1));
259
for
(
int
j = 0; j < NTracks; j++) {
260
fDaughterIds
.back()[j] = Track[j]->
Id
();
261
262
// TrMass[j] = pdg ? TDatabasePDG::Instance()->GetParticle(*pdg)->Mass() : Track[j]->GetMass();
263
TrMass[j] = pdg ?
CbmKFParticleDatabase::Instance
()->
GetMass
(*pdg) : Track[j]->
GetMass
();
264
265
NDF[j] = Track[j]->
GetRefNDF
();
266
Chi2[j] = Track[j]->
GetRefChi2
();
267
268
for
(
int
i
= 0;
i
< 6;
i
++)
269
m
[
i
][j] = Track[j]->GetTrack()[
i
];
270
for
(
int
i
= 0;
i
< 15;
i
++)
271
V[
i
][j] = Track[j]->
GetCovMatrix
()[
i
];
272
}
273
274
fvec
a =
m
[2], b =
m
[3], qp =
m
[4];
275
276
//* convert the track to (x,y,px,py,pz,e,t/p) parameterization
277
278
fvec
c2 = 1. / (1. + a * a + b * b);
279
fvec
pq = 1. / qp;
280
fvec
p2 = pq * pq;
281
fvec
pz =
sqrt
(p2 * c2);
282
fvec
px = a * pz;
283
fvec
py = b * pz;
284
fvec
E =
sqrt
(TrMass * TrMass + p2);
285
286
fvec
H[3] = {-px * c2, -py * c2, -pz * pq};
287
fvec
HE = -pq * p2 / E;
288
289
r
[0] =
m
[0];
290
r
[1] =
m
[1];
291
r
[2] =
m
[5];
292
r
[3] = px;
293
r
[4] = py;
294
r
[5] = pz;
295
r
[6] = E;
296
r
[7] = 0;
297
298
fvec
cxpz = H[0] * V[3] + H[1] * V[6] + H[2] * V[10];
299
fvec
cypz = H[0] * V[4] + H[1] * V[7] + H[2] * V[11];
300
fvec
capz = H[0] * V[5] + H[1] * V[8] + H[2] * V[12];
301
fvec
cbpz = H[0] * V[8] + H[1] * V[9] + H[2] * V[13];
302
fvec
cqpz = H[0] * V[12] + H[1] * V[13] + H[2] * V[14];
303
fvec
cpzpz = H[0] * H[0] * V[5] + H[1] * H[1] * V[9] + H[2] * H[2] * V[14]
304
+ 2 * (H[0] * H[1] * V[8] + H[0] * H[2] * V[12] + H[1] * H[2] * V[13]);
305
306
C
[0] = V[0];
307
C
[1] = V[1];
308
C
[2] = V[2];
309
C
[3] = 0.f;
310
C
[4] = 0.f;
311
C
[5] = 0.f;
312
C
[6] = V[3] * pz + a * cxpz;
313
C
[7] = V[4] * pz + a * cypz;
314
C
[8] = 0.f;
315
C
[9] = V[5] * pz * pz + 2 * a * pz * capz + a * a * cpzpz;
316
C
[10] = V[6] * pz + b * cxpz;
317
C
[11] = V[7] * pz + b * cypz;
318
C
[12] = 0.f;
319
C
[13] = V[8] * pz * pz + a * pz * cbpz + b * pz * capz + a * b * cpzpz;
320
C
[14] = V[9] * pz * pz + 2 * b * pz * cbpz + b * b * cpzpz;
321
C
[15] = cxpz;
322
C
[16] = cypz;
323
C
[17] = 0.f;
324
C
[18] = capz * pz + a * cpzpz;
325
C
[19] = cbpz * pz + b * cpzpz;
326
C
[20] = cpzpz;
327
C
[21] = HE * V[10];
328
C
[22] = HE * V[11];
329
C
[23] = 0.f;
330
C
[24] = HE * (V[12] * pz + a * cqpz);
331
C
[25] = HE * (V[13] * pz + b * cqpz);
332
C
[26] = HE * cqpz;
333
C
[27] = HE * HE * V[14];
334
C
[28] =
C
[29] =
C
[30] =
C
[31] =
C
[32] =
C
[33] =
C
[34] = 0;
335
C
[35] = 1.f;
336
337
for
(
int
j = 0; j <
fvecLen
; j++)
338
Q[j] = (qp[j] > 0.) ? 1 : ((qp[j] < 0) ? -1 : 0);
339
AtProductionVertex
= 1;
340
fIsVtxGuess
=
false
;
341
fIsVtxErrGuess
=
false
;
342
}
343
344
void
CbmKFParticle_simd::SetField
(
const
L1FieldRegion
& field,
bool
isOneEntry,
const
int
iVec)
345
{
346
if
(!isOneEntry)
347
fField
= field;
348
else
349
fField
.SetOneEntry(field, iVec);
350
}
351
352
void
CbmKFParticle_simd::GetKFTrack
(
CbmKFTrackInterface
** Track)
353
{
354
fvec
T[6], Cov[15];
355
356
fvec
px =
r
[3], py =
r
[4], pz =
r
[5];
357
fvec
p =
sqrt
(px * px + py * py + pz * pz);
358
fvec
pzi = 1 / pz;
359
fvec
qp = 1 / p;
360
361
for
(
int
j = 0; j <
fvecLen
; j++)
362
if
(Q[j] != 0)
363
qp[j] = Q[j] * qp[j];
364
365
T[0] =
r
[0];
// dX = dx -T[2]*dz
366
T[1] =
r
[1];
// dY = dy -T[3]*dz
367
T[2] = px * pzi;
// dtx= (dpx - T[2]*dpz)/pz
368
T[3] = py * pzi;
// dty= (dpy - T[3]*dpz)/pz
369
T[4] = qp;
// dq = (px*dpx + py*dpy + pz*dpz)*(-q/p^3)
370
T[5] =
r
[2];
371
372
fvec
qp3 = qp * qp * qp;
373
fvec
pzi2 = pzi * pzi;
374
375
fvec
cXpz =
C
[15] - T[2] *
C
[17];
376
fvec
cYpz =
C
[16] - T[3] *
C
[17];
377
fvec
cqpx = -qp3 * (px *
C
[9] + py *
C
[13] + pz *
C
[18]);
378
fvec
cqpy = -qp3 * (px *
C
[13] + py *
C
[14] + pz *
C
[19]);
379
fvec
cqpz = -qp3 * (px *
C
[18] + py *
C
[19] + pz *
C
[20]);
380
381
Cov[0] =
C
[0] + T[2] * (-2 *
C
[3] + T[2] *
C
[5]);
382
Cov[1] =
C
[1] - T[2] *
C
[4] + T[3] * (-
C
[3] + T[2] *
C
[5]);
383
Cov[2] =
C
[2] + T[3] * (-2 *
C
[4] + T[3] *
C
[5]);
384
Cov[3] = pzi * (
C
[6] - T[2] * (
C
[8] + cXpz));
385
Cov[4] = pzi * (
C
[7] - T[3] *
C
[8] - T[2] * cYpz);
386
Cov[5] = pzi2 * (
C
[9] + T[2] * (-2 *
C
[18] + T[2] *
C
[20]));
387
Cov[6] = pzi * (
C
[10] - T[2] *
C
[12] - T[3] * cXpz);
388
Cov[7] = pzi * (
C
[11] - T[3] * (
C
[12] + cYpz));
389
Cov[8] = pzi2 * (
C
[13] - T[2] *
C
[19] - T[3] *
C
[18] + T[2] * T[3] *
C
[20]);
390
Cov[9] = pzi2 * (
C
[14] + T[3] * (-2 *
C
[19] + T[3] *
C
[20]));
391
Cov[10] = -qp3 * (px *
C
[6] + py *
C
[10] + pz *
C
[15]) - T[2] * cqpz;
392
Cov[11] = -qp3 * (px *
C
[7] + py *
C
[11] + pz *
C
[16]) - T[3] * cqpz;
393
Cov[12] = pzi * (cqpx - T[2] * cqpz);
394
Cov[13] = pzi * (cqpy - T[3] * cqpz);
395
Cov[14] = -qp3 * (px * cqpx + py * cqpy + pz * cqpz);
396
397
for
(
int
j = 0; j <
fvecLen
; j++) {
398
for
(
int
i
= 0;
i
< 6;
i
++)
399
Track[j]->GetTrack()[
i
] = T[
i
][j];
400
for
(
int
i
= 0;
i
< 15;
i
++)
401
Track[j]->
GetCovMatrix
()[
i
] = Cov[
i
][j];
402
403
Track[j]->
GetRefNDF
() = (int)NDF[j];
404
Track[j]->
GetRefChi2
() = Chi2[j];
405
}
406
}
407
408
void
CbmKFParticle_simd::GetMomentum
(
fvec
& P,
fvec
&
Error
)
409
{
410
fvec
x =
r
[3];
411
fvec
y =
r
[4];
412
fvec
z =
r
[5];
413
fvec
x2 = x * x;
414
fvec
y2 = y * y;
415
fvec
z2 = z * z;
416
fvec
p2 = x2 + y2 + z2;
417
P =
sqrt
(p2);
418
Error
=
sqrt
((x2 *
C
[9] + y2 *
C
[14] + z2 *
C
[20] + 2 * (x * y *
C
[13] + x * z *
C
[18] + y * z *
C
[19])) / p2);
419
}
420
421
void
CbmKFParticle_simd::GetMass
(
fvec
& M,
fvec
&
Error
)
422
{
423
// S = sigma^2 of m2/2
424
425
fvec
S = (
r
[3] *
r
[3] *
C
[9] +
r
[4] *
r
[4] *
C
[14] +
r
[5] *
r
[5] *
C
[20] +
r
[6] *
r
[6] *
C
[27]
426
+ 2
427
* (+
r
[3] *
r
[4] *
C
[13] +
r
[5] * (
r
[3] *
C
[18] +
r
[4] *
C
[19])
428
-
r
[6] * (
r
[3] *
C
[24] +
r
[4] *
C
[25] +
r
[5] *
C
[26])));
429
fvec
m2 =
r
[6] *
r
[6] -
r
[3] *
r
[3] -
r
[4] *
r
[4] -
r
[5] *
r
[5];
430
for
(
int
j = 0; j <
fvecLen
; j++) {
431
M[j] = (m2[j] > 1.e-20) ?
sqrt
(m2[j]) : 0.;
432
Error
[j] = (S[j] >= 0 && m2[j] > 1.e-20) ?
sqrt
(S[j] / m2[j]) : 1.e4;
433
}
434
}
435
436
void
CbmKFParticle_simd::GetDecayLength
(
fvec
& L,
fvec
&
Error
)
437
{
438
fvec
x =
r
[3];
439
fvec
y =
r
[4];
440
fvec
z =
r
[5];
441
fvec
t =
r
[7];
442
fvec
x2 = x * x;
443
fvec
y2 = y * y;
444
fvec
z2 = z * z;
445
fvec
p2 = x2 + y2 + z2;
446
L = t *
sqrt
(p2);
447
Error
=
448
sqrt
(p2 *
C
[35]
449
+ t * t / p2 * (x2 *
C
[9] + y2 *
C
[14] + z2 *
C
[20] + 2 * (x * y *
C
[13] + x * z *
C
[18] + y * z *
C
[19]))
450
+ 2 * t * (x *
C
[31] + y *
C
[32] + z *
C
[33]));
451
}
452
453
void
CbmKFParticle_simd::GetLifeTime
(
fvec
& TauC,
fvec
&
Error
)
454
{
455
fvec
m
, dm;
456
GetMass
(
m
, dm);
457
fvec
cTM = (-
r
[3] *
C
[31] -
r
[4] *
C
[32] -
r
[5] *
C
[33] +
r
[6] *
C
[34]);
458
TauC =
r
[7] *
m
;
459
Error
=
sqrt
(
m
*
m
*
C
[35] + 2 *
r
[7] * cTM +
r
[7] *
r
[7] * dm * dm);
460
}
461
462
void
CbmKFParticle_simd::SetVtxGuess
(
fvec
& x,
fvec
& y,
fvec
& z)
463
{
464
fVtxGuess
[0] = x;
465
fVtxGuess
[1] = y;
466
fVtxGuess
[2] = z;
467
fIsVtxGuess
= 1;
468
}
469
470
void
CbmKFParticle_simd::SetVtxErrGuess
(
fvec
& dx,
fvec
& dy,
fvec
& dz)
471
{
472
fVtxErrGuess
[0] = dx;
473
fVtxErrGuess
[1] = dy;
474
fVtxErrGuess
[2] = dz;
475
fIsVtxErrGuess
= 1;
476
}
477
478
#undef cnst
CbmKFParticle_simd.h
cnst
#define cnst
Definition
L1AddMaterial.h:9
fvecLen
const int fvecLen
Definition
P4_F32vec4.h:233
i
int i
Definition
P4_F32vec4.h:22
m
__m128 m
Definition
P4_F32vec4.h:27
fvec
F32vec4 fvec
Definition
P4_F32vec4.h:231
Int_t
int Int_t
Error
void Error(const char *location, const char *msgfmt,...)
TMath.h
TStopwatch.h
CbmKFParticleDatabase::GetMass
float GetMass(int pdg)
Definition
CbmKFParticleDatabase.h:13
CbmKFParticleDatabase::Instance
static CbmKFParticleDatabase * Instance()
Definition
CbmKFParticleDatabase.h:23
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::SetVtxErrGuess
void SetVtxErrGuess(fvec &d_x, fvec &d_y, fvec &d_z)
Definition
CbmKFParticle_simd.cxx:470
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::CbmKFParticle_simd
CbmKFParticle_simd()
Definition
CbmKFParticle_simd.cxx:35
CbmKFParticle_simd::SetField
void SetField()
CbmKFParticle_simd::C
fvec C[36]
Definition
CbmKFParticle_simd.h:135
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::fPDG
fvec fPDG
Definition
CbmKFParticle_simd.h:142
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::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::r
fvec r[8]
Definition
CbmKFParticle_simd.h:134
CbmKFParticle_simd::GetMass
void GetMass(fvec &M, fvec &Error)
Definition
CbmKFParticle_simd.cxx:421
CbmKFParticle_simd::GetKFTrack
void GetKFTrack(CbmKFTrackInterface **Track)
Definition
CbmKFParticle_simd.cxx:352
CbmKFParticle_simd::fIsVtxGuess
bool fIsVtxGuess
Definition
CbmKFParticle_simd.h:145
CbmKFParticle_simd::Id
fvec Id() const
Definition
CbmKFParticle_simd.h:125
CbmKFParticle_simd::GetQ
fvec GetQ() const
Definition
CbmKFParticle_simd.h:55
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::fId
fvec fId
Definition
CbmKFParticle_simd.h:130
CbmKFParticle_simd::fVtxGuess
fvec fVtxGuess[3]
Definition
CbmKFParticle_simd.h:136
CbmKFParticle
Definition
CbmKFParticle.h:20
CbmKFParticle::NDaughters
int NDaughters() const
Definition
CbmKFParticle.h:24
CbmKFParticle::GetParameters
Double_t * GetParameters()
Definition
CbmKFParticle.h:92
CbmKFParticle::GetNDF
Int_t GetNDF() const
Definition
CbmKFParticle.h:91
CbmKFParticle::GetChi2
Double_t GetChi2() const
Definition
CbmKFParticle.h:90
CbmKFParticle::GetPDG
int GetPDG() const
Definition
CbmKFParticle.h:139
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::GetQ
Double_t GetQ() const
Definition
CbmKFParticle.h:89
CbmKFParticle::fieldRegion
float fieldRegion[10]
Definition
CbmKFParticle.h:45
CbmKFParticle::GetCovMatrix
Double_t * GetCovMatrix()
Definition
CbmKFParticle.h:93
CbmKFTrackInterface
Definition
CbmKFTrackInterface.h:26
CbmKFTrackInterface::Id
int Id() const
Definition
CbmKFTrackInterface.h:68
CbmKFTrackInterface::GetRefNDF
virtual Int_t & GetRefNDF()
Chi^2 after fit.
Definition
CbmKFTrackInterface.cxx:43
CbmKFTrackInterface::GetMass
virtual Double_t GetMass()
Information not to be changed.
Definition
CbmKFTrackInterface.h:37
CbmKFTrackInterface::GetRefChi2
virtual Double_t & GetRefChi2()
array[15] of covariance matrix
Definition
CbmKFTrackInterface.cxx:39
CbmKFTrack
Definition
CbmKFTrack.h:22
L1FieldRegion
Definition
L1Field.h:86
sqrt
RVec< PromoteType< T > > sqrt(const RVec< T > &v)
std
Definition
json.hpp:4446
CbmKFHit.h
CbmKFMath.h
CbmKFParticle.h
CbmKF.h
reconstruction
KF
CbmKFParticle_simd.cxx
Generated on
for BmnRoot by
1.17.0