Back to home page

EIC code displayed by LXR

 
 

    


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

0001 #ifndef SHRIMPS_Eikonals_Rapidity_Density_H
0002 #define SHRIMPS_Eikonals_Rapidity_Density_H
0003 
0004 #include "SHRiMPS/Eikonals/Omega_ik.H"
0005 #include "SHRiMPS/Eikonals/Eikonal_Contributor.H"
0006 
0007 namespace SHRIMPS {
0008   class Rapidity_Density: public ATOOLS::Function_Base {
0009   private:
0010     double              m_Delta, m_lambda, m_Ymax;
0011     absorption::code    m_absorp;
0012     double              m_b1, m_b2, m_max, m_mean;
0013     Eikonal_Contributor * p_omegaik, * p_omegaki;
0014 
0015     double Integrate(const double & ymin,const double & ymax);
0016     double DeltaOmega(const double & y1,const double & y2);
0017   public:
0018     Rapidity_Density(const double & Delta,const double & lambda,const double & Ymax,
0019              const absorption::code & absorp);
0020     ~Rapidity_Density() {}
0021     void   SetEikonal(Omega_ik * eikonal);
0022     void   SetImpactParameters(const double & b1, const double & b2);
0023     double operator()(double y);
0024     size_t NGluons(const double & ymin,const double & ymax,const bool & rescatter=false);
0025     double SelectRapidity(const double & ymin,const double & ymax);
0026     double AbsorptionWeight(double y);
0027     double SingletWeight(const double & y1,const double & y2);
0028     double OctetWeight(const double & y1,const double & y2);
0029     double EffectiveIntercept(const double & b1, const double & b2,const double & y);
0030     double MaxWeight();
0031     double RescatterProbability(const double & y1,const double & y2);
0032     
0033     const double MeanNGluons() const              { return m_mean; }
0034     const double Delta() const                    { return m_Delta; }
0035     void  SetLambdaForTest(const double & lambda) { m_lambda = lambda; } 
0036     void  Test(Omega_ik * eikonal);
0037   };
0038 }
0039 #endif