thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
MEQG2QG.h
1 // -*- C++ -*-
2 //
3 // MEQG2QG.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_MEQG2QG_H
10 #define ThePEG_MEQG2QG_H
11 // This is the declaration of the MEQG2QG class.
12 
13 #include "ThePEG/MatrixElement/ME2to2QCD.h"
14 
15 namespace ThePEG {
16 
25 class MEQG2QG: 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
76  {
77  return ( interference()? 2.25: 2.0 )*sqr(uHat()/tHat());
78  }
79 
84  double colB1() const
85  {
86  return ( interference()? 2.25: 2.0 )*sqr(sHat()/tHat());
87  }
88 
93  double colA2() const { return -uHat()/sHat(); }
94 
99  double colB2() const { return -sHat()/uHat(); }
101 
102 public:
103 
107  static void Init();
108 
109 protected:
110 
117  virtual IBPtr clone() const;
118 
123  virtual IBPtr fullclone() const;
125 
126 private:
127 
132 
136  MEQG2QG & operator=(const MEQG2QG &) = delete;
137 
138 };
139 
140 }
141 
142 
143 namespace ThePEG {
144 
149 template <>
150 struct BaseClassTrait<MEQG2QG,1>: public ClassTraitsType {
152  typedef ME2to2QCD NthBase;
153 };
154 
157 template <>
158 struct ClassTraits<MEQG2QG>: public ClassTraitsBase<MEQG2QG> {
160  static string className() { return "ThePEG::MEQG2QG"; }
164  static string library() { return "MEQCD.so"; }
165 };
166 
169 }
170 
171 #endif /* ThePEG_MEQG2QG_H */
const DiagramVector & diagrams() const
Return all possible diagrams.
Definition: MEBase.h:284
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...
Energy2 sHat() const
Return the last set invariant mass squared.
Definition: MEBase.h:375
double colB1() const
Return the matrix element squared (without common pre-factors) for the specific colour configuration...
Definition: MEQG2QG.h:84
static NoPIOClassDescription< MEQG2QG > initMEQG2QG
Describe a concrete class without persistent data.
Definition: MEQG2QG.h:131
ClassTraitsType is an empty, non-polymorphic, base class.
Definition: ClassTraits.h:30
static void Init()
Standard Init function used to initialize the interfaces.
MEQG2QG & operator=(const MEQG2QG &)=delete
Private and non-existent assignment operator.
double colA2() const
Return the matrix element squared (without common pre-factors) for the specific colour configuration...
Definition: MEQG2QG.h:93
MEQG2QG inherits from ME2to2QCD and implements the standard matrix element.
Definition: MEQG2QG.h:25
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
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
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
RCPtr is a reference counted (smart) pointer.
Definition: RCPtr.h:60
virtual IBPtr clone() const
Make a simple clone of this object.
Selector is a templated class for storing objects associated with probabilities in a way such that...
Definition: Selector.h:46
virtual double me2() const
The matrix element for the kinematical configuration previously provided by the last call to setKinem...
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 colB2() const
Return the matrix element squared (without common pre-factors) for the specific colour configuration...
Definition: MEQG2QG.h:99
double colA1() const
Return the matrix element squared (without common pre-factors) for the specific colour configuration...
Definition: MEQG2QG.h:75
virtual void getDiagrams() const
Add all possible diagrams with the add() function.
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
Definition: ClassTraits.h:52
bool interference() const
Return true if interference terms should be used.
Definition: ME2to2QCD.h:86