herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.2.1
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<PDPtr> &
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<PDPtr>
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::GeneralThreeBodyDecayer::colourFlow
void colourFlow(unsigned int flow) const
Set the colour flow.
Definition:
GeneralThreeBodyDecayer.h:233
Herwig::GeneralThreeBodyDecayer::intOpt_
unsigned int intOpt_
Option for the construction of the gaussian integrator.
Definition:
GeneralThreeBodyDecayer.h:322
Herwig::GeneralThreeBodyDecayer::getProcessInfo
const vector< TBDiagram > & getProcessInfo() const
Access the TBDiagrams that store the required information to create the diagrams. ...
Definition:
GeneralThreeBodyDecayer.h:160
ThePEG::PersistentIStream
Herwig::GeneralThreeBodyDecayer::relativeError
double relativeError() const
Relative error for GQ integration.
Definition:
GeneralThreeBodyDecayer.h:243
Herwig::GeneralThreeBodyDecayer::numberOfFlows
unsigned int numberOfFlows() const
Number of colour flows.
Definition:
GeneralThreeBodyDecayer.h:177
ThePEG::Particle
Herwig::GeneralThreeBodyDecayer::getLargeNcColourFactors
const vector< DVector > & getLargeNcColourFactors() const
Return the matrix of colour factors.
Definition:
GeneralThreeBodyDecayer.h:192
Herwig::GeneralThreeBodyDecayer::PMPair
pair< tcPDPtr, Energy > PMPair
A ParticleData ptr and (possible) mass pair.
Definition:
GeneralThreeBodyDecayer.h:26
Herwig::GeneralThreeBodyDecayer::incoming
PDPtr incoming() const
Incoming particle.
Definition:
GeneralThreeBodyDecayer.h:167
ThePEG::PersistentOStream
Herwig::GeneralThreeBodyDecayer::diagrams_
vector< TBDiagram > diagrams_
Store the diagrams for the decay.
Definition:
GeneralThreeBodyDecayer.h:268
Herwig::GeneralThreeBodyDecayer::getColourFactors
const vector< DVector > & getColourFactors() const
Return the matrix of colour factors.
Definition:
GeneralThreeBodyDecayer.h:187
ThePEG::Helicity::incoming
incoming
ThePEG
Herwig::GeneralThreeBodyDecayer::widthOpt_
unsigned int widthOpt_
Option for the treatment of the widths.
Definition:
GeneralThreeBodyDecayer.h:298
Herwig::GeneralThreeBodyDecayer::diagramMap
const vector< unsigned int > & diagramMap() const
Get the mapping between the phase-space channel and the diagram.
Definition:
GeneralThreeBodyDecayer.h:199
ThePEG::Helicity::outgoing
outgoing
Herwig::GeneralThreeBodyDecayer::nflow_
unsigned int nflow_
The number of colourflows.
Definition:
GeneralThreeBodyDecayer.h:288
Herwig::GeneralThreeBodyDecayer
Here is the documentation of the GeneralThreeBodyDecayer class.
Definition:
GeneralThreeBodyDecayer.h:21
ThePEG::tPDVector
vector< tPDPtr > tPDVector
Herwig::GeneralThreeBodyDecayer::widthCalc_
WidthCalculatorBasePtr widthCalc_
Reference to object to calculate the partial width.
Definition:
GeneralThreeBodyDecayer.h:293
Herwig::DecayIntegrator
Main class for Decayers implementing multi-channel phase space integration.
Definition:
DecayIntegrator.h:62
ThePEG::tcPDPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
ThePEG::PDPtr
ThePEG::Ptr< ParticleData >::pointer PDPtr
Herwig::GeneralThreeBodyDecayer::outgoing
const vector< PDPtr > & outgoing() const
Outgoing particles.
Definition:
GeneralThreeBodyDecayer.h:172
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::relerr_
double relerr_
Relative error for GQ integration of partial width.
Definition:
GeneralThreeBodyDecayer.h:327
Herwig::GeneralThreeBodyDecayer::widthOption
unsigned int widthOption() const
Option for the handling of the widths of the intermediate particles.
Definition:
GeneralThreeBodyDecayer.h:206
Herwig::GeneralThreeBodyDecayer::colourLargeNC_
vector< DVector > colourLargeNC_
Store cololur factors for ME calc at large N_c.
Definition:
GeneralThreeBodyDecayer.h:283
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG::DecayMode
Herwig::GeneralThreeBodyDecayer::GeneralThreeBodyDecayer
GeneralThreeBodyDecayer()
The default constructor.
Definition:
GeneralThreeBodyDecayer.h:34
ThePEG::ParticleVector
vector< PPtr > ParticleVector
Herwig::GeneralThreeBodyDecayer::incoming_
PDPtr incoming_
Store the incoming particle.
Definition:
GeneralThreeBodyDecayer.h:258
Herwig::GeneralThreeBodyDecayer::outgoing_
vector< PDPtr > outgoing_
Outgoing particles.
Definition:
GeneralThreeBodyDecayer.h:263
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::colourFlow
unsigned int const & colourFlow() const
Set the colour flow.
Definition:
GeneralThreeBodyDecayer.h:238
Herwig::GeneralThreeBodyDecayer::iflow_
unsigned int iflow_
The colour flow.
Definition:
GeneralThreeBodyDecayer.h:317
Herwig::GeneralThreeBodyDecayer::colour_
vector< DVector > colour_
Store colour factors for ME calc.
Definition:
GeneralThreeBodyDecayer.h:278
Herwig::GeneralThreeBodyDecayer::diagmap_
vector< unsigned int > diagmap_
Map between the diagrams and the phase-space channels.
Definition:
GeneralThreeBodyDecayer.h:273
Generated on Sat Apr 11 2020 14:50:29 for Herwig by
1.8.13