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