File indexing completed on 2025-04-19 09:10:02
0001 #ifndef DIRE__Shower__Cluster_H
0002 #define DIRE__Shower__Cluster_H
0003
0004 #include "PDF/Main/Cluster_Definitions_Base.H"
0005 #include "DIRE/Tools/Splitting.H"
0006
0007 namespace DIRE {
0008
0009 class Kernel;
0010 class Shower;
0011
0012 struct CS_Parameters {
0013 double m_kt2, m_z, m_y, m_phi, m_x, m_wk, m_ws, m_q2, m_mu2;
0014 int m_mode, m_kin, m_col, m_kmode;
0015 Kernel *p_sf;
0016 size_t m_idi, m_idj, m_idk;
0017 ATOOLS::Vec4D m_pbt;
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=-1,const int kin=0,const int kmode=0):
0022 m_kt2(kt2), m_z(z), m_y(y), m_phi(phi), m_x(x), m_wk(1.0), m_ws(kt2),
0023 m_q2(q2), m_mu2(kt2), m_mode(mode), m_kin(kin), m_col(0), m_kmode(kmode), p_sf(NULL),
0024 m_idi(0), m_idj(0), m_idk(0) {}
0025 };
0026
0027 std::ostream &operator<<(std::ostream &str,const CS_Parameters &cs);
0028
0029 class Cluster_Definitions: public PDF::Cluster_Definitions_Base {
0030 private:
0031
0032 const ATOOLS::Mass_Selector *p_ms;
0033
0034 ATOOLS::Cluster_Leg *p_b;
0035
0036 Shower *p_shower;
0037 int m_mode, m_amode;
0038
0039 double Lambda(const double &s,const double &sb,const double &sc) const;
0040 double Phi(ATOOLS::Vec4D pijt,ATOOLS::Vec4D pkt,
0041 ATOOLS::Vec4D pi,const bool ii=false) const;
0042 ATOOLS::Flavour ProperFlav(const ATOOLS::Flavour &fl) const;
0043
0044 public:
0045
0046 Cluster_Definitions(Shower *const shower);
0047
0048 PDF::Cluster_Param Cluster(const PDF::Cluster_Config &ca);
0049
0050 Splitting KT2(const ATOOLS::Cluster_Amplitude &l,
0051 int i,int j,int k,const ATOOLS::Flavour &mo,
0052 const int kin,const int type,const int mode,
0053 double &ws,double &mu2);
0054
0055 inline ATOOLS::Cluster_Leg *LegB() const { return p_b; }
0056
0057 inline void SetAMode(const size_t mode) { m_amode=mode; }
0058
0059 };
0060
0061 }
0062
0063 #endif