class Rivet::FastJets

Rivet::FastJets

Project out jets found using the FastJet package jet algorithms.

#include <FastJets.hh>

Inherits from Rivet::JetFinder, Rivet::Projection, Rivet::ProjectionApplier

Public Types

Name
typedef Jetentity_type
typedef Jetscollection_type
enumAlgo { KT =0, AKT =1, ANTIKT =1, CA =2, CAM =2, CAMBRIDGE =2, SISCONE, PXCONE, ATLASCONE, CMSCONE, CDFJETCLU, CDFMIDPOINT, D0ILCONE, JADE, DURHAM, TRACKJET, GENKTEE, KTET, ANTIKTET}
enum classMuons { NONE, DECAY, ALL}
Enum for the treatment of muons: whether to include all, some, or none in jet-finding.
enum classInvisibles { NONE, DECAY, ALL}
Enum for the treatment of invisible particles: whether to include all, some, or none in jet-finding.

Public Functions

Name
virtual Jetsjets(const Cut & c =Cuts::open()) const
virtual Jetsjets(const JetSelector & selector) const
Jetsjets(const Cut & c, const JetSorter & sorter) const
Jetsjets(const JetSorter & sorter, const Cut & c =Cuts::open()) const
Jetsjets(const JetSelector & selector, const JetSorter & sorter) const
Jetsjets(const JetSorter & sorter, const JetSelector selector) const
JetsjetsByPt(const Cut & c =Cuts::open()) const
JetsjetsByPt(const JetSelector & selector) const
JetsjetsByPt(double ptmin) const
size_tsize() const
Count the jets.
size_tsize(const Cut & c) const
Count the jets after a Cut is applied.
size_tsize(const JetSelector & s) const
Count the jets after a selection functor is applied.
boolempty() const
Is this jet finder empty?
boolempty(const Cut & c) const
Is this jet finder empty after a Cut is applied?
boolempty(const JetSelector & s) const
Is this jet finder empty after a selection functor is applied?
collection_typeentities() const
Template-usable interface common to FinalState.
FastJets(const FinalState & fsp, const fastjet::JetDefinition & jdef, JetAlg::Muons usemuons =JetAlg::Muons::ALL, JetAlg::Invisibles useinvis =JetAlg::Invisibles::NONE, fastjet::AreaDefinition * adef =nullptr)
FastJets(const FinalState & fsp, const fastjet::JetDefinition & jdef, fastjet::AreaDefinition * adef, JetAlg::Muons usemuons =JetAlg::Muons::ALL, JetAlg::Invisibles useinvis =JetAlg::Invisibles::NONE)
FastJets(const FinalState & fsp, fastjet::JetAlgorithm type, fastjet::RecombinationScheme recom, double rparameter, JetAlg::Muons usemuons =JetAlg::Muons::ALL, JetAlg::Invisibles useinvis =JetAlg::Invisibles::NONE, fastjet::AreaDefinition * adef =nullptr)
FastJets(const FinalState & fsp, fastjet::JetAlgorithm type, fastjet::RecombinationScheme recom, double rparameter, fastjet::AreaDefinition * adef, JetAlg::Muons usemuons =JetAlg::Muons::ALL, JetAlg::Invisibles useinvis =JetAlg::Invisibles::NONE)
FastJets(const FinalState & fsp, fastjet::JetDefinition::Plugin * plugin, JetAlg::Muons usemuons =JetAlg::Muons::ALL, JetAlg::Invisibles useinvis =JetAlg::Invisibles::NONE, fastjet::AreaDefinition * adef =nullptr)
Explicitly pass in an externally-constructed plugin.
FastJets(const FinalState & fsp, fastjet::JetDefinition::Plugin * plugin, fastjet::AreaDefinition * adef, JetAlg::Muons usemuons =JetAlg::Muons::ALL, JetAlg::Invisibles useinvis =JetAlg::Invisibles::NONE)
Explicitly pass in an externally-constructed plugin, with reordered args for easier specification of jet area definition.
FastJets(const FinalState & fsp, Algo alg, double rparameter, JetAlg::Muons usemuons =JetAlg::Muons::ALL, JetAlg::Invisibles useinvis =JetAlg::Invisibles::NONE, fastjet::AreaDefinition * adef =nullptr, double seed_threshold =1.0)
Convenience constructor using Rivet enums for most common jet algs (including some plugins).
DEFAULT_RIVET_PROJ_CLONE(FastJets )
Clone on the heap.
voiduseJetArea(fastjet::AreaDefinition * adef)
Use provided jet area definition.
voidclearJetArea()
Don’t calculate a jet area.
voidaddTrf(fastjet::Transformer * trf)
Add a grooming transformer (base class of fastjet::Filter, etc.)
template <typename TRFS ,typename TRF =typename TRFS::value_type>
std::enable_if< Derefable< TRF >::value, void >::type
addTrfs(const TRFS & trfs)
Add a list of grooming transformers.
voidclearTrfs()
Don’t apply any jet transformers.
JettrimJet(const Jet & input, const fastjet::Filter & trimmer) const
Trim (filter) a jet, keeping tag and constituent info in the resulting jet.
PseudoJetspseudoJets(double ptmin =0.0) const
PseudoJetspseudojets(double ptmin =0.0) const
Alias.
PseudoJetspseudoJetsByPt(double ptmin =0.0) const
PseudoJetspseudojetsByPt(double ptmin =0.0) const
Alias.
PseudoJetspseudoJetsByE(double ptmin =0.0) const
PseudoJetspseudojetsByE(double ptmin =0.0) const
Alias.
PseudoJetspseudoJetsByRapidity(double ptmin =0.0) const
PseudoJetspseudojetsByRapidity(double ptmin =0.0) const
Alias.
const shared_ptr< fastjet::ClusterSequence >clusterSeq() const
const shared_ptr< fastjet::ClusterSequenceArea >clusterSeqArea() const
const fastjet::JetDefinition &jetDef() const
Return the jet definition.
const shared_ptr< fastjet::AreaDefinition >areaDef() const
Return the area definition.
voidcalc(const Particles & fsparticles, const Particles & tagparticles =Particles())
Do the calculation locally (no caching).
voiduseMuons(Muons usemuons =Muons::ALL)
Include (some) muons in jet construction.
voiduseInvisibles(Invisibles useinvis =Invisibles::DECAY)
Include (some) invisible particles in jet construction.
voiduseInvisibles(bool useinvis)
obsolete chooser
virtual std::stringname() const
Get the name of the projection.
boolvalid() const
Get the state of the projetion.
boolfailed() const
Get the state of the projetion.
boolbefore(const Projection & p) const
virtual const std::set< PdgIdPair >beamPairs() const
Projection &addPdgIdPair(PdgId beam1, PdgId beam2)
std::set< ConstProjectionPtr >getProjections() const
Get the contained projections, including recursion.
boolhasProjection(const std::string & name) const
Does this applier have a projection registered under the name name?
template <typename PROJ >
const PROJ &
getProjection(const std::string & name) const
const Projection &getProjection(const std::string & name) const
template <typename PROJ >
const PROJ &
get(const std::string & name) const
template
std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & >
applyProjection(const Event & evt, const Projection & proj) const
template
std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & >
applyProjection(const Event & evt, const PROJ & proj) const
template
std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & >
applyProjection(const Event & evt, const std::string & name) const
template
std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & >
apply(const Event & evt, const Projection & proj) const
Apply the supplied projection on event evt (user-facing alias).
template
std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & >
apply(const Event & evt, const PROJ & proj) const
Apply the supplied projection on event evt (user-facing alias).
template
std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & >
apply(const Event & evt, const std::string & name) const
Apply the supplied projection on event evt (user-facing alias).
template
std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & >
apply(const std::string & name, const Event & evt) const
Apply the supplied projection on event evt (convenience arg-reordering alias).
voidmarkAsOwned() const
Mark this object as owned by a proj-handler.
PseudoJetsmkClusterInputs(const Particles & fsparticles, const Particles & tagparticles =Particles())
Make PseudoJets for input to a ClusterSequence, with user_index codes for constituent- and tag-particle linking.
JetmkJet(const PseudoJet & pj, const Particles & fsparticles, const Particles & tagparticles =Particles())
Make a RivetJet from a PseudoJet holding a user_index code for lookup of Rivet fsparticle or tagparticle links.
JetsmkJets(const PseudoJets & pjs, const Particles & fsparticles, const Particles & tagparticles =Particles())
Convert a whole list of PseudoJets to a list of Jets, with mkJet-style unpacking.
virtual voidreset()
Reset the projection. Jet def, etc. are unchanged.
virtual unique_ptr< Projection >clone() const =0
Clone on the heap.

Protected Functions

Name
virtual voidproject(const Event & e)
Perform the projection on the Event.
virtual CmpStatecompare(const Projection & p) const
Compare projections.
Log &getLog() const
Get a Log object based on the getName() property of the calling projection object.
voidsetName(const std::string & name)
Used by derived classes to set their name.
voidfail()
Set the projection in an unvalid state.
Cmp< Projection >mkNamedPCmp(const Projection & otherparent, const std::string & pname) const
Cmp< Projection >mkPCmp(const Projection & otherparent, const std::string & pname) const
ProjectionHandler &getProjHandler() const
Get a reference to the ProjectionHandler for this thread.
template <typename PROJ >
const PROJ &
declareProjection(const PROJ & proj, const std::string & name)
Register a contained projection.
template <typename PROJ >
const PROJ &
declare(const PROJ & proj, const std::string & name)
Register a contained projection (user-facing version)
template <typename PROJ >
const PROJ &
declare(const std::string & name, const PROJ & proj)
Register a contained projection (user-facing, arg-reordered version)

Additional inherited members

Public Functions inherited from Rivet::JetFinder

Name
JetFinder(const FinalState & fs, Muons usemuons =Muons::ALL, Invisibles useinvis =Invisibles::NONE)
Constructor.
JetFinder() =default
Default constructor.
virtual~JetFinder() =default
Destructor.

Public Functions inherited from Rivet::Projection

Name
Projection()
The default constructor.
virtual~Projection()
The destructor.

Protected Functions inherited from Rivet::Projection

Name
virtual Projection &operator=(const Projection & )
Block Projection copying.

Friends inherited from Rivet::Projection

Name
classEvent
Event is a friend.
classCmp< Projection >
The Cmp specialization for Projection is a friend.

Public Functions inherited from Rivet::ProjectionApplier

Name
ProjectionApplier()
Constructor.
virtual~ProjectionApplier()

Public Types Documentation

typedef entity_type

typedef Jet Rivet::JetFinder::entity_type;

typedef collection_type

typedef Jets Rivet::JetFinder::collection_type;

enum Algo

EnumeratorValueDescription
KT=0
AKT=1
ANTIKT=1
CA=2
CAM=2
CAMBRIDGE=2
SISCONE
PXCONE
ATLASCONE
CMSCONE
CDFJETCLU
CDFMIDPOINT
D0ILCONE
JADE
DURHAM
TRACKJET
GENKTEE
KTET
ANTIKTET

Todo: Move to JetAlg and alias here?

Wrapper enum for selected FastJet jet algorithms.

enum Muons

EnumeratorValueDescription
NONE
DECAY
ALL

Enum for the treatment of muons: whether to include all, some, or none in jet-finding.

enum Invisibles

EnumeratorValueDescription
NONE
DECAY
ALL

Enum for the treatment of invisible particles: whether to include all, some, or none in jet-finding.

Public Functions Documentation

function jets

inline virtual Jets jets(
    const Cut & c =Cuts::open()
) const

Note: Returns a copy rather than a reference, due to cuts

Get jets in no guaranteed order, with an optional Cut

function jets

inline virtual Jets jets(
    const JetSelector & selector
) const

Note: Returns a copy rather than a reference, due to cuts

Get jets in no guaranteed order, with a selection functor

function jets

inline Jets jets(
    const Cut & c,
    const JetSorter & sorter
) const

Note: Returns a copy rather than a reference, due to cuts and sorting

Get the jets with a Cut applied, and ordered by supplied sorting functor

TodoWill the vector be efficiently std::move’d by value through this function chain?

function jets

inline Jets jets(
    const JetSorter & sorter,
    const Cut & c =Cuts::open()
) const

Note: Returns a copy rather than a reference, due to cuts and sorting

Get the jets, ordered by supplied sorting functor, with an optional Cut

TodoWill the vector be efficiently std::move’d by value through this function chain?

function jets

inline Jets jets(
    const JetSelector & selector,
    const JetSorter & sorter
) const

Note: Returns a copy rather than a reference, due to cuts and sorting

Get the jets, ordered by supplied sorting function object, with optional cuts on ( p_\perp ) and rapidity.

TodoWill the vector be efficiently std::move’d by value through this function chain?

function jets

inline Jets jets(
    const JetSorter & sorter,
    const JetSelector selector
) const

Note: Returns a copy rather than a reference, due to cuts and sorting

Get the jets, ordered by supplied sorting functor and with a selection functor applied

function jetsByPt

inline Jets jetsByPt(
    const Cut & c =Cuts::open()
) const

Note: Returns a copy rather than a reference, due to cuts and sorting

Get the jets, ordered by ( p_T ), with optional cuts.

This is a very common use-case, so is available as syntatic sugar for jets(c, cmpMomByPt).

function jetsByPt

inline Jets jetsByPt(
    const JetSelector & selector
) const

Note: Returns a copy rather than a reference, due to cuts and sorting

Get the jets, ordered by ( p_T ), with cuts via a selection functor.

This is a very common use-case, so is available as syntatic sugar for jets(c, cmpMomByPt).

function jetsByPt

inline Jets jetsByPt(
    double ptmin
) const

Deprecated:

Use the version with a Cut argument

Note: Returns a copy rather than a reference, due to cuts and sorting

Get the jets, ordered by ( p_T ), with a cut on ( p_\perp ).

This is a very common use-case, so is available as syntatic sugar for jets(Cuts::pT >= ptmin, cmpMomByPt).

function size

inline size_t size() const

Count the jets.

function size

inline size_t size(
    const Cut & c
) const

Count the jets after a Cut is applied.

function size

inline size_t size(
    const JetSelector & s
) const

Count the jets after a selection functor is applied.

function empty

inline bool empty() const

Is this jet finder empty?

function empty

inline bool empty(
    const Cut & c
) const

Is this jet finder empty after a Cut is applied?

function empty

inline bool empty(
    const JetSelector & s
) const

Is this jet finder empty after a selection functor is applied?

function entities

inline collection_type entities() const

Template-usable interface common to FinalState.

function FastJets

inline FastJets(
    const FinalState & fsp,
    const fastjet::JetDefinition & jdef,
    JetAlg::Muons usemuons =JetAlg::Muons::ALL,
    JetAlg::Invisibles useinvis =JetAlg::Invisibles::NONE,
    fastjet::AreaDefinition * adef =nullptr
)

Warning: The AreaDefinition pointer must be heap-allocated: it will be stored/deleted via a shared_ptr.

Constructor from a FastJet JetDefinition

function FastJets

inline FastJets(
    const FinalState & fsp,
    const fastjet::JetDefinition & jdef,
    fastjet::AreaDefinition * adef,
    JetAlg::Muons usemuons =JetAlg::Muons::ALL,
    JetAlg::Invisibles useinvis =JetAlg::Invisibles::NONE
)

Warning: The AreaDefinition pointer must be heap-allocated: it will be stored/deleted via a shared_ptr.

JetDefinition-based constructor with reordered args for easier specification of jet area definition

function FastJets

inline FastJets(
    const FinalState & fsp,
    fastjet::JetAlgorithm type,
    fastjet::RecombinationScheme recom,
    double rparameter,
    JetAlg::Muons usemuons =JetAlg::Muons::ALL,
    JetAlg::Invisibles useinvis =JetAlg::Invisibles::NONE,
    fastjet::AreaDefinition * adef =nullptr
)

Warning: The AreaDefinition pointer must be heap-allocated: it will be stored/deleted via a shared_ptr.

Native argument constructor, using FastJet alg/scheme enums.

function FastJets

inline FastJets(
    const FinalState & fsp,
    fastjet::JetAlgorithm type,
    fastjet::RecombinationScheme recom,
    double rparameter,
    fastjet::AreaDefinition * adef,
    JetAlg::Muons usemuons =JetAlg::Muons::ALL,
    JetAlg::Invisibles useinvis =JetAlg::Invisibles::NONE
)

Warning: The AreaDefinition pointer must be heap-allocated: it will be stored/deleted via a shared_ptr.

Native argument constructor with reordered args for easier specification of jet area definition

function FastJets

inline FastJets(
    const FinalState & fsp,
    fastjet::JetDefinition::Plugin * plugin,
    JetAlg::Muons usemuons =JetAlg::Muons::ALL,
    JetAlg::Invisibles useinvis =JetAlg::Invisibles::NONE,
    fastjet::AreaDefinition * adef =nullptr
)

Explicitly pass in an externally-constructed plugin.

Warning: Provided plugin and area definition pointers must be heap-allocated; Rivet will store/delete via a shared_ptr

function FastJets

inline FastJets(
    const FinalState & fsp,
    fastjet::JetDefinition::Plugin * plugin,
    fastjet::AreaDefinition * adef,
    JetAlg::Muons usemuons =JetAlg::Muons::ALL,
    JetAlg::Invisibles useinvis =JetAlg::Invisibles::NONE
)

Explicitly pass in an externally-constructed plugin, with reordered args for easier specification of jet area definition.

Warning: Provided plugin and area definition pointers must be heap-allocated; Rivet will store/delete via a shared_ptr

function FastJets

inline FastJets(
    const FinalState & fsp,
    Algo alg,
    double rparameter,
    JetAlg::Muons usemuons =JetAlg::Muons::ALL,
    JetAlg::Invisibles useinvis =JetAlg::Invisibles::NONE,
    fastjet::AreaDefinition * adef =nullptr,
    double seed_threshold =1.0
)

Convenience constructor using Rivet enums for most common jet algs (including some plugins).

Warning: Provided area definition pointer must be heap-allocated; Rivet will store/delete via a shared_ptr

For the built-in algs, E-scheme recombination is used. For full control of FastJet built-in jet algs, use the constructors from native-args or a plugin pointer.

function DEFAULT_RIVET_PROJ_CLONE

DEFAULT_RIVET_PROJ_CLONE(
    FastJets 
)

Clone on the heap.

function useJetArea

inline void useJetArea(
    fastjet::AreaDefinition * adef
)

Use provided jet area definition.

Note: Provide an adef null pointer to re-disable jet area calculation

Warning: The provided pointer must be heap-allocated: it will be stored/deleted via a shared_ptr.

function clearJetArea

inline void clearJetArea()

Don’t calculate a jet area.

function addTrf

inline void addTrf(
    fastjet::Transformer * trf
)

Add a grooming transformer (base class of fastjet::Filter, etc.)

Note: Provide an adef null pointer to re-disable jet area calculation

Warning: The provided pointer must be heap-allocated: it will be stored/deleted via a shared_ptr.

function addTrfs

template <typename TRFS ,
typename TRF  =typename TRFS::value_type>
inline std::enable_if< Derefable< TRF >::value, void >::type addTrfs(
    const TRFS & trfs
)

Add a list of grooming transformers.

Note: Provide an adef null pointer to re-disable jet area calculation

Warning: The provided pointers must be heap-allocated: they will be stored/deleted via a shared_ptr.

function clearTrfs

inline void clearTrfs()

Don’t apply any jet transformers.

function trimJet

Jet trimJet(
    const Jet & input,
    const fastjet::Filter & trimmer
) const

Trim (filter) a jet, keeping tag and constituent info in the resulting jet.

Deprecated:

Use the built-in transformers system, e.g. addTrf(), instead

function pseudoJets

PseudoJets pseudoJets(
    double ptmin =0.0
) const

Deprecated:

Use pseudojets

Get the pseudo jets (unordered).

function pseudojets

inline PseudoJets pseudojets(
    double ptmin =0.0
) const

Alias.

function pseudoJetsByPt

inline PseudoJets pseudoJetsByPt(
    double ptmin =0.0
) const

Deprecated:

Use pseudojetsbyPt

Get the pseudo jets, ordered by ( p_T ).

function pseudojetsByPt

inline PseudoJets pseudojetsByPt(
    double ptmin =0.0
) const

Alias.

function pseudoJetsByE

inline PseudoJets pseudoJetsByE(
    double ptmin =0.0
) const

Deprecated:

Use pseudojetsByE

Get the pseudo jets, ordered by ( E ).

function pseudojetsByE

inline PseudoJets pseudojetsByE(
    double ptmin =0.0
) const

Alias.

function pseudoJetsByRapidity

inline PseudoJets pseudoJetsByRapidity(
    double ptmin =0.0
) const

Deprecated:

Use pseudojetsByRapidity

Get the pseudo jets, ordered by rapidity.

function pseudojetsByRapidity

inline PseudoJets pseudojetsByRapidity(
    double ptmin =0.0
) const

Alias.

function clusterSeq

inline const shared_ptr< fastjet::ClusterSequence > clusterSeq() const

Todo: Care needed re. const shared_ptr vs. shared_ptr

Return the cluster sequence.

function clusterSeqArea

inline const shared_ptr< fastjet::ClusterSequenceArea > clusterSeqArea() const

Todo: Care needed re. const shared_ptr vs. shared_ptr

Return the area-enabled cluster sequence (if an area defn exists, otherwise returns a null ptr).

function jetDef

inline const fastjet::JetDefinition & jetDef() const

Return the jet definition.

function areaDef

inline const shared_ptr< fastjet::AreaDefinition > areaDef() const

Return the area definition.

Todo: Care needed re. const shared_ptr vs. shared_ptr

Warning: May be null!

function calc

void calc(
    const Particles & fsparticles,
    const Particles & tagparticles =Particles()
)

Do the calculation locally (no caching).

function useMuons

inline void useMuons(
    Muons usemuons =Muons::ALL
)

Include (some) muons in jet construction.

The default behaviour is that jets are only constructed from visible particles. Some jet studies, including those from ATLAS, use a definition in which neutrinos from hadron decays are included via MC-based calibrations. Setting this flag to true avoids the automatic restriction to a VisibleFinalState.

function useInvisibles

inline void useInvisibles(
    Invisibles useinvis =Invisibles::DECAY
)

Include (some) invisible particles in jet construction.

The default behaviour is that jets are only constructed from visible particles. Some jet studies, including those from ATLAS, use a definition in which neutrinos from hadron decays are included via MC-based calibrations. Setting this flag to true avoids the automatic restriction to a VisibleFinalState.

function useInvisibles

inline void useInvisibles(
    bool useinvis
)

obsolete chooser

function name

inline virtual std::string name() const

Get the name of the projection.

Reimplements: Rivet::ProjectionApplier::name

function valid

inline bool valid() const

Get the state of the projetion.

function failed

inline bool failed() const

Get the state of the projetion.

function before

bool before(
    const Projection & p
) const

Determine whether this object should be ordered before the object p given as argument. If p is of a different class than this, the before() function of the corresponding type_info objects is used. Otherwise, if the objects are of the same class, the virtual compare(const Projection &) will be returned.

function beamPairs

virtual const std::set< PdgIdPair > beamPairs() const

Todo: Remove the beam constraints system from projections.

Return the allowed beam pairs on which this projection can operate, not including recursion. Derived classes should ensure that all contained projections are registered in the _projections set for the beam constraint chaining to work.

function addPdgIdPair

inline Projection & addPdgIdPair(
    PdgId beam1,
    PdgId beam2
)

Todo: This deserves a better name!

Add a colliding beam pair.

function getProjections

inline std::set< ConstProjectionPtr > getProjections() const

Get the contained projections, including recursion.

function hasProjection

inline bool hasProjection(
    const std::string & name
) const

Does this applier have a projection registered under the name name?

function getProjection

template <typename PROJ >
inline const PROJ & getProjection(
    const std::string & name
) const

Todo: Add SFINAE to require that PROJ inherit from Projection

Get the named projection, specifying return type via a template argument.

function getProjection

inline const Projection & getProjection(
    const std::string & name
) const

Get the named projection (non-templated, so returns as a reference to a Projection base class).

function get

template <typename PROJ >
inline const PROJ & get(
    const std::string & name
) const

Todo: Add SFINAE to require that PROJ inherit from Projection

Get the named projection, specifying return type via a template argument (user-facing alias).

function applyProjection

template <typename PROJ  =Projection>
inline std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & > applyProjection(
    const Event & evt,
    const Projection & proj
) const

Deprecated:

Prefer the simpler apply<> form

Apply the supplied projection on event evt.

function applyProjection

template <typename PROJ  =Projection>
inline std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & > applyProjection(
    const Event & evt,
    const PROJ & proj
) const

Deprecated:

Prefer the simpler apply<> form

Apply the supplied projection on event evt.

function applyProjection

template <typename PROJ  =Projection>
inline std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & > applyProjection(
    const Event & evt,
    const std::string & name
) const

Deprecated:

Prefer the simpler apply<> form

Apply the named projection on event evt.

function apply

template <typename PROJ  =Projection>
inline std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & > apply(
    const Event & evt,
    const Projection & proj
) const

Apply the supplied projection on event evt (user-facing alias).

function apply

template <typename PROJ  =Projection>
inline std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & > apply(
    const Event & evt,
    const PROJ & proj
) const

Apply the supplied projection on event evt (user-facing alias).

function apply

template <typename PROJ  =Projection>
inline std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & > apply(
    const Event & evt,
    const std::string & name
) const

Apply the supplied projection on event evt (user-facing alias).

function apply

template <typename PROJ  =Projection>
inline std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & > apply(
    const std::string & name,
    const Event & evt
) const

Apply the supplied projection on event evt (convenience arg-reordering alias).

function markAsOwned

inline void markAsOwned() const

Mark this object as owned by a proj-handler.

function mkClusterInputs

static PseudoJets mkClusterInputs(
    const Particles & fsparticles,
    const Particles & tagparticles =Particles()
)

Make PseudoJets for input to a ClusterSequence, with user_index codes for constituent- and tag-particle linking.

function mkJet

static Jet mkJet(
    const PseudoJet & pj,
    const Particles & fsparticles,
    const Particles & tagparticles =Particles()
)

Make a RivetJet from a PseudoJet holding a user_index code for lookup of Rivet fsparticle or tagparticle links.

function mkJets

static Jets mkJets(
    const PseudoJets & pjs,
    const Particles & fsparticles,
    const Particles & tagparticles =Particles()
)

Convert a whole list of PseudoJets to a list of Jets, with mkJet-style unpacking.

function reset

virtual void reset()

Reset the projection. Jet def, etc. are unchanged.

Reimplements: Rivet::JetFinder::reset

function clone

virtual unique_ptr< Projection > clone() const =0

Clone on the heap.

Reimplements: Rivet::Beam::clone

Protected Functions Documentation

function project

virtual void project(
    const Event & e
)

Perform the projection on the Event.

Reimplements: Rivet::JetFinder::project

function compare

virtual CmpState compare(
    const Projection & p
) const

Compare projections.

Reimplements: Rivet::JetFinder::compare

function getLog

inline Log & getLog() const

Get a Log object based on the getName() property of the calling projection object.

function setName

inline void setName(
    const std::string & name
)

Used by derived classes to set their name.

function fail

inline void fail()

Set the projection in an unvalid state.

function mkNamedPCmp

Cmp< Projection > mkNamedPCmp(
    const Projection & otherparent,
    const std::string & pname
) const

Shortcut to make a named Cmp comparison with the *this object automatically passed as one of the parent projections.

function mkPCmp

Cmp< Projection > mkPCmp(
    const Projection & otherparent,
    const std::string & pname
) const

Note: Alias for mkNamedPCmp

Shortcut to make a named Cmp comparison with the *this object automatically passed as one of the parent projections.

function getProjHandler

inline ProjectionHandler & getProjHandler() const

Get a reference to the ProjectionHandler for this thread.

function declareProjection

template <typename PROJ >
inline const PROJ & declareProjection(
    const PROJ & proj,
    const std::string & name
)

Register a contained projection.

Todo: Add SFINAE to require that PROJ inherit from Projection

The type of the argument is used to instantiate a new projection internally: this new object is applied to events rather than the argument object. Hence you are advised to only use locally-scoped Projection objects in your Projection and Analysis constructors, and to avoid polymorphism (e.g. handling ConcreteProjection via a pointer or reference to type Projection) since this will screw up the internal type management.

function declare

template <typename PROJ >
inline const PROJ & declare(
    const PROJ & proj,
    const std::string & name
)

Register a contained projection (user-facing version)

Todo: Add SFINAE to require that PROJ inherit from Projection

function declare

template <typename PROJ >
inline const PROJ & declare(
    const std::string & name,
    const PROJ & proj
)

Register a contained projection (user-facing, arg-reordered version)

Todo: Add SFINAE to require that PROJ inherit from Projection


Updated on 2022-08-07 at 20:17:17 +0100