Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-04-19 09:09:43

0001 #ifndef AHADIC_Formation_Gluon_Splitter_H
0002 #define AHADIC_Formation_Gluon_Splitter_H
0003 
0004 #include "AHADIC++/Tools/Splitter_Base.H"
0005 
0006 
0007 namespace AHADIC {
0008   class Gluon_Splitter : public Splitter_Base {
0009   private:
0010     int    m_mode;
0011     double m_alpha, m_arg, m_x, m_y, m_lastmass;
0012     bool   m_lastB, m_lastC;
0013     
0014     long int  m_kin_fails{ 0 };
0015     
0016     bool      MakeLongitudinalMomenta();
0017     void      CalculateLimits();
0018     bool      CalculateXY();
0019 
0020     bool      FillParticlesInLists();
0021     bool      CheckKinematics();
0022     bool      CheckConstituentKinematics(const ATOOLS::Vec4D & newmom11,
0023                      const ATOOLS::Vec4D & newmom12);
0024     Cluster * MakeCluster();
0025     void      ReplaceClusterWithHadron(const ATOOLS::Flavour & fl,ATOOLS::Vec4D & mom);
0026     void      UpdateSpectator(const ATOOLS::Vec4D & clumom);
0027   public:
0028     Gluon_Splitter(std::list<Cluster *> * cluster_list,
0029            Soft_Cluster_Handler * softclusters) :
0030       Splitter_Base(cluster_list,softclusters) {}
0031     ~Gluon_Splitter();
0032 
0033     void   Init(const bool & isgluon=true);
0034     double WeightFunction(const double & z,
0035               const double & zmin=0.,const double & zmax=1.,
0036               const unsigned int & cnt=0);
0037     inline void GetLast(double & lastmass, bool & isB, bool & isC) {
0038       lastmass = m_lastmass; isB = m_lastB; isC = m_lastC;
0039     }
0040   };
0041 }
0042 
0043 #endif