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__