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