rivet is hosted by Hepforge, IPPP Durham
Rivet 3.1.6

Tools for flow analyses. More...

#include <Correlators.hh>

Inheritance diagram for Rivet::CumulantAnalysis:
Rivet::Analysis Rivet::ProjectionApplier

Classes

class  ECorrelator
 A helper class to calculate all event averages of correlators. More...
 

Public Types

typedef shared_ptr< ECorrelatorECorrPtr
 Typedef of shared pointer to ECorrelator.
 

Public Member Functions

const pair< int, int > getMaxValues () const
 Get the correct max N and max P for the set of booked correlators.
 
ECorrPtr bookECorrelator (const string name, const vector< int > &h, const YODA::Scatter2D &hIn)
 Book an ECorrelator in the same way as a histogram. More...
 
ECorrPtr bookECorrelator (const string name, const vector< int > &h, vector< double > &binIn)
 Book an ECorrelator in the same way as a histogram. More...
 
ECorrPtr bookECorrelator (const string name, const vector< int > &h1, const vector< int > &h2, vector< double > &binIn)
 Book a gapped ECorrelator with two harmonic vectors. More...
 
ECorrPtr bookECorrelator (const string name, const vector< int > &h1, const vector< int > &h2, const YODA::Scatter2D &hIn)
 Book a gapped ECorrelator with two harmonic vectors. More...
 
ECorrPtr bookECorrelatorGap (const string name, const vector< int > &h, const YODA::Scatter2D &hIn)
 
template<unsigned int N, unsigned int M>
ECorrPtr bookECorrelator (const string name, vector< double > binIn)
 Templated version of correlator booking which takes N desired harmonic and M number of particles, and given bins. More...
 
template<unsigned int N, unsigned int M>
ECorrPtr bookECorrelator (const string name, const YODA::Scatter2D &hIn)
 Templated version of correlator booking which takes N desired harmonic and M number of particles. More...
 
template<unsigned int N, unsigned int M>
ECorrPtr bookECorrelatorGap (const string name, const YODA::Scatter2D &hIn)
 Templated version of gapped correlator booking which takes N desired harmonic and M number of particles. More...
 
 CumulantAnalysis (const string &n)
 Constructor. More...
 
template<typename F >
void fillScatter (Scatter2DPtr h, vector< double > &binx, F func, vector< pair< double, double > > &yErr) const
 Helper method for turning correlators into Scatter2Ds with error estimates. More...
 
template<typename T >
const pair< double, double > sampleError (T func) const
 Selection method for which sample error to use, given in the constructor.
 
void cnTwoInt (Scatter2DPtr h, ECorrPtr e2) const
 Two-particle integrated cn.
 
void vnTwoInt (Scatter2DPtr h, ECorrPtr e2) const
 Two particle integrated vn.
 
void corrPlot (Scatter2DPtr h, ECorrPtr e) const
 Put an event-averaged correlator into a Scatter2D. More...
 
void rawHookIn (YODA::AnalysisObjectPtr yao) final
 
void rawHookOut (vector< MultiweightAOPtr > raos, size_t iW) final
 Transform RAW ECorrelator Profiles to have content before writing them. Overloaded method from Analysis base class should not be overridden further. More...
 
void cnFourInt (Scatter2DPtr h, ECorrPtr e2, ECorrPtr e4) const
 
void vnFourInt (Scatter2DPtr h, ECorrPtr e2, ECorrPtr e4) const
 Four particle integrated vn.
 
void cnSixInt (Scatter2DPtr h, ECorrPtr e2, ECorrPtr e4, ECorrPtr e6) const
 Six particle integrated cn.
 
void vnSixInt (Scatter2DPtr h, ECorrPtr e2, ECorrPtr e4, ECorrPtr e6) const
 Six particle integrated vn.
 
void cnEightInt (Scatter2DPtr h, ECorrPtr e2, ECorrPtr e4, ECorrPtr e6, ECorrPtr e8) const
 Eight particle integrated cn.
 
void vnEightInt (Scatter2DPtr h, ECorrPtr e2, ECorrPtr e4, ECorrPtr e6, ECorrPtr e8) const
 Eight particle integrated vn.
 
void vnTwoDiff (Scatter2DPtr h, ECorrPtr e2Dif) const
 Two particle differential vn.
 
void vnFourDiff (Scatter2DPtr h, ECorrPtr e2Dif, ECorrPtr e4Dif) const
 Four particle differential vn.
 
virtual void init ()
 
virtual void analyze (const Event &event)=0
 
virtual void finalize ()
 
const AnalysisInfoinfo () const
 Get the actual AnalysisInfo object in which all this metadata is stored.
 
AnalysisInfoinfo ()
 
virtual std::string name () const
 Get the name of the analysis. More...
 
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. More...
 
virtual std::string summary () const
 Get a short description of the analysis. More...
 
virtual std::string description () const
 Get a full description of the analysis. More...
 
virtual std::string runInfo () const
 Information about the events needed as input for this analysis. More...
 
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 AnalysissetRequiredBeams (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 AnalysissetRequiredEnergies (const std::vector< std::pair< double, double > > &requiredEnergies)
 Declare the list of valid beam energy pairs, in GeV.
 
const ParticlePairbeams () 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.
 
AnalysisHandlerhandler () const
 Access the controlling AnalysisHandler object.
 
const CentralityProjectiondeclareCentrality (const SingleValueProjection &proj, string calAnaName, string calHistName, const string projName, bool increasing=false)
 Book a CentralityProjection. More...
 
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. More...
 
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 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 scale (Histo2DPtr histo, CounterAdapter factor)
 Multiplicatively scale the given histogram, histo, by factor factor.
 
void scale (const std::vector< Histo2DPtr > &histos, CounterAdapter factor)
 
template<typename T >
void scale (const std::map< T, Histo2DPtr > &maps, CounterAdapter factor)
 Iteratively scale the histograms in the map, maps, by factor factor.
 
template<std::size_t array_size>
void scale (const Histo2DPtr(&histos)[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 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 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 (Profile1DPtr p1, Profile1DPtr p2, Scatter2DPtr s) const
 
void divide (const YODA::Profile1D &p1, const YODA::Profile1D &p2, Scatter2DPtr s) const
 
void divide (Histo2DPtr h1, Histo2DPtr h2, Scatter3DPtr s) const
 
void divide (const YODA::Histo2D &h1, const YODA::Histo2D &h2, Scatter3DPtr s) const
 
void divide (Profile2DPtr p1, Profile2DPtr p2, Scatter3DPtr 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.
 
Accessing options for this Analysis instance.
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) More...
 
template<typename T >
getOption (std::string optname, T def) const
 Get an option for this analysis instance converted to a specific type. More...
 
bool getOption (std::string optname, bool def) const
 Get an option for this analysis instance converted to a bool. More...
 
Projection "getting" functions
std::set< ConstProjectionPtr > getProjections () const
 Get the contained projections, including recursion.
 
bool hasProjection (const std::string &name) const
 Does this applier have a projection registered under the name name?
 
template<typename PROJ >
const PROJ & getProjection (const std::string &name) const
 
const ProjectiongetProjection (const std::string &name) const
 
template<typename PROJ >
const PROJ & get (const std::string &name) const
 

Static Public Member Functions

template<typename T >
static void fillScatter (Scatter2DPtr h, vector< double > &binx, T func)
 Helper method for turning correlators into Scatter2Ds. More...
 
static void nthPow (Scatter2DPtr hOut, const Scatter2DPtr hIn, const double &n, const double &k=1.0)
 Take the n th power of all points in hIn and put the result in hOut. More...
 
static void nthPow (Scatter2DPtr h, const double &n, const double &k=1.0)
 Take the n th power of all points in h, and put the result back in the same Scatter2D. More...
 
template<typename T >
static pair< double, double > sampleVariance (T func)
 Calculate the bootstrapped sample variance. More...
 
template<typename T >
static pair< double, double > sampleEnvelope (T func)
 Calculate the bootstrapped sample envelope. More...
 

Protected Member Functions

LoggetLog () 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). More...
 
double sumW () const
 Get the sum of event weights seen (via the analysis handler). More...
 
double sumOfWeights () const
 Alias.
 
double sumW2 () const
 Get the sum of squared event weights seen (via the analysis handler). More...
 
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<typename T = YODA::Scatter2D>
const T & refData (const string &hname) const
 
template<typename T = YODA::Scatter2D>
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. More...
 
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. More...
 
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. More...
 
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". More...
 
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. More...
 
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. More...
 
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. More...
 
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". More...
 
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. More...
 
template<typename AO = MultiweightAOPtr>
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<typename AO = MultiweightAOPtr>
const AO getAnalysisObject (const std::string &aoname) const
 Get a Rivet data object from the histogram system.
 
template<typename AO = MultiweightAOPtr>
AO getAnalysisObject (const std::string &ananame, const std::string &aoname)
 
Projection registration functions
template<typename PROJ >
const PROJ & declareProjection (const PROJ &proj, const std::string &name)
 Register a contained projection. More...
 
template<typename PROJ >
const PROJ & declare (const PROJ &proj, const std::string &name)
 Register a contained projection (user-facing version) More...
 
template<typename PROJ >
const PROJ & declare (const std::string &name, const PROJ &proj)
 Register a contained projection (user-facing, arg-reordered version) More...
 

Protected Attributes

list< ECorrPtreCorrPtrs
 

Projection applying functions

template<typename PROJ = Projection>
std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & > applyProjection (const Event &evt, const Projection &proj) const
 
template<typename PROJ = Projection>
std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & > applyProjection (const Event &evt, const PROJ &proj) const
 
template<typename PROJ = Projection>
std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & > applyProjection (const Event &evt, const std::string &name) const
 
template<typename PROJ = Projection>
std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & > apply (const Event &evt, const Projection &proj) const
 Apply the supplied projection on event evt (user-facing alias).
 
template<typename PROJ = Projection>
std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & > apply (const Event &evt, const PROJ &proj) const
 Apply the supplied projection on event evt (user-facing alias).
 
template<typename PROJ = Projection>
std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & > apply (const Event &evt, const std::string &name) const
 Apply the supplied projection on event evt (user-facing alias).
 
template<typename PROJ = Projection>
std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & > apply (const std::string &name, const Event &evt) const
 Apply the supplied projection on event evt (convenience arg-reordering alias).
 
void markAsOwned () const
 Mark this object as owned by a proj-handler.
 
ProjectionHandlergetProjHandler () const
 Get a reference to the ProjectionHandler for this thread.
 

Detailed Description

Tools for flow analyses.

The following are helper classes to construct event averaged correlators as well as cummulants and flow coefficents from the basic event correlators defined above. They are all encapsulated in a Cumulants class, which can be used as a(nother) base class for flow analyses, to ensure access.

Constructor & Destructor Documentation

◆ CumulantAnalysis()

Rivet::CumulantAnalysis::CumulantAnalysis ( const string &  n)
inline

Constructor.

Use CumulantAnalysis as base class for the analysis to have access to functionality.

Member Function Documentation

◆ applyProjection() [1/3]

template<typename PROJ = Projection>
std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & > Rivet::ProjectionApplier::applyProjection ( const Event evt,
const PROJ &  proj 
) const
inlineinherited

Apply the supplied projection on event evt.

Deprecated:
Prefer the simpler apply<> form

◆ applyProjection() [2/3]

template<typename PROJ = Projection>
std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & > Rivet::ProjectionApplier::applyProjection ( const Event evt,
const Projection proj 
) const
inlineinherited

Apply the supplied projection on event evt.

Deprecated:
Prefer the simpler apply<> form

◆ applyProjection() [3/3]

template<typename PROJ = Projection>
std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & > Rivet::ProjectionApplier::applyProjection ( const Event evt,
const std::string &  name 
) const
inlineinherited

Apply the named projection on event evt.

Deprecated:
Prefer the simpler apply<> form

References Rivet::ProjectionApplier::name().

◆ barchart()

void Rivet::Analysis::barchart ( Histo2DPtr  h,
Scatter3DPtr  s,
bool  usefocus = false 
) const
inherited

Helper for histogram conversion to an inert scatter type

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

◆ bookECorrelator() [1/6]

ECorrPtr Rivet::CumulantAnalysis::bookECorrelator ( const string  name,
const vector< int > &  h,
const YODA::Scatter2D &  hIn 
)
inline

Book an ECorrelator in the same way as a histogram.

Todo:
Rename to book(ECorrPtr, ...)

References bookECorrelator(), and Rivet::Analysis::name().

Referenced by bookECorrelator(), and bookECorrelatorGap().

◆ bookECorrelator() [2/6]

ECorrPtr Rivet::CumulantAnalysis::bookECorrelator ( const string  name,
const vector< int > &  h,
vector< double > &  binIn 
)
inline

Book an ECorrelator in the same way as a histogram.

Todo:
Rename to book(ECorrPtr, ...)

References Rivet::Analysis::book(), and Rivet::Analysis::name().

◆ bookECorrelator() [3/6]

ECorrPtr Rivet::CumulantAnalysis::bookECorrelator ( const string  name,
const vector< int > &  h1,
const vector< int > &  h2,
const YODA::Scatter2D &  hIn 
)
inline

Book a gapped ECorrelator with two harmonic vectors.

Todo:
Rename to book(ECorrPtr, ...)

References bookECorrelator(), and Rivet::Analysis::name().

◆ bookECorrelator() [4/6]

ECorrPtr Rivet::CumulantAnalysis::bookECorrelator ( const string  name,
const vector< int > &  h1,
const vector< int > &  h2,
vector< double > &  binIn 
)
inline

Book a gapped ECorrelator with two harmonic vectors.

Todo:
Rename to book(ECorrPtr, ...)

References Rivet::Analysis::book(), and Rivet::Analysis::name().

◆ bookECorrelator() [5/6]

template<unsigned int N, unsigned int M>
ECorrPtr Rivet::CumulantAnalysis::bookECorrelator ( const string  name,
const YODA::Scatter2D &  hIn 
)
inline

Templated version of correlator booking which takes N desired harmonic and M number of particles.

Todo:
Rename to book(ECorrPtr, ...)

References bookECorrelator(), Rivet::Correlators::hVec(), and Rivet::Analysis::name().

◆ bookECorrelator() [6/6]

template<unsigned int N, unsigned int M>
ECorrPtr Rivet::CumulantAnalysis::bookECorrelator ( const string  name,
vector< double >  binIn 
)
inline

Templated version of correlator booking which takes N desired harmonic and M number of particles, and given bins.

Todo:
Rename to book(ECorrPtr, ...)

References bookECorrelator(), Rivet::Correlators::hVec(), and Rivet::Analysis::name().

◆ bookECorrelatorGap() [1/2]

ECorrPtr Rivet::CumulantAnalysis::bookECorrelatorGap ( const string  name,
const vector< int > &  h,
const YODA::Scatter2D &  hIn 
)
inline

Shorthand for gapped correlators, splitting the harmonic vector into negative and positive components.

Todo:
Rename to book(ECorrPtr, ...)

References bookECorrelator(), and Rivet::Analysis::name().

◆ bookECorrelatorGap() [2/2]

template<unsigned int N, unsigned int M>
ECorrPtr Rivet::CumulantAnalysis::bookECorrelatorGap ( const string  name,
const YODA::Scatter2D &  hIn 
)
inline

Templated version of gapped correlator booking which takes N desired harmonic and M number of particles.

Todo:
Rename to book(ECorrPtr, ...)

References bookECorrelator(), Rivet::Correlators::hVec(), and Rivet::Analysis::name().

◆ corrPlot()

void Rivet::CumulantAnalysis::corrPlot ( Scatter2DPtr  h,
ECorrPtr  e 
) const
inline

Put an event-averaged correlator into a Scatter2D.

Reduces to cnTwoInt, but better with a proper name.

References cnTwoInt().

◆ crossSectionErrorPerEvent()

double Rivet::Analysis::crossSectionErrorPerEvent ( ) const
protectedinherited

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

◆ crossSectionPerEvent()

double Rivet::Analysis::crossSectionPerEvent ( ) const
protectedinherited

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

◆ declare() [1/2]

template<typename PROJ >
const PROJ & Rivet::ProjectionApplier::declare ( const PROJ &  proj,
const std::string &  name 
)
inlineprotectedinherited

Register a contained projection (user-facing version)

Todo:
Add SFINAE to require that PROJ inherit from Projection

References Rivet::ProjectionApplier::declareProjection(), and Rivet::ProjectionApplier::name().

Referenced by Rivet::CentralEtHCM::CentralEtHCM(), Rivet::CentralityEstimator::CentralityEstimator(), Rivet::ChargedLeptons::ChargedLeptons(), Rivet::ALICE::CLMultiplicity< INNER >::CLMultiplicity(), Rivet::DISDiffHadron::DISDiffHadron(), Rivet::DISFinalState::DISFinalState(), Rivet::DISKinematics::DISKinematics(), Rivet::DISLepton::DISLepton(), Rivet::GammaGammaFinalState::GammaGammaFinalState(), Rivet::GammaGammaKinematics::GammaGammaKinematics(), Rivet::GammaGammaLeptons::GammaGammaLeptons(), Rivet::GeneratedCentrality::GeneratedCentrality(), Rivet::HadronicFinalState::HadronicFinalState(), Rivet::HeavyHadrons::HeavyHadrons(), Rivet::Hemispheres::Hemispheres(), Rivet::InvisibleFinalState::InvisibleFinalState(), Rivet::LeadingParticlesFinalState::LeadingParticlesFinalState(), Rivet::LossyFinalState< FILTER >::LossyFinalState(), Rivet::MC_pPbMinBiasTrigger::MC_pPbMinBiasTrigger(), Rivet::MC_SumETFwdPbCentrality::MC_SumETFwdPbCentrality(), Rivet::ATLAS::MinBiasTrigger::MinBiasTrigger(), Rivet::MissingMomentum::MissingMomentum(), Rivet::NeutralFinalState::NeutralFinalState(), Rivet::NonHadronicFinalState::NonHadronicFinalState(), Rivet::ParisiTensor::ParisiTensor(), Rivet::PercentileProjection::PercentileProjection(), Rivet::PrimaryHadrons::PrimaryHadrons(), Rivet::SmearedJets::SmearedJets(), Rivet::SmearedMET::SmearedMET(), Rivet::SmearedParticles::SmearedParticles(), Rivet::Spherocity::Spherocity(), Rivet::ATLAS::SumET_PB_Centrality::SumET_PB_Centrality(), Rivet::ATLAS::SumET_PBPB_Centrality::SumET_PBPB_Centrality(), Rivet::TauFinder::TauFinder(), Rivet::TriggerCDFRun0Run1::TriggerCDFRun0Run1(), Rivet::TriggerCDFRun2::TriggerCDFRun2(), Rivet::UndressBeamLeptons::UndressBeamLeptons(), Rivet::ALICE::V0AndTrigger::V0AndTrigger(), Rivet::ALICE::V0Trigger< MODE >::V0Trigger(), Rivet::VetoedFinalState::VetoedFinalState(), Rivet::VisibleFinalState::VisibleFinalState(), Rivet::CentralityProjection::add(), Rivet::VetoedFinalState::addVetoOnThisFinalState(), and Rivet::CentralityBinner< T, MDist >::setProjection().

◆ declare() [2/2]

template<typename PROJ >
const PROJ & Rivet::ProjectionApplier::declare ( const std::string &  name,
const PROJ &  proj 
)
inlineprotectedinherited

Register a contained projection (user-facing, arg-reordered version)

Todo:
Add SFINAE to require that PROJ inherit from Projection

References Rivet::ProjectionApplier::declareProjection(), and Rivet::ProjectionApplier::name().

◆ declareProjection()

template<typename PROJ >
const PROJ & Rivet::ProjectionApplier::declareProjection ( const PROJ &  proj,
const std::string &  name 
)
inlineprotectedinherited

Register a contained projection.

The type of the argument is used to instantiate a new projection internally: this new object is applied to events rather than the argument object. Hence you are advised to only use locally-scoped Projection objects in your Projection and Analysis constructors, and to avoid polymorphism (e.g. handling ConcreteProjection via a pointer or reference to type Projection) since this will screw up the internal type management.

Todo:
Add SFINAE to require that PROJ inherit from Projection

References Rivet::ProjectionApplier::name().

Referenced by Rivet::ProjectionApplier::declare().

◆ divide() [1/4]

void Rivet::Analysis::divide ( Histo1DPtr  h1,
Histo1DPtr  h2,
Scatter2DPtr  s 
) const
inherited

Helper for histogram division.

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

◆ divide() [2/4]

void Rivet::Analysis::divide ( Histo2DPtr  h1,
Histo2DPtr  h2,
Scatter3DPtr  s 
) const
inherited

Helper for 2D histogram division.

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

◆ divide() [3/4]

void Rivet::Analysis::divide ( Profile1DPtr  p1,
Profile1DPtr  p2,
Scatter2DPtr  s 
) const
inherited

Helper for profile histogram division.

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

◆ divide() [4/4]

void Rivet::Analysis::divide ( Profile2DPtr  p1,
Profile2DPtr  p2,
Scatter3DPtr  s 
) const
inherited

Helper for 2D profile histogram division.

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

◆ fillScatter() [1/2]

template<typename F >
void Rivet::CumulantAnalysis::fillScatter ( Scatter2DPtr  h,
vector< double > &  binx,
func,
vector< pair< double, double > > &  yErr 
) const
inline

Helper method for turning correlators into Scatter2Ds with error estimates.

Takes h a pointer to the resulting Scatter2D, binx the x-bins, a function func defining the transformation and a vector of errors err. See usage in the methods below. Can also be used directly in the analysis if a user wants to perform an unforseen transformation from correlators to Scatter2D.

◆ fillScatter() [2/2]

template<typename T >
static void Rivet::CumulantAnalysis::fillScatter ( Scatter2DPtr  h,
vector< double > &  binx,
func 
)
inlinestatic

Helper method for turning correlators into Scatter2Ds.

Takes h a pointer to the resulting Scatter2D, binx the x-bins and a function func defining the transformation. Makes no attempt at statistical errors. See usage in the methods below. Can also be used directly in the analysis if a user wants to perform an unforseen transformation from correlators to Scatter2D.

Referenced by cnEightInt(), cnSixInt(), cnTwoInt(), vnFourDiff(), and vnTwoDiff().

◆ get()

template<typename PROJ >
const PROJ & Rivet::ProjectionApplier::get ( const std::string &  name) const
inlineinherited

Get the named projection, specifying return type via a template argument (user-facing alias).

Todo:
Add SFINAE to require that PROJ inherit from Projection

References Rivet::ProjectionApplier::name().

◆ getOption() [1/3]

bool Rivet::Analysis::getOption ( std::string  optname,
bool  def 
) const
inlineinherited

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

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.

Warning
To avoid accidents, strings not matching one of the above patterns will throw a Rivet::ReadError exception.
Todo:
Make this a template-specialisation... needs to be outside the class body?

References Rivet::Analysis::getOption(), and Rivet::toLower().

◆ getOption() [2/3]

std::string Rivet::Analysis::getOption ( std::string  optname,
const char *  def 
)
inlineinherited

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.

◆ getOption() [3/3]

template<typename T >
T Rivet::Analysis::getOption ( std::string  optname,
def 
) const
inlineinherited

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

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

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

◆ getProjection() [1/2]

template<typename PROJ >
const PROJ & Rivet::ProjectionApplier::getProjection ( const std::string &  name) const
inlineinherited

Get the named projection, specifying return type via a template argument.

Todo:
Add SFINAE to require that PROJ inherit from Projection

References Rivet::ProjectionHandler::getProjection(), Rivet::ProjectionApplier::getProjHandler(), Rivet::ProjectionApplier::name(), and Rivet::Kin::p().

Referenced by Rivet::CentralityProjection::compare(), and Rivet::pcmp().

◆ getProjection() [2/2]

const Projection & Rivet::ProjectionApplier::getProjection ( const std::string &  name) const
inlineinherited

Get the named projection (non-templated, so returns as a reference to a Projection base class).

References Rivet::ProjectionHandler::getProjection(), Rivet::ProjectionApplier::getProjHandler(), and Rivet::ProjectionApplier::name().

◆ normalize() [1/2]

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

◆ normalize() [2/2]

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

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

Note
Constness intentional, if weird, to allow passing rvalue refs of smart ptrs (argh)
Todo:
Use SFINAE for a generic iterable of Histo2DPtrs

References Rivet::Analysis::normalize().

◆ nthPow() [1/2]

static void Rivet::CumulantAnalysis::nthPow ( Scatter2DPtr  h,
const double &  n,
const double &  k = 1.0 
)
inlinestatic

Take the n th power of all points in h, and put the result back in the same Scatter2D.

Optionally put a k constant below the root.

◆ nthPow() [2/2]

static void Rivet::CumulantAnalysis::nthPow ( Scatter2DPtr  hOut,
const Scatter2DPtr  hIn,
const double &  n,
const double &  k = 1.0 
)
inlinestatic

Take the n th power of all points in hIn and put the result in hOut.

Optionally put a k constant below the root.

Referenced by vnEightInt(), vnFourInt(), vnSixInt(), and vnTwoInt().

◆ numEvents()

size_t Rivet::Analysis::numEvents ( ) const
protectedinherited

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

Note
Use in the finalize phase only.

◆ rawHookIn()

void Rivet::CumulantAnalysis::rawHookIn ( YODA::AnalysisObjectPtr  yao)
inlinefinalvirtual

Reimplemented from Rivet::Analysis.

◆ rawHookOut()

void Rivet::CumulantAnalysis::rawHookOut ( vector< MultiweightAOPtr >  raos,
size_t  iW 
)
inlinefinalvirtual

Transform RAW ECorrelator Profiles to have content before writing them. Overloaded method from Analysis base class should not be overridden further.

Reimplemented from Rivet::Analysis.

References Rivet::Analysis::name(), Rivet::Analysis::sumW(), and Rivet::Analysis::sumW2().

◆ sampleEnvelope()

template<typename T >
static pair< double, double > Rivet::CumulantAnalysis::sampleEnvelope ( func)
inlinestatic

Calculate the bootstrapped sample envelope.

Calculate the bootstrapped sample envelope for the observable given by correlators and the transformation func.

Referenced by sampleError().

◆ sampleVariance()

template<typename T >
static pair< double, double > Rivet::CumulantAnalysis::sampleVariance ( func)
inlinestatic

Calculate the bootstrapped sample variance.

Calculate the bootstrapped sample variance for the observable given by correlators and the transformation func

Referenced by sampleError().

◆ scale() [1/4]

template<std::size_t array_size>
void Rivet::Analysis::scale ( const Histo1DPtr(&)  histos[array_size],
CounterAdapter  factor 
)
inlineinherited
Todo:
YUCK!

References Rivet::Analysis::scale().

◆ scale() [2/4]

template<std::size_t array_size>
void Rivet::Analysis::scale ( const Histo2DPtr(&)  histos[array_size],
CounterAdapter  factor 
)
inlineinherited
Todo:
YUCK!

References Rivet::Analysis::scale().

◆ scale() [3/4]

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

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

Note
Constness intentional, if weird, to allow passing rvalue refs of smart ptrs (argh)
Todo:
Use SFINAE for a generic iterable of Histo1DPtrs

References Rivet::Analysis::scale().

◆ scale() [4/4]

void Rivet::Analysis::scale ( const std::vector< Histo2DPtr > &  histos,
CounterAdapter  factor 
)
inlineinherited

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

Note
Constness intentional, if weird, to allow passing rvalue refs of smart ptrs (argh)
Todo:
Use SFINAE for a generic iterable of Histo2DPtrs

References Rivet::Analysis::scale().

◆ sumW()

double Rivet::Analysis::sumW ( ) const
protectedinherited

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

Note
Use in the finalize phase only.

Referenced by rawHookOut(), and Rivet::Analysis::sumOfWeights().

◆ sumW2()

double Rivet::Analysis::sumW2 ( ) const
protectedinherited

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

Note
Use in the finalize phase only.

Referenced by rawHookOut().


The documentation for this class was generated from the following file: