herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
FIMDecaygx2ggxDipoleKernel.h
1// -*- C++ -*-
2#ifndef HERWIG_FIMDecaygx2ggxDipoleKernel_H
3#define HERWIG_FIMDecaygx2ggxDipoleKernel_H
4//
5// This is the declaration of the FIMDecaygx2ggxDipoleKernel class.
6//
7
8#include "DipoleSplittingKernel.h"
9
10namespace Herwig {
11
12using namespace ThePEG;
13
24
25public:
26
31
32public:
33
38 virtual bool canHandle(const DipoleIndex&) const;
39
45 virtual bool canHandleEquivalent(const DipoleIndex& a,
46 const DipoleSplittingKernel& sk,
47 const DipoleIndex& b) const;
48
53 virtual tcPDPtr emitter(const DipoleIndex&) const;
54
59 virtual tcPDPtr emission(const DipoleIndex&) const;
60
65 virtual tcPDPtr spectator(const DipoleIndex&) const;
66
71 virtual double evaluate(const DipoleSplittingInfo&) const;
72
77 virtual vector< pair<int, Complex> > generatePhi( const DipoleSplittingInfo& dInfo, const RhoDMatrix& rho) const;
78
82 virtual DecayMEPtr matrixElement(const DipoleSplittingInfo& dInfo) const;
83
84public:
85
93
99 void persistentInput(PersistentIStream & is, int version);
101
108 static void Init();
109
110protected:
111
118 virtual IBPtr clone() const;
119
124 virtual IBPtr fullclone() const;
126
127
128// If needed, insert declarations of virtual function defined in the
129// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
130
131
132private:
133
139
145
150};
151
152}
153
154#include "ThePEG/Utilities/ClassTraits.h"
155
156namespace ThePEG {
157
162template <>
163struct BaseClassTrait<Herwig::FIMDecaygx2ggxDipoleKernel,1> {
166};
167
170template <>
171struct ClassTraits<Herwig::FIMDecaygx2ggxDipoleKernel>
172 : public ClassTraitsBase<Herwig::FIMDecaygx2ggxDipoleKernel> {
174 static string className() { return "Herwig::FIMDecaygx2ggxDipoleKernel"; }
182 static string library() { return "HwDipoleShower.so"; }
183};
184
187}
188
189#endif /* HERWIG_FIMDecaygx2ggxDipoleKernel_H */
DipoleIndex is used to index splitting generators for a particular dipole.
DipoleSplittingInfo contains all parameters to generate a full dipole splitting.
DipoleSplittingKernel is the base class for all kernels used within the dipole shower.
FIMDecaygx2ggxDipoleKernel implements the g -> gg splitting off a final-initial decay dipole and incl...
virtual DecayMEPtr matrixElement(const DipoleSplittingInfo &dInfo) const
Return the completely spin-unaveraged (i.e.
virtual tcPDPtr emitter(const DipoleIndex &) const
Return the emitter data after splitting, given a dipole index.
virtual tcPDPtr emission(const DipoleIndex &) const
Return the emission data after splitting, given a dipole index.
virtual tcPDPtr spectator(const DipoleIndex &) const
Return the spectator data after splitting, given a dipole index.
virtual IBPtr clone() const
Make a simple clone of this object.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
static void Init()
The standard Init function used to initialize the interfaces.
static ClassDescription< FIMDecaygx2ggxDipoleKernel > initFIMDecaygx2ggxDipoleKernel
The static object used to initialize the description of this class.
FIMDecaygx2ggxDipoleKernel & operator=(const FIMDecaygx2ggxDipoleKernel &)=delete
The assignment operator is private and must never be called.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual double evaluate(const DipoleSplittingInfo &) const
Evaluate this splitting kernel for the given dipole splitting.
FIMDecaygx2ggxDipoleKernel()
The default constructor.
virtual vector< pair< int, Complex > > generatePhi(const DipoleSplittingInfo &dInfo, const RhoDMatrix &rho) const
Evaluate rho_ii' V_ijk V*_i'jk / equivalent for initial-state splitting, required for generating spin...
virtual bool canHandle(const DipoleIndex &) const
Return true, if this splitting kernel applies to the given dipole index.
int theAsymmetryOption
Asymmetry option for final state gluon splittings.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual bool canHandleEquivalent(const DipoleIndex &a, const DipoleSplittingKernel &sk, const DipoleIndex &b) const
Return true, if this splitting kernel is the same for the given index a, as the given splitting kerne...
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
static string className()
static string library()