Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-04-19 09:10:15

0001 #ifndef SHRIMPS_Main_Collinear_Emission_Generator_H
0002 #define SHRIMPS_Main_Collinear_Emission_Generator_H
0003 
0004 #include "ATOOLS/Phys/Blob_List.H"
0005 #include "ATOOLS/Phys/Particle.H"
0006 #include "ATOOLS/Phys/Flavour.H"
0007 #include "MODEL/Main/Strong_Coupling.H"
0008 #include <list>
0009 
0010 namespace SHRIMPS {
0011   class Collinear_Emission_Generator {
0012   private:
0013     ATOOLS::Particle_Vector  m_inparts, m_outparts, m_beamparts, m_gluons;
0014     MODEL::Strong_Coupling * p_alphaS;
0015     double                   m_kt2min, m_kt2max, m_sladder;
0016     std::map<int,double>     m_kt2starts;
0017 
0018     bool InitNewRound(ATOOLS::Blob * hard_blob);
0019     void AddEmissions();
0020     void GetKt2(bool isgluon, double & kt2, double & z);
0021     double GetZ(bool isgluon);
0022     ATOOLS::Particle * FindSpectator(ATOOLS::Particle * part);
0023     bool FixKinematics(double kt2, double z, ATOOLS::Vec4D & split, ATOOLS::Vec4D & gluon, ATOOLS::Vec4D & spec);
0024     ATOOLS::Blob * MakeBlob();
0025     void CleanUp();
0026   public:
0027     Collinear_Emission_Generator();
0028     ~Collinear_Emission_Generator();
0029 
0030     int GenerateEmissions(ATOOLS::Blob_List * blobs);
0031   };
0032 }
0033 #endif