00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef ThePEG_LeptonLeptonPDF_H
00010 #define ThePEG_LeptonLeptonPDF_H
00011
00012
00013 #include "ThePEG/PDF/PDFBase.h"
00014
00015 namespace ThePEG {
00016
00025 class LeptonLeptonPDF: public PDFBase {
00026
00027 public:
00028
00035 virtual bool canHandleParticle(tcPDPtr particle) const;
00036
00042 virtual bool hasPoleIn1(tcPDPtr particle, tcPDPtr parton) const;
00043
00048 virtual cPDVector partons(tcPDPtr p) const;
00049
00054 virtual double xfl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale,
00055 double l, Energy2 particleScale = ZERO) const;
00056
00062 virtual double xfvl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale,
00063 double l, Energy2 particleScale = ZERO) const;
00064
00070 virtual double xfvx(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale,
00071 double x, double eps, Energy2 particleScale) const;
00072
00081 virtual double flattenL(tcPDPtr particle, tcPDPtr parton, const PDFCuts &,
00082 double z, double & jacobian) const;
00084
00085 public:
00086
00090 static void Init();
00091
00092 protected:
00093
00100 virtual IBPtr clone() const;
00101
00106 virtual IBPtr fullclone() const;
00108
00109 private:
00110
00114 static NoPIOClassDescription<LeptonLeptonPDF> initLeptonLeptonPDF;
00115
00119 LeptonLeptonPDF & operator=(const LeptonLeptonPDF &);
00120
00121 };
00122
00127 template <>
00128 struct BaseClassTrait<LeptonLeptonPDF,1>: public ClassTraitsType {
00130 typedef PDFBase NthBase;
00131 };
00132
00136 template <>
00137 struct ClassTraits<LeptonLeptonPDF>: public ClassTraitsBase<LeptonLeptonPDF> {
00139 static string className() { return "ThePEG::LeptonLeptonPDF"; }
00143 static string library() { return "LeptonLeptonPDF.so"; }
00144 };
00145
00148 }
00149
00150 #endif