File indexing completed on 2025-04-19 09:10:16
0001 #ifndef SHRIMPS_Ladders_Ladder_Generator_KT_H
0002 #define SHRIMPS_Ladders_Ladder_Generator_KT_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 "MODEL/Main/Strong_Coupling.H"
0008 #include "ATOOLS/Math/Histogram.H"
0009
0010 namespace SHRIMPS {
0011 struct rap_order {
0012 bool operator()(const double & y1, const double & y2) const {
0013 return (ATOOLS::dabs(y1)>ATOOLS::dabs(y2));
0014 }
0015 };
0016
0017 class Ladder_Generator_KT : public Ladder_Generator_Base {
0018 private:
0019 double m_sigmahat;
0020 ATOOLS::Vec4D m_qini[2], m_sumQ, m_sumK, m_lastk;
0021 ATOOLS::Flavour m_flavs[2];
0022 std::map<double, ATOOLS::Vec4D, rap_order> m_rapidities;
0023 bool MakeTrialInitialPartons();
0024 bool MakeTrialLadder();
0025 void MakeTrialRapidities(const size_t & N);
0026 void FillRapidities();
0027 bool SelectKTs();
0028 ATOOLS::Vec4D SelectKT(const double & y,const double & seff);
0029 void ConstructPropagators();
0030 void SelectPropagatorColours();
0031 void CalculateWeight();
0032 public:
0033 Ladder_Generator_KT();
0034 ~Ladder_Generator_KT();
0035
0036 Ladder * operator()(const ATOOLS::Vec4D & pos);
0037 };
0038 }
0039 #endif