|
|
|||
File indexing completed on 2026-08-06 09:38:28
0001 // -*- C++ -*- 0002 // 0003 // NoPDF.h is a part of ThePEG - Toolkit for HEP Event Generation 0004 // Copyright (C) 1999-2019 Leif Lonnblad 0005 // 0006 // ThePEG is licenced under version 3 of the GPL, see COPYING for details. 0007 // Please respect the MCnet academic guidelines, see GUIDELINES for details. 0008 // 0009 #ifndef ThePEG_NoPDF_H 0010 #define ThePEG_NoPDF_H 0011 // This is the declaration of the NoPDF class. 0012 0013 #include "ThePEG/PDF/PDFBase.h" 0014 // #include "NoPDF.fh" 0015 // #include "NoPDF.xh" 0016 0017 namespace ThePEG { 0018 0019 /** 0020 * NoPDF inherits from PDFBase and represents particles without 0021 * sub-structure. The only parton which can be extracted is the 0022 * incoming particle itself with a momentum distribution which is a 0023 * delta-function at \f$x=1\f$ (\f$l=0\f$). 0024 * 0025 * @see PDFBase 0026 * @see NoRemnants 0027 * 0028 */ 0029 class NoPDF: public PDFBase { 0030 0031 public: 0032 0033 /** @name Virtual functions mandated by the PDFBase base class. */ 0034 //@{ 0035 /** 0036 * Return true because we can handle any particle. 0037 */ 0038 virtual bool canHandleParticle(tcPDPtr particle) const; 0039 0040 /** 0041 * Return true if canHandleParticle() and if the corresponding 0042 * method for remnantHandler() returns true. 0043 */ 0044 virtual bool canHandle(tcPDPtr particle) const; 0045 0046 /** 0047 * Return true if this PDF has a pole at $x=1$ for the given \a 0048 * particle and \a parton. This default version of the function 0049 * returns true if \a particle and \a parton is the same. 0050 */ 0051 virtual bool hasPoleIn1(tcPDPtr particle, tcPDPtr parton) const; 0052 0053 /** 0054 * Simply return the particle. 0055 */ 0056 virtual cPDVector partons(tcPDPtr p) const; 0057 0058 /** 0059 * The delta function. 0060 */ 0061 virtual double xfl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, 0062 double l, Energy2 particleScale = ZERO) const; 0063 //@} 0064 0065 public: 0066 0067 /** 0068 * Standard Init function used to initialize the interface. 0069 */ 0070 static void Init(); 0071 0072 protected: 0073 0074 /** @name Clone Methods. */ 0075 //@{ 0076 /** 0077 * Make a simple clone of this object. 0078 * @return a pointer to the new object. 0079 */ 0080 virtual IBPtr clone() const; 0081 0082 /** Make a clone of this object, possibly modifying the cloned object 0083 * to make it sane. 0084 * @return a pointer to the new object. 0085 */ 0086 virtual IBPtr fullclone() const; 0087 //@} 0088 0089 private: 0090 0091 /** 0092 * Describe a concrete class without persistent data. 0093 */ 0094 static NoPIOClassDescription<NoPDF> initNoPDF; 0095 0096 /** 0097 * Private and non-existent assignment operator. 0098 */ 0099 NoPDF & operator=(const NoPDF &) = delete; 0100 0101 }; 0102 0103 /** @cond TRAITSPECIALIZATIONS */ 0104 0105 /** This template specialization informs ThePEG about the base classes 0106 * of NoPDF. */ 0107 template <> 0108 struct BaseClassTrait<NoPDF,1>: public ClassTraitsType { 0109 /** Typedef of the first base class of NoPDF. */ 0110 typedef PDFBase NthBase; 0111 }; 0112 0113 /** This template specialization informs ThePEG about the name of the 0114 * NoPDF class. */ 0115 template <> 0116 struct ClassTraits<NoPDF>: public ClassTraitsBase<NoPDF> { 0117 /** Return a platform-independent class name */ 0118 static string className() { return "ThePEG::NoPDF"; } 0119 }; 0120 0121 /** @endcond */ 0122 0123 } 0124 0125 #endif /* ThePEG_NoPDF_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|