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