1 #ifndef __FASTJET_TOOLS_FILTER_HH__ 2 #define __FASTJET_TOOLS_FILTER_HH__ 34 #include <fastjet/ClusterSequence.hh> 35 #include <fastjet/Selector.hh> 36 #include <fastjet/CompositeJetStructure.hh> 37 #include <fastjet/tools/Transformer.hh> 41 FASTJET_BEGIN_NAMESPACE
45 class FilterStructure;
102 Filter() : _Rfiltfunc(0), _initialised(false){};
117 _subjet_def(subjet_def), _Rfiltfunc(0), _Rfilt(-1), _selector(selector), _rho(rho), _subtractor(0), _initialised(true) {}
125 _Rfiltfunc(0), _Rfilt(Rfilt), _selector(selector), _rho(rho), _subtractor(0), _initialised(true) {
127 throw Error(
"Attempt to create a Filter with a negative filtering radius");
137 _Rfiltfunc(Rfilt_func), _Rfilt(-1), _selector(selector), _rho(rho), _subtractor(0), _initialised(true) {}
158 virtual std::string description()
const;
169 bool _set_filtered_elements(
const PseudoJet & jet,
170 std::vector<PseudoJet> & filtered_elements)
const;
180 std::vector<PseudoJet> & kept,
181 std::vector<PseudoJet> & rejected,
182 bool ca_optimisation_used)
const;
184 bool _uses_subtraction()
const {
return (_subtractor || _rho != 0);}
216 virtual std::string
description()
const {
return "Filtered PseudoJet"; }
228 const std::vector<PseudoJet> &
rejected()
const {
return _rejected;}
238 FASTJET_END_NAMESPACE
240 #endif // __FASTJET_TOOLS_FILTER_HH__ Filter(JetDefinition subjet_def, Selector selector, double rho=0.0)
define a filter that decomposes a jet into subjets using a generic JetDefinition and then keeps only ...
const FunctionOfPseudoJet< PseudoJet > * subtractor() const
Set a subtractor that is applied to all individual subjets before deciding which ones to keep...
void set_subtractor(const FunctionOfPseudoJet< PseudoJet > *subtractor_in)
Set a subtractor that is applied to all individual subjets before deciding which ones to keep...
Class that helps perform filtering (Butterworth, Davison, Rubin and Salam, arXiv:0802.2470) and trimming (Krohn, Thaler and Wang, arXiv:0912.1342) on jets, optionally in conjunction with subtraction (Cacciari and Salam, arXiv:0707.1378).
The structure for a jet made of pieces.
FilterStructure(const std::vector< PseudoJet > &pieces_in, const JetDefinition::Recombiner *rec=0)
constructor from an original ClusterSequenceInfo We just share the original ClusterSequenceWrapper an...
Filter(double Rfilt, Selector selector, double rho=0.0)
Same as the full constructor (see above) but just specifying the radius By default, Cambridge-Aachen is used If the jet (or all its pieces) is obtained with a non-default recombiner, that one will be used.
Filter()
trivial ctor Note: this is just for derived classes a Filter initialised through this constructor wil...
base class corresponding to errors that can be thrown by FastJet
Class to contain structure information for a filtered jet.
virtual std::string description() const
description
const std::vector< PseudoJet > & rejected() const
returns the subjets that were not kept during the filtering procedure (subtracted if the filter reque...
virtual ~FilterStructure()
virtual dtor to allow further overloading
Class that encodes information about cuts and other selection criteria that can be applied to PseudoJ...
Filter(FunctionOfPseudoJet< double > *Rfilt_func, Selector selector, double rho=0.0)
Same as the full constructor (see above) but just specifying a filtering radius that will depend on t...
virtual ~Filter()
default dtor
std::vector< PseudoJet > _rejected
the subjets rejected by the filter
An abstract base class that will provide the recombination scheme facilities and/or allow a user to e...
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