#ifndef _JETCLU_ALGORITHM_HH_ #define _JETCLU_ALGORITHM_HH_ //---------------------------------------------------------------------- // This file distributed with FastJet has been obtained from // http://www.pa.msu.edu/~huston/Les_Houches_2005/JetClu+Midpoint-StandAlone.tgz // // Permission to distribute it with FastJet has been granted by Joey // Huston (see the COPYING file in the main FastJet directory for // details). // Changes from the original file are listed below. //---------------------------------------------------------------------- // History of changes compared to the original JetCluAlgorithm.hh file // // 2009-01-17 Gregory Soyez // // * put the code in the fastjet::cdf namespace // // 2006-09-24 Gavin Salam // // * added JetClu+MidPoint to FastJet #include "PhysicsTower.hh" #include "Cluster.hh" #include #include FASTJET_BEGIN_NAMESPACE namespace cdf{ 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); }; } // namespace cdf FASTJET_END_NAMESPACE #endif