1#ifndef __FASTJET_TOOLS_RECLUSTER_HH__ 
    2#define __FASTJET_TOOLS_RECLUSTER_HH__ 
   25#include "fastjet/JetDefinition.hh" 
   26#include "fastjet/FunctionOfPseudoJet.hh"    
   37FASTJET_BEGIN_NAMESPACE      
 
   87  Recluster() : _new_jet_def(), _acquire_recombiner(true),
 
   88                _keep(keep_only_hardest), _cambridge_optimisation_enabled(true){}
 
 
  105            bool acquire_recombiner_in = 
false, 
 
  106            Keep keep_in = keep_only_hardest)
 
  107    : _new_jet_def(new_jet_def), _acquire_recombiner(acquire_recombiner_in), 
 
  108      _keep(keep_in), _cambridge_optimisation_enabled(true) {}
 
 
  161  bool cambridge_optimisation(){
return _cambridge_optimisation_enabled;}
 
  176  virtual std::string description() 
const;
 
  202  bool get_new_jets_and_def(
const PseudoJet & input_jet, 
 
  203                            std::vector<PseudoJet> & output_jets) 
const;
 
  210  PseudoJet generate_output_jet(std::vector<PseudoJet> & incljets,
 
  211                                bool ca_optimisation_used) 
const;
 
  216  void _recluster_ca(
const std::vector<PseudoJet> & all_pieces,
 
  217                     std::vector<PseudoJet> & incljets,
 
  221  void _recluster_generic(
const PseudoJet & jet, 
 
  222                          std::vector<PseudoJet> & incljets,
 
  224                          bool do_areas) 
const;
 
  229  bool _get_all_pieces(
const PseudoJet &jet, std::vector<PseudoJet> &all_pieces) 
const;
 
  234  void _acquire_recombiner_from_pieces(
const std::vector<PseudoJet> &all_pieces, 
 
  238  bool _check_ca(
const std::vector<PseudoJet> &all_pieces, 
 
  246  bool _check_explicit_ghosts(
const std::vector<PseudoJet> &all_pieces) 
const;
 
  249  bool _acquire_recombiner;    
 
  254  bool _cambridge_optimisation_enabled; 
 
 
base class providing interface for a generic function of a PseudoJet
class that is intended to hold a full definition of the jet clusterer
class to provide facilities for giving warnings up to some maximum number of times and to provide glo...
Class to contain pseudojets, including minimal information of use to jet-clustering routines.
Recluster a jet's constituents with a new jet definition.
bool cambridge_optimization()
returns true if the reclusterer tries to optimise reclustering with Cambridge/Aachen algorithms
Keep keep() const
returns the current "keep" mode i.e.
Keep
the various options for the output of Recluster
@ keep_only_hardest
keep only the hardest inclusive jet and return a "standard" jet with an associated ClusterSequence [t...
virtual ~Recluster()
default dtor
Recluster(const JetDefinition &new_jet_def, bool acquire_recombiner_in=false, Keep keep_in=keep_only_hardest)
Constructs a Recluster object that reclusters a jet into a new jet using a generic JetDefinition.
void set_acquire_recombiner(bool acquire)
set whether the reclustering should attempt to acquire a recombiner from the input jet
void set_keep(Keep keep_in)
set the behaviour with regards to keeping all resulting jets or just the hardest.
void set_cambridge_optimisation(bool enabled)
sets whether to try to optimise reclustering with Cambridge/Aachen algorithms (by not reclustering if...
Recluster()
default constructor (uses an undefined JetDefinition, and so cannot be used directly).
bool acquire_recombiner() const
returns true if this reclusterer is set to acquire the recombiner from the input jet
void set_cambridge_optimization(bool enabled)
sets whether to try to optimise reclustering with Cambridge/Aachen algorithms (US spelling!...
JetAlgorithm
the various families of jet-clustering algorithm