Back to home page

EIC code displayed by LXR

 
 

    


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   };// end of struct CS_Parameters
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 &ampl,
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   };// end of class Cluster_Definitions
0060 
0061 }// end of namespace DIRE
0062 
0063 #endif