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
EvtTwoBodyVertex.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_TWO_BODY_VERTEX_HH
22
#define EVT_TWO_BODY_VERTEX_HH
23
24
#include "
EvtGenBase/EvtBlattWeisskopf.hh
"
25
#include "
EvtGenBase/EvtTwoBodyKine.hh
"
26
27
#include <iostream>
28
#include <memory>
29
30
// Two-body propagator vertex AB->A,B with an attached Blatt-Weisskopf form factor.
31
32
class
EvtTwoBodyVertex
{
33
public
:
34
EvtTwoBodyVertex
();
35
EvtTwoBodyVertex
(
double
mA
,
double
mB
,
double
mAB
,
int
L
);
36
EvtTwoBodyVertex
(
const
EvtTwoBodyVertex
& other );
37
EvtTwoBodyVertex
&
operator=
(
const
EvtTwoBodyVertex
& other );
38
39
double
widthFactor
(
EvtTwoBodyKine
x )
const
;
40
double
formFactor
(
EvtTwoBodyKine
x )
const
;
41
double
phaseSpaceFactor
(
EvtTwoBodyKine
x,
EvtTwoBodyKine::Index
)
const
;
42
43
inline
int
L
()
const
{
return
m_LL
; }
44
inline
double
mA
()
const
{
return
m_kine
.mA(); }
45
inline
double
mB
()
const
{
return
m_kine
.mB(); }
46
inline
double
mAB
()
const
{
return
m_kine
.mAB(); }
47
inline
double
pD
()
const
{
return
m_p0
; }
48
void
print
( std::ostream& os )
const
;
49
50
void
set_f
(
double
R );
51
52
private
:
53
EvtTwoBodyKine
m_kine
;
54
int
m_LL
;
55
double
m_p0
;
56
std::unique_ptr<EvtBlattWeisskopf>
m_f
;
// optional Blatt-Weisskopf form factor
57
};
58
59
std::ostream&
operator<<
( std::ostream& os,
const
EvtTwoBodyVertex
& v );
60
61
#endif
EvtBlattWeisskopf.hh
EvtTwoBodyKine.hh
operator<<
std::ostream & operator<<(std::ostream &os, const EvtTwoBodyVertex &v)
EvtTwoBodyKine
Definition
EvtTwoBodyKine.hh:28
EvtTwoBodyKine::Index
Index
Definition
EvtTwoBodyKine.hh:31
EvtTwoBodyVertex
Definition
EvtTwoBodyVertex.hh:32
EvtTwoBodyVertex::m_kine
EvtTwoBodyKine m_kine
Definition
EvtTwoBodyVertex.hh:53
EvtTwoBodyVertex::EvtTwoBodyVertex
EvtTwoBodyVertex()
Definition
EvtTwoBodyVertex.cpp:34
EvtTwoBodyVertex::mAB
double mAB() const
Definition
EvtTwoBodyVertex.hh:46
EvtTwoBodyVertex::operator=
EvtTwoBodyVertex & operator=(const EvtTwoBodyVertex &other)
Definition
EvtTwoBodyVertex.cpp:57
EvtTwoBodyVertex::m_p0
double m_p0
Definition
EvtTwoBodyVertex.hh:55
EvtTwoBodyVertex::formFactor
double formFactor(EvtTwoBodyKine x) const
Definition
EvtTwoBodyVertex.cpp:90
EvtTwoBodyVertex::L
int L() const
Definition
EvtTwoBodyVertex.hh:43
EvtTwoBodyVertex::print
void print(std::ostream &os) const
Definition
EvtTwoBodyVertex.cpp:102
EvtTwoBodyVertex::set_f
void set_f(double R)
Definition
EvtTwoBodyVertex.cpp:66
EvtTwoBodyVertex::pD
double pD() const
Definition
EvtTwoBodyVertex.hh:47
EvtTwoBodyVertex::widthFactor
double widthFactor(EvtTwoBodyKine x) const
Definition
EvtTwoBodyVertex.cpp:71
EvtTwoBodyVertex::mA
double mA() const
Definition
EvtTwoBodyVertex.hh:44
EvtTwoBodyVertex::m_LL
int m_LL
Definition
EvtTwoBodyVertex.hh:54
EvtTwoBodyVertex::mB
double mB() const
Definition
EvtTwoBodyVertex.hh:45
EvtTwoBodyVertex::m_f
std::unique_ptr< EvtBlattWeisskopf > m_f
Definition
EvtTwoBodyVertex.hh:56
EvtTwoBodyVertex::phaseSpaceFactor
double phaseSpaceFactor(EvtTwoBodyKine x, EvtTwoBodyKine::Index) const
Definition
EvtTwoBodyVertex.cpp:82
Generated by
1.17.0