thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
ME2to2QCD.h
1 // -*- C++ -*-
2 //
3 // ME2to2QCD.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_ME2to2QCD_H
10 #define ThePEG_ME2to2QCD_H
11 // This is the declaration of the ME2to2QCD class.
12 
13 #include "ThePEG/MatrixElement/ME2to2Base.h"
14 
15 namespace ThePEG {
16 
28 class ME2to2QCD: public ME2to2Base {
29 
30 public:
31 
38  : theMaxFlavour(5), theKfac(1.0), theKfacA(1.0), useInterference(true) {}
39 
43  virtual ~ME2to2QCD();
45 
46 public:
47 
54  virtual unsigned int orderInAlphaS() const;
55 
60  virtual unsigned int orderInAlphaEW() const;
61 
66  double comfac() const;
67 
71  int maxFlavour() const { return theMaxFlavour; }
72 
76  double Kfac() const { return theKfac; }
77 
81  double KfacA() const { return theKfacA >= 0.0? theKfacA: theKfac; }
82 
86  bool interference() const { return useInterference; }
87 
91  bool isQuark(const ParticleData & p) const {
92  return ( p.id() && abs(p.id()) <= maxFlavour() );
93  }
94 
98  tcPDPtr quark(int i) const;
100 
101 public:
102 
109  void persistentOutput(PersistentOStream & os) const;
110 
116  void persistentInput(PersistentIStream & is, int version);
118 
122  static void Init();
123 
124 private:
125 
130 
134  double theKfac;
135 
140  double theKfacA;
141 
146 
147 private:
148 
153 
157  ME2to2QCD & operator=(const ME2to2QCD &) = delete;
158 
159 };
160 
161 }
162 
163 
164 namespace ThePEG {
165 
172 template <>
173 struct BaseClassTrait<ME2to2QCD,1>: public ClassTraitsType {
175  typedef ME2to2Base NthBase;
176 };
177 
182 template <>
183 struct ClassTraits<ME2to2QCD>: public ClassTraitsBase<ME2to2QCD> {
185  static string className() { return "ThePEG::ME2to2QCD"; }
186 };
187 
190 }
191 
192 #endif /* ThePEG_ME2to2QCD_H */
PersistentIStream is used to read persistent objects from a stream where they were previously written...
bool useInterference
Flag so tell whether interference should be used or not.
Definition: ME2to2QCD.h:145
ClassTraitsType is an empty, non-polymorphic, base class.
Definition: ClassTraits.h:30
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
A concreate implementation of ClassDescriptionBase describing an abstract class with persistent data...
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition: RCPtr.h:696
int theMaxFlavour
The heaviest flavour allowed for incoming and outgoing partons.
Definition: ME2to2QCD.h:129
virtual unsigned int orderInAlphaEW() const
Return the order in in which this matrix element is given.
bool isQuark(const ParticleData &p) const
Return true if argument is a quark.
Definition: ME2to2QCD.h:91
static void Init()
Standard Init function used to initialize the interfaces.
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
double comfac() const
The common prefactor for all 2 2 QCD sub-processes ie.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
double theKfacA
Overall K-factors used to boost the colour annihilation diagram in the cross-section.
Definition: ME2to2QCD.h:140
double Kfac() const
K-factor for artificially boosting the cross-section.
Definition: ME2to2QCD.h:76
ParticleData inherits from InterfacedBase and represents the properties of a particle type...
Definition: ParticleData.h:36
double KfacA() const
K-factor for artificially boosting colour-annihilation diagrams.
Definition: ME2to2QCD.h:81
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
int maxFlavour() const
Return the heaviest flavour allowed for this matrix element.
Definition: ME2to2QCD.h:71
The ME2to2QCD class inherits from the ME2to2Base class and can be used as a sub class for all QCD 2 ...
Definition: ME2to2QCD.h:28
tcPDPtr quark(int i) const
Return the quark with flavour i (or gluon if i = 0);.
virtual unsigned int orderInAlphaS() const
Return the order in in which this matrix element is given.
ME2to2QCD & operator=(const ME2to2QCD &)=delete
Private and non-existent assignment operator.
static AbstractClassDescription< ME2to2QCD > initME2to2QCD
Describe an abstract base class with persistent data.
Definition: ME2to2QCD.h:152
The default concrete implementation of ClassTraitsBase.
Definition: ClassTraits.h:134
virtual ~ME2to2QCD()
Destructor.
ME2to2QCD()
Default constructor.
Definition: ME2to2QCD.h:37
long id() const
Return the PDG id number.
Definition: ParticleData.h:88
ME2to2Base can be used as a base class for any matrix element class implementing 2 2 processes...
Definition: ME2to2Base.h:32
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
double theKfac
Overall K-factor used to boost this cross-section.
Definition: ME2to2QCD.h:134
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