rivet is hosted by Hepforge, IPPP Durham
Rivet  2.7.0

Abstract base class for projections which can return a set of Jets. More...

#include <JetAlg.hh>

Inheritance diagram for Rivet::JetAlg:
Rivet::Projection Rivet::ProjectionApplier Rivet::FastJets Rivet::SmearedJets

Public Types

enum  MuonsStrategy { NO_MUONS, DECAY_MUONS, ALL_MUONS }
 Enum for the treatment of muons: whether to include all, some, or none in jet-finding.
 
enum  InvisiblesStrategy { NO_INVISIBLES, DECAY_INVISIBLES, ALL_INVISIBLES }
 Enum for the treatment of invisible particles: whether to include all, some, or none in jet-finding.
 
typedef Jet entity_type
 
typedef Jets collection_type
 

Public Member Functions

 JetAlg (const FinalState &fs, MuonsStrategy usemuons=JetAlg::ALL_MUONS, InvisiblesStrategy useinvis=JetAlg::NO_INVISIBLES)
 Constructor.
 
 JetAlg ()
 Default constructor.
 
virtual unique_ptr< Projectionclone () const =0
 Clone on the heap.
 
virtual ~JetAlg ()
 Destructor.
 
size_t size () const
 Count the jets.
 
size_t size (const Cut &c) const
 Count the jets after a Cut is applied.
 
size_t size (const JetSelector &s) const
 Count the jets after a selection functor is applied.
 
bool empty () const
 Is this jet finder empty?
 
bool empty (const Cut &c) const
 Is this jet finder empty after a Cut is applied?
 
bool empty (const JetSelector &s) const
 Is this jet finder empty after a selection functor is applied?
 
virtual void reset ()=0
 Clear the projection.
 
collection_type entities () const
 Template-usable interface common to FinalState.
 
Control the treatment of muons and invisible particles

Since MC-based jet calibration (and/or particle flow) can add back in particles that weren't seen in calorimeters/trackers.

void useMuons (MuonsStrategy usemuons=ALL_MUONS)
 Include (some) muons in jet construction. More...
 
void useInvisibles (InvisiblesStrategy useinvis=DECAY_INVISIBLES)
 Include (some) invisible particles in jet construction. More...
 
void useInvisibles (bool useinvis)
 Include (some) invisible particles in jet construction. More...
 
Access to jet objects
virtual Jets jets (const Cut &c=Cuts::open()) const
 
virtual Jets jets (const JetSelector &selector) const
 
Jets jets (const Cut &c, const JetSorter &sorter) const
 
Jets jets (const JetSorter &sorter, const Cut &c=Cuts::open()) const
 
Jets jets (const JetSelector &selector, const JetSorter &sorter) const
 
Jets jets (const JetSorter &sorter, const JetSelector selector) const
 
Jets jetsByPt (const Cut &c=Cuts::open()) const
 
Jets jetsByPt (const JetSelector &selector) const
 
Jets jetsByPt (double ptmin) const
 
- Public Member Functions inherited from Rivet::Projection
virtual std::string name () const
 Get the name of the projection.
 
 Projection ()
 The default constructor.
 
virtual ~Projection ()
 The destructor.
 
bool before (const Projection &p) const
 
virtual const std::set< PdgIdPair > beamPairs () const
 
ProjectionaddPdgIdPair (PdgId beam1, PdgId beam2)
 
- Public Member Functions inherited from Rivet::ProjectionApplier
 ProjectionApplier ()
 Constructor.
 
void markAsOwned () const
 Mark this object as owned by a proj-handler.
 
std::set< ConstProjectionPtr > getProjections () const
 Get the contained projections, including recursion.
 
bool hasProjection (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
 
template<typename PROJ >
const PROJ & get (const std::string &name) const
 
const ProjectiongetProjection (const std::string &name) const
 
template<typename PROJ >
const PROJ & applyProjection (const Event &evt, const Projection &proj) const
 Apply the supplied projection on event evt. More...
 
template<typename PROJ >
const PROJ & apply (const Event &evt, const Projection &proj) const
 
template<typename PROJ >
const PROJ & applyProjection (const Event &evt, const PROJ &proj) const
 Apply the supplied projection on event evt. More...
 
template<typename PROJ >
const PROJ & apply (const Event &evt, const PROJ &proj) const
 
template<typename PROJ >
const PROJ & applyProjection (const Event &evt, const std::string &name) const
 
template<typename PROJ >
const PROJ & apply (const Event &evt, const std::string &name) const
 
template<typename PROJ >
const PROJ & apply (const std::string &name, const Event &evt) const
 

Protected Member Functions

virtual void project (const Event &e)=0
 Perform the projection on the Event.
 
virtual int compare (const Projection &p) const =0
 Compare projections.
 
- Protected Member Functions inherited from Rivet::Projection
LoggetLog () const
 Get a Log object based on the getName() property of the calling projection object.
 
void setName (const std::string &name)
 Used by derived classes to set their name.
 
Cmp< ProjectionmkNamedPCmp (const Projection &otherparent, const std::string &pname) const
 
Cmp< ProjectionmkPCmp (const Projection &otherparent, const std::string &pname) const
 
virtual Projectionoperator= (const Projection &)
 Block Projection copying.
 
- Protected Member Functions inherited from Rivet::ProjectionApplier
LoggetLog () const
 
ProjectionHandlergetProjHandler () 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. More...
 
template<typename PROJ >
const PROJ & declare (const PROJ &proj, const std::string &name)
 Register a contained projection (user-facing version) More...
 
template<typename PROJ >
const PROJ & declare (const std::string &name, const PROJ &proj)
 Register a contained projection (user-facing, arg-reordered version) More...
 
template<typename PROJ >
const PROJ & addProjection (const PROJ &proj, const std::string &name)
 Register a contained projection (user-facing version) More...
 

Detailed Description

Abstract base class for projections which can return a set of Jets.

Member Function Documentation

◆ jets() [1/6]

virtual Jets Rivet::JetAlg::jets ( const Cut &  c = Cuts::open()) const
inlinevirtual

Get jets in no guaranteed order, with an optional Cut

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

References Rivet::filter_select().

Referenced by entities(), jets(), jetsByPt(), and size().

◆ jets() [2/6]

virtual Jets Rivet::JetAlg::jets ( const JetSelector selector) const
inlinevirtual

Get jets in no guaranteed order, with a selection functor

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

References Rivet::filter_select().

◆ jets() [3/6]

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

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

Note
Returns a copy rather than a reference, due to cuts and sorting
Todo:
Will the vector be efficiently std::move'd by value through this function chain?

References jets(), and Rivet::sortBy().

◆ jets() [4/6]

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

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

Note
Returns a copy rather than a reference, due to cuts and sorting
Todo:
Will the vector be efficiently std::move'd by value through this function chain?

References jets().

◆ jets() [5/6]

Jets Rivet::JetAlg::jets ( const JetSelector selector,
const JetSorter sorter 
) const
inline

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

Note
Returns a copy rather than a reference, due to cuts and sorting
Todo:
Will the vector be efficiently std::move'd by value through this function chain?

References jets(), and Rivet::sortBy().

◆ jets() [6/6]

Jets Rivet::JetAlg::jets ( const JetSorter sorter,
const JetSelector  selector 
) const
inline

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

Note
Returns a copy rather than a reference, due to cuts and sorting
Todo:
Will the vector be efficiently std::move'd by value through this function chain?

References jets().

◆ jetsByPt() [1/3]

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

Get the jets, ordered by $ p_T $, with optional cuts.

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

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

Todo:
The other sorted accessors should be removed in a cleanup.

References Rivet::cmpMomByPt(), and jets().

Referenced by Rivet::SmearedJets::project().

◆ jetsByPt() [2/3]

Jets Rivet::JetAlg::jetsByPt ( const JetSelector selector) const
inline

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

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

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

Todo:
The other sorted accessors should be removed in a cleanup.

References Rivet::cmpMomByPt(), and jets().

◆ jetsByPt() [3/3]

Jets Rivet::JetAlg::jetsByPt ( double  ptmin) const
inline

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

Deprecated:
Use the version with a Cut argument
Note
Returns a copy rather than a reference, due to cuts and sorting

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

Todo:
The other sorted accessors should be removed in a cleanup.

References Rivet::cmpMomByPt(), and jets().

◆ useInvisibles() [1/2]

void Rivet::JetAlg::useInvisibles ( InvisiblesStrategy  useinvis = DECAY_INVISIBLES)
inline

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.

◆ useInvisibles() [2/2]

void Rivet::JetAlg::useInvisibles ( bool  useinvis)
inline

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.

Deprecated:
Use the enum-arg version instead. Will be removed in Rivet v3

◆ useMuons()

void Rivet::JetAlg::useMuons ( MuonsStrategy  usemuons = ALL_MUONS)
inline

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.


The documentation for this class was generated from the following files:
  • include/Rivet/Projections/JetAlg.hh
  • src/Projections/JetAlg.cc