thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
MEGG2GG.h
1 // -*- C++ -*-
2 //
3 // MEGG2GG.h is a part of ThePEG - Toolkit for HEP Event Generation
4 // Copyright (C) 1999-2019 Leif Lonnblad
5 //
6 // ThePEG 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 ThePEG_MEGG2GG_H
10 #define ThePEG_MEGG2GG_H
11 // This is the declaration of the MEGG2GG class.
12 
13 #include "ThePEG/MatrixElement/ME2to2QCD.h"
14 
15 namespace ThePEG {
16 
25 class MEGG2GG: public ME2to2QCD {
26 
27 public:
28 
38  virtual double me2() const;
39 
43  virtual void getDiagrams() const;
44 
53  colourGeometries(tcDiagPtr diag) const;
54 
63  virtual Selector<DiagramIndex> diagrams(const DiagramVector & dv) const;
65 
66 protected:
67 
75  double colA1() const { return sqr(1.0 + sHat()/tHat()) + 0.5; }
76 
81  double colB1() const { return sqr(1.0 + uHat()/sHat()) + 0.5; }
82 
87  double colC1() const { return sqr(1.0 + tHat()/uHat()) + 0.5; }
88 
93  double colA2() const { return 0.5 + sqr(1.0 + tHat()/sHat()); }
94 
99  double colB2() const { return 0.5 + sqr(1.0 + sHat()/uHat()); }
100 
105  double colC2() const { return 0.5 + sqr(1.0 + uHat()/tHat()); }
107 
108 public:
109 
113  static void Init();
114 
115 protected:
116 
123  virtual IBPtr clone() const;
124 
129  virtual IBPtr fullclone() const;
131 
132 private:
133 
138 
142  MEGG2GG & operator=(const MEGG2GG &) = delete;
143 
144 };
145 
146 }
147 
148 
149 namespace ThePEG {
150 
155 template <>
156 struct BaseClassTrait<MEGG2GG,1>: public ClassTraitsType {
158  typedef ME2to2QCD NthBase;
159 };
160 
163 template <>
164 struct ClassTraits<MEGG2GG>: public ClassTraitsBase<MEGG2GG> {
166  static string className() { return "ThePEG::MEGG2GG"; }
170  static string library() { return "MEQCD.so"; }
171 };
172 
175 }
176 
177 #endif /* ThePEG_MEGG2GG_H */
double colA2() const
Return the matrix element squared (without common pre-factors) for the specific colour configuration...
Definition: MEGG2GG.h:93
const DiagramVector & diagrams() const
Return all possible diagrams.
Definition: MEBase.h:284
Energy2 sHat() const
Return the last set invariant mass squared.
Definition: MEBase.h:375
ClassTraitsType is an empty, non-polymorphic, base class.
Definition: ClassTraits.h:30
MEGG2GG & operator=(const MEGG2GG &)=delete
Private and non-existent assignment operator.
virtual IBPtr clone() const
Make a simple clone of this object.
constexpr auto sqr(const T &x) -> decltype(x *x)
The square function should really have been included in the standard C++ library. ...
Definition: ThePEG.h:117
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual Selector< const ColourLines * > colourGeometries(tcDiagPtr diag) const
Return a Selector with possible colour geometries for the selected diagram weighted by their relative...
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
A concreate implementation of ClassDescriptionBase describing a concrete class without persistent dat...
Energy2 uHat() const
Return the of the last set phase space point.
Definition: ME2to2Base.h:114
double colC2() const
Return the matrix element squared (without common pre-factors) for the specific colour configuration...
Definition: MEGG2GG.h:105
MEGG2GG inherits from ME2to2QCD and implements the standard matrix element.
Definition: MEGG2GG.h:25
static NoPIOClassDescription< MEGG2GG > initMEGG2GG
Describe a concrete class without persistent data.
Definition: MEGG2GG.h:137
double colC1() const
Return the matrix element squared (without common pre-factors) for the specific colour configuration...
Definition: MEGG2GG.h:87
The ME2to2QCD class inherits from the ME2to2Base class and can be used as a sub class for all QCD 2 ...
Definition: ME2to2QCD.h:28
Energy2 tHat() const
Return the of the last set phase space point.
Definition: ME2to2Base.h:109
static void Init()
Standard Init function used to initialize the interfaces.
virtual double me2() const
The matrix element for the kinematical configuration previously provided by the last call to setKinem...
virtual void getDiagrams() const
Add all possible diagrams with the add() function.
RCPtr is a reference counted (smart) pointer.
Definition: RCPtr.h:60
Selector is a templated class for storing objects associated with probabilities in a way such that...
Definition: Selector.h:46
vector< DiagPtr > DiagramVector
A vector of pointers to DiagramBase objects.
Definition: MEBase.h:77
The default concrete implementation of ClassTraitsBase.
Definition: ClassTraits.h:134
double colB1() const
Return the matrix element squared (without common pre-factors) for the specific colour configuration...
Definition: MEGG2GG.h:81
double colB2() const
Return the matrix element squared (without common pre-factors) for the specific colour configuration...
Definition: MEGG2GG.h:99
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
double colA1() const
Return the matrix element squared (without common pre-factors) for the specific colour configuration...
Definition: MEGG2GG.h:75
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
Definition: ClassTraits.h:52