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_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