ThePEG  1.8.0
LeptonLeptonPDF.h
1 // -*- C++ -*-
2 //
3 // LeptonLeptonPDF.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_LeptonLeptonPDF_H
10 #define ThePEG_LeptonLeptonPDF_H
11 // This is the declaration of the LeptonLeptonPDF class.
12 
13 #include "ThePEG/PDF/PDFBase.h"
14 
15 namespace ThePEG {
16 
25 class LeptonLeptonPDF: public PDFBase {
26 
27 public:
28 
35  virtual bool canHandleParticle(tcPDPtr particle) const;
36 
42  virtual bool hasPoleIn1(tcPDPtr particle, tcPDPtr parton) const;
43 
48  virtual cPDVector partons(tcPDPtr p) const;
49 
54  virtual double xfl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale,
55  double l, Energy2 particleScale = ZERO) const;
56 
62  virtual double xfvl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale,
63  double l, Energy2 particleScale = ZERO) const;
64 
70  virtual double xfvx(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale,
71  double x, double eps, Energy2 particleScale) const;
72 
81  virtual double flattenL(tcPDPtr particle, tcPDPtr parton, const PDFCuts &,
82  double z, double & jacobian) const;
84 
85 public:
86 
90  static void Init();
91 
92 protected:
93 
100  virtual IBPtr clone() const;
101 
106  virtual IBPtr fullclone() const;
108 
109 private:
110 
115 
120 
121 };
122 
127 template <>
130  typedef PDFBase NthBase;
131 };
132 
136 template <>
137 struct ClassTraits<LeptonLeptonPDF>: public ClassTraitsBase<LeptonLeptonPDF> {
139  static string className() { return "ThePEG::LeptonLeptonPDF"; }
143  static string library() { return "LeptonLeptonPDF.so"; }
144 };
145 
148 }
149 
150 #endif /* ThePEG_LeptonLeptonPDF_H */