herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
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 
21 namespace Herwig {
22 using namespace ThePEG;
23 
30 class METRP2to2: public HwMEBase {
31 
32 public:
33 
37  METRP2to2();
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 
71  virtual Selector<DiagramIndex> diagrams(const DiagramVector & dv) const;
72 
81  colourGeometries(tcDiagPtr diag) const;
82 
90  virtual double me2() const;
92 
93 
94 
95 protected:
96 
104  virtual void doinit();
105 
115  virtual void rebind(const TranslationMap & trans);
116 
122  virtual IVector getReferences();
124 
125 public:
126 
133  void persistentOutput(PersistentOStream & os) const;
134 
140  void persistentInput(PersistentIStream & is, int version);
142 
149  static void Init();
150 
151 protected:
152 
159  virtual IBPtr clone() const;
160 
165  virtual IBPtr fullclone() const;
167 
168 protected:
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 
196  void setup_interpolator();
197 
198 private:
199 
204  METRP2to2 & operator=(const METRP2to2 &) = delete;
205 
206 private:
207 
212 
216  unsigned int _maxflavour;
217 
221  unsigned int _ndim;
222 
226  Energy _planckmass;
227 
228 
232  unsigned int _process;
233 };
234 
235 }
236 
237 #endif /* HERWIG_METRP2to2_H */
unsigned int _process
Processes to include.
Definition: METRP2to2.h:232
unsigned int _ndim
Number of Extra dimensions (>=2)
Definition: METRP2to2.h:221
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
Energy _planckmass
The Extra-dimensional Planck mass.
Definition: METRP2to2.h:226
Interpolator< double, double >::Ptr _interpol
Interpolator.
Definition: METRP2to2.h:211
virtual unsigned int orderInAlphaS() const
Return the order in in which this matrix element is given.
Definition: METRP2to2.h:45
vector< DiagPtr > DiagramVector
unsigned int _maxflavour
Maximum number of quark flavours to include.
Definition: METRP2to2.h:216
-*- C++ -*-
The HwMEBase class serves a number of purposes.
Definition: HwMEBase.h:35
vector< IBPtr > IVector
The METRP2to2 class implements the matrix elements for Transplanckian scattering process...
Definition: METRP2to2.h:30
virtual unsigned int orderInAlphaEW() const
Return the order in in which this matrix element is given.
Definition: METRP2to2.h:51