herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
FFqqxDipole.h
1// -*- C++ -*-
2//
3// FFqqxDipole.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_FFqqxDipole_H
10#define HERWIG_FFqqxDipole_H
11//
12// This is the declaration of the FFqqxDipole 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 && abs(partons[emitter]->id()) < 7;
45 }
46
51 virtual bool canHandleSplitting(const cPDVector& partons, int emitter, int emission) const {
52 return
53 canHandleEmitter(partons,emitter) &&
54 partons[emitter]->id() + partons[emission]->id() == 0;
55 }
56
61 virtual bool canHandleSpectator(const cPDVector& partons, int spectator) const {
62 return spectator > 1 && partons[spectator]->coloured();
63 }
64
69 virtual bool canHandle(const cPDVector& partons,
70 int emitter, int emission, int spectator) const;
71
80 virtual int samplingZ() const {return 1;}
81
86 virtual bool isSymmetric() const { return true; }
87
93 virtual double me2() const;
94
98 virtual double me2Avg(double ccme2) const;
99
100public:
101
109
115 void persistentInput(PersistentIStream & is, int version);
117
124 static void Init();
125
126protected:
127
134 virtual IBPtr clone() const;
135
140 virtual IBPtr fullclone() const;
142
143
144// If needed, insert declarations of virtual function defined in the
145// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
146
147
148private:
149
154 FFqqxDipole & operator=(const FFqqxDipole &) = delete;
155
156};
157
158}
159
160#endif /* HERWIG_FFqqxDipole_H */
FFqqxDipole implements the D_{q,qbar;k} subtraction dipole.
Definition: FFqqxDipole.h:28
FFqqxDipole & operator=(const FFqqxDipole &)=delete
The assignment operator is private and must never be called.
FFqqxDipole()
The default constructor.
virtual bool canHandleEmitter(const cPDVector &partons, int emitter) const
Return true, if this dipole can possibly handle the indicated emitter.
Definition: FFqqxDipole.h:43
virtual int samplingZ() const
How to sample the z-distribution.
Definition: FFqqxDipole.h:80
virtual bool canHandleSplitting(const cPDVector &partons, int emitter, int emission) const
Return true, if this dipole can possibly handle the indicated splitting.
Definition: FFqqxDipole.h:51
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual double me2Avg(double ccme2) const
Return the matrix element averaged over spin correlations.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual bool isSymmetric() const
Return true, if this dipole is symmetric with respect to emitter and emission.
Definition: FFqqxDipole.h:86
static void Init()
The standard Init function used to initialize the interfaces.
virtual bool canHandle(const cPDVector &partons, int emitter, int emission, int spectator) const
Return true, if this dipole applies to the selected configuration.
virtual IBPtr clone() const
Make a simple clone of this object.
virtual bool canHandleSpectator(const cPDVector &partons, int spectator) const
Return true, if this dipole can possibly handle the indicated spectator.
Definition: FFqqxDipole.h:61
virtual double me2() const
Return the matrix element for the kinematical configuation previously provided by the last call to se...
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