herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
MatchboxInsertionOperator.h
1// -*- C++ -*-
2//
3// MatchboxInsertionOperator.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_MatchboxInsertionOperator_H
10#define HERWIG_MatchboxInsertionOperator_H
11//
12// This is the declaration of the MatchboxInsertionOperator class.
13//
14
15#include "ThePEG/Handlers/HandlerBase.h"
16#include "ThePEG/Handlers/StandardXComb.h"
17#include "ThePEG/Handlers/LastXCombInfo.h"
18#include "Herwig/MatrixElement/Matchbox/InsertionOperators/MatchboxInsertionOperator.fh"
19#include "Herwig/MatrixElement/Matchbox/Utility/LastMatchboxXCombInfo.h"
20#include "Herwig/MatrixElement/Matchbox/Base/MatchboxMEBase.fh"
21#include "Herwig/MatrixElement/Matchbox/MatchboxFactory.fh"
22
23namespace Herwig {
24
25using namespace ThePEG;
26
37 public HandlerBase,
38 public LastXCombInfo<StandardXComb>,
40
41public:
42
49
55
56public:
57
61 Ptr<MatchboxFactory>::tptr factory() const;
62
65
70 virtual bool apply(const cPDVector&) const = 0;
71
76 Ptr<MatchboxMEBase>::tptr lastBorn() const ;
77
82 virtual void setXComb(tStdXCombPtr xc) {
83 theLastXComb = xc;
85 }
86
87
91 virtual void setAlpha(double )const {assert(false);}
92
93
94
99 virtual int nDimAdditional() const { return 0; }
100
102
105
106
111 virtual bool isDRbar() const;
117 virtual bool isDR() const;
122 virtual bool isCS() const;
127 virtual bool isBDK() const;
132 virtual bool isExpanded() const;
136 virtual double oneLoopDoublePole() const { return 0.; }
137
141 virtual double oneLoopSinglePole() const { return 0.; }
142
144
147
153 virtual double me2() const = 0;
154
160 virtual CrossSection dSigHatDR() const;
161
162
167 virtual CrossSection dSigHatDRAlphaDiff(double alpha) const{
168 setAlpha(alpha);
169 CrossSection res=dSigHatDR();
170 setAlpha(1.);
171 return res-dSigHatDR();
172 }
173
175
178
184 virtual void flushCaches() {}
185
189 Ptr<MatchboxInsertionOperator>::ptr cloneMe() const {
190 return dynamic_ptr_cast<Ptr<MatchboxInsertionOperator>::ptr>(clone());
191 }
192
196 virtual void cloneDependencies(const std::string& prefix = "");
197
199
200public:
201
209
215 void persistentInput(PersistentIStream & is, int version);
217
224 static void Init();
225
226
227// If needed, insert declarations of virtual function defined in the
228// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
229
230private:
231
237
238};
239
240}
241
242#endif /* HERWIG_MatchboxInsertionOperator_H */
Provide easy access to MatchboxXComb XComb extensions.
MatchboxXCombData * lastMatchboxXComb() const
Return a pointer to the last selected XComb.
MatchboxInsertionOperator is the base class for insertion operators.
Ptr< MatchboxMEBase >::tptr lastBorn() const
Return the Born matrix element this class represents virtual corrections to.
virtual bool isBDK() const
Return true, if the virtual correction has been calculated in the BDK convention.
virtual CrossSection dSigHatDR() const
Evaluate the finite virtual correction for the variables supplied through the Born XComb object and p...
virtual bool isExpanded() const
Return true, if the virtual correction has been calculated in the expanded convention.
virtual CrossSection dSigHatDRAlphaDiff(double alpha) const
Evaluate the difference of dSigHatDR with and without alpha parameter.
Ptr< MatchboxInsertionOperator >::ptr cloneMe() const
Clone this insertion operator.
static void Init()
The standard Init function used to initialize the interfaces.
virtual double oneLoopSinglePole() const
If defined, return the coefficient of the pole in epsilon.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
MatchboxInsertionOperator()
The default constructor.
virtual int nDimAdditional() const
Return the number of additional random variables needed to calculate this virtual correction.
virtual double me2() const =0
Evaluate the finite virtual correction for the variables supplied through the Born XComb object and p...
MatchboxInsertionOperator & operator=(const MatchboxInsertionOperator &)=delete
The assignment operator is private and must never be called.
virtual void setXComb(tStdXCombPtr xc)
Set the XComb object steering the Born matrix element this class represents virtual corrections to.
virtual bool isCS() const
Return true, if the virtual correction has been calculated in the dipole convention.
virtual bool isDRbar() const
Return true, if the amplitude is DRbar renormalized, otherwise MSbar is assumed.
virtual double oneLoopDoublePole() const
If defined, return the coefficient of the pole in epsilon^2.
virtual bool isDR() const
Return true, if this virtual correction has been calculated using dimensional reduction.
virtual void cloneDependencies(const std::string &prefix="")
Clone the dependencies, using a given prefix.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Ptr< MatchboxFactory >::tptr factory() const
Return the factory which produced this matrix element.
virtual void setAlpha(double) const
Set parameters for new alpha parameter.
virtual void flushCaches()
Inform this matrix element that a new phase space point is about to be generated, so all caches shoul...
virtual bool apply(const cPDVector &) const =0
Return true, if this virtual correction applies to the given process.
virtual ~MatchboxInsertionOperator()
The destructor.
virtual IBPtr clone() const=0
-*- C++ -*-
vector< cPDPtr > cPDVector