![]() |
Rivet
3.1.3
|
Base class for all Rivet projections. More...
#include <Projection.hh>
Public Member Functions | |
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. | |
void | markAsOwned () const |
Mark this object as owned by a proj-handler. | |
Standard constructors and destructors. | |
Projection () | |
The default constructor. | |
virtual unique_ptr< Projection > | clone () const =0 |
Clone on the heap. | |
virtual | ~Projection () |
The destructor. | |
Projection operation and comparison | |
virtual void | project (const Event &e)=0 |
virtual CmpState | compare (const Projection &p) const =0 |
bool | before (const Projection &p) const |
Beam configuration | |
| |
virtual const std::set< PdgIdPair > | beamPairs () const |
Projection & | addPdgIdPair (PdgId beam1, PdgId beam2) |
Projection "getting" functions | |
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 |
Projection applying functions | |
template<typename PROJ = Projection> | |
std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & > | applyProjection (const Event &evt, const Projection &proj) const |
template<typename PROJ = Projection> | |
std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & > | applyProjection (const Event &evt, const PROJ &proj) const |
template<typename PROJ = Projection> | |
std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & > | applyProjection (const Event &evt, const std::string &name) const |
template<typename PROJ = Projection> | |
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<typename PROJ = Projection> | |
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<typename PROJ = Projection> | |
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<typename PROJ = Projection> | |
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). | |
Protected Member Functions | |
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 |
virtual Projection & | operator= (const Projection &) |
Block Projection copying. | |
ProjectionHandler & | getProjHandler () const |
Get a reference to the ProjectionHandler for this thread. | |
Projection registration functions | |
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... | |
Friends | |
class | Event |
Event is a friend. | |
class | Cmp< Projection > |
The Cmp specialization for Projection is a friend. | |
Base class for all Rivet projections.
Projection is the base class of all Projections to be used by Rivet. A Projection object can be assigned to an Event object and will then define a processed part of the information available in the Event, which then can be used by other Projection objects and/or Analysis objects.
The main virtual functions to be overridden by concrete sub-classes are project(const Event &) and compare(const Projection &).
|
inline |
Add a colliding beam pair.
|
inlineinherited |
Apply the supplied projection on event evt.
|
inlineinherited |
Apply the supplied projection on event evt.
|
inlineinherited |
Apply the named projection on event evt.
|
virtual |
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.
Referenced by failed().
bool Rivet::Projection::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.
|
pure virtual |
This function is used to define a unique ordering between different Projection objects of the same class. If this is considered to be equivalent to the Projector object, p, in the argument the function should return 0. If this object should be ordered before p a negative value should be returned, otherwise a positive value should be returned. This function must never be called explicitly, but should only be called from the operator<(const Projection &). When implementing the function in concrete sub-classes, it is then guaranteed that the Projection object p in the argument is of the same class as the sub-class and can be safely dynamically casted to that class.
When implementing this function in a sub-class, the immediate base class version of the function should be called first. If the base class function returns a non-zero value, that value should be returned immediately. Only if zero is returned should this function check the member variables of the sub-class to determine whether this should be ordered before or after p, or if it is equivalent with p.
Implemented in Rivet::GeneratedCentrality, Rivet::FastJets, Rivet::ALICE::PrimaryParticles, Rivet::ALICE::V0AndTrigger, Rivet::VetoedFinalState, Rivet::ALICE::V0Trigger< MODE >, Rivet::JetFinder, Rivet::EventMixingBase, Rivet::JetShape, Rivet::Correlators, Rivet::DressedLeptons, Rivet::ParticleFinder, Rivet::ALICE::CLMultiplicity< INNER >, Rivet::PartonicTops, Rivet::SmearedJets, Rivet::SmearedParticles, Rivet::MissingMomentum, Rivet::ATLAS::MinBiasTrigger, Rivet::WFinder, Rivet::IdentifiedFinalState, Rivet::GammaGammaLeptons, Rivet::PercentileProjection, Rivet::ZFinder, Rivet::HeavyHadrons, Rivet::Hemispheres, Rivet::DISLepton, Rivet::ATLAS::SumET_PBPB_Centrality, Rivet::MC_pPbMinBiasTrigger, Rivet::DISFinalState, Rivet::Sphericity, Rivet::DISRapidityGap, Rivet::Thrust, Rivet::BRAHMSCentrality, Rivet::CentralityProjection, Rivet::LeadingParticlesFinalState, Rivet::ALICE::V0Multiplicity< MODE >, Rivet::InvMassFinalState, Rivet::ParisiTensor, Rivet::LossyFinalState< FILTER >, Rivet::LossyFinalState< ConstRandomFilter >, Rivet::GammaGammaFinalState, Rivet::PromptFinalState, Rivet::Spherocity, Rivet::TriggerUA5, Rivet::CentralityEstimator, Rivet::TauFinder, Rivet::InitialQuarks, Rivet::TriggerProjection, Rivet::SmearedMET, Rivet::InvisibleFinalState, Rivet::PrimaryParticles, Rivet::VisibleFinalState, Rivet::ATLAS::SumET_PB_Centrality, Rivet::NonPromptFinalState, Rivet::MC_SumETFwdPbCentrality, Rivet::NeutralFinalState, Rivet::ChargedLeptons, Rivet::HadronicFinalState, Rivet::DISDiffHadron, Rivet::DISKinematics, Rivet::GammaGammaKinematics, Rivet::MergedFinalState, Rivet::NonHadronicFinalState, Rivet::TriggerCDFRun0Run1, Rivet::TriggerCDFRun2, Rivet::BeamThrust, Rivet::CentralEtHCM, Rivet::FParameter, Rivet::STAR_BES_Centrality, Rivet::HepMCHeavyIon, Rivet::FinalState, Rivet::ChargedFinalState, Rivet::ImpactParameterProjection, Rivet::UserCentEstimate, and Rivet::GeneratedPercentileProjection.
Referenced by failed().
|
inlineprotectedinherited |
Register a contained projection (user-facing version)
References Rivet::ProjectionApplier::declareProjection().
Referenced by Rivet::CentralityProjection::add(), Rivet::VetoedFinalState::addVetoOnThisFinalState(), Rivet::BeamThrust::BeamThrust(), Rivet::CentralEtHCM::CentralEtHCM(), Rivet::CentralityEstimator::CentralityEstimator(), Rivet::ChargedLeptons::ChargedLeptons(), Rivet::ALICE::CLMultiplicity< INNER >::CLMultiplicity(), Rivet::DISDiffHadron::DISDiffHadron(), Rivet::DISFinalState::DISFinalState(), Rivet::DISKinematics::DISKinematics(), Rivet::DISLepton::DISLepton(), Rivet::GammaGammaKinematics::GammaGammaKinematics(), Rivet::GammaGammaLeptons::GammaGammaLeptons(), Rivet::GeneratedCentrality::GeneratedCentrality(), Rivet::HadronicFinalState::HadronicFinalState(), Rivet::HeavyHadrons::HeavyHadrons(), Rivet::Hemispheres::Hemispheres(), Rivet::InvisibleFinalState::InvisibleFinalState(), Rivet::LeadingParticlesFinalState::LeadingParticlesFinalState(), Rivet::LossyFinalState< ConstRandomFilter >::LossyFinalState(), Rivet::MC_pPbMinBiasTrigger::MC_pPbMinBiasTrigger(), Rivet::MC_SumETFwdPbCentrality::MC_SumETFwdPbCentrality(), Rivet::ATLAS::MinBiasTrigger::MinBiasTrigger(), Rivet::MissingMomentum::MissingMomentum(), Rivet::NeutralFinalState::NeutralFinalState(), Rivet::NonHadronicFinalState::NonHadronicFinalState(), Rivet::ParisiTensor::ParisiTensor(), Rivet::PercentileProjection::PercentileProjection(), Rivet::PrimaryHadrons::PrimaryHadrons(), Rivet::CentralityBinner< T, MDist >::setProjection(), Rivet::SmearedJets::SmearedJets(), Rivet::SmearedMET::SmearedMET(), Rivet::SmearedParticles::SmearedParticles(), Rivet::Spherocity::Spherocity(), Rivet::ATLAS::SumET_PB_Centrality::SumET_PB_Centrality(), Rivet::ATLAS::SumET_PBPB_Centrality::SumET_PBPB_Centrality(), Rivet::TauFinder::TauFinder(), Rivet::Thrust::Thrust(), Rivet::TriggerCDFRun0Run1::TriggerCDFRun0Run1(), Rivet::TriggerCDFRun2::TriggerCDFRun2(), Rivet::UndressBeamLeptons::UndressBeamLeptons(), Rivet::ALICE::V0AndTrigger::V0AndTrigger(), Rivet::ALICE::V0Trigger< MODE >::V0Trigger(), Rivet::VetoedFinalState::VetoedFinalState(), and Rivet::VisibleFinalState::VisibleFinalState().
|
inlineprotectedinherited |
Register a contained projection (user-facing, arg-reordered version)
References Rivet::ProjectionApplier::declareProjection(), and Rivet::ProjectionApplier::name().
|
inlineprotectedinherited |
Register a contained 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.
Referenced by Rivet::ProjectionApplier::declare().
|
inlineinherited |
Get the named projection, specifying return type via a template argument (user-facing alias).
References Rivet::ProjectionApplier::name().
|
inlineinherited |
Get the named projection, specifying return type via a template argument.
References Rivet::ProjectionHandler::getProjection(), and Rivet::ProjectionApplier::getProjHandler().
Referenced by Rivet::pcmp().
|
inlineinherited |
Get the named projection (non-templated, so returns as a reference to a Projection base class).
References Rivet::ProjectionHandler::getProjection(), and Rivet::ProjectionApplier::getProjHandler().
|
protected |
Shortcut to make a named Cmp<Projection> comparison with the *this
object automatically passed as one of the parent projections.
Referenced by Rivet::FParameter::compare(), Rivet::STAR_BES_Centrality::compare(), Rivet::CentralEtHCM::compare(), Rivet::BeamThrust::compare(), Rivet::MC_SumETFwdPbCentrality::compare(), Rivet::ATLAS::SumET_PB_Centrality::compare(), Rivet::CentralityEstimator::compare(), Rivet::Spherocity::compare(), Rivet::GammaGammaFinalState::compare(), Rivet::LossyFinalState< ConstRandomFilter >::compare(), Rivet::BRAHMSCentrality::compare(), Rivet::Thrust::compare(), Rivet::DISFinalState::compare(), Rivet::MC_pPbMinBiasTrigger::compare(), Rivet::ATLAS::SumET_PBPB_Centrality::compare(), Rivet::Hemispheres::compare(), Rivet::HeavyHadrons::compare(), Rivet::PercentileProjection::compare(), Rivet::ATLAS::MinBiasTrigger::compare(), Rivet::EventMixingBase::compare(), Rivet::GeneratedCentrality::compare(), and fail().
|
protected |
Shortcut to make a named Cmp<Projection> comparison with the *this
object automatically passed as one of the parent projections.
Referenced by Rivet::SmearedMET::compare(), Rivet::SmearedParticles::compare(), Rivet::SmearedJets::compare(), Rivet::Correlators::compare(), Rivet::ALICE::PrimaryParticles::compare(), and fail().
|
pure virtual |
Take the information available in the Event and make the calculations necessary to obtain the projection. Note that this function must never be called except inside the Event::applyProjection(Projection *) function.
Implemented in Rivet::GeneratedCentrality, Rivet::FastJets, Rivet::ALICE::V0AndTrigger, Rivet::VetoedFinalState, Rivet::Beam, Rivet::JetFinder, Rivet::ALICE::V0Trigger< MODE >, Rivet::JetShape, Rivet::EventMixingBase, Rivet::Correlators, Rivet::SmearedJets, Rivet::SmearedParticles, Rivet::DressedLeptons, Rivet::ParticleFinder, Rivet::ALICE::CLMultiplicity< INNER >, Rivet::MissingMomentum, Rivet::WFinder, Rivet::ATLAS::MinBiasTrigger, Rivet::IdentifiedFinalState, Rivet::GammaGammaLeptons, Rivet::ZFinder, Rivet::HeavyHadrons, Rivet::PercentileProjection, Rivet::Hemispheres, Rivet::DISLepton, Rivet::PartonicTops, Rivet::DISFinalState, Rivet::Sphericity, Rivet::DISRapidityGap, Rivet::MC_pPbMinBiasTrigger, Rivet::ATLAS::SumET_PBPB_Centrality, Rivet::LeadingParticlesFinalState, Rivet::Thrust, Rivet::BRAHMSCentrality, Rivet::PrimaryParticles, Rivet::InvMassFinalState, Rivet::ParisiTensor, Rivet::SmearedMET, Rivet::GammaGammaFinalState, Rivet::PromptFinalState, Rivet::TauFinder, Rivet::TriggerUA5, Rivet::LossyFinalState< FILTER >, Rivet::Spherocity, Rivet::CentralityEstimator, Rivet::LossyFinalState< ConstRandomFilter >, Rivet::ALICE::V0Multiplicity< MODE >, Rivet::CentralityProjection, Rivet::InitialQuarks, Rivet::UnstableParticles, Rivet::InvisibleFinalState, Rivet::PrimaryHadrons, Rivet::VisibleFinalState, Rivet::NonPromptFinalState, Rivet::TriggerProjection, Rivet::NeutralFinalState, Rivet::ChargedLeptons, Rivet::HadronicFinalState, Rivet::DISDiffHadron, Rivet::DISKinematics, Rivet::GammaGammaKinematics, Rivet::MergedFinalState, Rivet::NonHadronicFinalState, Rivet::CentralEtHCM, Rivet::TriggerCDFRun0Run1, Rivet::TriggerCDFRun2, Rivet::ATLAS::SumET_PB_Centrality, Rivet::BeamThrust, Rivet::FinalState, Rivet::FParameter, Rivet::MC_SumETFwdPbCentrality, Rivet::ChargedFinalState, Rivet::HepMCHeavyIon, Rivet::UndressBeamLeptons, Rivet::STAR_BES_Centrality, Rivet::ImpactParameterProjection, Rivet::UserCentEstimate, Rivet::GeneratedPercentileProjection, and Rivet::FinalPartons.
Referenced by Rivet::Event::applyProjection(), and failed().