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_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