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) {}
 
  154   virtual std::string description() 
const;
 
  165   bool _set_filtered_elements(
const PseudoJet & jet,
 
  166                               std::vector<PseudoJet> & filtered_elements) 
const;
 
  176                       std::vector<PseudoJet> & kept, 
 
  177                       std::vector<PseudoJet> & rejected,
 
  178                       bool ca_optimisation_used) 
const;
 
  180   bool _uses_subtraction()
 const {
return (_subtractor || _rho != 0);}
 
  182   JetDefinition _subjet_def;   
 
  183   FunctionOfPseudoJet<double> *_Rfiltfunc; 
 
  188   const FunctionOfPseudoJet<PseudoJet> * _subtractor; 
 
  212   virtual std::string 
description()
 const { 
return "Filtered PseudoJet"; }
 
  224   const std::vector<PseudoJet> & 
rejected()
 const {
return _rejected;}
 
  234 FASTJET_END_NAMESPACE      
 
  236 #endif   // __FASTJET_TOOLS_FILTER_HH__ 
void set_subtractor(const FunctionOfPseudoJet< PseudoJet > *subtractor)
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 ...
 
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...
 
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