herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
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
17namespace Herwig {
18
19using namespace ThePEG;
20
53
54public:
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
86public:
87
95
101 void persistentInput(PersistentIStream & is, int version);
103
110 static void Init();
111
112public:
113
117 static double VAWt(Energy2, Energy2, Energy2, InvEnergy4);
118
119protected:
120
127 virtual IBPtr clone() const;
128
133 virtual IBPtr fullclone() const;
135
143 double threeBodyMatrixElement(tcPDPtr dec,const RhoDMatrix & rhoin,
144 Lorentz5Momentum & pdec,
145 ParticleVector& partons) const;
146
158 double fourBodyMatrixElement(Lorentz5Momentum & p0,Lorentz5Momentum & p1,
159 Lorentz5Momentum & p2,Lorentz5Momentum & p3,
160 Lorentz5Momentum & pg,bool Wcol, bool & initial) const;
161
162private:
163
169
170private:
171
176
180 double _radprob;
181
185 unsigned int _maxtry;
186
190 double _threemax;
191
195 double _fourmax;
196};
197
198}
199
200#endif /* HERWIG_WeakPartonicDecayer_H */
Here is the documentation of the PartonicDecayerBase class.
The WeakPartonicDecayer class is designed to replace the HeavyDecayer class which implements the part...
WeakPartonicDecayer & operator=(const WeakPartonicDecayer &)=delete
The assignment operator is private and must never be called.
virtual void dataBaseOutput(ofstream &os, bool header) const
Output the setup information for the particle database.
static void Init()
The standard Init function used to initialize the interfaces.
double _threemax
Maximum weight for three-body decays.
unsigned int _maxtry
Maximum number of tries to generate the kinematics.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
double threeBodyMatrixElement(tcPDPtr dec, const RhoDMatrix &rhoin, Lorentz5Momentum &pdec, ParticleVector &partons) const
Compute matrix for tau decay in three body case.
virtual bool accept(tcPDPtr parent, const tPDVector &children) const
Check if this decayer can perfom the decay for a particular mode.
WeakPartonicDecayer()
The default constructor.
double fourBodyMatrixElement(Lorentz5Momentum &p0, Lorentz5Momentum &p1, Lorentz5Momentum &p2, Lorentz5Momentum &p3, Lorentz5Momentum &pg, bool Wcol, bool &initial) const
Four body matrix element for weak decay including an extra gluon.
static double VAWt(Energy2, Energy2, Energy2, InvEnergy4)
Weighting of phase space for V-A matrix elements.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual IBPtr clone() const
Make a simple clone of this object.
virtual ParticleVector decay(const Particle &parent, const tPDVector &children) const
Perform the decay of the particle to the specified decay products.
double _radprob
Probablilty of radiation giving an extra quark-antiquark pair.
double _fourmax
Maximum weight for four-body decays.
int MECode
The code for the matrix element being used.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
vector< tPDPtr > tPDVector
vector< PPtr > ParticleVector
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr