00001
00002 #ifndef THEPEG_WeizsackerWilliamsPDF_H
00003 #define THEPEG_WeizsackerWilliamsPDF_H
00004
00005
00006
00007
00008 #include "ThePEG/PDF/PDFBase.h"
00009
00010 namespace ThePEG {
00011
00012 using namespace ThePEG;
00013
00020 class WeizsackerWilliamsPDF: public PDFBase {
00021
00022 public:
00023
00027 WeizsackerWilliamsPDF();
00028
00035 virtual bool canHandleParticle(tcPDPtr particle) const;
00036
00041 virtual cPDVector partons(tcPDPtr particle) const;
00042
00049 virtual double xfl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale,
00050 double l, Energy2 particleScale = ZERO) const;
00051
00060 virtual double xfvl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale,
00061 double l, Energy2 particleScale = ZERO) const;
00062
00075 virtual double flattenScale(tcPDPtr particle, tcPDPtr parton,
00076 const PDFCuts & cut, double l, double z,
00077 double & jacobian) const;
00078
00089 virtual double flattenL(tcPDPtr particle, tcPDPtr parton, const PDFCuts &cut,
00090 double z, double & jacobian) const;
00092
00093 public:
00094
00101 void persistentOutput(PersistentOStream & os) const;
00102
00108 void persistentInput(PersistentIStream & is, int version);
00110
00117 static void Init();
00118
00119 protected:
00120
00127 virtual IBPtr clone() const {return new_ptr(*this);}
00128
00133 virtual IBPtr fullclone() const {return new_ptr(*this);}
00135
00136 private:
00137
00142 static ClassDescription<WeizsackerWilliamsPDF> initWeizsackerWilliamsPDF;
00143
00148 WeizsackerWilliamsPDF & operator=(const WeizsackerWilliamsPDF &);
00149
00150 private:
00151
00155 Energy2 _q2min;
00156
00160 Energy2 _q2max;
00161
00162 };
00163
00164 }
00165
00166 #include "ThePEG/Utilities/ClassTraits.h"
00167
00168 namespace ThePEG {
00169
00174 template <>
00175 struct BaseClassTrait<WeizsackerWilliamsPDF,1> {
00177 typedef PDFBase NthBase;
00178 };
00179
00182 template <>
00183 struct ClassTraits<WeizsackerWilliamsPDF>
00184 : public ClassTraitsBase<WeizsackerWilliamsPDF> {
00186 static string className() { return "ThePEG::WeizsackerWilliamsPDF"; }
00194 static string library() { return "WeizsackerWilliamsPDF.so"; }
00195 };
00196
00199 }
00200
00201 #endif