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