herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
METRP2to2.h
1// -*- C++ -*-
2//
3// METRP2to2.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4// Copyright (C) 2009-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_METRP2to2_H
10#define HERWIG_METRP2to2_H
11//
12// This is the declaration of the METRP2to2 class.
13//
14// The implementation of this process is based upon hep-ph/0112161 by G.F. Giudice, R. Rattazzi, J.D. Wells.
15
16#include "Herwig/MatrixElement/HwMEBase.h"
17#include "ThePEG/Repository/UseRandom.h"
18#include "Herwig/Utilities/Interpolator.h"
19
20
21namespace Herwig {
22using namespace ThePEG;
23
30class METRP2to2: public HwMEBase {
31
32public:
33
38
45 virtual unsigned int orderInAlphaS() const { return 0; }
46
51 virtual unsigned int orderInAlphaEW() const { return 0; }
52
56 virtual Energy2 scale() const;
57
61 virtual void getDiagrams() const;
62
72
81 colourGeometries(tcDiagPtr diag) const;
82
90 virtual double me2() const;
92
93
94
95protected:
96
104 virtual void doinit();
105
115 virtual void rebind(const TranslationMap & trans);
116
124
125public:
126
134
140 void persistentInput(PersistentIStream & is, int version);
142
149 static void Init();
150
151protected:
152
159 virtual IBPtr clone() const;
160
165 virtual IBPtr fullclone() const;
167
168protected:
169
175 InvEnergy bccalc(Energy2 s) const;
176
180 double A_ny(Energy2 s, Energy2 t) const;
181
185 double fpoint(double x) const;
186
190 double fnyasympt(double y) const;
192
197
198private:
199
204 METRP2to2 & operator=(const METRP2to2 &) = delete;
205
206private:
207
212
216 unsigned int _maxflavour;
217
221 unsigned int _ndim;
222
227
228
232 unsigned int _process;
233};
234
235}
236
237#endif /* HERWIG_METRP2to2_H */
The HwMEBase class serves a number of purposes.
Definition: HwMEBase.h:35
Ptr< Interpolator< ValT, ArgT > >::pointer Ptr
Pointer to an Interpolator.
Definition: Interpolator.h:38
The METRP2to2 class implements the matrix elements for Transplanckian scattering process.
Definition: METRP2to2.h:30
virtual void getDiagrams() const
Add all possible diagrams with the add() function.
virtual unsigned int orderInAlphaEW() const
Return the order in in which this matrix element is given.
Definition: METRP2to2.h:51
double A_ny(Energy2 s, Energy2 t) const
A_ny calculates part of the matrix element squared (divided by 16 * pi^2) according to hep-ph/0112161...
virtual Selector< const ColourLines * > colourGeometries(tcDiagPtr diag) const
Return a Selector with possible colour geometries for the selected diagram weighted by their relative...
Interpolator< double, double >::Ptr _interpol
Interpolator.
Definition: METRP2to2.h:211
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
static void Init()
The standard Init function used to initialize the interfaces.
double fpoint(double x) const
fpoint initializes the matrix of pre-calculated points for the functions F_n(y) (hep-ph/0112161,...
unsigned int _process
Processes to include.
Definition: METRP2to2.h:232
virtual IBPtr clone() const
Make a simple clone of this object.
virtual Energy2 scale() const
Return the scale associated with the last set phase space point.
virtual unsigned int orderInAlphaS() const
Return the order in in which this matrix element is given.
Definition: METRP2to2.h:45
unsigned int _maxflavour
Maximum number of quark flavours to include.
Definition: METRP2to2.h:216
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
unsigned int _ndim
Number of Extra dimensions (>=2)
Definition: METRP2to2.h:221
METRP2to2 & operator=(const METRP2to2 &)=delete
The assignment operator is private and must never be called.
InvEnergy bccalc(Energy2 s) const
The function which calculates b_c according to hep-ph/0112161, eq.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual double me2() const
The matrix element for the kinematical configuration previously provided by the last call to setKinem...
Energy _planckmass
The Extra-dimensional Planck mass.
Definition: METRP2to2.h:226
virtual void rebind(const TranslationMap &trans)
Rebind pointer to other Interfaced objects.
virtual IVector getReferences()
Return a vector of all pointers to Interfaced objects used in this object.
double fnyasympt(double y) const
The asymptotic form of the F_n(y) functions, used for y>20, according to hep-ph/0112161,...
virtual Selector< DiagramIndex > diagrams(const DiagramVector &dv) const
Get diagram selector.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
METRP2to2()
The default constructor.
void setup_interpolator()
Setup the interpolator.
vector< DiagPtr > DiagramVector
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
vector< IBPtr > IVector