File indexing completed on 2025-04-19 09:10:16
0001 #ifndef SHRIMPS_Ladders_Ladder_Generator_QT_H
0002 #define SHRIMPS_Ladders_Ladder_Generator_QT_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_QT : public Ladder_Generator_Base {
0014 private:
0015 double m_sigmahat, m_seff;
0016 ATOOLS::Vec4D m_q[2], m_k[2], m_qini[2];
0017 ATOOLS::Flavour m_flavs[2];
0018 ATOOLS::Poincare m_cms, m_zax;
0019 double m_shat, m_yhat;
0020
0021 bool FixInitialPartons();
0022 Ladder * InitializeRescatterLadder(Ladder_Particle * parts[2]);
0023 bool MakeTrialLadder(Ladder * ladder);
0024 Ladder * MakeRescatterLadder(LadderMap::iterator lit[2],TPropList::iterator & pit1);
0025 void MergeLadders(Ladder * ladder,Ladder * rescatter,
0026 LadderMap::iterator lit[2],TPropList::iterator pit);
0027 bool TrialEmission(Ladder * ladder,size_t dir,const double & yhat=0);
0028 bool LastEmissions(Ladder * ladder);
0029 void AddEmission(Ladder * ladder,size_t dir,TPropList::iterator & pit);
0030 double AbsorptionWeight(const ATOOLS::Vec4D & k,const double & y);
0031 double MEWeight();
0032 bool FixSimpleKinematics();
0033 void SelectPropagatorColours(Ladder * ladder);
0034 void CalculateWeight();
0035
0036 double QT2Min(size_t dir=2);
0037 double QT2Max();
0038 ATOOLS::Vec4D MakeFSMomentum(size_t dir);
0039 ATOOLS::Vec4D MakePropMomentum(const double & qt2min,const double & qt2max,
0040 Form_Factor * ff=NULL,const bool isrescatter=false);
0041 public:
0042 Ladder_Generator_QT();
0043 ~Ladder_Generator_QT() {}
0044
0045 Ladder * operator()(const ATOOLS::Vec4D & pos);
0046 void AddRescatters(Ladder * ladder);
0047 };
0048 }
0049 #endif