#ifndef PDF_Main_ISR_Base_H #define PDF_Main_ISR_Base_H #include "PDF/Main/PDF_Base.H" namespace PDF { class ISR_Base { protected: PDF_Base *p_pdf; std::string m_type; ATOOLS::Flavour m_bunch; double m_weight, m_exponent, m_xmax; bool m_on; public: ISR_Base(PDF_Base *pdf); virtual ~ISR_Base(); bool On() const { return m_on; } inline const std::string Type() const { return m_type; } inline const ATOOLS::Flavour Flavour() const { return m_bunch; } inline double Exponent() const { return m_exponent; } inline double XMax() const { return m_xmax; } inline void SetPDF(PDF_Base *pdf) { p_pdf = pdf; } inline PDF_Base * PDF() const { return p_pdf; } inline virtual void SetRescaleFactor(const double & rescale) { p_pdf->SetRescaleFactor(rescale); } inline virtual void SetRescaling(const bool & resc=true) { p_pdf->SetRescaling(resc); } virtual bool CalculateWeight(double x,double z,double kp2, double Q2,int warn) = 0; virtual double Weight(ATOOLS::Flavour) = 0; }; } #endif