|
|
|||
File indexing completed on 2026-08-06 09:24:21
0001 // -*- C++ -*- 0002 #ifndef Herwig_SaSPhotonPDF_H 0003 #define Herwig_SaSPhotonPDF_H 0004 // 0005 // This is the declaration of the SaSPhotonPDF class. 0006 // 0007 0008 #include "ThePEG/PDF/PDFBase.h" 0009 0010 namespace Herwig { 0011 0012 using namespace ThePEG; 0013 0014 /** 0015 * The SaSPhotonPDF class provides an interface to the 0016 * 0017 * @see \ref SaSPhotonPDFInterfaces "The interfaces" 0018 * defined for SaSPhotonPDF. 0019 */ 0020 class SaSPhotonPDF: public PDFBase { 0021 0022 public: 0023 0024 /** 0025 * The default constructor. 0026 */ 0027 SaSPhotonPDF() : iset_(2), ip_(0) {} 0028 0029 public: 0030 0031 /** @name Virtual functions to be overridden by sub-classes. */ 0032 //@{ 0033 /** 0034 * Return true if this PDF can handle the extraction of partons from 0035 * the given \a particle. 0036 */ 0037 virtual bool canHandleParticle(tcPDPtr particle) const; 0038 0039 /** 0040 * Return the partons which this PDF may extract from the given 0041 * \a particle. 0042 */ 0043 virtual cPDVector partons(tcPDPtr particle) const; 0044 0045 /** 0046 * The density. Return the pdf for the given \a parton inside the 0047 * given \a particle for the virtuality \a partonScale and 0048 * logarithmic momentum fraction \a l \f$(l=\log(1/x)\f$. The \a 0049 * particle is assumed to have a virtuality \a particleScale. 0050 */ 0051 virtual double xfl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, 0052 double l, Energy2 particleScale = 0.0*GeV2) const; 0053 0054 /** 0055 * The valence density. Return the pdf for the given cvalence \a 0056 * parton inside the given \a particle for the virtuality \a 0057 * partonScale and logarithmic momentum fraction \a l 0058 * \f$(l=\log(1/x)\f$. The \a particle is assumed to have a 0059 * virtuality \a particleScale. If not overidden by a sub class this 0060 * will return zero. 0061 */ 0062 virtual double xfvl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, 0063 double l, Energy2 particleScale = 0.0*GeV2) const; 0064 //@} 0065 0066 0067 public: 0068 0069 /** @name Functions used by the persistent I/O system. */ 0070 //@{ 0071 /** 0072 * Function used to write out object persistently. 0073 * @param os the persistent output stream written to. 0074 */ 0075 void persistentOutput(PersistentOStream & os) const; 0076 0077 /** 0078 * Function used to read in object persistently. 0079 * @param is the persistent input stream read from. 0080 * @param version the version number of the object when written. 0081 */ 0082 void persistentInput(PersistentIStream & is, int version); 0083 //@} 0084 0085 /** 0086 * The standard Init function used to initialize the interfaces. 0087 * Called exactly once for each class by the class description system 0088 * before the main function starts or 0089 * when this class is dynamically loaded. 0090 */ 0091 static void Init(); 0092 0093 protected: 0094 0095 /** @name Clone Methods. */ 0096 //@{ 0097 /** 0098 * Make a simple clone of this object. 0099 * @return a pointer to the new object. 0100 */ 0101 virtual IBPtr clone() const; 0102 0103 /** Make a clone of this object, possibly modifying the cloned object 0104 * to make it sane. 0105 * @return a pointer to the new object. 0106 */ 0107 virtual IBPtr fullclone() const; 0108 //@} 0109 0110 private: 0111 0112 /** 0113 * The assignment operator is private and must never be called. 0114 * In fact, it should not even be implemented. 0115 */ 0116 SaSPhotonPDF & operator=(const SaSPhotonPDF &) = delete; 0117 0118 private: 0119 0120 /** 0121 * PDF Set 0122 */ 0123 mutable int iset_; 0124 0125 /** 0126 * Scheme used to evaluate off-shell anomalous component. 0127 */ 0128 mutable int ip_; 0129 0130 }; 0131 0132 } 0133 0134 #endif /* Herwig_SaSPhotonPDF_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|