#ifndef ATOOLS_Phys_Durham_Algorithm_H #define ATOOLS_Phys_Durham_Algorithm_H #include "ATOOLS/Math/Vector.H" #include "ATOOLS/Phys/Particle_List.H" #include "AddOns/Analysis/Triggers/Kt_Algorithm.H" #include namespace ANALYSIS { class Durham_Algorithm : public Jet_Algorithm_Base { int m_mode; int m_durhamscheme; double m_ycut;//, m_r2min; double m_sprime; int m_matrixsize; double ** p_yij; int * p_imap; int m_vectorsize; Vec4D * p_moms; int * p_bflag; Particle_List * p_jets; std::vector * p_kts; double Y12(const Vec4D &,const Vec4D &) const; double DCos12(const Vec4D &,const Vec4D &) const; void AddToKtlist(double ); void AddToJetlist(const Vec4D &, int); public: static double Kt2(const Vec4D & p); Durham_Algorithm(ATOOLS::Particle_Qualifier_Base * const qualifier); ~Durham_Algorithm(); void Init(int); void InitMoms(int); bool ConstructJets(const Particle_List * ,Particle_List * ,std::vector * ,double); void Ymin(Vec4D *,int *,int); }; inline double Durham_Algorithm::Kt2(const Vec4D & p) { return sqr(p[1])+sqr(p[2]); } } #endif