00001 // -*- C++ -*- 00002 // 00003 // NoPDF.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_NoPDF_H 00010 #define ThePEG_NoPDF_H 00011 // This is the declaration of the NoPDF class. 00012 00013 #include "ThePEG/PDF/PDFBase.h" 00014 // #include "NoPDF.fh" 00015 // #include "NoPDF.xh" 00016 00017 namespace ThePEG { 00018 00029 class NoPDF: public PDFBase { 00030 00031 public: 00032 00038 virtual bool canHandleParticle(tcPDPtr particle) const; 00039 00044 virtual bool canHandle(tcPDPtr particle) const; 00045 00051 virtual bool hasPoleIn1(tcPDPtr particle, tcPDPtr parton) const; 00052 00056 virtual cPDVector partons(tcPDPtr p) const; 00057 00061 virtual double xfl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, 00062 double l, Energy2 particleScale = ZERO) const; 00064 00065 public: 00066 00070 static void Init(); 00071 00072 protected: 00073 00080 virtual IBPtr clone() const; 00081 00086 virtual IBPtr fullclone() const; 00088 00089 private: 00090 00094 static NoPIOClassDescription<NoPDF> initNoPDF; 00095 00099 NoPDF & operator=(const NoPDF &); 00100 00101 }; 00102 00107 template <> 00108 struct BaseClassTrait<NoPDF,1>: public ClassTraitsType { 00110 typedef PDFBase NthBase; 00111 }; 00112 00115 template <> 00116 struct ClassTraits<NoPDF>: public ClassTraitsBase<NoPDF> { 00118 static string className() { return "ThePEG::NoPDF"; } 00119 }; 00120 00123 } 00124 00125 #endif /* ThePEG_NoPDF_H */