Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-04-19 09:10:08

0001 #ifndef PDF_Main_ISR_Base_H
0002 #define PDF_Main_ISR_Base_H
0003 
0004 #include "PDF/Main/PDF_Base.H"
0005 
0006 namespace PDF {
0007 
0008   struct isrtype {
0009     enum code {
0010       intact  = 0,
0011       lepton  = 1,
0012       hadron  = 2,
0013       yfs     = 3,
0014       unknown = 99
0015     };
0016   };
0017   std::ostream& operator<<(std::ostream&,isrtype::code type);
0018   
0019   class ISR_Base { 
0020   protected:
0021     PDF_Base *p_pdf;
0022     //std::string     m_type;
0023     ATOOLS::Flavour m_bunch;
0024     isrtype::code   m_type;
0025     
0026     double m_weight, m_exponent, m_xmax;
0027     bool   m_on;
0028 
0029   public:
0030     ISR_Base(PDF_Base *pdf);
0031     virtual ~ISR_Base();
0032 
0033     bool On() const   { return m_on;   }
0034 
0035     inline isrtype::code   Type()          const { return m_type;  }
0036     inline ATOOLS::Flavour Flavour()       const { return m_bunch; }
0037     inline double Exponent() const               { return m_exponent; }
0038     inline double XMax() const                   { return m_xmax;     } 
0039     inline void SetPDF(PDF_Base *pdf)            { p_pdf = pdf;  }
0040     inline PDF_Base * PDF() const                { return p_pdf; }
0041     inline virtual void SetRescaleFactor(const double & rescale) {
0042       p_pdf->SetRescaleFactor(rescale);
0043     }
0044     inline virtual void SetRescaling(const bool & resc=true) {
0045       p_pdf->SetRescaling(resc);
0046     }      
0047 
0048     virtual bool   CalculateWeight(double x,double z,double kp2,
0049                    double Q2,int warn) = 0;
0050     virtual double Weight(ATOOLS::Flavour) = 0;
0051 
0052   };
0053 }
0054 
0055 #endif