| FastJet
    3.1.0
    | 
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). More...
#include <fastjet/tools/Filter.hh>


| Public Types | |
| typedef FilterStructure | StructureType | 
|  Public Types inherited from fastjet::Transformer | |
| typedef PseudoJetStructureBase | StructureType | 
| A typedef that is needed to ensure that the PseudoJet::structure_of() template function works. | |
| Public Member Functions | |
| Filter () | |
| trivial ctor Note: this is just for derived classes a Filter initialised through this constructor will not work! | |
| 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 a subset of these subjets according to a Selector.  More... | |
| 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.  More... | |
| 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 the jet being filtered As for the previous case, Cambridge-Aachen is used If the jet (or all its pieces) is obtained with a non-default recombiner, that one will be used.  More... | |
| virtual | ~Filter () | 
| default dtor | |
| void | set_subtractor (const FunctionOfPseudoJet< PseudoJet > *subtractor) | 
| Set a subtractor that is applied to all individual subjets before deciding which ones to keep.  More... | |
| virtual PseudoJet | result (const PseudoJet &jet) const | 
| runs the filtering and sets kept and rejected to be the jets of interest (with non-zero rho, they will have been subtracted).  More... | |
| virtual std::string | description () const | 
| class description | |
|  Public Member Functions inherited from fastjet::Transformer | |
| Transformer () | |
| default ctor | |
| virtual | ~Transformer () | 
| default dtor | |
|  Public Member Functions inherited from fastjet::FunctionOfPseudoJet< PseudoJet > | |
| FunctionOfPseudoJet () | |
| default ctor | |
| virtual | ~FunctionOfPseudoJet () | 
| default dtor (virtual to allow safe polymorphism) | |
| PseudoJet | operator() (const PseudoJet &pj) const | 
| apply the function using the "traditional" () operator.  More... | |
| std::vector< PseudoJet > | operator() (const std::vector< PseudoJet > &pjs) const | 
| apply the function on a vector of PseudoJet, returning a vector of the results.  More... | |
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).
For example, to apply filtering that reclusters a jet's constituents with the Cambridge/Aachen jet algorithm with R=0.3 and then selects the 3 hardest subjets, one can use the following code:
To obtain trimming, involving for example the selection of all subjets carrying at least 3% of the original jet's pt, the selector would be replaced by SelectorPtFractionMin(0.03).
To additionally perform subtraction on the subjets prior to selection, either include a 3rd argument specifying the background density rho, or call the set_subtractor(...) member function. If subtraction is requested, the original jet must be the result of a clustering with active area with explicit ghosts support or a merging of such pieces.
The information on the subjets that were kept and rejected can be obtained using:
If the original jet was defined with the Cambridge/Aachen algorithm (or is made of pieces each of which comes from the C/A alg) and the filtering definition is C/A, then the filter does not rerun the C/A algorithm on the constituents, but instead makes use of the existent C/A cluster sequence in the original jet. This increases the speed of the filter.
See also 11 - use of filtering for a further usage example.
Support for areas, reuse of C/A cluster sequences, etc., considerably complicates the implementation of Filter. For an explanation of how a simpler filter might be coded, see the "User-defined transformers" appendix of the manual.
| 
 | inline | 
define a filter that decomposes a jet into subjets using a generic JetDefinition and then keeps only a subset of these subjets according to a Selector.
Optionally, each subjet may be internally bakground-subtracted prior to selection.
| subjet_def | the jet definition applied to obtain the subjets | 
| selector | the Selector applied to compute the kept subjets | 
| rho | if non-zero, backgruond-subtract each subjet befor selection | 
Note: internal subtraction only applies on jets that are obtained with a cluster sequence with area support and explicit ghosts
| 
 | inline | 
| 
 | inline | 
Same as the full constructor (see above) but just specifying a filtering radius that will depend on the jet being filtered As for the previous case, Cambridge-Aachen is used If the jet (or all its pieces) is obtained with a non-default recombiner, that one will be used.
| Rfilt_func | the filtering radius function of a PseudoJet | 
| 
 | inline | 
runs the filtering and sets kept and rejected to be the jets of interest (with non-zero rho, they will have been subtracted).
| jet | the jet that gets filtered | 
Implements fastjet::Transformer.
 1.8.8
 1.8.8