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