herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
FIggxDipole.h
1// -*- C++ -*-
2//
3// FIggxDipole.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_FIggxDipole_H
10#define HERWIG_FIggxDipole_H
11//
12// This is the declaration of the FIggxDipole class.
13//
14
15#include "Herwig/MatrixElement/Matchbox/Dipoles/SubtractionDipole.h"
16
17namespace Herwig {
18
19using namespace ThePEG;
20
29
30public:
31
36
37public:
38
43 virtual bool canHandleEmitter(const cPDVector& partons, int emitter) const {
44 return emitter > 1 && partons[emitter]->id() == ParticleID::g;
45 }
46
51 virtual bool canHandleSplitting(const cPDVector& partons, int emitter, int emission) const {
52 return canHandleEmitter(partons,emitter) && partons[emission]->id() == ParticleID::g;
53 }
54
59 virtual bool canHandleSpectator(const cPDVector& partons, int spectator) const {
60 return spectator < 2 && partons[spectator]->coloured();
61 }
62
67 virtual bool canHandle(const cPDVector& partons,
68 int emitter, int emission, int spectator) const;
69
78 virtual int samplingZ() const {return 4;}
79
84 virtual bool isSymmetric() const { return true; }
85
91 virtual double me2() const;
92
96 virtual double me2Avg(double ccme2) const;
97
98public:
99
107
113 void persistentInput(PersistentIStream & is, int version);
115
122 static void Init();
123
124protected:
125
132 virtual IBPtr clone() const;
133
138 virtual IBPtr fullclone() const;
140
141
142// If needed, insert declarations of virtual function defined in the
143// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
144
145
146private:
147
152 FIggxDipole & operator=(const FIggxDipole &) = delete;
153
154};
155
156}
157
158#endif /* HERWIG_FIggxDipole_H */
FIggxDipole implements the D_{g,g}^a subtraction dipole.
Definition: FIggxDipole.h:28
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual bool canHandleSplitting(const cPDVector &partons, int emitter, int emission) const
Return true, if this dipole can possibly handle the indicated splitting.
Definition: FIggxDipole.h:51
virtual double me2() const
Return the matrix element for the kinematical configuation previously provided by the last call to se...
virtual bool canHandleEmitter(const cPDVector &partons, int emitter) const
Return true, if this dipole can possibly handle the indicated emitter.
Definition: FIggxDipole.h:43
virtual bool canHandle(const cPDVector &partons, int emitter, int emission, int spectator) const
Return true, if this dipole applies to the selected configuration.
virtual bool canHandleSpectator(const cPDVector &partons, int spectator) const
Return true, if this dipole can possibly handle the indicated spectator.
Definition: FIggxDipole.h:59
virtual double me2Avg(double ccme2) const
Return the matrix element averaged over spin correlations.
virtual int samplingZ() const
How to sample the z-distribution.
Definition: FIggxDipole.h:78
static void Init()
The standard Init function used to initialize the interfaces.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual bool isSymmetric() const
Return true, if this dipole is symmetric with respect to emitter and emission.
Definition: FIggxDipole.h:84
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
FIggxDipole & operator=(const FIggxDipole &)=delete
The assignment operator is private and must never be called.
FIggxDipole()
The default constructor.
virtual IBPtr clone() const
Make a simple clone of this object.
SubtractionDipole represents a dipole subtraction term in the formalism of Catani and Seymour.
static int emission(const RealEmissionKey &key)
Return the emission id of a real emission key.
static int emitter(const RealEmissionKey &key)
Return the emitter id of a real emission key.
static int spectator(const RealEmissionKey &key)
Return the spectator id of a real emission key.
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
vector< cPDPtr > cPDVector