rivet is hosted by Hepforge, IPPP Durham

SLD flavour-dependent fragmentation paper. More...

Inheritance diagram for SLD_1999_S3743934:
Collaboration diagram for SLD_1999_S3743934:

List of all members.

Public Member Functions

 SLD_1999_S3743934 ()
 Constructor.
AnalysissetCrossSection (double xs)
 Set the cross section from the generator.
AnalysisHandlerhandler () const
 Access the controlling AnalysisHandler object.
const vector< AnalysisObjectPtr > & analysisObjects () const
 List of registered analysis data objects.
Analysis methods
void analyze (const Event &e)
void init ()
void finalize ()
 Finalize.
Metadata

Metadata is used for querying from the command line and also for building web pages and the analysis pages in the Rivet manual.

const AnalysisInfoinfo () 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 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 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::vector< std::string > todos () const
 Any work to be done on this analysis.
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 AnalysissetRequiredEnergies (const std::vector< std::pair< double, double > > &requiredEnergies)
 Declare the list of valid beam energy pairs, in GeV.
bool needsCrossSection () const
AnalysissetNeedsCrossSection (bool needed=true)
Internal metadata modifying methods
AnalysisInfoinfo ()
 Get the actual AnalysisInfo object in which all this metadata is stored (non-const).
Run conditions
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.
Analysis / beam compatibility testing
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.
Histogram manipulation
Todo:
What follows should really be protected: only public to keep BinnedHistogram happy for now...
void normalize (Histo1DPtr histo, double norm=1.0, bool includeoverflows=true)
void normalize (Histo2DPtr histo, double norm=1.0, bool includeoverflows=true)
void scale (Histo1DPtr histo, double scale)
void scale (Histo2DPtr histo, double scale)
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
Projection "getting" functions
std::set< ConstProjectionPtrgetProjections () const
 Get the contained projections, including recursion.
template<typename PROJ >
const PROJ & getProjection (const std::string &name) const
 Get the named projection, specifying return type via a template argument.
const ProjectiongetProjection (const std::string &name) const
Projection applying functions
template<typename PROJ >
const PROJ & applyProjection (const Event &evt, const PROJ &proj) const
 Apply the supplied projection on event.
template<typename PROJ >
const PROJ & applyProjection (const Event &evt, const Projection &proj) const
 Apply the supplied projection on event.
template<typename PROJ >
const PROJ & applyProjection (const Event &evt, const std::string &name) const
 Apply the named projection on event.

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
size_t numEvents () const
double sumOfWeights () const
ProjectionHandlergetProjHandler () const
 Get a reference to the ProjectionHandler for this thread.
Histogram paths
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 makeAxisCode (unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId) const
 Get the internal histogram name for given d, x and y (cf. HepData)
Histogram reference data
const YODA::Scatter2D & refData (const string &hname) const
const YODA::Scatter2D & refData (unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId) const
template<typename T >
const T & refData (const string &hname) const
template<typename T >
const T & refData (unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId) const
1D histogram booking
Histo1DPtr bookHisto1D (const std::string &name, size_t nbins, double lower, double upper, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
 Book a 1D histogram with nbins uniformly distributed across the range lower - upper .
Histo1DPtr bookHisto1D (const std::string &name, const std::vector< double > &binedges, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
 Book a 1D histogram with non-uniform bins defined by the vector of bin edges binedges .
Histo1DPtr bookHisto1D (const std::string &name, const Scatter2D &refscatter, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
 Book a 1D histogram with binning from a reference scatter.
Histo1DPtr bookHisto1D (const std::string &name, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
 Book a 1D histogram, using the binnings in the reference data histogram.
Histo1DPtr bookHisto1D (unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
2D histogram booking
Histo2DPtr bookHisto2D (const std::string &name, size_t nxbins, double xlower, double xupper, size_t nybins, double ylower, double yupper, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="", const std::string &ztitle="")
Histo2DPtr bookHisto2D (const std::string &name, const std::vector< double > &xbinedges, const std::vector< double > &ybinedges, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="", const std::string &ztitle="")
1D profile histogram booking
Profile1DPtr bookProfile1D (const std::string &name, size_t nbins, double lower, double upper, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
 Book a 1D profile histogram with nbins uniformly distributed across the range lower - upper .
Profile1DPtr bookProfile1D (const std::string &name, const std::vector< double > &binedges, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
 Book a 1D profile histogram with non-uniform bins defined by the vector of bin edges binedges .
Profile1DPtr bookProfile1D (const std::string &name, const Scatter2D &refscatter, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
 Book a 1D profile histogram with binning from a reference scatter.
Profile1DPtr bookProfile1D (const std::string &name, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
 Book a 1D profile histogram, using the binnings in the reference data histogram.
Profile1DPtr bookProfile1D (unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
2D profile histogram booking
Profile2DPtr bookProfile2D (const std::string &name, size_t nxbins, double xlower, double xupper, size_t nybins, double ylower, double yupper, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="", const std::string &ztitle="")
Profile2DPtr bookProfile2D (const std::string &name, const std::vector< double > &xbinedges, const std::vector< double > &ybinedges, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="", const std::string &ztitle="")
2D scatter booking

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

Scatter2DPtr bookScatter2D (const std::string &name, bool copy_pts=false, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
 Book a 2-dimensional data point set with the given name.
Scatter2DPtr bookScatter2D (unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId, bool copy_pts=false, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
 Book a 2-dimensional data point set, using the binnings in the reference data histogram.
Scatter2DPtr bookScatter2D (const std::string &name, size_t npts, double lower, double upper, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
 Book a 2-dimensional data point set with equally spaced x-points in a range.
Scatter2DPtr bookScatter2D (const std::string &hname, const std::vector< double > &binedges, const std::string &title, const std::string &xtitle, const std::string &ytitle)
 Book a 2-dimensional data point set based on provided contiguous "bin edges".
Data object registration, retrieval, and removal
void addAnalysisObject (AnalysisObjectPtr ao)
 Register a data object in the histogram system.
template<typename AO >
const shared_ptr< AO > getAnalysisObject (const std::string &name) const
template<typename AO >
shared_ptr< AO > getAnalysisObject (const std::string &name)
void removeAnalysisObject (const std::string &path)
 Unregister a data object from the histogram system (by name)
void removeAnalysisObject (AnalysisObjectPtr ao)
 Unregister a data object from the histogram system (by pointer)
const Histo1DPtr getHisto1D (const std::string &name) const
 Get a named Histo1D object from the histogram system.
Histo1DPtr getHisto1D (const std::string &name)
 Get a named Histo1D object from the histogram system (non-const)
const Histo1DPtr getHisto1D (unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId) const
 Get a Histo1D object from the histogram system by axis ID codes (non-const)
Histo1DPtr getHisto1D (unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId)
 Get a Histo1D object from the histogram system by axis ID codes (non-const)
const Profile1DPtr getProfile1D (const std::string &name) const
 Get a named Profile1D object from the histogram system.
Profile1DPtr getProfile1D (const std::string &name)
 Get a named Profile1D object from the histogram system (non-const)
const Profile1DPtr getProfile1D (unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId) const
 Get a Profile1D object from the histogram system by axis ID codes (non-const)
Profile1DPtr getProfile1D (unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId)
 Get a Profile1D object from the histogram system by axis ID codes (non-const)
const Scatter2DPtr getScatter2D (const std::string &name) const
 Get a named Scatter2D object from the histogram system.
Scatter2DPtr getScatter2D (const std::string &name)
 Get a named Scatter2D object from the histogram system (non-const)
const Scatter2DPtr getScatter2D (unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId) const
 Get a Scatter2D object from the histogram system by axis ID codes (non-const)
Scatter2DPtr getScatter2D (unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId)
 Get a Scatter2D object from the histogram system by axis ID codes (non-const)
Projection registration functions
template<typename PROJ >
const PROJ & addProjection (const PROJ &proj, const std::string &name)
const Projection_addProjection (const Projection &proj, const std::string &name)
 Untemplated function to do the work...

Protected Attributes

bool _allowProjReg
 Flag to forbid projection registration in analyses until the init phase.

Private Attributes

double _SumOfudsWeights
double _SumOfcWeights
double _SumOfbWeights
vector< double > _multPiPlus
vector< double > _multKPlus
vector< double > _multK0
vector< double > _multKStar0
vector< double > _multPhi
vector< double > _multProton
vector< double > _multLambda
Histo1DPtr _h_XpPiPlusSig
Histo1DPtr _h_XpPiPlusN
Histo1DPtr _h_XpKPlusSig
Histo1DPtr _h_XpKPlusN
Histo1DPtr _h_XpProtonSig
Histo1DPtr _h_XpProtonN
Histo1DPtr _h_XpChargedN
Histo1DPtr _h_XpK0N
Histo1DPtr _h_XpLambdaN
Histo1DPtr _h_XpKStar0N
Histo1DPtr _h_XpPhiN
Histo1DPtr _h_XpPiPlusLight
Histo1DPtr _h_XpPiPlusCharm
Histo1DPtr _h_XpPiPlusBottom
Histo1DPtr _h_XpKPlusLight
Histo1DPtr _h_XpKPlusCharm
Histo1DPtr _h_XpKPlusBottom
Histo1DPtr _h_XpKStar0Light
Histo1DPtr _h_XpKStar0Charm
Histo1DPtr _h_XpKStar0Bottom
Histo1DPtr _h_XpProtonLight
Histo1DPtr _h_XpProtonCharm
Histo1DPtr _h_XpProtonBottom
Histo1DPtr _h_XpLambdaLight
Histo1DPtr _h_XpLambdaCharm
Histo1DPtr _h_XpLambdaBottom
Histo1DPtr _h_XpK0Light
Histo1DPtr _h_XpK0Charm
Histo1DPtr _h_XpK0Bottom
Histo1DPtr _h_XpPhiLight
Histo1DPtr _h_XpPhiCharm
Histo1DPtr _h_XpPhiBottom
Histo1DPtr _temp_XpChargedN1
Histo1DPtr _temp_XpChargedN2
Histo1DPtr _temp_XpChargedN3
Histo1DPtr _temp_XpKPlusCharm
Histo1DPtr _temp_XpKPlusLight
Histo1DPtr _temp_XpKStar0Charm
Histo1DPtr _temp_XpKStar0Light
Histo1DPtr _temp_XpProtonCharm
Histo1DPtr _temp_XpProtonLight
Histo1DPtr _h_RPiPlus
Histo1DPtr _h_RPiMinus
Histo1DPtr _h_RKS0
Histo1DPtr _h_RKSBar0
Histo1DPtr _h_RKPlus
Histo1DPtr _h_RKMinus
Histo1DPtr _h_RProton
Histo1DPtr _h_RPBar
Histo1DPtr _h_RLambda
Histo1DPtr _h_RLBar
Scatter2DPtr _s_Xp_PiPl_Ch
Scatter2DPtr _s_Xp_KPl_Ch
Scatter2DPtr _s_Xp_Pr_Ch
Scatter2DPtr _s_Xp_PiPlCh_PiPlLi
Scatter2DPtr _s_Xp_PiPlBo_PiPlLi
Scatter2DPtr _s_Xp_KPlCh_KPlLi
Scatter2DPtr _s_Xp_KPlBo_KPlLi
Scatter2DPtr _s_Xp_KS0Ch_KS0Li
Scatter2DPtr _s_Xp_KS0Bo_KS0Li
Scatter2DPtr _s_Xp_PrCh_PrLi
Scatter2DPtr _s_Xp_PrBo_PrLi
Scatter2DPtr _s_Xp_LaCh_LaLi
Scatter2DPtr _s_Xp_LaBo_LaLi
Scatter2DPtr _s_Xp_K0Ch_K0Li
Scatter2DPtr _s_Xp_K0Bo_K0Li
Scatter2DPtr _s_Xp_PhiCh_PhiLi
Scatter2DPtr _s_Xp_PhiBo_PhiLi
Scatter2DPtr _s_PiM_PiP
Scatter2DPtr _s_KSBar0_KS0
Scatter2DPtr _s_KM_KP
Scatter2DPtr _s_Pr_PBar
Scatter2DPtr _s_Lam_LBar

Detailed Description

SLD flavour-dependent fragmentation paper.

Author:
Peter Richardson

Definition at line 15 of file SLD_1999_S3743934.cc.


Constructor & Destructor Documentation

SLD_1999_S3743934 ( ) [inline]

Constructor.

Definition at line 19 of file SLD_1999_S3743934.cc.

      : Analysis("SLD_1999_S3743934"),
        _SumOfudsWeights(0.), _SumOfcWeights(0.),
        _SumOfbWeights(0.),
        _multPiPlus(4,0.),_multKPlus(4,0.),_multK0(4,0.),
        _multKStar0(4,0.),_multPhi(4,0.),
        _multProton(4,0.),_multLambda(4,0.)
    {    }

Member Function Documentation

const Projection & _addProjection ( const Projection proj,
const std::string &  name 
) [protected, inherited]

Untemplated function to do the work...

Definition at line 33 of file ProjectionApplier.cc.

References ProjectionApplier::_allowProjReg, ProjectionApplier::getProjHandler(), ProjectionApplier::name(), Projection::name(), and ProjectionHandler::registerProjection().

Referenced by ProjectionApplier::addProjection().

                                                                             {
    if (!_allowProjReg) {
      cerr << "Trying to register projection '"
           << proj.name() << "' before init phase in '" << this->name() << "'." << endl;
      exit(2);
    }
    const Projection& reg = getProjHandler().registerProjection(*this, proj, name);
    return reg;
  }
void addAnalysisObject ( AnalysisObjectPtr  ao) [protected, inherited]

Register a data object in the histogram system.

Todo:
2D versions of integrate... defined how, exactly?!?

Definition at line 721 of file Analysis.cc.

References Analysis::_analysisobjects.

Referenced by Analysis::bookHisto1D(), Analysis::bookHisto2D(), Analysis::bookProfile1D(), Analysis::bookProfile2D(), Analysis::bookScatter2D(), and H1_1995_S3167097::finalize().

                                                       {
    _analysisobjects.push_back(ao);
  }
const PROJ& addProjection ( const PROJ &  proj,
const std::string &  name 
) [inline, protected, inherited]

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.

Definition at line 116 of file ProjectionApplier.hh.

References ProjectionApplier::_addProjection().

Referenced by FastJets::_initBase(), VetoedFinalState::addVetoOnThisFinalState(), BeamThrust::BeamThrust(), CDF_2009_S8057893::CDF_2009_S8057893::init(), CentralEtHCM::CentralEtHCM(), ChargedFinalState::ChargedFinalState(), ChargedLeptons::ChargedLeptons(), DISFinalState::DISFinalState(), DISKinematics::DISKinematics(), DISLepton::DISLepton(), DressedLeptons::DressedLeptons(), FinalState::FinalState(), FoxWolframMoments::FoxWolframMoments(), FParameter::FParameter(), HadronicFinalState::HadronicFinalState(), HeavyHadrons::HeavyHadrons(), Hemispheres::Hemispheres(), IdentifiedFinalState::IdentifiedFinalState(), CMS_2010_S8547297::init(), CMS_2010_S8656010::init(), CMS_2015_I1327224::init(), ATLAS_2010_S8894728::init(), ALICE_2012_I1181770::init(), ATLAS_2011_S8994773::init(), CMS_2011_S8950903::init(), CMS_2012_PAS_QCD_11_010::init(), CMS_2015_I1356998::init(), ATLAS_2010_CONF_2010_049::init(), CMS_2011_S8941262::init(), CMS_2011_S8968497::init(), CMS_2011_S8973270::init(), CMS_2012_I1184941::init(), CMS_2012_I1090423::init(), CMS_2012_I1193338::init(), ATLAS_2014_I1298811::init(), CMSTOTEM_2014_I1294140::init(), ALICE_2011_S8909580::init(), ATLAS_2011_I894867::init(), ALICE_2014_I1300380::init(), LHCB_2013_I1208105::init(), CDF_2007_S7057202::init(), TOTEM_2012_I1115294::init(), TOTEM_2014_I1328627::init(), CMS_2012_I1087342::init(), CMS_2011_S9086218::init(), CMS_2011_S9215166::init(), ATLAS_2014_I1282441::init(), ALICE_2011_S8945144::init(), ATLAS_2015_I1387176::init(), ALICE_2015_I1357424::init(), ATLAS_2012_I1091481::init(), LHCF_2012_I1115479::init(), MC_ELECTRONS::init(), MC_MUONS::init(), MC_TAUS::init(), ATLAS_2011_I930220::init(), ATLAS_2011_S9002537::init(), CMS_2011_I954992::init(), TOTEM_2012_002::init(), CMS_2011_S8978280::init(), ATLAS_2010_S8591806::init(), CMS_2011_S9088458::init(), CMS_2013_I1265659::init(), CMS_2015_I1346843::init(), CMS_2015_I1384119::init(), D0_2011_I895662::init(), CMS_2011_S8957746::init(), MC_JETTAGS::init(), ATLAS_2012_I1188891::init(), CDF_2012_NOTE10874::init(), CMS_2013_I1208923::init(), CMS_2013_I1273574::init(), D0_2010_S8570965::init(), ATLAS_2011_I925932::init(), CDF_1997_S3541940::init(), ATLAS_2012_I1124167::init(), STAR_2006_S6500200::init(), STAR_2008_S7993412::init(), UA5_1987_S1640666::init(), CMS_2013_I1256943::init(), CMS_QCD_10_024::init(), CDF_1993_S2742446::init(), ARGUS_1993_S2789213::init(), MC_HINC::init(), CDF_2000_S4155203::init(), MC_JETS::init(), MC_KTSPLITTINGS::init(), CDF_2006_S6450792::init(), CDF_2005_S6080774::init(), SFM_1984_S1178091::init(), CMS_2013_I1258128::init(), CMS_2013_I1261026::init(), CMS_2014_I1298810::init(), ATLAS_2011_S9128077::init(), CMS_2015_I1310737::init(), D0_2000_S4480767::init(), ATLAS_2014_I1319490::init(), BABAR_2007_S7266081::init(), BELLE_2008_I786560::init(), LHCB_2012_I1208102::init(), MC_HJETS::init(), ARGUS_1993_S2669951::init(), MC_WWINC::init(), CDF_2008_S7782535::init(), MC_ZZINC::init(), CDF_2008_S8093652::init(), STAR_2006_S6870392::init(), ATLAS_2012_I1204447::init(), ATLAS_2013_I1190187::init(), UA5_1989_S1926373::init(), CMS_2013_I1209721::init(), CMS_2015_I1385107::init(), D0_2008_S6879055::init(), UA5_1982_S875503::init(), ATLAS_2013_I1243871::init(), ATLAS_2014_I1268975::init(), CMS_2013_I1272853::init(), D0_2000_I499943::init(), ATLAS_2014_I1325553::init(), ATLAS_2014_I1327229::init(), ATLAS_2013_I1216670::init(), E735_1998_S3905616::init(), MC_DIPHOTON::init(), MC_DIJET::init(), ATLAS_2011_I944826::init(), MC_WWKTSPLITTINGS::init(), MC_ZZJETS::init(), ALEPH_1991_S2435284::init(), ATLAS_2012_I1183818::init(), PDG_TAUS::init(), ATLAS_2012_I1204784::init(), MC_ZZKTSPLITTINGS::init(), ATLAS_2011_S9035664::init(), CMS_2012_I1102908::init(), ATLAS_2013_I1219109::init(), CDF_1988_S1865951::init(), CDF_1990_S2089246::init(), MC_HKTSPLITTINGS::init(), MC_PHOTONINC::init(), ATLAS_2011_S8924791::init(), CDF_2005_S6217184::init(), MC_WKTSPLITTINGS::init(), MC_ZINC::init(), OPAL_1995_S3198391::init(), OPAL_1996_S3257789::init(), OPAL_1997_S3608263::init(), OPAL_1998_S3702294::init(), OPAL_2000_S4418603::init(), MC_ZKTSPLITTINGS::init(), ALEPH_1996_S3196992::init(), ATLAS_2010_S8817804::init(), OPAL_1998_S3749908::init(), ALEPH_2002_S4823664::init(), D0_1996_S3324664::init(), D0_2007_S7075677::init(), D0_2009_S8202443::init(), D0_2010_S8821313::init(), DELPHI_1999_S3960137::init(), EXAMPLE_CUTS::init(), UA5_1986_S1583476::init(), CDF_1994_S2952106::init(), MC_IDENTIFIED::init(), ATLAS_2011_I945498::init(), MC_PHOTONJETS::init(), MC_PHOTONKTSPLITTINGS::init(), ATLAS_2011_I954993::init(), MC_WINC::init(), CMS_2012_I1107658::init(), MC_ZJETS::init(), D0_2008_S7554427::init(), D0_2008_S7863608::init(), MC_WWJETS::init(), D0_2010_S8671338::init(), H1_1995_S3167097::init(), LHCB_2011_I919315::init(), ATLAS_2011_S9212353::init(), MC_LEADJETUE::init(), ATLAS_2014_I1300647::init(), ATLAS_2014_I1307756::init(), ATLAS_2014_I1306615::init(), D0_2001_S4674421::init(), CDF_2008_S7828950::init(), MC_WJETS::init(), ATLAS_2012_CONF_2012_104::init(), ATLAS_2012_I1119557::init(), MC_GENERIC::init(), ATLAS_2011_S9131140::init(), MC_TTBAR::init(), ATLAS_2012_I1180197::init(), UA1_1990_S2044935::init(), CDF_2008_S7540469::init(), D0_2008_S7837160::init(), ATLAS_2012_CONF_2012_105::init(), ZEUS_2001_S4815815::init(), ATLAS_2012_CONF_2012_109::init(), ATLAS_2013_I1217863_Z::init(), ALEPH_1999_S4193598::init(), STAR_2009_UE_HELEN::init(), ALICE_2010_S8624100::init(), DELPHI_1995_S3137023::init(), ATLAS_2013_I1244522::init(), ATLAS_2012_I1095236::init(), ATLAS_2011_CONF_2011_098::init(), OPAL_1997_S3396100::init(), ATLAS_2012_I1126136::init(), CDF_2008_S8095620::init(), ATLAS_2015_I1345452::init(), ALEPH_2004_S5765862::init(), JADE_OPAL_2000_S4300807::init(), ATLAS_2011_I926145::init(), CDF_1996_S3108457::init(), MC_QCD_PARTONS::init(), ATLAS_2012_CONF_2012_103::init(), ATLAS_2012_I1186556::init(), STAR_2006_S6860818::init(), ATLAS_2013_I1217863_W::init(), CMS_2012_I941555::init(), CMS_2014_I1303894::init(), D0_1996_S3214044::init(), EXAMPLE::init(), ATLAS_2011_S8983313::init(), JADE_1998_S3612880::init(), LHCB_2013_I1218996::init(), CDF_1996_S3349578::init(), MC_HFJETS::init(), CDF_2009_NOTE_9936::init(), ALICE_2010_S8625980::init(), ALICE_2010_S8706239::init(), ATLAS_2012_I1125961::init(), CMS_2013_I1218372::init(), ATLAS_2012_I1112263::init(), ATLAS_2014_I1288706::init(), ATLAS_2012_CONF_2012_001::init(), ATLAS_2012_I1125575::init(), ATLAS_2011_S9212183::init(), ATLAS_2012_I1190891::init(), CDF_1998_S3618439::init(), ATLAS_2013_I1230812::init(), CDF_2009_S8436959::init(), CDF_2009_S8383952::init(), CDF_2001_S4563131::init(), D0_2009_S8349509::init(), D0_2009_S8320160::init(), CDF_2000_S4266730::init(), ATLAS_2013_I1263495::init(), MC_SUSY::init(), ATLAS_2011_S8971293::init(), ATLAS_2014_I1298023::init(), D0_2010_S8566488::init(), ALEPH_2001_S4656318::init(), SLD_2002_S4869273::init(), ATLAS_2010_S8919674::init(), CDF_2001_S4517016::init(), D0_2006_S6438750::init(), ATLAS_2014_I1307243::init(), ATLAS_2015_CONF_2015_041::init(), DELPHI_2002_069_CONF_603::init(), ATLAS_2012_I1082936::init(), MC_PHOTONS::init(), ATLAS_2011_I921594::init(), SLD_1996_S3398250::init(), ATLAS_2014_I1326641::init(), UA5_1988_S1867512::init(), LHCB_2014_I1281685::init(), LHCB_2012_I1119400::init(), LHCB_2011_I917009::init(), CDF_1996_S3418421::init(), ATLAS_2014_I1306294::init(), MC_WPOL::init(), CDF_2008_S7541902::init(), D0_2008_S7662670::init(), ATLAS_2011_S9108483::init(), CDF_2006_S6653332::init(), ATLAS_2014_I1304688::init(), DELPHI_2000_S4328825::init(), ATLAS_2011_CONF_2011_090::init(), OPAL_2002_S5361494::init(), ATLAS_2012_I1082009::init(), ATLAS_2011_S9225137::init(), ATLAS_2011_S9019561::init(), TASSO_1990_S2148048::init(), ATLAS_2012_I946427::init(), ATLAS_2012_I943401::init(), ATLAS_2012_I1199269::init(), ATLAS_2012_I1117704::init(), CMS_2013_I1224539_WJET::init(), ATLAS_2012_I1083318::init(), ATLAS_2012_I1084540::init(), ATLAS_2012_CONF_2012_153::init(), CMS_2013_I1224539_DIJET::init(), CDF_2009_S8233977::init(), ATLAS_2013_I1217867::init(), ATLAS_2015_I1364361::init(), CMS_2013_I1224539_ZJET::init(), CDF_2010_S8591881_DY::init(), CDF_2010_S8591881_QCD::init(), D0_2004_S5992206::init(), ATLAS_2010_S8914702::init(), ATLAS_2014_I1312627::init(), ATLAS_2010_S8918562::init(), ATLAS_2011_S9120807::init(), CDF_2001_S4751469::init(), D0_2008_S7719523::init(), ATLAS_2011_S9041966::init(), ATLAS_2012_I1094568::init(), DELPHI_1996_S3430090::init(), ALEPH_1996_S3486095::init(), ATLAS_2012_I1093738::init(), OPAL_2004_S6132243::init(), OPAL_1994_S2927284::init(), BELLE_2013_I1216515::init(), STAR_2008_S7869363::init(), ATLAS_2011_S9126244::init(), BABAR_2007_S6895344::init(), MC_VH2BB::init(), BABAR_2005_S6181155::init(), BELLE_2001_S4598261::init(), ATLAS_2011_I919017::init(), OPAL_2001_S4553896::init(), BABAR_2013_I1238276::init(), ATLAS_2012_I1203852::init(), CDF_2004_S5839831::init(), BABAR_2003_I593379::init(), ATLAS_2012_I1094061::init(), ARGUS_1993_S2653028::init(), CLEO_2004_S5809304::init(), OPAL_1998_S3780481::init(), ATLAS_2012_I1093734::init(), OPAL_1993_S2692198::init(), ATLAS_2014_I1279489::init(), ATLAS_2014_I1282447::init(), ATLAS_2012_I1094564::init(), H1_1994_S2919893::init(), H1_2000_S4129130::init(), SLD_2004_S5693039::init(), SLD_1999_S3743934::init(), PDG_HADRON_MULTIPLICITIES::init(), PDG_HADRON_MULTIPLICITIES_RATIOS::init(), JetAlg::JetAlg(), JetShape::JetShape(), LeadingParticlesFinalState::LeadingParticlesFinalState(), LossyFinalState< ConstRandomFilter >::LossyFinalState(), MergedFinalState::MergedFinalState(), MissingMomentum::MissingMomentum(), NeutralFinalState::NeutralFinalState(), NonHadronicFinalState::NonHadronicFinalState(), ParisiTensor::ParisiTensor(), PrimaryHadrons::PrimaryHadrons(), PromptFinalState::PromptFinalState(), Sphericity::Sphericity(), Spherocity::Spherocity(), TauFinder::TauFinder(), Thrust::Thrust(), TriggerCDFRun0Run1::TriggerCDFRun0Run1(), TriggerCDFRun2::TriggerCDFRun2(), TriggerUA5::TriggerUA5(), VetoedFinalState::VetoedFinalState(), VisibleFinalState::VisibleFinalState(), WFinder::WFinder(), and ZFinder::ZFinder().

                                                                       {
      const Projection& reg = _addProjection(proj, name);
      const PROJ& rtn = dynamic_cast<const PROJ&>(reg);
      return rtn;
    }
const vector<AnalysisObjectPtr>& analysisObjects ( ) const [inline, inherited]

List of registered analysis data objects.

Definition at line 722 of file Analysis.hh.

References Analysis::_analysisobjects.

Referenced by Analysis::getAnalysisObject().

                                                             {
      return _analysisobjects;
    }
void analyze ( const Event event) [inline, virtual]

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.

Todo:
Can we make this based on hadron flavour instead?

Implements Analysis.

Definition at line 32 of file SLD_1999_S3743934.cc.

References SLD_1999_S3743934::_h_RKMinus, SLD_1999_S3743934::_h_RKPlus, SLD_1999_S3743934::_h_RKS0, SLD_1999_S3743934::_h_RKSBar0, SLD_1999_S3743934::_h_RLambda, SLD_1999_S3743934::_h_RLBar, SLD_1999_S3743934::_h_RPBar, SLD_1999_S3743934::_h_RPiMinus, SLD_1999_S3743934::_h_RPiPlus, SLD_1999_S3743934::_h_RProton, SLD_1999_S3743934::_h_XpChargedN, SLD_1999_S3743934::_h_XpK0Bottom, SLD_1999_S3743934::_h_XpK0Charm, SLD_1999_S3743934::_h_XpK0Light, SLD_1999_S3743934::_h_XpK0N, SLD_1999_S3743934::_h_XpKPlusBottom, SLD_1999_S3743934::_h_XpKPlusCharm, SLD_1999_S3743934::_h_XpKPlusLight, SLD_1999_S3743934::_h_XpKPlusN, SLD_1999_S3743934::_h_XpKStar0Bottom, SLD_1999_S3743934::_h_XpKStar0Charm, SLD_1999_S3743934::_h_XpKStar0Light, SLD_1999_S3743934::_h_XpKStar0N, SLD_1999_S3743934::_h_XpLambdaBottom, SLD_1999_S3743934::_h_XpLambdaCharm, SLD_1999_S3743934::_h_XpLambdaLight, SLD_1999_S3743934::_h_XpLambdaN, SLD_1999_S3743934::_h_XpPhiBottom, SLD_1999_S3743934::_h_XpPhiCharm, SLD_1999_S3743934::_h_XpPhiLight, SLD_1999_S3743934::_h_XpPhiN, SLD_1999_S3743934::_h_XpPiPlusBottom, SLD_1999_S3743934::_h_XpPiPlusCharm, SLD_1999_S3743934::_h_XpPiPlusLight, SLD_1999_S3743934::_h_XpPiPlusN, SLD_1999_S3743934::_h_XpProtonBottom, SLD_1999_S3743934::_h_XpProtonCharm, SLD_1999_S3743934::_h_XpProtonLight, SLD_1999_S3743934::_h_XpProtonN, SLD_1999_S3743934::_multK0, SLD_1999_S3743934::_multKPlus, SLD_1999_S3743934::_multKStar0, SLD_1999_S3743934::_multLambda, SLD_1999_S3743934::_multPhi, SLD_1999_S3743934::_multPiPlus, SLD_1999_S3743934::_multProton, SLD_1999_S3743934::_SumOfbWeights, SLD_1999_S3743934::_SumOfcWeights, SLD_1999_S3743934::_SumOfudsWeights, SLD_1999_S3743934::_temp_XpChargedN1, SLD_1999_S3743934::_temp_XpChargedN2, SLD_1999_S3743934::_temp_XpChargedN3, SLD_1999_S3743934::_temp_XpKPlusCharm, SLD_1999_S3743934::_temp_XpKPlusLight, SLD_1999_S3743934::_temp_XpKStar0Charm, SLD_1999_S3743934::_temp_XpKStar0Light, SLD_1999_S3743934::_temp_XpProtonCharm, SLD_1999_S3743934::_temp_XpProtonLight, Particle::abspid(), Analysis::beams(), Rivet::PID::BQUARK, Rivet::PID::CQUARK, Vector3::dot(), Rivet::dot(), Rivet::PID::DQUARK, ParticleBase::E(), Rivet::PID::K0L, Rivet::PID::K0S, Rivet::PID::KPLUS, Rivet::PID::LAMBDA, Vector< N >::mod(), MSG_DEBUG, ParticleBase::p3(), InitialQuarks::particles(), ParticleFinder::particles(), Particle::pid(), Rivet::PID::PIPLUS, Rivet::PID::PROTON, Rivet::PID::SQUARK, Rivet::PID::UQUARK, and vetoEvent.

                                 {
      // First, veto on leptonic events by requiring at least 4 charged FS particles
      const FinalState& fs = applyProjection<FinalState>(e, "FS");
      const size_t numParticles = fs.particles().size();

      // Even if we only generate hadronic events, we still need a cut on numCharged >= 2.
      if (numParticles < 2) {
        MSG_DEBUG("Failed ncharged cut");
        vetoEvent;
      }
      MSG_DEBUG("Passed ncharged cut");
      // Get event weight for histo filling
      const double weight = e.weight();

      // Get beams and average beam momentum
      const ParticlePair& beams = applyProjection<Beam>(e, "Beams").beams();
      const double meanBeamMom = ( beams.first.p3().mod() +
                                   beams.second.p3().mod() ) / 2.0;
      MSG_DEBUG("Avg beam momentum = " << meanBeamMom);
      int flavour = 0;
      const InitialQuarks& iqf = applyProjection<InitialQuarks>(e, "IQF");

      // If we only have two quarks (qqbar), just take the flavour.
      // If we have more than two quarks, look for the highest energetic q-qbar pair.
      /// @todo Can we make this based on hadron flavour instead?
      Particles quarks;
      if (iqf.particles().size() == 2) {
        flavour = iqf.particles().front().abspid();
        quarks = iqf.particles();
      } else {
        map<int, Particle > quarkmap;
        foreach (const Particle& p, iqf.particles()) {
          if (quarkmap.find(p.pid()) == quarkmap.end()) quarkmap[p.pid()] = p;
          else if (quarkmap[p.pid()].E() < p.E()) quarkmap[p.pid()] = p;
        }
        double maxenergy = 0.;
        for (int i = 1; i <= 5; ++i) {
          double energy(0.);
          if (quarkmap.find( i) != quarkmap.end())
            energy += quarkmap[ i].E();
          if (quarkmap.find(-i) != quarkmap.end())
            energy += quarkmap[-i].E();
          if (energy > maxenergy)
            flavour = i;
        }
        if (quarkmap.find(flavour) != quarkmap.end())
          quarks.push_back(quarkmap[flavour]);
        if (quarkmap.find(-flavour) != quarkmap.end())
          quarks.push_back(quarkmap[-flavour]);
      }
      switch (flavour) {
      case PID::DQUARK:
      case PID::UQUARK:
      case PID::SQUARK:
        _SumOfudsWeights += weight;
        break;
      case PID::CQUARK:
        _SumOfcWeights += weight;
        break;
      case PID::BQUARK:
        _SumOfbWeights += weight;
        break;
      }
      // thrust axis for projections
      Vector3 axis = applyProjection<Thrust>(e, "Thrust").thrustAxis();
      double dot(0.);
      if (!quarks.empty()) {
        dot = quarks[0].p3().dot(axis);
        if (quarks[0].pid() < 0) dot *= -1;
      }

      foreach (const Particle& p, fs.particles()) {
        const double xp = p.p3().mod()/meanBeamMom;
        // if in quark or antiquark hemisphere
        bool quark = p.p3().dot(axis)*dot > 0.;
        _h_XpChargedN->fill(xp, weight);
        _temp_XpChargedN1->fill(xp, weight);
        _temp_XpChargedN2->fill(xp, weight);
        _temp_XpChargedN3->fill(xp, weight);
        int id = p.abspid();
        // charged pions
        if (id == PID::PIPLUS) {
          _h_XpPiPlusN->fill(xp, weight);
          _multPiPlus[0] += weight;
          switch (flavour) {
          case PID::DQUARK:
          case PID::UQUARK:
          case PID::SQUARK:
            _multPiPlus[1] += weight;
            _h_XpPiPlusLight->fill(xp, weight);
            if( ( quark && p.pid()>0 ) || ( !quark && p.pid()<0 ))
              _h_RPiPlus->fill(xp, weight);
            else
              _h_RPiMinus->fill(xp, weight);
            break;
          case PID::CQUARK:
            _multPiPlus[2] += weight;
            _h_XpPiPlusCharm->fill(xp, weight);
            break;
          case PID::BQUARK:
            _multPiPlus[3] += weight;
            _h_XpPiPlusBottom->fill(xp, weight);
            break;
          }
        }
        else if (id == PID::KPLUS) {
          _h_XpKPlusN->fill(xp, weight);
          _multKPlus[0] += weight;
          switch (flavour) {
          case PID::DQUARK:
          case PID::UQUARK:
          case PID::SQUARK:
            _multKPlus[1] += weight;
            _temp_XpKPlusLight->fill(xp, weight);
            _h_XpKPlusLight->fill(xp, weight);
            if( ( quark && p.pid()>0 ) || ( !quark && p.pid()<0 ))
              _h_RKPlus->fill(xp, weight);
            else
              _h_RKMinus->fill(xp, weight);
            break;
         break;
          case PID::CQUARK:
            _multKPlus[2] += weight;
            _h_XpKPlusCharm->fill(xp, weight);
            _temp_XpKPlusCharm->fill(xp, weight);
            break;
          case PID::BQUARK:
            _multKPlus[3] += weight;
            _h_XpKPlusBottom->fill(xp, weight);
            break;
          }
        }
        else if (id == PID::PROTON) {
          _h_XpProtonN->fill(xp, weight);
          _multProton[0] += weight;
          switch (flavour) {
          case PID::DQUARK:
          case PID::UQUARK:
          case PID::SQUARK:
            _multProton[1] += weight;
            _temp_XpProtonLight->fill(xp, weight);
            _h_XpProtonLight->fill(xp, weight);
            if( ( quark && p.pid()>0 ) || ( !quark && p.pid()<0 ))
              _h_RProton->fill(xp, weight);
            else
              _h_RPBar  ->fill(xp, weight);
            break;
         break;
          case PID::CQUARK:
            _multProton[2] += weight;
            _temp_XpProtonCharm->fill(xp, weight);
            _h_XpProtonCharm->fill(xp, weight);
            break;
          case PID::BQUARK:
            _multProton[3] += weight;
            _h_XpProtonBottom->fill(xp, weight);
            break;
          }
        }
      }

      const UnstableFinalState& ufs = applyProjection<UnstableFinalState>(e, "UFS");
      foreach (const Particle& p, ufs.particles()) {
        const double xp = p.p3().mod()/meanBeamMom;
        // if in quark or antiquark hemisphere
        bool quark = p.p3().dot(axis)*dot>0.;
        int id = p.abspid();
        if (id == PID::LAMBDA) {
          _multLambda[0] += weight;
          _h_XpLambdaN->fill(xp, weight);
          switch (flavour) {
          case PID::DQUARK:
          case PID::UQUARK:
          case PID::SQUARK:
            _multLambda[1] += weight;
            _h_XpLambdaLight->fill(xp, weight);
            if( ( quark && p.pid()>0 ) || ( !quark && p.pid()<0 ))
              _h_RLambda->fill(xp, weight);
            else
              _h_RLBar  ->fill(xp, weight);
            break;
          case PID::CQUARK:
            _multLambda[2] += weight;
            _h_XpLambdaCharm->fill(xp, weight);
            break;
          case PID::BQUARK:
            _multLambda[3] += weight;
            _h_XpLambdaBottom->fill(xp, weight);
            break;
          }
        }
        else if (id == 313) {
          _multKStar0[0] += weight;
          _h_XpKStar0N->fill(xp, weight);
          switch (flavour) {
          case PID::DQUARK:
          case PID::UQUARK:
          case PID::SQUARK:
            _multKStar0[1] += weight;
            _temp_XpKStar0Light->fill(xp, weight);
            _h_XpKStar0Light->fill(xp, weight);
            if ( ( quark && p.pid()>0 ) || ( !quark && p.pid()<0 ))
              _h_RKS0   ->fill(xp, weight);
            else
              _h_RKSBar0->fill(xp, weight);
            break;
            break;
          case PID::CQUARK:
            _multKStar0[2] += weight;
            _temp_XpKStar0Charm->fill(xp, weight);
            _h_XpKStar0Charm->fill(xp, weight);
            break;
          case PID::BQUARK:
            _multKStar0[3] += weight;
            _h_XpKStar0Bottom->fill(xp, weight);
            break;
          }
        }
        else if (id == 333) {
          _multPhi[0] += weight;
          _h_XpPhiN->fill(xp, weight);
          switch (flavour) {
          case PID::DQUARK:
          case PID::UQUARK:
          case PID::SQUARK:
            _multPhi[1] += weight;
            _h_XpPhiLight->fill(xp, weight);
            break;
          case PID::CQUARK:
            _multPhi[2] += weight;
            _h_XpPhiCharm->fill(xp, weight);
            break;
          case PID::BQUARK:
            _multPhi[3] += weight;
            _h_XpPhiBottom->fill(xp, weight);
            break;
          }
        }
        else if (id == PID::K0S || id == PID::K0L) {
          _multK0[0] += weight;
          _h_XpK0N->fill(xp, weight);
          switch (flavour) {
          case PID::DQUARK:
          case PID::UQUARK:
          case PID::SQUARK:
            _multK0[1] += weight;
            _h_XpK0Light->fill(xp, weight);
            break;
          case PID::CQUARK:
            _multK0[2] += weight;
            _h_XpK0Charm->fill(xp, weight);
            break;
          case PID::BQUARK:
            _multK0[3] += weight;
            _h_XpK0Bottom->fill(xp, weight);
            break;
          }
        }
      }
    }
const PROJ& applyProjection ( const Event evt,
const PROJ &  proj 
) const [inline, inherited]

Apply the supplied projection on event.

Definition at line 70 of file ProjectionApplier.hh.

References ProjectionApplier::_applyProjection().

Referenced by DISFinalState::project().

                                                                          {
      return pcast<PROJ>(_applyProjection(evt, proj));
    }
const PROJ& applyProjection ( const Event evt,
const Projection proj 
) const [inline, inherited]

Apply the supplied projection on event.

Definition at line 77 of file ProjectionApplier.hh.

References ProjectionApplier::_applyProjection().

                                                                                {
      return pcast<PROJ>(_applyProjection(evt, proj));
    }
const PROJ& applyProjection ( const Event evt,
const std::string &  name 
) const [inline, inherited]

Apply the named projection on event.

Definition at line 84 of file ProjectionApplier.hh.

References ProjectionApplier::_applyProjection().

                                                                               {
      return pcast<PROJ>(_applyProjection(evt, name));
    }
void asymm ( Histo1DPtr  h1,
Histo1DPtr  h2,
Scatter2DPtr  s 
) const [inherited]

Helper for histogram asymmetry calculation.

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

Definition at line 639 of file Analysis.cc.

                                                                         {
    const string path = s->path();
    *s = YODA::asymm(*h1, *h2);
    s->setPath(path);
  }
void asymm ( const YODA::Histo1D &  h1,
const YODA::Histo1D &  h2,
Scatter2DPtr  s 
) const [inherited]

Helper for histogram asymmetry calculation.

Note:
Assigns to the (already registered) output scatter, s. Preserves the path information of the target.
virtual std::vector<std::string> authors ( ) const [inline, virtual, inherited]

Names & emails of paper/analysis authors.

Names and email of authors in 'NAME <EMAIL>' format. The first name in the list should be the primary contact person.

Definition at line 132 of file Analysis.hh.

References AnalysisInfo::authors(), and Analysis::info().

                                                 {
      return info().authors();
    }
const PdgIdPair beamIds ( ) const [inherited]

Incoming beam IDs for this run.

Definition at line 35 of file Analysis.cc.

References AnalysisHandler::beamIds(), and Analysis::handler().

Referenced by UA5_1982_S875503::finalize(), and UA5_1982_S875503::init().

                                          {
    return handler().beamIds();
  }
virtual std::string bibKey ( ) const [inline, virtual, inherited]

BibTeX citation key for this article.

Definition at line 185 of file Analysis.hh.

References AnalysisInfo::bibKey(), and Analysis::info().

                                     {
      return info().bibKey();
    }
virtual std::string bibTeX ( ) const [inline, virtual, inherited]

BibTeX citation entry for this article.

Definition at line 190 of file Analysis.hh.

References AnalysisInfo::bibTeX(), and Analysis::info().

                                     {
      return info().bibTeX();
    }
Histo1DPtr bookHisto1D ( const std::string &  name,
size_t  nbins,
double  lower,
double  upper,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "" 
) [protected, inherited]

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

Definition at line 200 of file Analysis.cc.

References Analysis::addAnalysisObject(), Analysis::histoPath(), MSG_TRACE, and Analysis::name().

Referenced by ATLAS_2014_I1304688::_histogram(), Analysis::bookHisto1D(), ATLAS_2012_I1118269::init(), CMS_2010_S8547297::init(), CMS_2010_S8656010::init(), CMS_2015_I1327224::init(), LHCB_2010_I867355::init(), ALICE_2012_I1181770::init(), CMS_2011_S8950903::init(), CMS_2015_I1356998::init(), ALICE_2014_I1300380::init(), CMS_2011_S8941262::init(), ATLAS_2011_I894867::init(), CMS_2011_S8968497::init(), CMS_2011_S8973270::init(), CMS_2012_I1090423::init(), CMS_2012_I1193338::init(), CMS_2012_I1184941::init(), ATLAS_2010_CONF_2010_049::init(), CMSTOTEM_2014_I1294140::init(), ALICE_2011_S8909580::init(), ATLAS_2014_I1298811::init(), CDF_2007_S7057202::init(), TOTEM_2012_I1115294::init(), TOTEM_2014_I1328627::init(), CMS_2011_S9215166::init(), CMS_2012_I1087342::init(), CMS_2011_S9086218::init(), ATLAS_2014_I1282441::init(), ALICE_2011_S8945144::init(), ATLAS_2015_I1387176::init(), ALICE_2015_I1357424::init(), ATLAS_2012_I1091481::init(), ATLAS_2011_I930220::init(), TOTEM_2012_002::init(), CMS_2011_I954992::init(), CMS_2011_S8957746::init(), CMS_2011_S8978280::init(), ATLAS_2010_S8591806::init(), CMS_2013_I1265659::init(), CMS_2015_I1346843::init(), CMS_2015_I1384119::init(), D0_2011_I895662::init(), LHCF_2012_I1115479::init(), ATLAS_2012_I1188891::init(), CMS_2013_I1208923::init(), CMS_2013_I1273574::init(), D0_2010_S8570965::init(), MC_JETTAGS::init(), ATLAS_2011_I925932::init(), CDF_1997_S3541940::init(), STAR_2006_S6500200::init(), ATLAS_2012_I1124167::init(), UA5_1987_S1640666::init(), CMS_2013_I1256943::init(), CMS_QCD_10_024::init(), ARGUS_1993_S2789213::init(), CDF_2000_S4155203::init(), SFM_1984_S1178091::init(), CDF_2005_S6080774::init(), CDF_2006_S6450792::init(), CMS_2013_I1258128::init(), CMS_2013_I1261026::init(), CMS_2014_I1298810::init(), CMS_2015_I1310737::init(), ATLAS_2011_S9128077::init(), D0_2000_S4480767::init(), ATLAS_2014_I1319490::init(), BABAR_2007_S7266081::init(), MC_HINC::init(), BELLE_2008_I786560::init(), CDF_1993_S2742446::init(), MC_ZZINC::init(), STAR_2006_S6870392::init(), UA5_1982_S875503::init(), UA5_1989_S1926373::init(), CDF_2008_S8093652::init(), ARGUS_1993_S2669951::init(), ATLAS_2012_I1204447::init(), ATLAS_2013_I1190187::init(), CMS_2013_I1209721::init(), D0_2008_S6879055::init(), LHCB_2012_I1208102::init(), MC_HJETS::init(), MC_JetSplittings::init(), MC_PDFS::init(), MC_WWINC::init(), MC_ZZJETS::init(), PDG_TAUS::init(), ATLAS_2011_I944826::init(), ALEPH_1991_S2435284::init(), ATLAS_2012_I1183818::init(), ATLAS_2011_S9035664::init(), ATLAS_2012_I1204784::init(), CMS_2012_I1102908::init(), ATLAS_2013_I1216670::init(), ATLAS_2013_I1219109::init(), CMS_2013_I1272853::init(), ATLAS_2014_I1268975::init(), D0_2000_I499943::init(), ATLAS_2014_I1325553::init(), ATLAS_2014_I1327229::init(), E735_1998_S3905616::init(), MC_DIJET::init(), MC_DIPHOTON::init(), OPAL_1995_S3198391::init(), OPAL_1996_S3257789::init(), OPAL_1997_S3608263::init(), OPAL_1998_S3702294::init(), OPAL_1998_S3749908::init(), OPAL_2000_S4418603::init(), UA5_1986_S1583476::init(), ALEPH_1996_S3196992::init(), ATLAS_2010_S8817804::init(), D0_1996_S3324664::init(), D0_2007_S7075677::init(), D0_2009_S8202443::init(), D0_2010_S8821313::init(), ALEPH_2002_S4823664::init(), DELPHI_1999_S3960137::init(), EXAMPLE_CUTS::init(), MC_JetAnalysis::init(), MC_ParticleAnalysis::init(), MC_PHOTONINC::init(), CDF_1988_S1865951::init(), CDF_1990_S2089246::init(), MC_ZINC::init(), MC_ZJETS::init(), ATLAS_2011_I945498::init(), ATLAS_2011_I954993::init(), CMS_2012_I1107658::init(), D0_2008_S7554427::init(), D0_2008_S7863608::init(), D0_2010_S8671338::init(), H1_1995_S3167097::init(), MC_IDENTIFIED::init(), MC_PHOTONJETS::init(), MC_WINC::init(), CDF_1994_S2952106::init(), MC_WWJETS::init(), UA1_1990_S2044935::init(), ATLAS_2014_I1306615::init(), ATLAS_2012_I1180197::init(), D0_2008_S7837160::init(), ATLAS_2011_S9212353::init(), ATLAS_2012_I1119557::init(), MC_TTBAR::init(), CDF_2008_S7540469::init(), ZEUS_2001_S4815815::init(), ATLAS_2012_CONF_2012_104::init(), CDF_2008_S7828950::init(), ATLAS_2011_S9131140::init(), MC_WJETS::init(), D0_2001_S4674421::init(), ATLAS_2014_I1300647::init(), ATLAS_2012_CONF_2012_105::init(), LHCB_2011_I919315::init(), MC_GENERIC::init(), OPAL_1997_S3396100::init(), ALEPH_1999_S4193598::init(), ALICE_2010_S8624100::init(), EXAMPLE::init(), ATLAS_2011_I926145::init(), ATLAS_2012_I1095236::init(), ATLAS_2012_I1126136::init(), ATLAS_2012_I1186556::init(), MC_XS::init(), ATLAS_2015_I1345452::init(), JADE_OPAL_2000_S4300807::init(), ATLAS_2012_CONF_2012_103::init(), ATLAS_2013_I1217863_W::init(), CDF_1996_S3108457::init(), CMS_2014_I1303894::init(), ATLAS_2013_I1244522::init(), ATLAS_2011_S8983313::init(), ATLAS_2011_CONF_2011_098::init(), D0_1996_S3214044::init(), CDF_2008_S8095620::init(), DELPHI_1995_S3137023::init(), JADE_1998_S3612880::init(), STAR_2006_S6860818::init(), ATLAS_2013_I1217863_Z::init(), ALEPH_2004_S5765862::init(), ATLAS_2012_CONF_2012_109::init(), CMS_2012_I941555::init(), MC_HFJETS::init(), ALICE_2010_S8706239::init(), ATLAS_2014_I1288706::init(), LHCB_2013_I1218996::init(), CDF_1996_S3349578::init(), ATLAS_2011_S9212183::init(), ATLAS_2012_I1190891::init(), ATLAS_2012_I1125961::init(), CDF_2009_NOTE_9936::init(), CMS_2013_I1218372::init(), ALICE_2010_S8625980::init(), ATLAS_2012_CONF_2012_001::init(), ATLAS_2012_I1112263::init(), ATLAS_2011_S8971293::init(), MC_SUSY::init(), ATLAS_2014_I1298023::init(), CDF_2009_S8436959::init(), ATLAS_2013_I1230812::init(), D0_2009_S8349509::init(), CDF_2000_S4266730::init(), CDF_2001_S4563131::init(), CDF_2009_S8383952::init(), D0_2009_S8320160::init(), CDF_1998_S3618439::init(), ATLAS_2013_I1263495::init(), ATLAS_2010_S8919674::init(), ALEPH_2001_S4656318::init(), DELPHI_2002_069_CONF_603::init(), SLD_2002_S4869273::init(), D0_2006_S6438750::init(), ATLAS_2015_CONF_2015_041::init(), ATLAS_2012_I1082936::init(), ATLAS_2014_I1307243::init(), CDF_2001_S4517016::init(), D0_2010_S8566488::init(), MC_PHOTONS::init(), LHCB_2012_I1119400::init(), CDF_1996_S3418421::init(), ATLAS_2011_I921594::init(), SLD_1996_S3398250::init(), LHCB_2014_I1281685::init(), ATLAS_2014_I1326641::init(), CDF_2006_S6653332::init(), ATLAS_2011_S9108483::init(), MC_WPOL::init(), CDF_2008_S7541902::init(), ATLAS_2014_I1306294::init(), D0_2008_S7662670::init(), ATLAS_2012_I1117704::init(), ATLAS_2012_I946427::init(), ATLAS_2012_I1082009::init(), ATLAS_2012_I1199269::init(), ATLAS_2011_S9225137::init(), ATLAS_2012_I943401::init(), ATLAS_2011_S9019561::init(), TASSO_1990_S2148048::init(), ATLAS_2011_CONF_2011_090::init(), ATLAS_2012_CONF_2012_153::init(), ATLAS_2012_I1083318::init(), ATLAS_2012_I1084540::init(), CMS_2013_I1224539_WJET::init(), CMS_2013_I1224539_DIJET::init(), ATLAS_2013_I1217867::init(), CDF_2009_S8233977::init(), CMS_2013_I1224539_ZJET::init(), ATLAS_2015_I1364361::init(), D0_2004_S5992206::init(), ATLAS_2010_S8914702::init(), ATLAS_2014_I1312627::init(), CDF_2001_S4751469::init(), ATLAS_2011_S9120807::init(), D0_2008_S7719523::init(), ATLAS_2010_S8918562::init(), ATLAS_2011_S9041966::init(), DELPHI_1996_S3430090::init(), ALEPH_1996_S3486095::init(), ATLAS_2012_I1093738::init(), OPAL_2004_S6132243::init(), OPAL_1994_S2927284::init(), BELLE_2013_I1216515::init(), STAR_2008_S7869363::init(), BABAR_2007_S6895344::init(), MC_VH2BB::init(), BABAR_2005_S6181155::init(), BELLE_2001_S4598261::init(), ATLAS_2011_I919017::init(), OPAL_2001_S4553896::init(), BABAR_2013_I1238276::init(), ATLAS_2012_I1203852::init(), CDF_2004_S5839831::init(), BABAR_2003_I593379::init(), ARGUS_1993_S2653028::init(), CLEO_2004_S5809304::init(), OPAL_1998_S3780481::init(), OPAL_1993_S2692198::init(), ATLAS_2014_I1282447::init(), ATLAS_2012_I1094564::init(), H1_1994_S2919893::init(), H1_2000_S4129130::init(), SLD_2004_S5693039::init(), SLD_1999_S3743934::init(), PDG_HADRON_MULTIPLICITIES::init(), PDG_HADRON_MULTIPLICITIES_RATIOS::init(), ATLAS_2014_I1279489::initialisePlots(), ATLAS_2012_I1125575::initializeHistograms(), ATLAS_2012_I1094568::initializePlots(), and ATLAS_2011_S9126244::initializePlots().

                                                         {
    const string path = histoPath(hname);
    Histo1DPtr hist( new Histo1D(nbins, lower, upper, path, title) );
    addAnalysisObject(hist);
    MSG_TRACE("Made histogram " << hname <<  " for " << name());
    hist->setAnnotation("XLabel", xtitle);
    hist->setAnnotation("YLabel", ytitle);
    return hist;
  }
Histo1DPtr bookHisto1D ( const std::string &  name,
const std::vector< double > &  binedges,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "" 
) [protected, inherited]

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

Definition at line 215 of file Analysis.cc.

References Analysis::addAnalysisObject(), Analysis::histoPath(), MSG_TRACE, and Analysis::name().

                                                         {
    const string path = histoPath(hname);
    Histo1DPtr hist( new Histo1D(binedges, path, title) );
    addAnalysisObject(hist);
    MSG_TRACE("Made histogram " << hname <<  " for " << name());
    hist->setAnnotation("XLabel", xtitle);
    hist->setAnnotation("YLabel", ytitle);
    return hist;
  }
Histo1DPtr bookHisto1D ( const std::string &  name,
const Scatter2D &  refscatter,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "" 
) [protected, inherited]

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

Definition at line 230 of file Analysis.cc.

References Analysis::addAnalysisObject(), Analysis::histoPath(), MSG_TRACE, and Analysis::name().

                                                         {
    const string path = histoPath(hname);
    Histo1DPtr hist( new Histo1D(refscatter, path) );
    addAnalysisObject(hist);
    MSG_TRACE("Made histogram " << hname <<  " for " << name());
    hist->setTitle(title);
    hist->setAnnotation("XLabel", xtitle);
    hist->setAnnotation("YLabel", ytitle);
    return hist;
  }
Histo1DPtr bookHisto1D ( const std::string &  name,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "" 
) [protected, inherited]

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

Definition at line 246 of file Analysis.cc.

References Analysis::bookHisto1D(), and Analysis::refData().

                                                         {
    const Scatter2D& refdata = refData(hname);
    return bookHisto1D(hname, refdata, title, xtitle, ytitle);
  }
Histo1DPtr bookHisto1D ( unsigned int  datasetId,
unsigned int  xAxisId,
unsigned int  yAxisId,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "" 
) [protected, inherited]

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.

Definition at line 255 of file Analysis.cc.

References Analysis::bookHisto1D(), and Analysis::makeAxisCode().

                                                         {
    const string axisCode = makeAxisCode(datasetId, xAxisId, yAxisId);
    return bookHisto1D(axisCode, title, xtitle, ytitle);
  }
Histo2DPtr bookHisto2D ( const std::string &  name,
size_t  nxbins,
double  xlower,
double  xupper,
size_t  nybins,
double  ylower,
double  yupper,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "",
const std::string &  ztitle = "" 
) [protected, inherited]

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.

Todo:
Add booking methods which take a path, titles and *a reference Scatter from which to book*

Definition at line 270 of file Analysis.cc.

References Analysis::addAnalysisObject(), Analysis::histoPath(), MSG_TRACE, and Analysis::name().

Referenced by MC_PDFS::init().

  {
    const string path = histoPath(hname);
    Histo2DPtr hist( new Histo2D(nxbins, xlower, xupper, nybins, ylower, yupper, path, title) );
    addAnalysisObject(hist);
    MSG_TRACE("Made 2D histogram " << hname <<  " for " << name());
    hist->setAnnotation("XLabel", xtitle);
    hist->setAnnotation("YLabel", ytitle);
    hist->setAnnotation("ZLabel", ztitle);
    return hist;
  }
Histo2DPtr bookHisto2D ( const std::string &  name,
const std::vector< double > &  xbinedges,
const std::vector< double > &  ybinedges,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "",
const std::string &  ztitle = "" 
) [protected, inherited]

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

Definition at line 289 of file Analysis.cc.

References Analysis::addAnalysisObject(), Analysis::histoPath(), MSG_TRACE, and Analysis::name().

  {
    const string path = histoPath(hname);
    Histo2DPtr hist( new Histo2D(xbinedges, ybinedges, path, title) );
    addAnalysisObject(hist);
    MSG_TRACE("Made 2D histogram " << hname <<  " for " << name());
    hist->setAnnotation("XLabel", xtitle);
    hist->setAnnotation("YLabel", ytitle);
    hist->setAnnotation("ZLabel", ztitle);
    return hist;
  }
Profile1DPtr bookProfile1D ( const std::string &  name,
size_t  nbins,
double  lower,
double  upper,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "" 
) [protected, inherited]

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

Definition at line 349 of file Analysis.cc.

References Analysis::addAnalysisObject(), Analysis::histoPath(), MSG_TRACE, and Analysis::name().

Referenced by Analysis::bookProfile1D(), ATLAS_2010_S8894728::init(), ATLAS_2011_S8994773::init(), CMS_2012_PAS_QCD_11_010::init(), ATLAS_2014_I1298811::init(), ALICE_2014_I1300380::init(), ALICE_2011_S8945144::init(), ATLAS_2010_S8591806::init(), CDF_2012_NOTE10874::init(), STAR_2008_S7993412::init(), ATLAS_2012_I1124167::init(), CMS_2013_I1261026::init(), CDF_2008_S7782535::init(), CMS_2015_I1385107::init(), ATLAS_2013_I1243871::init(), ATLAS_2011_S8924791::init(), CDF_2005_S6217184::init(), D0_1996_S3324664::init(), CMS_2012_I1107658::init(), MC_GENERIC::init(), MC_LEADJETUE::init(), UA1_1990_S2044935::init(), STAR_2009_UE_HELEN::init(), STAR_2006_S6860818::init(), ALICE_2010_S8706239::init(), DELPHI_2002_069_CONF_603::init(), ALEPH_2001_S4656318::init(), ATLAS_2014_I1307243::init(), MC_PHOTONS::init(), MC_WPOL::init(), CDF_2009_S8233977::init(), CDF_2010_S8591881_DY::init(), CDF_2010_S8591881_QCD::init(), CDF_2001_S4751469::init(), ATLAS_2010_S8918562::init(), DELPHI_1996_S3430090::init(), CDF_2004_S5839831::init(), H1_1994_S2919893::init(), H1_2000_S4129130::init(), ATLAS_2014_I1279489::initialisePlots(), ATLAS_2011_S9126244::initializePlots(), and ATLAS_2012_I1125575::initializeProfiles().

                                                             {
    const string path = histoPath(hname);
    Profile1DPtr prof( new Profile1D(nbins, lower, upper, path, title) );
    addAnalysisObject(prof);
    MSG_TRACE("Made profile histogram " << hname <<  " for " << name());
    prof->setAnnotation("XLabel", xtitle);
    prof->setAnnotation("YLabel", ytitle);
    return prof;
  }
Profile1DPtr bookProfile1D ( const std::string &  name,
const std::vector< double > &  binedges,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "" 
) [protected, inherited]

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

Definition at line 364 of file Analysis.cc.

References Analysis::addAnalysisObject(), Analysis::histoPath(), MSG_TRACE, and Analysis::name().

                                                             {
    const string path = histoPath(hname);
    Profile1DPtr prof( new Profile1D(binedges, path, title) );
    addAnalysisObject(prof);
    MSG_TRACE("Made profile histogram " << hname <<  " for " << name());
    prof->setAnnotation("XLabel", xtitle);
    prof->setAnnotation("YLabel", ytitle);
    return prof;
  }
Profile1DPtr bookProfile1D ( const std::string &  name,
const Scatter2D &  refscatter,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "" 
) [protected, inherited]

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

Definition at line 379 of file Analysis.cc.

References Analysis::addAnalysisObject(), Analysis::histoPath(), MSG_TRACE, and Analysis::name().

                                                             {
    const string path = histoPath(hname);
    Profile1DPtr prof( new Profile1D(refscatter, path) );
    addAnalysisObject(prof);
    MSG_TRACE("Made profile histogram " << hname <<  " for " << name());
    prof->setTitle(title);
    prof->setAnnotation("XLabel", xtitle);
    prof->setAnnotation("YLabel", ytitle);
    return prof;
  }
Profile1DPtr bookProfile1D ( const std::string &  name,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "" 
) [protected, inherited]

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

Definition at line 395 of file Analysis.cc.

References Analysis::bookProfile1D(), and Analysis::refData().

                                                             {
    const Scatter2D& refdata = refData(hname);
    return bookProfile1D(hname, refdata, title, xtitle, ytitle);
  }
Profile1DPtr bookProfile1D ( unsigned int  datasetId,
unsigned int  xAxisId,
unsigned int  yAxisId,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "" 
) [protected, inherited]

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.

Definition at line 404 of file Analysis.cc.

References Analysis::bookProfile1D(), and Analysis::makeAxisCode().

                                                             {
    const string axisCode = makeAxisCode(datasetId, xAxisId, yAxisId);
    return bookProfile1D(axisCode, title, xtitle, ytitle);
  }
Profile2DPtr bookProfile2D ( const std::string &  name,
size_t  nxbins,
double  xlower,
double  xupper,
size_t  nybins,
double  ylower,
double  yupper,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "",
const std::string &  ztitle = "" 
) [protected, inherited]

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.

Definition at line 417 of file Analysis.cc.

References Analysis::addAnalysisObject(), Analysis::histoPath(), MSG_TRACE, and Analysis::name().

  {
    const string path = histoPath(hname);
    Profile2DPtr prof( new Profile2D(nxbins, xlower, xupper, nybins, ylower, yupper, path, title) );
    addAnalysisObject(prof);
    MSG_TRACE("Made 2D profile histogram " << hname <<  " for " << name());
    prof->setAnnotation("XLabel", xtitle);
    prof->setAnnotation("YLabel", ytitle);
    prof->setAnnotation("ZLabel", ztitle);
    return prof;
  }
Profile2DPtr bookProfile2D ( const std::string &  name,
const std::vector< double > &  xbinedges,
const std::vector< double > &  ybinedges,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "",
const std::string &  ztitle = "" 
) [protected, inherited]

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

Definition at line 436 of file Analysis.cc.

References Analysis::addAnalysisObject(), Analysis::histoPath(), MSG_TRACE, and Analysis::name().

  {
    const string path = histoPath(hname);
    Profile2DPtr prof( new Profile2D(xbinedges, ybinedges, path, title) );
    addAnalysisObject(prof);
    MSG_TRACE("Made 2D profile histogram " << hname <<  " for " << name());
    prof->setAnnotation("XLabel", xtitle);
    prof->setAnnotation("YLabel", ytitle);
    prof->setAnnotation("ZLabel", ztitle);
    return prof;
  }
Scatter2DPtr bookScatter2D ( const std::string &  name,
bool  copy_pts = false,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "" 
) [protected, inherited]

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.

Definition at line 506 of file Analysis.cc.

References Analysis::addAnalysisObject(), Analysis::histoPath(), MSG_TRACE, Analysis::name(), Analysis::refData(), and Rivet::s.

Referenced by Analysis::bookScatter2D(), MC_JetAnalysis::finalize(), MC_ParticleAnalysis::finalize(), DELPHI_2000_S4328825::finalize(), OPAL_2002_S5361494::finalize(), BABAR_2007_S7266081::finalize(), LHCB_2011_I917009::finalize(), ARGUS_1993_S2669951::finalize(), ATLAS_2014_I1307243::finalize(), ALEPH_2004_S5765862::finalize(), SLD_2004_S5693039::finalize(), ATLAS_2011_S9126244::finalize(), SLD_1999_S3743934::finalize(), ATLAS_2014_I1279489::finalizeEfficiencies(), ATLAS_2014_I1312627::hInit(), ATLAS_2010_S8894728::init(), ALICE_2012_I1181770::init(), LHCB_2013_I1208105::init(), ALICE_2011_S8909580::init(), ALICE_2015_I1357424::init(), ATLAS_2015_I1387176::init(), CMS_2011_S8978280::init(), CMS_2011_S9088458::init(), ATLAS_2011_S9002537::init(), ATLAS_2012_I1188891::init(), STAR_2006_S6500200::init(), CMS_2014_I1298810::init(), ATLAS_2011_S9128077::init(), MC_JetSplittings::init(), CDF_2008_S7782535::init(), ATLAS_2011_I944826::init(), CMS_2012_I1102908::init(), MC_JetAnalysis::init(), MC_ParticleAnalysis::init(), CDF_2005_S6217184::init(), ATLAS_2011_I945498::init(), MC_WINC::init(), CDF_1994_S2952106::init(), D0_2008_S7837160::init(), MC_GENERIC::init(), D0_2001_S4674421::init(), MC_XS::init(), STAR_2006_S6860818::init(), CMS_2013_I1218372::init(), ATLAS_2013_I1230812::init(), ATLAS_2015_CONF_2015_041::init(), ATLAS_2014_I1307243::init(), UA5_1988_S1867512::init(), CDF_1996_S3418421::init(), LHCB_2012_I1119400::init(), CDF_2008_S7541902::init(), ATLAS_2012_I1083318::init(), D0_2008_S7719523::init(), ATLAS_2012_I1093734::init(), ATLAS_2014_I1282447::init(), SLD_2004_S5693039::init(), SLD_1999_S3743934::init(), ATLAS_2012_I1094568::initializePlots(), ATLAS_2011_S9126244::initializePlots(), and SLD_1996_S3398250::multiplicity_subtract().

                                                             {
    Scatter2DPtr s;
    const string path = histoPath(hname);
    if (copy_pts) {
      const Scatter2D& refdata = refData(hname);
      s.reset( new Scatter2D(refdata, path) );
      foreach (Point2D& p, s->points()) p.setY(0, 0);
    } else {
      s.reset( new Scatter2D(path) );
    }
    addAnalysisObject(s);
    MSG_TRACE("Made scatter " << hname <<  " for " << name());
    s->setTitle(title);
    s->setAnnotation("XLabel", xtitle);
    s->setAnnotation("YLabel", ytitle);
    return s;
  }
Scatter2DPtr bookScatter2D ( unsigned int  datasetId,
unsigned int  xAxisId,
unsigned int  yAxisId,
bool  copy_pts = false,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "" 
) [protected, inherited]

Book a 2-dimensional data point set, 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.

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.

Definition at line 496 of file Analysis.cc.

References Analysis::bookScatter2D(), and Analysis::makeAxisCode().

                                                             {
    const string axisCode = makeAxisCode(datasetId, xAxisId, yAxisId);
    return bookScatter2D(axisCode, copy_pts, title, xtitle, ytitle);
  }
Scatter2DPtr bookScatter2D ( const std::string &  name,
size_t  npts,
double  lower,
double  upper,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "" 
) [protected, inherited]

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.

Definition at line 529 of file Analysis.cc.

References Analysis::addAnalysisObject(), Analysis::histoPath(), MSG_TRACE, Analysis::name(), Rivet::Cuts::pt, and Rivet::s.

                                                             {
    const string path = histoPath(hname);
    Scatter2DPtr s( new Scatter2D(path) );
    const double binwidth = (upper-lower)/npts;
    for (size_t pt = 0; pt < npts; ++pt) {
      const double bincentre = lower + (pt + 0.5) * binwidth;
      s->addPoint(bincentre, 0, binwidth/2.0, 0);
    }
    addAnalysisObject(s);
    MSG_TRACE("Made scatter " << hname <<  " for " << name());
    s->setTitle(title);
    s->setAnnotation("XLabel", xtitle);
    s->setAnnotation("YLabel", ytitle);
    return s;
  }
Scatter2DPtr bookScatter2D ( const std::string &  hname,
const std::vector< double > &  binedges,
const std::string &  title,
const std::string &  xtitle,
const std::string &  ytitle 
) [protected, inherited]

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

The y values and errors will be set to 0.

Definition at line 550 of file Analysis.cc.

References Analysis::addAnalysisObject(), Analysis::histoPath(), MSG_TRACE, Analysis::name(), Rivet::Cuts::pt, and Rivet::s.

                                                             {
    const string path = histoPath(hname);
    Scatter2DPtr s( new Scatter2D(path) );
    for (size_t pt = 0; pt < binedges.size()-1; ++pt) {
      const double bincentre = (binedges[pt] + binedges[pt+1]) / 2.0;
      const double binwidth = binedges[pt+1] - binedges[pt];
      s->addPoint(bincentre, 0, binwidth/2.0, 0);
    }
    addAnalysisObject(s);
    MSG_TRACE("Made scatter " << hname <<  " for " << name());
    s->setTitle(title);
    s->setAnnotation("XLabel", xtitle);
    s->setAnnotation("YLabel", ytitle);
    return s;
  }
virtual std::string collider ( ) const [inline, virtual, inherited]

Collider on which the experiment ran.

Definition at line 170 of file Analysis.hh.

References AnalysisInfo::collider(), and Analysis::info().

                                       {
      return info().collider();
    }
double crossSection ( ) const [protected, inherited]

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

Definition at line 155 of file Analysis.cc.

References Analysis::_crossSection, Analysis::_gotCrossSection, and Analysis::name().

Referenced by MC_JetSplittings::finalize(), MC_JetAnalysis::finalize(), MC_ParticleAnalysis::finalize(), CDF_2006_S6450792::finalize(), D0_2000_S4480767::finalize(), TOTEM_2012_002::finalize(), CMS_2011_S9086218::finalize(), CDF_2008_S7828950::finalize(), CDF_2001_S4563131::finalize(), D0_2010_S8671338::finalize(), MC_XS::finalize(), BELLE_2013_I1216515::finalize(), CDF_2000_S4155203::finalize(), CDF_2008_S8093652::finalize(), CDF_2000_S4266730::finalize(), CMS_2011_S8941262::finalize(), CDF_1998_S3618439::finalize(), CMS_2012_I1184941::finalize(), CMS_2012_I1087342::finalize(), LHCB_2012_I1208102::finalize(), MC_HINC::finalize(), MC_HJETS::finalize(), CMS_2011_I954992::finalize(), ATLAS_2012_I1118269::finalize(), MC_ZJETS::finalize(), ATLAS_2011_I894867::finalize(), BABAR_2005_S6181155::finalize(), CDF_2001_S4517016::finalize(), CDF_2009_S8383952::finalize(), STAR_2006_S6870392::finalize(), D0_2010_S8566488::finalize(), MC_WJETS::finalize(), LHCB_2010_I867355::finalize(), MC_ZINC::finalize(), CMS_2013_I1208923::finalize(), CDF_2009_S8436959::finalize(), CMS_2012_I1193338::finalize(), D0_2011_I895662::finalize(), ATLAS_2014_I1325553::finalize(), CDF_2005_S6080774::finalize(), ATLAS_2014_I1288706::finalize(), ATLAS_2014_I1282441::finalize(), D0_2006_S6438750::finalize(), CMS_2013_I1273574::finalize(), MC_DIPHOTON::finalize(), D0_2000_I499943::finalize(), ALICE_2012_I1181770::finalize(), D0_2008_S7863608::finalize(), CLEO_2004_S5809304::finalize(), D0_2008_S7662670::finalize(), MC_ZZJETS::finalize(), ATLAS_2011_S9035664::finalize(), ATLAS_2014_I1326641::finalize(), MC_WINC::finalize(), CMS_2015_I1346843::finalize(), ATLAS_2010_CONF_2010_049::finalize(), ATLAS_2011_I954993::finalize(), MC_WWJETS::finalize(), CDF_2009_S8233977::finalize(), CMS_2014_I1298810::finalize(), ATLAS_2013_I1219109::finalize(), LHCB_2013_I1218996::finalize(), ATLAS_2014_I1298023::finalize(), D0_2010_S8570965::finalize(), CMS_2011_S8973270::finalize(), ATLAS_2012_I946427::finalize(), CMS_2015_I1356998::finalize(), CDF_2008_S7541902::finalize(), ATLAS_2010_S8919674::finalize(), ATLAS_2011_I921594::finalize(), ATLAS_2013_I1263495::finalize(), MC_ZZINC::finalize(), MC_WWINC::finalize(), MC_WPOL::finalize(), ATLAS_2014_I1312627::finalize(), CDF_2006_S6653332::finalize(), ATLAS_2013_I1217863_Z::finalize(), ATLAS_2013_I1217863_W::finalize(), D0_2008_S7719523::finalize(), ATLAS_2014_I1307756::finalize(), CMS_2015_I1310737::finalize(), ATLAS_2011_I926145::finalize(), CMS_2013_I1256943::finalize(), ATLAS_2013_I1244522::finalize(), ATLAS_2014_I1306294::finalize(), ATLAS_2011_S9108483::finalize(), CDF_2008_S7540469::finalize(), ATLAS_2012_I1199269::finalize(), ATLAS_2014_I1307243::finalize(), ATLAS_2010_S8914702::finalize(), ATLAS_2012_I1083318::finalize(), ATLAS_2014_I1304688::finalize(), ATLAS_2014_I1319490::finalize(), ATLAS_2012_CONF_2012_105::finalize(), CMS_2014_I1303894::finalize(), ATLAS_2012_CONF_2012_104::finalize(), ATLAS_2011_S9120807::finalize(), ATLAS_2012_I1186556::finalize(), ATLAS_2012_I1084540::finalize(), MC_VH2BB::finalize(), ATLAS_2012_CONF_2012_103::finalize(), ATLAS_2012_I1117704::finalize(), ATLAS_2013_I1190187::finalize(), ATLAS_2015_I1345452::finalize(), ATLAS_2012_I1093738::finalize(), ATLAS_2012_I1125961::finalize(), ATLAS_2011_CONF_2011_098::finalize(), ATLAS_2012_I1126136::finalize(), ATLAS_2011_S8983313::finalize(), ATLAS_2012_I1095236::finalize(), ATLAS_2012_I1190891::finalize(), ATLAS_2011_S9019561::finalize(), ATLAS_2012_I1112263::finalize(), ATLAS_2011_S9212183::finalize(), ATLAS_2012_CONF_2012_109::finalize(), ATLAS_2011_CONF_2011_090::finalize(), ATLAS_2011_S9225137::finalize(), ATLAS_2012_CONF_2012_001::finalize(), ATLAS_2012_I1203852::finalize(), ATLAS_2012_I943401::finalize(), ATLAS_2012_I1180197::finalize(), ATLAS_2012_CONF_2012_153::finalize(), ATLAS_2014_I1282447::finalize(), ATLAS_2012_I1204447::finalize(), ATLAS_2011_S9212353::finalize(), ATLAS_2014_I1327229::finalize(), ATLAS_2011_S9041966::finalize(), and ATLAS_2011_I919017::finalize().

                                      {
    if (!_gotCrossSection || std::isnan(_crossSection)) {
      string errMsg = "You did not set the cross section for the analysis " + name();
      throw Error(errMsg);
    }
    return _crossSection;
  }
virtual std::string description ( ) const [inline, virtual, inherited]

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.

Definition at line 151 of file Analysis.hh.

References AnalysisInfo::description(), and Analysis::info().

                                          {
      return info().description();
    }
void divide ( const YODA::Histo1D &  h1,
const YODA::Histo1D &  h2,
Scatter2DPtr  s 
) const [inherited]

Helper for histogram division with raw YODA objects.

Note:
Assigns to the (already registered) output scatter, s. Preserves the path information of the target.
void 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.
void divide ( const YODA::Profile1D &  p1,
const YODA::Profile1D &  p2,
Scatter2DPtr  s 
) const [inherited]

Helper for profile histogram division with raw YODA objects.

Note:
Assigns to the (already registered) output scatter, s. Preserves the path information of the target.
void 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.
void divide ( const YODA::Histo2D &  h1,
const YODA::Histo2D &  h2,
Scatter3DPtr  s 
) const [inherited]

Helper for 2D histogram division with raw YODA objects.

Note:
Assigns to the (already registered) output scatter, s. Preserves the path information of the target.
void 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.
void divide ( const YODA::Profile2D &  p1,
const YODA::Profile2D &  p2,
Scatter3DPtr  s 
) const [inherited]

Helper for 2D profile histogram division with raw YODA objects

Note:
Assigns to the (already registered) output scatter, s. Preserves the path information of the target.
void efficiency ( Histo1DPtr  h1,
Histo1DPtr  h2,
Scatter2DPtr  s 
) const [inherited]

Helper for histogram efficiency calculation.

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

Definition at line 626 of file Analysis.cc.

Referenced by CMS_2012_I1102908::finalize(), and ATLAS_2014_I1307243::finalize().

                                                                              {
    const string path = s->path();
    *s = YODA::efficiency(*h1, *h2);
    s->setPath(path);
  }
void efficiency ( const YODA::Histo1D &  h1,
const YODA::Histo1D &  h2,
Scatter2DPtr  s 
) const [inherited]

Helper for histogram efficiency calculation.

Note:
Assigns to the (already registered) output scatter, s. Preserves the path information of the target.
virtual std::string experiment ( ) const [inline, virtual, inherited]

Experiment which performed and published this analysis.

Definition at line 165 of file Analysis.hh.

References AnalysisInfo::experiment(), and Analysis::info().

                                         {
      return info().experiment();
    }
void finalize ( ) [inline, virtual]

Finalize.

Reimplemented from Analysis.

Definition at line 382 of file SLD_1999_S3743934.cc.

References SLD_1999_S3743934::_h_RKMinus, SLD_1999_S3743934::_h_RKPlus, SLD_1999_S3743934::_h_RKS0, SLD_1999_S3743934::_h_RKSBar0, SLD_1999_S3743934::_h_RLambda, SLD_1999_S3743934::_h_RLBar, SLD_1999_S3743934::_h_RPBar, SLD_1999_S3743934::_h_RPiMinus, SLD_1999_S3743934::_h_RPiPlus, SLD_1999_S3743934::_h_RProton, SLD_1999_S3743934::_h_XpChargedN, SLD_1999_S3743934::_h_XpK0Bottom, SLD_1999_S3743934::_h_XpK0Charm, SLD_1999_S3743934::_h_XpK0Light, SLD_1999_S3743934::_h_XpK0N, SLD_1999_S3743934::_h_XpKPlusBottom, SLD_1999_S3743934::_h_XpKPlusCharm, SLD_1999_S3743934::_h_XpKPlusLight, SLD_1999_S3743934::_h_XpKPlusN, SLD_1999_S3743934::_h_XpKStar0Bottom, SLD_1999_S3743934::_h_XpKStar0Charm, SLD_1999_S3743934::_h_XpKStar0Light, SLD_1999_S3743934::_h_XpKStar0N, SLD_1999_S3743934::_h_XpLambdaBottom, SLD_1999_S3743934::_h_XpLambdaCharm, SLD_1999_S3743934::_h_XpLambdaLight, SLD_1999_S3743934::_h_XpLambdaN, SLD_1999_S3743934::_h_XpPhiBottom, SLD_1999_S3743934::_h_XpPhiCharm, SLD_1999_S3743934::_h_XpPhiLight, SLD_1999_S3743934::_h_XpPhiN, SLD_1999_S3743934::_h_XpPiPlusBottom, SLD_1999_S3743934::_h_XpPiPlusCharm, SLD_1999_S3743934::_h_XpPiPlusLight, SLD_1999_S3743934::_h_XpPiPlusN, SLD_1999_S3743934::_h_XpProtonBottom, SLD_1999_S3743934::_h_XpProtonCharm, SLD_1999_S3743934::_h_XpProtonLight, SLD_1999_S3743934::_h_XpProtonN, SLD_1999_S3743934::_multK0, SLD_1999_S3743934::_multKPlus, SLD_1999_S3743934::_multKStar0, SLD_1999_S3743934::_multLambda, SLD_1999_S3743934::_multPhi, SLD_1999_S3743934::_multPiPlus, SLD_1999_S3743934::_multProton, SLD_1999_S3743934::_s_KM_KP, SLD_1999_S3743934::_s_KSBar0_KS0, SLD_1999_S3743934::_s_Lam_LBar, SLD_1999_S3743934::_s_PiM_PiP, SLD_1999_S3743934::_s_Pr_PBar, SLD_1999_S3743934::_s_Xp_K0Bo_K0Li, SLD_1999_S3743934::_s_Xp_K0Ch_K0Li, SLD_1999_S3743934::_s_Xp_KPl_Ch, SLD_1999_S3743934::_s_Xp_KPlBo_KPlLi, SLD_1999_S3743934::_s_Xp_KPlCh_KPlLi, SLD_1999_S3743934::_s_Xp_KS0Bo_KS0Li, SLD_1999_S3743934::_s_Xp_KS0Ch_KS0Li, SLD_1999_S3743934::_s_Xp_LaBo_LaLi, SLD_1999_S3743934::_s_Xp_LaCh_LaLi, SLD_1999_S3743934::_s_Xp_PhiBo_PhiLi, SLD_1999_S3743934::_s_Xp_PhiCh_PhiLi, SLD_1999_S3743934::_s_Xp_PiPl_Ch, SLD_1999_S3743934::_s_Xp_PiPlBo_PiPlLi, SLD_1999_S3743934::_s_Xp_PiPlCh_PiPlLi, SLD_1999_S3743934::_s_Xp_Pr_Ch, SLD_1999_S3743934::_s_Xp_PrBo_PrLi, SLD_1999_S3743934::_s_Xp_PrCh_PrLi, SLD_1999_S3743934::_SumOfbWeights, SLD_1999_S3743934::_SumOfcWeights, SLD_1999_S3743934::_SumOfudsWeights, SLD_1999_S3743934::_temp_XpChargedN1, SLD_1999_S3743934::_temp_XpChargedN2, SLD_1999_S3743934::_temp_XpChargedN3, SLD_1999_S3743934::_temp_XpKPlusCharm, SLD_1999_S3743934::_temp_XpKPlusLight, SLD_1999_S3743934::_temp_XpKStar0Charm, SLD_1999_S3743934::_temp_XpKStar0Light, SLD_1999_S3743934::_temp_XpProtonCharm, SLD_1999_S3743934::_temp_XpProtonLight, Analysis::bookScatter2D(), Analysis::divide(), Analysis::scale(), and Analysis::sumOfWeights().

                    {
      // Get the ratio plots sorted out first
      divide(_h_XpPiPlusN, _temp_XpChargedN1, _s_Xp_PiPl_Ch);
      divide(_h_XpKPlusN, _temp_XpChargedN2, _s_Xp_KPl_Ch);
      divide(_h_XpProtonN, _temp_XpChargedN3, _s_Xp_Pr_Ch);
      divide(_h_XpPiPlusCharm, _h_XpPiPlusLight, _s_Xp_PiPlCh_PiPlLi);
      _s_Xp_PiPlCh_PiPlLi->scale(1.,_SumOfudsWeights/_SumOfcWeights);
      divide(_h_XpPiPlusBottom, _h_XpPiPlusLight, _s_Xp_PiPlBo_PiPlLi);
       _s_Xp_PiPlBo_PiPlLi->scale(1.,_SumOfudsWeights/_SumOfbWeights);
      divide(_temp_XpKPlusCharm , _temp_XpKPlusLight, _s_Xp_KPlCh_KPlLi);
      _s_Xp_KPlCh_KPlLi->scale(1.,_SumOfudsWeights/_SumOfcWeights);
      divide(_h_XpKPlusBottom, _h_XpKPlusLight, _s_Xp_KPlBo_KPlLi);
       _s_Xp_KPlBo_KPlLi->scale(1.,_SumOfudsWeights/_SumOfbWeights);
      divide(_temp_XpKStar0Charm, _temp_XpKStar0Light, _s_Xp_KS0Ch_KS0Li);
      _s_Xp_KS0Ch_KS0Li->scale(1.,_SumOfudsWeights/_SumOfcWeights);
      divide(_h_XpKStar0Bottom, _h_XpKStar0Light, _s_Xp_KS0Bo_KS0Li);
      _s_Xp_KS0Bo_KS0Li->scale(1.,_SumOfudsWeights/_SumOfbWeights);
      divide(_temp_XpProtonCharm, _temp_XpProtonLight, _s_Xp_PrCh_PrLi);
      _s_Xp_PrCh_PrLi->scale(1.,_SumOfudsWeights/_SumOfcWeights);
      divide(_h_XpProtonBottom, _h_XpProtonLight, _s_Xp_PrBo_PrLi);
      _s_Xp_PrBo_PrLi->scale(1.,_SumOfudsWeights/_SumOfbWeights);
      divide(_h_XpLambdaCharm, _h_XpLambdaLight, _s_Xp_LaCh_LaLi);
      _s_Xp_LaCh_LaLi->scale(1.,_SumOfudsWeights/_SumOfcWeights);
      divide(_h_XpLambdaBottom, _h_XpLambdaLight, _s_Xp_LaBo_LaLi);
      _s_Xp_LaBo_LaLi->scale(1.,_SumOfudsWeights/_SumOfbWeights);
      divide(_h_XpK0Charm, _h_XpK0Light, _s_Xp_K0Ch_K0Li);
      _s_Xp_K0Ch_K0Li->scale(1.,_SumOfudsWeights/_SumOfcWeights);
      divide(_h_XpK0Bottom, _h_XpK0Light, _s_Xp_K0Bo_K0Li);
      _s_Xp_K0Bo_K0Li->scale(1.,_SumOfudsWeights/_SumOfbWeights);
      divide(_h_XpPhiCharm, _h_XpPhiLight, _s_Xp_PhiCh_PhiLi);
      _s_Xp_PhiCh_PhiLi->scale(1.,_SumOfudsWeights/_SumOfcWeights);
      divide(_h_XpPhiBottom, _h_XpPhiLight, _s_Xp_PhiBo_PhiLi);
      _s_Xp_PhiBo_PhiLi->scale(1.,_SumOfudsWeights/_SumOfbWeights);

      // Then the leading particles
      divide(*_h_RPiMinus - *_h_RPiPlus, *_h_RPiMinus + *_h_RPiPlus, _s_PiM_PiP);
      divide(*_h_RKSBar0 - *_h_RKS0, *_h_RKSBar0 + *_h_RKS0, _s_KSBar0_KS0);
      divide(*_h_RKMinus - *_h_RKPlus, *_h_RKMinus + *_h_RKPlus, _s_KM_KP);
      divide(*_h_RProton - *_h_RPBar, *_h_RProton + *_h_RPBar, _s_Pr_PBar);
      divide(*_h_RLambda - *_h_RLBar, *_h_RLambda + *_h_RLBar, _s_Lam_LBar);

      // Then the rest
      scale(_h_XpPiPlusN,      1/sumOfWeights());
      scale(_h_XpKPlusN,       1/sumOfWeights());
      scale(_h_XpProtonN,      1/sumOfWeights());
      scale(_h_XpChargedN,     1/sumOfWeights());
      scale(_h_XpK0N,          1/sumOfWeights());
      scale(_h_XpLambdaN,      1/sumOfWeights());
      scale(_h_XpKStar0N,      1/sumOfWeights());
      scale(_h_XpPhiN,         1/sumOfWeights());
      scale(_h_XpPiPlusLight,  1/_SumOfudsWeights);
      scale(_h_XpPiPlusCharm,  1/_SumOfcWeights);
      scale(_h_XpPiPlusBottom, 1/_SumOfbWeights);
      scale(_h_XpKPlusLight,   1/_SumOfudsWeights);
      scale(_h_XpKPlusCharm,   1/_SumOfcWeights);
      scale(_h_XpKPlusBottom,  1/_SumOfbWeights);
      scale(_h_XpKStar0Light,  1/_SumOfudsWeights);
      scale(_h_XpKStar0Charm,  1/_SumOfcWeights);
      scale(_h_XpKStar0Bottom, 1/_SumOfbWeights);
      scale(_h_XpProtonLight,  1/_SumOfudsWeights);
      scale(_h_XpProtonCharm,  1/_SumOfcWeights);
      scale(_h_XpProtonBottom, 1/_SumOfbWeights);
      scale(_h_XpLambdaLight,  1/_SumOfudsWeights);
      scale(_h_XpLambdaCharm,  1/_SumOfcWeights);
      scale(_h_XpLambdaBottom, 1/_SumOfbWeights);
      scale(_h_XpK0Light,      1/_SumOfudsWeights);
      scale(_h_XpK0Charm,      1/_SumOfcWeights);
      scale(_h_XpK0Bottom,     1/_SumOfbWeights);
      scale(_h_XpPhiLight,     1/_SumOfudsWeights);
      scale(_h_XpPhiCharm ,    1/_SumOfcWeights);
      scale(_h_XpPhiBottom,    1/_SumOfbWeights);
      scale(_h_RPiPlus,        1/_SumOfudsWeights);
      scale(_h_RPiMinus,       1/_SumOfudsWeights);
      scale(_h_RKS0,           1/_SumOfudsWeights);
      scale(_h_RKSBar0,        1/_SumOfudsWeights);
      scale(_h_RKPlus,         1/_SumOfudsWeights);
      scale(_h_RKMinus,        1/_SumOfudsWeights);
      scale(_h_RProton,        1/_SumOfudsWeights);
      scale(_h_RPBar,          1/_SumOfudsWeights);
      scale(_h_RLambda,        1/_SumOfudsWeights);
      scale(_h_RLBar,          1/_SumOfudsWeights);

      // Multiplicities
      double avgNumPartsAll, avgNumPartsLight,avgNumPartsCharm, avgNumPartsBottom;
      // pi+/-
      // all
      avgNumPartsAll = _multPiPlus[0]/sumOfWeights();
      bookScatter2D(24, 1, 1, true)->point(0).setY(avgNumPartsAll);
      // light
      avgNumPartsLight = _multPiPlus[1]/_SumOfudsWeights;
      bookScatter2D(24, 1, 2, true)->point(0).setY(avgNumPartsLight);
      // charm
      avgNumPartsCharm = _multPiPlus[2]/_SumOfcWeights;
      bookScatter2D(24, 1, 3, true)->point(0).setY(avgNumPartsCharm);
      // bottom
      avgNumPartsBottom = _multPiPlus[3]/_SumOfbWeights;
      bookScatter2D(24, 1, 4, true)->point(0).setY(avgNumPartsBottom);
      // charm-light
      bookScatter2D(25, 1, 1, true)->point(0).setY(avgNumPartsCharm - avgNumPartsLight);
      // bottom-light
      bookScatter2D(25, 1, 2, true)->point(0).setY(avgNumPartsBottom - avgNumPartsLight);
      // K+/-
      // all
      avgNumPartsAll = _multKPlus[0]/sumOfWeights();
      bookScatter2D(24, 2, 1, true)->point(0).setY(avgNumPartsAll);
      // light
      avgNumPartsLight = _multKPlus[1]/_SumOfudsWeights;
      bookScatter2D(24, 2, 2, true)->point(0).setY(avgNumPartsLight);
      // charm
      avgNumPartsCharm = _multKPlus[2]/_SumOfcWeights;
      bookScatter2D(24, 2, 3, true)->point(0).setY(avgNumPartsCharm);
      // bottom
      avgNumPartsBottom = _multKPlus[3]/_SumOfbWeights;
      bookScatter2D(24, 2, 4, true)->point(0).setY(avgNumPartsBottom);
      // charm-light
      bookScatter2D(25, 2, 1, true)->point(0).setY(avgNumPartsCharm - avgNumPartsLight);
      // bottom-light
      bookScatter2D(25, 2, 2, true)->point(0).setY(avgNumPartsBottom - avgNumPartsLight);
      // K0
      // all
      avgNumPartsAll = _multK0[0]/sumOfWeights();
      bookScatter2D(24, 3, 1, true)->point(0).setY(avgNumPartsAll);
      // light
      avgNumPartsLight = _multK0[1]/_SumOfudsWeights;
      bookScatter2D(24, 3, 2, true)->point(0).setY(avgNumPartsLight);
      // charm
      avgNumPartsCharm = _multK0[2]/_SumOfcWeights;
      bookScatter2D(24, 3, 3, true)->point(0).setY(avgNumPartsCharm);
      // bottom
      avgNumPartsBottom = _multK0[3]/_SumOfbWeights;
      bookScatter2D(24, 3, 4, true)->point(0).setY(avgNumPartsBottom);
      // charm-light
      bookScatter2D(25, 3, 1, true)->point(0).setY(avgNumPartsCharm - avgNumPartsLight);
      // bottom-light
      bookScatter2D(25, 3, 2, true)->point(0).setY(avgNumPartsBottom - avgNumPartsLight);
      // K*0
      // all
      avgNumPartsAll = _multKStar0[0]/sumOfWeights();
      bookScatter2D(24, 4, 1, true)->point(0).setY(avgNumPartsAll);
      // light
      avgNumPartsLight = _multKStar0[1]/_SumOfudsWeights;
      bookScatter2D(24, 4, 2, true)->point(0).setY(avgNumPartsLight);
      // charm
      avgNumPartsCharm = _multKStar0[2]/_SumOfcWeights;
      bookScatter2D(24, 4, 3, true)->point(0).setY(avgNumPartsCharm);
      // bottom
      avgNumPartsBottom = _multKStar0[3]/_SumOfbWeights;
      bookScatter2D(24, 4, 4, true)->point(0).setY(avgNumPartsBottom);
      // charm-light
      bookScatter2D(25, 4, 1, true)->point(0).setY(avgNumPartsCharm - avgNumPartsLight);
      // bottom-light
      bookScatter2D(25, 4, 2, true)->point(0).setY(avgNumPartsBottom - avgNumPartsLight);
      // phi
      // all
      avgNumPartsAll = _multPhi[0]/sumOfWeights();
      bookScatter2D(24, 5, 1, true)->point(0).setY(avgNumPartsAll);
      // light
      avgNumPartsLight = _multPhi[1]/_SumOfudsWeights;
      bookScatter2D(24, 5, 2, true)->point(0).setY(avgNumPartsLight);
      // charm
      avgNumPartsCharm = _multPhi[2]/_SumOfcWeights;
      bookScatter2D(24, 5, 3, true)->point(0).setY(avgNumPartsCharm);
      // bottom
      avgNumPartsBottom = _multPhi[3]/_SumOfbWeights;
      bookScatter2D(24, 5, 4, true)->point(0).setY(avgNumPartsBottom);
      // charm-light
      bookScatter2D(25, 5, 1, true)->point(0).setY(avgNumPartsCharm - avgNumPartsLight);
      // bottom-light
      bookScatter2D(25, 5, 2, true)->point(0).setY(avgNumPartsBottom - avgNumPartsLight);
      // p
      // all
      avgNumPartsAll = _multProton[0]/sumOfWeights();
      bookScatter2D(24, 6, 1, true)->point(0).setY(avgNumPartsAll);
      // light
      avgNumPartsLight = _multProton[1]/_SumOfudsWeights;
      bookScatter2D(24, 6, 2, true)->point(0).setY(avgNumPartsLight);
      // charm
      avgNumPartsCharm = _multProton[2]/_SumOfcWeights;
      bookScatter2D(24, 6, 3, true)->point(0).setY(avgNumPartsCharm);
      // bottom
      avgNumPartsBottom = _multProton[3]/_SumOfbWeights;
      bookScatter2D(24, 6, 4, true)->point(0).setY(avgNumPartsBottom);
      // charm-light
      bookScatter2D(25, 6, 1, true)->point(0).setY(avgNumPartsCharm - avgNumPartsLight);
      // bottom-light
      bookScatter2D(25, 6, 2, true)->point(0).setY(avgNumPartsBottom - avgNumPartsLight);
      // Lambda
      // all
      avgNumPartsAll = _multLambda[0]/sumOfWeights();
      bookScatter2D(24, 7, 1, true)->point(0).setY(avgNumPartsAll);
      // light
      avgNumPartsLight = _multLambda[1]/_SumOfudsWeights;
      bookScatter2D(24, 7, 2, true)->point(0).setY(avgNumPartsLight);
      // charm
      avgNumPartsCharm = _multLambda[2]/_SumOfcWeights;
      bookScatter2D(24, 7, 3, true)->point(0).setY(avgNumPartsCharm);
      // bottom
      avgNumPartsBottom = _multLambda[3]/_SumOfbWeights;
      bookScatter2D(24, 7, 4, true)->point(0).setY(avgNumPartsBottom);
      // charm-light
      bookScatter2D(25, 7, 1, true)->point(0).setY(avgNumPartsCharm - avgNumPartsLight);
      // bottom-light
      bookScatter2D(25, 7, 2, true)->point(0).setY(avgNumPartsBottom - avgNumPartsLight);
    }
const shared_ptr<AO> getAnalysisObject ( const std::string &  name) const [inline, protected, inherited]

Get a data object from the histogram system

Todo:
Use this default function template arg in C++11

Definition at line 739 of file Analysis.hh.

References Analysis::analysisObjects(), and Analysis::histoPath().

                                                                        {
      foreach (const AnalysisObjectPtr& ao, analysisObjects()) {
        if (ao->path() == histoPath(name)) return dynamic_pointer_cast<AO>(ao);
      }
      throw Exception("Data object " + histoPath(name) + " not found");
    }
shared_ptr<AO> getAnalysisObject ( const std::string &  name) [inline, protected, inherited]

Get a data object from the histogram system (non-const)

Todo:
Use this default function template arg in C++11

Definition at line 750 of file Analysis.hh.

References Analysis::analysisObjects(), and Analysis::histoPath().

                                                            {
      foreach (const AnalysisObjectPtr& ao, analysisObjects()) {
        if (ao->path() == histoPath(name)) return dynamic_pointer_cast<AO>(ao);
      }
      throw Exception("Data object " + histoPath(name) + " not found");
    }
const Histo1DPtr getHisto1D ( const std::string &  name) const [inline, protected, inherited]

Get a named Histo1D object from the histogram system.

Definition at line 765 of file Analysis.hh.

References Analysis::name().

                                                             {
      return getAnalysisObject<Histo1D>(name);
    }
Histo1DPtr getHisto1D ( const std::string &  name) [inline, protected, inherited]

Get a named Histo1D object from the histogram system (non-const)

Definition at line 770 of file Analysis.hh.

References Analysis::name().

                                                 {
      return getAnalysisObject<Histo1D>(name);
    }
const Histo1DPtr getHisto1D ( unsigned int  datasetId,
unsigned int  xAxisId,
unsigned int  yAxisId 
) const [inline, protected, inherited]

Get a Histo1D object from the histogram system by axis ID codes (non-const)

Definition at line 775 of file Analysis.hh.

References Analysis::makeAxisCode().

                                                                                                          {
      return getAnalysisObject<Histo1D>(makeAxisCode(datasetId, xAxisId, yAxisId));
    }
Histo1DPtr getHisto1D ( unsigned int  datasetId,
unsigned int  xAxisId,
unsigned int  yAxisId 
) [inline, protected, inherited]

Get a Histo1D object from the histogram system by axis ID codes (non-const)

Definition at line 780 of file Analysis.hh.

References Analysis::makeAxisCode().

                                                                                              {
      return getAnalysisObject<Histo1D>(makeAxisCode(datasetId, xAxisId, yAxisId));
    }
Log & getLog ( ) const [protected, inherited]

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

Reimplemented from ProjectionApplier.

Definition at line 82 of file Analysis.cc.

References Analysis::name().

                              {
    string logname = "Rivet.Analysis." + name();
    return Log::getLog(logname);
  }
const Profile1DPtr getProfile1D ( const std::string &  name) const [inline, protected, inherited]

Get a named Profile1D object from the histogram system.

Definition at line 807 of file Analysis.hh.

References Analysis::name().

                                                                 {
      return getAnalysisObject<Profile1D>(name);
    }
Profile1DPtr getProfile1D ( const std::string &  name) [inline, protected, inherited]

Get a named Profile1D object from the histogram system (non-const)

Definition at line 812 of file Analysis.hh.

References Analysis::name().

                                                     {
      return getAnalysisObject<Profile1D>(name);
    }
const Profile1DPtr getProfile1D ( unsigned int  datasetId,
unsigned int  xAxisId,
unsigned int  yAxisId 
) const [inline, protected, inherited]

Get a Profile1D object from the histogram system by axis ID codes (non-const)

Definition at line 817 of file Analysis.hh.

References Analysis::makeAxisCode().

                                                                                                              {
      return getAnalysisObject<Profile1D>(makeAxisCode(datasetId, xAxisId, yAxisId));
    }
Profile1DPtr getProfile1D ( unsigned int  datasetId,
unsigned int  xAxisId,
unsigned int  yAxisId 
) [inline, protected, inherited]

Get a Profile1D object from the histogram system by axis ID codes (non-const)

Definition at line 822 of file Analysis.hh.

References Analysis::makeAxisCode().

                                                                                                  {
      return getAnalysisObject<Profile1D>(makeAxisCode(datasetId, xAxisId, yAxisId));
    }
const PROJ& getProjection ( const std::string &  name) const [inline, inherited]

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

Definition at line 52 of file ProjectionApplier.hh.

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

Referenced by ProjectionApplier::_applyProjection(), Rivet::pcmp(), and Hemispheres::project().

                                                           {
      const Projection& p = getProjHandler().getProjection(*this, name);
      return pcast<PROJ>(p);
    }
const Projection& getProjection ( const std::string &  name) const [inline, inherited]

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

Definition at line 60 of file ProjectionApplier.hh.

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

                                                                 {
      return getProjHandler().getProjection(*this, name);
    }
std::set<ConstProjectionPtr> getProjections ( ) const [inline, inherited]

Get the contained projections, including recursion.

Definition at line 45 of file ProjectionApplier.hh.

References ProjectionHandler::DEEP, ProjectionHandler::getChildProjections(), and ProjectionApplier::getProjHandler().

Referenced by Projection::beamPairs().

const Scatter2DPtr getScatter2D ( const std::string &  name) const [inline, protected, inherited]

Get a named Scatter2D object from the histogram system.

Definition at line 849 of file Analysis.hh.

References Analysis::name().

Referenced by ATLAS_2014_I1279489::finalizeEfficiencies().

                                                                 {
      return getAnalysisObject<Scatter2D>(name);
    }
Scatter2DPtr getScatter2D ( const std::string &  name) [inline, protected, inherited]

Get a named Scatter2D object from the histogram system (non-const)

Definition at line 854 of file Analysis.hh.

References Analysis::name().

                                                     {
      return getAnalysisObject<Scatter2D>(name);
    }
const Scatter2DPtr getScatter2D ( unsigned int  datasetId,
unsigned int  xAxisId,
unsigned int  yAxisId 
) const [inline, protected, inherited]

Get a Scatter2D object from the histogram system by axis ID codes (non-const)

Definition at line 859 of file Analysis.hh.

References Analysis::makeAxisCode().

                                                                                                              {
      return getAnalysisObject<Scatter2D>(makeAxisCode(datasetId, xAxisId, yAxisId));
    }
Scatter2DPtr getScatter2D ( unsigned int  datasetId,
unsigned int  xAxisId,
unsigned int  yAxisId 
) [inline, protected, inherited]

Get a Scatter2D object from the histogram system by axis ID codes (non-const)

Definition at line 864 of file Analysis.hh.

References Analysis::makeAxisCode().

                                                                                                  {
      return getAnalysisObject<Scatter2D>(makeAxisCode(datasetId, xAxisId, yAxisId));
    }
AnalysisHandler& handler ( ) const [inline, inherited]
const string histoDir ( ) const [protected, inherited]

Get the canonical histogram "directory" path for this analysis.

Todo:
Cache in a member variable

Definition at line 40 of file Analysis.cc.

References Analysis::handler(), Analysis::name(), and AnalysisHandler::runName().

Referenced by Analysis::histoPath().

                                        {
    /// @todo Cache in a member variable
    string _histoDir;
    if (_histoDir.empty()) {
      _histoDir = "/" + name();
      if (handler().runName().length() > 0) {
        _histoDir = "/" + handler().runName() + _histoDir;
      }
      while (find_first(_histoDir, "//")) {
        replace_all(_histoDir, "//", "/");
      }
    }
    return _histoDir;
  }
const string histoPath ( const std::string &  hname) const [protected, inherited]

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

Definition at line 56 of file Analysis.cc.

References Analysis::histoDir().

Referenced by Analysis::bookHisto1D(), Analysis::bookHisto2D(), Analysis::bookProfile1D(), Analysis::bookProfile2D(), Analysis::bookScatter2D(), ATLAS_2012_I1094061::HistoPair::finalize(), H1_1995_S3167097::finalize(), and Analysis::getAnalysisObject().

                                                            {
    const string path = histoDir() + "/" + hname;
    return path;
  }
const string histoPath ( unsigned int  datasetId,
unsigned int  xAxisId,
unsigned int  yAxisId 
) const [protected, inherited]

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

Definition at line 62 of file Analysis.cc.

References Analysis::histoDir(), and Analysis::makeAxisCode().

                                                                                                           {
    return histoDir() + "/" + makeAxisCode(datasetId, xAxisId, yAxisId);
  }
AnalysisInfo& info ( ) [inline, inherited]

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

Definition at line 246 of file Analysis.hh.

References Analysis::_info.

                         {
      assert(_info.get() != 0 && "No AnalysisInfo object :O");
      return *_info;
    }
void init ( ) [inline, virtual]

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.

Reimplemented from Analysis.

Definition at line 294 of file SLD_1999_S3743934.cc.

References SLD_1999_S3743934::_h_RKMinus, SLD_1999_S3743934::_h_RKPlus, SLD_1999_S3743934::_h_RKS0, SLD_1999_S3743934::_h_RKSBar0, SLD_1999_S3743934::_h_RLambda, SLD_1999_S3743934::_h_RLBar, SLD_1999_S3743934::_h_RPBar, SLD_1999_S3743934::_h_RPiMinus, SLD_1999_S3743934::_h_RPiPlus, SLD_1999_S3743934::_h_RProton, SLD_1999_S3743934::_h_XpChargedN, SLD_1999_S3743934::_h_XpK0Bottom, SLD_1999_S3743934::_h_XpK0Charm, SLD_1999_S3743934::_h_XpK0Light, SLD_1999_S3743934::_h_XpK0N, SLD_1999_S3743934::_h_XpKPlusBottom, SLD_1999_S3743934::_h_XpKPlusCharm, SLD_1999_S3743934::_h_XpKPlusLight, SLD_1999_S3743934::_h_XpKPlusN, SLD_1999_S3743934::_h_XpKStar0Bottom, SLD_1999_S3743934::_h_XpKStar0Charm, SLD_1999_S3743934::_h_XpKStar0Light, SLD_1999_S3743934::_h_XpKStar0N, SLD_1999_S3743934::_h_XpLambdaBottom, SLD_1999_S3743934::_h_XpLambdaCharm, SLD_1999_S3743934::_h_XpLambdaLight, SLD_1999_S3743934::_h_XpLambdaN, SLD_1999_S3743934::_h_XpPhiBottom, SLD_1999_S3743934::_h_XpPhiCharm, SLD_1999_S3743934::_h_XpPhiLight, SLD_1999_S3743934::_h_XpPhiN, SLD_1999_S3743934::_h_XpPiPlusBottom, SLD_1999_S3743934::_h_XpPiPlusCharm, SLD_1999_S3743934::_h_XpPiPlusLight, SLD_1999_S3743934::_h_XpPiPlusN, SLD_1999_S3743934::_h_XpProtonBottom, SLD_1999_S3743934::_h_XpProtonCharm, SLD_1999_S3743934::_h_XpProtonLight, SLD_1999_S3743934::_h_XpProtonN, SLD_1999_S3743934::_s_KM_KP, SLD_1999_S3743934::_s_KSBar0_KS0, SLD_1999_S3743934::_s_Lam_LBar, SLD_1999_S3743934::_s_PiM_PiP, SLD_1999_S3743934::_s_Pr_PBar, SLD_1999_S3743934::_s_Xp_K0Bo_K0Li, SLD_1999_S3743934::_s_Xp_K0Ch_K0Li, SLD_1999_S3743934::_s_Xp_KPl_Ch, SLD_1999_S3743934::_s_Xp_KPlBo_KPlLi, SLD_1999_S3743934::_s_Xp_KPlCh_KPlLi, SLD_1999_S3743934::_s_Xp_KS0Bo_KS0Li, SLD_1999_S3743934::_s_Xp_KS0Ch_KS0Li, SLD_1999_S3743934::_s_Xp_LaBo_LaLi, SLD_1999_S3743934::_s_Xp_LaCh_LaLi, SLD_1999_S3743934::_s_Xp_PhiBo_PhiLi, SLD_1999_S3743934::_s_Xp_PhiCh_PhiLi, SLD_1999_S3743934::_s_Xp_PiPl_Ch, SLD_1999_S3743934::_s_Xp_PiPlBo_PiPlLi, SLD_1999_S3743934::_s_Xp_PiPlCh_PiPlLi, SLD_1999_S3743934::_s_Xp_Pr_Ch, SLD_1999_S3743934::_s_Xp_PrBo_PrLi, SLD_1999_S3743934::_s_Xp_PrCh_PrLi, SLD_1999_S3743934::_temp_XpChargedN1, SLD_1999_S3743934::_temp_XpChargedN2, SLD_1999_S3743934::_temp_XpChargedN3, SLD_1999_S3743934::_temp_XpKPlusCharm, SLD_1999_S3743934::_temp_XpKPlusLight, SLD_1999_S3743934::_temp_XpKStar0Charm, SLD_1999_S3743934::_temp_XpKStar0Light, SLD_1999_S3743934::_temp_XpProtonCharm, SLD_1999_S3743934::_temp_XpProtonLight, ProjectionApplier::addProjection(), Analysis::bookHisto1D(), Analysis::bookScatter2D(), and Analysis::refData().

                {
      // Projections
      addProjection(Beam(), "Beams");
      addProjection(ChargedFinalState(), "FS");
      addProjection(UnstableFinalState(), "UFS");
      addProjection(InitialQuarks(), "IQF");
      addProjection(Thrust(FinalState()), "Thrust");

      _temp_XpChargedN1 = bookHisto1D("TMP/XpChargedN1", refData( 1, 1, 1));
      _temp_XpChargedN2 = bookHisto1D("TMP/XpChargedN2", refData( 2, 1, 1));
      _temp_XpChargedN3 = bookHisto1D("TMP/XpChargedN3", refData( 3, 1, 1));

      _h_XpPiPlusN      = bookHisto1D( 1, 1, 2);
      _h_XpKPlusN       = bookHisto1D( 2, 1, 2);
      _h_XpProtonN      = bookHisto1D( 3, 1, 2);
      _h_XpChargedN     = bookHisto1D( 4, 1, 1);
      _h_XpK0N          = bookHisto1D( 5, 1, 1);
      _h_XpLambdaN      = bookHisto1D( 7, 1, 1);
      _h_XpKStar0N      = bookHisto1D( 8, 1, 1);
      _h_XpPhiN         = bookHisto1D( 9, 1, 1);

      _h_XpPiPlusLight  = bookHisto1D(10, 1, 1);
      _h_XpPiPlusCharm  = bookHisto1D(10, 1, 2);
      _h_XpPiPlusBottom = bookHisto1D(10, 1, 3);
      _h_XpKPlusLight   = bookHisto1D(12, 1, 1);
      _h_XpKPlusCharm   = bookHisto1D(12, 1, 2);
      _h_XpKPlusBottom  = bookHisto1D(12, 1, 3);
      _h_XpKStar0Light  = bookHisto1D(14, 1, 1);
      _h_XpKStar0Charm  = bookHisto1D(14, 1, 2);
      _h_XpKStar0Bottom = bookHisto1D(14, 1, 3);
      _h_XpProtonLight  = bookHisto1D(16, 1, 1);
      _h_XpProtonCharm  = bookHisto1D(16, 1, 2);
      _h_XpProtonBottom = bookHisto1D(16, 1, 3);
      _h_XpLambdaLight  = bookHisto1D(18, 1, 1);
      _h_XpLambdaCharm  = bookHisto1D(18, 1, 2);
      _h_XpLambdaBottom = bookHisto1D(18, 1, 3);
      _h_XpK0Light      = bookHisto1D(20, 1, 1);
      _h_XpK0Charm      = bookHisto1D(20, 1, 2);
      _h_XpK0Bottom     = bookHisto1D(20, 1, 3);
      _h_XpPhiLight     = bookHisto1D(22, 1, 1);
      _h_XpPhiCharm     = bookHisto1D(22, 1, 2);
      _h_XpPhiBottom    = bookHisto1D(22, 1, 3);

      _temp_XpKPlusCharm   = bookHisto1D("TMP/XpKPlusCharm", refData(13, 1, 1));
      _temp_XpKPlusLight   = bookHisto1D("TMP/XpKPlusLight", refData(13, 1, 1));
      _temp_XpKStar0Charm  = bookHisto1D("TMP/XpKStar0Charm", refData(15, 1, 1));
      _temp_XpKStar0Light  = bookHisto1D("TMP/XpKStar0Light", refData(15, 1, 1));
      _temp_XpProtonCharm  = bookHisto1D("TMP/XpProtonCharm", refData(17, 1, 1));
      _temp_XpProtonLight  = bookHisto1D("TMP/XpProtonLight", refData(17, 1, 1));

      _h_RPiPlus  = bookHisto1D( 26, 1, 1);
      _h_RPiMinus = bookHisto1D( 26, 1, 2);
      _h_RKS0     = bookHisto1D( 28, 1, 1);
      _h_RKSBar0  = bookHisto1D( 28, 1, 2);
      _h_RKPlus   = bookHisto1D( 30, 1, 1);
      _h_RKMinus  = bookHisto1D( 30, 1, 2);
      _h_RProton  = bookHisto1D( 32, 1, 1);
      _h_RPBar    = bookHisto1D( 32, 1, 2);
      _h_RLambda  = bookHisto1D( 34, 1, 1);
      _h_RLBar    = bookHisto1D( 34, 1, 2);

      _s_Xp_PiPl_Ch        = bookScatter2D(1, 1, 1);
      _s_Xp_KPl_Ch         = bookScatter2D(2, 1, 1);
      _s_Xp_Pr_Ch          = bookScatter2D(3, 1, 1);
      _s_Xp_PiPlCh_PiPlLi  = bookScatter2D(11, 1, 1);
      _s_Xp_PiPlBo_PiPlLi  = bookScatter2D(11, 1, 2);
      _s_Xp_KPlCh_KPlLi    = bookScatter2D(13, 1, 1);
      _s_Xp_KPlBo_KPlLi    = bookScatter2D(13, 1, 2);
      _s_Xp_KS0Ch_KS0Li    = bookScatter2D(15, 1, 1);
      _s_Xp_KS0Bo_KS0Li    = bookScatter2D(15, 1, 2);
      _s_Xp_PrCh_PrLi      = bookScatter2D(17, 1, 1);
      _s_Xp_PrBo_PrLi      = bookScatter2D(17, 1, 2);
      _s_Xp_LaCh_LaLi      = bookScatter2D(19, 1, 1);
      _s_Xp_LaBo_LaLi      = bookScatter2D(19, 1, 2);
      _s_Xp_K0Ch_K0Li      = bookScatter2D(21, 1, 1);
      _s_Xp_K0Bo_K0Li      = bookScatter2D(21, 1, 2);
      _s_Xp_PhiCh_PhiLi    = bookScatter2D(23, 1, 1);
      _s_Xp_PhiBo_PhiLi    = bookScatter2D(23, 1, 2);

      _s_PiM_PiP    = bookScatter2D(27, 1, 1);
      _s_KSBar0_KS0 = bookScatter2D(29, 1, 1);
      _s_KM_KP      = bookScatter2D(31, 1, 1);
      _s_Pr_PBar    = bookScatter2D(33, 1, 1);
      _s_Lam_LBar   = bookScatter2D(35, 1, 1);
    }
virtual std::string inspireId ( ) const [inline, virtual, inherited]

Get the Inspire ID code for this analysis.

Definition at line 119 of file Analysis.hh.

References Analysis::info(), and AnalysisInfo::inspireId().

                                        {
      return info().inspireId();
    }
void integrate ( Histo1DPtr  h,
Scatter2DPtr  s 
) const [inherited]

Helper for converting a differential histo to an integral one.

Note:
Assigns to the (already registered) output scatter, s. Preserves the path information of the target.
Todo:
2D versions of scale and normalize...

Definition at line 700 of file Analysis.cc.

                                                             {
    // preserve the path info
    const string path = s->path();
    *s = toIntegralHisto(*h);
    s->setPath(path);
  }
void integrate ( const Histo1D &  h,
Scatter2DPtr  s 
) const [inherited]

Helper for converting a differential histo to an integral one.

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

Definition at line 707 of file Analysis.cc.

                                                                 {
    // preserve the path info
    const string path = s->path();
    *s = toIntegralHisto(h);
    s->setPath(path);
  }
bool isCompatible ( const ParticlePair beams) const [inherited]

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

Definition at line 101 of file Analysis.cc.

Referenced by Analysis::isCompatible().

                                                             {
    return isCompatible(beams.first.pid(),  beams.second.pid(),
                        beams.first.energy(), beams.second.energy());
  }
bool isCompatible ( PdgId  beam1,
PdgId  beam2,
double  e1,
double  e2 
) const [inherited]

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

Definition at line 107 of file Analysis.cc.

References Analysis::beams(), and Analysis::isCompatible().

                                                                                  {
    PdgIdPair beams(beam1, beam2);
    pair<double,double> energies(e1, e2);
    return isCompatible(beams, energies);
  }
bool isCompatible ( const PdgIdPair beams,
const std::pair< double, double > &  energies 
) const [inherited]

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

const string makeAxisCode ( unsigned int  datasetId,
unsigned int  xAxisId,
unsigned int  yAxisId 
) const [protected, inherited]

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

Definition at line 67 of file Analysis.cc.

Referenced by Analysis::bookHisto1D(), Analysis::bookProfile1D(), Analysis::bookScatter2D(), Analysis::getHisto1D(), Analysis::getProfile1D(), Analysis::getScatter2D(), Analysis::histoPath(), and Analysis::refData().

                                                                                                              {
    stringstream axisCode;
    axisCode << "d";
    if (datasetId < 10) axisCode << 0;
    axisCode << datasetId;
    axisCode << "-x";
    if (xAxisId < 10) axisCode << 0;
    axisCode << xAxisId;
    axisCode << "-y";
    if (yAxisId < 10) axisCode << 0;
    axisCode << yAxisId;
    return axisCode.str();
  }
virtual std::string name ( ) const [inline, virtual, inherited]

Get the name of the analysis.

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.

Implements ProjectionApplier.

Definition at line 114 of file Analysis.hh.

References Analysis::_defaultname, Analysis::info(), and AnalysisInfo::name().

Referenced by Analysis::_cacheRefData(), Analysis::Analysis(), Analysis::bookHisto1D(), Analysis::bookHisto2D(), Analysis::bookProfile1D(), Analysis::bookProfile2D(), Analysis::bookScatter2D(), Analysis::crossSection(), Analysis::getHisto1D(), Analysis::getLog(), Analysis::getProfile1D(), Analysis::getScatter2D(), Analysis::histoDir(), Analysis::normalize(), Analysis::refData(), and Analysis::scale().

                                   {
      return (info().name().empty()) ? _defaultname : info().name();
    }
bool needsCrossSection ( ) const [inline, inherited]

Return true if this analysis needs to know the process cross-section.

Todo:
Remove this and require HepMC >= 2.06

Definition at line 229 of file Analysis.hh.

References Analysis::info(), and AnalysisInfo::needsCrossSection().

                                   {
      return info().needsCrossSection();
    }
void normalize ( Histo1DPtr  histo,
double  norm = 1.0,
bool  includeoverflows = true 
) [inherited]

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

Note:
The histogram is no longer invalidated by this procedure.

Definition at line 652 of file Analysis.cc.

References MSG_ERROR, MSG_TRACE, MSG_WARNING, and Analysis::name().

Referenced by CMS_2011_S8950903::finalize(), TOTEM_2012_002::finalize(), CMS_2015_I1327224::finalize(), CMS_2011_S8968497::finalize(), CMS_2012_I1090423::finalize(), D0_2010_S8671338::finalize(), D0_2007_S7075677::finalize(), MC_JETTAGS::finalize(), CDF_2009_NOTE_9936::finalize(), D0_2008_S7554427::finalize(), MC_HINC::finalize(), MC_HJETS::finalize(), EXAMPLE_CUTS::finalize(), BABAR_2005_S6181155::finalize(), ATLAS_2015_I1387176::finalize(), CMS_2013_I1265659::finalize(), ALICE_2010_S8624100::finalize(), ATLAS_2011_S8971293::finalize(), ALICE_2010_S8625980::finalize(), CDF_1996_S3418421::finalize(), D0_2009_S8320160::finalize(), CDF_1993_S2742446::finalize(), CMS_2011_S8957746::finalize(), D0_1996_S3324664::finalize(), ATLAS_2012_I1119557::finalize(), CMS_2013_I1273574::finalize(), DELPHI_1995_S3137023::finalize(), D0_2010_S8821313::finalize(), SLD_2002_S4869273::finalize(), CMS_2013_I1272853::finalize(), ATLAS_2011_I925932::finalize(), D0_1996_S3214044::finalize(), CDF_1996_S3108457::finalize(), D0_2008_S6879055::finalize(), ATLAS_2014_I1300647::finalize(), ATLAS_2012_I1204784::finalize(), EXAMPLE::finalize(), CDF_1994_S2952106::finalize(), ATLAS_2013_I1216670::finalize(), JADE_1998_S3612880::finalize(), CMS_2013_I1224539_DIJET::finalize(), ALEPH_2001_S4656318::finalize(), DELPHI_2002_069_CONF_603::finalize(), D0_2004_S5992206::finalize(), OPAL_1997_S3396100::finalize(), MC_PHOTONS::finalize(), MC_HFJETS::finalize(), MC_GENERIC::finalize(), D0_2001_S4674421::finalize(), OPAL_2001_S4553896::finalize(), ATLAS_2013_I1217867::finalize(), CMS_2012_I1107658::finalize(), TASSO_1990_S2148048::finalize(), CMS_2013_I1209721::finalize(), ATLAS_2013_I1217863_Z::finalize(), STAR_2008_S7869363::finalize(), ATLAS_2013_I1217863_W::finalize(), OPAL_1998_S3780481::finalize(), CDF_1997_S3541940::finalize(), CMS_2013_I1224539_WJET::finalize(), CMS_2013_I1256943::finalize(), CMS_2013_I1224539_ZJET::finalize(), JADE_OPAL_2000_S4300807::finalize(), ATLAS_2014_I1298811::finalize(), ATLAS_2012_I1124167::finalize(), CMS_2014_I1303894::finalize(), H1_1994_S2919893::finalize(), CDF_2001_S4751469::finalize(), MC_TTBAR::finalize(), ALEPH_2004_S5765862::finalize(), ATLAS_2013_I1190187::finalize(), CDF_2004_S5839831::finalize(), CDF_1996_S3349578::finalize(), ATLAS_2012_I1094564::finalize(), ATLAS_2012_I1203852::finalize(), ALEPH_1996_S3486095::finalize(), DELPHI_1996_S3430090::finalize(), ATLAS_2014_I1279489::finalizePlots(), CMS_2013_I1258128::normalizeByContents(), and ATLAS_2011_I919017::safeinvscale().

                                                                               {
    if (!histo) {
      MSG_ERROR("Failed to normalize histo=NULL in analysis " << name() << " (norm=" << norm << ")");
      return;
    }
    MSG_TRACE("Normalizing histo " << histo->path() << " to " << norm);
    try {
      histo->normalize(norm, includeoverflows);
    } catch (YODA::Exception& we) {
      MSG_WARNING("Could not normalize histo " << histo->path());
      return;
    }
  }
void normalize ( Histo2DPtr  histo,
double  norm = 1.0,
bool  includeoverflows = true 
) [inherited]

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

Note:
The histogram is no longer invalidated by this procedure.
const Scatter2D & refData ( const string &  hname) const [protected, inherited]

Get reference data for a named histo

Todo:
Move to the templated version when we have C++11 and can have a default fn template type

Definition at line 183 of file Analysis.cc.

References Analysis::_cacheRefData(), Analysis::_refdata, MSG_ERROR, MSG_TRACE, and Analysis::name().

Referenced by ATLAS_2011_S8994773::analyze(), CDF_2001_S4751469::analyze(), ATLAS_2010_S8894728::analyze(), Analysis::bookHisto1D(), Analysis::bookProfile1D(), Analysis::bookScatter2D(), OPAL_2002_S5361494::finalize(), DELPHI_2000_S4328825::finalize(), ATLAS_2011_S9128077::finalize(), ALEPH_2004_S5765862::finalize(), ATLAS_2010_S8894728::init(), ALICE_2011_S8909580::init(), LHCB_2013_I1208105::init(), ATLAS_2015_I1387176::init(), ALICE_2015_I1357424::init(), ATLAS_2011_S9002537::init(), CMS_2011_S9088458::init(), ATLAS_2012_I1188891::init(), STAR_2006_S6500200::init(), ATLAS_2011_S9128077::init(), CMS_2012_I1102908::init(), CDF_1994_S2952106::init(), D0_2008_S7837160::init(), CMS_2013_I1218372::init(), LHCB_2011_I917009::init(), CDF_1996_S3418421::init(), LHCB_2012_I1119400::init(), ATLAS_2012_I1093734::init(), SLD_1999_S3743934::init(), ATLAS_2014_I1279489::initialisePlots(), ATLAS_2012_I1125575::initializeHistograms(), ATLAS_2012_I1094568::initializePlots(), ATLAS_2011_S9126244::initializePlots(), and Analysis::refData().

                                                              {
    _cacheRefData();
    MSG_TRACE("Using histo bin edges for " << name() << ":" << hname);
    if (!_refdata[hname]) {
      MSG_ERROR("Can't find reference histogram " << hname);
      throw Exception("Reference data " + hname + " not found.");
    }
    return dynamic_cast<Scatter2D&>(*_refdata[hname]);
  }
const Scatter2D & refData ( unsigned int  datasetId,
unsigned int  xAxisId,
unsigned int  yAxisId 
) const [protected, inherited]

Get reference data for a numbered histo

Todo:
Move to the templated version when we have C++11 and can have a default fn template type

Definition at line 194 of file Analysis.cc.

References Analysis::makeAxisCode(), and Analysis::refData().

                                                                                                             {
    const string hname = makeAxisCode(datasetId, xAxisId, yAxisId);
    return refData(hname);
  }
const T& refData ( const string &  hname) const [inline, protected, inherited]

Get reference data for a named histo

Todo:
Would be nice to just use these and ditch the S2D no-template version, but we need C++11 for default args in function templates
Todo:
SFINAE to ensure that the type inherits from YODA::AnalysisObject?

Definition at line 349 of file Analysis.hh.

References Analysis::_cacheRefData(), Analysis::_refdata, MSG_ERROR, MSG_TRACE, and Analysis::name().

                                                {
      _cacheRefData();
      MSG_TRACE("Using histo bin edges for " << name() << ":" << hname);
      if (!_refdata[hname]) {
        MSG_ERROR("Can't find reference histogram " << hname);
        throw Exception("Reference data " + hname + " not found.");
      }
      return dynamic_cast<T&>(*_refdata[hname]);
    }
const T& refData ( unsigned int  datasetId,
unsigned int  xAxisId,
unsigned int  yAxisId 
) const [inline, protected, inherited]

Get reference data for a numbered histo

Todo:
Would be nice to just use these and ditch the S2D no-template version, but we need C++11 for default args in function templates
Todo:
SFINAE to ensure that the type inherits from YODA::AnalysisObject?

Definition at line 365 of file Analysis.hh.

References Analysis::makeAxisCode(), and Analysis::refData().

                                                                                               {
      const string hname = makeAxisCode(datasetId, xAxisId, yAxisId);
      return refData(hname);
    }
virtual std::vector<std::string> references ( ) const [inline, virtual, inherited]

Journal, and preprint references.

Definition at line 180 of file Analysis.hh.

References Analysis::info(), and AnalysisInfo::references().

                                                    {
      return info().references();
    }
void removeAnalysisObject ( const std::string &  path) [protected, inherited]

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

Definition at line 725 of file Analysis.cc.

References Analysis::_analysisobjects.

Referenced by ATLAS_2014_I1279489::finalizeEfficiencies().

                                                        {
    for (vector<AnalysisObjectPtr>::iterator it = _analysisobjects.begin();  it != _analysisobjects.end(); ++it) {
      if ((*it)->path() == path) {
        _analysisobjects.erase(it);
        break;
      }
    }
  }
void removeAnalysisObject ( AnalysisObjectPtr  ao) [protected, inherited]

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

Definition at line 734 of file Analysis.cc.

References Analysis::_analysisobjects.

                                                          {
    for (vector<AnalysisObjectPtr>::iterator it = _analysisobjects.begin();  it != _analysisobjects.end(); ++it) {
      if (*it == ao) {
        _analysisobjects.erase(it);
        break;
      }
    }
 }
virtual const std::vector<PdgIdPair>& requiredBeams ( ) const [inline, virtual, inherited]

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

Definition at line 206 of file Analysis.hh.

References AnalysisInfo::beams(), and Analysis::info().

                                                              {
      return info().beams();
    }
virtual const std::vector<std::pair<double, double> >& requiredEnergies ( ) const [inline, virtual, inherited]

Sets of valid beam energy pairs, in GeV.

Definition at line 217 of file Analysis.hh.

References AnalysisInfo::energies(), and Analysis::info().

Referenced by Analysis::setRequiredEnergies().

                                                                                {
      return info().energies();
    }
virtual std::string runInfo ( ) const [inline, virtual, inherited]

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)

Definition at line 160 of file Analysis.hh.

References Analysis::info(), and AnalysisInfo::runInfo().

                                      {
      return info().runInfo();
    }
void scale ( Histo1DPtr  histo,
double  scale 
) [inherited]

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

Note:
The histogram is no longer invalidated by this procedure.

Definition at line 667 of file Analysis.cc.

References MSG_ERROR, MSG_TRACE, MSG_WARNING, and Analysis::name().

Referenced by MC_JetSplittings::finalize(), MC_JetAnalysis::finalize(), MC_ParticleAnalysis::finalize(), CDF_2006_S6450792::finalize(), ALEPH_1991_S2435284::finalize(), TOTEM_2014_I1328627::finalize(), D0_2000_S4480767::finalize(), CMS_2015_I1384119::finalize(), E735_1998_S3905616::finalize(), TOTEM_2012_I1115294::finalize(), ATLAS_2010_S8591806::finalize(), D0_2010_S8671338::finalize(), CDF_2001_S4563131::finalize(), CDF_2007_S7057202::finalize(), MC_XS::finalize(), UA5_1987_S1640666::finalize(), CDF_2000_S4155203::finalize(), BELLE_2013_I1216515::finalize(), CDF_2008_S8093652::finalize(), BABAR_2007_S6895344::finalize(), CDF_2000_S4266730::finalize(), CMS_2011_S8941262::finalize(), BELLE_2008_I786560::finalize(), CDF_1998_S3618439::finalize(), CMS_2012_I1184941::finalize(), LHCB_2012_I1208102::finalize(), CDF_1990_S2089246::finalize(), CMS_2012_I1087342::finalize(), CMS_2010_S8656010::finalize(), CMS_2011_I954992::finalize(), CDF_1988_S1865951::finalize(), MC_ZJETS::finalize(), ATLAS_2012_I1118269::finalize(), UA5_1982_S875503::finalize(), CMSTOTEM_2014_I1294140::finalize(), BABAR_2005_S6181155::finalize(), ATLAS_2011_I894867::finalize(), ATLAS_2015_I1387176::finalize(), STAR_2006_S6870392::finalize(), CDF_2009_S8383952::finalize(), CMS_QCD_10_024::finalize(), MC_WJETS::finalize(), LHCB_2010_I867355::finalize(), MC_ZINC::finalize(), BELLE_2001_S4598261::finalize(), OPAL_1995_S3198391::finalize(), CMS_2010_S8547297::finalize(), CMS_2012_I1193338::finalize(), OPAL_1994_S2927284::finalize(), OPAL_1997_S3608263::finalize(), OPAL_2000_S4418603::finalize(), CDF_2009_S8436959::finalize(), LHCB_2011_I919315::finalize(), ALICE_2015_I1357424::finalize(), ALICE_2010_S8625980::finalize(), D0_2011_I895662::finalize(), MC_PDFS::finalize(), ALEPH_2002_S4823664::finalize(), ALICE_2010_S8706239::finalize(), ALEPH_1999_S4193598::finalize(), OPAL_1996_S3257789::finalize(), UA5_1989_S1926373::finalize(), BABAR_2013_I1238276::finalize(), CDF_2005_S6080774::finalize(), ATLAS_2014_I1288706::finalize(), DELPHI_1999_S3960137::finalize(), ATLAS_2014_I1282441::finalize(), ALICE_2011_S8945144::finalize(), MC_IDENTIFIED::finalize(), OPAL_1998_S3702294::finalize(), D0_2006_S6438750::finalize(), CMS_2013_I1273574::finalize(), MC_DIPHOTON::finalize(), ALICE_2011_S8909580::finalize(), STAR_2006_S6500200::finalize(), MC_PHOTONINC::finalize(), UA5_1986_S1583476::finalize(), ATLAS_2011_S9131140::finalize(), CMS_2011_S8978280::finalize(), D0_2000_I499943::finalize(), H1_1995_S3167097::finalize(), BABAR_2003_I593379::finalize(), PDG_TAUS::finalize(), ALICE_2012_I1181770::finalize(), ARGUS_1993_S2653028::finalize(), D0_2008_S7662670::finalize(), D0_2008_S7863608::finalize(), MC_ZZJETS::finalize(), CLEO_2004_S5809304::finalize(), ATLAS_2011_S9035664::finalize(), D0_2009_S8202443::finalize(), D0_2008_S6879055::finalize(), MC_WINC::finalize(), CMS_2011_S9215166::finalize(), CMS_2015_I1346843::finalize(), MC_PHOTONJETS::finalize(), ATLAS_2010_CONF_2010_049::finalize(), ALICE_2014_I1300380::finalize(), ATLAS_2011_I954993::finalize(), ATLAS_2015_CONF_2015_041::finalize(), BABAR_2007_S7266081::finalize(), MC_WWJETS::finalize(), CDF_2009_S8233977::finalize(), CMS_2014_I1298810::finalize(), CMS_2013_I1261026::finalize(), SLD_1996_S3398250::finalize(), ATLAS_2011_I930220::finalize(), ATLAS_2013_I1219109::finalize(), SFM_1984_S1178091::finalize(), CMS_2012_I941555::finalize(), ATLAS_2014_I1298023::finalize(), OPAL_1998_S3749908::finalize(), D0_2010_S8570965::finalize(), D0_2009_S8349509::finalize(), CMS_2011_S8973270::finalize(), ATLAS_2012_I946427::finalize(), ATLAS_2012_I1082009::finalize(), CMS_2015_I1356998::finalize(), CDF_2008_S7541902::finalize(), ARGUS_1993_S2669951::finalize(), ATLAS_2010_S8919674::finalize(), UA1_1990_S2044935::finalize(), ATLAS_2011_I921594::finalize(), ATLAS_2013_I1263495::finalize(), MC_ZZINC::finalize(), MC_WPOL::finalize(), MC_WWINC::finalize(), CMS_2012_I1107658::finalize(), ATLAS_2014_I1312627::finalize(), ATLAS_2015_I1364361::finalize(), ALEPH_1996_S3196992::finalize(), ATLAS_2013_I1217863_Z::finalize(), CDF_2006_S6653332::finalize(), OPAL_1993_S2692198::finalize(), ATLAS_2013_I1217863_W::finalize(), D0_2008_S7719523::finalize(), CDF_2008_S8095620::finalize(), OPAL_1998_S3780481::finalize(), STAR_2006_S6860818::finalize(), CMS_2013_I1218372::finalize(), ATLAS_2012_I1091481::finalize(), ATLAS_2011_S9128077::finalize(), CMS_2015_I1310737::finalize(), ATLAS_2011_I926145::finalize(), LHCB_2014_I1281685::finalize(), ATLAS_2013_I1244522::finalize(), ATLAS_2010_S8918562::finalize(), JADE_OPAL_2000_S4300807::finalize(), ATLAS_2014_I1306294::finalize(), ATLAS_2011_S9108483::finalize(), CDF_2008_S7540469::finalize(), ATLAS_2012_I1199269::finalize(), ATLAS_2010_S8914702::finalize(), ATLAS_2012_I1083318::finalize(), ATLAS_2014_I1304688::finalize(), ATLAS_2012_I1183818::finalize(), ATLAS_2014_I1319490::finalize(), ATLAS_2012_CONF_2012_105::finalize(), OPAL_2004_S6132243::finalize(), ARGUS_1993_S2789213::finalize(), ATLAS_2012_CONF_2012_104::finalize(), H1_1994_S2919893::finalize(), ATLAS_2011_S9120807::finalize(), ATLAS_2012_I1186556::finalize(), ATLAS_2012_I1084540::finalize(), MC_VH2BB::finalize(), ATLAS_2012_CONF_2012_103::finalize(), ATLAS_2011_I944826::finalize(), ATLAS_2013_I1230812::finalize(), H1_2000_S4129130::finalize(), ATLAS_2012_I1117704::finalize(), ALEPH_2004_S5765862::finalize(), ATLAS_2011_I945498::finalize(), ATLAS_2013_I1190187::finalize(), ATLAS_2015_I1345452::finalize(), ATLAS_2012_I1093738::finalize(), SLD_2004_S5693039::finalize(), ATLAS_2012_I1125961::finalize(), ATLAS_2011_CONF_2011_098::finalize(), ATLAS_2011_S8983313::finalize(), ATLAS_2012_I1126136::finalize(), ATLAS_2012_I1095236::finalize(), ATLAS_2012_I1190891::finalize(), ATLAS_2011_S9019561::finalize(), ATLAS_2012_I1112263::finalize(), ATLAS_2011_S9212183::finalize(), ATLAS_2012_CONF_2012_109::finalize(), ATLAS_2011_CONF_2011_090::finalize(), ATLAS_2011_S9225137::finalize(), ATLAS_2014_I1306615::finalize(), ATLAS_2012_CONF_2012_001::finalize(), ATLAS_2012_I1203852::finalize(), ATLAS_2012_I943401::finalize(), ATLAS_2012_I1180197::finalize(), ALEPH_1996_S3486095::finalize(), ATLAS_2012_CONF_2012_153::finalize(), DELPHI_1996_S3430090::finalize(), SLD_1999_S3743934::finalize(), ATLAS_2014_I1282447::finalize(), ATLAS_2012_I1204447::finalize(), ATLAS_2011_S9212353::finalize(), ATLAS_2014_I1327229::finalize(), ATLAS_2011_S9041966::finalize(), PDG_HADRON_MULTIPLICITIES_RATIOS::finalize(), PDG_HADRON_MULTIPLICITIES::finalize(), ATLAS_2012_I1125575::finalizeHistograms(), ATLAS_2011_I919017::safeinvscale(), and BinnedHistogram< T >::scale().

                                                     {
    if (!histo) {
      MSG_ERROR("Failed to scale histo=NULL in analysis " << name() << " (scale=" << scale << ")");
      return;
    }
    if (std::isnan(scale) || std::isinf(scale)) {
      MSG_ERROR("Failed to scale histo=" << histo->path() << " in analysis: " << name() << " (invalid scale factor = " << scale << ")");
      scale = 0;
    }
    MSG_TRACE("Scaling histo " << histo->path() << " by factor " << scale);
    try {
      histo->scaleW(scale);
    } catch (YODA::Exception& we) {
      MSG_WARNING("Could not scale histo " << histo->path());
      return;
    }
    // // Transforming the histo into a scatter after scaling
    // vector<double> x, y, ex, ey;
    // for (size_t i = 0, N = histo->numBins(); i < N; ++i) {
    //   x.push_back( histo->bin(i).midpoint() );
    //   ex.push_back(histo->bin(i).width()*0.5);
    //   y.push_back(histo->bin(i).height()*scale);
    //   ey.push_back(histo->bin(i).heightErr()*scale);
    // }
    // string title = histo->title();
    // Scatter2DPtr dps( new Scatter2D(x, y, ex, ey, hpath, title) );
    // addAnalysisObject(dps);
  }
void scale ( Histo2DPtr  histo,
double  scale 
) [inherited]

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

Note:
The histogram is no longer invalidated by this procedure.
Analysis & setCrossSection ( double  xs) [inherited]

Set the cross section from the generator.

Definition at line 149 of file Analysis.cc.

References Analysis::_crossSection, and Analysis::_gotCrossSection.

                                               {
    _crossSection = xs;
    _gotCrossSection = true;
    return *this;
  }
virtual Analysis& setRequiredBeams ( const std::vector< PdgIdPair > &  requiredBeams) [inline, virtual, inherited]

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

Definition at line 210 of file Analysis.hh.

References Analysis::info(), and AnalysisInfo::setBeams().

                                                                                  {
      info().setBeams(requiredBeams);
      return *this;
    }
virtual Analysis& setRequiredEnergies ( const std::vector< std::pair< double, double > > &  requiredEnergies) [inline, virtual, inherited]

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

Definition at line 221 of file Analysis.hh.

References Analysis::info(), Analysis::requiredEnergies(), and AnalysisInfo::setEnergies().

                                                                                                       {
      info().setEnergies(requiredEnergies);
      return *this;
    }
virtual std::string spiresId ( ) const [inline, virtual, inherited]

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

Definition at line 124 of file Analysis.hh.

References Analysis::info(), and AnalysisInfo::spiresId().

                                       {
      return info().spiresId();
    }
double sqrtS ( ) const [inherited]

Centre of mass energy for this run.

Definition at line 27 of file Analysis.cc.

References Analysis::handler(), and AnalysisHandler::sqrtS().

Referenced by ATLAS_2011_I894867::analyze(), PDG_HADRON_MULTIPLICITIES::analyze(), CMS_2012_I1193338::analyze(), PDG_HADRON_MULTIPLICITIES_RATIOS::analyze(), TOTEM_2012_002::analyze(), CMS_2015_I1356998::analyze(), CMS_2012_I1184941::analyze(), SLD_2004_S5693039::analyze(), CMS_2011_I954992::analyze(), ALICE_2012_I1181770::analyze(), CMS_2011_S9215166::analyze(), SFM_1984_S1178091::analyze(), ALICE_2010_S8625980::analyze(), UA1_1990_S2044935::analyze(), CMS_2013_I1218372::analyze(), JADE_1998_S3612880::analyze(), TASSO_1990_S2148048::analyze(), ATLAS_2013_I1190187::analyze(), MC_TTBAR::analyze(), ATLAS_2010_S8894728::analyze(), ATLAS_2010_S8918562::analyze(), ALEPH_2004_S5765862::analyze(), CDF_2004_S5839831::analyze(), ATLAS_2012_I1203852::analyze(), ALICE_2010_S8625980::finalize(), OPAL_2002_S5361494::finalize(), DELPHI_2000_S4328825::finalize(), JADE_1998_S3612880::finalize(), UA1_1990_S2044935::finalize(), ATLAS_2010_S8918562::finalize(), ATLAS_2012_I1093734::finalize(), ALEPH_2004_S5765862::finalize(), CDF_2004_S5839831::finalize(), PDG_HADRON_MULTIPLICITIES_RATIOS::finalize(), PDG_HADRON_MULTIPLICITIES::finalize(), ATLAS_2010_S8894728::init(), CMS_2010_S8547297::init(), ALICE_2012_I1181770::init(), ATLAS_2011_S8994773::init(), CMSTOTEM_2014_I1294140::init(), CMS_2011_S9215166::init(), ATLAS_2012_I1091481::init(), CMS_2011_S8978280::init(), CDF_2012_NOTE10874::init(), CMS_QCD_10_024::init(), SFM_1984_S1178091::init(), MC_HINC::init(), UA5_1989_S1926373::init(), MC_JetSplittings::init(), MC_WWINC::init(), MC_ZZINC::init(), ATLAS_2011_I944826::init(), MC_DIPHOTON::init(), MC_ZZJETS::init(), CDF_1990_S2089246::init(), MC_ParticleAnalysis::init(), CDF_1988_S1865951::init(), UA5_1986_S1583476::init(), MC_ZINC::init(), MC_JetAnalysis::init(), MC_PHOTONINC::init(), MC_WWJETS::init(), MC_WINC::init(), UA1_1990_S2044935::init(), ALICE_2010_S8624100::init(), ALEPH_2004_S5765862::init(), JADE_1998_S3612880::init(), JADE_OPAL_2000_S4300807::init(), ALICE_2010_S8625980::init(), CMS_2013_I1218372::init(), UA5_1988_S1867512::init(), MC_PHOTONS::init(), LHCB_2011_I917009::init(), LHCB_2012_I1119400::init(), MC_WPOL::init(), TASSO_1990_S2148048::init(), ATLAS_2010_S8918562::init(), OPAL_2004_S6132243::init(), CDF_2004_S5839831::init(), ATLAS_2012_I1094061::init(), ATLAS_2012_I1093734::init(), PDG_HADRON_MULTIPLICITIES::init(), and PDG_HADRON_MULTIPLICITIES_RATIOS::init().

                               {
    return handler().sqrtS();
  }
virtual std::string status ( ) const [inline, virtual, inherited]

Whether this analysis is trusted (in any way!)

Definition at line 195 of file Analysis.hh.

References Analysis::info(), and AnalysisInfo::status().

                                     {
      return (info().status().empty()) ? "UNVALIDATED" : info().status();
    }
virtual std::string summary ( ) const [inline, virtual, inherited]

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.

Definition at line 141 of file Analysis.hh.

References Analysis::info(), and AnalysisInfo::summary().

                                      {
      return info().summary();
    }
double sumOfWeights ( ) const [protected, inherited]

Get the sum of event weights seen (via the analysis handler). Use in the finalize phase only.

Definition at line 93 of file Analysis.cc.

References Analysis::handler(), and AnalysisHandler::sumOfWeights().

Referenced by Analysis::crossSectionPerEvent(), MC_JetSplittings::finalize(), MC_JetAnalysis::finalize(), MC_ParticleAnalysis::finalize(), CDF_2006_S6450792::finalize(), ALEPH_1991_S2435284::finalize(), D0_2000_S4480767::finalize(), CMS_2015_I1384119::finalize(), CMS_2011_S9086218::finalize(), CDF_2001_S4563131::finalize(), CDF_2008_S7828950::finalize(), D0_2010_S8671338::finalize(), LHCF_2012_I1115479::finalize(), MC_XS::finalize(), CDF_2000_S4155203::finalize(), CDF_2008_S8093652::finalize(), BELLE_2013_I1216515::finalize(), BABAR_2007_S6895344::finalize(), CDF_2000_S4266730::finalize(), CMS_2011_S8941262::finalize(), CDF_1998_S3618439::finalize(), CMS_2012_I1184941::finalize(), CMS_2012_I1087342::finalize(), LHCB_2012_I1208102::finalize(), CMS_2010_S8656010::finalize(), CMS_2011_I954992::finalize(), MC_ZJETS::finalize(), ATLAS_2012_I1118269::finalize(), BABAR_2005_S6181155::finalize(), ATLAS_2011_I894867::finalize(), CDF_2001_S4517016::finalize(), CDF_2009_S8383952::finalize(), STAR_2006_S6870392::finalize(), MC_WJETS::finalize(), D0_2010_S8566488::finalize(), MC_ZINC::finalize(), LHCB_2010_I867355::finalize(), OPAL_1995_S3198391::finalize(), CMS_2010_S8547297::finalize(), CMS_2013_I1208923::finalize(), OPAL_1994_S2927284::finalize(), OPAL_1997_S3608263::finalize(), OPAL_2000_S4418603::finalize(), CDF_2009_S8436959::finalize(), CMS_2012_I1193338::finalize(), ALICE_2015_I1357424::finalize(), MC_PDFS::finalize(), D0_2011_I895662::finalize(), ALEPH_2002_S4823664::finalize(), ATLAS_2014_I1325553::finalize(), OPAL_1996_S3257789::finalize(), BABAR_2013_I1238276::finalize(), CDF_2005_S6080774::finalize(), ATLAS_2014_I1288706::finalize(), MC_IDENTIFIED::finalize(), OPAL_1998_S3702294::finalize(), ALICE_2011_S8945144::finalize(), ATLAS_2014_I1282441::finalize(), DELPHI_1999_S3960137::finalize(), D0_2006_S6438750::finalize(), MC_DIPHOTON::finalize(), CMS_2013_I1273574::finalize(), DELPHI_1995_S3137023::finalize(), ALICE_2011_S8909580::finalize(), CMS_2011_S8978280::finalize(), D0_2000_I499943::finalize(), ALICE_2012_I1181770::finalize(), MC_ZZJETS::finalize(), CLEO_2004_S5809304::finalize(), D0_2008_S7662670::finalize(), D0_2008_S7863608::finalize(), ATLAS_2011_S9035664::finalize(), MC_WINC::finalize(), ATLAS_2014_I1326641::finalize(), CMS_2015_I1346843::finalize(), ATLAS_2010_CONF_2010_049::finalize(), ALICE_2014_I1300380::finalize(), ATLAS_2011_I954993::finalize(), MC_WWJETS::finalize(), CDF_2009_S8233977::finalize(), CMS_2014_I1298810::finalize(), ATLAS_2013_I1219109::finalize(), LHCB_2013_I1218996::finalize(), ATLAS_2014_I1298023::finalize(), OPAL_1998_S3749908::finalize(), OPAL_1997_S3396100::finalize(), D0_2010_S8570965::finalize(), CMS_2011_S8973270::finalize(), ATLAS_2012_I946427::finalize(), CMS_2015_I1356998::finalize(), CDF_2008_S7541902::finalize(), ATLAS_2010_S8919674::finalize(), ATLAS_2011_I921594::finalize(), ATLAS_2013_I1263495::finalize(), MC_ZZINC::finalize(), MC_WPOL::finalize(), MC_WWINC::finalize(), ATLAS_2014_I1312627::finalize(), ALEPH_1996_S3196992::finalize(), CDF_2006_S6653332::finalize(), ATLAS_2013_I1217863_Z::finalize(), OPAL_1993_S2692198::finalize(), D0_2008_S7719523::finalize(), ATLAS_2013_I1217863_W::finalize(), OPAL_1998_S3780481::finalize(), STAR_2006_S6860818::finalize(), ATLAS_2014_I1307756::finalize(), CMS_2015_I1310737::finalize(), ATLAS_2011_I926145::finalize(), CMS_2013_I1256943::finalize(), ATLAS_2013_I1244522::finalize(), JADE_OPAL_2000_S4300807::finalize(), ATLAS_2014_I1306294::finalize(), ATLAS_2011_S9108483::finalize(), CDF_2008_S7540469::finalize(), ATLAS_2012_I1199269::finalize(), ATLAS_2014_I1307243::finalize(), ATLAS_2010_S8914702::finalize(), ATLAS_2012_I1083318::finalize(), ATLAS_2014_I1304688::finalize(), ATLAS_2014_I1319490::finalize(), ATLAS_2012_CONF_2012_105::finalize(), CMS_2014_I1303894::finalize(), ATLAS_2012_CONF_2012_104::finalize(), ATLAS_2011_S9120807::finalize(), ATLAS_2012_I1186556::finalize(), ATLAS_2012_I1084540::finalize(), MC_VH2BB::finalize(), ATLAS_2012_CONF_2012_103::finalize(), ATLAS_2012_I1117704::finalize(), ALEPH_2004_S5765862::finalize(), ATLAS_2013_I1190187::finalize(), ATLAS_2015_I1345452::finalize(), ATLAS_2012_I1093738::finalize(), SLD_2004_S5693039::finalize(), ATLAS_2012_I1125961::finalize(), ATLAS_2011_CONF_2011_098::finalize(), ATLAS_2012_I1126136::finalize(), ATLAS_2011_S8983313::finalize(), ATLAS_2012_I1095236::finalize(), ATLAS_2012_I1190891::finalize(), ATLAS_2011_S9019561::finalize(), ATLAS_2012_I1112263::finalize(), ATLAS_2011_S9212183::finalize(), ATLAS_2012_CONF_2012_109::finalize(), ATLAS_2011_CONF_2011_090::finalize(), ATLAS_2011_S9225137::finalize(), ATLAS_2012_CONF_2012_001::finalize(), ATLAS_2012_I1203852::finalize(), ATLAS_2012_I943401::finalize(), ATLAS_2012_I1180197::finalize(), ALEPH_1996_S3486095::finalize(), ATLAS_2012_CONF_2012_153::finalize(), SLD_1999_S3743934::finalize(), ATLAS_2014_I1282447::finalize(), ATLAS_2012_I1204447::finalize(), ATLAS_2011_S9212353::finalize(), ATLAS_2014_I1327229::finalize(), ATLAS_2011_S9041966::finalize(), and PDG_HADRON_MULTIPLICITIES::finalize().

                                      {
    return handler().sumOfWeights();
  }
virtual std::vector<std::string> todos ( ) const [inline, virtual, inherited]

Any work to be done on this analysis.

Definition at line 200 of file Analysis.hh.

References Analysis::info(), and AnalysisInfo::todos().

                                               {
      return info().todos();
    }
virtual std::string year ( ) const [inline, virtual, inherited]

When the original experimental analysis was published.

Definition at line 175 of file Analysis.hh.

References Analysis::info(), and AnalysisInfo::year().

                                   {
      return info().year();
    }

Member Data Documentation

bool _allowProjReg [protected, inherited]

Flag to forbid projection registration in analyses until the init phase.

Definition at line 143 of file ProjectionApplier.hh.

Referenced by ProjectionApplier::_addProjection(), and Analysis::Analysis().

Definition at line 600 of file SLD_1999_S3743934.cc.

Definition at line 599 of file SLD_1999_S3743934.cc.

Definition at line 601 of file SLD_1999_S3743934.cc.

vector<double> _multK0 [private]
vector<double> _multKPlus [private]
vector<double> _multKStar0 [private]
vector<double> _multLambda [private]
vector<double> _multPhi [private]
vector<double> _multPiPlus [private]
vector<double> _multProton [private]

Definition at line 633 of file SLD_1999_S3743934.cc.

Referenced by SLD_1999_S3743934::finalize(), and SLD_1999_S3743934::init().

double _SumOfbWeights [private]
double _SumOfcWeights [private]
double _SumOfudsWeights [private]

Store the weighted sums of numbers of charged / charged+neutral particles. Used to calculate average number of particles for the inclusive single particle distributions' normalisations.

Definition at line 595 of file SLD_1999_S3743934.cc.

Referenced by SLD_1999_S3743934::analyze(), and SLD_1999_S3743934::finalize().


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