herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
WeakPartonicDecayer.h
1 // -*- C++ -*-
2 //
3 // WeakPartonicDecayer.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4 // Copyright (C) 2002-2019 The Herwig Collaboration
5 //
6 // Herwig is licenced under version 3 of the GPL, see COPYING for details.
7 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
8 //
9 #ifndef HERWIG_WeakPartonicDecayer_H
10 #define HERWIG_WeakPartonicDecayer_H
11 //
12 // This is the declaration of the WeakPartonicDecayer class.
13 //
14 
15 #include "PartonicDecayerBase.h"
16 
17 namespace Herwig {
18 
19 using namespace ThePEG;
20 
53 
54 public:
55 
60 
67  virtual bool accept(tcPDPtr parent, const tPDVector & children) const;
68 
69 
76  virtual ParticleVector decay(const Particle & parent,
77  const tPDVector & children) const;
78 
84  virtual void dataBaseOutput(ofstream & os,bool header) const;
85 
86 public:
87 
94  void persistentOutput(PersistentOStream & os) const;
95 
101  void persistentInput(PersistentIStream & is, int version);
103 
110  static void Init();
111 
112 public:
113 
117  static double VAWt(Energy2, Energy2, Energy2, InvEnergy4);
118 
119 protected:
120 
127  virtual IBPtr clone() const;
128 
133  virtual IBPtr fullclone() const;
135 
142  void threeBodyMatrixElement(tcPDPtr dec,Lorentz5Momentum & pdec,
143  ParticleVector& partons) const;
144 
156  double fourBodyMatrixElement(Lorentz5Momentum & p0,Lorentz5Momentum & p1,
157  Lorentz5Momentum & p2,Lorentz5Momentum & p3,
158  Lorentz5Momentum & pg,bool Wcol, bool & initial) const;
159 
160 private:
161 
166  WeakPartonicDecayer & operator=(const WeakPartonicDecayer &) = delete;
167 
168 private:
169 
173  int MECode;
174 
178  double _radprob;
179 
183  unsigned int _maxtry;
184 
188  double _threemax;
189 
193  double _fourmax;
194 };
195 
196 }
197 
198 #endif /* HERWIG_WeakPartonicDecayer_H */
unsigned int _maxtry
Maximum number of tries to generate the kinematics.
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
double _radprob
Probablilty of radiation giving an extra quark-antiquark pair.
vector< tPDPtr > tPDVector
The WeakPartonicDecayer class is designed to replace the HeavyDecayer class which implements the part...
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
-*- C++ -*-
Here is the documentation of the PartonicDecayerBase class.
vector< PPtr > ParticleVector
int MECode
The code for the matrix element being used.
double _fourmax
Maximum weight for four-body decays.
double _threemax
Maximum weight for three-body decays.