herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Decay
General
GeneralThreeBodyDecayer.h
1
// -*- C++ -*-
2
#ifndef HERWIG_GeneralThreeBodyDecayer_H
3
#define HERWIG_GeneralThreeBodyDecayer_H
4
//
5
// This is the declaration of the GeneralThreeBodyDecayer class.
6
//
7
8
#include "Herwig/Decay/DecayIntegrator.h"
9
#include "Herwig/Models/General/TBDiagram.h"
10
#include "GeneralThreeBodyDecayer.fh"
11
12
namespace
Herwig
{
13
using namespace
ThePEG
;
14
21
class
GeneralThreeBodyDecayer
:
public
DecayIntegrator
{
22
23
public
:
24
26
typedef
pair<tcPDPtr, Energy>
PMPair
;
27
28
29
public
:
30
34
GeneralThreeBodyDecayer
() :
nflow_
(999),
widthOpt_
(1),
35
refTag_
(),
refTagCC_
(),
iflow_
(999),
36
intOpt_
(0),
relerr_
(1e-2)
37
{}
38
47
virtual
ParticleVector
decay
(
const
Particle
& parent,
48
const
tPDVector
& children)
const
;
49
56
virtual
int
modeNumber
(
bool
& cc,
tcPDPtr
parent,
const
tPDVector
& children)
const
;
57
71
virtual
double
threeBodyMatrixElement
(
const
int
imode
,
const
Energy2 q2,
72
const
Energy2 s3,
const
Energy2 s2,
73
const
Energy2 s1,
const
Energy m1,
74
const
Energy m2,
const
Energy m3)
const
;
75
83
virtual
Energy
partialWidth
(
PMPair
inpart,
PMPair
outa,
84
PMPair
outb,
PMPair
outc)
const
;
85
93
virtual
double
brat
(
const
DecayMode
& dm,
const
Particle
& p,
94
double
oldbrat)
const
;
95
97
101
bool
setDecayInfo
(
PDPtr
incoming
,vector<PDPtr>
outgoing
,
102
const
vector<TBDiagram> & process,
103
double
symfac);
104
105
public
:
106
113
void
persistentOutput
(
PersistentOStream
& os)
const
;
114
120
void
persistentInput
(
PersistentIStream
& is,
int
version);
122
129
static
void
Init
();
130
131
protected
:
132
140
virtual
void
doinit
();
141
146
virtual
void
doinitrun
();
148
152
virtual
void
setupDiagrams
(
bool
checkKinematics);
153
154
protected
:
155
160
const
vector<TBDiagram> &
getProcessInfo
()
const
{
161
return
diagrams_
;
162
}
163
167
PDPtr
incoming
()
const
{
return
incoming_
; }
168
172
const
vector<tPDPtr> &
outgoing
()
const
{
return
outgoing_
; }
173
177
unsigned
int
numberOfFlows
()
const
{
return
nflow_
; }
178
182
bool
setColourFactors
(
double
symfac);
183
187
const
vector<DVector> &
getColourFactors
()
const
{
return
colour_
; }
188
192
const
vector<DVector> &
getLargeNcColourFactors
()
const
{
193
return
colourLargeNC_
;
194
}
195
199
const
vector<unsigned int> &
diagramMap
()
const
{
200
return
diagmap_
;
201
}
202
206
unsigned
int
widthOption
()
const
{
return
widthOpt_
; }
207
214
void
colourConnections
(
const
Particle
& parent,
215
const
ParticleVector
& out)
const
;
216
225
void
constructIntegratorChannels
(vector<int> & intype, vector<Energy> & inmass,
226
vector<Energy> & inwidth, vector<double> & inpow,
227
vector<double> & inweights)
const
;
228
233
void
colourFlow
(
unsigned
int
flow)
const
{
iflow_
= flow; }
234
238
unsigned
int
const
&
colourFlow
()
const
{
return
iflow_
; }
239
243
double
relativeError
()
const
{
return
relerr_
;}
244
245
private
:
246
251
GeneralThreeBodyDecayer
&
operator=
(
const
GeneralThreeBodyDecayer
&) =
delete
;
252
253
private
:
254
258
PDPtr
incoming_
;
259
263
vector<tPDPtr>
outgoing_
;
264
268
vector<TBDiagram>
diagrams_
;
269
273
vector<unsigned int>
diagmap_
;
274
278
vector<DVector>
colour_
;
279
283
vector<DVector>
colourLargeNC_
;
284
288
unsigned
int
nflow_
;
289
293
mutable
WidthCalculatorBasePtr
widthCalc_
;
294
298
unsigned
int
widthOpt_
;
299
305
string
refTag_
;
306
312
string
refTagCC_
;
313
317
mutable
unsigned
int
iflow_
;
318
322
unsigned
int
intOpt_
;
323
327
double
relerr_
;
328
};
329
330
}
331
332
#endif
/* HERWIG_GeneralThreeBodyDecayer_H */
Herwig::DecayIntegrator
Main class for Decayers implementing multi-channel phase space integration.
Definition:
DecayIntegrator.h:60
Herwig::DecayIntegrator::imode
int imode() const
The mode being used for this decay.
Definition:
DecayIntegrator.h:118
Herwig::GeneralThreeBodyDecayer
Here is the documentation of the GeneralThreeBodyDecayer class.
Definition:
GeneralThreeBodyDecayer.h:21
Herwig::GeneralThreeBodyDecayer::threeBodyMatrixElement
virtual double threeBodyMatrixElement(const int imode, const Energy2 q2, const Energy2 s3, const Energy2 s2, const Energy2 s1, const Energy m1, const Energy m2, const Energy m3) const
The matrix element to be integrated for the three-body decays as a function of the invariant masses o...
Herwig::GeneralThreeBodyDecayer::getColourFactors
const vector< DVector > & getColourFactors() const
Return the matrix of colour factors.
Definition:
GeneralThreeBodyDecayer.h:187
Herwig::GeneralThreeBodyDecayer::diagmap_
vector< unsigned int > diagmap_
Map between the diagrams and the phase-space channels.
Definition:
GeneralThreeBodyDecayer.h:273
Herwig::GeneralThreeBodyDecayer::colourFlow
unsigned int const & colourFlow() const
Set the colour flow.
Definition:
GeneralThreeBodyDecayer.h:238
Herwig::GeneralThreeBodyDecayer::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::GeneralThreeBodyDecayer::refTagCC_
string refTagCC_
Store a decay tag for the cc-mode that can be tested when trying to determine whether it can be gener...
Definition:
GeneralThreeBodyDecayer.h:312
Herwig::GeneralThreeBodyDecayer::setDecayInfo
bool setDecayInfo(PDPtr incoming, vector< PDPtr > outgoing, const vector< TBDiagram > &process, double symfac)
Set the diagrams.
Herwig::GeneralThreeBodyDecayer::GeneralThreeBodyDecayer
GeneralThreeBodyDecayer()
The default constructor.
Definition:
GeneralThreeBodyDecayer.h:34
Herwig::GeneralThreeBodyDecayer::getProcessInfo
const vector< TBDiagram > & getProcessInfo() const
Access the TBDiagrams that store the required information to create the diagrams.
Definition:
GeneralThreeBodyDecayer.h:160
Herwig::GeneralThreeBodyDecayer::widthOption
unsigned int widthOption() const
Option for the handling of the widths of the intermediate particles.
Definition:
GeneralThreeBodyDecayer.h:206
Herwig::GeneralThreeBodyDecayer::constructIntegratorChannels
void constructIntegratorChannels(vector< int > &intype, vector< Energy > &inmass, vector< Energy > &inwidth, vector< double > &inpow, vector< double > &inweights) const
Method to construct the channels for the integrator to give the partial width.
Herwig::GeneralThreeBodyDecayer::numberOfFlows
unsigned int numberOfFlows() const
Number of colour flows.
Definition:
GeneralThreeBodyDecayer.h:177
Herwig::GeneralThreeBodyDecayer::widthOpt_
unsigned int widthOpt_
Option for the treatment of the widths.
Definition:
GeneralThreeBodyDecayer.h:298
Herwig::GeneralThreeBodyDecayer::setupDiagrams
virtual void setupDiagrams(bool checkKinematics)
Set up the diagrams etc.
Herwig::GeneralThreeBodyDecayer::setColourFactors
bool setColourFactors(double symfac)
Set up the colour factors.
Herwig::GeneralThreeBodyDecayer::colourLargeNC_
vector< DVector > colourLargeNC_
Store cololur factors for ME calc at large N_c.
Definition:
GeneralThreeBodyDecayer.h:283
Herwig::GeneralThreeBodyDecayer::relerr_
double relerr_
Relative error for GQ integration of partial width.
Definition:
GeneralThreeBodyDecayer.h:327
Herwig::GeneralThreeBodyDecayer::colourConnections
void colourConnections(const Particle &parent, const ParticleVector &out) const
Set colour connections.
Herwig::GeneralThreeBodyDecayer::nflow_
unsigned int nflow_
The number of colourflows.
Definition:
GeneralThreeBodyDecayer.h:288
Herwig::GeneralThreeBodyDecayer::colour_
vector< DVector > colour_
Store colour factors for ME calc.
Definition:
GeneralThreeBodyDecayer.h:278
Herwig::GeneralThreeBodyDecayer::getLargeNcColourFactors
const vector< DVector > & getLargeNcColourFactors() const
Return the matrix of colour factors.
Definition:
GeneralThreeBodyDecayer.h:192
Herwig::GeneralThreeBodyDecayer::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::GeneralThreeBodyDecayer::intOpt_
unsigned int intOpt_
Option for the construction of the gaussian integrator.
Definition:
GeneralThreeBodyDecayer.h:322
Herwig::GeneralThreeBodyDecayer::relativeError
double relativeError() const
Relative error for GQ integration.
Definition:
GeneralThreeBodyDecayer.h:243
Herwig::GeneralThreeBodyDecayer::incoming
PDPtr incoming() const
Incoming particle.
Definition:
GeneralThreeBodyDecayer.h:167
Herwig::GeneralThreeBodyDecayer::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::GeneralThreeBodyDecayer::partialWidth
virtual Energy partialWidth(PMPair inpart, PMPair outa, PMPair outb, PMPair outc) const
Function to return partial Width.
Herwig::GeneralThreeBodyDecayer::doinit
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
Herwig::GeneralThreeBodyDecayer::incoming_
PDPtr incoming_
Store the incoming particle.
Definition:
GeneralThreeBodyDecayer.h:258
Herwig::GeneralThreeBodyDecayer::brat
virtual double brat(const DecayMode &dm, const Particle &p, double oldbrat) const
An overidden member to calculate a branching ratio for a certain particle instance.
Herwig::GeneralThreeBodyDecayer::decay
virtual ParticleVector decay(const Particle &parent, const tPDVector &children) const
For a given decay mode and a given particle instance, perform the decay and return the decay products...
Herwig::GeneralThreeBodyDecayer::diagrams_
vector< TBDiagram > diagrams_
Store the diagrams for the decay.
Definition:
GeneralThreeBodyDecayer.h:268
Herwig::GeneralThreeBodyDecayer::diagramMap
const vector< unsigned int > & diagramMap() const
Get the mapping between the phase-space channel and the diagram.
Definition:
GeneralThreeBodyDecayer.h:199
Herwig::GeneralThreeBodyDecayer::refTag_
string refTag_
Store a decay tag for this mode that can be tested when trying to determine whether it can be generat...
Definition:
GeneralThreeBodyDecayer.h:305
Herwig::GeneralThreeBodyDecayer::widthCalc_
WidthCalculatorBasePtr widthCalc_
Reference to object to calculate the partial width.
Definition:
GeneralThreeBodyDecayer.h:293
Herwig::GeneralThreeBodyDecayer::outgoing_
vector< tPDPtr > outgoing_
Outgoing particles.
Definition:
GeneralThreeBodyDecayer.h:263
Herwig::GeneralThreeBodyDecayer::modeNumber
virtual int modeNumber(bool &cc, tcPDPtr parent, const tPDVector &children) const
Which of the possible decays is required.
Herwig::GeneralThreeBodyDecayer::outgoing
const vector< tPDPtr > & outgoing() const
Outgoing particles.
Definition:
GeneralThreeBodyDecayer.h:172
Herwig::GeneralThreeBodyDecayer::colourFlow
void colourFlow(unsigned int flow) const
Set the colour flow.
Definition:
GeneralThreeBodyDecayer.h:233
Herwig::GeneralThreeBodyDecayer::doinitrun
virtual void doinitrun()
Initialize this object.
Herwig::GeneralThreeBodyDecayer::iflow_
unsigned int iflow_
The colour flow.
Definition:
GeneralThreeBodyDecayer.h:317
Herwig::GeneralThreeBodyDecayer::operator=
GeneralThreeBodyDecayer & operator=(const GeneralThreeBodyDecayer &)=delete
The assignment operator is private and must never be called.
Herwig::GeneralThreeBodyDecayer::PMPair
pair< tcPDPtr, Energy > PMPair
A ParticleData ptr and (possible) mass pair.
Definition:
GeneralThreeBodyDecayer.h:26
ThePEG::DecayMode
ThePEG::Particle
ThePEG::PersistentIStream
ThePEG::PersistentOStream
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG
ThePEG::tPDVector
vector< tPDPtr > tPDVector
ThePEG::ParticleVector
vector< PPtr > ParticleVector
ThePEG::tcPDPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
ThePEG::PDPtr
ThePEG::Ptr< ParticleData >::pointer PDPtr
Generated on Thu Jun 20 2024 17:50:52 for Herwig by
1.9.6