Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-04-19 09:10:15

0001 #ifndef SHRIMPS_Cross_Sections_Sigma_SD_H
0002 #define SHRIMPS_Cross_Sections_Sigma_SD_H
0003 #include "SHRiMPS/Cross_Sections/Sigma_Elastic.H"
0004 
0005 namespace SHRIMPS {
0006   class Sigma_SD : public Sigma_Base {
0007     class SD_Term : public Function_Base {
0008     protected:
0009       Omega_ik * p_eikonal;
0010       double     m_Q;
0011     public:
0012       SD_Term() {}
0013       void   SetEikonal(Omega_ik * eikonal) { p_eikonal = eikonal; }
0014       void   SetQ(const double & Q)         { m_Q = Q; }
0015       double operator()(double B);
0016     };
0017 
0018     double m_tmin, m_tmax, m_summed[3];
0019     size_t m_steps;
0020     double m_delta;
0021     std::vector<std::vector<std::vector<double> > > m_tgrids;
0022     std::vector<double> m_diffgrids[3], m_intgrids[3];
0023     
0024     void FillTGrids();
0025     void CombineTGrids(const size_t diff);
0026     void CreateIntGrids(const size_t diff,Sigma_Elastic * sigma_el);
0027   public:
0028     Sigma_SD();
0029 
0030     double SelectT(const size_t & mode) const;
0031     double GetValue(const double & B); 
0032     double GetCombinedValue(const double & B);
0033     double GetXSec(const size_t diff) { return m_summed[diff]; }
0034     void   FillGrids(Sigma_Elastic * sigma_el);
0035   };  
0036 }
0037 #endif