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__ 
 
The structure for a jet made of pieces.
An abstract base class that will provide the recombination scheme facilities and/or allow a user to e...
Class to contain structure information for a filtered jet.
virtual std::string description() const
description
void set_subtractor(const FunctionOfPseudoJet< PseudoJet > *subtractor_in)
Set a subtractor that is applied to all individual subjets before deciding which ones to keep.
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 std::vector< PseudoJet > & rejected() const
returns the subjets that were not kept during the filtering procedure (subtracted if the filter reque...
class that is intended to hold a full definition of the jet clusterer
const FunctionOfPseudoJet< PseudoJet > * subtractor() const
Set a subtractor that is applied to all individual subjets before deciding which ones to keep.
Filter(double Rfilt, Selector selector, double rho=0.0)
Same as the full constructor (see above) but just specifying the radius By default,...
FilterStructure(const std::vector< PseudoJet > &pieces_in, const JetDefinition::Recombiner *rec=0)
constructor from an original ClusterSequenceInfo We just share the original ClusterSequenceWrapper an...
std::vector< PseudoJet > _rejected
the subjets rejected by the filter
virtual ~FilterStructure()
virtual dtor to allow further overloading
Filter()
trivial ctor Note: this is just for derived classes a Filter initialised through this constructor wil...
Class to contain pseudojets, including minimal information of use to jet-clustering routines.
virtual ~Filter()
default dtor
Class that encodes information about cuts and other selection criteria that can be applied to PseudoJ...
Class that helps perform filtering (Butterworth, Davison, Rubin and Salam, arXiv:0802....
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...
base class corresponding to errors that can be thrown by FastJet