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
EvtMultiChannelParser.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_MULTI_CHANNEL_PARSER
22
#define EVT_MULTI_CHANNEL_PARSER
23
24
#include "
EvtGenBase/EvtComplex.hh
"
25
26
#include <string>
27
#include <vector>
28
29
// Parse decay file tokens from a file or a vector
30
31
class
EvtDecayMode
;
32
33
enum
34
{
35
POLAR_RAD
,
36
POLAR_DEG
,
37
CARTESIAN
38
};
39
40
class
EvtMultiChannelParser
{
41
public
:
42
EvtMultiChannelParser
() :
m_pdfMax
( -1. ),
m_nScan
( 0 ),
m_dm
( 0. ) {}
43
~EvtMultiChannelParser
() {}
44
45
static
EvtDecayMode
getDecayMode
(
const
char
* file );
46
47
void
parse
(
const
char
* file,
const
char
* model );
48
void
parse
(
const
std::vector<std::string>& v );
49
50
static
void
parseComplexCoef
(
size_t
& i,
const
std::vector<std::string>& v,
51
EvtComplex
& c,
int
& format );
52
static
double
parseRealCoef
(
int
& i,
const
std::vector<std::string>& v );
53
static
bool
isKeyword
(
const
std::string& s );
54
55
inline
double
pdfMax
()
const
{
return
m_pdfMax
; }
56
inline
int
nScan
()
const
{
return
m_nScan
; }
57
inline
double
dm
()
const
{
return
m_dm
; }
58
inline
double
mixPhase
()
const
{
return
m_mixPhase
; }
59
inline
double
mixAmpli
()
const
{
return
m_mixAmpli
; }
60
61
inline
std::vector<std::string>
amp
(
int
i )
const
{
return
m_amp
[i]; }
62
inline
std::vector<std::string>
ampConj
(
int
i )
const
63
{
64
return
m_ampConj
[i];
65
}
66
inline
EvtComplex
ampCoef
(
int
i )
const
{
return
m_ampCoef
[i]; }
67
inline
EvtComplex
ampConjCoef
(
int
i )
const
{
return
m_ampConjCoef
[i]; }
68
69
inline
int
coefFormat
(
int
i )
const
{
return
m_coefFormat
[i]; }
70
inline
int
coefConjFormat
(
int
i )
const
{
return
m_coefConjFormat
[i]; }
71
72
inline
int
getNAmp
()
const
{
return
m_amp
.size(); }
73
inline
int
getNAmpConj
()
const
{
return
m_ampConj
.size(); }
74
75
private
:
76
double
m_pdfMax
;
77
int
m_nScan
;
78
double
m_dm
;
79
double
m_mixPhase
;
80
double
m_mixAmpli
;
81
82
std::vector<std::vector<std::string>>
m_amp
;
83
std::vector<std::vector<std::string>>
m_ampConj
;
84
std::vector<EvtComplex>
m_ampCoef
;
85
std::vector<int>
m_coefFormat
;
86
std::vector<EvtComplex>
m_ampConjCoef
;
87
std::vector<int>
m_coefConjFormat
;
88
};
89
90
#endif
EvtComplex.hh
POLAR_DEG
@ POLAR_DEG
Definition
EvtMultiChannelParser.hh:36
POLAR_RAD
@ POLAR_RAD
Definition
EvtMultiChannelParser.hh:35
CARTESIAN
@ CARTESIAN
Definition
EvtMultiChannelParser.hh:37
EvtComplex
Definition
EvtComplex.hh:29
EvtDecayMode
Definition
EvtDecayMode.hh:30
EvtMultiChannelParser::m_amp
std::vector< std::vector< std::string > > m_amp
Definition
EvtMultiChannelParser.hh:82
EvtMultiChannelParser::getDecayMode
static EvtDecayMode getDecayMode(const char *file)
Definition
EvtMultiChannelParser.cpp:37
EvtMultiChannelParser::nScan
int nScan() const
Definition
EvtMultiChannelParser.hh:56
EvtMultiChannelParser::m_mixAmpli
double m_mixAmpli
Definition
EvtMultiChannelParser.hh:80
EvtMultiChannelParser::m_ampConjCoef
std::vector< EvtComplex > m_ampConjCoef
Definition
EvtMultiChannelParser.hh:86
EvtMultiChannelParser::getNAmp
int getNAmp() const
Definition
EvtMultiChannelParser.hh:72
EvtMultiChannelParser::m_ampConj
std::vector< std::vector< std::string > > m_ampConj
Definition
EvtMultiChannelParser.hh:83
EvtMultiChannelParser::m_coefFormat
std::vector< int > m_coefFormat
Definition
EvtMultiChannelParser.hh:85
EvtMultiChannelParser::m_ampCoef
std::vector< EvtComplex > m_ampCoef
Definition
EvtMultiChannelParser.hh:84
EvtMultiChannelParser::pdfMax
double pdfMax() const
Definition
EvtMultiChannelParser.hh:55
EvtMultiChannelParser::parse
void parse(const char *file, const char *model)
Definition
EvtMultiChannelParser.cpp:77
EvtMultiChannelParser::m_coefConjFormat
std::vector< int > m_coefConjFormat
Definition
EvtMultiChannelParser.hh:87
EvtMultiChannelParser::getNAmpConj
int getNAmpConj() const
Definition
EvtMultiChannelParser.hh:73
EvtMultiChannelParser::~EvtMultiChannelParser
~EvtMultiChannelParser()
Definition
EvtMultiChannelParser.hh:43
EvtMultiChannelParser::coefConjFormat
int coefConjFormat(int i) const
Definition
EvtMultiChannelParser.hh:70
EvtMultiChannelParser::isKeyword
static bool isKeyword(const std::string &s)
Definition
EvtMultiChannelParser.cpp:248
EvtMultiChannelParser::m_mixPhase
double m_mixPhase
Definition
EvtMultiChannelParser.hh:79
EvtMultiChannelParser::EvtMultiChannelParser
EvtMultiChannelParser()
Definition
EvtMultiChannelParser.hh:42
EvtMultiChannelParser::mixAmpli
double mixAmpli() const
Definition
EvtMultiChannelParser.hh:59
EvtMultiChannelParser::ampConj
std::vector< std::string > ampConj(int i) const
Definition
EvtMultiChannelParser.hh:62
EvtMultiChannelParser::m_dm
double m_dm
Definition
EvtMultiChannelParser.hh:78
EvtMultiChannelParser::dm
double dm() const
Definition
EvtMultiChannelParser.hh:57
EvtMultiChannelParser::parseComplexCoef
static void parseComplexCoef(size_t &i, const std::vector< std::string > &v, EvtComplex &c, int &format)
Definition
EvtMultiChannelParser.cpp:196
EvtMultiChannelParser::ampConjCoef
EvtComplex ampConjCoef(int i) const
Definition
EvtMultiChannelParser.hh:67
EvtMultiChannelParser::m_pdfMax
double m_pdfMax
Definition
EvtMultiChannelParser.hh:76
EvtMultiChannelParser::amp
std::vector< std::string > amp(int i) const
Definition
EvtMultiChannelParser.hh:61
EvtMultiChannelParser::coefFormat
int coefFormat(int i) const
Definition
EvtMultiChannelParser.hh:69
EvtMultiChannelParser::m_nScan
int m_nScan
Definition
EvtMultiChannelParser.hh:77
EvtMultiChannelParser::mixPhase
double mixPhase() const
Definition
EvtMultiChannelParser.hh:58
EvtMultiChannelParser::ampCoef
EvtComplex ampCoef(int i) const
Definition
EvtMultiChannelParser.hh:66
EvtMultiChannelParser::parseRealCoef
static double parseRealCoef(int &i, const std::vector< std::string > &v)
Definition
EvtMultiChannelParser.cpp:230
Generated by
1.17.0