Back to home page

EIC code displayed by LXR

 
 

    


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

0001 #ifndef AHADIC_Decays_Cluster_Splitter_H
0002 #define AHADIC_Decays_Cluster_Splitter_H
0003 
0004 #include "AHADIC++/Tools/Splitter_Base.H"
0005 
0006 namespace AHADIC {
0007   class Cluster_Splitter : public Splitter_Base {
0008   private:
0009     int    m_mode, m_defmode, m_beammode;
0010     double m_alpha[4], m_beta[4], m_gamma[4];
0011     double m_a[2], m_b[2], m_c[2], m_kt02;
0012 
0013     double m_R2[2], m_mean[2], m_sigma[2], m_m2min[2], m_masses;
0014 
0015     Cluster *       p_out[2];
0016     ATOOLS::Vec4D   m_cms, m_mom[2], m_newmom[2];
0017     ATOOLS::Flavour m_fl[2];
0018     double          m_mass2[2];
0019 
0020     bool   m_output;
0021 
0022     bool   MakeLongitudinalMomenta();
0023     bool   MakeLongitudinalMomentaZ();
0024     bool   MakeLongitudinalMomentaZSimple();
0025     bool   MakeLongitudinalMomentaMass();
0026     bool   MakeLongitudinalMomentaMassSimple();
0027     double DeltaM(const size_t & cl);
0028     void   FixCoefficients();
0029     void   CalculateLimits();
0030     bool   FillParticlesInLists();
0031     size_t MakeAndCheckClusters();
0032     void   MakeNewMomenta(size_t shuffle);
0033     void   FillHadronAndDeleteCluster(size_t i);
0034     void   UpdateAndFillCluster(size_t i);
0035     bool   RecalculateZs();
0036     bool   CheckKinematics() { return true; }
0037     Cluster * MakeCluster(size_t i);
0038   public:
0039     Cluster_Splitter(std::list<Cluster *> * cluster_list,
0040              Soft_Cluster_Handler * softclusters);
0041     void   Init(const bool & isgluon=false);
0042     double WeightFunction(const double & z,
0043               const double & zmin,const double & zmax,
0044               const unsigned int & cnt);
0045     void   SetOutput(const bool & out) { m_output = out; }
0046   };
0047 }
0048 
0049 #endif