FastJet 3.0beta1
|
Base (abstract) class for a jet transformer. More...
#include <fastjet/tools/Transformer.hh>
Public Types | |
typedef PseudoJetStructureBase | StructureType |
information about the associated structure type | |
Public Member Functions | |
Transformer () | |
default ctor | |
virtual | ~Transformer () |
default dtor | |
virtual PseudoJet | result (const PseudoJet &original) const =0 |
the result of the Transformer acting on the PseudoJet. | |
virtual std::string | description () const =0 |
This should be overloaded to return a description of the Transformer. |
Base (abstract) class for a jet transformer.
The idea of a transformer is that applied to a jet, it somehow modifies its momentum and/or contents. If applied to a vector of jets, the Transformer is applied to each one individually.
This class here is a base class that provides a basic template on which actual Transformers may be built (one example is a tagger).
Any new transformer must implement result(), but its action can equivalently be accessed through the operator() that works either on a single PseudoJet or on a vector of PseudoJet.
In addition many transformers will want to associated extra information on the resulting jet's substructure, by setting a shared pointer to some class derived from PseudoJetStructureBase. It is the user's responsability to implement this and also set up a typedef so that DerivedTransformer::StructureType is the corresponding Structure type. See any of the derived transformers already implemented for explicit examples).
This associated information about the structure of the PseudoJet can then be accessed using either p.structure<DerivedStructureType>() or p.extra_properties<DerivedTransformer>() which both return a reference to the associated structure.
To check if the structure associated to a given PseudoJet is compatible with the one produced by a DerivedTransformer, one can also use if (p.has_properties_of<DerivedTransformer>()) ...;
[.......comments still under preparation......]
transformation on them and return the list of modified jets This base class sets the fundamental requirements for all the transformers.
Similarly, to gain access to the information relative to the transformation, a "transformed" PseudoJet will have a corresponding PropertyInterface. Any transformer thus must provide (at least) 2 classes:
Definition at line 91 of file Transformer.hh.
the result of the Transformer acting on the PseudoJet.
this _has_ to be overloaded in derived classes
original | the PseudoJet input to the Transformer |
Implements fastjet::FunctionOfPseudoJet< PseudoJet >.
Implemented in fastjet::CASubJetTagger, fastjet::Filter, fastjet::MassDropTagger, fastjet::RestFrameNSubjettinessTagger, and fastjet::Subtractor.