PDG_HADRON_MULTIPLICITIES Class Reference

Inheritance diagram for PDG_HADRON_MULTIPLICITIES:

Inheritance graph
[legend]

Collaboration diagram for PDG_HADRON_MULTIPLICITIES:

Collaboration graph
[legend]

List of all members.


Detailed Description

Implementation of PDG hadron multiplicities.

Author:
Hendrik Hoeth

Definition at line 14 of file PDG_Hadron_Multiplicities.cc.


Public Member Functions

 PDG_HADRON_MULTIPLICITIES ()
 Constructor.
virtual bool isCompatible (const ParticleName &beam1, const ParticleName &beam2) const
 Is this analysis able to run on the supplied pair of beams?
virtual bool isCompatible (const BeamPair &beams) const
 Is this analysis able to run on the BeamPair beams ?
AnalysisHandlerhandler () const
 Access the controlling AnalysisHandler object.
void normalize (AIDA::IHistogram1D *&histo, double norm=1.0)
void scale (AIDA::IHistogram1D *&histo, double scale)
AnalysissetCrossSection (double xs)
 Set the cross section from the generator.
bool needsCrossSection () const
 Return true if this analysis needs to know the process cross-section.
Analysis methods
void analyze (const Event &e)
void init ()
void 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.

virtual 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 spiresId () const
 Get a the SPIRES/Inspire ID code for this analysis.
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 const BeamPair requiredBeams () const
 Return the pair of incoming beams required by this analysis.
virtual const std::vector
< std::pair< double, double > > & 
energies () const
 Sets of valid beam energy pairs, in GeV.
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 status () const
 Whether this analysis is trusted (in any way!).
Run conditions
const ParticlePairbeams () const
 Incoming beams for this run.
const BeamPair beamIds () const
 Incoming beam IDs for this run.
double sqrtS () const
 Centre of mass energy for this run.
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
AnalysissetBeams (const ParticleName &beam1, const ParticleName &beam2)
AnalysissetNeedsCrossSection (bool needed)
 Declare whether this analysis needs to know the process cross-section from the generator.
ProjectionHandlergetProjHandler () const
 Get a reference to the ProjectionHandler for this thread.
AIDA analysis infrastructure.
AIDA::IAnalysisFactory & analysisFactory ()
 Access the AIDA analysis factory of the controlling AnalysisHandler object.
AIDA::ITree & tree ()
 Access the AIDA tree of the controlling AnalysisHandler object.
AIDA::IHistogramFactory & histogramFactory ()
 Access the AIDA histogram factory of the controlling AnalysisHandler object.
AIDA::IDataPointSetFactory & datapointsetFactory ()
 Access the AIDA histogram factory of the controlling AnalysisHandler object.
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.
Internal histogram booking (for use by Analysis sub-classes).
const BinEdgesbinEdges (const std::string &hname) const
 Get bin edges for a named histo (using ref AIDA caching).
const BinEdgesbinEdges (size_t datasetId, size_t xAxisId, size_t yAxisId) const
 Get bin edges for a numbered histo (using ref AIDA caching).
BinEdges logBinEdges (size_t nbins, double lower, double upper)
 Get bin edges with logarithmic widths.
AIDA::IHistogram1D * bookHistogram1D (const std::string &name, size_t nbins, double lower, double upper, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
AIDA::IHistogram1D * bookHistogram1D (const std::string &name, const std::vector< double > &binedges, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
AIDA::IHistogram1D * bookHistogram1D (const std::string &name, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
AIDA::IHistogram1D * bookHistogram1D (size_t datasetId, size_t xAxisId, size_t yAxisId, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
Internal profile histogram booking (for use by Analysis sub-classes).
AIDA::IProfile1D * bookProfile1D (const std::string &name, size_t nbins, double lower, double upper, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
AIDA::IProfile1D * bookProfile1D (const std::string &name, const std::vector< double > &binedges, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
AIDA::IProfile1D * bookProfile1D (const std::string &name, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
AIDA::IProfile1D * bookProfile1D (size_t datasetId, size_t xAxisId, size_t yAxisId, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
Internal data point set booking (for use by Analysis sub-classes).
AIDA::IDataPointSet * bookDataPointSet (const std::string &name, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
AIDA::IDataPointSet * bookDataPointSet (const std::string &name, size_t npts, double lower, double upper, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
AIDA::IDataPointSet * bookDataPointSet (size_t datasetId, size_t xAxisId, size_t yAxisId, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="")
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

string _defaultname
 Name passed to constructor (used to find .info analysis data file, and as a fallback).
shared_ptr< AnalysisInfo_info
 Pointer to analysis metadata object.
bool _allowProjReg
 Flag to forbid projection registration in analyses until the init phase.

Private Attributes

AIDA::IHistogram1D * _histMeanMultiPiPlus
AIDA::IHistogram1D * _histMeanMultiPi0
AIDA::IHistogram1D * _histMeanMultiKPlus
AIDA::IHistogram1D * _histMeanMultiK0
AIDA::IHistogram1D * _histMeanMultiEta
AIDA::IHistogram1D * _histMeanMultiEtaPrime
AIDA::IHistogram1D * _histMeanMultiDPlus
AIDA::IHistogram1D * _histMeanMultiD0
AIDA::IHistogram1D * _histMeanMultiDPlus_s
AIDA::IHistogram1D * _histMeanMultiBPlus_B0_d
AIDA::IHistogram1D * _histMeanMultiBPlus_u
AIDA::IHistogram1D * _histMeanMultiB0_s
AIDA::IHistogram1D * _histMeanMultiF0_980
AIDA::IHistogram1D * _histMeanMultiA0_980Plus
AIDA::IHistogram1D * _histMeanMultiRho770_0
AIDA::IHistogram1D * _histMeanMultiRho770Plus
AIDA::IHistogram1D * _histMeanMultiOmega782
AIDA::IHistogram1D * _histMeanMultiKStar892Plus
AIDA::IHistogram1D * _histMeanMultiKStar892_0
AIDA::IHistogram1D * _histMeanMultiPhi1020
AIDA::IHistogram1D * _histMeanMultiDStar2010Plus
AIDA::IHistogram1D * _histMeanMultiDStar2007_0
AIDA::IHistogram1D * _histMeanMultiDStar_s2112Plus
AIDA::IHistogram1D * _histMeanMultiBStar
AIDA::IHistogram1D * _histMeanMultiJPsi1S
AIDA::IHistogram1D * _histMeanMultiPsi2S
AIDA::IHistogram1D * _histMeanMultiUpsilon1S
AIDA::IHistogram1D * _histMeanMultiF1_1285
AIDA::IHistogram1D * _histMeanMultiF1_1420
AIDA::IHistogram1D * _histMeanMultiChi_c1_3510
AIDA::IHistogram1D * _histMeanMultiF2_1270
AIDA::IHistogram1D * _histMeanMultiF2Prime1525
AIDA::IHistogram1D * _histMeanMultiK2Star1430Plus
AIDA::IHistogram1D * _histMeanMultiK2Star1430_0
AIDA::IHistogram1D * _histMeanMultiBStarStar
AIDA::IHistogram1D * _histMeanMultiDs1Plus
AIDA::IHistogram1D * _histMeanMultiDs2Plus
AIDA::IHistogram1D * _histMeanMultiP
AIDA::IHistogram1D * _histMeanMultiLambda
AIDA::IHistogram1D * _histMeanMultiSigma0
AIDA::IHistogram1D * _histMeanMultiSigmaMinus
AIDA::IHistogram1D * _histMeanMultiSigmaPlus
AIDA::IHistogram1D * _histMeanMultiSigmaPlusMinus
AIDA::IHistogram1D * _histMeanMultiXiMinus
AIDA::IHistogram1D * _histMeanMultiDelta1232PlusPlus
AIDA::IHistogram1D * _histMeanMultiSigma1385Minus
AIDA::IHistogram1D * _histMeanMultiSigma1385Plus
AIDA::IHistogram1D * _histMeanMultiSigma1385PlusMinus
AIDA::IHistogram1D * _histMeanMultiXi1530_0
AIDA::IHistogram1D * _histMeanMultiOmegaMinus
AIDA::IHistogram1D * _histMeanMultiLambda_c_Plus
AIDA::IHistogram1D * _histMeanMultiLambda_b_0
AIDA::IHistogram1D * _histMeanMultiSigma_c_PlusPlus_0
AIDA::IHistogram1D * _histMeanMultiLambda1520

Friends

class Projectionhandler

Constructor & Destructor Documentation

PDG_HADRON_MULTIPLICITIES (  )  [inline]

Constructor.

Definition at line 18 of file PDG_Hadron_Multiplicities.cc.

References Rivet::ELECTRON, Rivet::POSITRON, and Analysis::setBeams().

00018                                 : Analysis("PDG_HADRON_MULTIPLICITIES")
00019     {
00020       setBeams(ELECTRON, POSITRON);
00021     }


Member Function Documentation

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.

Implements Analysis.

Definition at line 27 of file PDG_Hadron_Multiplicities.cc.

References PDG_HADRON_MULTIPLICITIES::_histMeanMultiA0_980Plus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiB0_s, PDG_HADRON_MULTIPLICITIES::_histMeanMultiBPlus_B0_d, PDG_HADRON_MULTIPLICITIES::_histMeanMultiBPlus_u, PDG_HADRON_MULTIPLICITIES::_histMeanMultiBStar, PDG_HADRON_MULTIPLICITIES::_histMeanMultiBStarStar, PDG_HADRON_MULTIPLICITIES::_histMeanMultiChi_c1_3510, PDG_HADRON_MULTIPLICITIES::_histMeanMultiD0, PDG_HADRON_MULTIPLICITIES::_histMeanMultiDelta1232PlusPlus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiDPlus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiDPlus_s, PDG_HADRON_MULTIPLICITIES::_histMeanMultiDs1Plus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiDs2Plus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiDStar2007_0, PDG_HADRON_MULTIPLICITIES::_histMeanMultiDStar2010Plus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiDStar_s2112Plus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiEta, PDG_HADRON_MULTIPLICITIES::_histMeanMultiEtaPrime, PDG_HADRON_MULTIPLICITIES::_histMeanMultiF0_980, PDG_HADRON_MULTIPLICITIES::_histMeanMultiF1_1285, PDG_HADRON_MULTIPLICITIES::_histMeanMultiF1_1420, PDG_HADRON_MULTIPLICITIES::_histMeanMultiF2_1270, PDG_HADRON_MULTIPLICITIES::_histMeanMultiF2Prime1525, PDG_HADRON_MULTIPLICITIES::_histMeanMultiJPsi1S, PDG_HADRON_MULTIPLICITIES::_histMeanMultiK0, PDG_HADRON_MULTIPLICITIES::_histMeanMultiK2Star1430_0, PDG_HADRON_MULTIPLICITIES::_histMeanMultiK2Star1430Plus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiKPlus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiKStar892_0, PDG_HADRON_MULTIPLICITIES::_histMeanMultiKStar892Plus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiLambda, PDG_HADRON_MULTIPLICITIES::_histMeanMultiLambda1520, PDG_HADRON_MULTIPLICITIES::_histMeanMultiLambda_b_0, PDG_HADRON_MULTIPLICITIES::_histMeanMultiLambda_c_Plus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiOmega782, PDG_HADRON_MULTIPLICITIES::_histMeanMultiOmegaMinus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiP, PDG_HADRON_MULTIPLICITIES::_histMeanMultiPhi1020, PDG_HADRON_MULTIPLICITIES::_histMeanMultiPi0, PDG_HADRON_MULTIPLICITIES::_histMeanMultiPiPlus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiPsi2S, PDG_HADRON_MULTIPLICITIES::_histMeanMultiRho770_0, PDG_HADRON_MULTIPLICITIES::_histMeanMultiRho770Plus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiSigma0, PDG_HADRON_MULTIPLICITIES::_histMeanMultiSigma1385Minus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiSigma1385Plus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiSigma1385PlusMinus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiSigma_c_PlusPlus_0, PDG_HADRON_MULTIPLICITIES::_histMeanMultiSigmaMinus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiSigmaPlus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiSigmaPlusMinus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiUpsilon1S, PDG_HADRON_MULTIPLICITIES::_histMeanMultiXi1530_0, PDG_HADRON_MULTIPLICITIES::_histMeanMultiXiMinus, Log::DEBUG, Analysis::getLog(), Rivet::GeV, UnstableFinalState::particles(), FinalState::particles(), Particle::pdgId(), Analysis::sqrtS(), and vetoEvent.

00027                                  {
00028       // First, veto on leptonic events by requiring at least 4 charged FS particles
00029       const FinalState& fs = applyProjection<FinalState>(e, "FS");
00030       const size_t numParticles = fs.particles().size();
00031 
00032       // Even if we only generate hadronic events, we still need a cut on numCharged >= 2.
00033       if (numParticles < 2) {
00034         getLog() << Log::DEBUG << "Failed leptonic event cut" << endl;
00035         vetoEvent;
00036       }
00037       getLog() << Log::DEBUG << "Passed leptonic event cut" << endl;
00038 
00039       // Get event weight for histo filling
00040       const double weight = e.weight();
00041 
00042       getLog() << Log::DEBUG << "sqrt(S) = " << sqrtS()/GeV << " GeV" << endl;
00043 
00044       // Final state of unstable particles to get particle spectra
00045       const UnstableFinalState& ufs = applyProjection<UnstableFinalState>(e, "UFS");
00046 
00047       if (sqrtS()/GeV >= 9.5 && sqrtS()/GeV <= 10.5) {
00048         foreach (const Particle& p, ufs.particles()) {
00049           const PdgId id = abs(p.pdgId());
00050           switch (id) {
00051              case 211:
00052                 _histMeanMultiPiPlus->fill(_histMeanMultiPiPlus->binMean(0), weight);
00053                 break;
00054              case 111:
00055                 _histMeanMultiPi0->fill(_histMeanMultiPi0->binMean(0), weight);
00056                 break;
00057              case 321:
00058                 _histMeanMultiKPlus->fill(_histMeanMultiKPlus->binMean(0), weight);
00059                 break;
00060              case 130:
00061              case 310:
00062                 _histMeanMultiK0->fill(_histMeanMultiK0->binMean(0), weight);
00063                 break;
00064              case 221:
00065                 _histMeanMultiEta->fill(_histMeanMultiEta->binMean(0), weight);
00066                 break;
00067              case 331:
00068                 _histMeanMultiEtaPrime->fill(_histMeanMultiEtaPrime->binMean(0), weight);
00069                 break;
00070              case 411:
00071                 _histMeanMultiDPlus->fill(_histMeanMultiDPlus->binMean(0), weight);
00072                 break;
00073              case 421:
00074                 _histMeanMultiD0->fill(_histMeanMultiD0->binMean(0), weight);
00075                 break;
00076              case 431:
00077                 _histMeanMultiDPlus_s->fill(_histMeanMultiDPlus_s->binMean(0), weight);
00078                 break;
00079              case 9010221:
00080                 _histMeanMultiF0_980->fill(_histMeanMultiF0_980->binMean(0), weight);
00081                 break;
00082              case 113:
00083                 _histMeanMultiRho770_0->fill(_histMeanMultiRho770_0->binMean(0), weight);
00084                 break;
00085              case 223:
00086                 _histMeanMultiOmega782->fill(_histMeanMultiOmega782->binMean(0), weight);
00087                 break;
00088              case 323:
00089                 _histMeanMultiKStar892Plus->fill(_histMeanMultiKStar892Plus->binMean(0), weight);
00090                 break;
00091              case 313:
00092                 _histMeanMultiKStar892_0->fill(_histMeanMultiKStar892_0->binMean(0), weight);
00093                 break;
00094              case 333:
00095                 _histMeanMultiPhi1020->fill(_histMeanMultiPhi1020->binMean(0), weight);
00096                 break;
00097              case 413:
00098                 _histMeanMultiDStar2010Plus->fill(_histMeanMultiDStar2010Plus->binMean(0), weight);
00099                 break;
00100              case 423:
00101                 _histMeanMultiDStar2007_0->fill(_histMeanMultiDStar2007_0->binMean(0), weight);
00102                 break;
00103              case 433:
00104                 _histMeanMultiDStar_s2112Plus->fill(_histMeanMultiDStar_s2112Plus->binMean(0), weight);
00105                 break;
00106              case 443:
00107                 _histMeanMultiJPsi1S->fill(_histMeanMultiJPsi1S->binMean(0), weight);
00108                 break;
00109              case 225:
00110                 _histMeanMultiF2_1270->fill(_histMeanMultiF2_1270->binMean(0), weight);
00111                 break;
00112              case 2212:
00113                 _histMeanMultiP->fill(_histMeanMultiP->binMean(0), weight);
00114                 break;
00115              case 3122:
00116                 _histMeanMultiLambda->fill(_histMeanMultiLambda->binMean(0), weight);
00117                 break;
00118              case 3212:
00119                 _histMeanMultiSigma0->fill(_histMeanMultiSigma0->binMean(0), weight);
00120                 break;
00121              case 3312:
00122                 _histMeanMultiXiMinus->fill(_histMeanMultiXiMinus->binMean(0), weight);
00123                 break;
00124              case 2224:
00125                 _histMeanMultiDelta1232PlusPlus->fill(_histMeanMultiDelta1232PlusPlus->binMean(0), weight);
00126                 break;
00127              case 3114:
00128                 _histMeanMultiSigma1385Minus->fill(_histMeanMultiSigma1385Minus->binMean(0), weight);
00129                 _histMeanMultiSigma1385PlusMinus->fill(_histMeanMultiSigma1385PlusMinus->binMean(0), weight);
00130                 break;
00131              case 3224:
00132                 _histMeanMultiSigma1385Plus->fill(_histMeanMultiSigma1385Plus->binMean(0), weight);
00133                 _histMeanMultiSigma1385PlusMinus->fill(_histMeanMultiSigma1385PlusMinus->binMean(0), weight);
00134                 break;
00135              case 3324:
00136                 _histMeanMultiXi1530_0->fill(_histMeanMultiXi1530_0->binMean(0), weight);
00137                 break;
00138              case 3334:
00139                 _histMeanMultiOmegaMinus->fill(_histMeanMultiOmegaMinus->binMean(0), weight);
00140                 break;
00141              case 4122:
00142                 _histMeanMultiLambda_c_Plus->fill(_histMeanMultiLambda_c_Plus->binMean(0), weight);
00143                 break;
00144              case 4222:
00145              case 4112:
00146                 _histMeanMultiSigma_c_PlusPlus_0->fill(_histMeanMultiSigma_c_PlusPlus_0->binMean(0), weight);
00147                 break;
00148              case 3124:
00149                 _histMeanMultiLambda1520->fill(_histMeanMultiLambda1520->binMean(0), weight);
00150                 break;
00151           }
00152         }
00153       }
00154 
00155       if (sqrtS()/GeV >= 29 && sqrtS()/GeV <= 35) {
00156         foreach (const Particle& p, ufs.particles()) {
00157           const PdgId id = abs(p.pdgId());
00158           switch (id) {
00159              case 211:
00160                 _histMeanMultiPiPlus->fill(_histMeanMultiPiPlus->binMean(0), weight);
00161                 break;
00162              case 111:
00163                 _histMeanMultiPi0->fill(_histMeanMultiPi0->binMean(0), weight);
00164                 break;
00165              case 321:
00166                 _histMeanMultiKPlus->fill(_histMeanMultiKPlus->binMean(0), weight);
00167                 break;
00168              case 130:
00169              case 310:
00170                 _histMeanMultiK0->fill(_histMeanMultiK0->binMean(0), weight);
00171                 break;
00172              case 221:
00173                 _histMeanMultiEta->fill(_histMeanMultiEta->binMean(0), weight);
00174                 break;
00175              case 331:
00176                 _histMeanMultiEtaPrime->fill(_histMeanMultiEtaPrime->binMean(0), weight);
00177                 break;
00178              case 411:
00179                 _histMeanMultiDPlus->fill(_histMeanMultiDPlus->binMean(0), weight);
00180                 break;
00181              case 421:
00182                 _histMeanMultiD0->fill(_histMeanMultiD0->binMean(0), weight);
00183                 break;
00184              case 431:
00185                 _histMeanMultiDPlus_s->fill(_histMeanMultiDPlus_s->binMean(0), weight);
00186                 break;
00187              case 9010221:
00188                 _histMeanMultiF0_980->fill(_histMeanMultiF0_980->binMean(0), weight);
00189                 break;
00190              case 113:
00191                 _histMeanMultiRho770_0->fill(_histMeanMultiRho770_0->binMean(0), weight);
00192                 break;
00193              case 323:
00194                 _histMeanMultiKStar892Plus->fill(_histMeanMultiKStar892Plus->binMean(0), weight);
00195                 break;
00196              case 313:
00197                 _histMeanMultiKStar892_0->fill(_histMeanMultiKStar892_0->binMean(0), weight);
00198                 break;
00199              case 333:
00200                 _histMeanMultiPhi1020->fill(_histMeanMultiPhi1020->binMean(0), weight);
00201                 break;
00202              case 413:
00203                 _histMeanMultiDStar2010Plus->fill(_histMeanMultiDStar2010Plus->binMean(0), weight);
00204                 break;
00205              case 423:
00206                 _histMeanMultiDStar2007_0->fill(_histMeanMultiDStar2007_0->binMean(0), weight);
00207                 break;
00208              case 225:
00209                 _histMeanMultiF2_1270->fill(_histMeanMultiF2_1270->binMean(0), weight);
00210                 break;
00211              case 325:
00212                 _histMeanMultiK2Star1430Plus->fill(_histMeanMultiK2Star1430Plus->binMean(0), weight);
00213                 break;
00214              case 315:
00215                 _histMeanMultiK2Star1430_0->fill(_histMeanMultiK2Star1430_0->binMean(0), weight);
00216                 break;
00217              case 2212:
00218                 _histMeanMultiP->fill(_histMeanMultiP->binMean(0), weight);
00219                 break;
00220              case 3122:
00221                 _histMeanMultiLambda->fill(_histMeanMultiLambda->binMean(0), weight);
00222                 break;
00223              case 3312:
00224                 _histMeanMultiXiMinus->fill(_histMeanMultiXiMinus->binMean(0), weight);
00225                 break;
00226              case 3114:
00227                 _histMeanMultiSigma1385Minus->fill(_histMeanMultiSigma1385Minus->binMean(0), weight);
00228                 _histMeanMultiSigma1385PlusMinus->fill(_histMeanMultiSigma1385PlusMinus->binMean(0), weight);
00229                 break;
00230              case 3224:
00231                 _histMeanMultiSigma1385Plus->fill(_histMeanMultiSigma1385Plus->binMean(0), weight);
00232                 _histMeanMultiSigma1385PlusMinus->fill(_histMeanMultiSigma1385PlusMinus->binMean(0), weight);
00233                 break;
00234              case 3334:
00235                 _histMeanMultiOmegaMinus->fill(_histMeanMultiOmegaMinus->binMean(0), weight);
00236                 break;
00237              case 4122:
00238                 _histMeanMultiLambda_c_Plus->fill(_histMeanMultiLambda_c_Plus->binMean(0), weight);
00239                 break;
00240           }
00241         }
00242       }
00243 
00244       if (sqrtS()/GeV >= 89.5 && sqrtS()/GeV <= 91.8) {
00245         foreach (const Particle& p, ufs.particles()) {
00246           const PdgId id = abs(p.pdgId());
00247           switch (id) {
00248              case 211:
00249                 _histMeanMultiPiPlus->fill(_histMeanMultiPiPlus->binMean(0), weight);
00250                 break;
00251              case 111:
00252                 _histMeanMultiPi0->fill(_histMeanMultiPi0->binMean(0), weight);
00253                 break;
00254              case 321:
00255                 _histMeanMultiKPlus->fill(_histMeanMultiKPlus->binMean(0), weight);
00256                 break;
00257              case 130:
00258              case 310:
00259                 _histMeanMultiK0->fill(_histMeanMultiK0->binMean(0), weight);
00260                 break;
00261              case 221:
00262                 _histMeanMultiEta->fill(_histMeanMultiEta->binMean(0), weight);
00263                 break;
00264              case 331:
00265                 _histMeanMultiEtaPrime->fill(_histMeanMultiEtaPrime->binMean(0), weight);
00266                 break;
00267              case 411:
00268                 _histMeanMultiDPlus->fill(_histMeanMultiDPlus->binMean(0), weight);
00269                 break;
00270              case 421:
00271                 _histMeanMultiD0->fill(_histMeanMultiD0->binMean(0), weight);
00272                 break;
00273              case 431:
00274                 _histMeanMultiDPlus_s->fill(_histMeanMultiDPlus_s->binMean(0), weight);
00275                 break;
00276              case 511:
00277                 _histMeanMultiBPlus_B0_d->fill(_histMeanMultiBPlus_B0_d->binMean(0), weight);
00278                 break;
00279              case 521:
00280                 _histMeanMultiBPlus_B0_d->fill(_histMeanMultiBPlus_B0_d->binMean(0), weight);
00281                 _histMeanMultiBPlus_u->fill(_histMeanMultiBPlus_u->binMean(0), weight);
00282                 break;
00283              case 531:
00284                 _histMeanMultiB0_s->fill(_histMeanMultiB0_s->binMean(0), weight);
00285                 break;
00286              case 9010221:
00287                 _histMeanMultiF0_980->fill(_histMeanMultiF0_980->binMean(0), weight);
00288                 break;
00289              case 9000211:
00290                 _histMeanMultiA0_980Plus->fill(_histMeanMultiA0_980Plus->binMean(0), weight);
00291                 break;
00292              case 113:
00293                 _histMeanMultiRho770_0->fill(_histMeanMultiRho770_0->binMean(0), weight);
00294                 break;
00295              case 213:
00296                 _histMeanMultiRho770Plus->fill(_histMeanMultiRho770Plus->binMean(0), weight);
00297                 break;
00298              case 223:
00299                 _histMeanMultiOmega782->fill(_histMeanMultiOmega782->binMean(0), weight);
00300                 break;
00301              case 323:
00302                 _histMeanMultiKStar892Plus->fill(_histMeanMultiKStar892Plus->binMean(0), weight);
00303                 break;
00304              case 313:
00305                 _histMeanMultiKStar892_0->fill(_histMeanMultiKStar892_0->binMean(0), weight);
00306                 break;
00307              case 333:
00308                 _histMeanMultiPhi1020->fill(_histMeanMultiPhi1020->binMean(0), weight);
00309                 break;
00310              case 413:
00311                 _histMeanMultiDStar2010Plus->fill(_histMeanMultiDStar2010Plus->binMean(0), weight);
00312                 break;
00313              case 433:
00314                 _histMeanMultiDStar_s2112Plus->fill(_histMeanMultiDStar_s2112Plus->binMean(0), weight);
00315                 break;
00316              case 513:
00317              case 523:
00318              case 533:
00319                 _histMeanMultiBStar->fill(_histMeanMultiBStar->binMean(0), weight);
00320                 break;
00321              case 443:
00322                 _histMeanMultiJPsi1S->fill(_histMeanMultiJPsi1S->binMean(0), weight);
00323                 break;
00324              case 100443:
00325                 _histMeanMultiPsi2S->fill(_histMeanMultiPsi2S->binMean(0), weight);
00326                 break;
00327              case 553:
00328                 _histMeanMultiUpsilon1S->fill(_histMeanMultiUpsilon1S->binMean(0), weight);
00329                 break;
00330              case 20223:
00331                 _histMeanMultiF1_1285->fill(_histMeanMultiF1_1285->binMean(0), weight);
00332                 break;
00333              case 20333:
00334                 _histMeanMultiF1_1420->fill(_histMeanMultiF1_1420->binMean(0), weight);
00335                 break;
00336              case 445:
00337                 _histMeanMultiChi_c1_3510->fill(_histMeanMultiChi_c1_3510->binMean(0), weight);
00338                 break;
00339              case 225:
00340                 _histMeanMultiF2_1270->fill(_histMeanMultiF2_1270->binMean(0), weight);
00341                 break;
00342              case 335:
00343                 _histMeanMultiF2Prime1525->fill(_histMeanMultiF2Prime1525->binMean(0), weight);
00344                 break;
00345              case 315:
00346                 _histMeanMultiK2Star1430_0->fill(_histMeanMultiK2Star1430_0->binMean(0), weight);
00347                 break;
00348              case 515:
00349              case 525:
00350              case 535:
00351                 _histMeanMultiBStarStar->fill(_histMeanMultiBStarStar->binMean(0), weight);
00352                 break;
00353              case 10433:
00354              case 20433:
00355                 _histMeanMultiDs1Plus->fill(_histMeanMultiDs1Plus->binMean(0), weight);
00356                 break;
00357              case 435:
00358                 _histMeanMultiDs2Plus->fill(_histMeanMultiDs2Plus->binMean(0), weight);
00359                 break;
00360              case 2212:
00361                 _histMeanMultiP->fill(_histMeanMultiP->binMean(0), weight);
00362                 break;
00363              case 3122:
00364                 _histMeanMultiLambda->fill(_histMeanMultiLambda->binMean(0), weight);
00365                 break;
00366              case 3212:
00367                 _histMeanMultiSigma0->fill(_histMeanMultiSigma0->binMean(0), weight);
00368                 break;
00369              case 3112:
00370                 _histMeanMultiSigmaMinus->fill(_histMeanMultiSigmaMinus->binMean(0), weight);
00371                 _histMeanMultiSigmaPlusMinus->fill(_histMeanMultiSigmaPlusMinus->binMean(0), weight);
00372                 break;
00373              case 3222:
00374                 _histMeanMultiSigmaPlus->fill(_histMeanMultiSigmaPlus->binMean(0), weight);
00375                 _histMeanMultiSigmaPlusMinus->fill(_histMeanMultiSigmaPlusMinus->binMean(0), weight);
00376                 break;
00377              case 3312:
00378                 _histMeanMultiXiMinus->fill(_histMeanMultiXiMinus->binMean(0), weight);
00379                 break;
00380              case 2224:
00381                 _histMeanMultiDelta1232PlusPlus->fill(_histMeanMultiDelta1232PlusPlus->binMean(0), weight);
00382                 break;
00383              case 3114:
00384                 _histMeanMultiSigma1385Minus->fill(_histMeanMultiSigma1385Minus->binMean(0), weight);
00385                 _histMeanMultiSigma1385PlusMinus->fill(_histMeanMultiSigma1385PlusMinus->binMean(0), weight);
00386                 break;
00387              case 3224:
00388                 _histMeanMultiSigma1385Plus->fill(_histMeanMultiSigma1385Plus->binMean(0), weight);
00389                 _histMeanMultiSigma1385PlusMinus->fill(_histMeanMultiSigma1385PlusMinus->binMean(0), weight);
00390                 break;
00391              case 3324:
00392                 _histMeanMultiXi1530_0->fill(_histMeanMultiXi1530_0->binMean(0), weight);
00393                 break;
00394              case 3334:
00395                 _histMeanMultiOmegaMinus->fill(_histMeanMultiOmegaMinus->binMean(0), weight);
00396                 break;
00397              case 4122:
00398                 _histMeanMultiLambda_c_Plus->fill(_histMeanMultiLambda_c_Plus->binMean(0), weight);
00399                 break;
00400              case 5122:
00401                 _histMeanMultiLambda_b_0->fill(_histMeanMultiLambda_b_0->binMean(0), weight);
00402                 break;
00403              case 3124:
00404                 _histMeanMultiLambda1520->fill(_histMeanMultiLambda1520->binMean(0), weight);
00405                 break;
00406           }
00407         }
00408       }
00409 
00410       if (sqrtS()/GeV >= 130 && sqrtS()/GeV <= 200) {
00411         foreach (const Particle& p, ufs.particles()) {
00412           const PdgId id = abs(p.pdgId());
00413           switch (id) {
00414              case 211:
00415                 _histMeanMultiPiPlus->fill(_histMeanMultiPiPlus->binMean(0), weight);
00416                 break;
00417              case 321:
00418                 _histMeanMultiKPlus->fill(_histMeanMultiKPlus->binMean(0), weight);
00419                 break;
00420              case 130:
00421              case 310:
00422                 _histMeanMultiK0->fill(_histMeanMultiK0->binMean(0), weight);
00423                 break;
00424              case 2212:
00425                 _histMeanMultiP->fill(_histMeanMultiP->binMean(0), weight);
00426                 break;
00427              case 3122:
00428                 _histMeanMultiLambda->fill(_histMeanMultiLambda->binMean(0), weight);
00429                 break;
00430           }
00431         }
00432       }
00433 
00434     }

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.

Implements Analysis.

Definition at line 438 of file PDG_Hadron_Multiplicities.cc.

References PDG_HADRON_MULTIPLICITIES::_histMeanMultiA0_980Plus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiB0_s, PDG_HADRON_MULTIPLICITIES::_histMeanMultiBPlus_B0_d, PDG_HADRON_MULTIPLICITIES::_histMeanMultiBPlus_u, PDG_HADRON_MULTIPLICITIES::_histMeanMultiBStar, PDG_HADRON_MULTIPLICITIES::_histMeanMultiBStarStar, PDG_HADRON_MULTIPLICITIES::_histMeanMultiChi_c1_3510, PDG_HADRON_MULTIPLICITIES::_histMeanMultiD0, PDG_HADRON_MULTIPLICITIES::_histMeanMultiDelta1232PlusPlus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiDPlus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiDPlus_s, PDG_HADRON_MULTIPLICITIES::_histMeanMultiDs1Plus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiDs2Plus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiDStar2007_0, PDG_HADRON_MULTIPLICITIES::_histMeanMultiDStar2010Plus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiDStar_s2112Plus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiEta, PDG_HADRON_MULTIPLICITIES::_histMeanMultiEtaPrime, PDG_HADRON_MULTIPLICITIES::_histMeanMultiF0_980, PDG_HADRON_MULTIPLICITIES::_histMeanMultiF1_1285, PDG_HADRON_MULTIPLICITIES::_histMeanMultiF1_1420, PDG_HADRON_MULTIPLICITIES::_histMeanMultiF2_1270, PDG_HADRON_MULTIPLICITIES::_histMeanMultiF2Prime1525, PDG_HADRON_MULTIPLICITIES::_histMeanMultiJPsi1S, PDG_HADRON_MULTIPLICITIES::_histMeanMultiK0, PDG_HADRON_MULTIPLICITIES::_histMeanMultiK2Star1430_0, PDG_HADRON_MULTIPLICITIES::_histMeanMultiK2Star1430Plus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiKPlus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiKStar892_0, PDG_HADRON_MULTIPLICITIES::_histMeanMultiKStar892Plus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiLambda, PDG_HADRON_MULTIPLICITIES::_histMeanMultiLambda1520, PDG_HADRON_MULTIPLICITIES::_histMeanMultiLambda_b_0, PDG_HADRON_MULTIPLICITIES::_histMeanMultiLambda_c_Plus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiOmega782, PDG_HADRON_MULTIPLICITIES::_histMeanMultiOmegaMinus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiP, PDG_HADRON_MULTIPLICITIES::_histMeanMultiPhi1020, PDG_HADRON_MULTIPLICITIES::_histMeanMultiPi0, PDG_HADRON_MULTIPLICITIES::_histMeanMultiPiPlus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiPsi2S, PDG_HADRON_MULTIPLICITIES::_histMeanMultiRho770_0, PDG_HADRON_MULTIPLICITIES::_histMeanMultiRho770Plus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiSigma0, PDG_HADRON_MULTIPLICITIES::_histMeanMultiSigma1385Minus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiSigma1385Plus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiSigma1385PlusMinus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiSigma_c_PlusPlus_0, PDG_HADRON_MULTIPLICITIES::_histMeanMultiSigmaMinus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiSigmaPlus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiSigmaPlusMinus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiUpsilon1S, PDG_HADRON_MULTIPLICITIES::_histMeanMultiXi1530_0, PDG_HADRON_MULTIPLICITIES::_histMeanMultiXiMinus, ProjectionApplier::addProjection(), Analysis::bookHistogram1D(), Rivet::GeV, and Analysis::sqrtS().

00438                 {
00439       addProjection(ChargedFinalState(), "FS");
00440       addProjection(UnstableFinalState(), "UFS");
00441 
00442       if (sqrtS()/GeV >= 9.5 && sqrtS()/GeV <= 10.5) {
00443         _histMeanMultiPiPlus             = bookHistogram1D( 1, 1, 1);
00444         _histMeanMultiPi0                = bookHistogram1D( 2, 1, 1);
00445         _histMeanMultiKPlus              = bookHistogram1D( 3, 1, 1);
00446         _histMeanMultiK0                 = bookHistogram1D( 4, 1, 1);
00447         _histMeanMultiEta                = bookHistogram1D( 5, 1, 1);
00448         _histMeanMultiEtaPrime           = bookHistogram1D( 6, 1, 1);
00449         _histMeanMultiDPlus              = bookHistogram1D( 7, 1, 1);
00450         _histMeanMultiD0                 = bookHistogram1D( 8, 1, 1);
00451         _histMeanMultiDPlus_s            = bookHistogram1D( 9, 1, 1);
00452         _histMeanMultiF0_980             = bookHistogram1D(13, 1, 1);
00453         _histMeanMultiRho770_0           = bookHistogram1D(15, 1, 1);
00454         _histMeanMultiOmega782           = bookHistogram1D(17, 1, 1);
00455         _histMeanMultiKStar892Plus       = bookHistogram1D(18, 1, 1);
00456         _histMeanMultiKStar892_0         = bookHistogram1D(19, 1, 1);
00457         _histMeanMultiPhi1020            = bookHistogram1D(20, 1, 1);
00458         _histMeanMultiDStar2010Plus      = bookHistogram1D(21, 1, 1);
00459         _histMeanMultiDStar2007_0        = bookHistogram1D(22, 1, 1);
00460         _histMeanMultiDStar_s2112Plus    = bookHistogram1D(23, 1, 1);
00461         _histMeanMultiJPsi1S             = bookHistogram1D(25, 1, 1);
00462         _histMeanMultiF2_1270            = bookHistogram1D(31, 1, 1);
00463         _histMeanMultiP                  = bookHistogram1D(38, 1, 1);
00464         _histMeanMultiLambda             = bookHistogram1D(39, 1, 1);
00465         _histMeanMultiSigma0             = bookHistogram1D(40, 1, 1);
00466         _histMeanMultiXiMinus            = bookHistogram1D(44, 1, 1);
00467         _histMeanMultiDelta1232PlusPlus  = bookHistogram1D(45, 1, 1);
00468         _histMeanMultiSigma1385Minus     = bookHistogram1D(46, 1, 1);
00469         _histMeanMultiSigma1385Plus      = bookHistogram1D(47, 1, 1);
00470         _histMeanMultiSigma1385PlusMinus = bookHistogram1D(48, 1, 1);
00471         _histMeanMultiXi1530_0           = bookHistogram1D(49, 1, 1);
00472         _histMeanMultiOmegaMinus         = bookHistogram1D(50, 1, 1);
00473         _histMeanMultiLambda_c_Plus      = bookHistogram1D(51, 1, 1);
00474         _histMeanMultiSigma_c_PlusPlus_0 = bookHistogram1D(53, 1, 1);
00475         _histMeanMultiLambda1520         = bookHistogram1D(54, 1, 1);
00476       }
00477 
00478       if (sqrtS()/GeV >= 29 && sqrtS()/GeV <= 35) {
00479         _histMeanMultiPiPlus             = bookHistogram1D( 1, 1, 2);
00480         _histMeanMultiPi0                = bookHistogram1D( 2, 1, 2);
00481         _histMeanMultiKPlus              = bookHistogram1D( 3, 1, 2);
00482         _histMeanMultiK0                 = bookHistogram1D( 4, 1, 2);
00483         _histMeanMultiEta                = bookHistogram1D( 5, 1, 2);
00484         _histMeanMultiEtaPrime           = bookHistogram1D( 6, 1, 2);
00485         _histMeanMultiDPlus              = bookHistogram1D( 7, 1, 2);
00486         _histMeanMultiD0                 = bookHistogram1D( 8, 1, 2);
00487         _histMeanMultiDPlus_s            = bookHistogram1D( 9, 1, 2);
00488         _histMeanMultiF0_980             = bookHistogram1D(13, 1, 2);
00489         _histMeanMultiRho770_0           = bookHistogram1D(15, 1, 2);
00490         _histMeanMultiKStar892Plus       = bookHistogram1D(18, 1, 2);
00491         _histMeanMultiKStar892_0         = bookHistogram1D(19, 1, 2);
00492         _histMeanMultiPhi1020            = bookHistogram1D(20, 1, 2);
00493         _histMeanMultiDStar2010Plus      = bookHistogram1D(21, 1, 2);
00494         _histMeanMultiDStar2007_0        = bookHistogram1D(22, 1, 2);
00495         _histMeanMultiF2_1270            = bookHistogram1D(31, 1, 2);
00496         _histMeanMultiK2Star1430Plus     = bookHistogram1D(33, 1, 1);
00497         _histMeanMultiK2Star1430_0       = bookHistogram1D(34, 1, 1);
00498         _histMeanMultiP                  = bookHistogram1D(38, 1, 2);
00499         _histMeanMultiLambda             = bookHistogram1D(39, 1, 2);
00500         _histMeanMultiXiMinus            = bookHistogram1D(44, 1, 2);
00501         _histMeanMultiSigma1385Minus     = bookHistogram1D(46, 1, 2);
00502         _histMeanMultiSigma1385Plus      = bookHistogram1D(47, 1, 2);
00503         _histMeanMultiSigma1385PlusMinus = bookHistogram1D(48, 1, 2);
00504         _histMeanMultiOmegaMinus         = bookHistogram1D(50, 1, 2);
00505         _histMeanMultiLambda_c_Plus      = bookHistogram1D(51, 1, 2);
00506       }
00507 
00508       if (sqrtS()/GeV >= 89.5 && sqrtS()/GeV <= 91.8) {
00509         _histMeanMultiPiPlus             = bookHistogram1D( 1, 1, 3);
00510         _histMeanMultiPi0                = bookHistogram1D( 2, 1, 3);
00511         _histMeanMultiKPlus              = bookHistogram1D( 3, 1, 3);
00512         _histMeanMultiK0                 = bookHistogram1D( 4, 1, 3);
00513         _histMeanMultiEta                = bookHistogram1D( 5, 1, 3);
00514         _histMeanMultiEtaPrime           = bookHistogram1D( 6, 1, 3);
00515         _histMeanMultiDPlus              = bookHistogram1D( 7, 1, 3);
00516         _histMeanMultiD0                 = bookHistogram1D( 8, 1, 3);
00517         _histMeanMultiDPlus_s            = bookHistogram1D( 9, 1, 3);
00518         _histMeanMultiBPlus_B0_d         = bookHistogram1D(10, 1, 1);
00519         _histMeanMultiBPlus_u            = bookHistogram1D(11, 1, 1);
00520         _histMeanMultiB0_s               = bookHistogram1D(12, 1, 1);
00521         _histMeanMultiF0_980             = bookHistogram1D(13, 1, 3);
00522         _histMeanMultiA0_980Plus         = bookHistogram1D(14, 1, 1);
00523         _histMeanMultiRho770_0           = bookHistogram1D(15, 1, 3);
00524         _histMeanMultiRho770Plus         = bookHistogram1D(16, 1, 1);
00525         _histMeanMultiOmega782           = bookHistogram1D(17, 1, 2);
00526         _histMeanMultiKStar892Plus       = bookHistogram1D(18, 1, 3);
00527         _histMeanMultiKStar892_0         = bookHistogram1D(19, 1, 3);
00528         _histMeanMultiPhi1020            = bookHistogram1D(20, 1, 3);
00529         _histMeanMultiDStar2010Plus      = bookHistogram1D(21, 1, 3);
00530         _histMeanMultiDStar_s2112Plus    = bookHistogram1D(23, 1, 2);
00531         _histMeanMultiBStar              = bookHistogram1D(24, 1, 1);
00532         _histMeanMultiJPsi1S             = bookHistogram1D(25, 1, 2);
00533         _histMeanMultiPsi2S              = bookHistogram1D(26, 1, 1);
00534         _histMeanMultiUpsilon1S          = bookHistogram1D(27, 1, 1);
00535         _histMeanMultiF1_1285            = bookHistogram1D(28, 1, 1);
00536         _histMeanMultiF1_1420            = bookHistogram1D(29, 1, 1);
00537         _histMeanMultiChi_c1_3510        = bookHistogram1D(30, 1, 1);
00538         _histMeanMultiF2_1270            = bookHistogram1D(31, 1, 3);
00539         _histMeanMultiF2Prime1525        = bookHistogram1D(32, 1, 1);
00540         _histMeanMultiK2Star1430_0       = bookHistogram1D(34, 1, 2);
00541         _histMeanMultiBStarStar          = bookHistogram1D(35, 1, 1);
00542         _histMeanMultiDs1Plus            = bookHistogram1D(36, 1, 1);
00543         _histMeanMultiDs2Plus            = bookHistogram1D(37, 1, 1);
00544         _histMeanMultiP                  = bookHistogram1D(38, 1, 3);
00545         _histMeanMultiLambda             = bookHistogram1D(39, 1, 3);
00546         _histMeanMultiSigma0             = bookHistogram1D(40, 1, 2);
00547         _histMeanMultiSigmaMinus         = bookHistogram1D(41, 1, 1);
00548         _histMeanMultiSigmaPlus          = bookHistogram1D(42, 1, 1);
00549         _histMeanMultiSigmaPlusMinus     = bookHistogram1D(43, 1, 1);
00550         _histMeanMultiXiMinus            = bookHistogram1D(44, 1, 3);
00551         _histMeanMultiDelta1232PlusPlus  = bookHistogram1D(45, 1, 2);
00552         _histMeanMultiSigma1385Minus     = bookHistogram1D(46, 1, 3);
00553         _histMeanMultiSigma1385Plus      = bookHistogram1D(47, 1, 3);
00554         _histMeanMultiSigma1385PlusMinus = bookHistogram1D(48, 1, 3);
00555         _histMeanMultiXi1530_0           = bookHistogram1D(49, 1, 2);
00556         _histMeanMultiOmegaMinus         = bookHistogram1D(50, 1, 3);
00557         _histMeanMultiLambda_c_Plus      = bookHistogram1D(51, 1, 3);
00558         _histMeanMultiLambda_b_0         = bookHistogram1D(52, 1, 1);
00559         _histMeanMultiLambda1520         = bookHistogram1D(54, 1, 2);
00560       }
00561 
00562       if (sqrtS()/GeV >= 130 && sqrtS()/GeV <= 200) {
00563         _histMeanMultiPiPlus            = bookHistogram1D( 1, 1, 4);
00564         _histMeanMultiKPlus             = bookHistogram1D( 3, 1, 4);
00565         _histMeanMultiK0                = bookHistogram1D( 4, 1, 4);
00566         _histMeanMultiP                 = bookHistogram1D(38, 1, 4);
00567         _histMeanMultiLambda            = bookHistogram1D(39, 1, 4);
00568       }
00569     }

void finalize (  )  [inline, virtual]

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

Implements Analysis.

Definition at line 574 of file PDG_Hadron_Multiplicities.cc.

References PDG_HADRON_MULTIPLICITIES::_histMeanMultiA0_980Plus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiB0_s, PDG_HADRON_MULTIPLICITIES::_histMeanMultiBPlus_B0_d, PDG_HADRON_MULTIPLICITIES::_histMeanMultiBPlus_u, PDG_HADRON_MULTIPLICITIES::_histMeanMultiBStar, PDG_HADRON_MULTIPLICITIES::_histMeanMultiBStarStar, PDG_HADRON_MULTIPLICITIES::_histMeanMultiChi_c1_3510, PDG_HADRON_MULTIPLICITIES::_histMeanMultiD0, PDG_HADRON_MULTIPLICITIES::_histMeanMultiDelta1232PlusPlus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiDPlus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiDPlus_s, PDG_HADRON_MULTIPLICITIES::_histMeanMultiDs1Plus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiDs2Plus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiDStar2007_0, PDG_HADRON_MULTIPLICITIES::_histMeanMultiDStar2010Plus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiDStar_s2112Plus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiEta, PDG_HADRON_MULTIPLICITIES::_histMeanMultiEtaPrime, PDG_HADRON_MULTIPLICITIES::_histMeanMultiF0_980, PDG_HADRON_MULTIPLICITIES::_histMeanMultiF1_1285, PDG_HADRON_MULTIPLICITIES::_histMeanMultiF1_1420, PDG_HADRON_MULTIPLICITIES::_histMeanMultiF2_1270, PDG_HADRON_MULTIPLICITIES::_histMeanMultiF2Prime1525, PDG_HADRON_MULTIPLICITIES::_histMeanMultiJPsi1S, PDG_HADRON_MULTIPLICITIES::_histMeanMultiK0, PDG_HADRON_MULTIPLICITIES::_histMeanMultiK2Star1430_0, PDG_HADRON_MULTIPLICITIES::_histMeanMultiK2Star1430Plus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiKPlus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiKStar892_0, PDG_HADRON_MULTIPLICITIES::_histMeanMultiKStar892Plus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiLambda, PDG_HADRON_MULTIPLICITIES::_histMeanMultiLambda1520, PDG_HADRON_MULTIPLICITIES::_histMeanMultiLambda_b_0, PDG_HADRON_MULTIPLICITIES::_histMeanMultiLambda_c_Plus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiOmega782, PDG_HADRON_MULTIPLICITIES::_histMeanMultiOmegaMinus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiP, PDG_HADRON_MULTIPLICITIES::_histMeanMultiPhi1020, PDG_HADRON_MULTIPLICITIES::_histMeanMultiPi0, PDG_HADRON_MULTIPLICITIES::_histMeanMultiPiPlus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiPsi2S, PDG_HADRON_MULTIPLICITIES::_histMeanMultiRho770_0, PDG_HADRON_MULTIPLICITIES::_histMeanMultiRho770Plus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiSigma0, PDG_HADRON_MULTIPLICITIES::_histMeanMultiSigma1385Minus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiSigma1385Plus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiSigma1385PlusMinus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiSigma_c_PlusPlus_0, PDG_HADRON_MULTIPLICITIES::_histMeanMultiSigmaMinus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiSigmaPlus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiSigmaPlusMinus, PDG_HADRON_MULTIPLICITIES::_histMeanMultiUpsilon1S, PDG_HADRON_MULTIPLICITIES::_histMeanMultiXi1530_0, PDG_HADRON_MULTIPLICITIES::_histMeanMultiXiMinus, Rivet::GeV, Analysis::scale(), Analysis::sqrtS(), and Analysis::sumOfWeights().

00574                     {
00575       if (sqrtS()/GeV >= 9.5 && sqrtS()/GeV <= 10.5) {
00576         scale(_histMeanMultiPiPlus            , 1.0/sumOfWeights());
00577         scale(_histMeanMultiPi0               , 1.0/sumOfWeights());
00578         scale(_histMeanMultiKPlus             , 1.0/sumOfWeights());
00579         scale(_histMeanMultiK0                , 1.0/sumOfWeights());
00580         scale(_histMeanMultiEta               , 1.0/sumOfWeights());
00581         scale(_histMeanMultiEtaPrime          , 1.0/sumOfWeights());
00582         scale(_histMeanMultiDPlus             , 1.0/sumOfWeights());
00583         scale(_histMeanMultiD0                , 1.0/sumOfWeights());
00584         scale(_histMeanMultiDPlus_s           , 1.0/sumOfWeights());
00585         scale(_histMeanMultiF0_980            , 1.0/sumOfWeights());
00586         scale(_histMeanMultiRho770_0          , 1.0/sumOfWeights());
00587         scale(_histMeanMultiOmega782          , 1.0/sumOfWeights());
00588         scale(_histMeanMultiKStar892Plus      , 1.0/sumOfWeights());
00589         scale(_histMeanMultiKStar892_0        , 1.0/sumOfWeights());
00590         scale(_histMeanMultiPhi1020           , 1.0/sumOfWeights());
00591         scale(_histMeanMultiDStar2010Plus     , 1.0/sumOfWeights());
00592         scale(_histMeanMultiDStar2007_0       , 1.0/sumOfWeights());
00593         scale(_histMeanMultiDStar_s2112Plus   , 1.0/sumOfWeights());
00594         scale(_histMeanMultiJPsi1S            , 1.0/sumOfWeights());
00595         scale(_histMeanMultiF2_1270           , 1.0/sumOfWeights());
00596         scale(_histMeanMultiP                 , 1.0/sumOfWeights());
00597         scale(_histMeanMultiLambda            , 1.0/sumOfWeights());
00598         scale(_histMeanMultiSigma0            , 1.0/sumOfWeights());
00599         scale(_histMeanMultiXiMinus           , 1.0/sumOfWeights());
00600         scale(_histMeanMultiDelta1232PlusPlus , 1.0/sumOfWeights());
00601         scale(_histMeanMultiSigma1385Minus    , 1.0/sumOfWeights());
00602         scale(_histMeanMultiSigma1385Plus     , 1.0/sumOfWeights());
00603         scale(_histMeanMultiSigma1385PlusMinus, 1.0/sumOfWeights());
00604         scale(_histMeanMultiXi1530_0          , 1.0/sumOfWeights());
00605         scale(_histMeanMultiOmegaMinus        , 1.0/sumOfWeights());
00606         scale(_histMeanMultiLambda_c_Plus     , 1.0/sumOfWeights());
00607         scale(_histMeanMultiSigma_c_PlusPlus_0, 1.0/sumOfWeights());
00608         scale(_histMeanMultiLambda1520        , 1.0/sumOfWeights());
00609       }
00610 
00611       if (sqrtS()/GeV >= 29 && sqrtS()/GeV <= 35) {
00612         scale(_histMeanMultiPiPlus            , 1.0/sumOfWeights());
00613         scale(_histMeanMultiPi0               , 1.0/sumOfWeights());
00614         scale(_histMeanMultiKPlus             , 1.0/sumOfWeights());
00615         scale(_histMeanMultiK0                , 1.0/sumOfWeights());
00616         scale(_histMeanMultiEta               , 1.0/sumOfWeights());
00617         scale(_histMeanMultiEtaPrime          , 1.0/sumOfWeights());
00618         scale(_histMeanMultiDPlus             , 1.0/sumOfWeights());
00619         scale(_histMeanMultiD0                , 1.0/sumOfWeights());
00620         scale(_histMeanMultiDPlus_s           , 1.0/sumOfWeights());
00621         scale(_histMeanMultiF0_980            , 1.0/sumOfWeights());
00622         scale(_histMeanMultiRho770_0          , 1.0/sumOfWeights());
00623         scale(_histMeanMultiKStar892Plus      , 1.0/sumOfWeights());
00624         scale(_histMeanMultiKStar892_0        , 1.0/sumOfWeights());
00625         scale(_histMeanMultiPhi1020           , 1.0/sumOfWeights());
00626         scale(_histMeanMultiDStar2010Plus     , 1.0/sumOfWeights());
00627         scale(_histMeanMultiDStar2007_0       , 1.0/sumOfWeights());
00628         scale(_histMeanMultiF2_1270           , 1.0/sumOfWeights());
00629         scale(_histMeanMultiK2Star1430Plus    , 1.0/sumOfWeights());
00630         scale(_histMeanMultiK2Star1430_0      , 1.0/sumOfWeights());
00631         scale(_histMeanMultiP                 , 1.0/sumOfWeights());
00632         scale(_histMeanMultiLambda            , 1.0/sumOfWeights());
00633         scale(_histMeanMultiXiMinus           , 1.0/sumOfWeights());
00634         scale(_histMeanMultiSigma1385Minus    , 1.0/sumOfWeights());
00635         scale(_histMeanMultiSigma1385Plus     , 1.0/sumOfWeights());
00636         scale(_histMeanMultiSigma1385PlusMinus, 1.0/sumOfWeights());
00637         scale(_histMeanMultiOmegaMinus        , 1.0/sumOfWeights());
00638         scale(_histMeanMultiLambda_c_Plus     , 1.0/sumOfWeights());
00639       }
00640 
00641       if (sqrtS()/GeV >= 89.5 && sqrtS()/GeV <= 91.8) {
00642         scale(_histMeanMultiPiPlus            , 1.0/sumOfWeights());
00643         scale(_histMeanMultiPi0               , 1.0/sumOfWeights());
00644         scale(_histMeanMultiKPlus             , 1.0/sumOfWeights());
00645         scale(_histMeanMultiK0                , 1.0/sumOfWeights());
00646         scale(_histMeanMultiEta               , 1.0/sumOfWeights());
00647         scale(_histMeanMultiEtaPrime          , 1.0/sumOfWeights());
00648         scale(_histMeanMultiDPlus             , 1.0/sumOfWeights());
00649         scale(_histMeanMultiD0                , 1.0/sumOfWeights());
00650         scale(_histMeanMultiDPlus_s           , 1.0/sumOfWeights());
00651         scale(_histMeanMultiBPlus_B0_d        , 1.0/sumOfWeights());
00652         scale(_histMeanMultiBPlus_u           , 1.0/sumOfWeights());
00653         scale(_histMeanMultiB0_s              , 1.0/sumOfWeights());
00654         scale(_histMeanMultiF0_980            , 1.0/sumOfWeights());
00655         scale(_histMeanMultiA0_980Plus        , 1.0/sumOfWeights());
00656         scale(_histMeanMultiRho770_0          , 1.0/sumOfWeights());
00657         scale(_histMeanMultiRho770Plus        , 1.0/sumOfWeights());
00658         scale(_histMeanMultiOmega782          , 1.0/sumOfWeights());
00659         scale(_histMeanMultiKStar892Plus      , 1.0/sumOfWeights());
00660         scale(_histMeanMultiKStar892_0        , 1.0/sumOfWeights());
00661         scale(_histMeanMultiPhi1020           , 1.0/sumOfWeights());
00662         scale(_histMeanMultiDStar2010Plus     , 1.0/sumOfWeights());
00663         scale(_histMeanMultiDStar_s2112Plus   , 1.0/sumOfWeights());
00664         scale(_histMeanMultiBStar             , 1.0/sumOfWeights());
00665         scale(_histMeanMultiJPsi1S            , 1.0/sumOfWeights());
00666         scale(_histMeanMultiPsi2S             , 1.0/sumOfWeights());
00667         scale(_histMeanMultiUpsilon1S         , 1.0/sumOfWeights());
00668         scale(_histMeanMultiF1_1285           , 1.0/sumOfWeights());
00669         scale(_histMeanMultiF1_1420           , 1.0/sumOfWeights());
00670         scale(_histMeanMultiChi_c1_3510       , 1.0/sumOfWeights());
00671         scale(_histMeanMultiF2_1270           , 1.0/sumOfWeights());
00672         scale(_histMeanMultiF2Prime1525       , 1.0/sumOfWeights());
00673         scale(_histMeanMultiK2Star1430_0      , 1.0/sumOfWeights());
00674         scale(_histMeanMultiBStarStar         , 1.0/sumOfWeights());
00675         scale(_histMeanMultiDs1Plus           , 1.0/sumOfWeights());
00676         scale(_histMeanMultiDs2Plus           , 1.0/sumOfWeights());
00677         scale(_histMeanMultiP                 , 1.0/sumOfWeights());
00678         scale(_histMeanMultiLambda            , 1.0/sumOfWeights());
00679         scale(_histMeanMultiSigma0            , 1.0/sumOfWeights());
00680         scale(_histMeanMultiSigmaMinus        , 1.0/sumOfWeights());
00681         scale(_histMeanMultiSigmaPlus         , 1.0/sumOfWeights());
00682         scale(_histMeanMultiSigmaPlusMinus    , 1.0/sumOfWeights());
00683         scale(_histMeanMultiXiMinus           , 1.0/sumOfWeights());
00684         scale(_histMeanMultiDelta1232PlusPlus , 1.0/sumOfWeights());
00685         scale(_histMeanMultiSigma1385Minus    , 1.0/sumOfWeights());
00686         scale(_histMeanMultiSigma1385Plus     , 1.0/sumOfWeights());
00687         scale(_histMeanMultiSigma1385PlusMinus, 1.0/sumOfWeights());
00688         scale(_histMeanMultiXi1530_0          , 1.0/sumOfWeights());
00689         scale(_histMeanMultiOmegaMinus        , 1.0/sumOfWeights());
00690         scale(_histMeanMultiLambda_c_Plus     , 1.0/sumOfWeights());
00691         scale(_histMeanMultiLambda_b_0        , 1.0/sumOfWeights());
00692         scale(_histMeanMultiLambda1520        , 1.0/sumOfWeights());
00693       }
00694 
00695       if (sqrtS()/GeV >= 130 && sqrtS()/GeV <= 200) {
00696         scale(_histMeanMultiPiPlus           , 1.0/sumOfWeights());
00697         scale(_histMeanMultiKPlus            , 1.0/sumOfWeights());
00698         scale(_histMeanMultiK0               , 1.0/sumOfWeights());
00699         scale(_histMeanMultiP                , 1.0/sumOfWeights());
00700         scale(_histMeanMultiLambda           , 1.0/sumOfWeights());
00701       }
00702     }

const AnalysisInfo & info (  )  const [virtual, inherited]

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

Definition at line 125 of file Analysis.cc.

References Analysis::_info.

Referenced by Analysis::energies(), and Analysis::requiredBeams().

00125                                            {
00126     assert(_info.get() != 0);
00127     return *_info;
00128   }

string name (  )  const [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 130 of file Analysis.cc.

References Analysis::_defaultname, and Analysis::_info.

Referenced by Analysis::_cacheBinEdges(), Analysis::_cacheXAxisData(), Analysis::_makeHistoDir(), AnalysisHandler::analysisNames(), AnalysisHandler::analyze(), Analysis::crossSection(), Analysis::getLog(), Analysis::histoDir(), AnalysisHandler::init(), AnalysisBuilderBase::name(), Analysis::normalize(), HistoHandler::registerAnalysisObject(), AnalysisHandler::removeIncompatibleAnalyses(), and Analysis::scale().

00130                               {
00131     if (_info && !_info->name().empty()) return _info->name();
00132     return _defaultname;
00133   }

string spiresId (  )  const [virtual, inherited]

Get a the SPIRES/Inspire ID code for this analysis.

Definition at line 135 of file Analysis.cc.

References Analysis::_info.

00135                                   {
00136     if (!_info) return "NONE";
00137     return _info->spiresId();
00138   }

vector< string > authors (  )  const [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 140 of file Analysis.cc.

References Analysis::_info.

00140                                          {
00141     if (!_info) return std::vector<std::string>();
00142     return _info->authors();
00143   }

string summary (  )  const [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 145 of file Analysis.cc.

References Analysis::_info.

00145                                  {
00146     if (!_info) return "NONE";
00147     return _info->summary();
00148   }

string description (  )  const [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 150 of file Analysis.cc.

References Analysis::_info.

00150                                      {
00151     if (!_info) return "NONE";
00152     return _info->description();
00153   }

string runInfo (  )  const [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 155 of file Analysis.cc.

References Analysis::_info.

00155                                  {
00156     if (!_info) return "NONE";
00157     return _info->runInfo();
00158   }

string experiment (  )  const [virtual, inherited]

Experiment which performed and published this analysis.

Definition at line 164 of file Analysis.cc.

References Analysis::_info.

00164                                     {
00165     if (!_info) return "NONE";
00166     return _info->experiment();
00167   }

string collider (  )  const [virtual, inherited]

Collider on which the experiment ran.

Definition at line 169 of file Analysis.cc.

References Analysis::_info.

00169                                   {
00170     if (!_info) return "NONE";
00171     return _info->collider();
00172   }

const BeamPair requiredBeams (  )  const [virtual, inherited]

Return the pair of incoming beams required by this analysis.

Definition at line 189 of file Analysis.cc.

References Analysis::beams(), Analysis::info(), and Rivet::make_pdgid_pair().

Referenced by Analysis::isCompatible().

00189                                                {
00190     return make_pdgid_pair(info().beams());
00191   }

const std::vector< std::pair< double, double > > & energies (  )  const [virtual, inherited]

Sets of valid beam energy pairs, in GeV.

Definition at line 160 of file Analysis.cc.

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

00160                                                                      {
00161     return info().energies();
00162   }

string year (  )  const [virtual, inherited]

When the original experimental analysis was published.

When the refereed paper on which this is based was published, according to SPIRES.

Definition at line 174 of file Analysis.cc.

References Analysis::_info.

00174                               {
00175     if (!_info) return "NONE";
00176     return _info->year();
00177   }

vector< string > references (  )  const [virtual, inherited]

Journal, and preprint references.

Definition at line 179 of file Analysis.cc.

References Analysis::_info.

00179                                             {
00180     if (!_info) return vector<string>();
00181     return _info->references();
00182   }

string status (  )  const [virtual, inherited]

Whether this analysis is trusted (in any way!).

Definition at line 184 of file Analysis.cc.

References Analysis::_info.

Referenced by AnalysisHandler::init().

00184                                 {
00185     if (!_info) return "UNVALIDATED";
00186     return _info->status();
00187   }

const ParticlePair & beams (  )  const [inherited]

const BeamPair beamIds (  )  const [inherited]

Incoming beam IDs for this run.

Definition at line 83 of file Analysis.cc.

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

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

00083                                          {
00084     return handler().beamIds();
00085   }

double sqrtS (  )  const [inherited]

bool isCompatible ( const ParticleName beam1,
const ParticleName beam2 
) const [virtual, inherited]

Is this analysis able to run on the supplied pair of beams?

Todo:
Need to also check internal consistency of the analysis' beam requirements with those of the projections it uses.

Definition at line 200 of file Analysis.cc.

References Analysis::beams(), Rivet::compatible(), and Analysis::requiredBeams().

Referenced by AnalysisHandler::removeIncompatibleAnalyses().

00200                                                                                         {
00201     BeamPair beams(beam1, beam2);
00202     return compatible(beams, requiredBeams());
00203     /// @todo Need to also check internal consistency of the analysis'
00204     /// beam requirements with those of the projections it uses.
00205   }

bool isCompatible ( const BeamPair beams  )  const [virtual, inherited]

Is this analysis able to run on the BeamPair beams ?

Todo:
Need to also check internal consistency of the analysis' beam requirements with those of the projections it uses.

Definition at line 207 of file Analysis.cc.

References Rivet::compatible(), and Analysis::requiredBeams().

00207                                                          {
00208     return compatible(beams, requiredBeams());
00209     /// @todo Need to also check internal consistency of the analysis'
00210     /// beam requirements with those of the projections it uses.
00211   }

AnalysisHandler & handler (  )  const [inherited]

void normalize ( AIDA::IHistogram1D *&  histo,
double  norm = 1.0 
) [inherited]

Normalize the given histogram, histo. After this call the histogram will have been transformed to a DataPointSet with the same name and path. It has the same effect as scale(histo, norm/sumOfWeights).

Parameters:
histo The histogram to be normalised.
norm The new area of the histogram.
Warning:
The old histogram will be deleted, and its pointer set to zero.

Definition at line 487 of file Analysis.cc.

References Log::ERROR, Analysis::getLog(), Analysis::name(), Analysis::scale(), Log::TRACE, Analysis::tree(), and Log::WARN.

Referenced by OPAL_1998_S3780481::finalize(), H1_1994_S2919893::finalize(), ExampleAnalysis::finalize(), DELPHI_2002_069_CONF_603::finalize(), DELPHI_1995_S3137023::finalize(), D0_2009_S8320160::finalize(), D0_2008_S7554427::finalize(), D0_2008_S6879055::finalize(), D0_2007_S7075677::finalize(), D0_2004_S5992206::finalize(), D0_2001_S4674421::finalize(), D0_1996_S3324664::finalize(), D0_1996_S3214044::finalize(), CDF_2007_S7057202::finalize(), CDF_2004_S5839831::finalize(), CDF_2002_S4796047::finalize(), CDF_2001_S4751469::finalize(), CDF_1997_S3541940::finalize(), CDF_1996_S3418421::finalize(), CDF_1996_S3349578::finalize(), CDF_1996_S3108457::finalize(), CDF_1994_S2952106::finalize(), ALEPH_2004_S5765862::finalize(), and ALEPH_1996_S3486095::finalize().

00487                                                                 {
00488     if (!histo) {
00489       getLog() << Log::ERROR << "Failed to normalise histo=NULL in analysis "
00490                << name() << "(norm=" << norm << ")" << endl;
00491       return;
00492     }
00493     const string hpath = tree().findPath(dynamic_cast<const AIDA::IManagedObject&>(*histo));
00494     getLog() << Log::TRACE << "Normalizing histo " << hpath << " to " << norm << endl;
00495  
00496     double oldintg = 0.0;
00497     int nBins = histo->axis().bins();
00498     for (int iBin = 0; iBin != nBins; ++iBin) {
00499       // Leaving out factor of binWidth because AIDA's "height" already includes a width factor.
00500       oldintg += histo->binHeight(iBin); // * histo->axis().binWidth(iBin);
00501     }
00502     if (oldintg == 0.0) {
00503       getLog() << Log::WARN << "Histo " << hpath << " has null integral during normalisation" << endl;
00504       return;
00505     }
00506 
00507     // Scale by the normalisation factor.
00508     scale(histo, norm/oldintg);
00509   }

void scale ( AIDA::IHistogram1D *&  histo,
double  scale 
) [inherited]

Multiplicatively scale the given histogram, histo. After this call the histogram will have been transformed to a DataPointSet with the same name and path.

Parameters:
histo The histogram to be scaled.
scale The factor used to multiply the histogram bin heights.
Warning:
The old histogram will be deleted, and its pointer set to zero.

Definition at line 512 of file Analysis.cc.

References Analysis::datapointsetFactory(), Log::ERROR, Analysis::getLog(), Analysis::name(), Log::TRACE, and Analysis::tree().

Referenced by UA5_1989_S1926373::finalize(), UA5_1986_S1583476::finalize(), UA5_1982_S875503::finalize(), UA1_1990_S2044935::finalize(), STAR_2006_S6870392::finalize(), STAR_2006_S6860818::finalize(), STAR_2006_S6500200::finalize(), SFM_1984_S1178091::finalize(), PDG_HADRON_MULTIPLICITIES_RATIOS::finalize(), PDG_HADRON_MULTIPLICITIES::finalize(), OPAL_2004_S6132243::finalize(), OPAL_1998_S3780481::finalize(), MC_ZJETS::finalize(), MC_WJETS::finalize(), MC_TTBAR::finalize(), MC_PHOTONJETS::finalize(), MC_JetAnalysis::finalize(), MC_DIPHOTON::finalize(), JADE_OPAL_2000_S4300807::finalize(), H1_2000_S4129130::finalize(), H1_1994_S2919893::finalize(), E735_1998_S3905616::finalize(), D0_2010_S8570965::finalize(), D0_2010_S8566488::finalize(), D0_2009_S8349509::finalize(), D0_2009_S8202443::finalize(), D0_2008_S7863608::finalize(), D0_2008_S7719523::finalize(), D0_2008_S7662670::finalize(), D0_2006_S6438750::finalize(), CDF_2009_S8436959::finalize(), CDF_2009_S8383952::finalize(), CDF_2009_S8233977::finalize(), CDF_2008_S8093652::finalize(), CDF_2008_S7828950::finalize(), CDF_2008_S7540469::finalize(), CDF_2006_S6450792::finalize(), CDF_2005_S6080774::finalize(), CDF_2001_S4563131::finalize(), CDF_2001_S4517016::finalize(), CDF_2000_S4266730::finalize(), CDF_2000_S4155203::finalize(), CDF_1998_S3618439::finalize(), CDF_1990_S2089246::finalize(), CDF_1988_S1865951::finalize(), ATLAS_2010_S8591806::finalize(), ALEPH_2004_S5765862::finalize(), ALEPH_1996_S3486095::finalize(), ALEPH_1996_S3196992::finalize(), ALEPH_1991_S2435284::finalize(), and Analysis::normalize().

00512                                                              {
00513     if (!histo) {
00514       getLog() << Log::ERROR << "Failed to scale histo=NULL in analysis "
00515           << name() << "(scale=" << scale << ")" << endl;
00516       return;
00517     }
00518     const string hpath = tree().findPath(dynamic_cast<const AIDA::IManagedObject&>(*histo));
00519     getLog() << Log::TRACE << "Scaling histo " << hpath << endl;
00520  
00521     vector<double> x, y, ex, ey;
00522     for (size_t i = 0, N = histo->axis().bins(); i < N; ++i) {
00523       x.push_back(0.5 * (histo->axis().binLowerEdge(i) + histo->axis().binUpperEdge(i)));
00524       ex.push_back(histo->axis().binWidth(i)*0.5);
00525 
00526       // "Bin height" is a misnomer in the AIDA spec: width is neglected.
00527       // We'd like to do this: y.push_back(histo->binHeight(i) * scale);
00528       y.push_back(histo->binHeight(i)*scale/histo->axis().binWidth(i));
00529 
00530       // "Bin error" is a misnomer in the AIDA spec: width is neglected.
00531       // We'd like to do this: ey.push_back(histo->binError(i) * scale);
00532       ey.push_back(histo->binError(i)*scale/(0.5*histo->axis().binWidth(i)));
00533     }
00534  
00535     string title = histo->title();
00536     string xtitle = histo->xtitle();
00537     string ytitle = histo->ytitle();
00538 
00539     tree().mkdir("/tmpnormalize");
00540     tree().mv(hpath, "/tmpnormalize");
00541  
00542     AIDA::IDataPointSet* dps = datapointsetFactory().createXY(hpath, title, x, y, ex, ey);
00543     dps->setXTitle(xtitle);
00544     dps->setYTitle(ytitle);
00545  
00546     tree().rm(tree().findPath(dynamic_cast<AIDA::IManagedObject&>(*histo)));
00547     tree().rmdir("/tmpnormalize");
00548  
00549     // Set histo pointer to null - it can no longer be used.
00550     histo = 0;
00551   }

Analysis & setCrossSection ( double  xs  )  [inherited]

Set the cross section from the generator.

Definition at line 214 of file Analysis.cc.

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

Referenced by AnalysisHandler::setCrossSection().

00214                                                {
00215     _crossSection = xs;
00216     _gotCrossSection = true;
00217     return *this;
00218   }

bool needsCrossSection (  )  const [inherited]

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

Definition at line 220 of file Analysis.cc.

References Analysis::_needsCrossSection.

Referenced by AnalysisHandler::needCrossSection().

00220                                          {
00221     return _needsCrossSection;
00222   }

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 106 of file Analysis.cc.

References Log::getLog(), and Analysis::name().

Referenced by Analysis::_cacheBinEdges(), Analysis::_cacheXAxisData(), CDF_2004_S5839831::_calcTransCones(), CDF_1996_S3349578::_fiveJetAnalysis(), CDF_1996_S3349578::_fourJetAnalysis(), D0_1996_S3214044::_safeMass(), CDF_1997_S3541940::_safeMass(), CDF_1996_S3349578::_safeMass(), CDF_1996_S3349578::_threeJetAnalysis(), ZEUS_2001_S4815815::analyze(), UA5_1986_S1583476::analyze(), UA1_1990_S2044935::analyze(), STAR_2009_UE_HELEN::analyze(), STAR_2008_S7993412::analyze(), STAR_2006_S6870392::analyze(), STAR_2006_S6860818::analyze(), STAR_2006_S6500200::analyze(), SFM_1984_S1178091::analyze(), PDG_HADRON_MULTIPLICITIES_RATIOS::analyze(), PDG_HADRON_MULTIPLICITIES::analyze(), OPAL_1998_S3780481::analyze(), MC_SUSY::analyze(), MC_PHOTONJETUE::analyze(), MC_LEADINGJETS::analyze(), JADE_OPAL_2000_S4300807::analyze(), H1_1994_S2919893::analyze(), ExampleAnalysis::analyze(), DELPHI_2002_069_CONF_603::analyze(), DELPHI_1995_S3137023::analyze(), D0_2009_S8349509::analyze(), D0_2009_S8202443::analyze(), D0_2008_S7863608::analyze(), D0_2008_S7837160::analyze(), D0_2008_S7719523::analyze(), D0_2008_S7662670::analyze(), D0_2008_S7554427::analyze(), D0_2008_S6879055::analyze(), D0_2007_S7075677::analyze(), D0_2006_S6438750::analyze(), D0_2004_S5992206::analyze(), D0_2001_S4674421::analyze(), D0_1998_S3711838::analyze(), CDF_2009_S8383952::analyze(), CDF_2009_S8233977::analyze(), CDF_2008_S8095620::analyze(), CDF_2008_S7782535::analyze(), CDF_2008_S7540469::analyze(), CDF_2008_NOTE_9351::analyze(), CDF_2008_LEADINGJETS::analyze(), CDF_2006_S6653332::analyze(), CDF_2005_S6217184::analyze(), CDF_2004_S5839831::analyze(), CDF_2001_S4751469::analyze(), CDF_2000_S4155203::analyze(), CDF_1994_S2952106::analyze(), CDF_1991_S2313472::analyze(), BELLE_2006_S6265367::analyze(), ALEPH_1996_S3486095::analyze(), ALEPH_1991_S2435284::analyze(), CDF_2009_S8057893::CDF_2009_S8057893::analyze(), UA5_1986_S1583476::finalize(), UA1_1990_S2044935::finalize(), STAR_2006_S6860818::finalize(), STAR_2006_S6500200::finalize(), D0_2001_S4674421::finalize(), CDF_2009_S8233977::finalize(), CDF_2007_S7057202::finalize(), CDF_2006_S6653332::finalize(), ZEUS_2001_S4815815::init(), JADE_OPAL_2000_S4300807::init(), ALEPH_2004_S5765862::init(), Analysis::normalize(), and Analysis::scale().

00106                               {
00107     string logname = "Rivet.Analysis." + name();
00108     return Log::getLog(logname);
00109   }

double crossSection (  )  const [protected, inherited]

double crossSectionPerEvent (  )  const [protected, inherited]

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

Definition at line 237 of file Analysis.cc.

References Analysis::_crossSection, and Analysis::sumOfWeights().

Referenced by UA1_1990_S2044935::finalize(), MC_PHOTONJETS::finalize(), D0_2001_S4674421::finalize(), CDF_2007_S7057202::finalize(), and CDF_1988_S1865951::finalize().

00237                                               {
00238     const double sumW = sumOfWeights();
00239     assert(sumW > 0);
00240     return _crossSection / sumW;
00241   }

size_t numEvents (  )  const [protected, inherited]

Get the number of events seen (via the analysis handler). Use in the finalize phase only.

Definition at line 112 of file Analysis.cc.

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

00112                                    {
00113     return handler().numEvents();
00114   }

double sumOfWeights (  )  const [protected, inherited]

IAnalysisFactory & analysisFactory (  )  [protected, inherited]

Access the AIDA analysis factory of the controlling AnalysisHandler object.

Definition at line 55 of file Analysis.cc.

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

00055                                               {
00056     return handler().analysisFactory();
00057   }

ITree & tree (  )  [protected, inherited]

Access the AIDA tree of the controlling AnalysisHandler object.

Definition at line 60 of file Analysis.cc.

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

Referenced by Analysis::_makeHistoDir(), Analysis::normalize(), and Analysis::scale().

00060                         {
00061     return handler().tree();
00062   }

IHistogramFactory & histogramFactory (  )  [protected, inherited]

Access the AIDA histogram factory of the controlling AnalysisHandler object.

Definition at line 65 of file Analysis.cc.

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

Referenced by STAR_2006_S6860818::finalize(), STAR_2006_S6500200::finalize(), H1_1995_S3167097::finalize(), D0_2008_S7837160::finalize(), D0_2008_S7719523::finalize(), and D0_2001_S4674421::finalize().

00065                                                 {
00066     return handler().histogramFactory();
00067   }

IDataPointSetFactory & datapointsetFactory (  )  [protected, inherited]

Access the AIDA histogram factory of the controlling AnalysisHandler object.

Definition at line 70 of file Analysis.cc.

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

Referenced by Analysis::scale().

00070                                                       {
00071     return handler().datapointsetFactory();
00072   }

const string histoDir (  )  const [protected, inherited]

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

Definition at line 88 of file Analysis.cc.

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

Referenced by Analysis::_makeHistoDir(), STAR_2006_S6860818::finalize(), STAR_2006_S6500200::finalize(), D0_2008_S7837160::finalize(), D0_2008_S7719523::finalize(), and D0_2001_S4674421::finalize().

00088                                         {
00089     string path = "/" + name();
00090     if (handler().runName().length() > 0) {
00091       path = "/" + handler().runName() + path;
00092     }
00093     while (find_first(path, "//")) {
00094       replace_all(path, "//", "/");
00095     }
00096     return path;
00097   }

const std::string histoPath ( const std::string &  hname  )  const [protected, inherited]

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

const BinEdges& binEdges ( const std::string &  hname  )  const [protected, inherited]

Get bin edges for a named histo (using ref AIDA caching).

Referenced by Analysis::binEdges(), and D0_2008_S7837160::init().

const BinEdges & binEdges ( size_t  datasetId,
size_t  xAxisId,
size_t  yAxisId 
) const [protected, inherited]

Get bin edges for a numbered histo (using ref AIDA caching).

Definition at line 286 of file Analysis.cc.

References Analysis::binEdges(), and Rivet::makeAxisCode().

00286                                                                                            {
00287     const string hname = makeAxisCode(datasetId, xAxisId, yAxisId);
00288     return binEdges(hname);
00289   }

BinEdges logBinEdges ( size_t  nbins,
double  lower,
double  upper 
) [protected, inherited]

Get bin edges with logarithmic widths.

Definition at line 292 of file Analysis.cc.

Referenced by MC_ZJETS::init(), MC_WJETS::init(), MC_PHOTONJETS::init(), MC_JetAnalysis::init(), and MC_DIPHOTON::init().

00292                                                                          {
00293     assert(lower>0.0);
00294     assert(upper>lower);
00295     double loglower=log10(lower);
00296     double logupper=log10(upper);
00297     vector<double> binedges;
00298     double stepwidth=(logupper-loglower)/double(nbins);
00299     for (size_t i=0; i<=nbins; ++i) {
00300       binedges.push_back(pow(10.0, loglower+double(i)*stepwidth));
00301     }
00302     return binedges;
00303   }

AIDA::IHistogram1D* bookHistogram1D ( 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 . (NB. this returns a pointer rather than a reference since it will have to be stored in the analysis class - there's no point in forcing users to explicitly get the pointer from a reference before they can use it!)

Referenced by ZEUS_2001_S4815815::init(), UA5_1989_S1926373::init(), UA5_1986_S1583476::init(), UA5_1982_S875503::init(), UA1_1990_S2044935::init(), STAR_2006_S6870392::init(), STAR_2006_S6860818::init(), STAR_2006_S6500200::init(), SFM_1984_S1178091::init(), PDG_HADRON_MULTIPLICITIES_RATIOS::init(), PDG_HADRON_MULTIPLICITIES::init(), OPAL_2004_S6132243::init(), OPAL_1998_S3780481::init(), MC_ZJETS::init(), MC_WJETS::init(), MC_TTBAR::init(), MC_SUSY::init(), MC_PHOTONJETUE::init(), MC_PHOTONJETS::init(), MC_JetAnalysis::init(), MC_DIPHOTON::init(), MC_DIJET::init(), JADE_OPAL_2000_S4300807::init(), H1_2000_S4129130::init(), H1_1995_S3167097::init(), H1_1994_S2919893::init(), ExampleAnalysis::init(), E735_1998_S3905616::init(), DELPHI_2002_069_CONF_603::init(), DELPHI_1995_S3137023::init(), D0_2010_S8570965::init(), D0_2010_S8566488::init(), D0_2009_S8349509::init(), D0_2009_S8320160::init(), D0_2009_S8202443::init(), D0_2008_S7863608::init(), D0_2008_S7837160::init(), D0_2008_S7719523::init(), D0_2008_S7662670::init(), D0_2008_S7554427::init(), D0_2008_S6879055::init(), D0_2007_S7075677::init(), D0_2006_S6438750::init(), D0_2004_S5992206::init(), D0_2001_S4674421::init(), D0_1998_S3711838::init(), D0_1996_S3324664::init(), D0_1996_S3214044::init(), CDF_2009_S8436959::init(), CDF_2009_S8383952::init(), CDF_2009_S8233977::init(), CDF_2008_S8095620::init(), CDF_2008_S8093652::init(), CDF_2008_S7828950::init(), CDF_2008_S7541902::init(), CDF_2008_S7540469::init(), CDF_2007_S7057202::init(), CDF_2006_S6653332::init(), CDF_2006_S6450792::init(), CDF_2005_S6080774::init(), CDF_2004_S5839831::init(), CDF_2002_S4796047::init(), CDF_2001_S4751469::init(), CDF_2001_S4563131::init(), CDF_2001_S4517016::init(), CDF_2000_S4266730::init(), CDF_2000_S4155203::init(), CDF_1998_S3618439::init(), CDF_1997_S3541940::init(), CDF_1996_S3418421::init(), CDF_1996_S3349578::init(), CDF_1996_S3108457::init(), CDF_1994_S2952106::init(), CDF_1991_S2313472::init(), CDF_1990_S2089246::init(), CDF_1988_S1865951::init(), BELLE_2006_S6265367::init(), ATLAS_2010_S8591806::init(), ALEPH_2004_S5765862::init(), ALEPH_1996_S3486095::init(), ALEPH_1996_S3196992::init(), and ALEPH_1991_S2435284::init().

AIDA::IHistogram1D* bookHistogram1D ( 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 . (NB. this returns a pointer rather than a reference since it will have to be stored in the analysis class - there's no point in forcing users to explicitly get the pointer from a reference before they can use it!)

AIDA::IHistogram1D* bookHistogram1D ( const std::string &  name,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "" 
) [protected, inherited]

Book a 1D histogram based on the name in the corresponding AIDA file. The binnings will be obtained by reading the bundled AIDA data record file with the same filename as the analysis' name() property.

AIDA::IHistogram1D* bookHistogram1D ( size_t  datasetId,
size_t  xAxisId,
size_t  yAxisId,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "" 
) [protected, inherited]

Book a 1D histogram based on the paper, dataset and x/y-axis IDs in the corresponding HepData record. The binnings will be obtained by reading the bundled AIDA data record file of the same filename as the analysis' name() property.

AIDA::IProfile1D* 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 . (NB. this returns a pointer rather than a reference since it will have to be stored in the analysis class - there's no point in forcing users to explicitly get the pointer from a reference before they can use it!)

Referenced by UA5_1988_S1867512::init(), UA1_1990_S2044935::init(), STAR_2009_UE_HELEN::init(), STAR_2008_S7993412::init(), STAR_2006_S6860818::init(), MC_PHOTONJETUE::init(), MC_LEADINGJETS::init(), H1_2000_S4129130::init(), H1_1994_S2919893::init(), DELPHI_2002_069_CONF_603::init(), D0_1996_S3324664::init(), CDF_2009_S8233977::init(), CDF_2008_S7782535::init(), CDF_2008_NOTE_9351::init(), CDF_2008_LEADINGJETS::init(), CDF_2005_S6217184::init(), CDF_2004_S5839831::init(), CDF_2002_S4796047::init(), CDF_2001_S4751469::init(), and ATLAS_2010_S8591806::init().

AIDA::IProfile1D* 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 . (NB. this returns a pointer rather than a reference since it will have to be stored in the analysis class - there's no point in forcing users to explicitly get the pointer from a reference before they can use it!)

AIDA::IProfile1D* bookProfile1D ( const std::string &  name,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "" 
) [protected, inherited]

Book a 1D profile histogram based on the name in the corresponding AIDA file. The binnings will be obtained by reading the bundled AIDA data record file with the same filename as the analysis' name() property.

AIDA::IProfile1D* bookProfile1D ( size_t  datasetId,
size_t  xAxisId,
size_t  yAxisId,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "" 
) [protected, inherited]

Book a 1D profile histogram based on the paper, dataset and x/y-axis IDs in the corresponding HepData record. The binnings will be obtained by reading the bundled AIDA data record file of the same filename as the analysis' name() property.

AIDA::IDataPointSet* bookDataPointSet ( const std::string &  name,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "" 
) [protected, inherited]

Book a 2-dimensional data point set. (NB. this returns a pointer rather than a reference since it will have to be stored in the analysis class - there's no point in forcing users to explicitly get the pointer from a reference before they can use it!)

Referenced by STAR_2006_S6860818::init(), MC_JetAnalysis::init(), JADE_OPAL_2000_S4300807::init(), CDF_2008_S7782535::init(), CDF_2008_S7541902::init(), CDF_1996_S3418421::init(), and ALEPH_2004_S5765862::init().

AIDA::IDataPointSet* bookDataPointSet ( 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 points in a range. (NB. this returns a pointer rather than a reference since it will have to be stored in the analysis class - there's no point in forcing users to explicitly get the pointer from a reference before they can use it!)

AIDA::IDataPointSet* bookDataPointSet ( size_t  datasetId,
size_t  xAxisId,
size_t  yAxisId,
const std::string &  title = "",
const std::string &  xtitle = "",
const std::string &  ytitle = "" 
) [protected, inherited]

Book a 2-dimensional data point set based on the corresponding AIDA data file. The binnings (x-errors) will be obtained by reading the bundled AIDA data record file of the same filename as the analysis' name() property. Book a 2-dimensional data point set based on the paper, dataset and x/y-axis IDs in the corresponding HepData record. The binnings (x-errors) will be obtained by reading the bundled AIDA data record file of the same filename as the analysis' name() property.

Analysis & setBeams ( const ParticleName beam1,
const ParticleName beam2 
) [protected, inherited]

Set the colliding beam pair.

Deprecated:
Use .info file and AnalysisInfo class instead

Definition at line 193 of file Analysis.cc.

References Analysis::_info.

Referenced by ALEPH_1991_S2435284::ALEPH_1991_S2435284(), ALEPH_1996_S3196992::ALEPH_1996_S3196992(), ALEPH_1996_S3486095::ALEPH_1996_S3486095(), ALEPH_2004_S5765862::ALEPH_2004_S5765862(), BELLE_2006_S6265367::BELLE_2006_S6265367(), CDF_1988_S1865951::CDF_1988_S1865951(), CDF_1990_S2089246::CDF_1990_S2089246(), CDF_1991_S2313472::CDF_1991_S2313472(), CDF_1994_S2952106::CDF_1994_S2952106(), CDF_1996_S3108457::CDF_1996_S3108457(), CDF_1996_S3349578::CDF_1996_S3349578(), CDF_1996_S3418421::CDF_1996_S3418421(), CDF_1997_S3541940::CDF_1997_S3541940(), CDF_1998_S3618439::CDF_1998_S3618439(), CDF_2000_S4155203::CDF_2000_S4155203(), CDF_2000_S4266730::CDF_2000_S4266730(), CDF_2001_S4517016::CDF_2001_S4517016(), CDF_2001_S4563131::CDF_2001_S4563131(), CDF_2001_S4751469::CDF_2001_S4751469(), CDF_2002_S4796047::CDF_2002_S4796047(), CDF_2004_S5839831::CDF_2004_S5839831(), CDF_2005_S6080774::CDF_2005_S6080774(), CDF_2005_S6217184::CDF_2005_S6217184(), CDF_2006_S6450792::CDF_2006_S6450792(), CDF_2006_S6653332::CDF_2006_S6653332(), CDF_2007_S7057202::CDF_2007_S7057202(), CDF_2008_LEADINGJETS::CDF_2008_LEADINGJETS(), CDF_2008_NOTE_9351::CDF_2008_NOTE_9351(), CDF_2008_S7540469::CDF_2008_S7540469(), CDF_2008_S7541902::CDF_2008_S7541902(), CDF_2008_S7782535::CDF_2008_S7782535(), CDF_2008_S7828950::CDF_2008_S7828950(), CDF_2008_S8093652::CDF_2008_S8093652(), CDF_2008_S8095620::CDF_2008_S8095620(), CDF_2009_S8057893::CDF_2009_S8057893::CDF_2009_S8057893(), CDF_2009_S8233977::CDF_2009_S8233977(), CDF_2009_S8383952::CDF_2009_S8383952(), CDF_2009_S8436959::CDF_2009_S8436959(), D0_1996_S3214044::D0_1996_S3214044(), D0_1996_S3324664::D0_1996_S3324664(), D0_1998_S3711838::D0_1998_S3711838(), D0_2001_S4674421::D0_2001_S4674421(), D0_2004_S5992206::D0_2004_S5992206(), D0_2006_S6438750::D0_2006_S6438750(), D0_2007_S7075677::D0_2007_S7075677(), D0_2008_S6879055::D0_2008_S6879055(), D0_2008_S7554427::D0_2008_S7554427(), D0_2008_S7662670::D0_2008_S7662670(), D0_2008_S7719523::D0_2008_S7719523(), D0_2008_S7837160::D0_2008_S7837160(), D0_2008_S7863608::D0_2008_S7863608(), D0_2009_S8202443::D0_2009_S8202443(), D0_2009_S8320160::D0_2009_S8320160(), D0_2009_S8349509::D0_2009_S8349509(), D0_2010_S8566488::D0_2010_S8566488(), D0_2010_S8570965::D0_2010_S8570965(), DELPHI_1995_S3137023::DELPHI_1995_S3137023(), DELPHI_2002_069_CONF_603::DELPHI_2002_069_CONF_603(), E735_1998_S3905616::E735_1998_S3905616(), H1_1994_S2919893::H1_1994_S2919893(), H1_1995_S3167097::H1_1995_S3167097(), H1_2000_S4129130::H1_2000_S4129130(), JADE_OPAL_2000_S4300807::JADE_OPAL_2000_S4300807(), OPAL_1998_S3780481::OPAL_1998_S3780481(), PDG_HADRON_MULTIPLICITIES::PDG_HADRON_MULTIPLICITIES(), PDG_HADRON_MULTIPLICITIES_RATIOS::PDG_HADRON_MULTIPLICITIES_RATIOS(), SFM_1984_S1178091::SFM_1984_S1178091(), STAR_2006_S6500200::STAR_2006_S6500200(), STAR_2006_S6860818::STAR_2006_S6860818(), STAR_2006_S6870392::STAR_2006_S6870392(), STAR_2008_S7993412::STAR_2008_S7993412(), STAR_2009_UE_HELEN::STAR_2009_UE_HELEN(), UA1_1990_S2044935::UA1_1990_S2044935(), UA5_1986_S1583476::UA5_1986_S1583476(), UA5_1988_S1867512::UA5_1988_S1867512(), UA5_1989_S1926373::UA5_1989_S1926373(), and ZEUS_2001_S4815815::ZEUS_2001_S4815815().

00193                                                                                    {
00194     assert(_info.get() != 0);
00195     _info->_beams = make_pair(beam1, beam2);
00196     return *this;
00197   }

Analysis & setNeedsCrossSection ( bool  needed  )  [protected, inherited]

Declare whether this analysis needs to know the process cross-section from the generator.

Definition at line 224 of file Analysis.cc.

References Analysis::_needsCrossSection.

Referenced by ATLAS_2010_S8591806::ATLAS_2010_S8591806(), CDF_1991_S2313472::CDF_1991_S2313472(), CDF_1996_S3108457::CDF_1996_S3108457(), CDF_1998_S3618439::CDF_1998_S3618439(), CDF_2000_S4155203::CDF_2000_S4155203(), CDF_2000_S4266730::CDF_2000_S4266730(), CDF_2001_S4517016::CDF_2001_S4517016(), CDF_2001_S4563131::CDF_2001_S4563131(), CDF_2005_S6080774::CDF_2005_S6080774(), CDF_2006_S6450792::CDF_2006_S6450792(), CDF_2006_S6653332::CDF_2006_S6653332(), CDF_2007_S7057202::CDF_2007_S7057202(), CDF_2008_S7540469::CDF_2008_S7540469(), CDF_2008_S7541902::CDF_2008_S7541902(), CDF_2008_S7828950::CDF_2008_S7828950(), CDF_2008_S8093652::CDF_2008_S8093652(), CDF_2009_S8233977::CDF_2009_S8233977(), CDF_2009_S8383952::CDF_2009_S8383952(), CDF_2009_S8436959::CDF_2009_S8436959(), D0_1996_S3214044::D0_1996_S3214044(), D0_1996_S3324664::D0_1996_S3324664(), D0_1998_S3711838::D0_1998_S3711838(), D0_2001_S4674421::D0_2001_S4674421(), D0_2006_S6438750::D0_2006_S6438750(), D0_2008_S7662670::D0_2008_S7662670(), D0_2008_S7719523::D0_2008_S7719523(), D0_2008_S7863608::D0_2008_S7863608(), D0_2010_S8566488::D0_2010_S8566488(), D0_2010_S8570965::D0_2010_S8570965(), MC_DIPHOTON::MC_DIPHOTON(), MC_JetAnalysis::MC_JetAnalysis(), MC_JETS::MC_JETS(), MC_PHOTONJETS::MC_PHOTONJETS(), MC_WJETS::MC_WJETS(), MC_ZJETS::MC_ZJETS(), STAR_2006_S6870392::STAR_2006_S6870392(), and UA1_1990_S2044935::UA1_1990_S2044935().

00224                                                       {
00225     _needsCrossSection = needed;
00226     return *this;
00227   }

std::set<ConstProjectionPtr> getProjections (  )  const [inline, inherited]

Get the contained projections, including recursion.

Definition at line 43 of file ProjectionApplier.hh.

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

Referenced by Projection::beamPairs().

00043                                                       {
00044       return getProjHandler().getChildProjections(*this, ProjectionHandler::DEEP);
00045     }

const PROJ& getProjection ( const std::string &  name  )  const [inline, inherited]

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

Definition at line 50 of file ProjectionApplier.hh.

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

Referenced by VetoedFinalState::compare(), Rivet::pcmp(), and Hemispheres::project().

00050                                                            {
00051       const Projection& p = getProjHandler().getProjection(*this, name);
00052       return pcast<PROJ>(p);
00053     }

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 58 of file ProjectionApplier.hh.

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

00058                                                                  {
00059       return getProjHandler().getProjection(*this, name);
00060     }

const PROJ& applyProjection ( const Event evt,
const PROJ &  proj 
) const [inline, inherited]

Apply the supplied projection on event.

Definition at line 68 of file ProjectionApplier.hh.

References ProjectionApplier::_applyProjection().

Referenced by HadronicFinalState::project(), and FinalStateHCM::project().

00068                                                                           {
00069       return pcast<PROJ>(_applyProjection(evt, proj));
00070     }

const PROJ& applyProjection ( const Event evt,
const Projection proj 
) const [inline, inherited]

Apply the supplied projection on event.

Definition at line 75 of file ProjectionApplier.hh.

References ProjectionApplier::_applyProjection().

00075                                                                                 {
00076       return pcast<PROJ>(_applyProjection(evt, proj));
00077     }

const PROJ& applyProjection ( const Event evt,
const std::string &  name 
) const [inline, inherited]

Apply the named projection on event.

Definition at line 82 of file ProjectionApplier.hh.

References ProjectionApplier::_applyProjection().

00082                                                                                {
00083       return pcast<PROJ>(_applyProjection(evt, name));
00084     }

ProjectionHandler& getProjHandler (  )  const [inline, protected, inherited]

Get a reference to the ProjectionHandler for this thread.

Definition at line 95 of file ProjectionApplier.hh.

References ProjectionApplier::_projhandler.

Referenced by ProjectionApplier::_addProjection(), ProjectionApplier::getProjection(), ProjectionApplier::getProjections(), and ProjectionApplier::~ProjectionApplier().

00095                                               {
00096       assert(_projhandler);
00097       return *_projhandler;
00098     }

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 115 of file ProjectionApplier.hh.

References ProjectionApplier::_addProjection().

Referenced by ZFinder::_init(), WFinder::_init(), VetoedFinalState::addVetoOnThisFinalState(), CDF_2009_S8057893::CDF_2009_S8057893::init(), CentralEtHCM::CentralEtHCM(), ChargedFinalState::ChargedFinalState(), ChargedLeptons::ChargedLeptons(), ClusteredPhotons::ClusteredPhotons(), DISKinematics::DISKinematics(), DISLepton::DISLepton(), FinalState::FinalState(), FinalStateHCM::FinalStateHCM(), FoxWolframMoments::FoxWolframMoments(), HadronicFinalState::HadronicFinalState(), Hemispheres::Hemispheres(), IdentifiedFinalState::IdentifiedFinalState(), ZEUS_2001_S4815815::init(), UA5_1989_S1926373::init(), UA5_1988_S1867512::init(), UA5_1986_S1583476::init(), UA5_1982_S875503::init(), UA1_1990_S2044935::init(), STAR_2009_UE_HELEN::init(), STAR_2008_S7993412::init(), STAR_2006_S6870392::init(), STAR_2006_S6860818::init(), STAR_2006_S6500200::init(), SFM_1984_S1178091::init(), PDG_HADRON_MULTIPLICITIES_RATIOS::init(), PDG_HADRON_MULTIPLICITIES::init(), OPAL_2004_S6132243::init(), OPAL_1998_S3780481::init(), MC_ZJETS::init(), MC_WJETS::init(), MC_TTBAR::init(), MC_SUSY::init(), MC_PHOTONJETUE::init(), MC_PHOTONJETS::init(), MC_LEADINGJETS::init(), MC_JETS::init(), MC_DIPHOTON::init(), MC_DIJET::init(), JADE_OPAL_2000_S4300807::init(), H1_2000_S4129130::init(), H1_1995_S3167097::init(), H1_1994_S2919893::init(), ExampleAnalysis::init(), E735_1998_S3905616::init(), DELPHI_2002_069_CONF_603::init(), DELPHI_1995_S3137023::init(), D0_2010_S8570965::init(), D0_2010_S8566488::init(), D0_2009_S8349509::init(), D0_2009_S8320160::init(), D0_2009_S8202443::init(), D0_2008_S7863608::init(), D0_2008_S7837160::init(), D0_2008_S7719523::init(), D0_2008_S7662670::init(), D0_2008_S7554427::init(), D0_2008_S6879055::init(), D0_2007_S7075677::init(), D0_2006_S6438750::init(), D0_2004_S5992206::init(), D0_2001_S4674421::init(), D0_1998_S3711838::init(), D0_1996_S3324664::init(), D0_1996_S3214044::init(), CDF_2009_S8436959::init(), CDF_2009_S8383952::init(), CDF_2009_S8233977::init(), CDF_2008_S8095620::init(), CDF_2008_S8093652::init(), CDF_2008_S7828950::init(), CDF_2008_S7782535::init(), CDF_2008_S7541902::init(), CDF_2008_S7540469::init(), CDF_2008_NOTE_9351::init(), CDF_2008_LEADINGJETS::init(), CDF_2007_S7057202::init(), CDF_2006_S6653332::init(), CDF_2006_S6450792::init(), CDF_2005_S6217184::init(), CDF_2005_S6080774::init(), CDF_2004_S5839831::init(), CDF_2002_S4796047::init(), CDF_2001_S4751469::init(), CDF_2001_S4563131::init(), CDF_2001_S4517016::init(), CDF_2000_S4266730::init(), CDF_2000_S4155203::init(), CDF_1998_S3618439::init(), CDF_1997_S3541940::init(), CDF_1996_S3418421::init(), CDF_1996_S3349578::init(), CDF_1996_S3108457::init(), CDF_1994_S2952106::init(), CDF_1991_S2313472::init(), CDF_1990_S2089246::init(), CDF_1988_S1865951::init(), BELLE_2006_S6265367::init(), ATLAS_2010_S8591806::init(), ALEPH_2004_S5765862::init(), ALEPH_1996_S3486095::init(), ALEPH_1996_S3196992::init(), ALEPH_1991_S2435284::init(), IsolationProjection::IsolationProjection(), JetAlg::JetAlg(), JetShape::JetShape(), KtJets::KtJets(), LeadingParticlesFinalState::LeadingParticlesFinalState(), LossyFinalState::LossyFinalState(), MergedFinalState::MergedFinalState(), Multiplicity::Multiplicity(), NeutralFinalState::NeutralFinalState(), ParisiTensor::ParisiTensor(), Sphericity::Sphericity(), SVertex::SVertex(), Thrust::Thrust(), TotalVisibleMomentum::TotalVisibleMomentum(), TriggerCDFRun0Run1::TriggerCDFRun0Run1(), TriggerUA5::TriggerUA5(), and VetoedFinalState::VetoedFinalState().

00115                                                                        {
00116       const Projection& reg = _addProjection(proj, name);
00117       return dynamic_cast<const PROJ&>(reg);
00118     }

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, Log::ERROR, ProjectionApplier::getLog(), ProjectionApplier::getProjHandler(), ProjectionApplier::name(), Projection::name(), and ProjectionHandler::registerProjection().

Referenced by ProjectionApplier::addProjection().

00034                                                                              {
00035     if (!_allowProjReg) {
00036       getLog() << Log::ERROR << "Trying to register projection '"
00037                << proj.name() << "' before init phase in '" << this->name() << "'." << endl;
00038       exit(2);
00039     }
00040     const Projection& reg = getProjHandler().registerProjection(*this, proj, name);
00041     return reg;
00042   }


Friends And Related Function Documentation

friend class Projectionhandler [friend, inherited]

Definition at line 23 of file ProjectionApplier.hh.


Member Data Documentation

AIDA::IHistogram1D* _histMeanMultiPiPlus [private]

AIDA::IHistogram1D* _histMeanMultiPi0 [private]

AIDA::IHistogram1D* _histMeanMultiKPlus [private]

AIDA::IHistogram1D* _histMeanMultiK0 [private]

AIDA::IHistogram1D* _histMeanMultiEta [private]

AIDA::IHistogram1D* _histMeanMultiEtaPrime [private]

AIDA::IHistogram1D* _histMeanMultiDPlus [private]

AIDA::IHistogram1D* _histMeanMultiD0 [private]

AIDA::IHistogram1D* _histMeanMultiDPlus_s [private]

AIDA::IHistogram1D* _histMeanMultiBPlus_B0_d [private]

AIDA::IHistogram1D* _histMeanMultiBPlus_u [private]

AIDA::IHistogram1D* _histMeanMultiB0_s [private]

AIDA::IHistogram1D* _histMeanMultiF0_980 [private]

AIDA::IHistogram1D* _histMeanMultiA0_980Plus [private]

AIDA::IHistogram1D* _histMeanMultiRho770_0 [private]

AIDA::IHistogram1D* _histMeanMultiRho770Plus [private]

AIDA::IHistogram1D* _histMeanMultiOmega782 [private]

AIDA::IHistogram1D* _histMeanMultiKStar892Plus [private]

AIDA::IHistogram1D* _histMeanMultiKStar892_0 [private]

AIDA::IHistogram1D* _histMeanMultiPhi1020 [private]

AIDA::IHistogram1D* _histMeanMultiDStar2010Plus [private]

AIDA::IHistogram1D* _histMeanMultiDStar2007_0 [private]

AIDA::IHistogram1D* _histMeanMultiDStar_s2112Plus [private]

AIDA::IHistogram1D* _histMeanMultiBStar [private]

AIDA::IHistogram1D* _histMeanMultiJPsi1S [private]

AIDA::IHistogram1D* _histMeanMultiPsi2S [private]

AIDA::IHistogram1D* _histMeanMultiUpsilon1S [private]

AIDA::IHistogram1D* _histMeanMultiF1_1285 [private]

AIDA::IHistogram1D* _histMeanMultiF1_1420 [private]

AIDA::IHistogram1D* _histMeanMultiChi_c1_3510 [private]

AIDA::IHistogram1D* _histMeanMultiF2_1270 [private]

AIDA::IHistogram1D* _histMeanMultiF2Prime1525 [private]

AIDA::IHistogram1D* _histMeanMultiK2Star1430Plus [private]

AIDA::IHistogram1D* _histMeanMultiK2Star1430_0 [private]

AIDA::IHistogram1D* _histMeanMultiBStarStar [private]

AIDA::IHistogram1D* _histMeanMultiDs1Plus [private]

AIDA::IHistogram1D* _histMeanMultiDs2Plus [private]

AIDA::IHistogram1D* _histMeanMultiP [private]

AIDA::IHistogram1D* _histMeanMultiLambda [private]

AIDA::IHistogram1D* _histMeanMultiSigma0 [private]

AIDA::IHistogram1D* _histMeanMultiSigmaMinus [private]

AIDA::IHistogram1D* _histMeanMultiSigmaPlus [private]

AIDA::IHistogram1D* _histMeanMultiSigmaPlusMinus [private]

AIDA::IHistogram1D* _histMeanMultiXiMinus [private]

AIDA::IHistogram1D* _histMeanMultiDelta1232PlusPlus [private]

AIDA::IHistogram1D* _histMeanMultiSigma1385Minus [private]

AIDA::IHistogram1D* _histMeanMultiSigma1385Plus [private]

AIDA::IHistogram1D* _histMeanMultiSigma1385PlusMinus [private]

AIDA::IHistogram1D* _histMeanMultiXi1530_0 [private]

AIDA::IHistogram1D* _histMeanMultiOmegaMinus [private]

AIDA::IHistogram1D* _histMeanMultiLambda_c_Plus [private]

AIDA::IHistogram1D* _histMeanMultiLambda_b_0 [private]

AIDA::IHistogram1D* _histMeanMultiSigma_c_PlusPlus_0 [private]

AIDA::IHistogram1D* _histMeanMultiLambda1520 [private]

string _defaultname [protected, inherited]

Name passed to constructor (used to find .info analysis data file, and as a fallback).

Definition at line 412 of file Analysis.hh.

Referenced by Analysis::name().

shared_ptr<AnalysisInfo> _info [protected, inherited]

bool _allowProjReg [protected, inherited]

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

Definition at line 141 of file ProjectionApplier.hh.

Referenced by ProjectionApplier::_addProjection(), and AnalysisHandler::init().


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