File indexing completed on 2025-04-19 09:10:15
0001 #ifndef SHRIMPS_Cross_Sections_Sigma_Base_H
0002 #define SHRIMPS_Cross_Sections_Sigma_Base_H
0003 #include "SHRiMPS/Eikonals/Omega_ik.H"
0004 #include "SHRiMPS/Tools/MinBias_Parameters.H"
0005 #include "ATOOLS/Phys/Flavour.H"
0006 #include "ATOOLS/Org/CXXFLAGS.H"
0007 #include <list>
0008
0009 namespace SHRIMPS {
0010 class Sigma_Base : public ATOOLS::Function_Base {
0011 protected:
0012 std::vector<std::vector<Omega_ik *> > * p_eikonals;
0013 Omega_ik * p_eikonal;
0014 double m_originalY, m_cutoffY, m_Y, m_E;
0015 double m_accu;
0016 double m_sigma;
0017 public:
0018 Sigma_Base() : p_eikonals(MBpars.GetEikonals()), m_sigma(0.) { }
0019
0020 virtual void SetEikonal(Omega_ik * eikonal) { p_eikonal = eikonal; }
0021 virtual void SetSigma(const double & sigma=-1) { m_sigma = sigma; }
0022 virtual const double & XSec() const { return m_sigma; }
0023
0024 virtual double Calculate(Omega_ik * eikonal=NULL);
0025 virtual double operator()(double B);
0026
0027 virtual double GetValue(const double & B) = 0;
0028 virtual double GetCombinedValue(const double & B) = 0;
0029 };
0030 }
0031 #endif