class Rivet::Analysis
Rivet::Analysis
This is the base class of all analysis classes in Rivet. More…
#include <Analysis.hh>
Inherits from Rivet::ProjectionApplier
Inherited by Rivet::CumulantAnalysis, Rivet::MC_JetAnalysis, Rivet::MC_JetSplittings, Rivet::MC_ParticleAnalysis
Public Functions
Name | |
---|---|
virtual void | rawHookIn(YODA::AnalysisObjectPtr yao) |
virtual void | rawHookOut(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::string | getOption(std::string optname, string def ="") const Get an option for this analysis instance as a string. |
std::string | getOption(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. |
bool | getOption(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. |
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. |
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. |
virtual void | init() |
virtual void | analyze(const Event & event) =0 |
virtual void | finalize() |
const AnalysisInfo & | info() const Get the actual AnalysisInfo object in which all this metadata is stored. |
virtual std::string | name() const Get the name of the analysis. |
virtual std::string | getRefDataName() const Get name of reference data file, which could be different from plugin name. |
virtual void | setRefDataName(const std::string & ref_data ="") Set name of reference data file, which could be different from plugin name. |
virtual std::string | inspireId() const Get the Inspire ID code for this analysis. |
virtual std::string | spiresId() 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::string | summary() const Get a short description of the analysis. |
virtual std::string | description() const Get a full description of the analysis. |
virtual std::string | runInfo() const Information about the events needed as input for this analysis. |
virtual std::string | experiment() const Experiment which performed and published this analysis. |
virtual std::string | collider() const Collider on which the experiment ran. |
virtual std::string | year() const When the original experimental analysis was published. |
virtual double | luminosityfb() const The integrated luminosity in inverse femtobarn. |
virtual double | luminosity() const The integrated luminosity in inverse picobarn. |
virtual std::vector< std::string > | references() const Journal, and preprint references. |
virtual std::string | bibKey() const BibTeX citation key for this article. |
virtual std::string | bibTeX() const BibTeX citation entry for this article. |
virtual std::string | status() const Whether this analysis is trusted (in any way!) |
virtual std::string | warning() 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 bool | reentrant() const Does this analysis have a reentrant finalize()? |
virtual std::string | refFile() const Location of reference data YODA file. |
virtual std::string | refMatch() const Positive filtering regex for ref-data HepData sync. |
virtual std::string | refUnmatch() const Negative filtering regex for ref-data HepData sync. |
virtual std::string | writerDoublePrecision() 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. |
AnalysisInfo & | info() |
const ParticlePair & | beams() const Incoming beams for this run. |
const PdgIdPair | beamIds() const Incoming beam IDs for this run. |
double | sqrtS() const Centre of mass energy for this run. |
bool | merging() const Check if we are running rivet-merge. |
bool | isCompatible(const ParticlePair & beams) const Check if analysis is compatible with the provided beam particle IDs and energies. |
bool | isCompatible(PdgId beam1, PdgId beam2, double e1, double e2) const Check if analysis is compatible with the provided beam particle IDs and energies. |
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. |
bool | isCompatibleWithSqrtS(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. |
double | dbl(double x) |
double | dbl(const YODA::Counter & c) |
double | dbl(const YODA::Scatter1D & s) |
void | scale(CounterPtr cnt, CounterAdapter factor) Multiplicatively scale the given counter, cnt, by factor factor. |
void | scale(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) |
void | normalize(Histo1DPtr histo, CounterAdapter norm =1.0, bool includeoverflows =true) Normalize the given histogram, histo, to area = norm. |
void | normalize(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) |
void | scale(Histo1DPtr histo, CounterAdapter factor) Multiplicatively scale the given histogram, histo, by factor factor. |
void | scale(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) |
void | normalize(Histo2DPtr histo, CounterAdapter norm =1.0, bool includeoverflows =true) Normalize the given histogram, histo, to area = norm. |
void | normalize(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) |
void | scale(Histo1DPtr histo, CounterAdapter factor) Multiplicatively scale the given histogram, histo, by factor factor. |
void | scale(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) |
void | barchart(Histo1DPtr h, Scatter2DPtr s, bool usefocus =false) const |
void | barchart(Histo2DPtr h, Scatter3DPtr s, bool usefocus =false) const |
void | divide(CounterPtr c1, CounterPtr c2, Scatter1DPtr s) const |
void | divide(const YODA::Counter & c1, const YODA::Counter & c2, Scatter1DPtr s) const |
void | divide(Histo1DPtr h1, Histo1DPtr h2, Scatter2DPtr s) const |
void | divide(const YODA::Histo1D & h1, const YODA::Histo1D & h2, Scatter2DPtr s) const |
void | divide(Histo1DPtr h1, Histo1DPtr h2, Scatter2DPtr s) const |
void | divide(const YODA::Profile1D & p1, const YODA::Profile1D & p2, Scatter2DPtr s) const |
void | divide(Histo1DPtr h1, Histo1DPtr h2, Scatter2DPtr s) const |
void | divide(const YODA::Histo2D & h1, const YODA::Histo2D & h2, Scatter3DPtr s) const |
void | divide(Histo1DPtr h1, Histo1DPtr h2, Scatter2DPtr s) const |
void | divide(const YODA::Profile2D & p1, const YODA::Profile2D & p2, Scatter3DPtr s) const |
void | efficiency(Histo1DPtr h1, Histo1DPtr h2, Scatter2DPtr s) const |
void | efficiency(const YODA::Histo1D & h1, const YODA::Histo1D & h2, Scatter2DPtr s) const |
void | asymm(Histo1DPtr h1, Histo1DPtr h2, Scatter2DPtr s) const |
void | asymm(const YODA::Histo1D & h1, const YODA::Histo1D & h2, Scatter2DPtr s) const |
void | integrate(Histo1DPtr h, Scatter2DPtr s) const |
void | integrate(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. |
double | crossSection() const Get the process cross-section in pb. Throws if this hasn’t been set. |
double | crossSectionPerEvent() const |
double | crossSectionError() const Get the process cross-section error in pb. Throws if this hasn’t been set. |
double | crossSectionErrorPerEvent() const |
size_t | numEvents() const Get the number of events seen (via the analysis handler). |
double | sumW() const Get the sum of event weights seen (via the analysis handler). |
double | sumOfWeights() const Alias. |
double | sumW2() const Get the sum of squared event weights seen (via the analysis handler). |
const std::string | histoDir() const Get the canonical histogram “directory” path for this analysis. |
const std::string | histoPath(const std::string & hname) const Get the canonical histogram path for the named histogram in this analysis. |
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. |
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) |
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_t | defaultWeightIndex() 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. |
void | removeAnalysisObject(const std::string & path) Unregister a data object from the histogram system (by name) |
void | removeAnalysisObject(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) |
Friends
Name | |
---|---|
class | AnalysisHandler The AnalysisHandler is a friend. |
Additional inherited members
Public Functions inherited from Rivet::ProjectionApplier
Name | |
---|---|
ProjectionApplier() Constructor. | |
virtual | ~ProjectionApplier() |
Detailed Description
class Rivet::Analysis;
This is the base class of all analysis classes in Rivet.
There are three virtual functions which should be implemented in base classes:
void init() is called by Rivet before a run is started. Here the analysis class should book necessary histograms. The needed projections should probably rather be constructed in the constructor.
void analyze(const Event&) is called once for each event. Here the analysis class should apply the necessary Projections and fill the histograms.
void finalize() is called after a run is finished. Here the analysis class should do whatever manipulations are necessary on the histograms. Writing the histograms to a file is, however, done by the Rivet class.
Public Functions Documentation
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
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 Analysis
Analysis(
const std::string & name
)
Constructor.
function ~Analysis
inline virtual ~Analysis()
The destructor.
function operator=
Analysis & operator=(
const Analysis &
) =delete
The assignment operator is private and mustdeleted, so it can never be called.
function init
inline virtual void init()
Reimplemented by: Rivet::MC_JetAnalysis::init, Rivet::MC_JetSplittings::init, Rivet::MC_ParticleAnalysis::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
) =0
Reimplemented by: Rivet::MC_JetAnalysis::analyze, Rivet::MC_JetSplittings::analyze, Rivet::MC_ParticleAnalysis::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
inline virtual void finalize()
Reimplemented by: Rivet::MC_JetAnalysis::finalize, Rivet::MC_JetSplittings::finalize, Rivet::MC_ParticleAnalysis::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 info
inline const AnalysisInfo & info() const
Get the actual AnalysisInfo object in which all this metadata is stored.
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
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 info
inline AnalysisInfo & info()
Note: For internal use!
Get the actual AnalysisInfo object in which all this metadata is stored (non-const).
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 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 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(
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 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 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).
Friends
friend AnalysisHandler
friend class AnalysisHandler(
AnalysisHandler
);
The AnalysisHandler is a friend.
Updated on 2022-08-07 at 20:17:16 +0100