Back to home page

EIC code displayed by LXR

 
 

    


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

0001 #ifndef SHRIMPS_Ladders_Ladder_Generator_LDC_H
0002 #define SHRIMPS_Ladders_Ladder_Generator_LDC_H
0003 
0004 #include "SHRiMPS/Ladders/Ladder_Generator_Base.H"
0005 #include "SHRiMPS/Ladders/Ladder.H"
0006 #include "SHRiMPS/Cross_Sections/Sigma_Partonic.H"
0007 #include "SHRiMPS/Beam_Remnants/Continued_PDF.H"
0008 #include "MODEL/Main/Strong_Coupling.H"
0009 #include "ATOOLS/Math/Random.H"
0010 #include "ATOOLS/Math/Histogram.H"
0011 
0012 namespace SHRIMPS {
0013   class Ladder_Generator_LDC : public Ladder_Generator_Base {
0014   private:
0015     Continued_PDF  * p_pdf[2];
0016     Sigma_Partonic   m_partonic;
0017     double           m_kt2min;
0018     double           m_Ebeam[2], m_y[2], m_kt2[2], m_zp[2], m_zm[2];
0019     ATOOLS::Vec4D    m_Pbeam[2], m_k[2];
0020     ATOOLS::Flavour  m_flavs[2];
0021     std::set<double> m_zps, m_zms;
0022     
0023     bool   FixInitialPartons();
0024     bool   FillZs();
0025     size_t SelectN(const double & a,const double & b);
0026     void   CalculateWeight();
0027     void   Output();
0028   public:
0029     Ladder_Generator_LDC();
0030     ~Ladder_Generator_LDC() {}
0031 
0032     void Initialise() { m_partonic.Initialise(); }
0033     Ladder * operator()(const ATOOLS::Vec4D & pos);
0034 
0035     const  double Weight() const { return m_weight; }
0036     inline void SetRemnantHandler(Remnant_Handler * remnants) {
0037       for (size_t beam=0;beam<2;beam++) {
0038     p_pdf[beam] = remnants->GetPDF(beam);
0039     m_partonic.SetPDF(beam,p_pdf[beam]);
0040       }
0041     }
0042   };
0043 }
0044 #endif