Back to home page

EIC code displayed by LXR

 
 

    


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   };// end of struct CS_Parameters
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     // CS cluster kperps
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     // CS cluster kinematics
0067     ATOOLS::Vec4D_Vector Combine(const ATOOLS::Cluster_Amplitude &ampl,
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   };// end of class CS_Cluster_Definitions
0074 
0075 }// end of namespace CSSHOWER
0076 
0077 #endif