EvtGen
2.2.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
Toggle main menu visibility
Loading...
Searching...
No Matches
src
EvtGenModels
EvtBLLNuLAmp.cpp
Go to the documentation of this file.
1
2
/***********************************************************************
3
* Copyright 1998-2020 CERN for the benefit of the EvtGen authors *
4
* *
5
* This file is part of EvtGen. *
6
* *
7
* EvtGen is free software: you can redistribute it and/or modify *
8
* it under the terms of the GNU General Public License as published by *
9
* the Free Software Foundation, either version 3 of the License, or *
10
* (at your option) any later version. *
11
* *
12
* EvtGen is distributed in the hope that it will be useful, *
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15
* GNU General Public License for more details. *
16
* *
17
* You should have received a copy of the GNU General Public License *
18
* along with EvtGen. If not, see <https://www.gnu.org/licenses/>. *
19
***********************************************************************/
20
21
#include "
EvtGenModels/EvtBLLNuLAmp.hh
"
22
23
#include "
EvtGenBase/EvtConst.hh
"
24
#include "
EvtGenBase/EvtDiracSpinor.hh
"
25
#include "
EvtGenBase/EvtIdSet.hh
"
26
#include "
EvtGenBase/EvtPDL.hh
"
27
#include "
EvtGenBase/EvtParticle.hh
"
28
#include "
EvtGenBase/EvtVector4C.hh
"
29
30
#include <cmath>
31
32
EvtBLLNuLAmp::EvtBLLNuLAmp
(
double
Vub ) :
33
m_qSqMin
( 0.0 ),
34
m_kSqMin
( 0.0 ),
35
m_symmetry
( false ),
36
m_BpId
(
EvtPDL
::getId(
"B+"
) ),
37
m_BnId
(
EvtPDL
::getId(
"B-"
) ),
38
m_coupling
( 0.0 ),
39
m_sqrt2
( sqrt( 2.0 ) ),
40
m_fBu
( 0.191 ),
// leptonic constant (GeV)
41
m_Bstar
(
EvtBLLNuLAmp
::
ResPole
( 5.32, 0.00658, 0.183 / 3.0 ) ),
42
m_Upsilon
(
EvtBLLNuLAmp
::
ResPole
( 9.64, 0.0, 0.0 ) ),
43
m_resPoles
(),
44
m_nPoles
( 0 ),
45
m_zero
(
EvtComplex
( 0.0, 0.0 ) ),
46
m_unitI
(
EvtComplex
( 0.0, 1.0 ) )
47
{
48
double
GF = 1.166371e-5;
// GeV^{-2}
49
double
alphaEM = 1.0 / 137.0;
50
51
// Normalisation constant, multiplied by 1e4 to increase probability scale
52
m_coupling
= 400.0 * GF *
EvtConst::pi
* alphaEM * Vub * 1e4 /
m_sqrt2
;
53
54
// Define VMD resonance poles using PDG 2016 values with constants from
55
// D.Melikhov, N.Nikitin and K.Toms, Phys. Atom. Nucl. 68, 1842 (2005)
56
57
// Rho and omega resonances
58
EvtBLLNuLAmp::ResPole
rho =
EvtBLLNuLAmp::ResPole
( 0.77526, 0.1491,
59
1.0 / 5.04 );
60
m_resPoles
.push_back( rho );
61
62
EvtBLLNuLAmp::ResPole
omega =
EvtBLLNuLAmp::ResPole
( 0.78265, 0.00849,
63
1.0 / 17.1 );
64
m_resPoles
.push_back( omega );
65
66
m_nPoles
=
m_resPoles
.size();
67
}
68
69
EvtBLLNuLAmp::EvtBLLNuLAmp
(
double
qSqMin,
double
kSqMin,
bool
symmetry,
70
double
Vub ) :
71
m_qSqMin
( qSqMin ),
72
m_kSqMin
( kSqMin ),
73
m_symmetry
( symmetry ),
74
m_BpId
(
EvtPDL
::getId(
"B+"
) ),
75
m_BnId
(
EvtPDL
::getId(
"B-"
) ),
76
m_coupling
( 0.0 ),
77
m_sqrt2
( sqrt( 2.0 ) ),
78
m_fBu
( 0.191 ),
// leptonic constant (GeV)
79
m_Bstar
(
EvtBLLNuLAmp
::
ResPole
( 5.32, 0.00658, 0.183 / 3.0 ) ),
80
m_Upsilon
(
EvtBLLNuLAmp
::
ResPole
( 9.64, 0.0, 0.0 ) ),
81
m_resPoles
(),
82
m_nPoles
( 0 ),
83
m_zero
(
EvtComplex
( 0.0, 0.0 ) ),
84
m_unitI
(
EvtComplex
( 0.0, 1.0 ) )
85
{
86
double
GF = 1.166371e-5;
// GeV^{-2}
87
double
alphaEM = 1.0 / 137.0;
88
89
// Normalisation constant, multiplied by 1e4 to increase probability scale
90
m_coupling
= 400.0 * GF *
EvtConst::pi
* alphaEM * Vub * 1e4 /
m_sqrt2
;
91
92
// Define VMD resonance poles using PDG 2016 values with constants from
93
// D.Melikhov, N.Nikitin and K.Toms, Phys. Atom. Nucl. 68, 1842 (2005)
94
95
// Rho and omega resonances
96
EvtBLLNuLAmp::ResPole
rho =
EvtBLLNuLAmp::ResPole
( 0.77526, 0.1491,
97
1.0 / 5.04 );
98
m_resPoles
.push_back( rho );
99
100
EvtBLLNuLAmp::ResPole
omega =
EvtBLLNuLAmp::ResPole
( 0.78265, 0.00849,
101
1.0 / 17.1 );
102
m_resPoles
.push_back( omega );
103
104
m_nPoles
=
m_resPoles
.size();
105
}
106
107
// Storing resonance pole information
108
EvtBLLNuLAmp::ResPole::ResPole
(
double
mass,
double
width,
double
coupling ) :
109
m_m0
( mass ),
110
m_m0Sq
( mass * mass ),
111
m_w0
( width ),
112
m_c
( coupling ),
113
m_I
(
EvtComplex
( 0.0, 1.0 ) ),
114
m_Imw
(
m_I
* mass * width )
115
{
116
}
117
118
EvtComplex
EvtBLLNuLAmp::ResPole::propagator
(
double
qSq,
int
numForm )
const
119
{
120
// Numerator term: mass-squared (default) or mass
121
double
num(
m_m0Sq
);
122
if
( numForm == 1 ) {
123
num =
m_m0
;
124
}
125
126
EvtComplex
result = num *
m_c
/ ( ( qSq -
m_m0Sq
) +
m_Imw
);
127
return
result;
128
}
129
130
// Amplitude calculation
131
void
EvtBLLNuLAmp::CalcAmp
(
EvtParticle
* parent,
EvtAmp
& amp )
const
132
{
133
// Check for 4 daughters and an existing parent
134
if
( !parent || parent->
getNDaug
() != 4 ) {
135
return
;
136
}
137
138
// The first two charged leptons. The 2nd one will have
139
// the same charge as the 3rd charged lepton
140
EvtParticle
* lepA = parent->
getDaug
( 0 );
141
EvtParticle
* lepB = parent->
getDaug
( 1 );
142
// The neutrino
143
EvtParticle
* neu = parent->
getDaug
( 2 );
144
// The third charged lepton
145
EvtParticle
* lepC = parent->
getDaug
( 3 );
146
147
// Kinematics
148
double
MB = parent->
mass
();
// B-meson mass, GeV
149
150
// 4-momenta of the leptons in the B rest frame. The daughters will already
151
// be in the correct order since this check is done in EvtBLLNuL::init()
152
// when initialising the model using the decay file
153
EvtVector4R
p1 = lepA->
getP4
();
154
EvtVector4R
p2 = lepB->
getP4
();
155
EvtVector4R
p3 = neu->
getP4
();
156
EvtVector4R
p4 = lepC->
getP4
();
157
158
// 4-momenta sums
159
EvtVector4R
q12 = p1 + p2;
160
EvtVector4R
k34 = p3 + p4;
161
162
// Mandelstam variables: q^2 and k^2
163
double
q12Sq = q12.
mass2
();
164
double
k34Sq = k34.
mass2
();
165
166
// Check if we are above mass thresholds
167
bool
threshold(
true
);
168
if
( q12Sq <
m_qSqMin
|| k34Sq <
m_kSqMin
) {
169
threshold =
false
;
170
}
171
172
// For the symmetric terms when we exchange the
173
// 2nd and 3rd charged leptons: p2 <-> p4
174
EvtVector4R
q14, k23;
175
double
q14Sq( 0.0 ), k23Sq( 0.0 );
176
if
(
m_symmetry
) {
177
q14 = p1 + p4;
178
k23 = p2 + p3;
179
q14Sq = q14.
mass2
();
180
k23Sq = k23.
mass2
();
181
182
if
( q14Sq <
m_qSqMin
|| k23Sq <
m_kSqMin
) {
183
threshold =
false
;
184
}
185
}
186
187
// B meson id
188
EvtId
parId = parent->
getId
();
189
// B+ or B- decays
190
int
sign( 1 );
191
if
( parId ==
m_BnId
) {
192
sign = -1;
193
}
194
195
// Hadronic tensors
196
EvtTensor4C
THadronA =
getHadronTensor
( q12, k34, q12Sq, k34Sq, MB, sign );
197
198
// When we need to include the symmetric terms
199
EvtTensor4C
THadronB;
200
if
(
m_symmetry
) {
201
THadronB =
getHadronTensor
( q14, k23, q14Sq, k23Sq, MB, sign );
202
}
203
204
// Leptonic currents: A for normal terms, B for symmetric terms
205
EvtVector4C
L1A, L2A, L1B, L2B;
206
207
int
leptonSpins[4];
// array for saving the leptonic spin configuration
208
209
// Loop over lepton spin states
210
for
(
int
i2 = 0; i2 < 2; i2++ ) {
211
leptonSpins[0] = i2;
212
213
for
(
int
i1 = 0; i1 < 2; i1++ ) {
214
leptonSpins[1] = i1;
215
216
if
( sign == -1 ) {
217
// B- currents
218
// L2^{\nu} = \bar mu(k_2) \gamma^{\nu} mu(- k_1)
219
L2A =
EvtLeptonVCurrent
( lepB->
spParent
( i2 ),
220
lepA->
spParent
( i1 ) );
221
222
if
(
m_symmetry
) {
223
// Swapping the 2nd and 3rd charged leptons
224
L1B =
EvtLeptonVACurrent
( lepB->
spParent
( i2 ),
225
neu->
spParentNeutrino
() );
226
}
227
228
}
else
{
229
// B+ currents
230
// L2^{\nu} = \bar mu(k_1) \gamma^{\nu} mu(- k_2)
231
L2A =
EvtLeptonVCurrent
( lepA->
spParent
( i1 ),
232
lepB->
spParent
( i2 ) );
233
234
if
(
m_symmetry
) {
235
// Swapping the 2nd and 3rd charged leptons
236
L1B =
EvtLeptonVACurrent
( neu->
spParentNeutrino
(),
237
lepB->
spParent
( i2 ) );
238
}
239
}
240
241
// Production: Tfi^{\mu} = THadron^{\mu \nu} L_{2 \nu}
242
EvtVector4C
THL2A = THadronA.
cont2
( L2A );
243
244
for
(
int
i4 = 0; i4 < 2; i4++ ) {
245
leptonSpins[2] = i4;
246
leptonSpins[3] = 0;
// neutrino handedness
247
248
if
( sign == -1 ) {
249
// B- currents
250
// L1^{\mu} = \bar e(k_4) \gamma^{\mu} (1 - \gamma^5) nu_e(- k_3)
251
L1A =
EvtLeptonVACurrent
( lepC->
spParent
( i4 ),
252
neu->
spParentNeutrino
() );
253
254
if
(
m_symmetry
) {
255
// Swapping the 2nd and 3rd charged leptons
256
L2B =
EvtLeptonVCurrent
( lepC->
spParent
( i4 ),
257
lepA->
spParent
( i1 ) );
258
}
259
260
}
else
{
261
// B+ currents
262
// L1^{\mu} = \bar nu_e(k_3) \gamma^{\mu} (1 - \gamma^5) e(- k_4)
263
L1A =
EvtLeptonVACurrent
( neu->
spParentNeutrino
(),
264
lepC->
spParent
( i4 ) );
265
266
if
(
m_symmetry
) {
267
// Swapping the 2nd and 3rd charged leptons
268
L2B =
EvtLeptonVCurrent
( lepA->
spParent
( i1 ),
269
lepC->
spParent
( i4 ) );
270
}
271
}
272
273
if
( threshold ==
false
) {
274
// Below kinematic thresholds
275
amp.
vertex
( leptonSpins,
m_zero
);
276
277
}
else
{
278
// Decay amplitude calculation: L_1^{\mu} Tfi_{\mu}
279
EvtComplex
decAmp = L1A * THL2A;
280
281
// If we also need to swap the 2nd and 3rd charged leptons
282
if
(
m_symmetry
) {
283
// Hadronic current production term. L2B depends on i4 so we need
284
// it here instead of inside the i2 loop as was the case for THL2A
285
EvtVector4C
THL2B = THadronB.
cont2
( L2B );
286
287
// The symmetric amplitude
288
EvtComplex
ampB = L1B * THL2B;
289
290
// Subtract this from the total amplitude
291
decAmp -= ampB;
292
}
293
294
amp.
vertex
( leptonSpins, decAmp );
295
}
296
297
}
// i4 loop
298
299
}
// i1 loop
300
301
}
// i2 loop
302
}
303
304
EvtTensor4C
EvtBLLNuLAmp::getHadronTensor
(
const
EvtVector4R
& q,
305
const
EvtVector4R
& k,
306
const
double
qSq,
const
double
kSq,
307
const
double
MB,
const
int
sign )
const
308
{
309
// Hadronic tensor calculation
310
311
EvtTensor4C
epskq =
dual
(
EvtGenFunctions::directProd
( k, q ) );
312
EvtTensor4C
qk =
EvtGenFunctions::directProd
( q, k );
313
314
EvtComplex
BstarAmp =
getBStarTerm
( qSq, kSq, MB );
315
std::vector<EvtComplex> VMDAmps =
getVMDTerms
( qSq, kSq, MB );
316
317
EvtComplex
FF_ekq = BstarAmp + VMDAmps[0];
318
EvtComplex
FF_g = VMDAmps[1] -
m_fBu
;
319
EvtComplex
FF_qk = VMDAmps[2];
320
321
// Full hadronic tensor
322
EvtTensor4C
THadron = sign * 2.0 * FF_ekq * epskq +
323
m_unitI
*
324
( 2.0 * FF_qk * qk - FF_g *
EvtTensor4C::g
() );
325
326
// Kinematic cuts
327
double
coeffcut( 0.0 );
328
if
( qSq >
m_qSqMin
&& kSq >
m_kSqMin
) {
329
coeffcut = 1.0 / qSq;
330
}
331
332
// Normalisation constant
333
THadron *= coeffcut *
m_coupling
;
334
335
return
THadron;
336
}
337
338
std::vector<EvtComplex>
EvtBLLNuLAmp::getVMDTerms
(
double
qSq,
double
kSq,
339
double
MB )
const
340
{
341
// Find the 3 VMD form factors: epsilon*k*q, g(uv) and q*k terms
342
EvtComplex
VMD1( 0.0, 0.0 ), VMD2( 0.0, 0.0 ), VMD3( 0.0, 0.0 );
343
344
// Loop over the VMD poles
345
for
(
int
iPole = 0; iPole <
m_nPoles
; iPole++ ) {
346
auto
pole =
m_resPoles
[iPole];
347
348
// Propagator term, common for all factors
349
EvtComplex
prop = pole.propagator( qSq );
350
351
double
mSum = MB + pole.getMass();
352
353
VMD1 += prop / mSum;
354
VMD2 += mSum * prop;
355
}
356
357
// Third pole summation term is the same as the first one
358
VMD3 = VMD1;
359
360
// Multiply by couplings for the given kSq
361
VMD1 *=
FF_V
( kSq );
362
VMD2 *=
FF_A1
( kSq );
363
VMD3 *=
FF_A2
( kSq );
364
365
// Return the factors as a vector
366
std::vector<EvtComplex> factors;
367
factors.push_back( VMD1 );
368
factors.push_back( VMD2 );
369
factors.push_back( VMD3 );
370
371
return
factors;
372
}
373
374
EvtComplex
EvtBLLNuLAmp::getBStarTerm
(
double
qSq,
double
kSq,
double
MB )
const
375
{
376
EvtComplex
amplitude =
m_Bstar
.propagator( kSq, 1 ) *
FF_B2Bstar
( qSq ) /
377
( MB +
m_Bstar
.getMass() );
378
return
amplitude;
379
}
380
381
double
EvtBLLNuLAmp::FF_B2Bstar
(
double
qSq )
const
382
{
383
// Electromagnetic FF for B -> B* transition, when gamma is emitted from the b quark
384
// D.Melikhov, private communication
385
double
y = qSq /
m_Upsilon
.getMassSq();
386
double
denom = ( 1.0 - y ) * ( 1.0 - 0.81 * y );
387
388
double
V( 0.0 );
389
if
( fabs( denom ) > 1e-10 ) {
390
V = 1.044 / denom;
391
}
392
393
return
V;
394
}
395
396
double
EvtBLLNuLAmp::FF_V
(
double
kSq )
const
397
{
398
// D. Melikhov and B. Stech, PRD 62, 014006 (2000) Table XV
399
double
y = kSq /
m_Bstar
.getMassSq();
400
double
denom =
m_sqrt2
* ( 1.0 - y ) * ( 1.0 - 0.59 * y );
401
402
double
V( 0.0 );
403
if
( fabs( denom ) > 1e-10 ) {
404
V = 0.31 / denom;
405
}
406
407
return
V;
408
}
409
410
double
EvtBLLNuLAmp::FF_A1
(
double
kSq )
const
411
{
412
// D. Melikhov and B. Stech, PRD 62, 014006 (2000) Table XV
413
double
y = kSq /
m_Bstar
.getMassSq();
414
double
denom = ( ( 0.1 * y - 0.73 ) * y + 1.0 ) *
m_sqrt2
;
415
416
double
A1( 0.0 );
417
if
( fabs( denom ) > 1e-10 ) {
418
A1 = 0.26 / denom;
419
}
420
421
return
A1;
422
}
423
424
double
EvtBLLNuLAmp::FF_A2
(
double
kSq )
const
425
{
426
// D. Melikhov and B. Stech, PRD 62, 014006 (2000) Table XV
427
double
y = kSq /
m_Bstar
.getMassSq();
428
double
denom = ( ( 0.5 * y - 1.4 ) * y + 1.0 ) *
m_sqrt2
;
429
430
double
A2( 0.0 );
431
if
( fabs( denom ) > 1e-10 ) {
432
A2 = 0.24 / denom;
433
}
434
435
return
A2;
436
}
EvtBLLNuLAmp.hh
EvtConst.hh
EvtLeptonVACurrent
EvtVector4C EvtLeptonVACurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
Definition
EvtDiracSpinor.cpp:178
EvtLeptonVCurrent
EvtVector4C EvtLeptonVCurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
Definition
EvtDiracSpinor.cpp:208
EvtDiracSpinor.hh
EvtIdSet.hh
EvtPDL.hh
EvtParticle.hh
dual
EvtTensor4C dual(const EvtTensor4C &t2)
Definition
EvtTensor4C.cpp:363
EvtVector4C.hh
EvtAmp
Definition
EvtAmp.hh:29
EvtAmp::vertex
void vertex(const EvtComplex &)
Definition
EvtAmp.cpp:453
EvtBLLNuLAmp::ResPole
Definition
EvtBLLNuLAmp.hh:48
EvtBLLNuLAmp::ResPole::ResPole
ResPole(double mass, double width, double coupling)
Definition
EvtBLLNuLAmp.cpp:108
EvtBLLNuLAmp::ResPole::m_m0Sq
double m_m0Sq
Definition
EvtBLLNuLAmp.hh:61
EvtBLLNuLAmp::ResPole::m_w0
double m_w0
Definition
EvtBLLNuLAmp.hh:62
EvtBLLNuLAmp::ResPole::m_c
double m_c
Definition
EvtBLLNuLAmp.hh:63
EvtBLLNuLAmp::ResPole::m_m0
double m_m0
Definition
EvtBLLNuLAmp.hh:60
EvtBLLNuLAmp::ResPole::propagator
EvtComplex propagator(double qSq, int numForm=0) const
Definition
EvtBLLNuLAmp.cpp:118
EvtBLLNuLAmp::ResPole::m_Imw
EvtComplex m_Imw
Definition
EvtBLLNuLAmp.hh:65
EvtBLLNuLAmp::ResPole::m_I
EvtComplex m_I
Definition
EvtBLLNuLAmp.hh:64
EvtBLLNuLAmp::m_BpId
EvtId m_BpId
Definition
EvtBLLNuLAmp.hh:94
EvtBLLNuLAmp::m_fBu
double m_fBu
Definition
EvtBLLNuLAmp.hh:98
EvtBLLNuLAmp::FF_V
double FF_V(double kSq) const
Definition
EvtBLLNuLAmp.cpp:396
EvtBLLNuLAmp::m_kSqMin
double m_kSqMin
Definition
EvtBLLNuLAmp.hh:88
EvtBLLNuLAmp::getVMDTerms
std::vector< EvtComplex > getVMDTerms(double qSq, double kSq, double MB) const
Definition
EvtBLLNuLAmp.cpp:338
EvtBLLNuLAmp::m_Bstar
EvtBLLNuLAmp::ResPole m_Bstar
Definition
EvtBLLNuLAmp.hh:101
EvtBLLNuLAmp::m_zero
EvtComplex m_zero
Definition
EvtBLLNuLAmp.hh:107
EvtBLLNuLAmp::m_coupling
double m_coupling
Definition
EvtBLLNuLAmp.hh:97
EvtBLLNuLAmp::m_BnId
EvtId m_BnId
Definition
EvtBLLNuLAmp.hh:94
EvtBLLNuLAmp::m_qSqMin
double m_qSqMin
Definition
EvtBLLNuLAmp.hh:87
EvtBLLNuLAmp::m_sqrt2
double m_sqrt2
Definition
EvtBLLNuLAmp.hh:97
EvtBLLNuLAmp::m_Upsilon
EvtBLLNuLAmp::ResPole m_Upsilon
Definition
EvtBLLNuLAmp.hh:101
EvtBLLNuLAmp::m_symmetry
bool m_symmetry
Definition
EvtBLLNuLAmp.hh:91
EvtBLLNuLAmp::getHadronTensor
EvtTensor4C getHadronTensor(const EvtVector4R &q, const EvtVector4R &k, const double qSq, const double kSq, const double MB, const int sign) const
Definition
EvtBLLNuLAmp.cpp:304
EvtBLLNuLAmp::FF_A1
double FF_A1(double kSq) const
Definition
EvtBLLNuLAmp.cpp:410
EvtBLLNuLAmp::FF_A2
double FF_A2(double kSq) const
Definition
EvtBLLNuLAmp.cpp:424
EvtBLLNuLAmp::m_resPoles
std::vector< EvtBLLNuLAmp::ResPole > m_resPoles
Definition
EvtBLLNuLAmp.hh:103
EvtBLLNuLAmp::CalcAmp
void CalcAmp(EvtParticle *parent, EvtAmp &) const
Definition
EvtBLLNuLAmp.cpp:131
EvtBLLNuLAmp::EvtBLLNuLAmp
EvtBLLNuLAmp(double Vub=4.09e-3)
Definition
EvtBLLNuLAmp.cpp:32
EvtBLLNuLAmp::FF_B2Bstar
double FF_B2Bstar(double qSq) const
Definition
EvtBLLNuLAmp.cpp:381
EvtBLLNuLAmp::m_unitI
EvtComplex m_unitI
Definition
EvtBLLNuLAmp.hh:107
EvtBLLNuLAmp::getBStarTerm
EvtComplex getBStarTerm(double qSq, double kSq, double MB) const
Definition
EvtBLLNuLAmp.cpp:374
EvtBLLNuLAmp::m_nPoles
int m_nPoles
Definition
EvtBLLNuLAmp.hh:104
EvtComplex
Definition
EvtComplex.hh:29
EvtConst::pi
static const double pi
Definition
EvtConst.hh:26
EvtId
Definition
EvtId.hh:27
EvtPDL
Definition
EvtPDL.hh:35
EvtParticle
Definition
EvtParticle.hh:45
EvtParticle::getId
EvtId getId() const
Definition
EvtParticle.cpp:124
EvtParticle::spParentNeutrino
virtual EvtDiracSpinor spParentNeutrino() const
Definition
EvtParticle.cpp:684
EvtParticle::spParent
virtual EvtDiracSpinor spParent(int) const
Definition
EvtParticle.cpp:660
EvtParticle::getP4
const EvtVector4R & getP4() const
Definition
EvtParticle.cpp:144
EvtParticle::getDaug
EvtParticle * getDaug(const int i)
Definition
EvtParticle.hh:173
EvtParticle::mass
double mass() const
Definition
EvtParticle.cpp:159
EvtParticle::getNDaug
size_t getNDaug() const
Definition
EvtParticle.cpp:154
EvtTensor4C
Definition
EvtTensor4C.hh:38
EvtTensor4C::g
static const EvtTensor4C & g()
Definition
EvtTensor4C.cpp:43
EvtTensor4C::cont2
EvtVector4C cont2(const EvtVector4C &v4) const
Definition
EvtTensor4C.cpp:460
EvtVector4C
Definition
EvtVector4C.hh:30
EvtVector4R
Definition
EvtVector4R.hh:29
EvtVector4R::mass2
double mass2() const
Definition
EvtVector4R.hh:100
EvtGenFunctions::directProd
EvtTensor3C directProd(const EvtVector3C &c1, const EvtVector3C &c2)
Definition
EvtTensor3C.cpp:153
Generated by
1.17.0