![]() |
Rivet
3.1.2
|
#include <CentralityBinner.hh>
Public Member Functions | |
CentralityBinner (int maxbins=200, double wlim=0.02) | |
void | setProjection (const CentralityEstimator &p, string pname) |
virtual std::string | name () const |
Return the class name. | |
void | add (T t, double cmin, double cmax, double cestmin=-1.0, double cestmax=-1.0) |
T | select (const Event &event, double weight=1.0) |
T | select (double cest, double weight=1.0) |
void | finalize () |
void | normalizePerEvent () |
map< double, double > | edges () const |
const T & | current () const |
Return the current AnalysisObject from the latest call to select(). | |
double | estimator () const |
vector< T > | allObjects () |
void | debug () |
Print out the _flexiBins to cerr. | |
void | fulldebug () |
void | markAsOwned () const |
Mark this object as owned by a proj-handler. | |
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 Types | |
typedef set< FlexiBin > | FlexiBinSet |
Convenient typedefs. | |
Protected Member Functions | |
Log & | getLog () const |
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... | |
CentralityBinner contains a series of AnalysisObject of the same quantity each in a different percentiles of another quantity. For example, a CentralityBinner may e.g. contain histograms of the cross section differential in \( p_T \) in different centrality regions for heavy ion collisions based on forward energy flow.
|
inline |
Create a new empty CentralityBinner. maxbins is the maximum number of bins used by the binner. Default is 1000, which is typically enough. wlim is the mximum allowed error allowed for the centrality limits before a warning is emitted.
|
inline |
Add an AnalysisObject in the region between cmin and cmax to this set of CentralityBinners. The range represent percentiles and must be between 0 and 100. No overlaping bins are allowed. Note that (cmin=0, cmax=5), means the five percent MOST central events although the internal notation is reversed for convenience. Optionally supply corresponding limits cestmin and cestmax of the centrality extimator.
References Rivet::max(), and Rivet::min().
|
inlineinherited |
Apply the supplied projection on event evt.
|
inlineinherited |
Apply the supplied projection on event evt.
|
inlineinherited |
Apply the named projection on event evt.
|
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().
|
inline |
Return a map bin edges of the centrality extimator indexed by the corresponing percentile.
|
inline |
Return the value of the centrality estimator set in the latest call to select().
References Rivet::inRange(), Rivet::max(), and Rivet::min().
void Rivet::CentralityBinner< T, MDist >::finalize | ( | ) |
At the end of the run, calculate the percentiles and fill the AnalysisObjectss provided with the add() function. This is typically called from the finalize method in an Analysis, but can also be called earlier in which case the the select functions can be continued to run as before with the edges between the centrality regions now fixed.
References Rivet::max(), Rivet::min(), and MSG_WARNING.
|
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().
|
inline |
Normalize each AnalysisObjects to the sum of event weights in the corresponding centrality bin.
|
inline |
Return one of the AnalysisObjects in the CentralityBinner for the given event. This version requires that a CentralityEstimator object has been assigned that can compute the value of the centrality estimator from the event. Optionally the weight of the event is given. This should be the weight that will be used to fill the AnalysisObject. If the centrality estimate is less than zero, the _devnull object will be returned.
References Rivet::CentralityEstimator::estimate(), and Rivet::select().
T Rivet::CentralityBinner< T, MDist >::select | ( | double | cest, |
double | weight = 1.0 |
||
) |
Return one of the AnalysisObjecsts in the Setup the CentralityBinner depending on the value of the centrality estimator, cest. Optionally the weight of the event is given. This should be the weight that will be used to fill the AnalysisObject. If the centrality estimate is less than zero, the _devnull object will be returned.
|
inline |
Set the centrality projection to be used. Note that this projection must have already been declared to Rivet.
References Rivet::ProjectionApplier::declare().