Back to home page

EIC code displayed by LXR

 
 

    


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

0001 #ifndef SHRIMPS_Eikonals_Eikonal_Contributor_H
0002 #define SHRIMPS_Eikonals_Eikonal_Contributor_H
0003 
0004 #include "SHRiMPS/Eikonals/Form_Factors.H"
0005 #include "SHRiMPS/Eikonals/Grid.H"
0006 #include "SHRiMPS/Tools/DEQ_Solver.H"
0007 
0008 namespace SHRIMPS {
0009   /*!
0010     \class Eikonal_Contributor
0011     \brief The representation of the two terms \f$\Omega_{i(k)}\f$ 
0012     contributing to the single channel eikonal.
0013   */
0014   class Eikonal_Contributor : public ATOOLS::Function_Base {
0015   private:
0016     Form_Factor      * p_ffi, * p_ffk;
0017     Eikonal_Parameters m_params;
0018 
0019     double m_b1, m_b2;
0020     double m_deltaff1, m_deltaff2, m_deltay;
0021     Grid   m_grid;
0022 
0023     bool Valid(const double & y) const;
0024   public:
0025     Eikonal_Contributor(Form_Factor * ff1,Form_Factor * ff2,
0026             const Eikonal_Parameters & params);
0027     ~Eikonal_Contributor() {}
0028 
0029     void   PrepareGrid(const int & ff1steps, const int & ff2steps);
0030     void   InsertValues(const size_t & i,const size_t & j,
0031             const std::vector<double> & values);
0032     void   SetB1B2(const double & b1,const double & b2);
0033 
0034     double operator()(const double & b1,const double & b2,const double & y);
0035     double operator()(const double & y);
0036 
0037     Form_Factor * FF1() const        { return p_ffi; } 
0038     Form_Factor * FF2() const        { return p_ffk; } 
0039     const double & Kappa() const     { return p_ffi->Kappa(); }
0040     const double & Lambda2() const   { return p_ffi->Lambda2(); }
0041 
0042     const double & B1max() const { return m_params.bmax; }
0043     const double & Y() const     { return m_params.originalY; }
0044   };
0045 }
0046 
0047 #endif