File indexing completed on 2025-04-19 09:10:00
0001 #ifndef CSSHOWER_Main_CS_Cluster_Definitions_H
0002 #define CSSHOWER_Main_CS_Cluster_Definitions_H
0003
0004 #include "PDF/Main/Cluster_Definitions_Base.H"
0005 #include "ATOOLS/Math/Poincare.H"
0006
0007 namespace CSSHOWER {
0008
0009 class Splitting_Function_Base;
0010 class Shower;
0011
0012 struct CS_Parameters {
0013 double m_kt2, m_z, m_y, m_phi, m_x, m_wk, m_q2, m_mu2;
0014 int m_mode, m_cpl, m_kin, m_col, m_kmode;
0015 Splitting_Function_Base *p_sf;
0016 ATOOLS::Vec4D m_pk, m_pijt, m_pkt;
0017 ATOOLS::Poincare_Sequence m_lt;
0018 CS_Parameters(const double &kt2,const double &z,
0019 const double &y,const double &phi,
0020 const double &x,const double &q2,
0021 const int mode,const int kin,const int kmode):
0022 m_kt2(kt2), m_z(z), m_y(y), m_phi(phi), m_x(x), m_wk(1.0),
0023 m_q2(q2), m_mu2(kt2), m_mode(mode), m_cpl(-1),
0024 m_kin(kin), m_col(0), m_kmode(kmode), p_sf(NULL) {}
0025 };
0026
0027 std::ostream &operator<<(std::ostream &str,const CS_Parameters &cs);
0028
0029 class CS_Cluster_Definitions: public PDF::Cluster_Definitions_Base {
0030 private:
0031
0032 const ATOOLS::Mass_Selector *p_ms;
0033 ATOOLS::Cluster_Leg *p_b;
0034
0035 Shower *p_shower;
0036 int m_kmode, m_pdfcheck, m_kfmode;
0037
0038 Splitting_Function_Base *GetSF(const ATOOLS::Cluster_Leg *i,
0039 const ATOOLS::Cluster_Leg *j,
0040 const ATOOLS::Cluster_Leg *k,
0041 const ATOOLS::Flavour &mo,CS_Parameters &cs) const;
0042 void KernelWeight(const ATOOLS::Cluster_Leg *i,
0043 const ATOOLS::Cluster_Leg *j,
0044 const ATOOLS::Cluster_Leg *k,
0045 const ATOOLS::Flavour &mo,CS_Parameters &cs,
0046 const int kmode) const;
0047 ATOOLS::Flavour ProperFlav(const ATOOLS::Flavour &fl,const int anti=false) const;
0048
0049 public:
0050
0051 CS_Cluster_Definitions(Shower *const shower,const int kmode,
0052 const int pdfcheck,const int kfmode);
0053
0054
0055 double GetX(const ATOOLS::Cluster_Leg*,
0056 Splitting_Function_Base* const) const;
0057 PDF::Cluster_Param Cluster(const PDF::Cluster_Config &ca);
0058 CS_Parameters KT2(const ATOOLS::Cluster_Amplitude *ampl,
0059 const ATOOLS::Cluster_Leg *i,
0060 const ATOOLS::Cluster_Leg *j,
0061 const ATOOLS::Cluster_Leg *k,
0062 const ATOOLS::Flavour &mo=ATOOLS::Flavour(kf_none),
0063 const ATOOLS::Mass_Selector *const ms=NULL,
0064 const int kin=-1,const int mode=0,const int force=0);
0065
0066
0067 ATOOLS::Vec4D_Vector Combine(const ATOOLS::Cluster_Amplitude &l,
0068 int i,int j,int k,
0069 const ATOOLS::Flavour &mo=ATOOLS::Flavour(kf_none),
0070 const ATOOLS::Mass_Selector *const ms=NULL,
0071 const int kin=0,const int mode=0);
0072
0073 };
0074
0075 }
0076
0077 #endif