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
EvtDalitzTable.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 EVTDALITZTABLE_HPP
22
#define EVTDALITZTABLE_HPP
23
24
#include "
EvtGenBase/EvtCyclic3.hh
"
25
#include "
EvtGenBase/EvtDalitzPlot.hh
"
26
#include "
EvtGenBase/EvtDalitzReso.hh
"
27
#include "
EvtGenBase/EvtId.hh
"
28
#include "
EvtGenBase/EvtSpinType.hh
"
29
30
#include "
EvtGenModels/EvtDalitzDecayInfo.hh
"
31
32
#include <map>
33
#include <string>
34
#include <vector>
35
36
// Description: Model to describe a generic dalitz decay
37
38
class
EvtDalitzTable
{
39
public
:
40
static
const
EvtDalitzTable
&
getInstance
(
const
std::string dec_name =
""
,
41
bool
verbose =
true
);
42
43
std::vector<EvtDalitzDecayInfo>
getDalitzTable
(
const
EvtId
& parent )
const
;
44
45
protected
:
46
EvtDalitzTable
();
47
~EvtDalitzTable
();
48
49
private
:
50
bool
fileHasBeenRead
(
const
std::string dec_name )
const
;
51
void
readXMLDecayFile
(
const
std::string dec_name,
bool
verbose =
true
);
52
void
checkParticle
( std::string particle )
const
;
53
54
void
addDecay
(
EvtId
parent,
const
EvtDalitzDecayInfo
& dec );
55
void
copyDecay
(
EvtId
parent,
EvtId
* daughters,
EvtId
copy,
EvtId
* copyd );
56
57
EvtDalitzReso
getResonance
( std::string shape,
EvtDalitzPlot
dp,
58
EvtCyclic3::Pair
angPair,
59
EvtCyclic3::Pair
resPair,
60
EvtSpinType::spintype
spinType,
double
mass,
61
double
width,
double
FFp,
double
FFr,
62
double
alpha,
double
aLass,
double
rLass,
63
double
BLass,
double
phiBLass,
double
RLass,
64
double
phiRLass,
double
cutoffLass );
65
int
getDaughterPairs
(
66
EvtId
* resDaughter,
EvtId
* daughter,
67
std::vector<std::pair<EvtCyclic3::Pair, EvtCyclic3::Pair>>& angAndResPairs );
68
69
std::map<EvtId, std::vector<EvtDalitzDecayInfo>>
m_dalitztable
;
70
std::vector<std::string>
m_readFiles
;
71
72
EvtDalitzTable
(
const
EvtDalitzTable
& );
73
EvtDalitzTable
&
operator=
(
const
EvtDalitzTable
& );
74
75
//to calculate probMax
76
double
calcProbMax
(
EvtDalitzPlot
dp,
EvtDalitzDecayInfo
* model );
77
double
calcProb
(
EvtDalitzPoint
point,
EvtDalitzDecayInfo
* model );
78
};
79
80
#endif
EvtCyclic3.hh
EvtDalitzDecayInfo.hh
EvtDalitzPlot.hh
EvtDalitzReso.hh
EvtId.hh
EvtSpinType.hh
EvtDalitzDecayInfo
Definition
EvtDalitzDecayInfo.hh:32
EvtDalitzPlot
Definition
EvtDalitzPlot.hh:30
EvtDalitzPoint
Definition
EvtDalitzPoint.hh:38
EvtDalitzReso
Definition
EvtDalitzReso.hh:42
EvtDalitzTable::m_dalitztable
std::map< EvtId, std::vector< EvtDalitzDecayInfo > > m_dalitztable
Definition
EvtDalitzTable.hh:69
EvtDalitzTable::~EvtDalitzTable
~EvtDalitzTable()
Definition
EvtDalitzTable.cpp:43
EvtDalitzTable::calcProbMax
double calcProbMax(EvtDalitzPlot dp, EvtDalitzDecayInfo *model)
Definition
EvtDalitzTable.cpp:588
EvtDalitzTable::EvtDalitzTable
EvtDalitzTable()
Definition
EvtDalitzTable.cpp:37
EvtDalitzTable::getDalitzTable
std::vector< EvtDalitzDecayInfo > getDalitzTable(const EvtId &parent) const
Definition
EvtDalitzTable.cpp:486
EvtDalitzTable::addDecay
void addDecay(EvtId parent, const EvtDalitzDecayInfo &dec)
Definition
EvtDalitzTable.cpp:439
EvtDalitzTable::copyDecay
void copyDecay(EvtId parent, EvtId *daughters, EvtId copy, EvtId *copyd)
Definition
EvtDalitzTable.cpp:448
EvtDalitzTable::calcProb
double calcProb(EvtDalitzPoint point, EvtDalitzDecayInfo *model)
Definition
EvtDalitzTable.cpp:659
EvtDalitzTable::m_readFiles
std::vector< std::string > m_readFiles
Definition
EvtDalitzTable.hh:70
EvtDalitzTable::fileHasBeenRead
bool fileHasBeenRead(const std::string dec_name) const
Definition
EvtDalitzTable.cpp:61
EvtDalitzTable::checkParticle
void checkParticle(std::string particle) const
Definition
EvtDalitzTable.cpp:428
EvtDalitzTable::EvtDalitzTable
EvtDalitzTable(const EvtDalitzTable &)
EvtDalitzTable::getResonance
EvtDalitzReso getResonance(std::string shape, EvtDalitzPlot dp, EvtCyclic3::Pair angPair, EvtCyclic3::Pair resPair, EvtSpinType::spintype spinType, double mass, double width, double FFp, double FFr, double alpha, double aLass, double rLass, double BLass, double phiBLass, double RLass, double phiRLass, double cutoffLass)
Definition
EvtDalitzTable.cpp:504
EvtDalitzTable::operator=
EvtDalitzTable & operator=(const EvtDalitzTable &)
EvtDalitzTable::getDaughterPairs
int getDaughterPairs(EvtId *resDaughter, EvtId *daughter, std::vector< std::pair< EvtCyclic3::Pair, EvtCyclic3::Pair > > &angAndResPairs)
Definition
EvtDalitzTable.cpp:550
EvtDalitzTable::getInstance
static const EvtDalitzTable & getInstance(const std::string dec_name="", bool verbose=true)
Definition
EvtDalitzTable.cpp:49
EvtDalitzTable::readXMLDecayFile
void readXMLDecayFile(const std::string dec_name, bool verbose=true)
Definition
EvtDalitzTable.cpp:72
EvtId
Definition
EvtId.hh:27
EvtSpinType::spintype
spintype
Definition
EvtSpinType.hh:29
EvtCyclic3::Pair
Pair
Definition
EvtCyclic3.hh:37
Generated by
1.17.0