File indexing completed on 2025-04-19 09:10:15
0001 #ifndef SHRIMPS_Cross_Sections_Cross_Sections_H
0002 #define SHRIMPS_Cross_Sections_Cross_Sections_H
0003
0004 #include "SHRiMPS/Cross_Sections/Sigma_Inelastic.H"
0005 #include "SHRiMPS/Cross_Sections/Sigma_Elastic.H"
0006 #include "SHRiMPS/Cross_Sections/Sigma_SD.H"
0007
0008 #include "SHRiMPS/Eikonals/Omega_ik.H"
0009 #include <list>
0010 #include <map>
0011
0012 namespace SHRIMPS {
0013 class Cross_Sections {
0014 private:
0015 Omega_ik * p_selected;
0016 double m_xstot, m_slope, m_xsinel, m_xsel, m_xsSD[2], m_xsDD;
0017 Sigma_Inelastic m_sigma_inelastic;
0018 Sigma_Elastic m_sigma_elastic;
0019 Sigma_SD m_sigma_SD;
0020 std::map<run_mode::code,double> m_modemap;
0021 public:
0022 Cross_Sections();
0023 ~Cross_Sections();
0024
0025 void CalculateCrossSections();
0026 void Test(const std::string & dirname);
0027
0028
0029
0030
0031 Sigma_Inelastic * GetSigmaInelastic() { return (&m_sigma_inelastic); }
0032 Sigma_Elastic * GetSigmaElastic() { return (&m_sigma_elastic); }
0033 Sigma_SD * GetSigmaSD() { return (&m_sigma_SD); }
0034
0035 const double & SigmaTot() const { return m_xstot; }
0036 const double & SigmaSD(size_t i) const { return m_xsSD[i]; }
0037 const double & SigmaDD() const { return m_xsDD; }
0038 const double & SigmaEl() const { return m_xsel; }
0039 const double & SigmaInel() const { return m_xsinel; }
0040 const double & ElasticSlope() const { return m_slope; }
0041 };
0042 }
0043 #endif