00001 // -*- C++ -*- 00002 // 00003 // ME2to2QCD.h is a part of ThePEG - Toolkit for HEP Event Generation 00004 // Copyright (C) 1999-2007 Leif Lonnblad 00005 // 00006 // ThePEG is licenced under version 2 of the GPL, see COPYING for details. 00007 // Please respect the MCnet academic guidelines, see GUIDELINES for details. 00008 // 00009 #ifndef ThePEG_ME2to2QCD_H 00010 #define ThePEG_ME2to2QCD_H 00011 // This is the declaration of the ME2to2QCD class. 00012 00013 #include "ThePEG/MatrixElement/ME2to2Base.h" 00014 00015 namespace ThePEG { 00016 00028 class ME2to2QCD: public ME2to2Base { 00029 00030 public: 00031 00037 ME2to2QCD() 00038 : theMaxFlavour(5), theKfac(1.0), theKfacA(1.0), useInterference(true) {} 00039 00043 virtual ~ME2to2QCD(); 00045 00046 public: 00047 00054 virtual unsigned int orderInAlphaS() const; 00055 00060 virtual unsigned int orderInAlphaEW() const; 00061 00066 double comfac() const; 00067 00071 int maxFlavour() const { return theMaxFlavour; } 00072 00076 double Kfac() const { return theKfac; } 00077 00081 double KfacA() const { return theKfacA >= 0.0? theKfacA: theKfac; } 00082 00086 bool interference() const { return useInterference; } 00087 00091 bool isQuark(const ParticleData & p) const { 00092 return ( p.id() && abs(p.id()) <= maxFlavour() ); 00093 } 00094 00098 tcPDPtr quark(int i) const; 00100 00101 public: 00102 00109 void persistentOutput(PersistentOStream & os) const; 00110 00116 void persistentInput(PersistentIStream & is, int version); 00118 00122 static void Init(); 00123 00124 private: 00125 00129 int theMaxFlavour; 00130 00134 double theKfac; 00135 00140 double theKfacA; 00141 00145 bool useInterference; 00146 00147 private: 00148 00152 static AbstractClassDescription<ME2to2QCD> initME2to2QCD; 00153 00157 ME2to2QCD & operator=(const ME2to2QCD &); 00158 00159 }; 00160 00161 } 00162 00163 00164 namespace ThePEG { 00165 00172 template <> 00173 struct BaseClassTrait<ME2to2QCD,1>: public ClassTraitsType { 00175 typedef ME2to2Base NthBase; 00176 }; 00177 00182 template <> 00183 struct ClassTraits<ME2to2QCD>: public ClassTraitsBase<ME2to2QCD> { 00185 static string className() { return "ThePEG::ME2to2QCD"; } 00186 }; 00187 00190 } 00191 00192 #endif /* ThePEG_ME2to2QCD_H */