#ifndef _JETCLU_ALGORITHM_HH_ #define _JETCLU_ALGORITHM_HH_ #include "../interface/PhysicsTower.hh" #include "../interface/Cluster.hh" #include class JetCluAlgorithm { private: double _seedThreshold; double _coneRadius; int _adjacencyCut; int _maxIterations; int _iratch; double _overlapThreshold; public: JetCluAlgorithm(): _seedThreshold(1), _coneRadius(0.7), _adjacencyCut(2), _maxIterations(100), _iratch(1), _overlapThreshold(0.75) {} JetCluAlgorithm(double st, double cr, int ac, int mi, int ir, double ot): _seedThreshold(st), _coneRadius(cr), _adjacencyCut(ac), _maxIterations(mi), _iratch(ir), _overlapThreshold(ot) {} void makeSeedTowers(std::vector& towers, std::vector& seedTowers); void buildPreClusters(std::vector& seedTowers, std::vector& towers, std::vector& preClusters); void findStableCones(std::vector& preClusters, std::vector& towers, std::vector& stableCones); void splitAndMerge(std::vector& stableCones, std::vector& jets); void run(std::vector& towers, std::vector& jets); }; #endif