1 #ifndef __FASTJET_TOOLS_PRUNER_HH__
2 #define __FASTJET_TOOLS_PRUNER_HH__
32 #include "fastjet/ClusterSequence.hh"
33 #include "fastjet/WrappedStructure.hh"
34 #include "fastjet/tools/Transformer.hh"
38 FASTJET_BEGIN_NAMESPACE
42 class PrunerStructure;
43 class PruningRecombiner;
113 _zcut(zcut), _Rcut_factor(Rcut_factor),
114 _zcut_dyn(0), _Rcut_dyn(0), _get_recombiner_from_jet(true) {}
126 _zcut(zcut), _Rcut_factor(Rcut_factor),
127 _zcut_dyn(0), _Rcut_dyn(0), _get_recombiner_from_jet(false) {}
144 virtual std::string description()
const;
152 bool _check_explicit_ghosts(
const PseudoJet &jet)
const;
163 bool _get_recombiner_from_jet;
184 virtual std::string
description()
const{
return "Pruned PseudoJet";}
188 return validated_cs()->childless_pseudojets();
194 std::vector<PseudoJet> extra_jets()
const;
226 PruningRecombiner(
double zcut,
double Rcut,
228 : _zcut2(zcut*zcut), _Rcut2(Rcut*Rcut),
229 _recombiner(recombiner){}
233 virtual void recombine(
const PseudoJet &pa,
235 PseudoJet &pab)
const;
241 const std::vector<unsigned int> & rejected()
const{
return _rejected;}
248 void clear_rejected(){ _rejected.clear();}
253 const JetDefinition::Recombiner *_recombiner;
254 mutable std::vector<unsigned int> _rejected;
273 class PruningPlugin :
public JetDefinition::Plugin{
280 PruningPlugin(
const JetDefinition &jet_def,
double zcut,
double Rcut)
281 : _jet_def(jet_def), _zcut(zcut), _Rcut(Rcut){}
284 virtual void run_clustering(ClusterSequence &input_cs)
const;
287 virtual std::string description()
const;
290 virtual double R()
const {
return _jet_def.R();}
293 JetDefinition _jet_def;
300 FASTJET_END_NAMESPACE
302 #endif // __FASTJET_TOOLS_PRUNER_HH__
Pruner(const JetDefinition &jet_def, double zcut, double Rcut_factor)
alternative ctor in which the full reclustering jet definition can be specified.
virtual void recombine(const PseudoJet &pa, const PseudoJet &pb, PseudoJet &pab) const =0
recombine pa and pb and put result into pab
This wraps a (shared) pointer to an underlying structure.
std::vector< PseudoJet > rejected() const
return the constituents that have been rejected
Transformer that prunes a jet.
PrunerStructure(const PseudoJet &result_jet)
default ctor
The structure associated with a PseudoJet thas has gone through a Pruner transformer.
virtual std::string description() const
description
Pruner(const JetAlgorithm jet_alg, double zcut, double Rcut_factor)
minimal constructor, which takes a jet algorithm, sets the radius to JetDefinition::max_allowable_R (...
virtual std::string description() const =0
return a textual description of the recombination scheme implemented here
An abstract base class that will provide the recombination scheme facilities and/or allow a user to e...
JetAlgorithm
the various families of jet-clustering algorithm
Class to contain pseudojets, including minimal information of use to jet-clustering routines...
class that is intended to hold a full definition of the jet clusterer