EvtGen
2.2.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
Loading...
Searching...
No Matches
src
EvtGenBase
EvtPropFlatte.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 "
EvtGenBase/EvtPropFlatte.hh
"
22
23
#include <iostream>
24
#include <math.h>
25
using
std::cout;
26
using
std::endl;
27
28
EvtPropFlatte::EvtPropFlatte
(
double
m0
,
double
g0
,
double
m0a,
double
m0b,
29
double
g1,
double
m1a,
double
m1b ) :
30
EvtPropagator
(
m0
,
g0
),
31
m_m0a
( m0a ),
32
m_m0b
( m0b ),
33
m_g1
( g1 ),
34
m_m1a
( m1a ),
35
m_m1b
( m1b )
36
{
37
}
38
39
EvtAmplitude<EvtPoint1D>
*
EvtPropFlatte::clone
()
const
40
{
41
return
new
EvtPropFlatte
( *
this
);
42
}
43
44
EvtComplex
EvtPropFlatte::amplitude
(
const
EvtPoint1D
& x )
const
45
{
46
/*
47
48
Use BES parameterization:
49
50
1.
51
-----------------------------------------
52
m0^2 - m^2 - i*m0*( g1*rho1 + g2*rho2 )
53
54
55
Resonance mass: m0
56
Channel1: m0a, m0b, g0
57
Channel2: m1a, m1b, g1
58
59
where breakup momenta q's are:
60
61
E0a = (m^2 + m0a^2 - m0b^2) / 2m
62
q0 = sqrt( E0a^2 - m0a^2 )
63
64
E1a = (m^2 + m1a^2 - m1b^2) / 2m
65
q1 = sqrt( E1a^2 - m1a^2 )
66
67
68
*/
69
70
double
s = x.
value
() * x.
value
();
71
double
m = x.
value
();
72
73
double
E0a = 0.5 * ( s +
m_m0a
*
m_m0a
-
m_m0b
*
m_m0b
) / m;
74
double
qSq0 = E0a * E0a -
m_m0a
*
m_m0a
;
75
76
double
E1a = 0.5 * ( s +
m_m1a
*
m_m1a
-
m_m1b
*
m_m1b
) / m;
77
double
qSq1 = E1a * E1a -
m_m1a
*
m_m1a
;
78
79
EvtComplex
gamma0 = qSq0 >= 0 ?
EvtComplex
(
m_g0
* sqrt( qSq0 ), 0 )
80
:
EvtComplex
( 0,
m_g0
* sqrt( -qSq0 ) );
81
EvtComplex
gamma1 = qSq1 >= 0 ?
EvtComplex
(
m_g1
* sqrt( qSq1 ), 0 )
82
:
EvtComplex
( 0,
m_g1
* sqrt( -qSq1 ) );
83
84
EvtComplex
gamma = gamma0 + gamma1;
85
86
EvtComplex
a = 1.0 /
87
(
m_m0
*
m_m0
- s -
EvtComplex
( 0.0, 2 *
m_m0
/ m ) * gamma );
88
89
return
a;
90
}
EvtPropFlatte.hh
EvtAmplitude< EvtPoint1D >::EvtAmplitude
EvtAmplitude()=default
EvtComplex
Definition
EvtComplex.hh:29
EvtPoint1D
Definition
EvtPoint1D.hh:27
EvtPoint1D::value
double value() const
Definition
EvtPoint1D.hh:35
EvtPropFlatte::m_m1b
double m_m1b
Definition
EvtPropFlatte.hh:44
EvtPropFlatte::clone
EvtAmplitude< EvtPoint1D > * clone() const override
Definition
EvtPropFlatte.cpp:39
EvtPropFlatte::m_g1
double m_g1
Definition
EvtPropFlatte.hh:42
EvtPropFlatte::m_m0a
double m_m0a
Definition
EvtPropFlatte.hh:39
EvtPropFlatte::EvtPropFlatte
EvtPropFlatte(double m0, double g0, double m0a, double m0b, double g1, double m1a, double m1b)
Definition
EvtPropFlatte.cpp:28
EvtPropFlatte::m_m1a
double m_m1a
Definition
EvtPropFlatte.hh:43
EvtPropFlatte::amplitude
EvtComplex amplitude(const EvtPoint1D &x) const override
Definition
EvtPropFlatte.cpp:44
EvtPropFlatte::m_m0b
double m_m0b
Definition
EvtPropFlatte.hh:40
EvtPropagator::g0
double g0() const
Definition
EvtPropagator.hh:43
EvtPropagator::m0
double m0() const
Definition
EvtPropagator.hh:42
EvtPropagator::m_g0
double m_g0
Definition
EvtPropagator.hh:60
EvtPropagator::EvtPropagator
EvtPropagator(double m0, double g0)
Definition
EvtPropagator.hh:34
EvtPropagator::m_m0
double m_m0
Definition
EvtPropagator.hh:59
Generated by
1.16.1