herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Decay
Dalitz
ScalarTo3ScalarDalitz.h
1
// -*- C++ -*-
2
#ifndef Herwig_ScalarTo3ScalarDalitz_H
3
#define Herwig_ScalarTo3ScalarDalitz_H
4
//
5
// This is the declaration of the ScalarTo3ScalarDalitz class.
6
//
7
8
#include "DalitzBase.h"
9
10
namespace
Herwig
{
11
using namespace
ThePEG
;
12
13
21
class
ScalarTo3ScalarDalitz
:
public
DalitzBase
{
22
23
public
:
24
28
ScalarTo3ScalarDalitz
() :
useResonanceMass_
(false)
29
{}
30
40
virtual
double
me2
(
const
int
ichan,
const
Particle
& part,
41
const
tPDVector
&
outgoing
,
42
const
vector<Lorentz5Momentum> & momenta,
43
MEOption
meopt)
const
;
44
48
virtual
void
constructSpinInfo
(
const
Particle
& part,
49
ParticleVector
outgoing
)
const
;
50
56
virtual
void
dataBaseOutput
(ofstream & os,
bool
header)
const
;
57
58
public
:
59
66
void
persistentOutput
(
PersistentOStream
& os)
const
;
67
73
void
persistentInput
(
PersistentIStream
& is,
int
version);
75
82
static
void
Init
();
83
84
protected
:
85
92
virtual
IBPtr
clone
()
const
;
93
98
virtual
IBPtr
fullclone
()
const
;
100
101
protected
:
102
106
virtual
Complex
amplitude
(
int
ichan)
const
{
107
Complex
amp(0.);
108
int
iloc=-1;
109
for
(
int
ix=0;ix<int(
resonances
().size());++ix) {
110
++iloc;
111
if
(
channel1
()>=0) {
112
if
(ix!=
channel1
() && ix!=
channel2
())
continue
;
113
}
114
if
(ichan>=0&&ichan!=iloc)
continue
;
115
amp +=
resAmp
(ix);
116
}
117
return
amp;
118
}
119
123
Complex
resAmp
(
unsigned
int
i)
const
;
124
128
const
Energy &
mInv
(
unsigned
int
i,
unsigned
int
j)
const
{
129
return
m2_
[i][j];
130
}
131
135
const
Energy &
mOut
(
unsigned
int
i)
const
{
136
return
mOut_
[i];
137
}
138
139
private
:
140
145
ScalarTo3ScalarDalitz
&
operator=
(
const
ScalarTo3ScalarDalitz
&) =
delete
;
146
147
private
:
148
152
bool
useResonanceMass_
;
154
155
private :
156
164
mutable
Energy
mD_
;
165
169
mutable
Energy
mOut_
[3];
170
174
mutable
Energy
m2_
[3][3];
176
180
mutable
RhoDMatrix
rho_
;
181
};
182
183
}
184
185
#endif
/* Herwig_ScalarTo3ScalarDalitz_H */
Herwig::DalitzBase
The DalitzBase class provides a base class for the implementation of three-body Dalitz decays.
Definition:
DalitzBase.h:22
Herwig::DalitzBase::resonances
const vector< DalitzResonancePtr > & resonances() const
Access to the resonances.
Definition:
DalitzBase.h:103
Herwig::DalitzBase::channel1
const int & channel1() const
Access to the first channel.
Definition:
DalitzBase.h:108
Herwig::DalitzBase::channel2
const int & channel2() const
Access to the second channel.
Definition:
DalitzBase.h:115
Herwig::DecayIntegrator::MEOption
MEOption
Enum for the matrix element option.
Definition:
DecayIntegrator.h:72
Herwig::ScalarTo3ScalarDalitz
The ScalarTo3ScalarDalitz class provides a base class for the implementation of weak three-body decay...
Definition:
ScalarTo3ScalarDalitz.h:21
Herwig::ScalarTo3ScalarDalitz::mD_
Energy mD_
Storage of the kinematics.
Definition:
ScalarTo3ScalarDalitz.h:164
Herwig::ScalarTo3ScalarDalitz::m2_
Energy m2_[3][3]
Masses of the children.
Definition:
ScalarTo3ScalarDalitz.h:174
Herwig::ScalarTo3ScalarDalitz::dataBaseOutput
virtual void dataBaseOutput(ofstream &os, bool header) const
Output the setup information for the particle database.
Herwig::ScalarTo3ScalarDalitz::useResonanceMass_
bool useResonanceMass_
Choice of the mass to use in the denominator of the expressions.
Definition:
ScalarTo3ScalarDalitz.h:152
Herwig::ScalarTo3ScalarDalitz::operator=
ScalarTo3ScalarDalitz & operator=(const ScalarTo3ScalarDalitz &)=delete
The assignment operator is private and must never be called.
Herwig::ScalarTo3ScalarDalitz::rho_
RhoDMatrix rho_
Spin density matrix.
Definition:
ScalarTo3ScalarDalitz.h:180
Herwig::ScalarTo3ScalarDalitz::ScalarTo3ScalarDalitz
ScalarTo3ScalarDalitz()
The default constructor.
Definition:
ScalarTo3ScalarDalitz.h:28
Herwig::ScalarTo3ScalarDalitz::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Herwig::ScalarTo3ScalarDalitz::mOut
const Energy & mOut(unsigned int i) const
Masses of the children.
Definition:
ScalarTo3ScalarDalitz.h:135
Herwig::ScalarTo3ScalarDalitz::me2
virtual double me2(const int ichan, const Particle &part, const tPDVector &outgoing, const vector< Lorentz5Momentum > &momenta, MEOption meopt) const
Return the matrix element squared for a given mode and phase-space channel.
Herwig::ScalarTo3ScalarDalitz::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::ScalarTo3ScalarDalitz::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::ScalarTo3ScalarDalitz::constructSpinInfo
virtual void constructSpinInfo(const Particle &part, ParticleVector outgoing) const
Construct the SpinInfos for the particles produced in the decay.
Herwig::ScalarTo3ScalarDalitz::amplitude
virtual Complex amplitude(int ichan) const
Calculate the amplitude.
Definition:
ScalarTo3ScalarDalitz.h:106
Herwig::ScalarTo3ScalarDalitz::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Herwig::ScalarTo3ScalarDalitz::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::ScalarTo3ScalarDalitz::mOut_
Energy mOut_[3]
Masses of the children.
Definition:
ScalarTo3ScalarDalitz.h:169
Herwig::ScalarTo3ScalarDalitz::mInv
const Energy & mInv(unsigned int i, unsigned int j) const
Access to the invariants.
Definition:
ScalarTo3ScalarDalitz.h:128
Herwig::ScalarTo3ScalarDalitz::resAmp
Complex resAmp(unsigned int i) const
Calculate the amplitude for the ith resonance.
ThePEG::Particle
ThePEG::PersistentIStream
ThePEG::PersistentOStream
ThePEG::RhoDMatrix
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG::Helicity::outgoing
outgoing
ThePEG
ThePEG::Complex
std::complex< double > Complex
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::tPDVector
vector< tPDPtr > tPDVector
ThePEG::ParticleVector
vector< PPtr > ParticleVector
Generated on Thu Jun 20 2024 17:50:52 for Herwig by
1.9.6