rivet is hosted by Hepforge, IPPP Durham
Rivet  2.7.0

Project out jets found using the FastJet package jet algorithms. More...

#include <FastJets.hh>

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

Public Types

enum  JetAlgName {
  KT, CAM, SISCONE, ANTIKT,
  PXCONE, ATLASCONE, CMSCONE, CDFJETCLU,
  CDFMIDPOINT, D0ILCONE, JADE, DURHAM,
  TRACKJET, GENKTEE
}
 
- Public Types inherited from Rivet::JetAlg
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

void reset ()
 Reset the projection. Jet def, etc. are unchanged. More...
 
void useJetArea (fastjet::AreaDefinition *adef)
 Use provided jet area definition. More...
 
void calc (const Particles &fsparticles, const Particles &tagparticles=Particles())
 Do the calculation locally (no caching).
 
Constructors etc.
 FastJets (const FinalState &fsp, const fastjet::JetDefinition &jdef, JetAlg::MuonsStrategy usemuons=JetAlg::ALL_MUONS, JetAlg::InvisiblesStrategy useinvis=JetAlg::NO_INVISIBLES, fastjet::AreaDefinition *adef=nullptr)
 
 FastJets (const FinalState &fsp, const fastjet::JetDefinition &jdef, fastjet::AreaDefinition *adef, JetAlg::MuonsStrategy usemuons=JetAlg::ALL_MUONS, JetAlg::InvisiblesStrategy useinvis=JetAlg::NO_INVISIBLES)
 
 FastJets (const FinalState &fsp, fastjet::JetAlgorithm type, fastjet::RecombinationScheme recom, double rparameter, JetAlg::MuonsStrategy usemuons=JetAlg::ALL_MUONS, JetAlg::InvisiblesStrategy useinvis=JetAlg::NO_INVISIBLES, fastjet::AreaDefinition *adef=nullptr)
 
 FastJets (const FinalState &fsp, fastjet::JetAlgorithm type, fastjet::RecombinationScheme recom, double rparameter, fastjet::AreaDefinition *adef, JetAlg::MuonsStrategy usemuons=JetAlg::ALL_MUONS, JetAlg::InvisiblesStrategy useinvis=JetAlg::NO_INVISIBLES)
 
 FastJets (const FinalState &fsp, fastjet::JetDefinition::Plugin *plugin, JetAlg::MuonsStrategy usemuons=JetAlg::ALL_MUONS, JetAlg::InvisiblesStrategy useinvis=JetAlg::NO_INVISIBLES, fastjet::AreaDefinition *adef=nullptr)
 Explicitly pass in an externally-constructed plugin. More...
 
 FastJets (const FinalState &fsp, fastjet::JetDefinition::Plugin *plugin, fastjet::AreaDefinition *adef, JetAlg::MuonsStrategy usemuons=JetAlg::ALL_MUONS, JetAlg::InvisiblesStrategy useinvis=JetAlg::NO_INVISIBLES)
 Explicitly pass in an externally-constructed plugin, with reordered args for easier specification of jet area definition. More...
 
 FastJets (const FinalState &fsp, JetAlgName alg, double rparameter, JetAlg::MuonsStrategy usemuons=JetAlg::ALL_MUONS, JetAlg::InvisiblesStrategy useinvis=JetAlg::NO_INVISIBLES, fastjet::AreaDefinition *adef=nullptr, double seed_threshold=1.0)
 Convenience constructor using Rivet enums for most common jet algs (including some plugins). More...
 
 DEFAULT_RIVET_PROJ_CLONE (FastJets)
 Clone on the heap.
 
Access to the jets
PseudoJets pseudoJets (double ptmin=0.0) const
 Get the pseudo jets (unordered).
 
PseudoJets pseudojets (double ptmin=0.0) const
 Alias.
 
PseudoJets pseudoJetsByPt (double ptmin=0.0) const
 Get the pseudo jets, ordered by $ p_T $.
 
PseudoJets pseudojetsByPt (double ptmin=0.0) const
 Alias.
 
PseudoJets pseudoJetsByE (double ptmin=0.0) const
 Get the pseudo jets, ordered by $ E $.
 
PseudoJets pseudojetsByE (double ptmin=0.0) const
 Alias.
 
PseudoJets pseudoJetsByRapidity (double ptmin=0.0) const
 Get the pseudo jets, ordered by rapidity.
 
PseudoJets pseudojetsByRapidity (double ptmin=0.0) const
 Alias.
 
Jet trimJet (const Jet &input, const fastjet::Filter &trimmer) const
 Trim (filter) a jet, keeping tag and constituent info in the resulting jet. More...
 
Access to the FastJet clustering objects such as jet def, area def, and cluster
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. More...
 
- Public Member Functions inherited from Rivet::JetAlg
 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?
 
collection_type entities () const
 Template-usable interface common to FinalState.
 
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...
 
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
 

Static Public Member Functions

Static helper functions for FastJet interaction, with tagging
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. More...
 
static Jet mkJet (const PseudoJet &pj, const Particles &fsparticles, const Particles &tagparticles=Particles())
 Make a Rivet Jet from a PseudoJet holding a user_index code for lookup of Rivet fsparticle or tagparticle links.
 
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.
 

Protected Member Functions

void project (const Event &e)
 Perform the projection on the Event.
 
int compare (const Projection &p) const
 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

Project out jets found using the FastJet package jet algorithms.

Member Enumeration Documentation

◆ JetAlgName

Wrapper enum for selected FastJet jet algorithms.

Todo:
Move to JetAlg and alias here?

Constructor & Destructor Documentation

◆ FastJets() [1/7]

Rivet::FastJets::FastJets ( const FinalState fsp,
const fastjet::JetDefinition &  jdef,
JetAlg::MuonsStrategy  usemuons = JetAlg::ALL_MUONS,
JetAlg::InvisiblesStrategy  useinvis = JetAlg::NO_INVISIBLES,
fastjet::AreaDefinition *  adef = nullptr 
)
inline

Constructor from a FastJet JetDefinition

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

◆ FastJets() [2/7]

Rivet::FastJets::FastJets ( const FinalState fsp,
const fastjet::JetDefinition &  jdef,
fastjet::AreaDefinition *  adef,
JetAlg::MuonsStrategy  usemuons = JetAlg::ALL_MUONS,
JetAlg::InvisiblesStrategy  useinvis = JetAlg::NO_INVISIBLES 
)
inline

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

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

◆ FastJets() [3/7]

Rivet::FastJets::FastJets ( const FinalState fsp,
fastjet::JetAlgorithm  type,
fastjet::RecombinationScheme  recom,
double  rparameter,
JetAlg::MuonsStrategy  usemuons = JetAlg::ALL_MUONS,
JetAlg::InvisiblesStrategy  useinvis = JetAlg::NO_INVISIBLES,
fastjet::AreaDefinition *  adef = nullptr 
)
inline

Native argument constructor, using FastJet alg/scheme enums.

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

◆ FastJets() [4/7]

Rivet::FastJets::FastJets ( const FinalState fsp,
fastjet::JetAlgorithm  type,
fastjet::RecombinationScheme  recom,
double  rparameter,
fastjet::AreaDefinition *  adef,
JetAlg::MuonsStrategy  usemuons = JetAlg::ALL_MUONS,
JetAlg::InvisiblesStrategy  useinvis = JetAlg::NO_INVISIBLES 
)
inline

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

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

◆ FastJets() [5/7]

Rivet::FastJets::FastJets ( const FinalState fsp,
fastjet::JetDefinition::Plugin *  plugin,
JetAlg::MuonsStrategy  usemuons = JetAlg::ALL_MUONS,
JetAlg::InvisiblesStrategy  useinvis = JetAlg::NO_INVISIBLES,
fastjet::AreaDefinition *  adef = nullptr 
)
inline

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

References reset().

◆ FastJets() [6/7]

Rivet::FastJets::FastJets ( const FinalState fsp,
fastjet::JetDefinition::Plugin *  plugin,
fastjet::AreaDefinition *  adef,
JetAlg::MuonsStrategy  usemuons = JetAlg::ALL_MUONS,
JetAlg::InvisiblesStrategy  useinvis = JetAlg::NO_INVISIBLES 
)
inline

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

◆ FastJets() [7/7]

Rivet::FastJets::FastJets ( const FinalState fsp,
JetAlgName  alg,
double  rparameter,
JetAlg::MuonsStrategy  usemuons = JetAlg::ALL_MUONS,
JetAlg::InvisiblesStrategy  useinvis = JetAlg::NO_INVISIBLES,
fastjet::AreaDefinition *  adef = nullptr,
double  seed_threshold = 1.0 
)
inline

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

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.

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

References DEFAULT_RIVET_PROJ_CLONE(), mkClusterInputs(), mkJet(), mkJets(), and reset().

Member Function Documentation

◆ areaDef()

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

Return the area definition.

Warning
May be null!
Todo:
Care needed re. const shared_ptr<T> vs. shared_ptr<const T>

References calc(), compare(), and project().

Referenced by clusterSeqArea().

◆ clusterSeq()

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

Return the cluster sequence.

Todo:
Care needed re. const shared_ptr<T> vs. shared_ptr<const T>

Referenced by Rivet::MC_JetSplittings::analyze(), pseudoJets(), and trimJet().

◆ clusterSeqArea()

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

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

Todo:
Care needed re. const shared_ptr<T> vs. shared_ptr<const T>

References areaDef().

◆ mkClusterInputs()

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

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

Todo:
Use FastJet3's UserInfo system to store Particle pointers directly?

< Ghostify the momentum

Referenced by calc(), and FastJets().

◆ reset()

void Rivet::FastJets::reset ( )
virtual

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

Todo:
_cseq = fastjet::ClusterSequence();

Implements Rivet::JetAlg.

References mkJets(), and pseudojets().

Referenced by FastJets().

◆ trimJet()

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

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

Todo:
"Automate" trimming as part of project() with pre-registered Filters

References clusterSeq(), mkJet(), and Rivet::Jet::pseudojet().

Referenced by pseudojetsByRapidity().

◆ useJetArea()

void Rivet::FastJets::useJetArea ( fastjet::AreaDefinition *  adef)
inline

Use provided jet area definition.

Warning
The provided pointer must be heap-allocated: it will be stored/deleted via a shared_ptr.
Note
Provide an adef null pointer to re-disable jet area calculation

References pseudoJets().


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