Back to home page

EIC code displayed by LXR

 
 

    


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 */