ThePEG  1.8.0
ME2to2QCD.h
1 // -*- C++ -*-
2 //
3 // ME2to2QCD.h is a part of ThePEG - Toolkit for HEP Event Generation
4 // Copyright (C) 1999-2011 Leif Lonnblad
5 //
6 // ThePEG is licenced under version 2 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 &);
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
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual unsigned int orderInAlphaS() const
Return the order in in which this matrix element is given.
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:681
int theMaxFlavour
The heaviest flavour allowed for incoming and outgoing partons.
Definition: ME2to2QCD.h:129
static void Init()
Standard Init function used to initialize the interfaces.
int maxFlavour() const
Return the heaviest flavour allowed for this matrix element.
Definition: ME2to2QCD.h:71
tcPDPtr quark(int i) const
Return the quark with flavour i (or gluon if i = 0);.
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
bool isQuark(const ParticleData &p) const
Return true if argument is a quark.
Definition: ME2to2QCD.h:91
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
ParticleData inherits from InterfacedBase and represents the properties of a particle type...
Definition: ParticleData.h:36
double Kfac() const
K-factor for artificially boosting the cross-section.
Definition: ME2to2QCD.h:76
virtual unsigned int orderInAlphaEW() const
Return the order in in which this matrix element is given.
The ME2to2QCD class inherits from the ME2to2Base class and can be used as a sub class for all QCD 2 ...
Definition: ME2to2QCD.h:28
bool interference() const
Return true if interference terms should be used.
Definition: ME2to2QCD.h:86
ME2to2QCD & operator=(const ME2to2QCD &)
Private and non-existent assignment operator.
double KfacA() const
K-factor for artificially boosting colour-annihilation diagrams.
Definition: ME2to2QCD.h:81
static AbstractClassDescription< ME2to2QCD > initME2to2QCD
Describe an abstract base class with persistent data.
Definition: ME2to2QCD.h:152
virtual ~ME2to2QCD()
Destructor.
long id() const
Return the PDG id number.
Definition: ParticleData.h:88
static string className()
Return the name of class T.
Definition: ClassTraits.h:66
ME2to2QCD()
Default constructor.
Definition: ME2to2QCD.h:37
int NthBase
The type of the BaseN'th base class (int means there are no further base classes).
Definition: ClassTraits.h:161
ME2to2Base can be used as a base class for any matrix element class implementing 2 2 processes...
Definition: ME2to2Base.h:32
double comfac() const
The common prefactor for all 2 2 QCD sub-processes ie.
double theKfac
Overall K-factor used to boost this cross-section.
Definition: ME2to2QCD.h:134