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
EvtGenBase
EvtDalitzPoint.hh
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
#ifndef EVT_DALITZ_POINT_HH
22
#define EVT_DALITZ_POINT_HH
23
24
#include "
EvtGenBase/EvtCyclic3.hh
"
25
#include "
EvtGenBase/EvtDalitzCoord.hh
"
26
#include "
EvtGenBase/EvtDalitzPlot.hh
"
27
28
// This class describes the complete kinematics of the Dalitz decay.
29
// It holds all the six invariant momentum products, three daughter
30
// particle masses and three invariant masses of pairs of particles.
31
// This description is completely symmetric with respect to particle
32
// permutations.
33
//
34
// Another way to slice the six coordinate is to make a transformation
35
// to the mass of the decaying particle. The four masses make up a
36
// Dalitz plot. The other two are coordinates of a point in the plot.
37
38
class
EvtDalitzPoint
final {
39
public
:
40
EvtDalitzPoint
();
41
EvtDalitzPoint
(
double
mA,
double
mB,
double
mC,
double
qAB,
double
qBC,
42
double
qCA );
43
EvtDalitzPoint
(
double
mA,
double
mB,
double
mC,
EvtCyclic3::Pair
i,
44
double
qres
,
double
qhel
,
double
qsum
);
45
EvtDalitzPoint
(
const
EvtDalitzPlot
&,
const
EvtDalitzCoord
& );
46
47
EvtDalitzCoord
getDalitzPoint
(
EvtCyclic3::Pair
i,
EvtCyclic3::Pair
j )
const
;
48
EvtDalitzPlot
getDalitzPlot
()
const
;
49
50
double
q
(
EvtCyclic3::Pair
)
const
;
51
double
bigM
()
const
;
52
double
m
(
EvtCyclic3::Index
)
const
;
53
54
// Zemach variables
55
56
double
qres
(
EvtCyclic3::Pair
i )
const
;
57
double
qhel
(
EvtCyclic3::Pair
i )
const
;
58
double
qsum
()
const
;
59
60
// Kinematic quantities
61
//
62
// pp - 4 momentum product
63
// e,p,cosTh - energy/moementum in rest-frame of j
64
65
double
qMin
(
EvtCyclic3::Pair
i,
EvtCyclic3::Pair
j )
const
;
66
double
qMax
(
EvtCyclic3::Pair
i,
EvtCyclic3::Pair
j )
const
;
67
double
pp
(
EvtCyclic3::Index
i,
EvtCyclic3::Index
j )
const
;
68
double
e
(
EvtCyclic3::Index
i,
EvtCyclic3::Pair
j )
const
;
69
double
p
(
EvtCyclic3::Index
i,
EvtCyclic3::Pair
j )
const
;
70
double
cosTh
(
EvtCyclic3::Pair
pairAng,
EvtCyclic3::Pair
pairRes )
const
;
71
72
bool
isValid
()
const
;
73
74
void
print
()
const
;
75
76
private
:
77
double
m_mA
,
m_mB
,
m_mC
;
// masses
78
double
m_qAB
,
m_qBC
,
m_qCA
;
// masses squared
79
};
80
81
#endif
EvtCyclic3.hh
EvtDalitzCoord.hh
EvtDalitzPlot.hh
EvtDalitzCoord
Definition
EvtDalitzCoord.hh:30
EvtDalitzPlot
Definition
EvtDalitzPlot.hh:30
EvtDalitzPoint::m_mB
double m_mB
Definition
EvtDalitzPoint.hh:77
EvtDalitzPoint::EvtDalitzPoint
EvtDalitzPoint()
Definition
EvtDalitzPoint.cpp:28
EvtDalitzPoint::p
double p(EvtCyclic3::Index i, EvtCyclic3::Pair j) const
Definition
EvtDalitzPoint.cpp:158
EvtDalitzPoint::bigM
double bigM() const
Definition
EvtDalitzPoint.cpp:204
EvtDalitzPoint::e
double e(EvtCyclic3::Index i, EvtCyclic3::Pair j) const
Definition
EvtDalitzPoint.cpp:152
EvtDalitzPoint::m_qBC
double m_qBC
Definition
EvtDalitzPoint.hh:78
EvtDalitzPoint::m
double m(EvtCyclic3::Index) const
Definition
EvtDalitzPoint.cpp:102
EvtDalitzPoint::print
void print() const
Definition
EvtDalitzPoint.cpp:209
EvtDalitzPoint::q
double q(EvtCyclic3::Pair) const
Definition
EvtDalitzPoint.cpp:91
EvtDalitzPoint::qMin
double qMin(EvtCyclic3::Pair i, EvtCyclic3::Pair j) const
Definition
EvtDalitzPoint.cpp:132
EvtDalitzPoint::isValid
bool isValid() const
Definition
EvtDalitzPoint.cpp:182
EvtDalitzPoint::qsum
double qsum() const
Definition
EvtDalitzPoint.cpp:127
EvtDalitzPoint::getDalitzPoint
EvtDalitzCoord getDalitzPoint(EvtCyclic3::Pair i, EvtCyclic3::Pair j) const
Definition
EvtDalitzPoint.cpp:171
EvtDalitzPoint::qMax
double qMax(EvtCyclic3::Pair i, EvtCyclic3::Pair j) const
Definition
EvtDalitzPoint.cpp:138
EvtDalitzPoint::m_mC
double m_mC
Definition
EvtDalitzPoint.hh:77
EvtDalitzPoint::m_mA
double m_mA
Definition
EvtDalitzPoint.hh:77
EvtDalitzPoint::pp
double pp(EvtCyclic3::Index i, EvtCyclic3::Index j) const
Definition
EvtDalitzPoint.cpp:144
EvtDalitzPoint::cosTh
double cosTh(EvtCyclic3::Pair pairAng, EvtCyclic3::Pair pairRes) const
Definition
EvtDalitzPoint.cpp:164
EvtDalitzPoint::getDalitzPlot
EvtDalitzPlot getDalitzPlot() const
Definition
EvtDalitzPoint.cpp:177
EvtDalitzPoint::qhel
double qhel(EvtCyclic3::Pair i) const
Definition
EvtDalitzPoint.cpp:121
EvtDalitzPoint::qres
double qres(EvtCyclic3::Pair i) const
Definition
EvtDalitzPoint.cpp:115
EvtDalitzPoint::m_qAB
double m_qAB
Definition
EvtDalitzPoint.hh:78
EvtDalitzPoint::m_qCA
double m_qCA
Definition
EvtDalitzPoint.hh:78
EvtCyclic3::Pair
Pair
Definition
EvtCyclic3.hh:37
EvtCyclic3::Index
Index
Definition
EvtCyclic3.hh:31
Generated by
1.17.0