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