FastJet 3.0beta1
Public Types | Public Member Functions
fastjet::Transformer Class Reference

Base (abstract) class for a jet transformer. More...

#include <fastjet/tools/Transformer.hh>

Inheritance diagram for fastjet::Transformer:
Inheritance graph
[legend]
Collaboration diagram for fastjet::Transformer:
Collaboration graph
[legend]

List of all members.

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.

Detailed Description

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.


Member Function Documentation

virtual PseudoJet fastjet::Transformer::result ( const PseudoJet original) const [pure virtual]

the result of the Transformer acting on the PseudoJet.

this _has_ to be overloaded in derived classes

Parameters:
originalthe PseudoJet input to the Transformer

Implements fastjet::FunctionOfPseudoJet< PseudoJet >.

Implemented in fastjet::CASubJetTagger, fastjet::Filter, fastjet::MassDropTagger, fastjet::RestFrameNSubjettinessTagger, and fastjet::Subtractor.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends