class Rivet::MC_JetSplittings

Rivet::MC_JetSplittings

Base class providing common functionality for MC jet validation analyses.

#include <MC_JetSplittings.hh>

Inherits from Rivet::Analysis, Rivet::ProjectionApplier

Public Functions

Name
virtual voidinit()
virtual voidanalyze(const Event & event)
virtual voidfinalize()
virtual voidrawHookIn(YODA::AnalysisObjectPtr yao)
virtual voidrawHookOut(vector< MultiweightAOPtr > raos, size_t iW)
const std::map< std::string, std::string > &options() const
Return the map of all options given to this analysis.
std::stringgetOption(std::string optname, string def ="") const
Get an option for this analysis instance as a string.
std::stringgetOption(std::string optname, const char * def)
Sane overload for literal character strings (which don’t play well with stringstream)
template <typename T >
T
getOption(std::string optname, T def) const
Get an option for this analysis instance converted to a specific type.
boolgetOption(std::string optname, bool def) const
Get an option for this analysis instance converted to a bool.
std::set< ConstProjectionPtr >getProjections() const
Get the contained projections, including recursion.
boolhasProjection(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).
voidmarkAsOwned() const
Mark this object as owned by a proj-handler.
MC_JetSplittings(const string & name, size_t njet, const string & jetpro_name)
Default constructor.
const AnalysisInfo &info() const
Get the actual AnalysisInfo object in which all this metadata is stored.
AnalysisInfo &info()
virtual std::stringname() const
Get the name of the analysis.
virtual std::stringgetRefDataName() const
Get name of reference data file, which could be different from plugin name.
virtual voidsetRefDataName(const std::string & ref_data ="")
Set name of reference data file, which could be different from plugin name.
virtual std::stringinspireId() const
Get the Inspire ID code for this analysis.
virtual std::stringspiresId() const
Get the SPIRES ID code for this analysis (~deprecated).
virtual std::vector< std::string >authors() const
Names & emails of paper/analysis authors.
virtual std::stringsummary() const
Get a short description of the analysis.
virtual std::stringdescription() const
Get a full description of the analysis.
virtual std::stringrunInfo() const
Information about the events needed as input for this analysis.
virtual std::stringexperiment() const
Experiment which performed and published this analysis.
virtual std::stringcollider() const
Collider on which the experiment ran.
virtual std::stringyear() const
When the original experimental analysis was published.
virtual doubleluminosityfb() const
The integrated luminosity in inverse femtobarn.
virtual doubleluminosity() const
The integrated luminosity in inverse picobarn.
virtual std::vector< std::string >references() const
Journal, and preprint references.
virtual std::stringbibKey() const
BibTeX citation key for this article.
virtual std::stringbibTeX() const
BibTeX citation entry for this article.
virtual std::stringstatus() const
Whether this analysis is trusted (in any way!)
virtual std::stringwarning() const
A warning message from the info file, if there is one.
virtual std::vector< std::string >todos() const
Any work to be done on this analysis.
virtual std::vector< std::string >validation() const
make-style commands for validating this analysis.
virtual boolreentrant() const
Does this analysis have a reentrant finalize()?
virtual std::stringrefFile() const
Location of reference data YODA file.
virtual std::stringrefMatch() const
Positive filtering regex for ref-data HepData sync.
virtual std::stringrefUnmatch() const
Negative filtering regex for ref-data HepData sync.
virtual std::stringwriterDoublePrecision() const
Positive filterin regex for setting double precision in Writer.
virtual const std::vector< PdgIdPair > &requiredBeams() const
Return the allowed pairs of incoming beams required by this analysis.
virtual Analysis &setRequiredBeams(const std::vector< PdgIdPair > & requiredBeams)
Declare the allowed pairs of incoming beams required by this analysis.
virtual const std::vector< std::pair< double, double > > &requiredEnergies() const
Sets of valid beam energy pairs, in GeV.
virtual const std::vector< std::string > &keywords() const
Get vector of analysis keywords.
virtual Analysis &setRequiredEnergies(const std::vector< std::pair< double, double > > & requiredEnergies)
Declare the list of valid beam energy pairs, in GeV.
const ParticlePair &beams() const
Incoming beams for this run.
const PdgIdPairbeamIds() const
Incoming beam IDs for this run.
doublesqrtS() const
Centre of mass energy for this run.
boolmerging() const
Check if we are running rivet-merge.
boolisCompatible(const ParticlePair & beams) const
Check if analysis is compatible with the provided beam particle IDs and energies.
boolisCompatible(PdgId beam1, PdgId beam2, double e1, double e2) const
Check if analysis is compatible with the provided beam particle IDs and energies.
boolisCompatible(const PdgIdPair & beams, const std::pair< double, double > & energies) const
Check if analysis is compatible with the provided beam particle IDs and energies.
boolisCompatibleWithSqrtS(const float energy, float tolerance =1E-5) const
Check if sqrtS is compatible with provided value.
AnalysisHandler &handler() const
Access the controlling AnalysisHandler object.
const CentralityProjection &declareCentrality(const SingleValueProjection & proj, string calAnaName, string calHistName, const string projName, bool increasing =false)
Book a CentralityProjection.
template <class T >
Percentile< T >
bookPercentile(string projName, vector< pair< float, float > > centralityBins, vector< tuple< int, int, int > > ref)
Book a Percentile wrapper around AnalysisObjects.
doubledbl(double x)
doubledbl(const YODA::Counter & c)
doubledbl(const YODA::Scatter1D & s)
voidscale(CounterPtr cnt, CounterAdapter factor)
Multiplicatively scale the given counter, cnt, by factor factor.
voidscale(const std::vector< CounterPtr > & cnts, CounterAdapter factor)
template <typename T >
void
scale(const std::map< T, CounterPtr > & maps, CounterAdapter factor)
Iteratively scale the counters in the map maps, by factor factor.
template <std::size_t array_size>
void
scale(const CounterPtr(&) cnts[array_size], CounterAdapter factor)
voidscale(Histo1DPtr histo, CounterAdapter factor)
Multiplicatively scale the given histogram, histo, by factor factor.
voidscale(const std::vector< Histo1DPtr > & histos, CounterAdapter factor)
template <typename T >
void
scale(const std::map< T, Histo1DPtr > & maps, CounterAdapter factor)
Iteratively scale the histograms in the map, maps, by factor factor.
template <std::size_t array_size>
void
scale(const Histo1DPtr(&) histos[array_size], CounterAdapter factor)
voidscale(Histo1DPtr histo, CounterAdapter factor)
Multiplicatively scale the given histogram, histo, by factor factor.
voidscale(const std::vector< Histo1DPtr > & histos, CounterAdapter factor)
template <typename T >
void
scale(const std::map< T, Histo1DPtr > & maps, CounterAdapter factor)
Iteratively scale the histograms in the map, maps, by factor factor.
template <std::size_t array_size>
void
scale(const Histo1DPtr(&) histos[array_size], CounterAdapter factor)
voidnormalize(Histo1DPtr histo, CounterAdapter norm =1.0, bool includeoverflows =true)
Normalize the given histogram, histo, to area = norm.
voidnormalize(const std::vector< Histo1DPtr > & histos, CounterAdapter norm =1.0, bool includeoverflows =true)
template <typename T >
void
normalize(const std::map< T, Histo1DPtr > & maps, CounterAdapter norm =1.0, bool includeoverflows =true)
Normalize the histograms in map, maps, to area = norm.
template <std::size_t array_size>
void
normalize(const Histo1DPtr(&) histos[array_size], CounterAdapter norm =1.0, bool includeoverflows =true)
voidnormalize(Histo2DPtr histo, CounterAdapter norm =1.0, bool includeoverflows =true)
Normalize the given histogram, histo, to area = norm.
voidnormalize(const std::vector< Histo2DPtr > & histos, CounterAdapter norm =1.0, bool includeoverflows =true)
template <typename T >
void
normalize(const std::map< T, Histo2DPtr > & maps, CounterAdapter norm =1.0, bool includeoverflows =true)
Normalize the histograms in map, maps, to area = norm.
template <std::size_t array_size>
void
normalize(const Histo2DPtr(&) histos[array_size], CounterAdapter norm =1.0, bool includeoverflows =true)
voidbarchart(Histo1DPtr h, Scatter2DPtr s, bool usefocus =false) const
voidbarchart(Histo2DPtr h, Scatter3DPtr s, bool usefocus =false) const
voiddivide(CounterPtr c1, CounterPtr c2, Scatter1DPtr s) const
voiddivide(const YODA::Counter & c1, const YODA::Counter & c2, Scatter1DPtr s) const
voiddivide(Histo1DPtr h1, Histo1DPtr h2, Scatter2DPtr s) const
voiddivide(const YODA::Histo1D & h1, const YODA::Histo1D & h2, Scatter2DPtr s) const
voiddivide(Histo1DPtr h1, Histo1DPtr h2, Scatter2DPtr s) const
voiddivide(const YODA::Profile1D & p1, const YODA::Profile1D & p2, Scatter2DPtr s) const
voiddivide(Histo1DPtr h1, Histo1DPtr h2, Scatter2DPtr s) const
voiddivide(const YODA::Histo2D & h1, const YODA::Histo2D & h2, Scatter3DPtr s) const
voiddivide(Histo1DPtr h1, Histo1DPtr h2, Scatter2DPtr s) const
voiddivide(const YODA::Profile2D & p1, const YODA::Profile2D & p2, Scatter3DPtr s) const
voidefficiency(Histo1DPtr h1, Histo1DPtr h2, Scatter2DPtr s) const
voidefficiency(const YODA::Histo1D & h1, const YODA::Histo1D & h2, Scatter2DPtr s) const
voidasymm(Histo1DPtr h1, Histo1DPtr h2, Scatter2DPtr s) const
voidasymm(const YODA::Histo1D & h1, const YODA::Histo1D & h2, Scatter2DPtr s) const
voidintegrate(Histo1DPtr h, Scatter2DPtr s) const
voidintegrate(const Histo1D & h, Scatter2DPtr s) const
const vector< MultiweightAOPtr > &analysisObjects() const
List of registered analysis data objects.

Protected Functions

Name
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)
Log &getLog() const
Get a Log object based on the name() property of the calling analysis object.
doublecrossSection() const
Get the process cross-section in pb. Throws if this hasn’t been set.
doublecrossSectionPerEvent() const
doublecrossSectionError() const
Get the process cross-section error in pb. Throws if this hasn’t been set.
doublecrossSectionErrorPerEvent() const
size_tnumEvents() const
Get the number of events seen (via the analysis handler).
doublesumW() const
Get the sum of event weights seen (via the analysis handler).
doublesumOfWeights() const
Alias.
doublesumW2() const
Get the sum of squared event weights seen (via the analysis handler).
const std::stringhistoDir() const
Get the canonical histogram “directory” path for this analysis.
const std::stringhistoPath(const std::string & hname) const
Get the canonical histogram path for the named histogram in this analysis.
const std::stringhistoPath(unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId) const
Get the canonical histogram path for the numbered histogram in this analysis.
const std::stringmkAxisCode(unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId) const
Get the internal histogram name for given d, x and y (cf. HepData)
const std::map< std::string, YODA::AnalysisObjectPtr > &refData() const
Get all reference data objects for this analysis.
template
const T &
refData(const string & hname) const
template
const T &
refData(unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId) const
CounterPtr &book(CounterPtr & , const std::string & name)
Book a counter.
CounterPtr &book(CounterPtr & , unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId)
Histo1DPtr &book(Histo1DPtr & , const std::string & name, size_t nbins, double lower, double upper)
Book a 1D histogram with nbins uniformly distributed across the range lower - upper .
Histo1DPtr &book(Histo1DPtr & , const std::string & name, const std::vector< double > & binedges)
Book a 1D histogram with non-uniform bins defined by the vector of bin edges binedges .
Histo1DPtr &book(Histo1DPtr & , const std::string & name, const std::initializer_list< double > & binedges)
Book a 1D histogram with non-uniform bins defined by the vector of bin edges binedges .
Histo1DPtr &book(Histo1DPtr & , const std::string & name, const Scatter2D & refscatter)
Book a 1D histogram with binning from a reference scatter.
Histo1DPtr &book(Histo1DPtr & , const std::string & name)
Book a 1D histogram, using the binnings in the reference data histogram.
Histo1DPtr &book(Histo1DPtr & , unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId)
Histo2DPtr &book(Histo2DPtr & , const std::string & name, size_t nxbins, double xlower, double xupper, size_t nybins, double ylower, double yupper)
Histo2DPtr &book(Histo2DPtr & , const std::string & name, const std::vector< double > & xbinedges, const std::vector< double > & ybinedges)
Histo2DPtr &book(Histo2DPtr & , const std::string & name, const std::initializer_list< double > & xbinedges, const std::initializer_list< double > & ybinedges)
Histo2DPtr &book(Histo2DPtr & , const std::string & name, const Scatter3D & refscatter)
Book a 2D histogram with binning from a reference scatter.
Histo2DPtr &book(Histo2DPtr & , const std::string & name)
Book a 2D histogram, using the binnings in the reference data histogram.
Histo2DPtr &book(Histo2DPtr & , unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId)
Profile1DPtr &book(Profile1DPtr & , const std::string & name, size_t nbins, double lower, double upper)
Book a 1D profile histogram with nbins uniformly distributed across the range lower - upper .
Profile1DPtr &book(Profile1DPtr & , const std::string & name, const std::vector< double > & binedges)
Book a 1D profile histogram with non-uniform bins defined by the vector of bin edges binedges .
Profile1DPtr &book(Profile1DPtr & , const std::string & name, const std::initializer_list< double > & binedges)
Book a 1D profile histogram with non-uniform bins defined by the vector of bin edges binedges .
Profile1DPtr &book(Profile1DPtr & , const std::string & name, const Scatter2D & refscatter)
Book a 1D profile histogram with binning from a reference scatter.
Profile1DPtr &book(Profile1DPtr & , const std::string & name)
Book a 1D profile histogram, using the binnings in the reference data histogram.
Profile1DPtr &book(Profile1DPtr & , unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId)
Profile2DPtr &book(Profile2DPtr & , const std::string & name, size_t nxbins, double xlower, double xupper, size_t nybins, double ylower, double yupper)
Profile2DPtr &book(Profile2DPtr & , const std::string & name, const std::vector< double > & xbinedges, const std::vector< double > & ybinedges)
Profile2DPtr &book(Profile2DPtr & , const std::string & name, const std::initializer_list< double > & xbinedges, const std::initializer_list< double > & ybinedges)
Scatter2DPtr &book(Scatter2DPtr & s2d, const string & hname, bool copy_pts =false)
Book a 2-dimensional data point set with the given name.
Scatter2DPtr &book(Scatter2DPtr & s2d, unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId, bool copy_pts =false)
Book a 2-dimensional data point set, using the binnings in the reference data histogram.
Scatter2DPtr &book(Scatter2DPtr & s2d, const string & hname, size_t npts, double lower, double upper)
Book a 2-dimensional data point set with equally spaced x-points in a range.
Scatter2DPtr &book(Scatter2DPtr & s2d, const string & hname, const std::vector< double > & binedges)
Book a 2-dimensional data point set based on provided contiguous “bin edges”.
Scatter2DPtr &book(Scatter2DPtr & s2d, const string & hname, const Scatter2D & refscatter)
Book a 2-dimensional data point set with x-points from an existing scatter and a new path.
Scatter3DPtr &book(Scatter3DPtr & s3d, const std::string & hname, bool copy_pts =false)
Book a 3-dimensional data point set with the given name.
Scatter3DPtr &book(Scatter3DPtr & s3d, unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId, unsigned int zAxisId, bool copy_pts =false)
Book a 3-dimensional data point set, using the binnings in the reference data histogram.
Scatter3DPtr &book(Scatter3DPtr & s3d, const std::string & hname, size_t xnpts, double xlower, double xupper, size_t ynpts, double ylower, double yupper)
Book a 3-dimensional data point set with equally spaced x-points in a range.
Scatter3DPtr &book(Scatter3DPtr & s3d, const std::string & hname, const std::vector< double > & xbinedges, const std::vector< double > & ybinedges)
Book a 3-dimensional data point set based on provided contiguous “bin edges”.
Scatter3DPtr &book(Scatter3DPtr & s3d, const std::string & hname, const Scatter3D & refscatter)
Book a 3-dimensional data point set with x-points from an existing scatter and a new path.
size_tdefaultWeightIndex() const
Get the default/nominal weight index.
template <typename YODAT >
shared_ptr< YODAT >
getPreload(string path) const
Get a preloaded YODA object.
template <typename YODAT >
rivet_shared_ptr< Wrapper< YODAT > >
registerAO(const YODAT & yao)
Register a new data object, optionally read in preloaded data.
template
AO
addAnalysisObject(const AO & aonew)
Register a data object in the histogram system.
voidremoveAnalysisObject(const std::string & path)
Unregister a data object from the histogram system (by name)
voidremoveAnalysisObject(const MultiweightAOPtr & ao)
Unregister a data object from the histogram system (by pointer)
template
const AO
getAnalysisObject(const std::string & aoname) const
Get a Rivet data object from the histogram system.
template
AO
getAnalysisObject(const std::string & ananame, const std::string & aoname)

Protected Attributes

Name
size_tm_njet
The number of jets for which histograms are to be initialised.
const std::stringm_jetpro_name

Additional inherited members

Public Functions inherited from Rivet::Analysis

Name
Analysis(const std::string & name)
Constructor.
virtual~Analysis()
The destructor.
Analysis &operator=(const Analysis & ) =delete
The assignment operator is private and mustdeleted, so it can never be called.

Friends inherited from Rivet::Analysis

Name
classAnalysisHandler
The AnalysisHandler is a friend.

Public Functions inherited from Rivet::ProjectionApplier

Name
ProjectionApplier()
Constructor.
virtual~ProjectionApplier()

Public Functions Documentation

function init

virtual void init()

Reimplements: Rivet::Analysis::init

Initialize this analysis object. A concrete class should here book all necessary histograms. An overridden function must make sure it first calls the base class function.

function analyze

virtual void analyze(
    const Event & event
)

Reimplements: Rivet::Analysis::analyze

Analyze one event. A concrete class should here apply the necessary projections on the event and fill the relevant histograms. An overridden function must make sure it first calls the base class function.

function finalize

virtual void finalize()

Reimplements: Rivet::Analysis::finalize

Finalize this analysis object. A concrete class should here make all necessary operations on the histograms. Writing the histograms to a file is, however, done by the Rivet class. An overridden function must make sure it first calls the base class function.

function rawHookIn

inline virtual void rawHookIn(
    YODA::AnalysisObjectPtr yao
)

Reimplemented by: Rivet::CumulantAnalysis::rawHookIn

function rawHookOut

inline virtual void rawHookOut(
    vector< MultiweightAOPtr > raos,
    size_t iW
)

Reimplemented by: Rivet::CumulantAnalysis::rawHookOut

function options

inline const std::map< std::string, std::string > & options() const

Return the map of all options given to this analysis.

function getOption

inline std::string getOption(
    std::string optname,
    string def =""
) const

Get an option for this analysis instance as a string.

function getOption

inline std::string getOption(
    std::string optname,
    const char * def
)

Sane overload for literal character strings (which don’t play well with stringstream)

Note this isn’t a template specialisation, because we can’t return a non-static char*, and T-as-return-type is built into the template function definition.

function getOption

template <typename T >
inline T getOption(
    std::string optname,
    T def
) const

Get an option for this analysis instance converted to a specific type.

Warning: To avoid accidents, strings not convertible to the requested type will throw a Rivet::ReadError exception.

The return type is given by the specified def value, or by an explicit template type-argument, e.g. getOption(“FOO”, 3).

function getOption

inline bool getOption(
    std::string optname,
    bool def
) const

Get an option for this analysis instance converted to a bool.

Todo: Make this a template-specialisation… needs to be outside the class body?

Warning: To avoid accidents, strings not matching one of the above patterns will throw a Rivet::ReadError exception.

Specialisation for bool, to allow use of “yes/no”, “true/false” and “on/off” strings, with fallback casting to bool based on int value. An empty value will be treated as false.

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 MC_JetSplittings

MC_JetSplittings(
    const string & name,
    size_t njet,
    const string & jetpro_name
)

Default constructor.

function info

inline const AnalysisInfo & info() const

Get the actual AnalysisInfo object in which all this metadata is stored.

function info

inline AnalysisInfo & info()

Note: For internal use!

Get the actual AnalysisInfo object in which all this metadata is stored (non-const).

function name

inline virtual std::string name() const

Get the name of the analysis.

Reimplements: Rivet::ProjectionApplier::name

By default this is computed by combining the results of the experiment, year and Spires ID metadata methods and you should only override it if there’s a good reason why those won’t work. If options has been set for this instance, a corresponding string is appended at the end.

function getRefDataName

inline virtual std::string getRefDataName() const

Get name of reference data file, which could be different from plugin name.

function setRefDataName

inline virtual void setRefDataName(
    const std::string & ref_data =""
)

Set name of reference data file, which could be different from plugin name.

function inspireId

inline virtual std::string inspireId() const

Get the Inspire ID code for this analysis.

function spiresId

inline virtual std::string spiresId() const

Get the SPIRES ID code for this analysis (~deprecated).

function authors

inline virtual std::vector< std::string > authors() const

Names & emails of paper/analysis authors.

Names and email of authors in ‘NAME ’ format. The first name in the list should be the primary contact person.

function summary

inline virtual std::string summary() const

Get a short description of the analysis.

Short (one sentence) description used as an index entry. Use description() to provide full descriptive paragraphs of analysis details.

function description

inline virtual std::string description() const

Get a full description of the analysis.

Full textual description of this analysis, what it is useful for, what experimental techniques are applied, etc. Should be treated as a chunk of restructuredText (http://docutils.sourceforge.net/rst.html), with equations to be rendered as LaTeX with amsmath operators.

function runInfo

inline virtual std::string runInfo() const

Information about the events needed as input for this analysis.

Event types, energies, kinematic cuts, particles to be considered stable, etc. etc. Should be treated as a restructuredText bullet list (http://docutils.sourceforge.net/rst.html)

function experiment

inline virtual std::string experiment() const

Experiment which performed and published this analysis.

function collider

inline virtual std::string collider() const

Collider on which the experiment ran.

function year

inline virtual std::string year() const

When the original experimental analysis was published.

function luminosityfb

inline virtual double luminosityfb() const

The integrated luminosity in inverse femtobarn.

function luminosity

inline virtual double luminosity() const

The integrated luminosity in inverse picobarn.

function references

inline virtual std::vector< std::string > references() const

Journal, and preprint references.

function bibKey

inline virtual std::string bibKey() const

BibTeX citation key for this article.

function bibTeX

inline virtual std::string bibTeX() const

BibTeX citation entry for this article.

function status

inline virtual std::string status() const

Whether this analysis is trusted (in any way!)

function warning

inline virtual std::string warning() const

A warning message from the info file, if there is one.

function todos

inline virtual std::vector< std::string > todos() const

Any work to be done on this analysis.

function validation

inline virtual std::vector< std::string > validation() const

make-style commands for validating this analysis.

function reentrant

inline virtual bool reentrant() const

Does this analysis have a reentrant finalize()?

function refFile

inline virtual std::string refFile() const

Location of reference data YODA file.

function refMatch

inline virtual std::string refMatch() const

Positive filtering regex for ref-data HepData sync.

function refUnmatch

inline virtual std::string refUnmatch() const

Negative filtering regex for ref-data HepData sync.

function writerDoublePrecision

inline virtual std::string writerDoublePrecision() const

Positive filterin regex for setting double precision in Writer.

function requiredBeams

inline virtual const std::vector< PdgIdPair > & requiredBeams() const

Return the allowed pairs of incoming beams required by this analysis.

function setRequiredBeams

inline virtual Analysis & setRequiredBeams(
    const std::vector< PdgIdPair > & requiredBeams
)

Declare the allowed pairs of incoming beams required by this analysis.

function requiredEnergies

inline virtual const std::vector< std::pair< double, double > > & requiredEnergies() const

Sets of valid beam energy pairs, in GeV.

function keywords

inline virtual const std::vector< std::string > & keywords() const

Get vector of analysis keywords.

function setRequiredEnergies

inline virtual Analysis & setRequiredEnergies(
    const std::vector< std::pair< double, double > > & requiredEnergies
)

Declare the list of valid beam energy pairs, in GeV.

function beams

const ParticlePair & beams() const

Incoming beams for this run.

function beamIds

const PdgIdPair beamIds() const

Incoming beam IDs for this run.

function sqrtS

double sqrtS() const

Centre of mass energy for this run.

function merging

inline bool merging() const

Check if we are running rivet-merge.

function isCompatible

bool isCompatible(
    const ParticlePair & beams
) const

Check if analysis is compatible with the provided beam particle IDs and energies.

function isCompatible

bool isCompatible(
    PdgId beam1,
    PdgId beam2,
    double e1,
    double e2
) const

Check if analysis is compatible with the provided beam particle IDs and energies.

function isCompatible

bool isCompatible(
    const PdgIdPair & beams,
    const std::pair< double, double > & energies
) const

Check if analysis is compatible with the provided beam particle IDs and energies.

function isCompatibleWithSqrtS

bool isCompatibleWithSqrtS(
    const float energy,
    float tolerance =1E-5
) const

Check if sqrtS is compatible with provided value.

function handler

inline AnalysisHandler & handler() const

Access the controlling AnalysisHandler object.

function declareCentrality

const CentralityProjection & declareCentrality(
    const SingleValueProjection & proj,
    string calAnaName,
    string calHistName,
    const string projName,
    bool increasing =false
)

Book a CentralityProjection.

Using a SingleValueProjection, proj, giving the value of an experimental observable to be used as a centrality estimator, book a CentralityProjection based on the experimentally measured pecentiles of this observable (as given by the reference data for the calHistName histogram in the calAnaName analysis. If a preloaded file with the output of a run using the calAnaName analysis contains a valid generated calHistName histogram, it will be used as an optional percentile binning. Also if this preloaded file contains a histogram with the name calHistName with an appended “_IMP” This histogram will be used to add an optional centrality percentile based on the generated impact parameter. If increasing is true, a low (high) value of proj is assumed to correspond to a more peripheral (central) event.

function bookPercentile

template <class T >
inline Percentile< T > bookPercentile(
    string projName,
    vector< pair< float, float > > centralityBins,
    vector< tuple< int, int, int > > ref
)

Book a Percentile wrapper around AnalysisObjects.

Todo: Convert to just be called book() cf. others

Based on a previously registered CentralityProjection named projName book one AnalysisObject for each centralityBin and name them according to the corresponding code in the ref vector.

function dbl

inline double dbl(
    double x
)

function dbl

inline double dbl(
    const YODA::Counter & c
)

function dbl

inline double dbl(
    const YODA::Scatter1D & s
)

function scale

void scale(
    CounterPtr cnt,
    CounterAdapter factor
)

Multiplicatively scale the given counter, cnt, by factor factor.

function scale

inline void scale(
    const std::vector< CounterPtr > & cnts,
    CounterAdapter factor
)

Note: Constness intentional, if weird, to allow passing rvalue refs of smart ptrs (argh)

Todo: Use SFINAE for a generic iterable of CounterPtrs

Multiplicatively scale the given counters, cnts, by factor factor.

function scale

template <typename T >
inline void scale(
    const std::map< T, CounterPtr > & maps,
    CounterAdapter factor
)

Iteratively scale the counters in the map maps, by factor factor.

function scale

template <std::size_t array_size>
inline void scale(
    const CounterPtr(&) cnts[array_size],
    CounterAdapter factor
)

Todo: YUCK!

function scale

void scale(
    Histo1DPtr histo,
    CounterAdapter factor
)

Multiplicatively scale the given histogram, histo, by factor factor.

function scale

inline void scale(
    const std::vector< Histo1DPtr > & histos,
    CounterAdapter factor
)

Note: Constness intentional, if weird, to allow passing rvalue refs of smart ptrs (argh)

Todo: Use SFINAE for a generic iterable of Histo1DPtrs

Multiplicatively scale the given histograms, histos, by factor factor.

function scale

template <typename T >
inline void scale(
    const std::map< T, Histo1DPtr > & maps,
    CounterAdapter factor
)

Iteratively scale the histograms in the map, maps, by factor factor.

function scale

template <std::size_t array_size>
inline void scale(
    const Histo1DPtr(&) histos[array_size],
    CounterAdapter factor
)

Todo: YUCK!

function scale

void scale(
    Histo1DPtr histo,
    CounterAdapter factor
)

Multiplicatively scale the given histogram, histo, by factor factor.

function scale

inline void scale(
    const std::vector< Histo1DPtr > & histos,
    CounterAdapter factor
)

Note: Constness intentional, if weird, to allow passing rvalue refs of smart ptrs (argh)

Todo: Use SFINAE for a generic iterable of Histo1DPtrs

Multiplicatively scale the given histograms, histos, by factor factor.

function scale

template <typename T >
inline void scale(
    const std::map< T, Histo1DPtr > & maps,
    CounterAdapter factor
)

Iteratively scale the histograms in the map, maps, by factor factor.

function scale

template <std::size_t array_size>
inline void scale(
    const Histo1DPtr(&) histos[array_size],
    CounterAdapter factor
)

Todo: YUCK!

function normalize

void normalize(
    Histo1DPtr histo,
    CounterAdapter norm =1.0,
    bool includeoverflows =true
)

Normalize the given histogram, histo, to area = norm.

function normalize

inline void normalize(
    const std::vector< Histo1DPtr > & histos,
    CounterAdapter norm =1.0,
    bool includeoverflows =true
)

Note: Constness intentional, if weird, to allow passing rvalue refs of smart ptrs (argh)

Todo: Use SFINAE for a generic iterable of Histo1DPtrs

Normalize the given histograms, histos, to area = norm.

function normalize

template <typename T >
inline void normalize(
    const std::map< T, Histo1DPtr > & maps,
    CounterAdapter norm =1.0,
    bool includeoverflows =true
)

Normalize the histograms in map, maps, to area = norm.

function normalize

template <std::size_t array_size>
inline void normalize(
    const Histo1DPtr(&) histos[array_size],
    CounterAdapter norm =1.0,
    bool includeoverflows =true
)

Todo: YUCK!

function normalize

void normalize(
    Histo2DPtr histo,
    CounterAdapter norm =1.0,
    bool includeoverflows =true
)

Normalize the given histogram, histo, to area = norm.

function normalize

inline void normalize(
    const std::vector< Histo2DPtr > & histos,
    CounterAdapter norm =1.0,
    bool includeoverflows =true
)

Note: Constness intentional, if weird, to allow passing rvalue refs of smart ptrs (argh)

Todo: Use SFINAE for a generic iterable of Histo2DPtrs

Normalize the given histograms, histos, to area = norm.

function normalize

template <typename T >
inline void normalize(
    const std::map< T, Histo2DPtr > & maps,
    CounterAdapter norm =1.0,
    bool includeoverflows =true
)

Normalize the histograms in map, maps, to area = norm.

function normalize

template <std::size_t array_size>
inline void normalize(
    const Histo2DPtr(&) histos[array_size],
    CounterAdapter norm =1.0,
    bool includeoverflows =true
)

Todo: YUCK!

function barchart

void barchart(
    Histo1DPtr h,
    Scatter2DPtr s,
    bool usefocus =false
) const

Note: Assigns to the (already registered) output scatter, s. Preserves the path information of the target.

Todo: Add in-place conversions

Helper for histogram conversion to an inert scatter type

function barchart

void barchart(
    Histo2DPtr h,
    Scatter3DPtr s,
    bool usefocus =false
) const

Note: Assigns to the (already registered) output scatter, s. Preserves the path information of the target.

Helper for histogram conversion to an inert scatter type

function divide

void divide(
    CounterPtr c1,
    CounterPtr c2,
    Scatter1DPtr s
) const

Note: Assigns to the (already registered) output scatter, s. Preserves the path information of the target.

Helper for counter division.

function divide

void divide(
    const YODA::Counter & c1,
    const YODA::Counter & c2,
    Scatter1DPtr s
) const

Note: Assigns to the (already registered) output scatter, s. Preserves the path information of the target.

Helper for histogram division with raw YODA objects.

function divide

void divide(
    Histo1DPtr h1,
    Histo1DPtr h2,
    Scatter2DPtr s
) const

Note: Assigns to the (already registered) output scatter, s. Preserves the path information of the target.

Helper for histogram division.

function divide

void divide(
    const YODA::Histo1D & h1,
    const YODA::Histo1D & h2,
    Scatter2DPtr s
) const

Note: Assigns to the (already registered) output scatter, s. Preserves the path information of the target.

Helper for histogram division with raw YODA objects.

function divide

void divide(
    Histo1DPtr h1,
    Histo1DPtr h2,
    Scatter2DPtr s
) const

Note: Assigns to the (already registered) output scatter, s. Preserves the path information of the target.

Helper for histogram division.

function divide

void divide(
    const YODA::Profile1D & p1,
    const YODA::Profile1D & p2,
    Scatter2DPtr s
) const

Note: Assigns to the (already registered) output scatter, s. Preserves the path information of the target.

Helper for profile histogram division with raw YODA objects.

function divide

void divide(
    Histo1DPtr h1,
    Histo1DPtr h2,
    Scatter2DPtr s
) const

Note: Assigns to the (already registered) output scatter, s. Preserves the path information of the target.

Helper for histogram division.

function divide

void divide(
    const YODA::Histo2D & h1,
    const YODA::Histo2D & h2,
    Scatter3DPtr s
) const

Note: Assigns to the (already registered) output scatter, s. Preserves the path information of the target.

Helper for 2D histogram division with raw YODA objects.

function divide

void divide(
    Histo1DPtr h1,
    Histo1DPtr h2,
    Scatter2DPtr s
) const

Note: Assigns to the (already registered) output scatter, s. Preserves the path information of the target.

Helper for histogram division.

function divide

void divide(
    const YODA::Profile2D & p1,
    const YODA::Profile2D & p2,
    Scatter3DPtr s
) const

Note: Assigns to the (already registered) output scatter, s. Preserves the path information of the target.

Helper for 2D profile histogram division with raw YODA objects

function efficiency

void efficiency(
    Histo1DPtr h1,
    Histo1DPtr h2,
    Scatter2DPtr s
) const

Note: Assigns to the (already registered) output scatter, s. Preserves the path information of the target.

Helper for histogram efficiency calculation.

function efficiency

void efficiency(
    const YODA::Histo1D & h1,
    const YODA::Histo1D & h2,
    Scatter2DPtr s
) const

Note: Assigns to the (already registered) output scatter, s. Preserves the path information of the target.

Helper for histogram efficiency calculation.

function asymm

void asymm(
    Histo1DPtr h1,
    Histo1DPtr h2,
    Scatter2DPtr s
) const

Note: Assigns to the (already registered) output scatter, s. Preserves the path information of the target.

Helper for histogram asymmetry calculation.

function asymm

void asymm(
    const YODA::Histo1D & h1,
    const YODA::Histo1D & h2,
    Scatter2DPtr s
) const

Note: Assigns to the (already registered) output scatter, s. Preserves the path information of the target.

Helper for histogram asymmetry calculation.

function integrate

void integrate(
    Histo1DPtr h,
    Scatter2DPtr s
) const

Note: Assigns to the (already registered) output scatter, s. Preserves the path information of the target.

Helper for converting a differential histo to an integral one.

function integrate

void integrate(
    const Histo1D & h,
    Scatter2DPtr s
) const

Note: Assigns to the (already registered) output scatter, s. Preserves the path information of the target.

Helper for converting a differential histo to an integral one.

function analysisObjects

inline const vector< MultiweightAOPtr > & analysisObjects() const

List of registered analysis data objects.

Protected Functions Documentation

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

function getLog

Log & getLog() const

Get a Log object based on the name() property of the calling analysis object.

function crossSection

double crossSection() const

Get the process cross-section in pb. Throws if this hasn’t been set.

function crossSectionPerEvent

double crossSectionPerEvent() const

Get the process cross-section per generated event in pb. Throws if this hasn’t been set.

function crossSectionError

double crossSectionError() const

Get the process cross-section error in pb. Throws if this hasn’t been set.

function crossSectionErrorPerEvent

double crossSectionErrorPerEvent() const

Get the process cross-section error per generated event in pb. Throws if this hasn’t been set.

function numEvents

size_t numEvents() const

Get the number of events seen (via the analysis handler).

Note: Use in the finalize phase only.

function sumW

double sumW() const

Get the sum of event weights seen (via the analysis handler).

Note: Use in the finalize phase only.

function sumOfWeights

inline double sumOfWeights() const

Alias.

function sumW2

double sumW2() const

Get the sum of squared event weights seen (via the analysis handler).

Note: Use in the finalize phase only.

function histoDir

const std::string histoDir() const

Get the canonical histogram “directory” path for this analysis.

function histoPath

const std::string histoPath(
    const std::string & hname
) const

Get the canonical histogram path for the named histogram in this analysis.

function histoPath

const std::string histoPath(
    unsigned int datasetId,
    unsigned int xAxisId,
    unsigned int yAxisId
) const

Get the canonical histogram path for the numbered histogram in this analysis.

function mkAxisCode

const std::string mkAxisCode(
    unsigned int datasetId,
    unsigned int xAxisId,
    unsigned int yAxisId
) const

Get the internal histogram name for given d, x and y (cf. HepData)

function refData

inline const std::map< std::string, YODA::AnalysisObjectPtr > & refData() const

Get all reference data objects for this analysis.

function refData

template <typename T  =YODA::Scatter2D>
inline const T & refData(
    const string & hname
) const

Todo: SFINAE to ensure that the type inherits from YODA::AnalysisObject?

Get reference data for a named histo

function refData

template <typename T  =YODA::Scatter2D>
inline const T & refData(
    unsigned int datasetId,
    unsigned int xAxisId,
    unsigned int yAxisId
) const

Todo: SFINAE to ensure that the type inherits from YODA::AnalysisObject?

Get reference data for a numbered histo

function book

CounterPtr & book(
    CounterPtr & ,
    const std::string & name
)

Book a counter.

function book

CounterPtr & book(
    CounterPtr & ,
    unsigned int datasetId,
    unsigned int xAxisId,
    unsigned int yAxisId
)

Book a counter, using a path generated from the dataset and axis ID codes

The paper, dataset and x/y-axis IDs will be used to build the histo name in the HepData standard way.

function book

Histo1DPtr & book(
    Histo1DPtr & ,
    const std::string & name,
    size_t nbins,
    double lower,
    double upper
)

Book a 1D histogram with nbins uniformly distributed across the range lower - upper .

function book

Histo1DPtr & book(
    Histo1DPtr & ,
    const std::string & name,
    const std::vector< double > & binedges
)

Book a 1D histogram with non-uniform bins defined by the vector of bin edges binedges .

function book

Histo1DPtr & book(
    Histo1DPtr & ,
    const std::string & name,
    const std::initializer_list< double > & binedges
)

Book a 1D histogram with non-uniform bins defined by the vector of bin edges binedges .

function book

Histo1DPtr & book(
    Histo1DPtr & ,
    const std::string & name,
    const Scatter2D & refscatter
)

Book a 1D histogram with binning from a reference scatter.

function book

Histo1DPtr & book(
    Histo1DPtr & ,
    const std::string & name
)

Book a 1D histogram, using the binnings in the reference data histogram.

function book

Histo1DPtr & book(
    Histo1DPtr & ,
    unsigned int datasetId,
    unsigned int xAxisId,
    unsigned int yAxisId
)

Book a 1D histogram, using the binnings in the reference data histogram.

The paper, dataset and x/y-axis IDs will be used to build the histo name in the HepData standard way.

function book

Histo2DPtr & book(
    Histo2DPtr & ,
    const std::string & name,
    size_t nxbins,
    double xlower,
    double xupper,
    size_t nybins,
    double ylower,
    double yupper
)

Book a 2D histogram with nxbins and nybins uniformly distributed across the ranges xlower - xupper and ylower - yupper respectively along the x- and y-axis.

function book

Histo2DPtr & book(
    Histo2DPtr & ,
    const std::string & name,
    const std::vector< double > & xbinedges,
    const std::vector< double > & ybinedges
)

Book a 2D histogram with non-uniform bins defined by the vectors of bin edges xbinedges and ybinedges.

function book

Histo2DPtr & book(
    Histo2DPtr & ,
    const std::string & name,
    const std::initializer_list< double > & xbinedges,
    const std::initializer_list< double > & ybinedges
)

Book a 2D histogram with non-uniform bins defined by the vectors of bin edges xbinedges and ybinedges.

function book

Histo2DPtr & book(
    Histo2DPtr & ,
    const std::string & name,
    const Scatter3D & refscatter
)

Book a 2D histogram with binning from a reference scatter.

function book

Histo2DPtr & book(
    Histo2DPtr & ,
    const std::string & name
)

Book a 2D histogram, using the binnings in the reference data histogram.

function book

Histo2DPtr & book(
    Histo2DPtr & ,
    unsigned int datasetId,
    unsigned int xAxisId,
    unsigned int yAxisId
)

Book a 2D histogram, using the binnings in the reference data histogram.

The paper, dataset and x/y-axis IDs will be used to build the histo name in the HepData standard way.

function book

Profile1DPtr & book(
    Profile1DPtr & ,
    const std::string & name,
    size_t nbins,
    double lower,
    double upper
)

Book a 1D profile histogram with nbins uniformly distributed across the range lower - upper .

function book

Profile1DPtr & book(
    Profile1DPtr & ,
    const std::string & name,
    const std::vector< double > & binedges
)

Book a 1D profile histogram with non-uniform bins defined by the vector of bin edges binedges .

function book

Profile1DPtr & book(
    Profile1DPtr & ,
    const std::string & name,
    const std::initializer_list< double > & binedges
)

Book a 1D profile histogram with non-uniform bins defined by the vector of bin edges binedges .

function book

Profile1DPtr & book(
    Profile1DPtr & ,
    const std::string & name,
    const Scatter2D & refscatter
)

Book a 1D profile histogram with binning from a reference scatter.

function book

Profile1DPtr & book(
    Profile1DPtr & ,
    const std::string & name
)

Book a 1D profile histogram, using the binnings in the reference data histogram.

function book

Profile1DPtr & book(
    Profile1DPtr & ,
    unsigned int datasetId,
    unsigned int xAxisId,
    unsigned int yAxisId
)

Book a 1D profile histogram, using the binnings in the reference data histogram.

The paper, dataset and x/y-axis IDs will be used to build the histo name in the HepData standard way.

function book

Profile2DPtr & book(
    Profile2DPtr & ,
    const std::string & name,
    size_t nxbins,
    double xlower,
    double xupper,
    size_t nybins,
    double ylower,
    double yupper
)

Book a 2D profile histogram with nxbins and nybins uniformly distributed across the ranges xlower - xupper and ylower - yupper respectively along the x- and y-axis.

function book

Profile2DPtr & book(
    Profile2DPtr & ,
    const std::string & name,
    const std::vector< double > & xbinedges,
    const std::vector< double > & ybinedges
)

Book a 2D profile histogram with non-uniform bins defined by the vectorx of bin edges xbinedges and ybinedges.

function book

Profile2DPtr & book(
    Profile2DPtr & ,
    const std::string & name,
    const std::initializer_list< double > & xbinedges,
    const std::initializer_list< double > & ybinedges
)

Book a 2D profile histogram with non-uniform bins defined by the vectorx of bin edges xbinedges and ybinedges.

function book

Scatter2DPtr & book(
    Scatter2DPtr & s2d,
    const string & hname,
    bool copy_pts =false
)

Book a 2-dimensional data point set with the given name.

Note: Unlike histogram booking, scatter booking by default makes no attempt to use reference data to pre-fill the data object. If you want this, which is sometimes useful e.g. when the x-position is not really meaningful and can’t be extracted from the data, then set the copy_pts parameter to true. This creates points to match the reference data’s x values and errors, but with the y values and errors zeroed… assuming that there is a reference histo with the same name: if there isn’t, an exception will be thrown.

function book

Scatter2DPtr & book(
    Scatter2DPtr & s2d,
    unsigned int datasetId,
    unsigned int xAxisId,
    unsigned int yAxisId,
    bool copy_pts =false
)

Book a 2-dimensional data point set, using the binnings in the reference data histogram.

Note: Unlike histogram booking, scatter booking by default makes no attempt to use reference data to pre-fill the data object. If you want this, which is sometimes useful e.g. when the x-position is not really meaningful and can’t be extracted from the data, then set the copy_pts parameter to true. This creates points to match the reference data’s x values and errors, but with the y values and errors zeroed.

The paper, dataset and x/y-axis IDs will be used to build the histo name in the HepData standard way.

function book

Scatter2DPtr & book(
    Scatter2DPtr & s2d,
    const string & hname,
    size_t npts,
    double lower,
    double upper
)

Book a 2-dimensional data point set with equally spaced x-points in a range.

The y values and errors will be set to 0.

function book

Scatter2DPtr & book(
    Scatter2DPtr & s2d,
    const string & hname,
    const std::vector< double > & binedges
)

Book a 2-dimensional data point set based on provided contiguous “bin edges”.

The y values and errors will be set to 0.

function book

Scatter2DPtr & book(
    Scatter2DPtr & s2d,
    const string & hname,
    const Scatter2D & refscatter
)

Book a 2-dimensional data point set with x-points from an existing scatter and a new path.

function book

Scatter3DPtr & book(
    Scatter3DPtr & s3d,
    const std::string & hname,
    bool copy_pts =false
)

Book a 3-dimensional data point set with the given name.

Note: Unlike histogram booking, scatter booking by default makes no attempt to use reference data to pre-fill the data object. If you want this, which is sometimes useful e.g. when the x-position is not really meaningful and can’t be extracted from the data, then set the copy_pts parameter to true. This creates points to match the reference data’s x values and errors, but with the y values and errors zeroed… assuming that there is a reference histo with the same name: if there isn’t, an exception will be thrown.

function book

Scatter3DPtr & book(
    Scatter3DPtr & s3d,
    unsigned int datasetId,
    unsigned int xAxisId,
    unsigned int yAxisId,
    unsigned int zAxisId,
    bool copy_pts =false
)

Book a 3-dimensional data point set, using the binnings in the reference data histogram.

Note: Unlike histogram booking, scatter booking by default makes no attempt to use reference data to pre-fill the data object. If you want this, which is sometimes useful e.g. when the x-position is not really meaningful and can’t be extracted from the data, then set the copy_pts parameter to true. This creates points to match the reference data’s x values and errors, but with the y values and errors zeroed.

The paper, dataset and x/y-axis IDs will be used to build the histo name in the HepData standard way.

function book

Scatter3DPtr & book(
    Scatter3DPtr & s3d,
    const std::string & hname,
    size_t xnpts,
    double xlower,
    double xupper,
    size_t ynpts,
    double ylower,
    double yupper
)

Book a 3-dimensional data point set with equally spaced x-points in a range.

The y values and errors will be set to 0.

function book

Scatter3DPtr & book(
    Scatter3DPtr & s3d,
    const std::string & hname,
    const std::vector< double > & xbinedges,
    const std::vector< double > & ybinedges
)

Book a 3-dimensional data point set based on provided contiguous “bin edges”.

The y values and errors will be set to 0.

function book

Scatter3DPtr & book(
    Scatter3DPtr & s3d,
    const std::string & hname,
    const Scatter3D & refscatter
)

Book a 3-dimensional data point set with x-points from an existing scatter and a new path.

function defaultWeightIndex

size_t defaultWeightIndex() const

Get the default/nominal weight index.

function getPreload

template <typename YODAT >
inline shared_ptr< YODAT > getPreload(
    string path
) const

Get a preloaded YODA object.

function registerAO

template <typename YODAT >
inline rivet_shared_ptr< Wrapper< YODAT > > registerAO(
    const YODAT & yao
)

Register a new data object, optionally read in preloaded data.

TodoWhat about if/when we want to make the final objects the Scatter or binned persistent type?

function addAnalysisObject

template <typename AO  =MultiweightAOPtr>
inline AO addAnalysisObject(
    const AO & aonew
)

Register a data object in the histogram system.

function removeAnalysisObject

void removeAnalysisObject(
    const std::string & path
)

Unregister a data object from the histogram system (by name)

function removeAnalysisObject

void removeAnalysisObject(
    const MultiweightAOPtr & ao
)

Unregister a data object from the histogram system (by pointer)

function getAnalysisObject

template <typename AO  =MultiweightAOPtr>
inline const AO getAnalysisObject(
    const std::string & aoname
) const

Get a Rivet data object from the histogram system.

function getAnalysisObject

template <typename AO  =MultiweightAOPtr>
inline AO getAnalysisObject(
    const std::string & ananame,
    const std::string & aoname
)

Get a data object from another analysis (e.g. preloaded calibration histogram).

Protected Attributes Documentation

variable m_njet

size_t m_njet;

The number of jets for which histograms are to be initialised.

variable m_jetpro_name

const std::string m_jetpro_name;

The name of the jet projection to be used for this analysis (this projection has to be registered by the derived analysis!)


Updated on 2022-08-07 at 20:17:17 +0100