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
EvtAbsLineShape.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 EVTABSLINESHAPE_HH
22
#define EVTABSLINESHAPE_HH
23
24
#include "
EvtGenBase/EvtId.hh
"
25
#include "
EvtGenBase/EvtSpinType.hh
"
26
27
#include <vector>
28
29
class
EvtAbsLineShape
{
30
public
:
31
EvtAbsLineShape
() =
default
;
32
EvtAbsLineShape
(
double
mass,
double
width,
double
maxRange,
33
EvtSpinType::spintype
sp );
34
virtual
~EvtAbsLineShape
() =
default
;
35
EvtAbsLineShape
&
operator=
(
const
EvtAbsLineShape
& x );
36
EvtAbsLineShape
(
const
EvtAbsLineShape
& x );
37
38
double
getMass
() {
return
m_mass
; }
39
double
getMassMin
() {
return
m_massMin
; }
40
double
getMassMax
() {
return
m_massMax
; }
41
double
getMaxRange
() {
return
m_maxRange
; }
42
double
getWidth
() {
return
m_width
; }
43
EvtSpinType::spintype
getSpinType
() {
return
m_spin
; }
44
virtual
double
rollMass
();
45
virtual
EvtAbsLineShape
*
clone
();
46
47
void
reSetMass
(
double
mass ) {
m_mass
= mass; }
48
void
reSetWidth
(
double
width ) {
m_width
= width; }
49
void
reSetMassMin
(
double
mass ) {
m_massMin
= mass; }
50
void
reSetMassMax
(
double
mass ) {
m_massMax
= mass; }
51
virtual
void
reSetBlatt
(
double
/*blatt*/
){};
52
virtual
void
reSetBlattBirth
(
double
/*blatt*/
){};
53
void
includeBirthFactor
(
bool
yesno ) {
m_includeBirthFact
= yesno; }
54
void
includeDecayFactor
(
bool
yesno ) {
m_includeDecayFact
= yesno; }
55
void
setPWForDecay
(
int
spin,
EvtId
d1,
EvtId
d2 )
56
{
57
m_userSetPW
.push_back( spin );
58
m_userSetPWD1
.push_back( d1 );
59
m_userSetPWD2
.push_back( d2 );
60
}
61
void
setPWForBirthL
(
int
spin,
EvtId
par,
EvtId
othD )
62
{
63
m_userSetBirthPW
.push_back( spin );
64
m_userSetBirthOthD
.push_back( othD );
65
m_userSetBirthPar
.push_back( par );
66
}
67
68
virtual
double
getRandMass
(
EvtId
* parId,
int
nDaug,
EvtId
* dauId,
69
EvtId
* othDaugId,
double
maxMass,
70
double
* dauMasses );
71
virtual
double
getMassProb
(
double
mass,
double
massPar,
int
nDaug,
72
double
* massDau );
73
74
protected
:
75
bool
m_includeDecayFact
;
76
bool
m_includeBirthFact
;
77
double
m_mass
;
78
double
m_massMin
;
79
double
m_massMax
;
80
double
m_width
;
81
double
m_maxRange
;
82
83
// allow for special cases where the default method of picking the
84
//lowest allowed partial wave for a decay is not the right answer.
85
// string is "<spin> <daughter1> <daughter2>"
86
//new 9/12/2003 Lange
87
std::vector<EvtId>
m_userSetPWD1
,
m_userSetPWD2
;
88
std::vector<int>
m_userSetPW
;
89
90
// also do it for birth factors
91
std::vector<EvtId>
m_userSetBirthPar
,
m_userSetBirthOthD
;
92
std::vector<int>
m_userSetBirthPW
;
93
94
EvtSpinType::spintype
m_spin
;
95
};
96
97
#endif
EvtId.hh
EvtSpinType.hh
EvtAbsLineShape
Definition
EvtAbsLineShape.hh:29
EvtAbsLineShape::m_userSetBirthPW
std::vector< int > m_userSetBirthPW
Definition
EvtAbsLineShape.hh:92
EvtAbsLineShape::getMassMin
double getMassMin()
Definition
EvtAbsLineShape.hh:39
EvtAbsLineShape::reSetWidth
void reSetWidth(double width)
Definition
EvtAbsLineShape.hh:48
EvtAbsLineShape::m_massMax
double m_massMax
Definition
EvtAbsLineShape.hh:79
EvtAbsLineShape::m_userSetBirthPar
std::vector< EvtId > m_userSetBirthPar
Definition
EvtAbsLineShape.hh:91
EvtAbsLineShape::clone
virtual EvtAbsLineShape * clone()
Definition
EvtAbsLineShape.cpp:87
EvtAbsLineShape::m_includeBirthFact
bool m_includeBirthFact
Definition
EvtAbsLineShape.hh:76
EvtAbsLineShape::m_userSetPWD2
std::vector< EvtId > m_userSetPWD2
Definition
EvtAbsLineShape.hh:87
EvtAbsLineShape::getWidth
double getWidth()
Definition
EvtAbsLineShape.hh:42
EvtAbsLineShape::reSetBlatt
virtual void reSetBlatt(double)
Definition
EvtAbsLineShape.hh:51
EvtAbsLineShape::getMassMax
double getMassMax()
Definition
EvtAbsLineShape.hh:40
EvtAbsLineShape::getMassProb
virtual double getMassProb(double mass, double massPar, int nDaug, double *massDau)
Definition
EvtAbsLineShape.cpp:141
EvtAbsLineShape::reSetBlattBirth
virtual void reSetBlattBirth(double)
Definition
EvtAbsLineShape.hh:52
EvtAbsLineShape::reSetMass
void reSetMass(double mass)
Definition
EvtAbsLineShape.hh:47
EvtAbsLineShape::EvtAbsLineShape
EvtAbsLineShape()=default
EvtAbsLineShape::m_userSetBirthOthD
std::vector< EvtId > m_userSetBirthOthD
Definition
EvtAbsLineShape.hh:91
EvtAbsLineShape::includeDecayFactor
void includeDecayFactor(bool yesno)
Definition
EvtAbsLineShape.hh:54
EvtAbsLineShape::m_massMin
double m_massMin
Definition
EvtAbsLineShape.hh:78
EvtAbsLineShape::m_includeDecayFact
bool m_includeDecayFact
Definition
EvtAbsLineShape.hh:75
EvtAbsLineShape::getSpinType
EvtSpinType::spintype getSpinType()
Definition
EvtAbsLineShape.hh:43
EvtAbsLineShape::~EvtAbsLineShape
virtual ~EvtAbsLineShape()=default
EvtAbsLineShape::operator=
EvtAbsLineShape & operator=(const EvtAbsLineShape &x)
Definition
EvtAbsLineShape.cpp:74
EvtAbsLineShape::getRandMass
virtual double getRandMass(EvtId *parId, int nDaug, EvtId *dauId, EvtId *othDaugId, double maxMass, double *dauMasses)
Definition
EvtAbsLineShape.cpp:109
EvtAbsLineShape::m_spin
EvtSpinType::spintype m_spin
Definition
EvtAbsLineShape.hh:94
EvtAbsLineShape::setPWForBirthL
void setPWForBirthL(int spin, EvtId par, EvtId othD)
Definition
EvtAbsLineShape.hh:61
EvtAbsLineShape::m_userSetPW
std::vector< int > m_userSetPW
Definition
EvtAbsLineShape.hh:88
EvtAbsLineShape::getMass
double getMass()
Definition
EvtAbsLineShape.hh:38
EvtAbsLineShape::m_width
double m_width
Definition
EvtAbsLineShape.hh:80
EvtAbsLineShape::m_mass
double m_mass
Definition
EvtAbsLineShape.hh:77
EvtAbsLineShape::reSetMassMax
void reSetMassMax(double mass)
Definition
EvtAbsLineShape.hh:50
EvtAbsLineShape::rollMass
virtual double rollMass()
Definition
EvtAbsLineShape.cpp:92
EvtAbsLineShape::m_userSetPWD1
std::vector< EvtId > m_userSetPWD1
Definition
EvtAbsLineShape.hh:87
EvtAbsLineShape::includeBirthFactor
void includeBirthFactor(bool yesno)
Definition
EvtAbsLineShape.hh:53
EvtAbsLineShape::setPWForDecay
void setPWForDecay(int spin, EvtId d1, EvtId d2)
Definition
EvtAbsLineShape.hh:55
EvtAbsLineShape::m_maxRange
double m_maxRange
Definition
EvtAbsLineShape.hh:81
EvtAbsLineShape::reSetMassMin
void reSetMassMin(double mass)
Definition
EvtAbsLineShape.hh:49
EvtAbsLineShape::getMaxRange
double getMaxRange()
Definition
EvtAbsLineShape.hh:41
EvtId
Definition
EvtId.hh:27
EvtSpinType::spintype
spintype
Definition
EvtSpinType.hh:29
Generated by
1.17.0