herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
GeneralFourBodyDecayer.h
1// -*- C++ -*-
2#ifndef HERWIG_GeneralFourBodyDecayer_H
3#define HERWIG_GeneralFourBodyDecayer_H
4//
5// This is the declaration of the GeneralFourBodyDecayer class.
6//
7
8#include "Herwig/Decay/DecayIntegrator.h"
9#include "Herwig/Models/General/PrototypeVertex.h"
10
11namespace Herwig {
12
13using namespace ThePEG;
14
22
23public:
24
29 refTag_(), refTagCC_(), iflow_(999)
30 {}
31
40 virtual ParticleVector decay(const Particle & parent,
41 const tPDVector & children) const;
42
49 virtual int modeNumber(bool & cc, tcPDPtr parent,
50 const tPDVector & children) const;
51
55 bool setDecayInfo(PDPtr incoming,vector<PDPtr> outgoing,
56 const vector<NBDiagram> & process,
57 double symfac);
59
65 virtual Energy partialWidth(tPDPtr inpart,
67
68public:
69
77
83 void persistentInput(PersistentIStream & is, int version);
85
92 static void Init();
93
94protected:
95
99 PDPtr incoming() const { return incoming_; }
100
104 const tPDVector & outgoing() const { return outgoing_; }
105
109 unsigned int numberOfFlows() const { return nflow_; }
110
114 bool setColourFactors(double symfac);
115
119 const vector<DVector> & getColourFactors() const { return colour_; }
120
124 const vector<DVector> & getLargeNcColourFactors() const {
125 return colourLargeNC_;
126 }
127
131 unsigned int widthOption() const { return widthOpt_; }
132
139 void colourConnections(const Particle & parent,
140 const ParticleVector & out) const;
141
146 void colourFlow(unsigned int flow) const { iflow_ = flow; }
147
151 unsigned int const & colourFlow() const { return iflow_; }
152
157 const vector<NBDiagram> & getProcessInfo() const {
158 return diagrams_;
159 }
160
164 const vector<unsigned int> & diagramMap() const {
165 return diagmap_;
166 }
167
168protected:
169
177 virtual void doinit();
179
180private:
181
187
188private:
189
194
199
203 vector<NBDiagram> diagrams_;
204
208 vector<unsigned int> diagmap_;
209
213 vector<DVector> colour_;
214
218 vector<DVector> colourLargeNC_;
219
223 unsigned int nflow_;
224
228 unsigned int widthOpt_;
229
235 string refTag_;
236
242 string refTagCC_;
243
247 mutable unsigned int iflow_;
248};
249
250}
251
252#endif /* HERWIG_GeneralFourBodyDecayer_H */
Main class for Decayers implementing multi-channel phase space integration.
Here is the documentation of the GeneralFourBodyDecayer class.
unsigned int const & colourFlow() const
Set the colour flow.
const tPDVector & outgoing() const
Outgoing particles.
const vector< NBDiagram > & getProcessInfo() const
Access the TBDiagrams that store the required information to create the diagrams.
unsigned int widthOption() const
Option for the handling of the widths of the intermediate particles.
PDPtr incoming_
Store the incoming particle.
void colourConnections(const Particle &parent, const ParticleVector &out) const
Set colour connections.
unsigned int iflow_
The colour flow.
GeneralFourBodyDecayer & operator=(const GeneralFourBodyDecayer &)=delete
The assignment operator is private and must never be called.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
vector< DVector > colourLargeNC_
Store cololur factors for ME calc at large N_c.
const vector< DVector > & getColourFactors() const
Return the matrix of colour factors.
unsigned int nflow_
The number of colourflows.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
vector< unsigned int > diagmap_
Map between the diagrams and the phase-space channels.
unsigned int widthOpt_
Option for the treatment of the widths.
const vector< unsigned int > & diagramMap() const
Get the mapping between the phase-space channel and the diagram.
unsigned int numberOfFlows() const
Number of colour flows.
string refTag_
Store a decay tag for this mode that can be tested when trying to determine whether it can be generat...
GeneralFourBodyDecayer()
The default constructor.
virtual int modeNumber(bool &cc, tcPDPtr parent, const tPDVector &children) const
Which of the possible decays is required.
tPDVector outgoing_
Outgoing particles.
vector< DVector > colour_
Store colour factors for ME calc.
vector< NBDiagram > diagrams_
Store the diagrams for the decay.
PDPtr incoming() const
Incoming particle.
bool setDecayInfo(PDPtr incoming, vector< PDPtr > outgoing, const vector< NBDiagram > &process, double symfac)
Set the diagrams.
static void Init()
The standard Init function used to initialize the interfaces.
bool setColourFactors(double symfac)
Set up the colour factors.
const vector< DVector > & getLargeNcColourFactors() const
Return the matrix of colour factors.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual Energy partialWidth(tPDPtr inpart, OrderedParticles outgoing) const
Function to return partial Width.
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...
void colourFlow(unsigned int flow) const
Set the colour flow.
string refTagCC_
Store a decay tag for the cc-mode that can be tested when trying to determine whether it can be gener...
-*- C++ -*-
multiset< PDPtr, ParticleOrdering > OrderedParticles
A set of ParticleData objects ordered as for the DecayMode's.
ThePEG::Ptr< ParticleData >::transient_pointer tPDPtr
vector< tPDPtr > tPDVector
vector< PPtr > ParticleVector
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
ThePEG::Ptr< ParticleData >::pointer PDPtr