herwig is hosted by Hepforge, IPPP Durham
Herwig  7.1.5
FIgx2qqxDipoleKernel.h
1 // -*- C++ -*-
2 #ifndef HERWIG_FIgx2qqxDipoleKernel_H
3 #define HERWIG_FIgx2qqxDipoleKernel_H
4 //
5 // This is the declaration of the FIgx2qqxDipoleKernel class.
6 //
7 
8 #include "DipoleSplittingKernel.h"
9 
10 namespace Herwig {
11 
12 using namespace ThePEG;
13 
23 
24 public:
25 
32 
36  virtual ~FIgx2qqxDipoleKernel();
38 
39 public:
40 
45  virtual bool canHandle(const DipoleIndex&) const;
46 
52  virtual bool canHandleEquivalent(const DipoleIndex& a,
53  const DipoleSplittingKernel& sk,
54  const DipoleIndex& b) const;
55 
60  virtual tcPDPtr emitter(const DipoleIndex&) const;
61 
66  virtual tcPDPtr emission(const DipoleIndex&) const;
67 
72  virtual tcPDPtr spectator(const DipoleIndex&) const;
73 
78  virtual double evaluate(const DipoleSplittingInfo&) const;
79 
80 public:
81 
88  void persistentOutput(PersistentOStream & os) const;
89 
95  void persistentInput(PersistentIStream & is, int version);
97 
104  static void Init();
105 
106 protected:
107 
114  virtual IBPtr clone() const;
115 
120  virtual IBPtr fullclone() const;
122 
123 
124 // If needed, insert declarations of virtual function defined in the
125 // InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
126 
127 
128 private:
129 
135 
140  FIgx2qqxDipoleKernel & operator=(const FIgx2qqxDipoleKernel &) = delete;
141 
142 };
143 
144 }
145 
146 #include "ThePEG/Utilities/ClassTraits.h"
147 
148 namespace ThePEG {
149 
154 template <>
155 struct BaseClassTrait<Herwig::FIgx2qqxDipoleKernel,1> {
157  typedef Herwig::DipoleSplittingKernel NthBase;
158 };
159 
162 template <>
163 struct ClassTraits<Herwig::FIgx2qqxDipoleKernel>
164  : public ClassTraitsBase<Herwig::FIgx2qqxDipoleKernel> {
166  static string className() { return "Herwig::FIgx2qqxDipoleKernel"; }
174  static string library() { return "HwDipoleShower.so"; }
175 };
176 
179 }
180 
181 #endif /* HERWIG_FIgx2qqxDipoleKernel_H */
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
DipoleIndex is used to index splitting generators for a particular dipole.
FIgx2qqxDipoleKernel implements the g -> qqbar splitting off a final-initial dipole.
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
static ClassDescription< FIgx2qqxDipoleKernel > initFIgx2qqxDipoleKernel
The static object used to initialize the description of this class.
-*- C++ -*-
DipoleSplittingInfo contains all parameters to generate a full dipole splitting.
DipoleSplittingKernel is the base class for all kernels used within the dipole shower.