File indexing completed on 2025-04-19 09:10:15
0001 #ifndef SHRIMPS_Cross_Sections_Sigma_DD_H
0002 #define SHRIMPS_Cross_Sections_Sigma_DD_H
0003 #include "SHRiMPS/Cross_Sections/Sigma_Elastic.H"
0004 #include "SHRiMPS/Cross_Sections/Sigma_SD.H"
0005
0006 namespace SHRIMPS {
0007 class Sigma_DD : public Sigma_Base {
0008 class dSigma_dt_Kernel : public Function_Base {
0009 protected:
0010 Omega_ik * p_eikonal;
0011 double m_Q;
0012 public:
0013 dSigma_dt_Kernel() {}
0014 void SetQ(const double & Q) { m_Q = Q; }
0015 void SetEikonal(Omega_ik * eikonal) { p_eikonal = eikonal; }
0016 double operator()(double B);
0017 };
0018 Sigma_Elastic * p_sigma_el;
0019 Sigma_SD * p_sigma_sd;
0020
0021
0022 double m_Bmin, m_Bmax;
0023 double m_Qmax;
0024 size_t m_logQsteps;
0025 double m_logdelta;
0026 std::vector<double> m_intgrid_DD, m_diffgrid_DD;
0027 const std::vector<double> *p_grid;
0028 double m_sigma_DD;
0029
0030 void FillGrids();
0031 public:
0032 Sigma_DD() {};
0033 Sigma_DD(Sigma_Elastic * sigma_el,Sigma_SD * sigma_sd);
0034 double GetValue(const double & B);
0035 double GetCombinedValue(const double & B);
0036 double GetDiffArgument(const double & B);
0037 double PT2();
0038 void PrintDifferentialElasticAndDiffXsec(const bool & onscreen=false,
0039 std::string dirname=std::string("."));
0040 };
0041 }
0042 #endif