File indexing completed on 2025-04-19 09:10:15
0001 #ifndef SHRIMPS_Cross_Sections_Sigma_Elastic_H
0002 #define SHRIMPS_Cross_Sections_Sigma_Elastic_H
0003 #include "SHRiMPS/Cross_Sections/Sigma_Base.H"
0004
0005 namespace SHRIMPS {
0006 class Sigma_Elastic : public Sigma_Base {
0007 class dSigma_dt : public Function_Base {
0008 protected:
0009 Sigma_Elastic * p_sigma_el;
0010 double m_Q;
0011 public:
0012 dSigma_dt(Sigma_Elastic * sigma_el) : p_sigma_el(sigma_el) {}
0013 void SetQ(const double & Q) { m_Q = Q; }
0014 double operator()(double B);
0015 };
0016
0017 private:
0018 double m_tmin, m_tmax, m_summed;
0019 size_t m_steps;
0020 double m_delta;
0021 std::vector<double> m_intgrid, m_diffgrid;
0022
0023 void FillDiffQGrid();
0024 void FillIntQGridAndNormalize();
0025 public:
0026 Sigma_Elastic();
0027 void FillGrids();
0028 double SelectT() const;
0029
0030 double GetValue(const double & B);
0031 double GetCombinedValue(const double & B);
0032 double GetDiffArgument(const double & B);
0033 const double & Summed() const { return m_summed; }
0034 const double & Tmin() const { return m_tmin; }
0035 const double & Tmax() const { return m_tmax; }
0036 const size_t & Steps() const { return m_steps; }
0037 const std::vector<double> & GetDiffGrid() const { return m_diffgrid; }
0038 double Test();
0039 };
0040 }
0041 #endif