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
EvtGenModels
EvtD0mixDalitz.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 __EVTD0MIXDALITZ_HH__
22
#define __EVTD0MIXDALITZ_HH__
23
24
#include "
EvtGenBase/EvtComplex.hh
"
25
#include "
EvtGenBase/EvtCyclic3.hh
"
26
#include "
EvtGenBase/EvtDalitzPoint.hh
"
27
#include "
EvtGenBase/EvtDalitzReso.hh
"
28
#include "
EvtGenBase/EvtDecayAmp.hh
"
29
#include "
EvtGenBase/EvtId.hh
"
30
#include "
EvtGenBase/EvtPDL.hh
"
31
#include "
EvtGenBase/EvtSpinType.hh
"
32
33
// Description:
34
// The D0mixDalitz model, with many resonances and mixing implemented.
35
36
class
EvtD0mixDalitz
:
public
EvtDecayAmp
{
37
private
:
38
int
m_d1
;
39
int
m_d2
;
40
int
m_d3
;
41
42
// Mixing parameters.
43
double
m_x
;
44
double
m_y
;
45
46
// q/p CP violation in the mixing.
47
EvtComplex
m_qp
;
48
49
// Checker of the decay mode.
50
bool
m_isKsPiPi
;
51
bool
m_isRBWmodel
;
52
53
// Useful constants.
54
static
const
EvtSpinType::spintype
&
m_SCALAR
;
55
static
const
EvtSpinType::spintype
&
m_VECTOR
;
56
static
const
EvtSpinType::spintype
&
m_TENSOR
;
57
58
static
const
EvtDalitzReso::CouplingType
&
m_EtaPic
;
59
static
const
EvtDalitzReso::CouplingType
&
m_PicPicKK
;
60
61
static
const
EvtDalitzReso::NumType
&
m_RBW
;
62
static
const
EvtDalitzReso::NumType
&
m_GS
;
63
static
const
EvtDalitzReso::NumType
&
m_KMAT
;
64
65
static
const
EvtCyclic3::Pair
&
m_AB
;
66
static
const
EvtCyclic3::Pair
&
m_AC
;
67
static
const
EvtCyclic3::Pair
&
m_BC
;
68
69
// Values to be read or computed based on values in the evt.pdl file.
70
// IDs of the relevant particles.
71
EvtId
m_D0
;
72
EvtId
m_D0B
;
73
EvtId
m_KM
;
74
EvtId
m_KP
;
75
EvtId
m_K0
;
76
EvtId
m_K0B
;
77
EvtId
m_KL
;
78
EvtId
m_KS
;
79
EvtId
m_PIM
;
80
EvtId
m_PIP
;
81
82
// Masses of the relevant particles.
83
double
m_mD0
;
84
double
m_mKs
;
85
double
m_mPi
;
86
double
m_mK
;
87
88
// Life time and decay rate.
89
double
m_ctau
;
90
double
m_gamma
;
91
92
// Some useful integrals over the Dalitz plot.
93
EvtComplex
m_iChi
;
94
EvtComplex
m_iChi2
;
95
96
void
readPDGValues
();
97
EvtComplex
dalitzKsPiPi
(
const
EvtDalitzPoint
& point );
98
EvtComplex
dalitzKsKK
(
const
EvtDalitzPoint
& point );
99
100
// Time evolution functions for hamiltonian eigenstates.
101
// Negative exponential part removed.
102
EvtComplex
h1
(
const
double
& ct )
const
;
103
EvtComplex
h2
(
const
double
& ct )
const
;
104
105
void
reportInvalidAndExit
()
const
106
{
107
EvtGenReport
(
EVTGEN_ERROR
,
"EvtD0mixDalitz"
)
108
<<
"EvtD0mixDalitz: Invalid mode."
<< std::endl;
109
exit( 1 );
110
}
111
112
public
:
113
EvtD0mixDalitz
() :
114
m_d1
( 0 ),
115
m_d2
( 0 ),
116
m_d3
( 0 ),
117
m_x
( 0. ),
118
m_y
( 0. ),
119
m_qp
( 1. ),
120
m_isKsPiPi
( false ),
121
m_isRBWmodel
( true )
122
{
123
}
124
125
// One-line inline functions.
126
std::string
getName
()
const override
{
return
"D0MIXDALITZ"
; }
127
EvtDecayBase
*
clone
()
const override
{
return
new
EvtD0mixDalitz
; }
128
void
initProbMax
()
override
{
setProbMax
( 5200. ); }
129
130
void
init
()
override
;
131
void
decay
(
EvtParticle
* p )
override
;
132
};
133
134
#endif
EvtComplex.hh
EvtCyclic3.hh
EvtDalitzPoint.hh
EvtDalitzReso.hh
EvtDecayAmp.hh
EvtId.hh
EvtPDL.hh
EvtGenReport
std::ostream & EvtGenReport(EvtGenSeverity severity, const char *facility=nullptr)
Definition
EvtReport.cpp:32
EVTGEN_ERROR
@ EVTGEN_ERROR
Definition
EvtReport.hh:49
EvtSpinType.hh
EvtComplex
Definition
EvtComplex.hh:29
EvtD0mixDalitz::m_mK
double m_mK
Definition
EvtD0mixDalitz.hh:86
EvtD0mixDalitz::m_d3
int m_d3
Definition
EvtD0mixDalitz.hh:40
EvtD0mixDalitz::m_D0B
EvtId m_D0B
Definition
EvtD0mixDalitz.hh:72
EvtD0mixDalitz::m_mPi
double m_mPi
Definition
EvtD0mixDalitz.hh:85
EvtD0mixDalitz::decay
void decay(EvtParticle *p) override
Definition
EvtD0mixDalitz.cpp:133
EvtD0mixDalitz::m_KL
EvtId m_KL
Definition
EvtD0mixDalitz.hh:77
EvtD0mixDalitz::m_mKs
double m_mKs
Definition
EvtD0mixDalitz.hh:84
EvtD0mixDalitz::m_K0
EvtId m_K0
Definition
EvtD0mixDalitz.hh:75
EvtD0mixDalitz::EvtD0mixDalitz
EvtD0mixDalitz()
Definition
EvtD0mixDalitz.hh:113
EvtD0mixDalitz::m_d1
int m_d1
Definition
EvtD0mixDalitz.hh:38
EvtD0mixDalitz::m_AB
static const EvtCyclic3::Pair & m_AB
Definition
EvtD0mixDalitz.hh:65
EvtD0mixDalitz::m_gamma
double m_gamma
Definition
EvtD0mixDalitz.hh:90
EvtD0mixDalitz::m_KS
EvtId m_KS
Definition
EvtD0mixDalitz.hh:78
EvtD0mixDalitz::getName
std::string getName() const override
Definition
EvtD0mixDalitz.hh:126
EvtD0mixDalitz::m_KM
EvtId m_KM
Definition
EvtD0mixDalitz.hh:73
EvtD0mixDalitz::h1
EvtComplex h1(const double &ct) const
Definition
EvtD0mixDalitz.cpp:377
EvtD0mixDalitz::init
void init() override
Definition
EvtD0mixDalitz.cpp:50
EvtD0mixDalitz::m_y
double m_y
Definition
EvtD0mixDalitz.hh:44
EvtD0mixDalitz::m_KP
EvtId m_KP
Definition
EvtD0mixDalitz.hh:74
EvtD0mixDalitz::m_PicPicKK
static const EvtDalitzReso::CouplingType & m_PicPicKK
Definition
EvtD0mixDalitz.hh:59
EvtD0mixDalitz::m_x
double m_x
Definition
EvtD0mixDalitz.hh:43
EvtD0mixDalitz::m_EtaPic
static const EvtDalitzReso::CouplingType & m_EtaPic
Definition
EvtD0mixDalitz.hh:58
EvtD0mixDalitz::m_GS
static const EvtDalitzReso::NumType & m_GS
Definition
EvtD0mixDalitz.hh:62
EvtD0mixDalitz::m_VECTOR
static const EvtSpinType::spintype & m_VECTOR
Definition
EvtD0mixDalitz.hh:55
EvtD0mixDalitz::m_iChi
EvtComplex m_iChi
Definition
EvtD0mixDalitz.hh:93
EvtD0mixDalitz::m_SCALAR
static const EvtSpinType::spintype & m_SCALAR
Definition
EvtD0mixDalitz.hh:54
EvtD0mixDalitz::m_K0B
EvtId m_K0B
Definition
EvtD0mixDalitz.hh:76
EvtD0mixDalitz::initProbMax
void initProbMax() override
Definition
EvtD0mixDalitz.hh:128
EvtD0mixDalitz::m_PIP
EvtId m_PIP
Definition
EvtD0mixDalitz.hh:80
EvtD0mixDalitz::m_isRBWmodel
bool m_isRBWmodel
Definition
EvtD0mixDalitz.hh:51
EvtD0mixDalitz::m_qp
EvtComplex m_qp
Definition
EvtD0mixDalitz.hh:47
EvtD0mixDalitz::m_iChi2
EvtComplex m_iChi2
Definition
EvtD0mixDalitz.hh:94
EvtD0mixDalitz::m_ctau
double m_ctau
Definition
EvtD0mixDalitz.hh:89
EvtD0mixDalitz::h2
EvtComplex h2(const double &ct) const
Definition
EvtD0mixDalitz.cpp:382
EvtD0mixDalitz::dalitzKsPiPi
EvtComplex dalitzKsPiPi(const EvtDalitzPoint &point)
Definition
EvtD0mixDalitz.cpp:209
EvtD0mixDalitz::m_AC
static const EvtCyclic3::Pair & m_AC
Definition
EvtD0mixDalitz.hh:66
EvtD0mixDalitz::m_RBW
static const EvtDalitzReso::NumType & m_RBW
Definition
EvtD0mixDalitz.hh:61
EvtD0mixDalitz::m_TENSOR
static const EvtSpinType::spintype & m_TENSOR
Definition
EvtD0mixDalitz.hh:56
EvtD0mixDalitz::m_isKsPiPi
bool m_isKsPiPi
Definition
EvtD0mixDalitz.hh:50
EvtD0mixDalitz::m_PIM
EvtId m_PIM
Definition
EvtD0mixDalitz.hh:79
EvtD0mixDalitz::reportInvalidAndExit
void reportInvalidAndExit() const
Definition
EvtD0mixDalitz.hh:105
EvtD0mixDalitz::m_D0
EvtId m_D0
Definition
EvtD0mixDalitz.hh:71
EvtD0mixDalitz::clone
EvtDecayBase * clone() const override
Definition
EvtD0mixDalitz.hh:127
EvtD0mixDalitz::m_BC
static const EvtCyclic3::Pair & m_BC
Definition
EvtD0mixDalitz.hh:67
EvtD0mixDalitz::m_mD0
double m_mD0
Definition
EvtD0mixDalitz.hh:83
EvtD0mixDalitz::m_KMAT
static const EvtDalitzReso::NumType & m_KMAT
Definition
EvtD0mixDalitz.hh:63
EvtD0mixDalitz::m_d2
int m_d2
Definition
EvtD0mixDalitz.hh:39
EvtD0mixDalitz::dalitzKsKK
EvtComplex dalitzKsKK(const EvtDalitzPoint &point)
Definition
EvtD0mixDalitz.cpp:331
EvtD0mixDalitz::readPDGValues
void readPDGValues()
Definition
EvtD0mixDalitz.cpp:183
EvtDalitzPoint
Definition
EvtDalitzPoint.hh:38
EvtDalitzReso::CouplingType
CouplingType
Definition
EvtDalitzReso.hh:76
EvtDalitzReso::NumType
NumType
Definition
EvtDalitzReso.hh:46
EvtDecayAmp
Definition
EvtDecayAmp.hh:29
EvtDecayBase::EvtDecayBase
EvtDecayBase()=default
EvtDecayBase::setProbMax
void setProbMax(double prbmx)
Definition
EvtDecayBase.cpp:295
EvtId
Definition
EvtId.hh:27
EvtParticle
Definition
EvtParticle.hh:45
EvtSpinType::spintype
spintype
Definition
EvtSpinType.hh:29
EvtCyclic3::Pair
Pair
Definition
EvtCyclic3.hh:37
Generated by
1.17.0