PDG_Hadron_Multiplicities_Ratios.cc

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 #include "Rivet/Analysis.hh"
00003 #include "Rivet/RivetAIDA.hh"
00004 #include "Rivet/Tools/ParticleIdUtils.hh"
00005 #include "Rivet/Projections/FinalState.hh"
00006 #include "Rivet/Projections/ChargedFinalState.hh"
00007 #include "Rivet/Projections/UnstableFinalState.hh"
00008 
00009 namespace Rivet {
00010 
00011 
00012   /// @brief Implementation of PDG hadron multiplicities as ratios to pi+- multiplicity
00013   /// @author Holger Schulz
00014   class PDG_HADRON_MULTIPLICITIES_RATIOS : public Analysis {
00015   public:
00016 
00017     /// Constructor
00018     PDG_HADRON_MULTIPLICITIES_RATIOS() : Analysis("PDG_HADRON_MULTIPLICITIES_RATIOS")
00019     {
00020       setBeams(ELECTRON, POSITRON);
00021       _weightedTotalNumPiPlus = 0;
00022     }
00023 
00024 
00025     /// @name Analysis methods
00026     //@{
00027 
00028     void analyze(const Event& e) {
00029       // First, veto on leptonic events by requiring at least 4 charged FS particles
00030       const FinalState& fs = applyProjection<FinalState>(e, "FS");
00031       const size_t numParticles = fs.particles().size();
00032 
00033       // Even if we only generate hadronic events, we still need a cut on numCharged >= 2.
00034       if (numParticles < 2) {
00035         getLog() << Log::DEBUG << "Failed leptonic event cut" << endl;
00036         vetoEvent;
00037       }
00038       getLog() << Log::DEBUG << "Passed leptonic event cut" << endl;
00039 
00040       // Get event weight for histo filling
00041       const double weight = e.weight();
00042 
00043       getLog() << Log::DEBUG << "sqrt(S) = " << sqrtS()/GeV << " GeV" << endl;
00044 
00045       // Final state of unstable particles to get particle spectra
00046       const UnstableFinalState& ufs = applyProjection<UnstableFinalState>(e, "UFS");
00047 
00048       if (sqrtS()/GeV >= 9.5 && sqrtS()/GeV <= 10.5) {
00049         foreach (const Particle& p, ufs.particles()) {
00050           const PdgId id = abs(p.pdgId());
00051           switch (id) {
00052              case 211:
00053                 _weightedTotalNumPiPlus += weight;
00054                 break;
00055              case 111:
00056                 _histMeanMultiPi0->fill(_histMeanMultiPi0->binMean(0), weight);
00057                 break;
00058              case 321:
00059                 _histMeanMultiKPlus->fill(_histMeanMultiKPlus->binMean(0), weight);
00060                 break;
00061              case 130:
00062              case 310:
00063                 _histMeanMultiK0->fill(_histMeanMultiK0->binMean(0), weight);
00064                 break;
00065              case 221:
00066                 _histMeanMultiEta->fill(_histMeanMultiEta->binMean(0), weight);
00067                 break;
00068              case 331:
00069                 _histMeanMultiEtaPrime->fill(_histMeanMultiEtaPrime->binMean(0), weight);
00070                 break;
00071              case 411:
00072                 _histMeanMultiDPlus->fill(_histMeanMultiDPlus->binMean(0), weight);
00073                 break;
00074              case 421:
00075                 _histMeanMultiD0->fill(_histMeanMultiD0->binMean(0), weight);
00076                 break;
00077              case 431:
00078                 _histMeanMultiDPlus_s->fill(_histMeanMultiDPlus_s->binMean(0), weight);
00079                 break;
00080              case 9010221:
00081                 _histMeanMultiF0_980->fill(_histMeanMultiF0_980->binMean(0), weight);
00082                 break;
00083              case 113:
00084                 _histMeanMultiRho770_0->fill(_histMeanMultiRho770_0->binMean(0), weight);
00085                 break;
00086              case 223:
00087                 _histMeanMultiOmega782->fill(_histMeanMultiOmega782->binMean(0), weight);
00088                 break;
00089              case 323:
00090                 _histMeanMultiKStar892Plus->fill(_histMeanMultiKStar892Plus->binMean(0), weight);
00091                 break;
00092              case 313:
00093                 _histMeanMultiKStar892_0->fill(_histMeanMultiKStar892_0->binMean(0), weight);
00094                 break;
00095              case 333:
00096                 _histMeanMultiPhi1020->fill(_histMeanMultiPhi1020->binMean(0), weight);
00097                 break;
00098              case 413:
00099                 _histMeanMultiDStar2010Plus->fill(_histMeanMultiDStar2010Plus->binMean(0), weight);
00100                 break;
00101              case 423:
00102                 _histMeanMultiDStar2007_0->fill(_histMeanMultiDStar2007_0->binMean(0), weight);
00103                 break;
00104              case 433:
00105                 _histMeanMultiDStar_s2112Plus->fill(_histMeanMultiDStar_s2112Plus->binMean(0), weight);
00106                 break;
00107              case 443:
00108                 _histMeanMultiJPsi1S->fill(_histMeanMultiJPsi1S->binMean(0), weight);
00109                 break;
00110              case 225:
00111                 _histMeanMultiF2_1270->fill(_histMeanMultiF2_1270->binMean(0), weight);
00112                 break;
00113              case 2212:
00114                 _histMeanMultiP->fill(_histMeanMultiP->binMean(0), weight);
00115                 break;
00116              case 3122:
00117                 _histMeanMultiLambda->fill(_histMeanMultiLambda->binMean(0), weight);
00118                 break;
00119              case 3212:
00120                 _histMeanMultiSigma0->fill(_histMeanMultiSigma0->binMean(0), weight);
00121                 break;
00122              case 3312:
00123                 _histMeanMultiXiMinus->fill(_histMeanMultiXiMinus->binMean(0), weight);
00124                 break;
00125              case 2224:
00126                 _histMeanMultiDelta1232PlusPlus->fill(_histMeanMultiDelta1232PlusPlus->binMean(0), weight);
00127                 break;
00128              case 3114:
00129                 _histMeanMultiSigma1385Minus->fill(_histMeanMultiSigma1385Minus->binMean(0), weight);
00130                 _histMeanMultiSigma1385PlusMinus->fill(_histMeanMultiSigma1385PlusMinus->binMean(0), weight);
00131                 break;
00132              case 3224:
00133                 _histMeanMultiSigma1385Plus->fill(_histMeanMultiSigma1385Plus->binMean(0), weight);
00134                 _histMeanMultiSigma1385PlusMinus->fill(_histMeanMultiSigma1385PlusMinus->binMean(0), weight);
00135                 break;
00136              case 3324:
00137                 _histMeanMultiXi1530_0->fill(_histMeanMultiXi1530_0->binMean(0), weight);
00138                 break;
00139              case 3334:
00140                 _histMeanMultiOmegaMinus->fill(_histMeanMultiOmegaMinus->binMean(0), weight);
00141                 break;
00142              case 4122:
00143                 _histMeanMultiLambda_c_Plus->fill(_histMeanMultiLambda_c_Plus->binMean(0), weight);
00144                 break;
00145              case 4222:
00146              case 4112:
00147                 _histMeanMultiSigma_c_PlusPlus_0->fill(_histMeanMultiSigma_c_PlusPlus_0->binMean(0), weight);
00148                 break;
00149              case 3124:
00150                 _histMeanMultiLambda1520->fill(_histMeanMultiLambda1520->binMean(0), weight);
00151                 break;
00152           }
00153         }
00154       }
00155 
00156       if (sqrtS()/GeV >= 29 && sqrtS()/GeV <= 35) {
00157         foreach (const Particle& p, ufs.particles()) {
00158           const PdgId id = abs(p.pdgId());
00159           switch (id) {
00160              case 211:
00161                 _weightedTotalNumPiPlus += weight;
00162                 break;
00163              case 111:
00164                 _histMeanMultiPi0->fill(_histMeanMultiPi0->binMean(0), weight);
00165                 break;
00166              case 321:
00167                 _histMeanMultiKPlus->fill(_histMeanMultiKPlus->binMean(0), weight);
00168                 break;
00169              case 130:
00170              case 310:
00171                 _histMeanMultiK0->fill(_histMeanMultiK0->binMean(0), weight);
00172                 break;
00173              case 221:
00174                 _histMeanMultiEta->fill(_histMeanMultiEta->binMean(0), weight);
00175                 break;
00176              case 331:
00177                 _histMeanMultiEtaPrime->fill(_histMeanMultiEtaPrime->binMean(0), weight);
00178                 break;
00179              case 411:
00180                 _histMeanMultiDPlus->fill(_histMeanMultiDPlus->binMean(0), weight);
00181                 break;
00182              case 421:
00183                 _histMeanMultiD0->fill(_histMeanMultiD0->binMean(0), weight);
00184                 break;
00185              case 431:
00186                 _histMeanMultiDPlus_s->fill(_histMeanMultiDPlus_s->binMean(0), weight);
00187                 break;
00188              case 9010221:
00189                 _histMeanMultiF0_980->fill(_histMeanMultiF0_980->binMean(0), weight);
00190                 break;
00191              case 113:
00192                 _histMeanMultiRho770_0->fill(_histMeanMultiRho770_0->binMean(0), weight);
00193                 break;
00194              case 323:
00195                 _histMeanMultiKStar892Plus->fill(_histMeanMultiKStar892Plus->binMean(0), weight);
00196                 break;
00197              case 313:
00198                 _histMeanMultiKStar892_0->fill(_histMeanMultiKStar892_0->binMean(0), weight);
00199                 break;
00200              case 333:
00201                 _histMeanMultiPhi1020->fill(_histMeanMultiPhi1020->binMean(0), weight);
00202                 break;
00203              case 413:
00204                 _histMeanMultiDStar2010Plus->fill(_histMeanMultiDStar2010Plus->binMean(0), weight);
00205                 break;
00206              case 423:
00207                 _histMeanMultiDStar2007_0->fill(_histMeanMultiDStar2007_0->binMean(0), weight);
00208                 break;
00209              case 225:
00210                 _histMeanMultiF2_1270->fill(_histMeanMultiF2_1270->binMean(0), weight);
00211                 break;
00212              case 325:
00213                 _histMeanMultiK2Star1430Plus->fill(_histMeanMultiK2Star1430Plus->binMean(0), weight);
00214                 break;
00215              case 315:
00216                 _histMeanMultiK2Star1430_0->fill(_histMeanMultiK2Star1430_0->binMean(0), weight);
00217                 break;
00218              case 2212:
00219                 _histMeanMultiP->fill(_histMeanMultiP->binMean(0), weight);
00220                 break;
00221              case 3122:
00222                 _histMeanMultiLambda->fill(_histMeanMultiLambda->binMean(0), weight);
00223                 break;
00224              case 3312:
00225                 _histMeanMultiXiMinus->fill(_histMeanMultiXiMinus->binMean(0), weight);
00226                 break;
00227              case 3114:
00228                 _histMeanMultiSigma1385Minus->fill(_histMeanMultiSigma1385Minus->binMean(0), weight);
00229                 _histMeanMultiSigma1385PlusMinus->fill(_histMeanMultiSigma1385PlusMinus->binMean(0), weight);
00230                 break;
00231              case 3224:
00232                 _histMeanMultiSigma1385Plus->fill(_histMeanMultiSigma1385Plus->binMean(0), weight);
00233                 _histMeanMultiSigma1385PlusMinus->fill(_histMeanMultiSigma1385PlusMinus->binMean(0), weight);
00234                 break;
00235              case 3334:
00236                 _histMeanMultiOmegaMinus->fill(_histMeanMultiOmegaMinus->binMean(0), weight);
00237                 break;
00238              case 4122:
00239                 _histMeanMultiLambda_c_Plus->fill(_histMeanMultiLambda_c_Plus->binMean(0), weight);
00240                 break;
00241           }
00242         }
00243       }
00244 
00245       if (sqrtS()/GeV >= 89.5 && sqrtS()/GeV <= 91.8) {
00246         foreach (const Particle& p, ufs.particles()) {
00247           const PdgId id = abs(p.pdgId());
00248           switch (id) {
00249              case 211:
00250                 _weightedTotalNumPiPlus += weight;
00251                 break;
00252              case 111:
00253                 _histMeanMultiPi0->fill(_histMeanMultiPi0->binMean(0), weight);
00254                 break;
00255              case 321:
00256                 _histMeanMultiKPlus->fill(_histMeanMultiKPlus->binMean(0), weight);
00257                 break;
00258              case 130:
00259              case 310:
00260                 _histMeanMultiK0->fill(_histMeanMultiK0->binMean(0), weight);
00261                 break;
00262              case 221:
00263                 _histMeanMultiEta->fill(_histMeanMultiEta->binMean(0), weight);
00264                 break;
00265              case 331:
00266                 _histMeanMultiEtaPrime->fill(_histMeanMultiEtaPrime->binMean(0), weight);
00267                 break;
00268              case 411:
00269                 _histMeanMultiDPlus->fill(_histMeanMultiDPlus->binMean(0), weight);
00270                 break;
00271              case 421:
00272                 _histMeanMultiD0->fill(_histMeanMultiD0->binMean(0), weight);
00273                 break;
00274              case 431:
00275                 _histMeanMultiDPlus_s->fill(_histMeanMultiDPlus_s->binMean(0), weight);
00276                 break;
00277              case 511:
00278                 _histMeanMultiBPlus_B0_d->fill(_histMeanMultiBPlus_B0_d->binMean(0), weight);
00279                 break;
00280              case 521:
00281                 _histMeanMultiBPlus_B0_d->fill(_histMeanMultiBPlus_B0_d->binMean(0), weight);
00282                 _histMeanMultiBPlus_u->fill(_histMeanMultiBPlus_u->binMean(0), weight);
00283                 break;
00284              case 531:
00285                 _histMeanMultiB0_s->fill(_histMeanMultiB0_s->binMean(0), weight);
00286                 break;
00287              case 9010221:
00288                 _histMeanMultiF0_980->fill(_histMeanMultiF0_980->binMean(0), weight);
00289                 break;
00290              case 9000211:
00291                 _histMeanMultiA0_980Plus->fill(_histMeanMultiA0_980Plus->binMean(0), weight);
00292                 break;
00293              case 113:
00294                 _histMeanMultiRho770_0->fill(_histMeanMultiRho770_0->binMean(0), weight);
00295                 break;
00296              case 213:
00297                 _histMeanMultiRho770Plus->fill(_histMeanMultiRho770Plus->binMean(0), weight);
00298                 break;
00299              case 223:
00300                 _histMeanMultiOmega782->fill(_histMeanMultiOmega782->binMean(0), weight);
00301                 break;
00302              case 323:
00303                 _histMeanMultiKStar892Plus->fill(_histMeanMultiKStar892Plus->binMean(0), weight);
00304                 break;
00305              case 313:
00306                 _histMeanMultiKStar892_0->fill(_histMeanMultiKStar892_0->binMean(0), weight);
00307                 break;
00308              case 333:
00309                 _histMeanMultiPhi1020->fill(_histMeanMultiPhi1020->binMean(0), weight);
00310                 break;
00311              case 413:
00312                 _histMeanMultiDStar2010Plus->fill(_histMeanMultiDStar2010Plus->binMean(0), weight);
00313                 break;
00314              case 433:
00315                 _histMeanMultiDStar_s2112Plus->fill(_histMeanMultiDStar_s2112Plus->binMean(0), weight);
00316                 break;
00317              case 513:
00318              case 523:
00319              case 533:
00320                 _histMeanMultiBStar->fill(_histMeanMultiBStar->binMean(0), weight);
00321                 break;
00322              case 443:
00323                 _histMeanMultiJPsi1S->fill(_histMeanMultiJPsi1S->binMean(0), weight);
00324                 break;
00325              case 100443:
00326                 _histMeanMultiPsi2S->fill(_histMeanMultiPsi2S->binMean(0), weight);
00327                 break;
00328              case 553:
00329                 _histMeanMultiUpsilon1S->fill(_histMeanMultiUpsilon1S->binMean(0), weight);
00330                 break;
00331              case 20223:
00332                 _histMeanMultiF1_1285->fill(_histMeanMultiF1_1285->binMean(0), weight);
00333                 break;
00334              case 20333:
00335                 _histMeanMultiF1_1420->fill(_histMeanMultiF1_1420->binMean(0), weight);
00336                 break;
00337              case 445:
00338                 _histMeanMultiChi_c1_3510->fill(_histMeanMultiChi_c1_3510->binMean(0), weight);
00339                 break;
00340              case 225:
00341                 _histMeanMultiF2_1270->fill(_histMeanMultiF2_1270->binMean(0), weight);
00342                 break;
00343              case 335:
00344                 _histMeanMultiF2Prime1525->fill(_histMeanMultiF2Prime1525->binMean(0), weight);
00345                 break;
00346              case 315:
00347                 _histMeanMultiK2Star1430_0->fill(_histMeanMultiK2Star1430_0->binMean(0), weight);
00348                 break;
00349              case 515:
00350              case 525:
00351              case 535:
00352                 _histMeanMultiBStarStar->fill(_histMeanMultiBStarStar->binMean(0), weight);
00353                 break;
00354              case 10433:
00355              case 20433:
00356                 _histMeanMultiDs1Plus->fill(_histMeanMultiDs1Plus->binMean(0), weight);
00357                 break;
00358              case 435:
00359                 _histMeanMultiDs2Plus->fill(_histMeanMultiDs2Plus->binMean(0), weight);
00360                 break;
00361              case 2212:
00362                 _histMeanMultiP->fill(_histMeanMultiP->binMean(0), weight);
00363                 break;
00364              case 3122:
00365                 _histMeanMultiLambda->fill(_histMeanMultiLambda->binMean(0), weight);
00366                 break;
00367              case 3212:
00368                 _histMeanMultiSigma0->fill(_histMeanMultiSigma0->binMean(0), weight);
00369                 break;
00370              case 3112:
00371                 _histMeanMultiSigmaMinus->fill(_histMeanMultiSigmaMinus->binMean(0), weight);
00372                 _histMeanMultiSigmaPlusMinus->fill(_histMeanMultiSigmaPlusMinus->binMean(0), weight);
00373                 break;
00374              case 3222:
00375                 _histMeanMultiSigmaPlus->fill(_histMeanMultiSigmaPlus->binMean(0), weight);
00376                 _histMeanMultiSigmaPlusMinus->fill(_histMeanMultiSigmaPlusMinus->binMean(0), weight);
00377                 break;
00378              case 3312:
00379                 _histMeanMultiXiMinus->fill(_histMeanMultiXiMinus->binMean(0), weight);
00380                 break;
00381              case 2224:
00382                 _histMeanMultiDelta1232PlusPlus->fill(_histMeanMultiDelta1232PlusPlus->binMean(0), weight);
00383                 break;
00384              case 3114:
00385                 _histMeanMultiSigma1385Minus->fill(_histMeanMultiSigma1385Minus->binMean(0), weight);
00386                 _histMeanMultiSigma1385PlusMinus->fill(_histMeanMultiSigma1385PlusMinus->binMean(0), weight);
00387                 break;
00388              case 3224:
00389                 _histMeanMultiSigma1385Plus->fill(_histMeanMultiSigma1385Plus->binMean(0), weight);
00390                 _histMeanMultiSigma1385PlusMinus->fill(_histMeanMultiSigma1385PlusMinus->binMean(0), weight);
00391                 break;
00392              case 3324:
00393                 _histMeanMultiXi1530_0->fill(_histMeanMultiXi1530_0->binMean(0), weight);
00394                 break;
00395              case 3334:
00396                 _histMeanMultiOmegaMinus->fill(_histMeanMultiOmegaMinus->binMean(0), weight);
00397                 break;
00398              case 4122:
00399                 _histMeanMultiLambda_c_Plus->fill(_histMeanMultiLambda_c_Plus->binMean(0), weight);
00400                 break;
00401              case 5122:
00402                 _histMeanMultiLambda_b_0->fill(_histMeanMultiLambda_b_0->binMean(0), weight);
00403                 break;
00404              case 3124:
00405                 _histMeanMultiLambda1520->fill(_histMeanMultiLambda1520->binMean(0), weight);
00406                 break;
00407           }
00408         }
00409       }
00410 
00411       if (sqrtS()/GeV >= 130 && sqrtS()/GeV <= 200) {
00412         foreach (const Particle& p, ufs.particles()) {
00413           const PdgId id = abs(p.pdgId());
00414           switch (id) {
00415              case 211:
00416                 _weightedTotalNumPiPlus += weight;
00417                 break;
00418              case 321:
00419                 _histMeanMultiKPlus->fill(_histMeanMultiKPlus->binMean(0), weight);
00420                 break;
00421              case 130:
00422              case 310:
00423                 _histMeanMultiK0->fill(_histMeanMultiK0->binMean(0), weight);
00424                 break;
00425              case 2212:
00426                 _histMeanMultiP->fill(_histMeanMultiP->binMean(0), weight);
00427                 break;
00428              case 3122:
00429                 _histMeanMultiLambda->fill(_histMeanMultiLambda->binMean(0), weight);
00430                 break;
00431           }
00432         }
00433       }
00434 
00435     }
00436 
00437 
00438 
00439     void init() {
00440       addProjection(ChargedFinalState(), "FS");
00441       addProjection(UnstableFinalState(), "UFS");
00442 
00443       if (sqrtS()/GeV >= 9.5 && sqrtS()/GeV <= 10.5) {
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         _histMeanMultiPi0                = bookHistogram1D( 2, 1, 2);
00480         _histMeanMultiKPlus              = bookHistogram1D( 3, 1, 2);
00481         _histMeanMultiK0                 = bookHistogram1D( 4, 1, 2);
00482         _histMeanMultiEta                = bookHistogram1D( 5, 1, 2);
00483         _histMeanMultiEtaPrime           = bookHistogram1D( 6, 1, 2);
00484         _histMeanMultiDPlus              = bookHistogram1D( 7, 1, 2);
00485         _histMeanMultiD0                 = bookHistogram1D( 8, 1, 2);
00486         _histMeanMultiDPlus_s            = bookHistogram1D( 9, 1, 2);
00487         _histMeanMultiF0_980             = bookHistogram1D(13, 1, 2);
00488         _histMeanMultiRho770_0           = bookHistogram1D(15, 1, 2);
00489         _histMeanMultiKStar892Plus       = bookHistogram1D(18, 1, 2);
00490         _histMeanMultiKStar892_0         = bookHistogram1D(19, 1, 2);
00491         _histMeanMultiPhi1020            = bookHistogram1D(20, 1, 2);
00492         _histMeanMultiDStar2010Plus      = bookHistogram1D(21, 1, 2);
00493         _histMeanMultiDStar2007_0        = bookHistogram1D(22, 1, 2);
00494         _histMeanMultiF2_1270            = bookHistogram1D(31, 1, 2);
00495         _histMeanMultiK2Star1430Plus     = bookHistogram1D(33, 1, 1);
00496         _histMeanMultiK2Star1430_0       = bookHistogram1D(34, 1, 1);
00497         _histMeanMultiP                  = bookHistogram1D(38, 1, 2);
00498         _histMeanMultiLambda             = bookHistogram1D(39, 1, 2);
00499         _histMeanMultiXiMinus            = bookHistogram1D(44, 1, 2);
00500         _histMeanMultiSigma1385Minus     = bookHistogram1D(46, 1, 2);
00501         _histMeanMultiSigma1385Plus      = bookHistogram1D(47, 1, 2);
00502         _histMeanMultiSigma1385PlusMinus = bookHistogram1D(48, 1, 2);
00503         _histMeanMultiOmegaMinus         = bookHistogram1D(50, 1, 2);
00504         _histMeanMultiLambda_c_Plus      = bookHistogram1D(51, 1, 2);
00505       }
00506 
00507       if (sqrtS()/GeV >= 89.5 && sqrtS()/GeV <= 91.8) {
00508         _histMeanMultiPi0                = bookHistogram1D( 2, 1, 3);
00509         _histMeanMultiKPlus              = bookHistogram1D( 3, 1, 3);
00510         _histMeanMultiK0                 = bookHistogram1D( 4, 1, 3);
00511         _histMeanMultiEta                = bookHistogram1D( 5, 1, 3);
00512         _histMeanMultiEtaPrime           = bookHistogram1D( 6, 1, 3);
00513         _histMeanMultiDPlus              = bookHistogram1D( 7, 1, 3);
00514         _histMeanMultiD0                 = bookHistogram1D( 8, 1, 3);
00515         _histMeanMultiDPlus_s            = bookHistogram1D( 9, 1, 3);
00516         _histMeanMultiBPlus_B0_d         = bookHistogram1D(10, 1, 1);
00517         _histMeanMultiBPlus_u            = bookHistogram1D(11, 1, 1);
00518         _histMeanMultiB0_s               = bookHistogram1D(12, 1, 1);
00519         _histMeanMultiF0_980             = bookHistogram1D(13, 1, 3);
00520         _histMeanMultiA0_980Plus         = bookHistogram1D(14, 1, 1);
00521         _histMeanMultiRho770_0           = bookHistogram1D(15, 1, 3);
00522         _histMeanMultiRho770Plus         = bookHistogram1D(16, 1, 1);
00523         _histMeanMultiOmega782           = bookHistogram1D(17, 1, 2);
00524         _histMeanMultiKStar892Plus       = bookHistogram1D(18, 1, 3);
00525         _histMeanMultiKStar892_0         = bookHistogram1D(19, 1, 3);
00526         _histMeanMultiPhi1020            = bookHistogram1D(20, 1, 3);
00527         _histMeanMultiDStar2010Plus      = bookHistogram1D(21, 1, 3);
00528         _histMeanMultiDStar_s2112Plus    = bookHistogram1D(23, 1, 2);
00529         _histMeanMultiBStar              = bookHistogram1D(24, 1, 1);
00530         _histMeanMultiJPsi1S             = bookHistogram1D(25, 1, 2);
00531         _histMeanMultiPsi2S              = bookHistogram1D(26, 1, 1);
00532         _histMeanMultiUpsilon1S          = bookHistogram1D(27, 1, 1);
00533         _histMeanMultiF1_1285            = bookHistogram1D(28, 1, 1);
00534         _histMeanMultiF1_1420            = bookHistogram1D(29, 1, 1);
00535         _histMeanMultiChi_c1_3510        = bookHistogram1D(30, 1, 1);
00536         _histMeanMultiF2_1270            = bookHistogram1D(31, 1, 3);
00537         _histMeanMultiF2Prime1525        = bookHistogram1D(32, 1, 1);
00538         _histMeanMultiK2Star1430_0       = bookHistogram1D(34, 1, 2);
00539         _histMeanMultiBStarStar          = bookHistogram1D(35, 1, 1);
00540         _histMeanMultiDs1Plus            = bookHistogram1D(36, 1, 1);
00541         _histMeanMultiDs2Plus            = bookHistogram1D(37, 1, 1);
00542         _histMeanMultiP                  = bookHistogram1D(38, 1, 3);
00543         _histMeanMultiLambda             = bookHistogram1D(39, 1, 3);
00544         _histMeanMultiSigma0             = bookHistogram1D(40, 1, 2);
00545         _histMeanMultiSigmaMinus         = bookHistogram1D(41, 1, 1);
00546         _histMeanMultiSigmaPlus          = bookHistogram1D(42, 1, 1);
00547         _histMeanMultiSigmaPlusMinus     = bookHistogram1D(43, 1, 1);
00548         _histMeanMultiXiMinus            = bookHistogram1D(44, 1, 3);
00549         _histMeanMultiDelta1232PlusPlus  = bookHistogram1D(45, 1, 2);
00550         _histMeanMultiSigma1385Minus     = bookHistogram1D(46, 1, 3);
00551         _histMeanMultiSigma1385Plus      = bookHistogram1D(47, 1, 3);
00552         _histMeanMultiSigma1385PlusMinus = bookHistogram1D(48, 1, 3);
00553         _histMeanMultiXi1530_0           = bookHistogram1D(49, 1, 2);
00554         _histMeanMultiOmegaMinus         = bookHistogram1D(50, 1, 3);
00555         _histMeanMultiLambda_c_Plus      = bookHistogram1D(51, 1, 3);
00556         _histMeanMultiLambda_b_0         = bookHistogram1D(52, 1, 1);
00557         _histMeanMultiLambda1520         = bookHistogram1D(54, 1, 2);
00558       }
00559 
00560       if (sqrtS()/GeV >= 130 && sqrtS()/GeV <= 200) {
00561         _histMeanMultiKPlus             = bookHistogram1D( 3, 1, 4);
00562         _histMeanMultiK0                = bookHistogram1D( 4, 1, 4);
00563         _histMeanMultiP                 = bookHistogram1D(38, 1, 4);
00564         _histMeanMultiLambda            = bookHistogram1D(39, 1, 4);
00565       }
00566     }
00567 
00568 
00569 
00570     // Finalize
00571     void finalize() {
00572       if (sqrtS()/GeV >= 9.5 && sqrtS()/GeV <= 10.5) {
00573         scale(_histMeanMultiPi0               , 1.0/_weightedTotalNumPiPlus);
00574         scale(_histMeanMultiKPlus             , 1.0/_weightedTotalNumPiPlus);
00575         scale(_histMeanMultiK0                , 1.0/_weightedTotalNumPiPlus);
00576         scale(_histMeanMultiEta               , 1.0/_weightedTotalNumPiPlus);
00577         scale(_histMeanMultiEtaPrime          , 1.0/_weightedTotalNumPiPlus);
00578         scale(_histMeanMultiDPlus             , 1.0/_weightedTotalNumPiPlus);
00579         scale(_histMeanMultiD0                , 1.0/_weightedTotalNumPiPlus);
00580         scale(_histMeanMultiDPlus_s           , 1.0/_weightedTotalNumPiPlus);
00581         scale(_histMeanMultiF0_980            , 1.0/_weightedTotalNumPiPlus);
00582         scale(_histMeanMultiRho770_0          , 1.0/_weightedTotalNumPiPlus);
00583         scale(_histMeanMultiOmega782          , 1.0/_weightedTotalNumPiPlus);
00584         scale(_histMeanMultiKStar892Plus      , 1.0/_weightedTotalNumPiPlus);
00585         scale(_histMeanMultiKStar892_0        , 1.0/_weightedTotalNumPiPlus);
00586         scale(_histMeanMultiPhi1020           , 1.0/_weightedTotalNumPiPlus);
00587         scale(_histMeanMultiDStar2010Plus     , 1.0/_weightedTotalNumPiPlus);
00588         scale(_histMeanMultiDStar2007_0       , 1.0/_weightedTotalNumPiPlus);
00589         scale(_histMeanMultiDStar_s2112Plus   , 1.0/_weightedTotalNumPiPlus);
00590         scale(_histMeanMultiJPsi1S            , 1.0/_weightedTotalNumPiPlus);
00591         scale(_histMeanMultiF2_1270           , 1.0/_weightedTotalNumPiPlus);
00592         scale(_histMeanMultiP                 , 1.0/_weightedTotalNumPiPlus);
00593         scale(_histMeanMultiLambda            , 1.0/_weightedTotalNumPiPlus);
00594         scale(_histMeanMultiSigma0            , 1.0/_weightedTotalNumPiPlus);
00595         scale(_histMeanMultiXiMinus           , 1.0/_weightedTotalNumPiPlus);
00596         scale(_histMeanMultiDelta1232PlusPlus , 1.0/_weightedTotalNumPiPlus);
00597         scale(_histMeanMultiSigma1385Minus    , 1.0/_weightedTotalNumPiPlus);
00598         scale(_histMeanMultiSigma1385Plus     , 1.0/_weightedTotalNumPiPlus);
00599         scale(_histMeanMultiSigma1385PlusMinus, 1.0/_weightedTotalNumPiPlus);
00600         scale(_histMeanMultiXi1530_0          , 1.0/_weightedTotalNumPiPlus);
00601         scale(_histMeanMultiOmegaMinus        , 1.0/_weightedTotalNumPiPlus);
00602         scale(_histMeanMultiLambda_c_Plus     , 1.0/_weightedTotalNumPiPlus);
00603         scale(_histMeanMultiSigma_c_PlusPlus_0, 1.0/_weightedTotalNumPiPlus);
00604         scale(_histMeanMultiLambda1520        , 1.0/_weightedTotalNumPiPlus);
00605       }
00606 
00607       if (sqrtS()/GeV >= 29 && sqrtS()/GeV <= 35) {
00608         scale(_histMeanMultiPi0               , 1.0/_weightedTotalNumPiPlus);
00609         scale(_histMeanMultiKPlus             , 1.0/_weightedTotalNumPiPlus);
00610         scale(_histMeanMultiK0                , 1.0/_weightedTotalNumPiPlus);
00611         scale(_histMeanMultiEta               , 1.0/_weightedTotalNumPiPlus);
00612         scale(_histMeanMultiEtaPrime          , 1.0/_weightedTotalNumPiPlus);
00613         scale(_histMeanMultiDPlus             , 1.0/_weightedTotalNumPiPlus);
00614         scale(_histMeanMultiD0                , 1.0/_weightedTotalNumPiPlus);
00615         scale(_histMeanMultiDPlus_s           , 1.0/_weightedTotalNumPiPlus);
00616         scale(_histMeanMultiF0_980            , 1.0/_weightedTotalNumPiPlus);
00617         scale(_histMeanMultiRho770_0          , 1.0/_weightedTotalNumPiPlus);
00618         scale(_histMeanMultiKStar892Plus      , 1.0/_weightedTotalNumPiPlus);
00619         scale(_histMeanMultiKStar892_0        , 1.0/_weightedTotalNumPiPlus);
00620         scale(_histMeanMultiPhi1020           , 1.0/_weightedTotalNumPiPlus);
00621         scale(_histMeanMultiDStar2010Plus     , 1.0/_weightedTotalNumPiPlus);
00622         scale(_histMeanMultiDStar2007_0       , 1.0/_weightedTotalNumPiPlus);
00623         scale(_histMeanMultiF2_1270           , 1.0/_weightedTotalNumPiPlus);
00624         scale(_histMeanMultiK2Star1430Plus    , 1.0/_weightedTotalNumPiPlus);
00625         scale(_histMeanMultiK2Star1430_0      , 1.0/_weightedTotalNumPiPlus);
00626         scale(_histMeanMultiP                 , 1.0/_weightedTotalNumPiPlus);
00627         scale(_histMeanMultiLambda            , 1.0/_weightedTotalNumPiPlus);
00628         scale(_histMeanMultiXiMinus           , 1.0/_weightedTotalNumPiPlus);
00629         scale(_histMeanMultiSigma1385Minus    , 1.0/_weightedTotalNumPiPlus);
00630         scale(_histMeanMultiSigma1385Plus     , 1.0/_weightedTotalNumPiPlus);
00631         scale(_histMeanMultiSigma1385PlusMinus, 1.0/_weightedTotalNumPiPlus);
00632         scale(_histMeanMultiOmegaMinus        , 1.0/_weightedTotalNumPiPlus);
00633         scale(_histMeanMultiLambda_c_Plus     , 1.0/_weightedTotalNumPiPlus);
00634       }
00635 
00636       if (sqrtS()/GeV >= 89.5 && sqrtS()/GeV <= 91.8) {
00637         scale(_histMeanMultiPi0               , 1.0/_weightedTotalNumPiPlus);
00638         scale(_histMeanMultiKPlus             , 1.0/_weightedTotalNumPiPlus);
00639         scale(_histMeanMultiK0                , 1.0/_weightedTotalNumPiPlus);
00640         scale(_histMeanMultiEta               , 1.0/_weightedTotalNumPiPlus);
00641         scale(_histMeanMultiEtaPrime          , 1.0/_weightedTotalNumPiPlus);
00642         scale(_histMeanMultiDPlus             , 1.0/_weightedTotalNumPiPlus);
00643         scale(_histMeanMultiD0                , 1.0/_weightedTotalNumPiPlus);
00644         scale(_histMeanMultiDPlus_s           , 1.0/_weightedTotalNumPiPlus);
00645         scale(_histMeanMultiBPlus_B0_d        , 1.0/_weightedTotalNumPiPlus);
00646         scale(_histMeanMultiBPlus_u           , 1.0/_weightedTotalNumPiPlus);
00647         scale(_histMeanMultiB0_s              , 1.0/_weightedTotalNumPiPlus);
00648         scale(_histMeanMultiF0_980            , 1.0/_weightedTotalNumPiPlus);
00649         scale(_histMeanMultiA0_980Plus        , 1.0/_weightedTotalNumPiPlus);
00650         scale(_histMeanMultiRho770_0          , 1.0/_weightedTotalNumPiPlus);
00651         scale(_histMeanMultiRho770Plus        , 1.0/_weightedTotalNumPiPlus);
00652         scale(_histMeanMultiOmega782          , 1.0/_weightedTotalNumPiPlus);
00653         scale(_histMeanMultiKStar892Plus      , 1.0/_weightedTotalNumPiPlus);
00654         scale(_histMeanMultiKStar892_0        , 1.0/_weightedTotalNumPiPlus);
00655         scale(_histMeanMultiPhi1020           , 1.0/_weightedTotalNumPiPlus);
00656         scale(_histMeanMultiDStar2010Plus     , 1.0/_weightedTotalNumPiPlus);
00657         scale(_histMeanMultiDStar_s2112Plus   , 1.0/_weightedTotalNumPiPlus);
00658         scale(_histMeanMultiBStar             , 1.0/_weightedTotalNumPiPlus);
00659         scale(_histMeanMultiJPsi1S            , 1.0/_weightedTotalNumPiPlus);
00660         scale(_histMeanMultiPsi2S             , 1.0/_weightedTotalNumPiPlus);
00661         scale(_histMeanMultiUpsilon1S         , 1.0/_weightedTotalNumPiPlus);
00662         scale(_histMeanMultiF1_1285           , 1.0/_weightedTotalNumPiPlus);
00663         scale(_histMeanMultiF1_1420           , 1.0/_weightedTotalNumPiPlus);
00664         scale(_histMeanMultiChi_c1_3510       , 1.0/_weightedTotalNumPiPlus);
00665         scale(_histMeanMultiF2_1270           , 1.0/_weightedTotalNumPiPlus);
00666         scale(_histMeanMultiF2Prime1525       , 1.0/_weightedTotalNumPiPlus);
00667         scale(_histMeanMultiK2Star1430_0      , 1.0/_weightedTotalNumPiPlus);
00668         scale(_histMeanMultiBStarStar         , 1.0/_weightedTotalNumPiPlus);
00669         scale(_histMeanMultiDs1Plus           , 1.0/_weightedTotalNumPiPlus);
00670         scale(_histMeanMultiDs2Plus           , 1.0/_weightedTotalNumPiPlus);
00671         scale(_histMeanMultiP                 , 1.0/_weightedTotalNumPiPlus);
00672         scale(_histMeanMultiLambda            , 1.0/_weightedTotalNumPiPlus);
00673         scale(_histMeanMultiSigma0            , 1.0/_weightedTotalNumPiPlus);
00674         scale(_histMeanMultiSigmaMinus        , 1.0/_weightedTotalNumPiPlus);
00675         scale(_histMeanMultiSigmaPlus         , 1.0/_weightedTotalNumPiPlus);
00676         scale(_histMeanMultiSigmaPlusMinus    , 1.0/_weightedTotalNumPiPlus);
00677         scale(_histMeanMultiXiMinus           , 1.0/_weightedTotalNumPiPlus);
00678         scale(_histMeanMultiDelta1232PlusPlus , 1.0/_weightedTotalNumPiPlus);
00679         scale(_histMeanMultiSigma1385Minus    , 1.0/_weightedTotalNumPiPlus);
00680         scale(_histMeanMultiSigma1385Plus     , 1.0/_weightedTotalNumPiPlus);
00681         scale(_histMeanMultiSigma1385PlusMinus, 1.0/_weightedTotalNumPiPlus);
00682         scale(_histMeanMultiXi1530_0          , 1.0/_weightedTotalNumPiPlus);
00683         scale(_histMeanMultiOmegaMinus        , 1.0/_weightedTotalNumPiPlus);
00684         scale(_histMeanMultiLambda_c_Plus     , 1.0/_weightedTotalNumPiPlus);
00685         scale(_histMeanMultiLambda_b_0        , 1.0/_weightedTotalNumPiPlus);
00686         scale(_histMeanMultiLambda1520        , 1.0/_weightedTotalNumPiPlus);
00687       }
00688 
00689       if (sqrtS()/GeV >= 130 && sqrtS()/GeV <= 200) {
00690         scale(_histMeanMultiKPlus            , 1.0/_weightedTotalNumPiPlus);
00691         scale(_histMeanMultiK0               , 1.0/_weightedTotalNumPiPlus);
00692         scale(_histMeanMultiP                , 1.0/_weightedTotalNumPiPlus);
00693         scale(_histMeanMultiLambda           , 1.0/_weightedTotalNumPiPlus);
00694       }
00695     }
00696 
00697     //@}
00698 
00699 
00700   private:
00701 
00702     double _weightedTotalNumPiPlus;
00703 
00704     AIDA::IHistogram1D *_histMeanMultiPi0;
00705     AIDA::IHistogram1D *_histMeanMultiKPlus;
00706     AIDA::IHistogram1D *_histMeanMultiK0;
00707     AIDA::IHistogram1D *_histMeanMultiEta;
00708     AIDA::IHistogram1D *_histMeanMultiEtaPrime;
00709     AIDA::IHistogram1D *_histMeanMultiDPlus;
00710     AIDA::IHistogram1D *_histMeanMultiD0;
00711     AIDA::IHistogram1D *_histMeanMultiDPlus_s;
00712     AIDA::IHistogram1D *_histMeanMultiBPlus_B0_d;
00713     AIDA::IHistogram1D *_histMeanMultiBPlus_u;
00714     AIDA::IHistogram1D *_histMeanMultiB0_s;
00715     AIDA::IHistogram1D *_histMeanMultiF0_980;
00716     AIDA::IHistogram1D *_histMeanMultiA0_980Plus;
00717     AIDA::IHistogram1D *_histMeanMultiRho770_0;
00718     AIDA::IHistogram1D *_histMeanMultiRho770Plus;
00719     AIDA::IHistogram1D *_histMeanMultiOmega782;
00720     AIDA::IHistogram1D *_histMeanMultiKStar892Plus;
00721     AIDA::IHistogram1D *_histMeanMultiKStar892_0;
00722     AIDA::IHistogram1D *_histMeanMultiPhi1020;
00723     AIDA::IHistogram1D *_histMeanMultiDStar2010Plus;
00724     AIDA::IHistogram1D *_histMeanMultiDStar2007_0;
00725     AIDA::IHistogram1D *_histMeanMultiDStar_s2112Plus;
00726     AIDA::IHistogram1D *_histMeanMultiBStar;
00727     AIDA::IHistogram1D *_histMeanMultiJPsi1S;
00728     AIDA::IHistogram1D *_histMeanMultiPsi2S;
00729     AIDA::IHistogram1D *_histMeanMultiUpsilon1S;
00730     AIDA::IHistogram1D *_histMeanMultiF1_1285;
00731     AIDA::IHistogram1D *_histMeanMultiF1_1420;
00732     AIDA::IHistogram1D *_histMeanMultiChi_c1_3510;
00733     AIDA::IHistogram1D *_histMeanMultiF2_1270;
00734     AIDA::IHistogram1D *_histMeanMultiF2Prime1525;
00735     AIDA::IHistogram1D *_histMeanMultiK2Star1430Plus;
00736     AIDA::IHistogram1D *_histMeanMultiK2Star1430_0;
00737     AIDA::IHistogram1D *_histMeanMultiBStarStar;
00738     AIDA::IHistogram1D *_histMeanMultiDs1Plus;
00739     AIDA::IHistogram1D *_histMeanMultiDs2Plus;
00740     AIDA::IHistogram1D *_histMeanMultiP;
00741     AIDA::IHistogram1D *_histMeanMultiLambda;
00742     AIDA::IHistogram1D *_histMeanMultiSigma0;
00743     AIDA::IHistogram1D *_histMeanMultiSigmaMinus;
00744     AIDA::IHistogram1D *_histMeanMultiSigmaPlus;
00745     AIDA::IHistogram1D *_histMeanMultiSigmaPlusMinus;
00746     AIDA::IHistogram1D *_histMeanMultiXiMinus;
00747     AIDA::IHistogram1D *_histMeanMultiDelta1232PlusPlus;
00748     AIDA::IHistogram1D *_histMeanMultiSigma1385Minus;
00749     AIDA::IHistogram1D *_histMeanMultiSigma1385Plus;
00750     AIDA::IHistogram1D *_histMeanMultiSigma1385PlusMinus;
00751     AIDA::IHistogram1D *_histMeanMultiXi1530_0;
00752     AIDA::IHistogram1D *_histMeanMultiOmegaMinus;
00753     AIDA::IHistogram1D *_histMeanMultiLambda_c_Plus;
00754     AIDA::IHistogram1D *_histMeanMultiLambda_b_0;
00755     AIDA::IHistogram1D *_histMeanMultiSigma_c_PlusPlus_0;
00756     AIDA::IHistogram1D *_histMeanMultiLambda1520;
00757 
00758     //@}
00759 
00760   };
00761 
00762 
00763 
00764   // This global object acts as a hook for the plugin system
00765   AnalysisBuilder<PDG_HADRON_MULTIPLICITIES_RATIOS> plugin_PDG_HADRON_MULTIPLICITIES_RATIOS;
00766 
00767 }