herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
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 
11 namespace Herwig {
12 
13 using namespace ThePEG;
14 
22 
23 public:
24 
28  GeneralFourBodyDecayer(): nflow_(999), widthOpt_(1),
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,
66  OrderedParticles outgoing) const;
67 
68 public:
69 
76  void persistentOutput(PersistentOStream & os) const;
77 
83  void persistentInput(PersistentIStream & is, int version);
85 
92  static void Init();
93 
94 protected:
95 
99  PDPtr incoming() const { return incoming_; }
100 
104  const vector<PDPtr> & 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 
168 protected:
169 
177  virtual void doinit();
179 
180 private:
181 
186  GeneralFourBodyDecayer & operator=(const GeneralFourBodyDecayer &) = delete;
187 
188 private:
189 
194 
198  vector<PDPtr> outgoing_;
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 */
unsigned int nflow_
The number of colourflows.
unsigned int widthOpt_
Option for the treatment of the widths.
ThePEG::Ptr< ParticleData >::transient_pointer tPDPtr
unsigned int iflow_
The colour flow.
vector< NBDiagram > diagrams_
Store the diagrams for the decay.
vector< unsigned int > diagmap_
Map between the diagrams and the phase-space channels.
unsigned int widthOption() const
Option for the handling of the widths of the intermediate particles.
Here is the documentation of the GeneralFourBodyDecayer class.
const vector< NBDiagram > & getProcessInfo() const
Access the TBDiagrams that store the required information to create the diagrams. ...
string refTag_
Store a decay tag for this mode that can be tested when trying to determine whether it can be generat...
const vector< PDPtr > & outgoing() const
Outgoing particles.
PDPtr incoming_
Store the incoming particle.
multiset< PDPtr, ParticleOrdering > OrderedParticles
A set of ParticleData objects ordered as for the DecayMode&#39;s.
vector< tPDPtr > tPDVector
const vector< DVector > & getLargeNcColourFactors() const
Return the matrix of colour factors.
string refTagCC_
Store a decay tag for the cc-mode that can be tested when trying to determine whether it can be gener...
Main class for Decayers implementing multi-channel phase space integration.
vector< DVector > colour_
Store colour factors for ME calc.
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
vector< DVector > colourLargeNC_
Store cololur factors for ME calc at large N_c.
ThePEG::Ptr< ParticleData >::pointer PDPtr
vector< PDPtr > outgoing_
Outgoing particles.
unsigned int numberOfFlows() const
Number of colour flows.
const vector< DVector > & getColourFactors() const
Return the matrix of colour factors.
PDPtr incoming() const
Incoming particle.
GeneralFourBodyDecayer()
The default constructor.
-*- C++ -*-
void colourFlow(unsigned int flow) const
Set the colour flow.
vector< PPtr > ParticleVector
unsigned int const & colourFlow() const
Set the colour flow.
const vector< unsigned int > & diagramMap() const
Get the mapping between the phase-space channel and the diagram.