class Rivet::SmearedJets
Rivet::SmearedJets
Wrapper projection for smearing Jet
s with detector resolutions and efficiencies. More…
#include <SmearedJets.hh>
Inherits from Rivet::JetFinder, Rivet::Projection, Rivet::ProjectionApplier
Public Types
Name | |
---|---|
typedef Jet | entity_type |
typedef Jets | collection_type |
enum class | Muons { NONE, DECAY, ALL} Enum for the treatment of muons: whether to include all, some, or none in jet-finding. |
enum class | Invisibles { NONE, DECAY, ALL} Enum for the treatment of invisible particles: whether to include all, some, or none in jet-finding. |
Public Functions
Name | |
---|---|
SmearedJets(const JetFinder & ja, const JetSmearFn & smearFn, const JetEffFn & bTagEffFn =JET_BTAG_PERFECT, const JetEffFn & cTagEffFn =JET_CTAG_PERFECT) Constructor with a reco efficiency and optional tagging efficiencies. | |
SmearedJets(const JetFinder & ja, const JetEffFn & bTagEffFn =JET_BTAG_PERFECT, const JetEffFn & cTagEffFn =JET_CTAG_PERFECT, const initializer_list< JetEffSmearFn > & effSmearFns ={}) Constructor with tagging efficiencies, plus an ordered init-list of efficiency and smearing functions. | |
SmearedJets(const JetFinder & ja, const JetEffFn & bTagEffFn =JET_BTAG_PERFECT, const JetEffFn & cTagEffFn =JET_CTAG_PERFECT, const vector< JetEffSmearFn > & effSmearFns ={}) Constructor with tagging efficiencies, plus an ordered vector of efficiency and smearing functions. | |
SmearedJets(const JetFinder & ja, const initializer_list< JetEffSmearFn > & effSmearFns, const JetEffFn & bTagEffFn =JET_BTAG_PERFECT, const JetEffFn & cTagEffFn =JET_CTAG_PERFECT) Constructor with an ordered init-list of efficiency and smearing functions, plus optional tagging efficiencies. | |
SmearedJets(const JetFinder & ja, const vector< JetEffSmearFn > & effSmearFns, const JetEffFn & bTagEffFn =JET_BTAG_PERFECT, const JetEffFn & cTagEffFn =JET_CTAG_PERFECT) Constructor with an ordered vector of efficiency and smearing functions, plus optional tagging efficiencies. | |
SmearedJets(const JetFinder & ja, const JetSmearFn & smearFn, const JetEffFn & bTagEffFn, const JetEffFn & cTagEffFn, const JetEffFn & jetEffFn) Constructor with trailing efficiency arg. | |
DEFAULT_RIVET_PROJ_CLONE(SmearedJets ) Clone on the heap. | |
virtual CmpState | compare(const Projection & p) const Compare to another SmearedJets. |
virtual void | project(const Event & e) Perform the jet finding & smearing calculation. |
const Jets | truthJets() const Get the truth jets (sorted by pT) |
virtual void | reset() Reset the projection. Smearing functions will be unchanged. |
void | useMuons(Muons usemuons =Muons::ALL) Include (some) muons in jet construction. |
void | useInvisibles(Invisibles useinvis =Invisibles::DECAY) Include (some) invisible particles in jet construction. |
void | useInvisibles(bool useinvis) obsolete chooser |
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 |
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. |
virtual std::string | name() const Get the name of the projection. |
bool | valid() const Get the state of the projetion. |
bool | failed() const Get the state of the projetion. |
bool | before(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. |
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 |
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). |
void | markAsOwned() const Mark this object as owned by a proj-handler. |
virtual unique_ptr< Projection > | clone() const =0 Clone on the heap. |
Protected Functions
Name | |
---|---|
Log & | getLog() 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. |
void | fail() 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 | |
---|---|
class | Event Event is a friend. |
class | Cmp< Projection > The Cmp specialization for Projection is a friend. |
Public Functions inherited from Rivet::ProjectionApplier
Name | |
---|---|
ProjectionApplier() Constructor. | |
virtual | ~ProjectionApplier() |
Detailed Description
class Rivet::SmearedJets;
Wrapper projection for smearing Jet
s with detector resolutions and efficiencies.
Todo: Allow applying a pre-smearing cut so smearing doesn’t need to be applied to below-threshold micro-jets
Public Types Documentation
typedef entity_type
typedef Jet Rivet::JetFinder::entity_type;
typedef collection_type
typedef Jets Rivet::JetFinder::collection_type;
enum Muons
Enumerator | Value | Description |
---|---|---|
NONE | ||
DECAY | ||
ALL |
Enum for the treatment of muons: whether to include all, some, or none in jet-finding.
enum Invisibles
Enumerator | Value | Description |
---|---|---|
NONE | ||
DECAY | ||
ALL |
Enum for the treatment of invisible particles: whether to include all, some, or none in jet-finding.
Public Functions Documentation
function SmearedJets
inline SmearedJets(
const JetFinder & ja,
const JetSmearFn & smearFn,
const JetEffFn & bTagEffFn =JET_BTAG_PERFECT,
const JetEffFn & cTagEffFn =JET_CTAG_PERFECT
)
Constructor with a reco efficiency and optional tagging efficiencies.
Todo: Add a tau-tag slot
function SmearedJets
inline SmearedJets(
const JetFinder & ja,
const JetEffFn & bTagEffFn =JET_BTAG_PERFECT,
const JetEffFn & cTagEffFn =JET_CTAG_PERFECT,
const initializer_list< JetEffSmearFn > & effSmearFns ={}
)
Constructor with tagging efficiencies, plus an ordered init-list of efficiency and smearing functions.
Todo: Add a tau-tag slot
function SmearedJets
inline SmearedJets(
const JetFinder & ja,
const JetEffFn & bTagEffFn =JET_BTAG_PERFECT,
const JetEffFn & cTagEffFn =JET_CTAG_PERFECT,
const vector< JetEffSmearFn > & effSmearFns ={}
)
Constructor with tagging efficiencies, plus an ordered vector of efficiency and smearing functions.
Todo: Add a tau-tag slot
function SmearedJets
inline SmearedJets(
const JetFinder & ja,
const initializer_list< JetEffSmearFn > & effSmearFns,
const JetEffFn & bTagEffFn =JET_BTAG_PERFECT,
const JetEffFn & cTagEffFn =JET_CTAG_PERFECT
)
Constructor with an ordered init-list of efficiency and smearing functions, plus optional tagging efficiencies.
Todo: Add a tau-tag slot
function SmearedJets
inline SmearedJets(
const JetFinder & ja,
const vector< JetEffSmearFn > & effSmearFns,
const JetEffFn & bTagEffFn =JET_BTAG_PERFECT,
const JetEffFn & cTagEffFn =JET_CTAG_PERFECT
)
Constructor with an ordered vector of efficiency and smearing functions, plus optional tagging efficiencies.
Todo: Add a tau-tag slot
function SmearedJets
inline SmearedJets(
const JetFinder & ja,
const JetSmearFn & smearFn,
const JetEffFn & bTagEffFn,
const JetEffFn & cTagEffFn,
const JetEffFn & jetEffFn
)
Constructor with trailing efficiency arg.
Deprecated:
Use the version with pair-smearing list as 2nd argument
Todo: Add a tau-tag slot
function DEFAULT_RIVET_PROJ_CLONE
DEFAULT_RIVET_PROJ_CLONE(
SmearedJets
)
Clone on the heap.
Todo: How to include tagging effs?
Variadic eff/smear fn list?
Add a trailing Cut arg cf. SmearedParticles? – wrap into an eff function
function compare
inline virtual CmpState compare(
const Projection & p
) const
Compare to another SmearedJets.
Reimplements: Rivet::JetFinder::compare
function project
inline virtual void project(
const Event & e
)
Perform the jet finding & smearing calculation.
Reimplements: Rivet::JetFinder::project
< TodoOr could use the/an actual clustered b-quark momentum?
< TodoAs above… ?
function truthJets
inline const Jets truthJets() const
Get the truth jets (sorted by pT)
function reset
inline virtual void reset()
Reset the projection. Smearing functions will be unchanged.
Reimplements: Rivet::JetFinder::reset
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 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 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 clone
virtual unique_ptr< Projection > clone() const =0
Clone on the heap.
Reimplements: Rivet::Beam::clone
Protected Functions Documentation
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*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*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