herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
FIgx2ggxDipoleKernel.h
1// -*- C++ -*-
2#ifndef HERWIG_FIgx2ggxDipoleKernel_H
3#define HERWIG_FIgx2ggxDipoleKernel_H
4//
5// This is the declaration of the FIgx2ggxDipoleKernel class.
6//
7
8#include "DipoleSplittingKernel.h"
9
10namespace Herwig {
11
12using namespace ThePEG;
13
23
24public:
25
30
31public:
32
37 virtual bool canHandle(const DipoleIndex&) const;
38
44 virtual bool canHandleEquivalent(const DipoleIndex& a,
45 const DipoleSplittingKernel& sk,
46 const DipoleIndex& b) const;
47
52 virtual tcPDPtr emitter(const DipoleIndex&) const;
53
58 virtual tcPDPtr emission(const DipoleIndex&) const;
59
64 virtual tcPDPtr spectator(const DipoleIndex&) const;
65
70 virtual double evaluate(const DipoleSplittingInfo&) const;
71
76 virtual vector< pair<int, Complex> > generatePhi( const DipoleSplittingInfo& dInfo, const RhoDMatrix& rho) const;
77
81 virtual DecayMEPtr matrixElement(const DipoleSplittingInfo& dInfo) const;
82
83public:
84
92
98 void persistentInput(PersistentIStream & is, int version);
100
107 static void Init();
108
109protected:
110
117 virtual IBPtr clone() const;
118
123 virtual IBPtr fullclone() const;
125
126
127// If needed, insert declarations of virtual function defined in the
128// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
129
130
131private:
137
143
149
150};
151
152}
153
154#include "ThePEG/Utilities/ClassTraits.h"
155
156namespace ThePEG {
157
162template <>
163struct BaseClassTrait<Herwig::FIgx2ggxDipoleKernel,1> {
166};
167
170template <>
171struct ClassTraits<Herwig::FIgx2ggxDipoleKernel>
172 : public ClassTraitsBase<Herwig::FIgx2ggxDipoleKernel> {
174 static string className() { return "Herwig::FIgx2ggxDipoleKernel"; }
182 static string library() { return "HwDipoleShower.so"; }
183};
184
187}
188
189#endif /* HERWIG_FIgx2ggxDipoleKernel_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.
FIgx2ggxDipoleKernel implements the g -> gg splitting off a final-initial dipole.
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...
FIgx2ggxDipoleKernel & operator=(const FIgx2ggxDipoleKernel &)=delete
The assignment operator is private and must never be called.
virtual tcPDPtr emission(const DipoleIndex &) const
Return the emission data after splitting, given a dipole index.
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 bool canHandle(const DipoleIndex &) const
Return true, if this splitting kernel applies to the given dipole index.
virtual IBPtr clone() const
Make a simple clone of this object.
static ClassDescription< FIgx2ggxDipoleKernel > initFIgx2ggxDipoleKernel
The static object used to initialize the description of this class.
virtual tcPDPtr spectator(const DipoleIndex &) const
Return the spectator data after splitting, given a dipole index.
int theAsymmetryOption
Asymmetry option for final state gluon splittings.
FIgx2ggxDipoleKernel()
The default constructor.
static void Init()
The standard Init function used to initialize the interfaces.
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...
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
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.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
static string className()
static string library()