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);}
186 JetDefinition _subjet_def;
187 FunctionOfPseudoJet<double> *_Rfiltfunc;
192 const FunctionOfPseudoJet<PseudoJet> * _subtractor;
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__