File indexing completed on 2025-04-19 09:10:03
0001 #ifndef DIRE__Tools__Splitting_H
0002 #define DIRE__Tools__Splitting_H
0003
0004 #include "DIRE/Tools/Color.H"
0005 #include "DIRE/Tools/Parton.H"
0006 #include "DIRE/Tools/Weight.H"
0007 #include "PHASIC++/Channels/CSS_Kinematics.H"
0008 #include "ATOOLS/Math/Poincare.H"
0009
0010 namespace DIRE {
0011
0012 class Kernel;
0013
0014 struct Splitting {
0015
0016 Parton *p_c, *p_s, *p_n, *p_l;
0017 const Kernel *p_sk;
0018 double m_t, m_z, m_phi, m_s, m_z2, m_phi2;
0019 double m_q2, m_Q2, m_x, m_y;
0020 double m_mij2, m_mi2, m_mj2, m_mk2, m_ml2;
0021 double m_eta, m_t0, m_t1;
0022 Color_Vector m_ci, m_cj;
0023 ATOOLS::Vec4D m_pi, m_pj, m_pl, m_pk;
0024 ATOOLS::Poincare_Sequence m_lam;
0025 int m_h[3], m_mode;
0026 int m_type, m_cm, m_kin, m_cpl, m_kfac, m_clu;
0027 Weight m_w;
0028 std::vector<double> m_vars;
0029 PHASIC::Kin_Args m_ff;
0030
0031 Splitting(Parton *const c=NULL,Parton *const s=NULL,
0032 const double &t=0.0,const double &z=0.0,
0033 const double &phi=0.0):
0034 p_c(c), p_s(s), p_n(NULL), p_l(NULL), p_sk(NULL),
0035 m_t(t), m_z(z), m_phi(phi), m_s(0.0), m_z2(0.0), m_phi2(0.0),
0036 m_Q2(0.0), m_x(0.0), m_y(0.0),
0037 m_mij2(0.0), m_mi2(0.0), m_mj2(0.0), m_mk2(0.0), m_ml2(0.0),
0038 m_eta(0.0), m_t0(0.0), m_t1(0.0), m_mode(0),
0039 m_type(-1), m_cm(-1), m_kin(1), m_cpl(0), m_kfac(0), m_clu(0),
0040 m_w(0,0,0)
0041 { m_h[2]=m_h[1]=m_h[0]=0; }
0042
0043 void SetType();
0044
0045 inline void ResetCol() { m_ci.clear(); m_cj.clear(); }
0046
0047 inline void AddCol(const Color &ci,const Color &cj)
0048 { m_ci.push_back(ci); m_cj.push_back(cj); }
0049
0050 };
0051
0052 std::ostream &operator<<(std::ostream &s,const Splitting &p);
0053
0054 }
0055
0056 #endif