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