#ifndef DIM__Shower__Kernel_H #define DIM__Shower__Kernel_H #include "DIM/Shower/Lorentz.H" #include "DIM/Shower/Gauge.H" #include "DIM/Tools/Weight.H" #include namespace DIM { class Shower; class Kernel { private: Shower *p_ps; Lorentz *p_lf; Gauge *p_gf; int m_type, m_mode, m_on; public: Kernel(Shower *const ps,Kernel_Key key); ~Kernel(); double Value(const Splitting &s) const; MC_Weight GetWeight(const Splitting &s,const double &o, const MC_Weight *w=NULL) const; bool GeneratePoint(Splitting &s) const; double Integral(Splitting &s) const; int Construct(Splitting &s,const int mode) const; inline bool Allowed(const Splitting &s) { return p_lf->Allowed(s)&&p_gf->Allowed(s); } inline Lorentz *LF() const { return p_lf; } inline Gauge *GF() const { return p_gf; } inline Shower *PS() const { return p_ps; } inline int Type() const { return m_type; } inline int Mode() const { return m_mode; } inline int On() const { return m_on; } };// end of class Kernel typedef std::vector Kernel_Vector; }// end of namepsace DIM #endif