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 ...
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...
const FunctionOfPseudoJet< PseudoJet > * subtractor() const
Set a subtractor that is applied to all individual subjets before deciding which ones to keep...
base class corresponding to errors that can be thrown by FastJet
Class to contain structure information for a filtered jet.
virtual ~FilterStructure()
virtual dtor to allow further overloading
Class that encodes information about cuts and other selection criteria that can be applied to PseudoJ...
const std::vector< PseudoJet > & rejected() const
returns the subjets that were not kept during the filtering procedure (subtracted if the filter reque...
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...
virtual std::string description() const
description
class that is intended to hold a full definition of the jet clusterer