diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,6807 +1,6822 @@ 2019-05-20 Andy Buckley * Improve Vector3::azimuthalAngle() (also used by FourMomentum and FourVector) to use exact rather than fuzzy is-zero check, to only check the perpendicular components, and to note that IEEE floating point implementations of atan2 should already be 'safe' unless we decide that this function should throw or return NaN in case of null or along-z vectors. Thanks to Louis Moureaux from CMS for the report and diagnosis. 2019-05-17 Andy Buckley * Tools/Utils.h: Add isum() functions, and mark other container functions as wanting a conversion to use std::function. 2019-05-16 Andy Buckley * Add super-generic (i)discardIfAny(particlebases, particlebases, bool(pb,pb)) functions. 2019-05-16 Christian Gutschow * Introduce TTMODE options for MC_TTBAR to pick the decay mode 2019-05-09 Christian Gutschow * Release version 2.7.1 2019-05-09 Christian Gutschow * add correlation information for those analyses that are compatible with HEPData * prevent Variations meta data from being copied * comment out redudnant code in MeasureDefinition.cc to suppress compiler warning 2019-05-08 Andy Buckley * Use an std::map rather than std::set to store analyses in AnalysisHandler, hopefully therefore fixing the analysis evaluation order and making multi-analysis runs with random numbers repeatable. 2019-05-07 Andy Buckley * Modify LorentzTransform::setBetaVec to behave better for boost along x, y, and z axes. * Attach bare lepton GenParticle pointers to output of DressedLeptons, to allow ancestry/decay navigation (request by Markus Seidel). * Add Particle::setGenParticle method and manual Particle constructors with the option to pass a GenParticle*. * Improve DressedLeptons constructor to deconstruct incoming particles into bare and dressing components (report by Markus Seidel). * Remove GSL includes and single remaining method (for now). 2019-05-06 Andy Buckley * First set of script conversions from optparse to argparse for Python3. 2019-05-06 Peter Richardson * Fix normalisation in ATLAS_2016_I1444991 after yoda update from HepData 2019-05-04 Christian Gutschow * default entry point of ATLAS_2014_I1319490 should be average of muon and electron channel * fix units in ATLAS_2014_I1319490 and apply Peter Richardson's plot updates 2019-05-04 Peter Richardson * Fix plot selection and labels in ATLAS_2016_I1419652 (due yoda update from HepData) * Fix to mode switch and plot labels in ATLAS_2014_I1319490 2019-05-03 Peter Richardson * Fix info text and plot labels in ATLAS_2013_I1217863 * Fix Zfinder test in ATLAS_2014_I1312627, size is now no of Z's not leptons 2019-05-02 Peter Richardson * Fix unicode in ATLAS_2014_I1312627,ATLAS_2016_I1424838,ATLAS_2016_I1426523 2019-05-02 Peter Richardson * Fix make-plots CustomMajorTicks and CustomMinorTicks 2019-04-30 Peter Richardson * Fix make-plots rendering when last point is NaN-valued. 2019-04-30 Christian Gutschow * path sign behaviour in deltaEta (MathUtils.hh) * add signed option for deltaRap 2019-04-29 Andy Buckley * Add tau mistag efficiency functions for jet smearing. * Make RIVET_RANDOM_SEED have effect outside OpenMP builds, too. 2019-04-29 Christian Gutschow * remove IsRef from output Histo1D * fix HEPData IDs in hist booking for ATLAS_2014_I1315949 2019-04-26 Christian Gutschow * use jet size rather than 4-momentum size (?) to fill in CDF_1996_S3108457 2019-04-25 Christian Gutschow * fix mapping to ref data in STAR_2006_S6500200, put bin width manually into ref data file 2019-04-24 Christian Gutschow * Patch weird behaviour in ATLAS_2017_I1589844 and ATLAS_2017_I1609448 when Cut argument is passed to VetoedFinalState constructor. In version 2.6.2 or prior, this would select the particles passing the cut, after that they are being vetoed. 2019-04-24 Andy Buckley * Add CMS_2016_I1487288 (CMS WZ differential cross-sections at 8 TeV) from Shehu AbdusSalam, refined and extended to jet distributions by AB. 2019-04-24 Jon Butterworth * Fix logic of call the vetoedFinalState in ATLAS_2017_I1609448 which was giving wrong met calculation. 2019-04-23 Chris Gutschow * Apply suggested corrections from Peter Richardson to ATLAS_2014_I1282441 (normalisation of second plot is in millibarn not microbarn), ATLAS_2015_I1387176 and ATLAS_2015_I1397635 (Unicode issues in the .info), ATLAS_2016_I1419070 (need more than 1 entry for a variance not just 1), CMS_2010_PAS_QCD_10_024 and CMS_2012_PAS_FSQ_12_020 (class names need to be consistent with file names to find the .yoda ref data), CMS_2013_I1261026 (need to ensure more than 1 entry in histos to avoid LowStats issues from YODA), CMS_2014_I1298810, CMS_2016_I1421646, CMS_2016_I1454211 (the polymarker command in the yoda caused make-plots to fail if there is more than 1 MC line), CMS_2017_I1467451 (cross sections in fb), CMS_2017_I1605749 (data fixed in HepData so don't need to divide by bin width anymore), ALEPH_1996_S3486095 (delete a lot of unused variables), ALEPH_2014_I1267648 (only worked if the final decay products were direct children of the tau, which is not the case in Herwig or Pythia -- rewritten to search down the decay tree), DELPHI_1996_S3430090, DELPHI_2000_S4328825, OPAL_1998_S374990, ARGUS_1993_S2669951, ALEPH_1996_S3486095 (switch ' to ^\prime in plots as it wasn't working as it was), ALEPH_2004_S5765862 (fix typo in plot label), BABAR_2003_I593379 and BELLE_2008_I786560 (switch to Rivet particle from genParticle), and to add the 2D case to the Sphericity projection so tranSphericity works. 2019-04-23 Andy Buckley * Add RIVET_CACHE_PROJECTIONS environment variable, for runtime disabling of the caching mechanism (for debugging and cross-checking). * Add optional only_physical and remove_duplicates args (passed through to the Particle methods) to hasParticleAncestorWith and hasParticleDescendantWith functors. 2019-04-08 Przemyslaw Karczmarczyk * Restored behaviour of getData function to return finalized plots by default 2019-04-03 Andy Buckley * Remove/protect against last Unicode .encode() calls that broke Python3 compatibility. * Remove last assert (for mod2() >= 0) from Vector classes. 2019-04-01 Andy Buckley * Move inline projections *inside* analysis classes, since our aggregated build mechanism means there's no longer a unique unnamed namespace for each analysis .cc file. * Adding analyses ATLAS_2018_I1677498 (WWbb), ATLAS_2018_I1711114 (g -> bb), and ATLAS_2019_I1720442 (4-lepton lineshape). 2019-03-19 Andy Buckley * Extend more deltaPhi(x,y) functions with an optional bool for signed dPhi. * Add Particle::isSame and isSame(Particle, Particle) functions in lieu of implicit (and wrong) Particle::operator==. * Reinstate Particle -> GenParticle as an explicit cast option. 2019-03-15 Andy Buckley * Add CMS_2018_I1686000.cc single-top plus photon analysis (with an info file warning about fiducial definition oddity) * Remove Particle -> GenParticle implicit cast. * analyses/pluginCMS/CMS_2018_I1682495.cc: Fix normalisation of final plots (patch from Sal Rappoccio, spot by Deepak Kar) 2019-02-27 Andy Buckley * bin/make-plots: Fix a few Py2/3 incompabilities in make-plots. Thanks to Leif Gellersen for the tip-off * analyses/Makefile.am: Adopt a more make-friendly plugin building rule. Thanks to Dima Konstantinov. 2019-02-24 Jon Butterworth * Fix multiple bugs in ATLAS_2017_I1514251 (Z+jets) including a problem with REF data having zero bin widths +2019-02-23 Jon Butterworth + + * Added first version of ZEUS_2012_I1116258 (dijet photoproduction). Currently works but unvalidated, + need to check exact recombination scheme with ZEUS contacts. Note ZEUS_2001_S4815815 also needs the + recombination scheme checking. (Now done; changed to Et scheme are checking original code, 27/2/19.) + +2019-02-20 Andy Buckley + + * Move UnstableParticles to a consistently-named header, with + UnstableFinalState.hh retained for backward compatibility. + + * Improve/fix UnstableParticles projection's Cut constructor + argument to apply the cut on a Rivet::Particle rather than a + HepMC::FourVector, meaning that PID cuts can now be used. + 2019-02-17 Andy Buckley * Convert ATLAS_2013_I1217863 analysis variants to use the LMODE analysis option (from Jon Butterworth). 2019-02-15 Leif Lönnblad * Release 2.7.0 2019-02-12 Christian Bierlich * Introduced CentralityProjection, allowing an analysis to cut on percentiles of single event quantities, preloaded from a user generated or supplied (by experiment) histogram. Notably used for the centrality definition in heavy ion analyses. User specifies the centrality definition as a special analysis option called cent, eg: "MyAnalysis:cent=GEN". Example usage: Calibration analysis: MC_Cent_pPb_Calib, Analysis using that calibration: MC_Cent_pPb_Eta. * Introduced EventMixingFinalState to provide simple event mixing functionality. Currently only works with unit event weights. Example usage: ALICE_2016_I1507157. * Introduced Correlators, a framework for calculating single event correlators based on the generic framework (arXiv: 1010.0233 and arXiv: 1312.3572), and perfoming all event averages giving flow coefficents. Implemented as new analysis base class. Example usage: ALICE_2016_I1419244. * Introduced a PrimaryParticle projection, replicating experimental definitions of stable particles through decay chains. Recommended for analyses which would otherwise have to require stable particles at generator level. * Introduced AliceCommon and AtlasCommon convenience tools, defining several triggers, primary particle definitions and acceptances. * Contributed, validated analyses using above features: ALICE_2010_I880049: Multiplicity at mid-rapidity, PbPb @ 2.76 TeV/nn. ALICE_2012_I1127497: Nuclear modification factor, PbPb @ 2.76 TeV/nn. ALICE_2012_I930312: Di-hadron correlations, PbPb @ 2.76 TeV/nn. * Contributed, unvalidated analyses using above features: BRAHMS_2004_I647076: pi, K, p spectra as function of rapidity, AuAu @ 200 GeV/nn ALICE_2012_I1126966: pi, K, p spectra, PbPb @ 2.76 TeV/nn. ALICE_2013_I1225979: Charged multiplicity, PbPb @ 2.76 TeV/nn. ALICE_2014_I1243865: Multi-strange baryons, PbPb @ 2.76 TeV/nn. ALICE_2014_I1244523: Multi-strange baryons, pPb @ 5.02 TeV/nn. ALICE_2015_PBPBCentrality: Centrality calibration for PbPb. Note that the included 5.02 TeV/nn data is not well defined at particle level, and cannot be compared to experiment without full detector simulation. ALICE_2016_I1394676: Charged multiplicity, PbPb @ 2.76 TeV/nn. ALICE_2016_I1419244: Multiparticle correlations (flow) using generic framework, PbPb @ 5.02 TeV/nn. ALICE_2016_I1471838: Multi-strange baryons, pp @ 7 TeV. ALICE_2016_I1507090: Charged multiplicity, PbPb @ 5.02 TeV/nn. ALICE_2016_I1507157: Angular correlations, pp @ 7 TeV. ATLAS_2015_I1386475: Charged multiplicity, pPb @ 5.02 TeV/nn. ATLAS_PBPB_CENTRALITY: Forward energy flow + centrality calibration, data not unfolded, but well defined at particle level, PbPb @ 2.76 TeV/nn. ATLAS_2015_I1360290: Charged multiplicity + spectra, PbPb @ 2.76 TeV/nn. ATLAS_pPb_Calib: Forward energy flow + centrality calibration, data not unfolded, but well defined at particle level, pPb @ 5.02 TeV/nn. STAR_2016_I1414638: Di-hadron correlations, AuAu @ 200 GeV/nn. CMS_2017_I1471287: Multiparticle correlations (flow) using generic framework, pp @ 7 TeV. * Contributed analyses without data: ALICE_2015_PPCentrality: ALICE pp centrality (multiplicity classes) calibration. BRAHMS_2004_CENTRALITY: BRAHMS centrality calibration. STAR_BES_CALIB: STAR centrality calibration. MC_Cent_pPb_Calib: Example analysis, centrality calibration. MC_Cent_pPb_Eta: Example analysis, centrality usage. 2019-01-29 Andy Buckley * Add real CMS Run 1 and Run 2 MET resolution smearing functions, based on 8 TeV paper and 13 TeV PAS. 2019-01-07 Leif Lönnblad * Reintroduced the PXCONE option in FastJets using a local version of the Fortran based pxcone algorithm converted to c++ with f2c and slightly hacked to avoid dependency on Fortran runtime libraries. * Introduced rivet-merge for statistically correct merging of YODA files produced by Rivet. Only works on analysis with reentrant finalize. * Introduced --dump flag to the rivet script to periodically run finalize and write out the YODA file for anayses with reentrant finalize. * Introduced reentrant finalize. Rivet now produces YODA files where all analysis objects are stored in two version. One is prefixed by "/RAW" and gives the state of the object before finalize was run, and the other is the properly finalized object. Analyses must be flagged "Reentrant: True" in the .info file to properly use this feature. * Added an option system. Analyses can now be added to rivet with options. Adding eg. "MyAnalysis:Opt1=val1:Opt2=val2" will create and add a MyAnalysis object making the options available through the Analysis::getOption() function. Several objects of MyAnalysis with different options can be added in the same run. Allowed options must be specified in the MyAnalysis.info file. * Added several utilities for heavy ions. 2019-01-03 Andy Buckley * Add setting of cross-section error in AnalysisHandler and Run. 2018-12-21 Andy Buckley * Add hasNoTag jet-classification functor, to complement hasBTag and hasCTag. 2018-12-20 Andy Buckley * Rework VetoedFinalState to be based on Cuts, and to be constructible from Cut arguments. * Pre-emptively exclude all hadrons and partons from returning true in isDirect computations. * Cache the results of isDirect calculations on Particle (a bit awkwardly... roll on C++17). * Add a default-FinalState version of the DressedLeptons constructor. 2018-12-19 Andy Buckley * Add a FIRST/LAST enum switch for PartonicTops, to choose which top quark clone to use. 2018-12-14 Andy Buckley * Add a FastJet clustering mode for DressedLeptons. 2018-12-10 Andy Buckley * Release 2.6.2 * Info file bugfixes for LHCF_2016_I1385877, from Eugenio Berti. * Update references in three CMS analysis .info files. 2018-12-05 Andy Buckley * Rework doc directory no-build by default to be compatible with 'make dist' packaging. * Add fjcontrib RecursiveTools to Rivet/Tools/fjcontrib set. 2018-11-21 Andy Buckley * Add CMS_2018_I1653948, CMS_2018_I1653948, CMS_2018_I1682495, and CMS_2018_I1690148 analyses. * Add FastJet EnergyCorrelator and rejig the internal fjcontrib bundle a little. 2018-11-15 Andy Buckley * Merge ATLAS_2017_I1517194_MU and ATLAS_2018_I1656578. * Add signed calculation optional bool argument on all deltaPhi functions. 2018-11-12 Andy Buckley * Fix CMS_2012_I1102908 efficiency calculation. Thanks to Anton Karneyeu! 2018-11-09 Andy Buckley * Remove doc dir from default top-level make 2018-09-20 Andy Buckley * Use updated ATLAS R2 muon efficiencies. * Use proper ATLAS photon efficiency functions for Runs 1 and 2, from arXiv:1606.01813 and ATL-PHYS-PUB-2016-014. 2018-08-31 Andy Buckley * Update embedded yaml-cpp to v0.6.0. 2018-08-29 Andy Buckley * Add RIVET_WEIGHT_INDEX=-1 -> ignore event weights behaviour. Slow, but sometimes useful for debug. 2018-08-29 Christian Gutschow * Allow reference data file name to be different from plugin name via setRefDataName(fname) method, aiming to unify HepData records. 2018-08-14 Andy Buckley * Version 2.6.1 release. 2018-08-08 Andy Buckley * Add a RIVET_RANDOM_SEED variable to fix the smearing random-seed engine for validation comparisons. 2018-07-19 Andy Buckley * Merge in ATLAS_2017_I1604029 (ttbar+gamma), ATLAS_2017_I1626105 (dileptonic ttbar), ATLAS_2017_I1644367 (triphotons), and ATLAS_2017_I1645627 (photon + jets). * Postpone Particles enhancement now, since the required C++11 isn't supported on lxplus7 = CentOS7. * Add MC_DILEPTON analysis. 2018-07-10 Andy Buckley * Fix HepData tarball download handling: StringIO is *not* safe anymore 2018-07-08 Andy Buckley * Add LorentzTransform factory functions direct from FourMomentum, and operator()s 2018-06-20 Andy Buckley * Add FinalState(fs, cut) augmenting constructor, and PrevFS projection machinery. Validated for a abscharge > 0 cut. * Add hasProjection() methods to ProjectionHandler and ProjectionApplier. * Clone MC_GENERIC as MC_FSPARTICLES and deprecate the badly-named original. * Fix Spires -> Inspire ID for CMS_2017_I1518399. 2018-06-04 Andy Buckley * Fix installation of (In)DirectFinalState.hh 2018-05-31 Andy Buckley * Add init-time setting of a single weight-vector index from the RIVET_WEIGHT_INDEX environment variable. To be removed in v3, but really we should have done this years ago... and we don't know how long the handover will be. 2018-05-22 Neil Warrack * Include 'unphysical' photon parents in PartonicTops' veto of prompt leptons from photon conversions. 2018-05-20 Andy Buckley * Make Particles and Jets into actual specialisations of std::vector rather than typedefs, and update surrounding classes to use them. The specialisations can implicitly cast to vectors of FourMomentum (and maybe Pseudojet). 2018-05-18 Andy Buckley * Make CmpAnaHandle::operator() const, for GCC 8 (thanks to CMS) 2018-05-07 Andy Buckley * CMS_2016_I1421646.cc: Add patch from CMS to veto if leading jets outside |y| < 2.5, rather than only considering jets in that acceptance. Thanks to CMS and Markus Seidel. 2018-04-27 Andy Buckley * Tidy keywords and luminosity entries, and add both to BSM search .info files. * Add Luminosity_fb and Keywords placeholders in mkanalysis output. 2018-04-26 Andy Buckley * Add pairMass and pairPt functions. * Add (i)discardIfAnyDeltaRLess and (i)discardIfAnyDeltaPhiLess functions. * Add normalize() methods to Cutflow and Cutflows. * Add DirectFinalState and IndirectFinalState alias headers, for forward compatibility. 'Prompt' is confusing. 2018-04-24 Andy Buckley * Add initializer_list overload for binIndex. Needed for other util functions operating on vectors. * Fix function signature bug is isMT2 overload. * Add isSameSign, isOppSign, isSameFlav, isOppFlav, and isOSSF etc. functions on PIDs and Particles. 2018-03-27 Andy Buckley * Add RatioPlotLogY key to make-plots. Thanks to Antonin Maire. 2018-02-22 Andy Buckley * Adding boolean operator syntactic sugar for composition of bool functors. * Copy & paste error fixes in implementation of BoolJetAND,OR,NOT. 2018-02-01 Andy Buckley * Make the project() and compare() methods of projections public. * Fix a serious bug in the SmearedParticles and SmearedJets compare methods. * Add string representations and streamability to the Cut objects, for debugging. 2018-01-08 Andy Buckley * Add highlighted source to HTML analysis metadata listings. 2017-12-21 Andy Buckley * Version 2.6.0 release. 2017-12-20 Andy Buckley * Typo fix in TOTEM_2012_I1220862 data -- thanks to Anton Karneyeu. 2017-12-19 Andy Buckley * Adding contributed analyses: 1 ALICE, 6 ATLAS, 1 CMS. * Fix bugged PID codes in MC_PRINTEVENT. 2017-12-13 Andy Buckley * Protect Run methods and rivet script against being told to run from a missing or unreadable file. 2017-12-11 Andy Buckley * Replace manual event count & weight handling with a YODA Counter object. 2017-11-28 Andy Buckley * Providing neater & more YODA-consistent sumW and sumW2 methods on AnalysisHandler and Analysis. * Fix to Python version check for >= 2.7.10 (patch submitted to GNU) 2017-11-17 Andy Buckley * Various improvements to DISKinematics, DISLepton, and the ZEUS 2001 analysis. 2017-11-06 Andy Buckley * Extend AOPath regex to allow dots and underscores in weight names. 2017-10-27 Andy Buckley * Add energy to the list of cuts (both as Cuts::E and Cuts::energy) * Add missing pT (rather than Et) functions to SmearedMET, although they are just copies of the MET functions for now. 2017-10-09 Andy Buckley * Embed zstr and enable transparent reading of gzipped HepMC streams. 2017-10-03 Andy Buckley * Use Lester MT2 bisection header, and expose a few more mT2 function signatures. 2017-09-26 Andy Buckley * Use generic YODA read and write functions -- enables zipped yoda.gz output. * Add ChargedLeptons enum and mode argument to ZFinder and WFinder constructors, to allow control over whether the selected charged leptons are prompt. This is mostly cosmetic/for symmetry in the case of ZFinder, since the same can be achieved by passing a PromptFinalState as the fs argument, but for WFinder it's essential since passing a prompt final state screws up the MET calculation. Both are slightly different in the treatment of the lepton dressing, although conventionally this is an area where only prompt photons are used. 2017-09-25 Andy Buckley * Add deltaR2 functions for squared distances. 2017-09-10 Andy Buckley * Add white backgrounds to make-plots main and ratio plot frames. 2017-09-05 Andy Buckley * Add CMS_2016_PAS_TOP_15_006 jet multiplicity in lepton+jets ttbar at 8 TeV analysis. * Add CMS_2017_I1467451 Higgs -> WW -> emu + MET in 8 TeV pp analysis. * Add ATLAS_2017_I1609448 Z->ll + pTmiss analysis. * Add vectorMissingEt/Pt and vectorMET/MPT convenience methods to MissingMomentum. * Add ATLAS_2017_I1598613 J/psi + mu analysis. * Add CMS SUSY 0-lepton search CMS_2017_I1594909 (unofficial implementation, validated vs. published cutflows) 2017-09-04 Andy Buckley * Change license explicitly to GPLv3, cf. MCnet3 agreement. * Add a better jet smearing resolution parametrisation, based on GAMBIT code from Matthias Danninger. 2017-08-16 Andy Buckley * Protect make-plots against NaNs in error band values (patch from Dmitry Kalinkin). 2017-07-20 Andy Buckley * Add sumPt, sumP4, sumP3 utility functions. * Record truth particles as constituents of SmearedParticles output. * Rename UnstableFinalState -> UnstableParticles, and convert ZFinder to be a general ParticleFinder rather than FinalState. 2017-07-19 Andy Buckley * Add implicit cast from FourVector & FourMomentum to Vector3, and tweak mT implementation. * Add rawParticles() to ParticleFinder, and update DressedLeptons, WFinder, ZFinder and VetoedFinalState to cope. * Add isCharged() and isChargedLepton() to Particle. * Add constituents() and rawConstituents() to Particle. * Add support for specifying bin edges as braced initializer lists rather than explicit vector. 2017-07-18 Andy Buckley * Enable methods for booking of Histo2D and Profile2D from Scatter3D reference data. * Remove IsRef annotation from autobooked histogram objects. 2017-07-17 Andy Buckley * Add pair-smearing to SmearedJets. 2017-07-08 Andy Buckley * Add Event::centrality(), for non-HepMC access to the generator value if one has been recorded -- otherwise -1. 2017-06-28 Andy Buckley * Split the smearing functions into separate header files for generic/momentum, Particle, Jet, and experiment-specific smearings & efficiencies. 2017-06-27 Andy Buckley * Add 'JetFinder' alias for JetAlg, by analogy with ParticleFinder. 2017-06-26 Andy Buckley * Convert SmearedParticles to a more general list of combined efficiency+smearing functions, with extra constructors and some variadic template cleverness to allow implicit conversions from single-operation eff and smearing function. Yay for C++11 ;-) This work based on a macro-based version of combined eff/smear functions by Karl Nordstrom -- thanks! * Add *EffFn, *SmearFn, and *EffSmearFn types to SmearingFunctions.hh. 2017-06-23 Andy Buckley * Add portable OpenMP enabling flags to AM_CXXFLAGS. 2017-06-22 Andy Buckley * Fix the smearing random number seed and make it thread-specific if OpenMP is available (not yet in the build system). * Remove the UNUSED macro and find an alternative solution for the cases where it was used, since there was a risk of macro clashes with embedding codes. * Add a -o output directory option to make-plots. * Vector4.hh: Add mT2(vec,vec) functions. 2017-06-21 Andy Buckley * Add a full set of in-range kinematics functors: ptInRange, (abs)etaInRange, (abs)phiInRange, deltaRInRange, deltaPhiInRange, deltaEtaInRange, deltaRapInRange. * Add a convenience JET_BTAG_EFFS functor with several constructors to handle mistag rates. * Add const efficiency functors operating on Particle, Jet, and FourMomentum. * Add const-efficiency constructor variants for SmearedParticles. 2017-06-21 Jon Butterworth * Fix normalisations in CMS_2016_I1454211. * Fix analysis name in ref histo paths for ATLAS_2017_I1591327. 2017-06-18 Andy Buckley * Move all standard plugin files into subdirs of src/Analyses, with some custom make rules driving rivet-buildplugin. 2017-06-18 David Grellscheid * Parallelise rivet-buildplugin, with source-file cat'ing and use of a temporary Makefile. 2016-06-18 Holger Schulz * Version 2.5.4 release! 2016-06-17 Holger Schulz * Fix 8 TeV DY (ATLAS_2016_I1467454), EL/MU bits were bissing. * Add 13 TeV DY (ATLAS_2017_I1514251) and mark ATLAS_2015_CONF_2015_041 obsolete * Add missing install statement for ATLAS_2016_I1448301.yoda/plot/info leading to segfault 2017-06-09 Andy Buckley * Slight improvements to Particle constructors. * Improvement to Beam projection: before falling back to barcodes 1 & 2, try a manual search for status=4 particles. Based on a patch from Andrii Verbytskyi. 2017-06-05 Andy Buckley * Add CMS_2016_I1430892: dilepton channel ttbar charge asymmetry analysis. * Add CMS_2016_I1413748: dilepton channel ttbar spin correlations and polarisation analysis. * Add CMS_2017_I1518399: leading jet mass for boosted top quarks at 8 TeV. * Add convenience constructors for ChargedLeptons projection. 2017-06-03 Andy Buckley * Add FinalState and Cut (optional) constructor arguments and usage to DISFinalState. Thanks to Andrii Verbytskyi for the idea and initial patch. 2017-05-23 Andy Buckley * Add ATLAS_2016_I1448301, Z/gamma cross section measurement at 8 TeV. * Add ATLAS_2016_I1426515, WW production at 8 TeV. 2016-05-19 Holger Schulz * Add BELLE measurement of semileptonic B0bar -> D*+ ell nu decays. I took the liberty to correct the data in the sense that I take the bin widhts into account in the normalisation. BELLE_2017_I1512299. This is a nice analysis as it probes the hadronic and the leptonic side of the decay so very valuable for model building and of course it is rare as it is an unfolded B measurement. 2016-05-17 Holger Schulz * Add ALEPH measurement of hadronic tau decays, ALEPH_2014_I1267648. * Add ALEPH dimuon invariant mass (OS and SS) analysis, ALEPH_2016_I1492968 * The latter needed GENKTEE FastJet algorithm so I added that FastJets * Protection against logspace exception in histobooking of MC_JetAnalysis * Fix compiler complaints about uninitialised variable in OPAL_2004. 2016-05-16 Holger Schulz * Tidy ALEPH_1999 charm fragmentation analysis and normalise to data integral. Added DSTARPLUS and DSTARMINUS to PID. 2017-05-16 Andy Buckley * Add ATLAS_2016_CONF_2016_092, inclusive jet cross sections using early 13 TeV data. * Add ATLAS_2017_I1591327, isolated diphoton + X differential cross-sections. * Add ATLAS_2017_I1589844, ATLAS_2017_I1589844_EL, ATLAS_2017_I1589844_MU: kT splittings in Z events at 8 TeV. * Add ATLAS_2017_I1509919, track-based underlying event at 13 TeV in ATLAS. * Add ATLAS_2016_I1492320_2l2j and ATLAS_2016_I1492320_3l, the WWW cross-section at 8 TeV. 2017-05-12 Andy Buckley * Add ATLAS_2016_I1449082, charge asymmetry in top quark pair production in dilepton channel. * Add ATLAS_2015_I1394865, inclusive 4-lepton/ZZ lineshape. 2017-05-11 Andy Buckley * Add ATLAS_2013_I1234228, high-mass Drell-Yan at 7 TeV. 2017-05-10 Andy Buckley * Add CMS_2017_I1519995, search for new physics with dijet angular distributions in proton-proton collisions at sqrt{(s) = 13 TeV. * Add CMS_2017_I1511284, inclusive energy spectrum in the very forward direction in proton-proton collisions at 13 TeV. * Add CMS_2016_I1486238, studies of 2 b-jet + 2 jet production in proton-proton collisions at 7 TeV. * Add CMS_2016_I1454211, boosted ttbar in pp collisions at sqrtS = 8 TeV. * Add CMS_2016_I1421646, CMS azimuthal decorrelations at 8 TeV. 2017-05-09 Andy Buckley * Add CMS_2015_I1380605, per-event yield of the highest transverse momentum charged particle and charged-particle jet. * Add CMS_2015_I1370682_PARTON, a partonic-top version of the CMS 7 TeV pseudotop ttbar differential cross-section analysis. * Adding EHS_1988_I265504 from Felix Riehn: charged-particle production in K+ p, pi+ p and pp interactions at 250 GeV/c. * Fix ALICE_2012_I1116147 for pi0 and Lambda feed-down. 2017-05-08 Andy Buckley * Add protection against leptons from QED FSR photon conversions in assigning PartonicTop decay modes. Thanks to Markus Seidel for the report and suggested fix. * Reimplement FastJets methods in terms of new static helper functions. * Add new mkClusterInputs, mkJet and mkJets static methods to FastJets, to help with direct calls to FastJet where particle lookup for constituents and ghost tags are required. * Fix Doxygen config and Makefile target to allow working with out-of-source builds. Thanks to Christian Holm Christensen. * Improve DISLepton for HERA analyses: thanks to Andrii Verbytskyi for the patch! 2017-03-30 Andy Buckley * Replace non-template Analysis::refData functions with C++11 default T=Scatter2D. 2017-03-29 Andy Buckley * Allow yes/no and true/false values for LogX, etc. plot options. * Add --errs as an alias for --mc-errs to rivet-mkhtml and rivet-cmphistos. 2017-03-08 Peter Richardson * Added 6 analyses AMY_1990_I295160, HRS_1986_I18502, JADE_1983_I190818, PLUTO_1980_I154270, TASSO_1989_I277658, TPC_1987_I235694 for charged multiplicity in e+e- at CMS energies below the Z pole * Added 2 analyses for charged multiplicity at the Z pole DELPHI_1991_I301657, OPAL_1992_I321190 * Updated ALEPH_1991_S2435284 to plot the average charged multiplcity * Added analyses OPAL_2004_I631361, OPAL_2004_I631361_qq, OPAL_2004_I648738 for gluon jets in e+e-, most need fictitious e+e- > g g process 2017-03-29 Andy Buckley * Add Cut and functor selection args to HeavyHadrons accessor methods. 2017-03-03 Andy Buckley * bin/rivet-mkanalysis: Add FastJets.hh include by default -- it's almost always used. 2017-03-02 Andy Buckley * src/Analyses/CMS_2016_I1473674.cc: Patch from CMS to use partonic tops. * src/Analyses/CMS_2015_I1370682.cc: Patch to inline jet finding from CMS. 2017-03-01 Andy Buckley * Convert DressedLeptons use of fromDecay to instead veto photons that match fromHadron() || fromHadronicTau() -- meaning that electrons and muons from leptonic taus will now be dressed. * Move Particle and Jet std::function aliases to .fhh files, and replace many uses of templates for functor arguments with ParticleSelector meta-types instead. * Move the canonical implementations of hasAncestorWith, etc. and isLastWith, etc. from ParticleUtils.hh into Particle. * Disable the event-to-event beam consistency check if the ignore-beams mode is active. 2017-02-27 Andy Buckley * Add BoolParticleAND, BoolJetOR, etc. functor combiners to Tools/ParticleUtils.hh and Tools/JetUtils.hh. 2017-02-24 Andy Buckley * Mark ATLAS_2016_CONF_2016_078 and CMS_2016_PAS_SUS_16_14 analyses as validated, since their cutflows match the documentation. 2017-02-22 Andy Buckley * Add aggregate signal regions to CMS_2016_PAS_SUS_16_14. 2017-02-18 Andy Buckley * Add getEnvParam function, for neater use of environment variable parameters with a required default. 2017-02-05 Andy Buckley * Add HasBTag and HasCTag jet functors, with lower-case aliases. 2017-01-18 Andy Buckley * Use std::function in functor-expanded method signatures on JetAlg. 2017-01-16 Andy Buckley * Convert FinalState particles() accessors to use std::function rather than a template arg for sorting, and add filtering functor support -- including a mix of filtering and sorting functors. Yay for C++11! * Add ParticleEffFilter and JetEffFilter constructors from a double (encoding constant efficiency). * Add Vector3::abseta() 2016-12-13 Andy Buckley * Version 2.5.3 release. 2016-12-12 Holger Schulz * Add cut in BZ calculation in OPAL 4 jet analysis. Paper is not clear about treatment of parallel vectors, leads to division by zero and nan-fill and subsequent YODA RangeError (OPAL_2001_S4553896) 2016-12-12 Andy Buckley * Fix bugs in SmearedJets treatment of b & c tagging rates. * Adding ATLAS_2016_I1467454 analysis (high-mass Drell-Yan at 8 TeV) * Tweak to 'convert' call to improve the thumbnail quality from rivet-mkhtml/make-plots. 2016-12-07 Andy Buckley * Require Cython 0.24 or later. 2016-12-02 Andy Buckley * Adding L3_2004_I652683 (LEP 1 & 2 event shapes) and LHCB_2014_I1262703 (Z+jet at 7 TeV). * Adding leading dijet mass plots to MC_JetAnalysis (and all derived classes). Thanks to Chris Gutschow! * Adding CMS_2012_I1298807 (ZZ cross-section at 8 TeV), CMS_2016_I1459051 (inclusive jet cross-sections at 13 TeV) and CMS_PAS_FSQ_12_020 (preliminary 7 TeV leading-track underlying event). * Adding CDF_2015_1388868 (ppbar underlying event at 300, 900, and 1960 GeV) * Adding ATLAS_2016_I1467230 (13 TeV min bias), ATLAS_2016_I1468167 (13 TeV inelastic pp cross-section), and ATLAS_2016_I1479760 (7 TeV pp double-parton scattering with 4 jets). 2016-12-01 Andy Buckley * Adding ALICE_2012_I1116147 (eta and pi0 pTs and ratio) and ATLAS_2011_I929691 (7 TeV jet frag) 2016-11-30 Andy Buckley * Fix bash bugs in rivet-buildplugin, including fixing the --cmd mode. 2016-11-28 Andy Buckley * Add LHC Run 2 BSM analyses ATLAS_2016_CONF_2016_037 (3-lepton and same-sign 2-lepton), ATLAS_2016_CONF_2016_054 (1-lepton + jets), ATLAS_2016_CONF_2016_078 (ICHEP jets + MET), ATLAS_2016_CONF_2016_094 (1-lepton + many jets), CMS_2013_I1223519 (alphaT + b-jets), and CMS_2016_PAS_SUS_16_14 (jets + MET). * Provide convenience reversed-argument versions of apply and declare methods, to allow presentational choice of declare syntax in situations where the projection argument is very long, and reduce requirements on the user's memory since this is one situation in Rivet where there is no 'most natural' ordering choice. 2016-11-24 Andy Buckley * Adding pTvec() function to 4-vectors and ParticleBase. * Fix --pwd option of the rivet script 2016-11-21 Andy Buckley * Add weights and scaling to Cutflow/s. 2016-11-19 Andy Buckley * Add Et(const ParticleBase&) unbound function. 2016-11-18 Andy Buckley * Fix missing YAML quote mark in rivet-mkanalysis. 2016-11-15 Andy Buckley * Fix constness requirements on ifilter_select() and Particle/JetEffFilter::operator(). * src/Analyses/ATLAS_2016_I1458270.cc: Fix inverted particle efficiency filtering. 2016-10-24 Andy Buckley * Add rough ATLAS and CMS photon reco efficiency functions from Delphes (ATLAS and CMS versions are identical, hmmm) 2016-10-12 Andy Buckley * Tidying/fixing make-plots custom z-ticks code. Thanks to Dmitry Kalinkin. 2016-10-03 Holger Schulz * Fix SpiresID -> InspireID in some analyses (show-analysis pointed to non-existing web page) 2016-09-29 Holger Schulz * Add Luminosity_fb to AnalysisInfo * Added some keywords and Lumi to ATLAS_2016_I1458270 2016-09-28 Andy Buckley * Merge the ATLAS and CMS from-Delphes electron and muon tracking efficiency functions into generic trkeff functions -- this is how it should be. * Fix return type typo in Jet::bTagged(FN) templated method. * Add eta and pT cuts to ATLAS truth b-jet definition. * Use rounding rather than truncation in Cutflow percentage efficiency printing. 2016-09-28 Frank Siegert * make-plots bugfix in y-axis labels for RatioPlotMode=deviation 2016-09-27 Andy Buckley * Add vector and scalar pT (rather than Et) to MissingMomentum. 2016-09-27 Holger Schulz * Analysis keyword machinery * rivet -a @semileptonic * rivet -a @semileptonic@^bdecays -a @semileptonic@^ddecays 2016-09-22 Holger Schulz * Release version 2.5.2 2016-09-21 Andy Buckley * Add a requirement to DressedLeptons that the FinalState passed as 'bareleptons' will be filtered to only contain charged leptons, if that is not already the case. Thanks to Markus Seidel for the suggestion. 2016-09-21 Holger Schulz * Add Simone Amoroso's plugin for hadron spectra (ALEPH_1995_I382179) * Add Simone Amoroso's plugin for hadron spectra (OPAL_1993_I342766) 2016-09-20 Holger Schulz * Add CMS ttbar analysis from contrib, mark validated (CMS_2016_I1473674) * Extend rivet-mkhtml --booklet to also work with pdfmerge 2016-09-20 Andy Buckley * Fix make-plots automatic YMax calculation, which had a typo from code cleaning (mea culpa!). * Fix ChargedLeptons projection, which failed to exclude neutrinos!!! Thanks to Markus Seidel. * Add templated FN filtering arg versions of the Jet::*Tags() and Jet::*Tagged() functions. 2016-09-18 Andy Buckley * Add CMS partonic top analysis (CMS_2015_I1397174) 2016-09-18 Holger Schulz * Add L3 xp analysis of eta mesons, thanks Simone (L3_1992_I336180) * Add D0 1.8 TeV jet shapes analysis, thanks Simone (D0_1995_I398175) 2016-09-17 Andy Buckley * Add has{Ancestor,Parent,Child,Descendant}With functions and HasParticle{Ancestor,Parent,Child,Descendant}With functors. 2016-09-16 Holger Schulz * Add ATLAS 8TeV ttbar analysis from contrib (ATLAS_2015_I1404878) 2016-09-16 Andy Buckley * Add particles(GenParticlePtr) to RivetHepMC.hh * Add hasParent, hasParentWith, and hasAncestorWith to Particle. 2016-09-15 Holger Schulz * Add ATLAS 8TeV dijet analysis from contrib (ATLAS_2015_I1393758) * Add ATLAS 8TeV 'number of tracks in jets' analysis from contrib (ATLAS_2016_I1419070) * Add ATLAS 8TeV g->H->WW->enumunu analysis from contrib (ATLAS_2016_I1444991) 2016-09-14 Holger Schulz * Explicit std::toupper and std::tolower to make clang happy 2016-09-14 Andy Buckley * Add ATLAS Run 2 0-lepton SUSY and monojet search papers (ATLAS_2016_I1452559, ATLAS_2016_I1458270) 2016-09-13 Andy Buckley * Add experimental Cutflow and Cutflows objects for BSM cut tracking. * Add 'direct' versions of any, all, none to Utils.hh, with an implicity bool() transforming function. 2016-09-13 Holger Schulz * Add and mark validated B+ to omega analysis (BABAR_2013_I1116411) * Add and mark validated D0 to pi- analysis (BABAR_2015_I1334693) * Add a few more particle names and use PID names in recently added analyses * Add Simone's OPAL b-frag analysis (OPAL_2003_I599181) after some cleanup and heavy usage of new features * Restructured DELPHI_2011_I890503 in the same manner --- picks up a few more B-hadrons now (e.g. 20523 and such) * Clean up and add ATLAS 8TeV MinBias (from contrib ATLAS_2016_I1426695) 2016-09-12 Andy Buckley * Add a static constexpr DBL_NAN to Utils.hh for convenience, and move some utils stuff out of MathHeader.hh 2016-09-12 Holger Schulz * Add count function to Tools/Utils.h * Add and mark validated B0bar and Bminus-decay to pi analysis (BELLE_2013_I1238273) * Add and mark validated B0-decay analysis (BELLE_2011_I878990) * Add and mark validated B to D decay analysis (BELLE_2011_I878990) 2016-09-08 Andy Buckley * Add C-array version of multi-target Analysis::scale() and normalize(), and fix (semantic) constness. * Add == and != operators for cuts applied to integers. * Add missing delta{Phi,Eta,Rap}{Gtr,Less} functors to ParticleBaseUtils.hh 2016-09-07 Andy Buckley * Add templated functor filtering args to the Particle parent/child/descendent methods. 2016-09-06 Andy Buckley * Add ATLAS Run 1 medium and tight electron ID efficiency functions. * Update configure scripts to use newer (Py3-safe) Python testing macros. 2016-09-02 Andy Buckley * Add isFirstWith(out), isLastWith(out) functions, and functor wrappers, using Cut and templated function/functor args. * Add Particle::parent() method. * Add using import/typedef of HepMC *Ptr types (useful step for HepMC 2.07 and 3.00). * Various typo fixes (and canonical renaming) in ParticleBaseUtils functor collection. * Add ATLAS MV2c10 and MV2c20 b-tagging effs to SmearingFunctions.hh collection. 2016-09-01 Andy Buckley * Add a PartonicTops projection. * Add overloaded versions of the Event::allParticles() method with selection Cut or templated selection function arguments. 2016-08-25 Andy Buckley * Add rapidity scheme arg to DeltaR functor constructors. 2016-08-23 Andy Buckley * Provide an Analysis::bookCounter(d,x,y, title) function, for convenience and making the mkanalysis template valid. * Improve container utils functions, and provide combined remove_if+erase filter_* functions for both select- and discard-type selector functions. 2016-08-22 Holger Schulz * Bugfix in rivet-mkhtml (NoneType: ana.spiresID() --> spiresid) * Added include to Rivet/Tools/Utils.h to make gcc6 happy 2016-08-22 Andy Buckley * Add efffilt() functions and Particle/JetEffFilt functors to SmearingFunctions.hh 2016-08-20 Andy Buckley * Adding filterBy methods for Particle and Jet which accept generic boolean functions as well as the Cut specialisation. 2016-08-18 Andy Buckley * Add a Jet::particles(Cut&) method, for inline filtering of jet constituents. * Add 'conjugate' behaviours to container head and tail functions via negative length arg values. 2016-08-15 Andy Buckley * Add convenience headers for including all final-state and smearing projections, to save user typing. 2016-08-12 Andy Buckley * Add standard MET functions for ATLAS R1 (and currently copies for R2 and CMS). * Add lots of vector/container helpers for e.g. container slicing, summing, and min/max calculation. * Adapt SmearedMET to take *two* arguments, since SET is typically used to calculate MET resolution. * Adding functors for computing vector & ParticleBase differences w.r.t. another vector. 2016-08-12 Holger Schulz * Implemented a few more cuts in prompt photon analysis (CDF_1993_S2742446) but to no avail, the rise of the data towards larger costheta values cannot be reproduced --- maybe this is a candidate for more scrutiny and using the boosting machinery such that the c.m. cuts can be done in a non-approximate way 2016-08-11 Holger Schulz * Rename CDF_2009_S8383952 to CDF_2009_I856131 due to invalid Spires entry. * Add InspireID to all analysis known by their Spires key 2016-08-09 Holger Schulz * Release 2.5.1 2016-08-08 Andy Buckley * Add a simple MC_MET analysis for out-of-the-box MET distribution testing. 2016-08-08 Holger Schulz * Add DELPHI_2011_I890503 b-quark fragmentation function measurement, which superseded DELPHI_2002_069_CONF_603. The latter is marked OBSOLETE. 2016-08-05 Holger Schulz * Use Jet mass and energy smearing in CDF_1997_... six-jet analysis, mark validated. * Mark CDF_2001_S4563131 validated * D0_1996_S3214044 --- cut on jet Et rather than pT, fix filling of costheta and theta plots, mark validated. Concerning the jet algorithm, I tried with the implementation of fastjet fastjet/D0RunIConePlugin.hh but that really does not help. * D0_1996_S3324664 --- fix normalisations, sorting jets properly now, cleanup and mark validated. 2016-08-04 Holger Schulz * Use Jet mass and energy smearing in CDF_1996_S310 ... jet properties analysis. Cleanup analysis and mark validated. Added some more run info. The same for CDF_1996_S334... (pretty much the same cuts, different observables). * Minor fixes in SmearedJets projection 2016-08-03 Andy Buckley * Protect SmearedJets against loss of tagging information if a momentum smearing function is used (rather than a dedicated Jet smearing fn) via implicit casts. 2016-08-02 Andy Buckley * Add SmearedMET projection, wrapping MissingMomentum. * Include base truth-level projections in SmearedParticles/Jets compare() methods. 2016-07-29 Andy Buckley * Rename TOTEM_2012_002 to proper TOTEM_2012_I1220862 name. * Remove conditional building of obsolete, preliminary and unvalidated analyses. Now always built, since there are sufficient warnings. 2016-07-28 Holger Schulz * Mark D0_2000... W pT analysis validated * Mark LHCB_2011_S919... phi meson analysis validated 2016-07-25 Andy Buckley * Add unbound accessors for momentum properties of ParticleBase objects. * Add Rivet/Tools/ParticleBaseUtils.hh to collect tools like functors for particle & jet filtering. * Add vector versions of Analysis::scale() and ::normalize(), for batched scaling. * Add Analysis::scale() and Analysis::divide() methods for Counter types. * Utils.hh: add a generic sum() function for containers, and use auto in loop to support arrays. * Set data path as well as lib path in scripts with --pwd option, and use abs path to $PWD. * Add setAnalysisDataPaths and addAnalysisDataPath to RivetPaths.hh/cc and Python. * Pass absolutized RIVET_DATA_PATH from rivet-mkhtml to rivet-cmphistos. 2016-07-24 Holger Schulz * Mark CDF_2008_S77... b jet shapes validated * Added protection against low stats yoda exception in finalize for that analysis 2016-07-22 Andy Buckley * Fix newly introduced bug in make-plots which led to data point markers being skipped for all but the last bin. 2016-07-21 Andy Buckley * Add pid, abspid, charge, abscharge, charge3, and abscharge3 Cut enums, handled by Particle cut targets. * Add abscharge() and abscharge3() methods to Particle. * Add optional Cut and duplicate-removal flags to Particle children & descendants methods. * Add unbound versions of Particle is* and from* methods, for easier functor use. * Add Particle::isPrompt() as a member rather than unbound function. * Add protections against -ve mass from numerical precision errors in smearing functions. 2016-07-20 Andy Buckley * Move several internal system headers into the include/Rivet/Tools directory. * Fix median-computing safety logic in ATLAS_2010_S8914702 and tidy this and @todo markers in several similar analyses. * Add to_str/toString and stream functions for Particle, and a bit of Particle util function reorganisation. * Add isStrange/Charm/Bottom PID and Particle functions. * Add RangeError exception throwing from MathUtils.hh stats functions if given empty/mismatched datasets. * Add Rivet/Tools/PrettyPrint.hh, based on https://louisdx.github.io/cxx-prettyprint/ * Allow use of path regex group references in .plot file keyed values. 2016-07-20 Holger Schulz * Fix the --nskip behaviour on the main rivet script. 2016-07-07 Andy Buckley * Release version 2.5.0 2016-07-01 Andy Buckley * Fix pandoc interface flag version detection. 2016-06-28 Andy Buckley * Release version 2.4.3 * Add ATLAS_2016_I1468168 early ttbar fully leptonic fiducial cross-section analysis at 13 TeV. 2016-06-21 Andy Buckley * Add ATLAS_2016_I1457605 inclusive photon analysis at 8 TeV. 2016-06-15 Andy Buckley * Add a --show-bibtex option to the rivet script, for convenient outputting of a BibTeX db for the used analyses. 2016-06-14 Andy Buckley * Add and rename 4-vector boost calculation methods: new methods beta, betaVec, gamma & gammaVec are now preferred to the deprecated boostVector method. 2016-06-13 Andy Buckley * Add and use projection handling methods declare(proj, pname) and apply(evt, pname) rather than the longer and explicitly 'projectiony' addProjection & applyProjection. * Start using the DEFAULT_RIVET_ANALYSIS_CTOR macro (newly created preferred alias to long-present DEFAULT_RIVET_ANA_CONSTRUCTOR) * Add a DEFAULT_RIVET_PROJ_CLONE macro for implementing the clone() method boiler-plate code in projections. 2016-06-10 Andy Buckley * Add a NonPromptFinalState projection, and tweak the PromptFinalState and unbound Particle functions a little in response. May need some more finessing. * Add user-facing aliases to ProjectionApplier add, get, and apply methods... the templated versions of which can now be called without using the word 'projection', which makes the function names a bit shorter and pithier, and reduces semantic repetition. 2016-06-10 Andy Buckley * Adding ATLAS_2015_I1397635 Wt at 8 TeV analysis. * Adding ATLAS_2015_I1390114 tt+b(b) at 8 TeV analysis. 2016-06-09 Andy Buckley * Downgrade some non-fatal error messages from ERROR to WARNING status, because *sigh* ATLAS's software treats any appearance of the word 'ERROR' in its log file as a reason to report the job as failed (facepalm). 2016-06-07 Andy Buckley * Adding ATLAS 13 TeV minimum bias analysis, ATLAS_2016_I1419652. 2016-05-30 Andy Buckley * pyext/rivet/util.py: Add pandoc --wrap/--no-wrap CLI detection and batch conversion. * bin/rivet: add -o as a more standard 'output' option flag alias to -H. 2016-05-23 Andy Buckley * Remove the last ref-data bin from table 16 of ATLAS_2010_S8918562, due to data corruption. The corresponding HepData record will be amended by ATLAS. 2016-05-12 Holger Schulz * Mark ATLAS_2012_I1082009 as validated after exhaustive tests with Pythia8 and Sherpa in inclusive QCD mode. 2016-05-11 Andy Buckley * Specialise return error codes from the rivet script. 2016-05-11 Andy Buckley * Add Event::allParticles() to provide neater (but not *helpful*) access to Rivet-wrapped versions of the raw particles in the Event::genEvent() record, and hence reduce HepMC digging. 2016-05-05 Andy Buckley * Version 2.4.2 release! * Update SLD_2002_S4869273 ref data to match publication erratum, now updated in HepData. Thanks to Peter Skands for the report and Mike Whalley / Graeme Watt for the quick fix and heads-up. 2016-04-27 Andy Buckley * Add CMS_2014_I1305624 event shapes analysis, with standalone variable calculation struct embedded in an unnamed namespace. 2016-04-19 Andy Buckley * Various clean-ups and fixes in ATLAS analyses using isolated photons with median pT density correction. 2016-04-18 Andy Buckley * Add transformBy(LT) methods to Particle and Jet. * Add mkObjectTransform and mkFrameTransform factory methods to LorentzTransform. 2016-04-17 Andy Buckley * Add null GenVertex protection in Particle children & descendants methods. 2016-04-15 Andy Buckley * Add ATLAS_2015_I1397637, ATLAS 8 TeV boosted top cross-section vs. pT 2016-04-14 Andy Buckley * Add a --no-histos argument to the rivet script. 2016-04-13 Andy Buckley * Add ATLAS_2015_I1351916 (8 TeV Z FB asymmetry) and ATLAS_2015_I1408516 (8 TeV Z phi* and pT) analyses, and their _EL, _MU variants. 2016-04-12 Andy Buckley * Patch PID utils for ordering issues in baryon decoding. 2016-04-11 Andy Buckley * Actually implement ZEUS_2001_S4815815... only 10 years late! 2016-04-08 Andy Buckley * Add a --guess-prefix flag to rivet-config, cf. fastjet-config. * Add RIVET_DATA_PATH variable and related functions in C++ and Python as a common first-fallback for RIVET_REF_PATH, RIVET_INFO_PATH, and RIVET_PLOT_PATH. * Add --pwd options to rivet-mkhtml and rivet-cmphistos 2016-04-07 Andy Buckley * Remove implicit conventional event rotation for HERA -- this needs to be done explicitly from now. * Add comBoost functions and methods to Beam.hh, and tidy LorentzTransformation. * Restructure Beam projection functions for beam particle and sqrtS extraction, and add asqrtS functions. * Rename and improve PID and Particle Z,A,lambda functions -> nuclZ,nuclA,nuclNlambda. 2016-04-05 Andy Buckley * Improve binIndex function, with an optional argument to allow overflow lookup, and add it to testMath. * Adding setPE, setPM, setPtEtaPhiM, etc. methods and corresponding mk* static methods to FourMomentum, as well as adding more convenience aliases and vector attributes for completeness. Coordinate conversion functions taken from HEPUtils::P4. New attrs also mapped to ParticleBase. 2016-03-29 Andy Buckley * ALEPH_1996_S3196992.cc, ATLAS_2010_S8914702.cc, ATLAS_2011_I921594.cc, ATLAS_2011_S9120807.cc, ATLAS_2012_I1093738.cc, ATLAS_2012_I1199269.cc, ATLAS_2013_I1217867.cc, ATLAS_2013_I1244522.cc, ATLAS_2013_I1263495.cc, ATLAS_2014_I1307756.cc, ATLAS_2015_I1364361.cc, CDF_2008_S7540469.cc, CMS_2015_I1370682.cc, MC_JetSplittings.cc, STAR_2006_S6870392.cc: Updates for new FastJets interface, and other cleaning. * Deprecate 'standalone' FastJets constructors -- they are misleading. * More improvements around jets, including unbound conversion and filtering routines between collections of Particles, Jets, and PseudoJets. * Place 'Cut' forward declaration in a new Cuts.fhh header. * Adding a Cuts::OPEN extern const (a bit more standard- and constant-looking than Cuts::open()) 2016-03-28 Andy Buckley * Improvements to FastJets constructors, including specification of optional AreaDefinition as a constructor arg, disabling dodgy no-FS constructors which I suspect don't work properly in the brave new world of automatic ghost tagging, using a bit of judicious constructor delegation, and completing/exposing use of shared_ptr for internal memory management. 2016-03-26 Andy Buckley * Remove Rivet/Tools/RivetBoost.hh and Boost references from rivet-config, rivet-buildplugin, and configure.ac. It's gone ;-) * Replace Boost assign usage with C++11 brace initialisers. All Boost use is gone from Rivet! * Replace Boost lexical_cast and string algorithms. 2016-03-25 Andy Buckley * Bug-fix in semi-leptonic top selection of CMS_2015_I1370682. 2016-03-12 Andy Buckley * Allow multi-line major tick labels on make-plots linear x and y axes. Linebreaks are indicated by \n in the .dat file. 2016-03-09 Andy Buckley * Release 2.4.1 2016-03-03 Andy Buckley * Add a --nskip flag to the rivet command-line tool, to allow processing to begin in the middle of an event file (useful for batched processing of large files, in combination with --nevts) 2016-03-03 Holger Schulz * Add ATLAS 7 TeV event shapes in Z+jets analysis (ATLAS_2016_I1424838) 2016-02-29 Andy Buckley * Update make-plots to use multiprocessing rather than threading. * Add FastJets::trimJet method, thanks to James Monk for the suggestion and patch. * Add new preferred name PID::charge3 in place of PID::threeCharge, and also convenience PID::abscharge and PID::abscharge3 functions -- all derived from changes in external HEPUtils. * Add analyze(const GenEvent*) and analysis(string&) methods to AnalysisHandler, plus some docstring improvements. 2016-02-23 Andy Buckley * New ATLAS_2015_I1394679 analysis. * New MC_HHJETS analysis from Andreas Papaefstathiou. * Ref data updates for ATLAS_2013_I1219109, ATLAS_2014_I1312627, and ATLAS_2014_I1319490. * Add automatic output paging to 'rivet --show-analyses' 2016-02-16 Andy Buckley * Apply cross-section unit fixes and plot styling improvements to ATLAS_2013_I1217863 analyses, thanks to Christian Gutschow. * Fix to rivet-cmphistos to avoid overwriting RatioPlotYLabel if already set via e.g. the PLOT pseudo-file. Thanks to Johann Felix v. Soden-Fraunhofen. 2016-02-15 Andy Buckley * Add Analysis::bookCounter and some machinery in rivet-cmphistos to avoid getting tripped up by unplottable (for now) data types. * Add --font and --format options to rivet-mkhtml and make-plots, to replace the individual flags used for that purpose. Not fully cleaned up, but a necessary step. * Add new plot styling options to rivet-cmphistos and rivet-mkhtml. Thanks to Gavin Hesketh. * Modify rivet-cmphistos and rivet-mkhtml to apply plot hiding if *any* path component is hidden by an underscore prefix, as implemented in AOPath, plus other tidying using new AOPath methods. * Add pyext/rivet/aopaths.py, containing AOPath object for central & standard decoding of Rivet-standard analysis object path structures. 2016-02-12 Andy Buckley * Update ParticleIdUtils.hh (i.e. PID:: functions) to use the functions from the latest version of MCUtils' PIDUtils.h. 2016-01-15 Andy Buckley * Change rivet-cmphistos path matching logic from match to search (user can add explicit ^ marker if they want match semantics). 2015-12-20 Andy Buckley * Improve linspace (and hence also logspace) precision errors by using multiplication rather than repeated addition to build edge list (thanks to Holger Schulz for the suggestion). 2015-12-15 Andy Buckley * Add cmphistos and make-plots machinery for handling 'suffix' variations on plot paths, currently just by plotting every line, with the variations in a 70% faded tint. * Add Beam::pv() method for finding the beam interaction primary vertex 4-position. * Add a new Particle::setMomentum(E,x,y,z) method, and an origin position member which is automatically populated from the GenParticle, with access methods corresponding to the momentum ones. 2015-12-10 Andy Buckley * make-plots: improve custom tick attribute handling, allowing empty lists. Also, any whitespace now counts as a tick separator -- explicit whitespace in labels should be done via ~ or similar LaTeX markup. 2015-12-04 Andy Buckley * Pro-actively use -m/-M arguments when initially loading histograms in mkhtml, *before* passing them to cmphistos. 2015-12-03 Andy Buckley * Move contains() and has_key() functions on STL containers from std to Rivet namespaces. * Adding IsRef attributes to all YODA refdata files; this will be used to replace the /REF prefix in Rivet v3 onwards. The migration has also removed leading # characters from BEGIN/END blocks, as per YODA format evolution: new YODA versions as required by current Rivet releases are able to read both the old and new formats. 2015-12-02 Andy Buckley * Add handling of a command-line PLOT 'file' argument to rivet-mkhtml, cf. rivet-cmphistos. * Improvements to rivet-mkhtml behaviour re. consistency with rivet-cmphistos in how muti-part histo paths are decomposed into analysis-name + histo name, and removal of 'NONE' strings. 2015-11-30 Andy Buckley * Relax rivet/plotinfo.py pattern matching on .plot file components, to allow leading whitespace and around = signs, and to make the leading # optional on BEGIN/END blocks. 2015-11-26 Andy Buckley * Write out intermediate histogram files by default, with event interval of 10k. 2015-11-25 Andy Buckley * Protect make-plots against lock-up due to partial pstricks command when there are no data points. 2015-11-17 Andy Buckley * rivet-cmphistos: Use a ratio label that doesn't mention 'data' when plotting MC vs. MC. 2015-11-12 Andy Buckley * Tweak plot and subplot sizing defaults in make-plots so the total canvas is always the same size by default. 2015-11-10 Andy Buckley * Handle 2D histograms better in rivet-cmphistos (since they can't be overlaid) 2015-11-05 Andy Buckley * Allow comma-separated analysis name lists to be passed to a single -a/--analysis/--analyses option. * Convert namespace-global const variables to be static, to suppress compiler warnings. * Use standard MAX_DBL and MAX_INT macros as a source for MAXDOUBLE and MAXINT, to suppress GCC5 warnings. 2015-11-04 Holger Schulz * Adding LHCB inelastic xsection measurement (LHCB_2015_I1333223) * Adding ATLAS colour flow in ttbar->semileptonic measurement (ATLAS_2015_I1376945) 2015-10-07 Chris Pollard * Release 2.4.0 2015-10-06 Holger Schulz * Adding CMS_2015_I1327224 dijet analysis (Mjj>2 TeV) 2015-10-03 Holger Schulz * Adding CMS_2015_I1346843 Z+gamma 2015-09-30 Andy Buckley * Important improvement in FourVector & FourMomentum: new reverse() method to return a 4-vector in which only the spatial component has been inverted cf. operator- which flips the t/E component as well. 2015-09-28 Holger Schulz * Adding D0_2000_I503361 ZPT at 1800 GeV 2015-09-29 Chris Pollard * Adding ATLAS_2015_CONF_2015_041 2015-09-29 Chris Pollard * Adding ATLAS_2015_I1387176 2015-09-29 Chris Pollard * Adding ATLAS_2014_I1327229 2015-09-28 Chris Pollard * Adding ATLAS_2014_I1326641 2015-09-28 Holger Schulz * Adding CMS_2013_I1122847 FB assymetry in DY analysis 2015-09-28 Andy Buckley * Adding CMS_2015_I1385107 LHA pp 2.76 TeV track-jet underlying event. 2015-09-27 Andy Buckley * Adding CMS_2015_I1384119 LHC Run 2 minimum bias dN/deta with no B field. 2015-09-25 Andy Buckley * Adding TOTEM_2014_I1328627 forward charged density in eta analysis. 2015-09-23 Andy Buckley * Add CMS_2015_I1310737 Z+jets analysis. * Allow running MC_{W,Z}INC, MC_{W,Z}JETS as separate bare lepton analyses. 2015-09-23 Andy Buckley * FastJets now allows use of FastJet pure ghosts, by excluding them from the constituents of Rivet Jet objects. Thanks to James Monk for raising the issue and providing a patch. 2015-09-15 Andy Buckley * More MissingMomentum changes: add optional 'mass target' argument when retrieving the vector sum as a 4-momentum, with the mass defaulting to 0 rather than sqrt(sum(E)^2 - sum(p)^2). * Require Boost 1.55 for robust compilation, as pointed out by Andrii Verbytskyi. 2015-09-10 Andy Buckley * Allow access to MissingMomentum projection via WFinder. * Adding extra methods to MissingMomentum, to make it more user-friendly. 2015-09-09 Andy Buckley * Fix factor of 2 in LHCB_2013_I1218996 normalisation, thanks to Felix Riehn for the report. 2015-08-20 Frank Siegert * Add function to ZFinder to retrieve all fiducial dressed leptons, e.g. to allow vetoing on a third one (proposed by Christian Gutschow). 2015-08-18 Andy Buckley * Rename xs and counter AOs to start with underscores, and modify rivet-cmphistos to skip AOs whose basenames start with _. 2015-08-17 Andy Buckley * Add writing out of cross-section and total event counter by default. Need to add some name protection to avoid them being plotted. 2015-08-16 Andy Buckley * Add templated versions of Analysis::refData() to use data types other than Scatter2DPtr, and convert the cached ref data store to generic AnalysisObjectPtrs to make it possible. 2015-07-29 Andy Buckley * Add optional Cut arguments to all the Jet tag methods. * Add exception handling and pre-emptive testing for a non-writeable output directory (based on patch from Lukas Heinrich). 2015-07-24 Andy Buckley * Version 2.3.0 release. 2015-07-02 Holger Schulz * Tidy up ATLAS higgs combination analysis. * Add ALICE kaon, pion analysis (ALICE_2015_I1357424) * Add ALICE strange baryon analysis (ALICE_2014_I1300380) * Add CDF ZpT measurement in Z->ee events analysis (CDF_2012_I1124333) * Add validated ATLAS W+charm measurement (ATLAS_2014_I1282447) * Add validated CMS jet and dijet analysis (CMS_2013_I1208923) 2015-07-01 Andy Buckley * Define a private virtual operator= on Projection, to block 'sliced' accidental value copies of derived class instances. * Add new muon-in-jet options to FastJet constructors, pass that and invisibles enums correctly to JetAlg, tweak the default strategies, and add a FastJets constructor from a fastjet::JetDefinition (while deprecating the plugin-by-reference constructor). 2015-07-01 Holger Schulz * Add D0 phi* measurement (D0_2015_I1324946). * Remove WUD and MC_PHOTONJETUE analyses * Don't abort ATLAS_2015_I1364361 if there is no stable Higgs print a warning instead and veto event 2015-07-01 Andy Buckley * Add all, none, from-decay muon filtering options to JetAlg and FastJets. * Rename NONPROMPT_INVISIBLES to DECAY_INVISIBLES for clarity & extensibility. * Remove FastJets::ySubJet, splitJet, and filterJet methods -- they're BDRS-paper-specific and you can now use the FastJet objects directly to do this and much more. * Adding InvisiblesStrategy to JetAlg, using it rather than a bool in the useInvisibles method, and updating FastJets to use this approach for its particle filtering and to optionally use the enum in the constructor arguments. The new default invisibles-using behaviour is to still exclude _prompt_ invisibles, and the default is still to exclude them all. Only one analysis (src/Analyses/STAR_2006_S6870392.cc) required updating, since it was the only one to be using the FastJets legacy seed_threshold constructor argument. * Adding isVisible method to Particle, taken from VisibleFinalState (which now uses this). 2015-06-30 Andy Buckley * Marking many old & superseded ATLAS analyses as obsolete. * Adding cmpMomByMass and cmpMomByAscMass sorting functors. * Bump version to 2.3.0 and require YODA > 1.4.0 (current head at time of development). 2015-06-08 Andy Buckley * Add handling of -m/-M flags on rivet-cmphistos and rivet-mkhtml, moving current rivet-mkhtml -m/-M to -a/-A (for analysis name pattern matching). Requires YODA head (will be YODA 1.3.2 of 1.4.0). * src/Analyses/ATLAS_2015_I1364361.cc: Now use the built-in prompt photon selecting functions. * Tweak legend positions in MC_JETS .plot file. * Add a bit more debug output from ZFinder and WFinder. 2015-05-24 Holger Schulz * Normalisation discussion concerning ATLAS_2014_I1325553 is resolved. Changed YLabel accordingly. 2015-05-19 Holger Schulz * Add (preliminary) ATLAS combined Higgs analysis (ATLAS_2015_I1364361). Data will be updated and more histos added as soon as paper is published in journal. For now using data taken from public ressource https://atlas.web.cern.ch/Atlas/GROUPS/PHYSICS/PAPERS/HIGG-2014-11/ 2015-05-19 Peter Richardson * Fix ATLAS_2014_I1325553 normalisation of histograms was wrong by factor of two |y| vs y problem 2015-05-01 Andy Buckley * Fix MC_HJETS/HINC/HKTSPLITTINGS analyses to (ab)use the ZFinder with a mass range of 115-135 GeV and a mass target of 125 GeV (was previously 115-125 and mass target of mZ) 2015-04-30 Andy Buckley * Removing uses of boost::assign::list_of, preferring the existing comma-based assign override for now, for C++11 compatibility. * Convert MC_Z* analysis finalize methods to use scale() rather than normalize(). 2015-04-01 Holger Schulz * Add CMS 7 TeV rapidity gap analysis (CMS_2015_I1356998). * Remove FinalState Projection. 2015-03-30 Holger Schulz * Add ATLAS 7 TeV photon + jets analysis (ATLAS_2013_I1244522). 2015-03-26 Andy Buckley * Updates for HepMC 2.07 interface constness improvements. 2015-03-25 Holger Schulz * Add ATLAS double parton scattering in W+2j analysis (ATLAS_2013_I1216670). 2015-03-24 Andy Buckley * 2.2.1 release! 2015-03-23 Holger Schulz * Add ATLAS differential Higgs analysis (ATLAS_2014_I1306615). 2015-03-19 Chris Pollard * Add ATLAS V+gamma analyses (ATLAS_2013_I1217863) 2015-03-20 Andy Buckley * Adding ATLAS R-jets analysis i.e. ratios of W+jets and Z+jets observables (ATLAS_2014_I1312627 and _EL, _MU variants) * include/Rivet/Tools/ParticleUtils.hh: Adding same/oppSign and same/opp/diffCharge functions, operating on two Particles. * include/Rivet/Tools/ParticleUtils.hh: Adding HasAbsPID functor and removing optional abs arg from HasPID. 2015-03-19 Andy Buckley * Mark ATLAS_2012_I1083318 as VALIDATED and fix d25-x01-y02 ref data. 2015-03-19 Chris Pollard * Add ATLAS W and Z angular analyses (ATLAS_2011_I928289) 2015-03-19 Andy Buckley * Add LHCb charged particle multiplicities and densities analysis (LHCB_2014_I1281685) * Add LHCb Z y and phi* analysis (LHCB_2012_I1208102) 2015-03-19 Holger Schulz * Add ATLAS dijet analysis (ATLAS_2014_I1325553). * Add ATLAS Z pT analysis (ATLAS_2014_I1300647). * Add ATLAS low-mass Drell-Yan analysis (ATLAS_2014_I1288706). * Add ATLAS gap fractions analysis (ATLAS_2014_I1307243). 2015-03-18 Andy Buckley * Adding CMS_2014_I1298810 and CMS_2014_I1303894 analyses. 2015-03-18 Holger Schulz * Add PDG_TAUS analysis which makes use of the TauFinder. * Add ATLAS 'traditional' Underlying Event in Z->mumu analysis (ATLAS_2014_I1315949). 2015-03-18 Andy Buckley * Change UnstableFinalState duplicate resolution to use the last in a chain rather than the first. 2015-03-17 Holger Schulz * Update Taufinder to use decaytyoe (can be HADRONIC, LEPTONIC or ANY), in FastJet.cc --- set TauFinder mode to hadronic for tau-tagging 2015-03-16 Chris Pollard * Removed fuzzyEquals() from Vector3::angle() 2015-03-16 Andy Buckley * Adding Cuts-based constructor to PrimaryHadrons. * Adding missing compare() method to HeavyHadrons projection. 2015-03-15 Chris Pollard * Adding FinalPartons projection which selects the quarks and gluons immediately before hadronization 2015-03-05 Andy Buckley * Adding Cuts-based constructors and other tidying in UnstableFinalState and HeavyHadrons 2015-03-03 Andy Buckley * Add support for a PLOT meta-file argument to rivet-cmphistos. 2015-02-27 Andy Buckley * Improved time reporting. 2015-02-24 Andy Buckley * Add Particle::fromHadron and Particle::fromPromptTau, and add a boolean 'prompt' argument to Particle::fromTau. * Fix WFinder use-transverse-mass property setting. Thanks to Christian Gutschow. 2015-02-04 Andy Buckley * Add more protection against math domain errors with log axes. * Add some protection against nan-valued points and error bars in make-plots. 2015-02-03 Andy Buckley * Converting 'bitwise' to 'logical' Cuts combinations in all analyses. 2015-02-02 Andy Buckley * Use vector MET rather than scalar VET (doh...) in WFinder cut. Thanks to Ines Ochoa for the bug report. * Updating and tidying analyses with deprecation warnings. * Adding more Cuts/FS constructors for Charged,Neutral,UnstableFinalState. * Add &&, || and ! operators for without-parens-warnings Cut combining. Note these don't short-circuit, but this is ok since Cut comparisons don't have side-effects. * Add absetaIn, absrapIn Cut range definitions. * Updating use of sorted particle/jet access methods and cmp functors in projections and analyses. 2014-12-09 Andy Buckley * Adding a --cmd arg to rivet-buildplugin to allow the output paths to be sed'ed (to help deal with naive Grid distribution). For example BUILDROOT=`rivet-config --prefix`; rivet-buildplugin PHOTONS.cc --cmd | sed -e "s:$BUILDROOT:$SITEROOT:g" 2014-11-26 Andy Buckley * Interface improvements in DressedLeptons constructor. * Adding DEPRECATED macro to throw compiler deprecation warnings when using deprecated features. 2014-11-25 Andy Buckley * Adding Cut-based constructors, and various constructors with lists of PDG codes to IdentifiedFinalState. 2014-11-20 Andy Buckley * Analysis updates (ATLAS, CMS, CDF, D0) to apply the changes below. * Adding JetAlg jets(Cut, Sorter) methods, and other interface improvements for cut and sorted ParticleBase retrieval from JetAlg and ParticleFinder projections. Some old many-doubles versions removed, syntactic sugar sorting methods deprecated. * Adding Cuts::Et and Cuts::ptIn, Cuts::etIn, Cuts::massIn. * Moving FastJet includes, conversions, uses etc. into Tools/RivetFastJet.hh 2014-10-07 Andy Buckley * Fix a bug in the isCharmHadron(pid) function and remove isStrange* functions. 2014-09-30 Andy Buckley * 2.2.0 release! * Mark Jet::containsBottom and Jet::containsCharm as deprecated methods: use the new methods. Analyses updated. * Add Jet::bTagged(), Jet::cTagged() and Jet::tauTagged() as ghost-assoc-based replacements for the 'contains' tagging methods. 2014-09-17 Andy Buckley * Adding support for 1D and 3D YODA scatters, and helper methods for calling the efficiency, asymm and 2D histo divide functions. 2014-09-12 Andy Buckley * Adding 5 new ATLAS analyses: ATLAS_2011_I921594: Inclusive isolated prompt photon analysis with full 2010 LHC data ATLAS_2013_I1263495: Inclusive isolated prompt photon analysis with 2011 LHC data ATLAS_2014_I1279489: Measurements of electroweak production of dijets + $Z$ boson, and distributions sensitive to vector boson fusion ATLAS_2014_I1282441: The differential production cross section of the $\phi(1020)$ meson in $\sqrt{s}=7$ TeV $pp$ collisions measured with the ATLAS detector ATLAS_2014_I1298811: Leading jet underlying event at 7 TeV in ATLAS * Adding a median(vector) function and fixing the other stats functions to operate on vector rather than vector. 2014-09-03 Andy Buckley * Fix wrong behaviour of LorentzTransform with a null boost vector -- thanks to Michael Grosse. 2014-08-26 Andy Buckley * Add calc() methods to Hemispheres as requested, to allow it to be used with Jet or FourMomentum inputs outside the normal projection system. 2014-08-17 Andy Buckley * Improvements to the particles methods on ParticleFinder/FinalState, in particular adding the range of cuts arguments cf. JetAlg (and tweaking the sorted jets equivalent) and returning as a copy rather than a reference if cut/sorted to avoid accidentally messing up the cached copy. * Creating ParticleFinder projection base class, and moving Particles-accessing methods from FinalState into it. * Adding basic forms of MC_ELECTRONS, MC_MUONS, and MC_TAUS analyses. 2014-08-15 Andy Buckley * Version bump to 2.2.0beta1 for use at BOOST and MCnet school. 2014-08-13 Andy Buckley * New analyses: ATLAS_2014_I1268975 (high mass dijet cross-section at 7 TeV) ATLAS_2014_I1304688 (jet multiplicity and pT at 7 TeV) ATLAS_2014_I1307756 (scalar diphoton resonance search at 8 TeV -- no histograms!) CMSTOTEM_2014_I1294140 (charged particle pseudorapidity at 8 TeV) 2014-08-09 Andy Buckley * Adding PromptFinalState, based on code submitted by Alex Grohsjean and Will Bell. Thanks! 2014-08-06 Andy Buckley * Adding MC_HFJETS and MC_JETTAGS analyses. 2014-08-05 Andy Buckley * Update all analyses to use the xMin/Max/Mid, xMean, xWidth, etc. methods on YODA classes rather than the deprecated lowEdge etc. * Merge new HasPID functor from Holger Schulz into Rivet/Tools/ParticleUtils.hh, mainly for use with the any() function in Rivet/Tools/Utils.hh 2014-08-04 Andy Buckley * Add ghost tagging of charms, bottoms and taus to FastJets, and tag info accessors to Jet. * Add constructors from and cast operators to FastJet's PseudoJet object from Particle and Jet. * Convert inRange to not use fuzzy comparisons on closed intervals, providing old version as fuzzyInRange. 2014-07-30 Andy Buckley * Remove classifier functions accepting a Particle from the PID inner namespace. 2014-07-29 Andy Buckley * MC_JetAnalysis.cc: re-enable +- ratios for eta and y, now that YODA divide doesn't throw an exception. * ATLAS_2012_I1093734: fix a loop index error which led to the first bin value being unfilled for half the dphi plots. * Fix accidental passing of a GenParticle pointer as a PID code int in HeavyHadrons.cc. Effect limited to incorrect deductions about excited HF decay chains and should be small. Thanks to Tomasz Przedzinski for finding and reporting the issue during HepMC3 design work! 2014-07-23 Andy Buckley * Fix to logspace: make sure that start and end values are exact, not the result of exp(log(x)). 2014-07-16 Andy Buckley * Fix setting of library paths for doc building: Python can't influence the dynamic loader in its own process by setting an environment variable because the loader only looks at the variable once, when it starts. 2014-07-02 Andy Buckley * rivet-cmphistos now uses the generic yoda.read() function rather than readYODA() -- AIDA files can also be compared and plotted directly now. 2014-06-24 Andy Buckley * Add stupid missing include and std:: prefix in Rivet.hh 2014-06-20 Holger Schulz * bin/make-plots: Automatic generation of minor xtick labels if LogX is requested but data resides e.g. in [200, 700]. Fixes m_12 plots of, e.g. ATLAS_2010_S8817804 2014-06-17 David Grellscheid * pyext/rivet/Makefile.am: 'make distcheck' and out-of-source builds should work now. 2014-06-10 Andy Buckley * Fix use of the install command for bash completion installation on Macs. 2014-06-07 Andy Buckley * Removing direct includes of MathUtils.hh and others from analysis code files. 2014-06-02 Andy Buckley * Rivet 2.1.2 release! 2014-05-30 Andy Buckley * Using Particle absrap(), abseta() and abspid() where automatic conversion was feasible. * Adding a few extra kinematics mappings to ParticleBase. * Adding p3() accessors to the 3-momentum on FourMomentum, Particle, and Jet. * Using Jet and Particle kinematics methods directly (without momentum()) where possible. * More tweaks to make-plots 2D histo parsing behaviour. 2014-05-30 Holger Schulz * Actually fill the XQ 2D histo, .plot decorations. * Have make-plots produce colourmaps using YODA_3D_SCATTER objects. Remove the grid in colourmaps. * Some tweaks for the SFM analysis, trying to contact Martin Wunsch who did the unfolding back then. 2014-05-29 Holger Schulz * Re-enable 2D histo in MC_PDFS 2014-05-28 Andy Buckley * Updating analysis and project routines to use Particle::pid() by preference to Particle::pdgId(), and Particle::abspid() by preference to abs(Particle::pdgId()), etc. * Adding interfacing of smart pointer types and booking etc. for YODA 2D histograms and profiles. * Improving ParticleIdUtils and ParticleUtils functions based on merging of improved function collections from MCUtils, and dropping the compiled ParticleIdUtils.cc file. 2014-05-27 Andy Buckley * Adding CMS_2012_I1090423 (dijet angular distributions), CMS_2013_I1256943 (Zbb xsec and angular correlations), CMS_2013_I1261026 (jet and UE properties vs. Nch) and D0_2000_I499943 (bbbar production xsec and angular correlations). 2014-05-26 Andy Buckley * Fixing a bug in plot file handling, and adding a texpand() routine to rivet.util, to be used to expand some 'standard' physics TeX macros. * Adding ATLAS_2012_I1124167 (min bias event shapes), ATLAS_2012_I1203852 (ZZ cross-section), and ATLAS_2013_I1190187 (WW cross-section) analyses. 2014-05-16 Andy Buckley * Adding any(iterable, fn) and all(iterable, fn) template functions for convenience. 2014-05-15 Holger Schulz * Fix some bugs in identified hadron PIDs in OPAL_1998_S3749908. 2014-05-13 Andy Buckley * Writing out [UNVALIDATED], [PRELIMINARY], etc. in the --list-analyses output if analysis is not VALIDATED. 2014-05-12 Andy Buckley * Adding CMS_2013_I1265659 colour coherence analysis. 2014-05-07 Andy Buckley * Bug fixes in CMS_2013_I1209721 from Giulio Lenzi. * Fixing compiler warnings from clang, including one which indicated a misapplied cut bug in CDF_2006_S6653332. 2014-05-05 Andy Buckley * Fix missing abs() in Particle::abspid()!!!! 2014-04-14 Andy Buckley * Adding the namespace protection workaround for Boost described at http://www.boost.org/doc/libs/1_55_0/doc/html/foreach.html 2014-04-13 Andy Buckley * Adding a rivet.pc template file and installation rule for pkg-config to use. * Updating data/refdata/ALEPH_2001_S4656318.yoda to corrected version in HepData. 2014-03-27 Andy Buckley * Flattening PNG output of make-plots (i.e. no transparency) and other tweaks. 2014-03-23 Andy Buckley * Renaming the internal meta-particle class in DressedLeptons (and exposed in the W/ZFinders) from ClusteredLepton to DressedLepton for consistency with the change in name of its containing class. * Removing need for cmake and unportable yaml-cpp trickery by using libtool to build an embedded symbol-mangled copy of yaml-cpp rather than trying to mangle and build direct from the tarball. 2014-03-10 Andy Buckley * Rivet 2.1.1 release. 2014-03-07 Andy Buckley * Adding ATLAS multilepton search (no ref data file), ATLAS_2012_I1204447. 2014-03-05 Andy Buckley * Also renaming Breit-Wigner functions to cdfBW, invcdfBW and bwspace. * Renaming index_between() to the more Rivety binIndex(), since that's the only real use of such a function... plus a bit of SFINAE type relaxation trickery. 2014-03-04 Andy Buckley * Adding programmatic access to final histograms via AnalysisHandler::getData(). * Adding CMS 4 jet correlations analysis, CMS_2013_I1273574. * Adding CMS W + 2 jet double parton scattering analysis, CMS_2013_I1272853. * Adding ATLAS isolated diphoton measurement, ATLAS_2012_I1199269. * Improving the index_between function so the numeric types don't have to exactly match. * Adding better momentum comparison functors and sortBy, sortByX functions to use them easily on containers of Particle, Jet, and FourMomentum. 2014-02-10 Andy Buckley * Removing duplicate and unused ParticleBase sorting functors. * Removing unused HT increment and units in ATLAS_2012_I1180197 (unvalidated SUSY). * Fixing photon isolation logic bug in CMS_2013_I1258128 (Z rapidity). * Replacing internal uses of #include Rivet/Rivet.hh with Rivet/Config/RivetCommon.hh, removing the MAXRAPIDITY const, and repurposing Rivet/Rivet.hh as a convenience include for external API users. * Adding isStable, children, allDescendants, stableDescendants, and flightLength functions to Particle. * Replacing Particle and Jet deltaX functions with generic ones on ParticleBase, and adding deltaRap variants. * Adding a Jet.fhh forward declaration header, including fastjet::PseudoJet. * Adding a RivetCommon.hh header to allow Rivet.hh to be used externally. * Fixing HeavyHadrons to apply pT cuts if specified. 2014-02-06 Andy Buckley * 2.1.0 release! 2014-02-05 Andy Buckley * Protect against invalid prefix value if the --prefix configure option is unused. 2014-02-03 Andy Buckley * Adding the ATLAS_2012_I1093734 fwd-bwd / azimuthal minbias correlations analysis. * Adding the LHCB_2013_I1208105 forward energy flow analysis. 2014-01-31 Andy Buckley * Checking the YODA minimum version in the configure script. * Fixing the JADE_OPAL analysis ycut values to the midpoints, thanks to information from Christoph Pahl / Stefan Kluth. 2014-01-29 Andy Buckley * Removing unused/overrestrictive Isolation* headers. 2014-01-27 Andy Buckley * Re-bundling yaml-cpp, now built as a mangled static lib based on the LHAPDF6 experience. * Throw a UserError rather than an assert if AnalysisHandler::init is called more than once. 2014-01-25 David Grellscheid * src/Core/Cuts.cc: New Cuts machinery, already used in FinalState. Old-style "mineta, maxeta, minpt" constructors kept around for ease of transition. Minimal set of convenience functions available, like EtaIn(), should be expanded as needed. 2014-01-22 Andy Buckley * configure.ac: Remove opportunistic C++11 build, until this becomes mandatory (in version 2.2.0?). Anyone who wants C++11 can explicitly set the CXXFLAGS (and DYLDFLAGS for pre-Mavericks Macs) 2014-01-21 Leif Lonnblad * src/Core/Analysis.cc: Fixed bug in Analysis::isCompatible where an 'abs' was left out when checking that beam energes does not differ by more than 1GeV. * src/Analyses/CMS_2011_S8978280.cc: Fixed checking of beam energy and booking corresponding histograms. 2013-12-19 Andy Buckley * Adding pid() and abspid() methods to Particle. * Adding hasCharm and hasBottom methods to Particle. * Adding a sorting functor arg version of the ZFinder::constituents() method. * Adding pTmin cut accessors to HeavyHadrons. * Tweak to the WFinder constructor to place the target W (trans) mass argument last. 2013-12-18 Andy Buckley * Adding a GenParticle* cast operator to Particle, removing the Particle and Jet copies of the momentum cmp functors, and general tidying/improvement/unification of the momentum properties of jets and particles. 2013-12-17 Andy Buckley * Using SFINAE techniques to improve the math util functions. * Adding isNeutrino to ParticleIdUtils, and isHadron/isMeson/isBaryon/isLepton/isNeutrino methods to Particle. * Adding a FourMomentum cast operator to ParticleBase, so that Particle and Jet objects can be used directly as FourMomentums. 2013-12-16 Andy Buckley * LeptonClusters renamed to DressedLeptons. * Adding singular particle accessor functions to WFinder and ZFinder. * Removing ClusteredPhotons and converting ATLAS_2010_S8919674. 2013-12-12 Andy Buckley * Fixing a problem with --disable-analyses (thanks to David Hall) * Require FastJet version 3. * Bumped version to 2.1.0a0 * Adding -DNDEBUG to the default build flags, unless in --enable-debug mode. * Adding a special treatment of RIVET_*_PATH variables: if they end in :: the default search paths will not be appended. Used primarily to restrict the doc builds to look only inside the build dirs, but potentially also useful in other special circumstances. * Adding a definition of exec_prefix to rivet-buildplugin. * Adding -DNDEBUG to the default non-debug build flags. 2013-11-27 Andy Buckley * Removing accidentally still-present no-as-needed linker flag from rivet-config. * Lots of analysis clean-up and migration to use new features and W/Z finder APIs. * More momentum method forwarding on ParticleBase and adding abseta(), absrap() etc. functions. * Adding the DEFAULT_RIVET_ANA_CONSTRUCTOR cosmetic macro. * Adding deltaRap() etc. function variations * Adding no-decay photon clustering option to WFinder and ZFinder, and replacing opaque bool args with enums. * Adding an option for ignoring photons from hadron/tau decays in LeptonClusters. 2013-11-22 Andy Buckley * Adding Particle::fromBottom/Charm/Tau() members. LHCb were aready mocking this up, so it seemed sensible to add it to the interface as a more popular (and even less dangerous) version of hasAncestor(). * Adding an empty() member to the JetAlg interface. 2013-11-07 Andy Buckley * Adding the GSL lib path to the library path in the env scripts and the rivet-config --ldflags output. 2013-10-25 Andy Buckley * 2.0.0 release!!!!!! 2013-10-24 Andy Buckley * Supporting zsh completion via bash completion compatibility. 2013-10-22 Andy Buckley * Updating the manual to describe YODA rather than AIDA and the new rivet-cmphistos script. * bin/make-plots: Adding paths to error messages in histogram combination. * CDF_2005_S6217184: fixes to low stats errors and final scatter plot binning. 2013-10-21 Andy Buckley * Several small fixes in jet shape analyses, SFM_1984, etc. found in the last H++ validation run. 2013-10-18 Andy Buckley * Updates to configure and the rivetenv scripts to try harder to discover YODA. 2013-09-26 Andy Buckley * Now bundling Cython-generated files in the tarballs, so Cython is not a build requirement for non-developers. 2013-09-24 Andy Buckley * Removing unnecessary uses of a momentum() indirection when accessing kinematic variables. * Clean-up in Jet, Particle, and ParticleBase, in particular splitting PID functions on Particle from those on PID codes, and adding convenience kinematic functions to ParticleBase. 2013-09-23 Andy Buckley * Add the -avoid-version flag to libtool. * Final analysis histogramming issues resolved. 2013-08-16 Andy Buckley * Adding a ConnectBins flag in make-plots, to decide whether to connect adjacent, gapless bins with a vertical line. Enabled by default (good for the step-histo default look of MC lines), but now rivet-cmphistos disables it for the reference data. 2013-08-14 Andy Buckley * Making 2.0.0beta3 -- just a few remaining analysis migration issues remaining but it's worth making another beta since there were lots of framework fixes/improvements. 2013-08-11 Andy Buckley * ARGUS_1993_S2669951 also fixed using scatter autobooking. * Fixing remaining issues with booking in BABAR_2007_S7266081 using the feature below (far nicer than hard-coding). * Adding a copy_pts param to some Analysis::bookScatter2D methods: pre-setting the points with x values is sometimes genuinely useful. 2013-07-26 Andy Buckley * Removed the (officially) obsolete CDF 2008 LEADINGJETS and NOTE_9351 underlying event analyses -- superseded by the proper versions of these analyses based on the final combined paper. * Removed the semi-demo Multiplicity projection -- only the EXAMPLE analysis and the trivial ALEPH_1991_S2435284 needed adaptation. 2013-07-24 Andy Buckley * Adding a rejection of histo paths containing /TMP/ from the writeData function. Use this to handle booked temporary histograms... for now. 2013-07-23 Andy Buckley * Make rivet-cmphistos _not_ draw a ratio plot if there is only one line. * Improvements and fixes to HepData lookup with rivet-mkanalysis. 2013-07-22 Andy Buckley * Add -std=c++11 or -std=c++0x to the Rivet compiler flags if supported. * Various fixes to analyses with non-zero numerical diffs. 2013-06-12 Andy Buckley * Adding a new HeavyHadrons projection. * Adding optional extra include_end args to logspace() and linspace(). 2013-06-11 Andy Buckley * Moving Rivet/RivetXXX.hh tools headers into Rivet/Tools/. * Adding PrimaryHadrons projection. * Adding particles_in/out functions on GenParticle to RivetHepMC. * Moved STL extensions from Utils.hh to RivetSTL.hh and tidying. * Tidying, improving, extending, and documenting in RivetSTL.hh. * Adding a #include of Logging.hh into Projection.hh, and removing unnecessary #includes from all Projection headers. 2013-06-10 Andy Buckley * Moving htmlify() and detex() Python functions into rivet.util. * Add HepData URL for Inspire ID lookup to the rivet script. * Fix analyses' info files which accidentally listed the Inspire ID under the SpiresID metadata key. 2013-06-07 Andy Buckley * Updating mk-analysis-html script to produce MathJax output * Adding a version of Analysis::removeAnalysisObject() which takes an AO pointer as its argument. * bin/rivet: Adding pandoc-based conversion of TeX summary and description strings to plain text on the terminal output. * Add MathJax to rivet-mkhtml output, set up so the .info entries should render ok. * Mark the OPAL 1993 analysis as UNVALIDATED: from the H++ benchmark runs it looks nothing like the data, and there are some outstanding ambiguities. 2013-06-06 Andy Buckley * Releasing 2.0.0b2 beta version. 2013-06-05 Andy Buckley * Renaming Analysis::add() etc. to very explicit addAnalysisObject(), sorting out shared_pointer polymorphism issues via the Boost dynamic_pointer_cast, and adding a full set of getHisto1D(), etc. explicitly named and typed accessors, including ones with HepData dataset/axis ID signatures. * Adding histo booking from an explicit reference Scatter2D (and more placeholders for 2D histos / 3D scatters) and rewriting existing autobooking to use this. * Converting inappropriate uses of size_t to unsigned int in Analysis. * Moving Analysis::addPlot to Analysis::add() (or reg()?) and adding get() and remove() (or unreg()?) * Fixing attempted abstraction of import fallbacks in rivet.util.import_ET(). * Removing broken attempt at histoDir() caching which led to all histograms being registered under the same analysis name. 2013-06-04 Andy Buckley * Updating the Cython version requirement to 0.18 * Adding Analysis::integrate() functions and tidying the Analysis.hh file a bit. 2013-06-03 Andy Buckley * Adding explicit protection against using inf/nan scalefactors in ATLAS_2011_S9131140 and H1_2000_S4129130. * Making Analysis::scale noisly complain about invalid scalefactors. 2013-05-31 Andy Buckley * Reducing the TeX main memory to ~500MB. Turns out that it *can* be too large with new versions of TeXLive! 2013-05-30 Andy Buckley * Reverting bookScatter2D behaviour to never look at ref data, and updating a few affected analyses. This should fix some bugs with doubled datapoints introduced by the previous behaviour+addPoint. * Adding a couple of minor Utils.hh and MathUtils.hh features. 2013-05-29 Andy Buckley * Removing Constraints.hh header. * Minor bugfixes and improvements in Scatter2D booking and MC_JetAnalysis. 2013-05-28 Andy Buckley * Removing defunct HistoFormat.hh and HistoHandler.{hh,cc} 2013-05-27 Andy Buckley * Removing includes of Logging.hh, RivetYODA.hh, and ParticleIdUtils.hh from analyses (and adding an include of ParticleIdUtils.hh to Analysis.hh) * Removing now-unused .fhh files. * Removing lots of unnecessary .fhh includes from core classes: everything still compiling ok. A good opportunity to tidy this up before the release. * Moving the rivet-completion script from the data dir to bin (the completion is for scripts in bin, and this makes development easier). * Updating bash completion scripts for YODA format and compare-histos -> rivet-cmphistos. 2013-05-23 Andy Buckley * Adding Doxy comments and a couple of useful convenience functions to Utils.hh. * Final tweaks to ATLAS ttbar jet veto analysis (checked logic with Kiran Joshi). 2013-05-15 Andy Buckley * Many 1.0 -> weight bugfixes in ATLAS_2011_I945498. * yaml-cpp v3 support re-introduced in .info parsing. * Lots of analysis clean-ups for YODA TODO issues. 2013-05-13 Andy Buckley * Analysis histo booking improvements for Scatter2D, placeholders for 2D histos, and general tidying. 2013-05-12 Andy Buckley * Adding configure-time differentiation between yaml-cpp API versions 3 and 5. 2013-05-07 Andy Buckley * Converting info file reading to use the yaml-cpp 0.5.x API. 2013-04-12 Andy Buckley * Tagging as 2.0.0b1 2013-04-04 Andy Buckley * Removing bundling of yaml-cpp: it needs to be installed by the user / bootstrap script from now on. 2013-04-03 Andy Buckley * Removing svn:external m4 directory, and converting Boost detection to use better boost.m4 macros. 2013-03-22 Andy Buckley * Moving PID consts to the PID namespace and corresponding code updates and opportunistic clean-ups. * Adding Particle::fromDecay() method. 2013-03-09 Andy Buckley * Version bump to 2.0.0b1 in anticipation of first beta release. * Adding many more 'popular' particle ID code named-consts and aliases, and updating the RapScheme enum with ETA -> ETARAP, and fixing affected analyses (plus other opportunistic tidying / minor bug-fixing). * Fixing a symbol misnaming in ATLAS_2012_I1119557. 2013-03-07 Andy Buckley * Renaming existing uses of ParticleVector to the new 'Particles' type. * Updating util classes, projections, and analyses to deal with the HepMC return value changes. * Adding new Particle(const GenParticle*) constructor. * Converting Particle::genParticle() to return a const pointer rather than a reference, for the same reason as below (+ consistency within Rivet and with the HepMC pointer-centric coding design). * Converting Event to use a different implementation of original and modified GenParticles, and to manage the memory in a more future-proof way. Event::genParticle() now returns a const pointer rather than a reference, to signal that the user is leaving the happy pastures of 'normal' Rivet behind. * Adding a Particles typedef by analogy to Jets, and in preference to the cumbersome ParticleVector. * bin/: Lots of tidying/pruning of messy/defunct scripts. * Creating spiresbib, util, and plotinfo rivet python module submodules: this eliminates lighthisto and the standalone spiresbib modules. Util contains convenience functions for Python version testing, clean ElementTree import, and process renaming, for primary use by the rivet-* scripts. * Removing defunct scripts that have been replaced/obsoleted by YODA. 2013-03-06 Andy Buckley * Fixing doc build so that the reference histos and titles are ~correctly documented. We may want to truncate some of the lists! 2013-03-06 Hendrik Hoeth * Added ATLAS_2012_I1125575 analysis * Converted rivet-mkhtml to yoda * Introduced rivet-cmphistos as yoda based replacement for compare-histos 2013-03-05 Andy Buckley * Replacing all AIDA ref data with YODA versions. * Fixing the histograms entries in the documentation to be tolerant to plotinfo loading failures. * Making the findDatafile() function primarily find YODA data files, then fall back to AIDA. The ref data loader will use the appropriate YODA format reader. 2013-02-05 David Grellscheid * include/Rivet/Math/MathUtils.hh: added BWspace bin edge method to give equal-area Breit-Wigner bins 2013-02-01 Andy Buckley * Adding an element to the PhiMapping enum and a new mapAngle(angle, mapping) function. * Fixes to Vector3::azimuthalAngle and Vector3::polarAngle calculation (using the mapAngle functions). 2013-01-25 Frank Siegert * Split MC_*JETS analyses into three separate bits: MC_*INC (inclusive properties) MC_*JETS (jet properties) MC_*KTSPLITTINGS (kT splitting scales). 2013-01-22 Hendrik Hoeth * Fix TeX variable in the rivetenv scripts, especially for csh 2012-12-21 Andy Buckley * Version 1.8.2 release! 2012-12-20 Andy Buckley * Adding ATLAS_2012_I1119557 analysis (from Roman Lysak and Lily Asquith). 2012-12-18 Andy Buckley * Adding TOTEM_2012_002 analysis, from Sercan Sen. 2012-12-18 Hendrik Hoeth * Added CMS_2011_I954992 analysis 2012-12-17 Hendrik Hoeth * Added CMS_2012_I1193338 analysis * Fixed xi cut in ATLAS_2011_I894867 2012-12-17 Andy Buckley * Adding analysis descriptions to the HTML analysis page ToC. 2012-12-14 Hendrik Hoeth * Added CMS_2012_PAS_FWD_11_003 analysis * Added LHCB_2012_I1119400 analysis 2012-12-12 Andy Buckley * Correction to jet acceptance in CMS_2011_S9120041, from Sercan Sen: thanks! 2012-12-12 Hendrik Hoeth * Added CMS_2012_PAS_QCD_11_010 analysis 2012-12-07 Andy Buckley * Version number bump to 1.8.2 -- release approaching. * Rewrite of ALICE_2012_I1181770 analysis to make it a bit more sane and acceptable. * Adding a note on FourVector and FourMomentum that operator- and operator-= invert both the space and time components: use of -= can result in a vector with negative energy. * Adding particlesByRapidity and particlesByAbsRapidity to FinalState. 2012-12-07 Hendrik Hoeth * Added ALICE_2012_I1181770 analysis * Bump version to 1.8.2 2012-12-06 Hendrik Hoeth * Added ATLAS_2012_I1188891 analysis * Added ATLAS_2012_I1118269 analysis * Added CMS_2012_I1184941 analysis * Added LHCB_2010_I867355 analysis * Added TGraphErrors support to root2flat 2012-11-27 Andy Buckley * Converting CMS_2012_I1102908 analysis to use YODA. * Adding XLabel and YLabel setting in histo/profile/scatter booking. 2012-11-27 Hendrik Hoeth * Fix make-plots png creation for SL5 2012-11-23 Peter Richardson * Added ATLAS_2012_CONF_2012_153 4-lepton SUSY search 2012-11-17 Andy Buckley * Adding MC_PHOTONS by Steve Lloyd and AB, for testing general unisolated photon properties, especially those associated with charged leptons (e and mu). 2012-11-16 Andy Buckley * Adding MC_PRINTEVENT, a convenient (but verbose!) analysis for printing out event details to stdout. 2012-11-15 Andy Buckley * Removing the long-unused/defunct autopackage system. 2012-11-15 Hendrik Hoeth * Added LHCF_2012_I1115479 analysis * Added ATLAS_2011_I894867 analysis 2012-11-14 Hendrik Hoeth * Added CMS_2012_I1102908 analysis 2012-11-14 Andy Buckley * Converting the argument order of logspace, clarifying the arguments, updating affected code, and removing Analysis::logBinEdges. * Merging updates from the AIDA maintenance branch up to r4002 (latest revision for next merges is r4009). 2012-11-11 Andy Buckley * include/Math/: Various numerical fixes to Vector3::angle and changing the 4 vector mass treatment to permit spacelike virtualities (in some cases even the fuzzy isZero assert check was being violated). The angle check allows a clean-up of some workaround code in MC_VH2BB. 2012-10-15 Hendrik Hoeth * Added CMS_2012_I1107658 analysis 2012-10-11 Hendrik Hoeth * Added CDF_2012_NOTE10874 analysis 2012-10-04 Hendrik Hoeth * Added ATLAS_2012_I1183818 analysis 2012-07-17 Hendrik Hoeth * Cleanup and multiple fixes in CMS_2011_S9120041 * Bugfixed in ALEPH_2004_S5765862 and ATLAS_2010_CONF_2010_049 (thanks to Anil Pratap) 2012-08-09 Andy Buckley * Fixing aida2root command-line help message and converting to TH* rather than TGraph by default. 2012-07-24 Andy Buckley * Improvements/migrations to rivet-mkhtml, rivet-mkanalysis, and rivet-buildplugin. 2012-07-17 Hendrik Hoeth * Add CMS_2012_I1087342 2012-07-12 Andy Buckley * Fix rivet-mkanalysis a bit for YODA compatibility. 2012-07-05 Hendrik Hoeth * Version 1.8.1! 2012-07-05 Holger Schulz * Add ATLAS_2011_I945498 2012-07-03 Hendrik Hoeth * Bugfix for transverse mass (thanks to Gavin Hesketh) 2012-06-29 Hendrik Hoeth * Merge YODA branch into trunk. YODA is alive!!!!!! 2012-06-26 Holger Schulz * Add ATLAS_2012_I1091481 2012-06-20 Hendrik Hoeth * Added D0_2011_I895662: 3-jet mass 2012-04-24 Hendrik Hoeth * fixed a few bugs in rivet-rmgaps * Added new TOTEM dN/deta analysis 2012-03-19 Andy Buckley * Version 1.8.0! * src/Projections/UnstableFinalState.cc: Fix compiler warning. * Version bump for testing: 1.8.0beta1. * src/Core/AnalysisInfo.cc: Add printout of YAML parser exception error messages to aid debugging. * bin/Makefile.am: Attempt to fix rivet-nopy build on SLC5. * src/Analyses/LHCB_2010_S8758301.cc: Add two missing entries to the PDGID -> lifetime map. * src/Projections/UnstableFinalState.cc: Extend list of vetoed particles to include reggeons. 2012-03-16 Andy Buckley * Version change to 1.8.0beta0 -- nearly ready for long-awaited release! * pyext/setup.py.in: Adding handling for the YAML library: fix for Genser build from Anton Karneyeu. * src/Analyses/LHCB_2011_I917009.cc: Hiding lifetime-lookup error message if the offending particle is not a hadron. * include/Rivet/Math/MathHeader.hh: Using unnamespaced std::isnan and std::isinf as standard. 2012-03-16 Hendrik Hoeth * Improve default plot behaviour for 2D histograms 2012-03-15 Hendrik Hoeth * Make ATLAS_2012_I1084540 less verbose, and general code cleanup of that analysis. * New-style plugin hook in ATLAS_2011_I926145, ATLAS_2011_I944826 and ATLAS_2012_I1084540 * Fix compiler warnings in ATLAS_2011_I944826 and CMS_2011_S8973270 * CMS_2011_S8941262: Weights are double, not int. * disable inRange() tests in test/testMath.cc until we have a proper fix for the compiler warnings we see on SL5. 2012-03-07 Andy Buckley * Marking ATLAS_2011_I919017 as VALIDATED (this should have happened a long time ago) and adding more references. 2012-02-28 Hendrik Hoeth * lighthisto.py: Caching for re.compile(). This speeds up aida2flat and flat2aida by more than an order of magnitude. 2012-02-27 Andy Buckley * doc/mk-analysis-html: Adding more LaTeX/text -> HTML conversion replacements, including better <,> handling. 2012-02-26 Andy Buckley * Adding CMS_2011_S8973270, CMS_2011_S8941262, CMS_2011_S9215166, CMS_QCD_10_024, from CMS. * Adding LHCB_2011_I917009 analysis, from Alex Grecu. * src/Core/Analysis.cc, include/Rivet/Analysis.hh: Add a numeric-arg version of histoPath(). 2012-02-24 Holger Schulz * Adding ATLAS Ks/Lambda analysis. 2012-02-20 Andy Buckley * src/Analyses/ATLAS_2011_I925932.cc: Using new overflow-aware normalize() in place of counters and scale(..., 1/count) 2012-02-14 Andy Buckley * Splitting MC_GENERIC to put the PDF and PID plotting into MC_PDFS and MC_IDENTIFIED respectively. * Renaming MC_LEADINGJETS to MC_LEADJETUE. 2012-02-14 Hendrik Hoeth * DELPHI_1996_S3430090 and ALEPH_1996_S3486095: fix rapidity vs {Thrust,Sphericity}-axis. 2012-02-14 Andy Buckley * bin/compare-histos: Don't attempt to remove bins from MC histos where they aren't found in the ref file, if the ref file is not expt data, or if the new --no-rmgapbins arg is given. * bin/rivet: Remove the conversion of requested analysis names to upper-case: mixed-case analysis names will now work. 2012-02-14 Frank Siegert * Bugfixes and improvements for MC_TTBAR: - Avoid assert failure with logspace starting at 0.0 - Ignore charged lepton in jet finding (otherwise jet multi is always +1). - Add some dR/deta/dphi distributions as noted in TODO - Change pT plots to logspace as well (to avoid low-stat high pT bins) 2012-02-10 Hendrik Hoeth * rivet-mkhtml -c option now has the semantics of a .plot file. The contents are appended to the dat output by compare-histos. 2012-02-09 David Grellscheid * Fixed broken UnstableFS behaviour 2012-01-25 Frank Siegert * Improvements in make-plots: - Add PlotTickLabels and RatioPlotTickLabels options (cf. make-plots.txt) - Make ErrorBars and ErrorBands non-exclusive (and change their order, such that Bars are on top of Bands) 2012-01-25 Holger Schulz * Add ATLAS diffractive gap analysis 2012-01-23 Andy Buckley * bin/rivet: When using --list-analyses, the analysis summary is now printed out when log level is <= INFO, rather than < INFO. The effect on command line behaviour is that useful identifying info is now printed by default when using --list-analyses, rather than requiring --list-analyses -v. To get the old behaviour, e.g. if using the output of rivet --list-analyses for scripting, now use --list-analyses -q. 2012-01-22 Andy Buckley * Tidying lighthisto, including fixing the order in which +- error values are passed to the Bin constructor in fromFlatHisto. 2012-01-16 Frank Siegert * Bugfix in ATLAS_2012_I1083318: Include non-signal neutrinos in jet clustering. * Add first version of ATLAS_2012_I1083318 (W+jets). Still UNVALIDATED until final happiness with validation plots arises and data is in Hepdata. * Bugfix in ATLAS_2010_S8919674: Really use neutrino with highest pT for Etmiss. Doesn't seem to make very much difference, but is more correct in principle. 2012-01-16 Peter Richardson * Fixes to ATLAS_20111_S9225137 to include reference data 2012-01-13 Holger Schulz * Add ATLAS inclusive lepton analysis 2012-01-12 Hendrik Hoeth * Font selection support in rivet-mkhtml 2012-01-11 Peter Richardson * Added pi0 to list of particles. 2012-01-11 Andy Buckley * Removing references to Boost random numbers. 2011-12-30 Andy Buckley * Adding a placeholder rivet-which script (not currently installed). * Tweaking to avoid a very time-consuming debug printout in compare-histos with the -v flag, and modifying the Rivet env vars in rivet-mkhtml before calling compare-histos to eliminate problems induced by relative paths (i.e. "." does not mean the same thing when the directory is changed within the script). 2011-12-12 Andy Buckley * Adding a command line completion function for rivet-mkhtml. 2011-12-12 Frank Siegert * Fix for factor of 2.0 in normalisation of CMS_2011_S9086218 * Add --ignore-missing option to rivet-mkhtml to ignore non-existing AIDA files. 2011-12-06 Andy Buckley * Include underflow and overflow bins in the normalisation when calling Analysis::normalise(h) 2011-11-23 Andy Buckley * Bumping version to 1.8.0alpha0 since the Jet interface changes are quite a major break with backward compatibility (although the vast majority of analyses should be unaffected). * Removing crufty legacy stuff from the Jet class -- there is never any ambiguity between whether Particle or FourMomentum objects are the constituents now, and the jet 4-momentum is set explicitly by the jet alg so that e.g. there is no mismatch if the FastJet pt recombination scheme is used. * Adding default do-nothing implementations of Analysis::init() and Analysis::finalize(), since it is possible for analysis implementations to not need to do anything in these methods, and forcing analysis authors to write do-nothing boilerplate code is not "the Rivet way"! 2011-11-19 Andy Buckley * Adding variant constructors to FastJets with a more natural Plugin* argument, and decrufting the constructor implementations a bit. * bin/rivet: Adding a more helpful error message if the rivet module can't be loaded, grouping the option parser options, removing the -A option (this just doesn't seem useful anymore), and providing a --pwd option as a shortcut to append "." to the search path. 2011-11-18 Andy Buckley * Adding a guide to compiling a new analysis template to the output message of rivet-mkanalysis. 2011-11-11 Andy Buckley * Version 1.7.0 release! * Protecting the OPAL 2004 analysis against NaNs in the hemispheres projection -- I can't track the origin of these and suspect some occasional memory corruption. 2011-11-09 Andy Buckley * Renaming source files for EXAMPLE and PDG_HADRON_MULTIPLICITIES(_RATIOS) analyses to match the analysis names. * Cosmetic fixes in ATLAS_2011_S9212183 SUSY analysis. * Adding new ATLAS W pT analysis from Elena Yatsenko (slightly adapted). 2011-10-20 Frank Siegert * Extend API of W/ZFinder to allow for specification of input final state in which to search for leptons/photons. 2011-10-19 Andy Buckley * Adding new version of LHCB_2010_S8758301, based on submission from Alex Grecu. There is some slightly dodgy-looking GenParticle* fiddling going on, but apparently it's necessary (and hopefully robust). 2011-10-17 Andy Buckley * bin/rivet-nopy linker line tweak to make compilation work with GCC 4.6 (-lHepMC has to be explicitly added for some reason). 2011-10-13 Frank Siegert * Add four CMS QCD analyses kindly provided by CMS. 2011-10-12 Andy Buckley * Adding a separate test program for non-matrix/vector math functions, and adding a new set of int/float literal arg tests for the inRange functions in it. * Adding a jet multiplicity plot for jets with pT > 30 GeV to MC_TTBAR. 2011-10-11 Andy Buckley * Removing SVertex. 2011-10-11 James Monk * root2flat was missing the first bin (plus spurious last bin) * My version of bash does not understand the pipe syntax |& in rivet-buildplugin 2011-09-30 James Monk * Fix bug in ATLAS_2010_S8817804 that misidentified the akt4 jets as akt6 2011-09-29 Andy Buckley * Converting FinalStateHCM to a slightly more general DISFinalState. 2011-09-26 Andy Buckley * Adding a default libname argument to rivet-buildplugin. If the first argument doesn't have a .so library suffix, then use RivetAnalysis.so as the default. 2011-09-19 Hendrik Hoeth * make-plots: Fixing regex for \physicscoor. Adding "FrameColor" option. 2011-09-17 Andy Buckley * Improving interactive metadata printout, by not printing headings for missing info. * Bumping the release number to 1.7.0alpha0, since with these SPIRES/Inspire changes and the MissingMomentum API change we need more than a minor release. * Updating the mkanalysis, BibTeX-grabbing and other places that care about analysis SPIRES IDs to also be able to handle the new Inspire system record IDs. The missing link is getting to HepData from an Inspire code... * Using the .info file rather than an in-code declaration to specify that an analysis needs cross-section information. * Adding Inspire support to the AnalysisInfo and Analysis interfaces. Maybe we can find a way to combine the two, e.g. return the SPIRES code prefixed with an "S" if no Inspire ID is available... 2011-09-17 Hendrik Hoeth * Added ALICE_2011_S8909580 (strange particle production at 900 GeV) * Feed-down correction in ALICE_2011_S8945144 2011-09-16 Andy Buckley * Adding ATLAS track jet analysis, modified from the version provided by Seth Zenz: ATLAS_2011_I919017. Note that this analysis is currently using the Inspire ID rather than the Spires one: we're clearly going to have to update the API to handle Inspire codes, so might as well start now... 2011-09-14 Andy Buckley * Adding the ATLAS Z pT measurement at 7 TeV (ATLAS_2011_S9131140) and an MC analysis for VH->bb events (MC_VH2BB). 2011-09-12 Andy Buckley * Removing uses of getLog, cout, cerr, and endl from all standard analyses and projections, except in a very few special cases. 2011-09-10 Andy Buckley * Changing the behaviour and interface of the MissingMomentum projection to calculate vector ET correctly. This was previously calculated according to the common definition of -E*sin(theta) of the summed visible 4-momentum in the event, but that is incorrect because the timelike term grows monotonically. Instead, transverse 2-vectors of size ET need to be constructed for each visible particle, and vector-summed in the transverse plane. The rewrite of this behaviour made it opportune to make an API improvement: the previous method names scalarET/vectorET() have been renamed to scalar/vectorEt() to better match the Rivet FourMomentum::Et() method, and MissingMomentum::vectorEt() now returns a Vector3 rather than a double so that the transverse missing Et direction is also available. Only one data analysis has been affected by this change in behaviour: the D0_2004_S5992206 dijet delta(phi) analysis. It's expected that this change will not be very significant, as it is a *veto* on significant missing ET to reduce non-QCD contributions. MC studies using this analysis ~always run with QCD events only, so these contributions should be small. The analysis efficiency may have been greatly improved, as fewer events will now fail the missing ET veto cut. * Add sorting of the ParticleVector returned by the ChargedLeptons projection. * configure.ac: Adding a check to make sure that no-one tries to install into --prefix=$PWD. 2011-09-04 Andy Buckley * lighthisto fixes from Christian Roehr. 2011-08-26 Andy Buckley * Removing deprecated features: the setBeams(...) method on Analysis, the MaxRapidity constant, the split(...) function, the default init() method from AnalysisHandler and its test, and the deprecated TotalVisibleMomentum and PVertex projections. 2011-08-23 Andy Buckley * Adding a new DECLARE_RIVET_PLUGIN wrapper macro to hide the details of the plugin hook system from analysis authors. Migration of all analyses and the rivet-mkanalysis script to use this as the standard plugin hook syntax. * Also call the --cflags option on root-config when using the --root option with rivet-biuldplugin (thanks to Richard Corke for the report) 2011-08-23 Frank Siegert * Added ATLAS_2011_S9126244 * Added ATLAS_2011_S9128077 2011-08-23 Hendrik Hoeth * Added ALICE_2011_S8945144 * Remove obsolete setBeams() from the analyses * Update CMS_2011_S8957746 reference data to the official numbers * Use Inspire rather than Spires. 2011-08-19 Frank Siegert * More NLO parton level generator friendliness: Don't crash or fail when there are no beam particles. * Add --ignore-beams option to skip compatibility check. 2011-08-09 David Mallows * Fix aida2flat to ignore empty dataPointSet 2011-08-07 Andy Buckley * Adding TEXINPUTS and LATEXINPUTS prepend definitions to the variables provided by rivetenv.(c)sh. A manual setting of these variables that didn't include the Rivet TEXMFHOME path was breaking make-plots on lxplus, presumably since the system LaTeX packages are so old there. 2011-08-02 Frank Siegert Version 1.6.0 release! 2011-08-01 Frank Siegert * Overhaul of the WFinder and ZFinder projections, including a change of interface. This solves potential problems with leptons which are not W/Z constituents being excluded from the RemainingFinalState. 2011-07-29 Andy Buckley * Version 1.5.2 release! * New version of aida2root from James Monk. 2011-07-29 Frank Siegert * Fix implementation of --config file option in make-plots. 2011-07-27 David Mallows * Updated MC_TTBAR.plot to reflect updated analysis. 2011-07-25 Andy Buckley * Adding a useTransverseMass flag method and implementation to InvMassFinalState, and using it in the WFinder, after feedback from Gavin Hesketh. This was the neatest way I could do it :S Some other tidying up happened along the way. * Adding transverse mass massT and massT2 methods and functions for FourMomentum. 2011-07-22 Frank Siegert * Added ATLAS_2011_S9120807 * Add two more observables to MC_DIPHOTON and make its isolation cut more LHC-like * Add linear photon pT histo to MC_PHOTONJETS 2011-07-20 Andy Buckley * Making MC_TTBAR work with semileptonic ttbar events and generally tidying the code. 2011-07-19 Andy Buckley * Version bump to 1.5.2.b01 in preparation for a release in the very near future. 2011-07-18 David Mallows * Replaced MC_TTBAR: Added t,tbar reconstruction. Not yet working. 2011-07-18 Andy Buckley * bin/rivet-buildplugin.in: Pass the AM_CXXFLAGS variable (including the warning flags) to the C++ compiler when building user analysis plugins. * include/LWH/DataPointSet.h: Fix accidental setting of errorMinus = scalefactor * error_Plus_. Thanks to Anton Karneyeu for the bug report! 2011-07-18 Hendrik Hoeth * Added CMS_2011_S8884919 (charged hadron multiplicity in NSD events corrected to pT>=0). * Added CMS_2010_S8656010 and CMS_2010_S8547297 (charged hadron pT and eta in NSD events) * Added CMS_2011_S8968497 (chi_dijet) * Added CMS_2011_S8978280 (strangeness) 2011-07-13 Andy Buckley * Rivet PDF manual updates, to not spread disinformation about bootstrapping a Genser repo. 2011-07-12 Andy Buckley * bin/make-plots: Protect property reading against unstripped \r characters from DOS newlines. * bin/rivet-mkhtml: Add a -M unmatch regex flag (note that these are matching the analysis path rather than individual histos on this script), and speed up the initial analysis identification and selection by avoiding loops of regex comparisons for repeats of strings which have already been analysed. * bin/compare-histos: remove the completely (?) unused histogram list, and add -m and -M regex flags, as for aida2flat and flat2aida. 2011-06-30 Hendrik Hoeth * fix fromFlat() in lighthistos: It would ignore histogram paths before. * flat2aida: preserve histogram order from .dat files 2011-06-27 Andy Buckley * pyext/setup.py.in: Use CXXFLAGS and LDFLAGS safely in the Python extension build, and improve the use of build/src directory arguments. 2011-06-23 Andy Buckley * Adding a tentative rivet-updateanalyses script, based on lhapdf-getdata, which will download new analyses as requested. We could change our analysis-providing behaviour a bit to allow this sort of delivery mechanism to be used as the normal way of getting analysis updates without us having to make a whole new Rivet release. It is nice to be able to identify analyses with releases, though, for tracking whether bugs have been addressed. 2011-06-10 Frank Siegert * Bugfixes in WFinder. 2011-06-10 Andy Buckley * Adding \physicsxcoor and \physicsycoor treatment to make-plots. 2011-06-06 Hendrik Hoeth * Allow for negative cross-sections. NLO tools need this. * make-plots: For RatioPlotMode=deviation also consider the MC uncertainties, not just data. 2011-06-04 Hendrik Hoeth * Add support for goodness-of-fit calculations to make-plots. The results are shown in the legend, and one histogram can be selected to determine the color of the plot margin. See the documentation for more details. 2011-06-04 Andy Buckley * Adding auto conversion of Histogram2D to DataPointSets in the AnalysisHandler _normalizeTree method. 2011-06-03 Andy Buckley * Adding a file-weight feature to the Run object, which will optionally rescale the weights in the provided HepMC files. This should be useful for e.g. running on multiple differently-weighted AlpGen HepMC files/streams. The new functionality is used by the rivet command via an optional weight appended to the filename with a colon delimiter, e.g. "rivet fifo1.hepmc fifo2.hepmc:2.31" 2011-06-01 Hendrik Hoeth * Add BeamThrust projection 2011-05-31 Hendrik Hoeth * Fix LIBS for fastjet-3.0 * Add basic infrastructure for Taylor plots in make-plots * Fix OPAL_2004_S6132243: They are using charged+neutral. * Release 1.5.1 2011-05-22 Andy Buckley * Adding plots of stable and decayed PID multiplicities to MC_GENERIC (useful for sanity-checking generator setups). * Removing actually-unused ProjectionApplier.fhh forward declaration header. 2011-05-20 Andy Buckley * Removing import of ipython shell from rivet-rescale, having just seen it throw a multi-coloured warning message on a student's lxplus Rivet session! * Adding support for the compare-histos --no-ratio flag when using rivet-mkhtml. Adding --rel-ratio, --linear, etc. is an exercise for the enthusiast ;-) 2011-05-10 Andy Buckley * Internal minor changes to the ProjectionHandler and ProjectionApplier interfaces, in particular changing the ProjectionHandler::create() function to be called getInstance and to return a reference rather than a pointer. The reference change is to make way for an improved singleton implementation, which cannot yet be used due to a bug in projection memory management. The code of the improved singleton is available, but commented out, in ProjectionManager.hh to allow for easier migration and to avoid branching. 2011-05-08 Andy Buckley * Extending flat2aida to be able to read from and write to stdin/out as for aida2flat, and also eliminating the internal histo parsing representation in favour of the one in lighthisto. lighthisto's fromFlat also needed a bit of an overhaul: it has been extended to parse each histo's chunk of text (including BEGIN and END lines) in fromFlatHisto, and for fromFlat to parse a collection of histos from a file, in keeping with the behaviour of fromDPS/fromAIDA. Merging into Professor is now needed. * Extending aida2flat to have a better usage message, to accept input from stdin for command chaining via pipes, and to be a bit more sensibly internally structured (although it also now has to hold all histos in memory before writing out -- that shouldn't be a problem for anything other than truly huge histo files). 2011-05-04 Andy Buckley * compare-histos: If using --mc-errs style, prefer dotted and dashdotted line styles to dashed, since dashes are often too long to be distinguishable from solid lines. Even better might be to always use a solid line for MC errs style, and to add more colours. * rivet-mkhtml: use a no-mc-errors drawing style by default, to match the behaviour of compare-histos, which it calls. The --no-mc-errs option has been replaced with an --mc-errs option. 2011-05-04 Hendrik Hoeth * Ignore duplicate files in compare-histos. 2011-04-25 Andy Buckley * Adding some hadron-specific N and sumET vs. |eta| plots to MC_GENERIC. * Re-adding an explicit attempt to get the beam particles, since HepMC's IO_HERWIG seems to not always set them even though it's meant to. 2011-04-19 Hendrik Hoeth * Added ATLAS_2011_S9002537 W asymmetry analysis 2011-04-14 Hendrik Hoeth * deltaR, deltaPhi, deltaEta now available in all combinations of FourVector, FourMomentum, Vector3, doubles. They also accept jets and particles as arguments now. 2011-04-13 David Grellscheid * added ATLAS 8983313: 0-lepton BSM 2011-04-01 Andy Buckley * bin/rivet-mkanalysis: Don't try to download SPIRES or HepData info if it's not a standard analysis (i.e. if the SPIRES ID is not known), and make the default .info file validly parseable by YAML, which was an unfortunate gotcha for anyone writing a first analysis. 2011-03-31 Andy Buckley * bin/compare-histos: Write more appropriate ratio plot labels when not comparing to data, and use the default make-plots labels when comparing to data. * bin/rivet-mkhtml: Adding a timestamp to the generated pages, and a -t/--title option to allow setting the main HTML page title on the command line: otherwise it becomes impossible to tell these pages apart when you have a lot of them, except by URL! 2011-03-24 Andy Buckley * bin/aida2flat: Adding a -M option to *exclude* histograms whose paths match a regex. Writing a negative lookahead regex with positive matching was far too awkward! 2011-03-18 Leif Lonnblad * src/Core/AnalysisHandler.cc (AnalysisHandler::removeAnalysis): Fixed strange shared pointer assignment that caused seg-fault. 2011-03-13 Hendrik Hoeth * filling of functions works now in a more intuitive way (I hope). 2011-03-09 Andy Buckley * Version 1.5.0 release! 2011-03-08 Andy Buckley * Adding some extra checks for external packages in make-plots. 2011-03-07 Andy Buckley * Changing the accuracy of the beam energy checking to 1%, to make the UI a bit more forgiving. It's still best to specify exactly the right energy of course! 2011-03-01 Andy Buckley * Adding --no-plottitle to compare-histos (+ completion). * Fixing segfaults in UA1_1990_S2044935 and UA5_1982_S875503. * Bump ABI version numbers for 1.5.0 release. * Use AnalysisInfo for storage of the NeedsCrossSection analysis flag. * Allow field setting in AnalysisInfo. 2011-02-27 Hendrik Hoeth * Support LineStyle=dashdotted in make-plots * New command line option --style for compare-histos. Options are "default", "bw" and "talk". * cleaner uninstall 2011-02-26 Andy Buckley * Changing internal storage and return type of Particle::pdgId() to PdgId, and adding Particle::energy(). * Renaming Analysis::energies() as Analysis::requiredEnergies(). * Adding beam energies into beam consistency checking: Analysis::isCompatible methods now also require the beam energies to be provided. * Removing long-deprecated AnalysisHandler::init() constructor and AnalysisHandler::removeIncompatibleAnalyses() methods. 2011-02-25 Andy Buckley * Adding --disable-obsolete, which takes its value from the value of --disable-preliminary by default. * Replacing RivetUnvalidated and RivetPreliminary plugin libraries with optionally-configured analysis contents in the experiment-specific plugin libraries. This avoids issues with making libraries rebuild consistently when sources were reassigned between libraries. 2011-02-24 Andy Buckley * Changing analysis plugin registration to fall back through available paths rather than have RIVET_ANALYSIS_PATH totally override the built-in paths. The first analysis hook of a given name to be found is now the one that's used: any duplicates found will be warned about but unused. getAnalysisLibPaths() now returns *all* the search paths, in keeping with the new search behaviour. 2011-02-22 Andy Buckley * Moving the definition of the MSG_* macros into the Logging.hh header. They can't be used everywhere, though, as they depend on the existence of a this->getLog() method in the call scope. This move makes them available in e.g. AnalysisHandler and other bits of framework other than projections and analyses. * Adding a gentle print-out from the Rivet AnalysisHandler if preliminary analyses are being used, and strengthening the current warning if unvalidated analyses are used. * Adding documentation about the validation "process" and the (un)validated and preliminary analysis statuses. * Adding the new RivetPreliminary analysis library, and the corresponding --disable-preliminary configure flag. Analyses in this library are subject to change names, histograms, reference data values, etc. between releases: make sure you check any dependences on these analyses when upgrading Rivet. * Change the Python script ref data search behaviours to use Rivet ref data by default where available, rather than requiring a -R option. Where relevant, -R is still a valid option, to avoid breaking legacy scripts, and there is a new --no-rivet-refs option to turn the default searching *off*. * Add the prepending and appending optional arguments to the path searching functions. This will make it easier to combine the search functions with user-supplied paths in Python scripts. * Make make-plots killable! * Adding Rivet version to top of run printout. * Adding Run::crossSection() and printing out the cross-section in pb at the end of a Rivet run. 2011-02-22 Hendrik Hoeth * Make lighthisto.py aware of 2D histograms * Adding published versions of the CDF_2008 leading jets and DY analyses, and marking the preliminary ones as "OBSOLETE". 2011-02-21 Andy Buckley * Adding PDF documentation for path searching and .info/.plot files, and tidying overfull lines. * Removing unneeded const declarations from various return by value path and internal binning functions. Should not affect ABI compatibility but will force recompilation of external packages using the RivetPaths.hh and Utils.hh headers. * Adding findAnalysis*File(fname) functions, to be used by Rivet scripts and external programs to find files known to Rivet according to Rivet's (newly standard) lookup rule. * Changing search path function behaviour to always return *all* search directories rather than overriding the built-in locations if the environment variables are set. 2011-02-20 Andy Buckley * Adding the ATLAS 2011 transverse jet shapes analysis. 2011-02-18 Hendrik Hoeth * Support for transparency in make-plots 2011-02-18 Frank Siegert * Added ATLAS prompt photon analysis ATLAS_2010_S8914702 2011-02-10 Hendrik Hoeth * Simple NOOP constructor for Thrust projection * Add CMS event shape analysis. Data read off the plots. We will get the final numbers when the paper is accepted by the journal. 2011-02-10 Frank Siegert * Add final version of ATLAS dijet azimuthal decorrelation 2011-02-10 Hendrik Hoeth * remove ATLAS conf note analyses for which we have final data * reshuffle histograms in ATLAS minbias analysis to match Hepdata * small pT-cut fix in ATLAS track based UE analysis 2011-01-31 Andy Buckley * Doc tweaks and adding cmp-by-|p| functions for Jets, to match those added by Hendrik for Particles. * Don't sum photons around muons in the D0 2010 Z pT analysis. 2011-01-27 Andy Buckley * Adding ATLAS 2010 min bias and underlying event analyses and data. 2011-01-23 Andy Buckley * Make make-plots write out PDF rather than PS by default. 2011-01-12 Andy Buckley * Fix several rendering and comparison bugs in rivet-mkhtml. * Allow make-plots to write into an existing directory, at the user's own risk. * Make rivet-mkhtml produce PDF-based output rather than PS by default (most people want PDF these days). Can we do the same change of default for make-plots? * Add getAnalysisPlotPaths() function, and use it in compare-histos * Use proper .info file search path function internally in AnalysisInfo::make. 2011-01-11 Andy Buckley * Clean up ATLAS dijet analysis. 2010-12-30 Andy Buckley * Adding a run timeout option, and small bug-fixes to the event timeout handling, and making first event timeout work nicely with the run timeout. Run timeout is intended to be used in conjunction with timed batch token expiry, of the type that likes to make 0 byte AIDA files on LCG when Grid proxies time out. 2010-12-21 Andy Buckley * Fix the cuts in the CDF 1994 colour coherence analysis. 2010-12-19 Andy Buckley * Fixing CDF midpoint cone jet algorithm default construction to have an overlap threshold of 0.5 rather than 0.75. This was recommended by the FastJet manual, and noticed while adding the ATLAS and CMS cones. * Adding ATLAS and CMS old iterative cones as "official" FastJets constructor options (they could always have been used by explicit instantiation and attachment of a Fastjet plugin object). * Removing defunct and unused ClosestJetShape projection. 2010-12-16 Andy Buckley * bin/compare-histos, pyext/lighthisto.py: Take ref paths from rivet module API rather than getting the environment by hand. * pyext/lighthisto.py: Only read .plot info from the first matching file (speed-up compare-histos). 2010-12-14 Andy Buckley * Augmenting the physics vector functionality to make FourMomentum support maths operators with the correct return type (FourMomentum rather than FourVector). 2010-12-11 Andy Buckley * Adding a --event-timeout option to control the event timeout, adding it to the completion script, and making sure that the init time check is turned OFF once successful! * Adding an 3600 second timeout for initialising an event file. If it takes longer than (or anywhere close to) this long, chances are that the event source is inactive for some reason (perhaps accidentally unspecified and stdin is not active, or the event generator has died at the other end of the pipe. The reason for not making it something shorter is that e.g. Herwig++ or Sherpa can have long initialisation times to set up the MPI handler or to run the matrix element integration. An timeout after an hour is still better than a batch job which runs for two days before you realise that you forgot to generate any events! 2010-12-10 Andy Buckley * Fixing unbooked-histo segfault in UA1_1990_S2044935 at 63 GeV. 2010-12-08 Hendrik Hoeth * Fixes in ATLAS_2010_CONF_083, declaring it validated * Added ATLAS_2010_CONF_046, only two plots are implemented. The paper will be out soon, and we don't need the other plots right now. Data is read off the plots in the note. * New option "SmoothLine" for HISTOGRAM sections in make-plots * Changed CustomTicks to CustomMajorTicks and added CustomMinorTicks in make-plots. 2010-12-07 Andy Buckley * Update the documentation to explain this latest bump to path lookup behaviours. * Various improvements to existing path lookups. In particular, the analysis lib path locations are added to the info and ref paths to avoid having to set three variables when you have all three file types in the same personal plugin directory. * Adding setAnalysisLibPaths and addAnalysisLibPath functions. rivet --analysis-path{,-append} now use these and work correctly. Hurrah! * Add --show-analyses as an alias for --show-analysis, following a comment at the ATLAS tutorial. 2010-12-07 Hendrik Hoeth * Change LegendXPos behaviour in make-plots. Now the top left corner of the legend is used as anchor point. 2010-12-03 Andy Buckley * 1.4.0 release. * Add bin-skipping to compare-histos to avoid one use of rivet-rmgaps (it's still needed for non-plotting post-processing like Professor). 2010-12-03 Hendrik Hoeth * Fix normalisation issues in UA5 and ALEPH analyses 2010-11-27 Andy Buckley * MathUtils.hh: Adding fuzzyGtrEquals and fuzzyLessEquals, and tidying up the math utils collection a bit. * CDF 1994 colour coherence analysis overhauled and correction/norm factors fixed. Moved to VALIDATED status. * Adding programmable completion for aida2flat and flat2aida. * Improvements to programmable completion using the neat _filedir completion shell function which I just discovered. 2010-11-26 Andy Buckley * Tweak to floating point inRange to use fuzzyEquals for CLOSED interval equality comparisons. * Some BibTeX generation improvements, and fixing the ATLAS dijet BibTeX key. * Resolution upgrade in PNG make-plots output. * CDF_2005_S6217184.cc, CDF_2008_S7782535.cc: Updates to use the new per-jet JetAlg interface (and some other fixes). * JetAlg.cc: Changed the interface on request to return per-jet rather than per-event jet shapes, with an extra jet index argument. * MathUtils.hh: Adding index_between(...) function, which is handy for working out which bin a value falls in, given a set of bin edges. 2010-11-25 Andy Buckley * Cmp.hh: Adding ASC/DESC (and ANTISORTED) as preferred non-EQUIVALENT enum value synonyms over misleading SORTED/UNSORTED. * Change of rapidity scheme enum name to RapScheme * Reworking JetShape a bit further: constructor args now avoid inconsistencies (it was previously possible to define incompatible range-ends and interval). Internal binning implementation also reworked to use a vector of bin edges: the bin details are available via the interface. The general jet pT cuts can be applied via the JetShape constructor. * MathUtils.hh: Adding linspace and logspace utility functions. Useful for defining binnings. * Adding more general cuts on jet pT and (pseudo)rapidity. 2010-11-11 Andy Buckley * Adding special handling of FourMomentum::mass() for computed zero-mass vectors for which mass2 can go (very slightly) negative due to numerical precision. 2010-11-10 Hendrik Hoeth * Adding ATLAS-CONF-2010-083 conference note. Data is read from plots. When I run Pythia 6 the bins close to pi/2 are higher than in the note, so I call this "unvalidated". But then ... the note doesn't specify a tune or even just a version for the generators in the plots. Not even if they used Pythia 6 or Pythia 8. Probably 6, since they mention AGILe. 2010-11-10 Andy Buckley * Adding a JetAlg::useInvisibles(bool) mechanism to allow ATLAS jet studies to include neutrinos. Anyone who chooses to use this mechanism had better be careful to remove hard neutrinos manually in the provided FinalState object. 2010-11-09 Hendrik Hoeth * Adding ATLAS-CONF-2010-049 conference note. Data is read from plots. Fragmentation functions look good, but I can't reproduce the MC lines (or even the relative differences between them) in the jet cross-section plots. So consider those unvalidated for now. Oh, and it seems ATLAS screwed up the error bands in their ratio plots, too. They are upside-down. 2010-11-07 Hendrik Hoeth * Adding ATLAS-CONF-2010-081 conference note. Data is read from plots. 2010-11-06 Andy Buckley * Deprecating the old JetShape projection and renaming to ClosestJetShape: the algorithm has a tenuous relationship with that actually used in the CDF (and ATLAS) jet shape analyses. CDF analyses to be migrated to the new JetShape projection... and some of that projection's features, design elements, etc. to be finished off: we may as well take this opportunity to clear up what was one of our nastiest pieces of code. 2010-11-05 Hendrik Hoeth * Adding ATLAS-CONF-2010-031 conference note. Data is read from plots. 2010-10-29 Andy Buckley * Making rivet-buildplugin use the same C++ compiler and CXXFLAGS variable as used for the Rivet system build. * Fixing NeutralFinalState projection to, erm, actually select neutral particles (by Hendrik). * Allow passing a general FinalState reference to the JetShape projection, rather than requiring a VetoedFS. 2010-10-07 Andy Buckley * Adding a --with-root flag to rivet-buildplugin to add root-config --libs flags to the plugin build command. 2010-09-24 Andy Buckley * Releasing as Rivet 1.3.0. * Bundling underscore.sty to fix problems with running make-plots on dat files generated by compare-histos from AIDA files with underscores in their names. 2010-09-16 Andy Buckley * Fix error in N_effective definition for weighted profile errors. 2010-08-18 Andy Buckley * Adding MC_GENERIC analysis. NB. Frank Siegert also added MC_HJETS. 2010-08-03 Andy Buckley * Fixing compare-histos treatment of what is now a ref file, and speeding things up... again. What a mess! 2010-08-02 Andy Buckley * Adding rivet-nopy: a super-simple Rivet C++ command line interface which avoids Python to make profiling and debugging easier. * Adding graceful exception handling to the AnalysisHandler event loop methods. * Changing compare-histos behaviour to always show plots for which there is at least one MC histo. The default behaviour should now be the correct one in 99% of use cases. 2010-07-30 Andy Buckley * Merging in a fix for shared_ptrs not being compared for insertion into a set based on raw pointer value. 2010-07-16 Andy Buckley * Adding an explicit library dependency declaration on libHepMC, and hence removing the -lHepMC from the rivet-config --libs output. 2010-07-14 Andy Buckley * Adding a manual section on use of Rivet (and AGILe) as libraries, and how to use the -config scripts to aid compilation. * FastJets projection now allows setting of a jet area definition, plus a hacky mapping for getting the area-enabled cluster sequence. Requested by Pavel Starovoitov & Paolo Francavilla. * Lots of script updates in last two weeks! 2010-06-30 Andy Buckley * Minimising amount of Log class mapped into SWIG. * Making Python ext build checks fail with error rather than warning if it has been requested (or, rather, not explicitly disabled). 2010-06-28 Andy Buckley * Converting rivet Python module to be a package, with the dlopen flag setting etc. done around the SWIG generated core wrapper module (rivet.rivetwrap). * Requiring Python >= 2.4.0 in rivet scripts (and adding a Python version checker function to rivet module) * Adding --epspng option to make-plots (and converting to use subprocess.Popen). 2010-06-27 Andy Buckley * Converting JADE_OPAL analysis to use the fastjet exclusive_ymerge_*max* function, rather than just exclusive_ymerge: everything looks good now. It seems that fastjet >= 2.4.2 is needed for this to work properly. 2010-06-24 Andy Buckley * Making rivet-buildplugin look in its own bin directory when trying to find rivet-config. 2010-06-23 Andy Buckley * Adding protection and warning about numerical precision issues in jet mass calculation/histogramming to the MC_JetAnalysis analysis. * Numerical precision improvement in calculation of Vector4::mass2. * Adding relative scale ratio plot flag to compare-histos * Extended command completion to rivet-config, compare-histos, and make-plots. * Providing protected log messaging macros, MSG_{TRACE,DEBUG,INFO,WARNING,ERROR} cf. Athena. * Adding environment-aware functions for Rivet search path list access. 2010-06-21 Andy Buckley * Using .info file beam ID and energy info in HTML and LaTeX documentation. * Using .info file beam ID and energy info in command-line printout. * Fixing a couple of references to temporary variables in the analysis beam info, which had been introduced during refactoring: have reinstated reference-type returns as the more efficient solution. This should not affect API compatibility. * Making SWIG configure-time check include testing for incompatibilities with the C++ compiler (re. the recurring _const_ char* literals issue). * Various tweaks to scripts: make-plots and compare-histos processes are now renamed (on Linux), rivet-config is avoided when computing the Rivet version,and RIVET_REF_PATH is also set using the rivet --analysis-path* flags. compare-histos now uses multiple ref data paths for .aida file globbing. * Hendrik changed VetoedFinalState comparison to always return UNDEFINED if vetoing on the results of other FS projections is being used. This is the only simple way to avoid problems emanating from the remainingFinalState thing. 2010-06-19 Andy Buckley * Adding --analysis-path and --analysis-path-append command-line flags to the rivet script, as a "persistent" way to set or extend the RIVET_ANALYSIS_PATH variable. * Changing -Q/-V script verbosity arguments to more standard -q/-v, after Hendrik moaned about it ;) * Small fix to TinyXML operator precendence: removes a warning, and I think fixes a small bug. * Adding plotinfo entries for new jet rapidity and jet mass plots in MC_JetAnalysis derivatives. * Moving MC_JetAnalysis base class into a new libRivetAnalysisTools library, with analysis base class and helper headers to be stored in the reinstated Rivet/Analyses include directory. 2010-06-08 Andy Buckley * Removing check for CEDARSTD #define guard, since we no longer compile against AGILe and don't have to be careful about duplication. * Moving crappy closest approach and decay significance functions from Utils into SVertex, which is the only place they have ever been used (and is itself almost entirely pointless). * Overhauling particle ID <-> name system to clear up ambiguities between enums, ints, particles and beams. There are no more enums, although the names are still available as const static ints, and names are now obtained via a singleton class which wraps an STL map for name/ID lookups in both directions. 2010-05-18 Hendrik Hoeth * Fixing factor-of-2 bug in the error calculation when scaling histograms. * Fixing D0_2001_S4674421 analysis. 2010-05-11 Andy Buckley * Replacing TotalVisibleMomentum with MissingMomentum in analyses and WFinder. Using vector ET rather than scalar ET in some places. 2010-05-07 Andy Buckley * Revamping the AnalysisHandler constructor and data writing, with some LWH/AIDA mangling to bypass the stupid AIDA idea of having to specify the sole output file and format when making the data tree. Preferred AnalysisHandler constructor now takes only one arg -- the runname -- and there is a new AH.writeData(outfile) method to replace AH.commitData(). Doing this now to begin migration to more flexible histogramming in the long term. 2010-04-21 Hendrik Hoeth * Fixing LaTeX problems (make-plots) on ancient machines, like lxplus. 2010-04-29 Andy Buckley * Fixing (I hope!) the treatment of weighted profile bin errors in LWH. 2010-04-21 Andy Buckley * Removing defunct and unused KtJets and Configuration classes. * Hiding some internal details from Doxygen. * Add @brief Doxygen comments to all analyses, projections and core classes which were missing them. 2010-04-21 Hendrik Hoeth * remove obsolete reference to InitialQuarks from DELPHI_2002 * fix normalisation in CDF_2000_S4155203 2010-04-20 Hendrik Hoeth * bin/make-plots: real support for 2-dim histograms plotted as colormaps, updated the documentation accordingly. * fix misleading help comment in configure.ac 2010-04-08 Andy Buckley * bin/root2flat: Adding this little helper script, minimally modified from one which Holger Schulz made for internal use in ATLAS. 2010-04-05 Andy Buckley * Using spiresbib in rivet-mkanalysis: analysis templates made with rivet-mkanalysis will now contain a SPIRES-dumped BibTeX key and entry if possible! * Adding BibKey and BibTeX entries to analysis metadata files, and updating doc build to use them rather than the time-consuming SPIRES screen-scraping. Added SPIRES BibTeX dumps to all analysis metadata using new (uninstalled & unpackaged) doc/get-spires-data script hack. * Updating metadata files to add Energies, Beams and PtCuts entries to all of them. * Adding ToDo, NeedsCrossSection, and better treatment of Beams and Energies entries in metadata files and in AnalysisInfo and Analysis interfaces. 2010-04-03 Andy Buckley * Frank Siegert: Update of rivet-mkhtml to conform to improved compare-histos. * Frank Siegert: LWH output in precision-8 scientific notation, to solve a binning precision problem... the first time weve noticed a problem! * Improved treatment of data/reference datasets and labels in compare-histos. * Rewrite of rivet-mkanalysis in Python to make way for neat additions. * Improving SWIG tests, since once again the user's biuld system must include SWIG (no test to check that it's a 'good SWIG', since the meaning of that depends on which compiler is being used and we hope that the user system is consistent... evidence from Finkified Macs and bloody SLC5 notwithstanding). 2010-03-23 Andy Buckley * Tag as patch release 1.2.1. 2010-03-22 Andy Buckley * General tidying of return arguments and intentionally unused parameters to keep -Wextra happy (some complaints remain from TinyXML, FastJet, and HepMC). * Some extra bug fixes: in FastJets projection with explicit plugin argument, removing muon veto cut on FoxWolframMoments. * Adding UNUSED macro to help with places where compiler warnings can't be helped. * Turning on -Wextra warnings, and fixing some violations. 2010-03-21 Andy Buckley * Adding MissingMomentum projection, as replacement for ~all uses of now-deprecated TotalVisibleMomentum projection. * Fixing bug with TotalVisibleMomentum projection usage in MC_SUSY analysis. * Frank Siegert fixed major bug in pTmin param passing to FastJets projection. D'oh: requires patch release. 2010-03-02 Andy Buckley * Tagging for 1.2.0 release... at last! 2010-03-01 Andy Buckley * Updates to manual, manual generation scripts, analysis info etc. * Add HepData URL to metadata print-out with rivet --show-analysis * Fix average Et plot in UA1 analysis to only apply to the tracker acceptance (but to include neutral particle contributions, i.e. the region of the calorimeter in the tracker acceptance). * Use Et rather than pT in filling the scalar Et measure in TotalVisibleMomentum. * Fixes to UA1 normalisation (which is rather funny in the paper). 2010-02-26 Andy Buckley * Update WFinder to not place cuts and other restrictions on the neutrino. 2010-02-11 Andy Buckley * Change analysis loader behaviour to use ONLY RIVET_ANALYSIS_PATH locations if set, otherwise use ONLY the standard Rivet analysis install path. Should only impact users of personal plugin analyses, who should now explicitly set RIVET_ANALYSIS_PATH to load their analysis... and who can now create personal versions of standard analyses without getting an error message about duplicate loading. 2010-01-15 Andy Buckley * Add tests for "stable" heavy flavour hadrons in jets (rather than just testing for c/b hadrons in the ancestor lists of stable jet constituents) 2009-12-23 Hendrik Hoeth * New option "RatioPlotMode=deviation" in make-plots. 2009-12-14 Hendrik Hoeth * New option "MainPlot" in make-plots. For people who only want the ratio plot and nothing else. * New option "ConnectGaps" in make-plots. Set to 1 if you want to connect gaps in histograms with a line when ErrorBars=0. Works both in PLOT and in HISTOGRAM sections. * Eliminated global variables for coordinates in make-plots and enabled multithreading. 2009-12-14 Andy Buckley * AnalysisHandler::execute now calls AnalysisHandler::init(event) if it has not yet been initialised. * Adding more beam configuration features to Beam and AnalysisHandler: the setRunBeams(...) methods on the latter now allows a beam configuration for the run to be specified without using the Run class. 2009-12-11 Andy Buckley * Removing use of PVertex from few remaining analyses. Still used by SVertex, which is itself hardly used and could maybe be removed... 2009-12-10 Andy Buckley * Updating JADE_OPAL to do the histo booking in init(), since sqrtS() is now available at that stage. * Renaming and slightly re-engineering all MC_*_* analyses to not be collider-specific (now the Analysis::sqrtS/beams()) methods mean that histograms can be dynamically binned. * Creating RivetUnvalidated.so plugin library for unvalidated analyses. Unvalidated analyses now need to be explicitly enabled with a --enable-unvalidated flag on the configure script. * Various min bias analyses updated and validated. 2009-12-10 Hendrik Hoeth * Propagate SPECIAL and HISTOGRAM sections from .plot files through compare-histos * STAR_2006_S6860818: vs particle mass, validate analysis 2009-12-04 Andy Buckley * Use scaling rather than normalising in DELPHI_1996: this is generally desirable, since normalizing to 1 for 1/sig dsig/dx observables isn't correct if any events fall outside the histo bounds. * Many fixes to OPAL_2004. * Improved Hemispheres interface to remove unnecessary consts on returned doubles, and to also return non-squared versions of (scaled) hemisphere masses. * Add "make pyclean" make target at the top level to make it easier for developers to clean their Python module build when the API is extended. * Identify use of unvalidated analyses with a warning message at runtime. * Providing Analysis::sqrtS() and Analysis::beams(), and making sure they're available by the time the init methods are called. 2009-12-02 Andy Buckley * Adding passing of first event sqrt(s) and beams to analysis handler. * Restructuring running to only use one HepMC input file (no-one was using multiple ones, right?) and to break down the Run class to cleanly separate the init and event loop phases. End of file is now neater. 2009-12-01 Andy Buckley * Adding parsing of beam types and pairs of energies from YAML. 2009-12-01 Hendrik Hoeth * Fixing trigger efficiency in CDF_2009_S8233977 2009-11-30 Andy Buckley * Using shared pointers to make I/O object memory management neater and less error-prone. * Adding crossSectionPerEvent() method [== crossSection()/sumOfWeights()] to Analysis. Useful for histogram scaling since numerator of sumW_passed/sumW_total (to calculate pass-cuts xsec) is cancelled by dividing histo by sumW_passed. * Clean-up of Particle class and provision of inline PID:: functions which take a Particle as an argument to avoid having to explicitly call the Particle::pdgId() method. 2009-11-30 Hendrik Hoeth * Fixing division by zero in Profile1D bin errors for bins with just a single entry. 2009-11-24 Hendrik Hoeth * First working version of STAR_2006_S6860818 2009-11-23 Hendrik Hoeth * Adding missing CDF_2001_S4751469 plots to uemerge * New "ShowZero" option in make-plots * Improving lots of plot defaults * Fixing typos / non-existing bins in CDF_2001_S4751469 and CDF_2004_S5839831 reference data 2009-11-19 Hendrik Hoeth * Fixing our compare() for doubles. 2009-11-17 Hendrik Hoeth * Zeroth version of STAR_2006_S6860818 analysis (identified strange particles). Not working yet for unstable particles. 2009-11-11 Andy Buckley * Adding separate jet-oriented and photon-oriented observables to MC PHOTONJETUE analysis. * Bug fix in MC leading jets analysis, and general tidying of leading jet analyses to insert units, etc. (should not affect any current results) 2009-11-10 Hendrik Hoeth * Fixing last issues in STAR_2006_S6500200 and setting it to VALIDATED. * Noramlise STAR_2006_S6870392 to cross-section 2009-11-09 Andy Buckley * Overhaul of jet caching and ParticleBase interface. * Adding lists of analyses' histograms (obtained by scanning the plot info files) to the LaTeX documentation. 2009-11-07 Andy Buckley * Adding checking system to ensure that Projections aren't registered before the init phase of analyses. * Now that the ProjHandler isn't full of defunct pointers (which tend to coincidentally point to *new* Projection pointers rather than undefined memory, hence it wasn't noticed until recently!), use of a duplicate projection name is now banned with a helpful message at runtime. * (Huge) overhaul of ProjectionHandler system to use shared_ptr: projections are now deleted much more efficiently, naturally cleaning themselves out of the central repository as they go out of scope. 2009-11-06 Andy Buckley * Adding Cmp specialisation, using fuzzyEquals(). 2009-11-05 Hendrik Hoeth * Fixing histogram division code. 2009-11-04 Hendrik Hoeth * New analysis STAR_2006_S6500200 (pion and proton pT spectra in pp collisions at 200 GeV). It is still unclear if they used a cut in rapidity or pseudorapidity, thus the analysis is declared "UNDER DEVELOPMENT" and "DO NOT USE". * Fixing compare() in NeutralFinalState and MergedFinalState 2009-11-04 Andy Buckley * Adding consistence checking on beam ID and sqrt(s) vs. those from first event. 2009-11-03 Andy Buckley * Adding more assertion checks to linear algebra testing. 2009-11-02 Hendrik Hoeth * Fixing normalisation issue with stacked histograms in make-plots. 2009-10-30 Hendrik Hoeth * CDF_2009_S8233977: Updating data and axes labels to match final paper. Normalise to cross-section instead of data. 2009-10-23 Andy Buckley * Fixing Cheese-3 plot in CDF 2004... at last! 2009-10-23 Hendrik Hoeth * Fix muon veto in CDF_1994_S2952106, CDF_2005_S6217184, CDF_2008_S7782535, and D0_2004_S5992206 2009-10-19 Andy Buckley * Adding analysis info files for MC SUSY and PHOTONJETUE analyses. * Adding MC UE analysis in photon+jet events. 2009-10-19 Hendrik Hoeth * Adding new NeutralFinalState projection. Note that this final state takes E_T instead of p_T as argument (makes more sense for neutral particles). The compare() method does not yet work as expected (E_T comparison still missing). * Adding new MergedFinalState projection. This merges two final states, removing duplicate particles. Duplicates are identified by looking at the genParticle(), so users need to take care of any manually added particles themselves. * Fixing most open issues with the STAR_2009_UE_HELEN analysis. There is only one question left, regarding the away region. * Set the default split-merge value for SISCone in our FastJets projection to the recommended (but not Fastjet-default!) value of 0.75. 2009-10-17 Andy Buckley * Adding parsing of units in cross-sections passed to the "-x" flag, i.e. "-x 101 mb" is parsed internally into 1.01e11 pb. 2009-10-16 Hendrik Hoeth * Disabling DELPHI_2003_WUD_03_11 in the Makefiles, since I don't trust the data. * Getting STAR_2009_UE_HELEN to work. 2009-10-04 Andy Buckley * Adding triggers and other tidying to (still unvalidated) UA1_1990 analysis. * Fixing definition of UA5 trigger to not be intrinscally different for pp and ppbar: this is corrected for (although it takes some readng to work this out) in the 1982 paper, which I think is the only one to compare the two modes. * Moving projection setup and registration into init() method for remaining analyses. * Adding trigger implementations as projections for CDF Runs 0 & 1, and for UA5. 2009-10-01 Andy Buckley * Moving projection setup and registration into init() method for analyses from ALEPH, CDF and the MC_ group. * Adding generic SUSY validation analysis, based on plots used in ATLAS Herwig++ validation. * Adding sorted particle accessors to FinalState (cf. JetAlg). 2009-09-29 Andy Buckley * Adding optional use of args as regex match expressions with -l/--list-analyses. 2009-09-03 Andy Buckley * Passing GSL include path to compiler, since its absence was breaking builds on systems with no GSL installation in a standard location (such as SLC5, for some mysterious reason!) * Removing lib extension passing to compiler from the configure script, because Macs and Linux now both use .so extensions for the plugin analysis modules. 2009-09-02 Andy Buckley * Adding analysis info file path search with RIVET_DATA_PATH variable (and using this to fix doc build.) * Improvements to AnalysisLoader path search. * Moving analysis sources back into single directory, after a proletarian uprising ;) 2009-09-01 Andy Buckley * Adding WFinder and WAnalysis, based on Z proj and analysis, with some tidying of the Z code. * ClusteredPhotons now uses an IdentifiedFS to pick the photons to be looped over, and only clusters photons around *charged* signal particles. 2009-08-31 Andy Buckley * Splitting analyses by directory, to make it easier to disable building of particular analysis group plugin libs. * Removing/merging headers for all analyses except for the special MC_JetAnalysis base class. * Exit with an error message if addProjection is used twice from the same parent with distinct projections. 2009-08-28 Andy Buckley * Changed naming convention for analysis plugin libraries, since the loader has changed so much: they must now *start* with the word "Rivet" (i.e. no lib prefix). * Split standard plugin analyses into several plugin libraries: these will eventually move into separate subdirs for extra build convenience. * Started merging analysis headers into the source files, now that we can (the plugin hooks previously forbade this). * Replacement of analysis loader system with a new one based on ideas from ThePEG, which uses dlopen-time instantiation of templated global variables to reduce boilerplate plugin hooks to one line in analyses. 2009-07-14 Frank Siegert * Replacing in-source histo-booking metadata with .plot files. 2009-07-14 Andy Buckley * Making Python wrapper files copy into place based on bundled versions for each active HepMC interface (2.3, 2.4 & 2.5), using a new HepMC version detector test in configure. * Adding YAML metadata files and parser, removing same metadata from the analysis classes' source headers. 2009-07-07 Andy Buckley * Adding Jet::hadronicEnergy() * Adding VisibleFinalState and automatically using it in JetAlg projections. * Adding YAML parser for new metadata (and eventually ref data) files. 2009-07-02 Andy Buckley * Adding Jet::neutralEnergy() (and Jet::totalEnergy() for convenience/symmetry). 2009-06-25 Andy Buckley * Tidying and small efficiency improvements in CDF_2008_S7541902 W+jets analysis (remove unneeded second stage of jet storing, sorting the jets twice, using foreach, etc.). 2009-06-24 Andy Buckley * Fixing Jet's containsBottom and containsCharm methods, since B hadrons are not necessarily to be found in the final state. Discovered at the same time that HepMC::GenParticle defines a massively unhelpful copy constructor that actually loses the tree information; it would be better to hide it entirely! * Adding RivetHepMC.hh, which defines container-type accessors to HepMC particles and vertices, making it possible to use Boost foreach and hence avoiding the usual huge boilerplate for-loops. 2009-06-11 Andy Buckley * Adding --disable-pdfmanual option, to make the bootstrap a bit more robust. * Re-enabling D0IL in FastJets: adding 10^-10 to the pTmin removes the numerical instability! * Fixing CDF_2004 min/max cone analysis to use calo jets for the leading jet Et binning. Thanks to Markus Warsinsky for (re)discovering this bug: I was sure it had been fixed. I'm optimistic that this will fix the main distributions, although Swiss Cheese "minus 3" is still likely to be broken. Early tests look okay, but it'll take more stats before we can remove the "do not trust" sign. 2009-06-10 Andy Buckley * Providing "calc" methods so that Thrust and Sphericity projections can be used as calculators without having to use the projecting/caching system. 2009-06-09 Andy Buckley * 1.1.3 release! * More doc building and SWIG robustness tweaks. 2009-06-07 Andy Buckley * Make doc build from metadata work even before the library is installed. 2009-06-07 Hendrik Hoeth * Fix phi rotation in CDF_2008_LEADINGJETS. 2009-06-07 Andy Buckley * Disabling D0 IL midpoint cone (using CDF modpoint instead), since there seems to be a crashing bug in FastJet's implementation: we can't release that way, since ~no D0 analyses will run. 2009-06-03 Andy Buckley * Putting SWIG-generated source files under SVN control to make life easier for people who we advise to check out the SVN head version, but who don't have a sufficiently modern copy of SWIG to * Adding the --disable-analyses option, for people who just want to use Rivet as a framework for their own analyses. * Enabling HepMC cross-section reading, now that HepMC 2.5.0 has been released. 2009-05-23 Hendrik Hoeth * Using gsl-config to locate libgsl * Fix the paths for linking such that our own libraries are found before any system libraries, e.g. for the case that there is an outdated fastjet version installed on the system while we want to use our own up-to-date version. * Change dmerge to ymerge in the e+e- analyses using JADE or DURHAM from fastjet. That's what it is called in fastjet-2.4 now. 2009-05-18 Andy Buckley * Adding use of gsl-config in configure script. 2009-05-16 Andy Buckley * Removing argument to vetoEvent macro, since no weight subtraction is now needed. It's now just an annotated return, with built-in debug log message. * Adding an "open" FinalState, which is only calculated once per even, then used by all other FSes, avoiding the loop over non-status 1 particles. 2009-05-15 Andy Buckley * Removing incorrect setting of DPS x-errs in CDF_2008 jet shape analysis: the DPS autobooking already gets this bit right. * Using Jet rather than FastJet::PseudoJet where possible, as it means that the phi ranges match up nicely between Particle and the Jet object. The FastJet objects are only really needed if you want to do detailed things like look at split/merge scales for e.g. diff jet rates or "y-split" analyses. * Tidying and debugging CDF jet shape analyses and jet shape plugin... ongoing, but I think I've found at least one real bug, plus a lot of stuff that can be done a lot more nicely. * Fully removing deprecated math functions and updating affected analyses. 2009-05-14 Andy Buckley * Removing redundant rotation in DISKinematics... this was a legacy of Peter using theta rather than pi-theta in his rotation. * Adding convenience phi, rho, eta, theta, and perp,perp2 methods to the 3 and 4 vector classes. 2009-05-12 Andy Buckley * Adding event auto-rotation for events with one proton... more complete approach? 2009-05-09 Hendrik Hoeth * Renaming CDF_2008_NOTE_9337 to CDF_2009_S8233977. * Numerous small bug fixes in ALEPH_1996_S3486095. * Adding data for one of the Rick-Field-style STAR UE analyses. 2009-05-08 Andy Buckley * Adding rivet-mkanalysis script, to make generating new analysis source templates easier. 2009-05-07 Andy Buckley * Adding null vector check to Vector3::azimuthalAngle(). * Fixing definition of HCM/Breit frames in DISKinematics, and adding asserts to check that the transformation is doing what it should. 2009-05-05 Andy Buckley * Removing eta and Et cuts from CDF 2000 Z pT analysis, based on our reading of the paper, and converting most of the analysis to a call of the ZFinder projection. 2009-05-05 Hendrik Hoeth * Support non-default seed_threshold in CDF cone jet algorithms. * New analyses STAR_2006_S6870392 and STAR_2008_S7993412. In STAR_2008_S7993412 only the first distribution is filled at the moment. STAR_2006_S6870392 is normalised to data instead of the Monte Carlo cross-section, since we don't have that available in the HepMC stream yet. 2009-05-05 Andy Buckley * Changing Event wrapper to copy whole GenEvents rather than pointers, use std units if supported in HepMC, and run a placeholder function for event auto-orientation. 2009-04-28 Andy Buckley * Removing inclusion of IsolationTools header by analyses that aren't actually using the isolation tools... which is all of them. Leaving the isolation tools in place for now, as there might still be use cases for them and there's quite a lot of code there that deserves a second chance to be used! 2009-04-24 Andy Buckley * Deleting Rivet implementations of TrackJet and D0ILConeJets: the code from these has now been incorporated into FastJet 2.4.0. * Removed all mentions of the FastJet JADE patch and the HAVE_JADE preprocessor macro. * Bug fix to D0_2008_S6879055 to ensure that cuts compare to both electron and positron momenta (was just comparing against electrons, twice, probably thanks to the miracle of cut and paste). * Converting all D0 IL Cone jets to use FastJets. Involved tidying D0_2004 jet azimuthal decorrelation analysis and D0_2008_S6879055 as part of migration away from using the getLorentzJets method, and removing the D0ILConeJets header from quite a few analyses that weren't using it at all. * Updating CDF 2001 to use FastJets in place of TrackJet, and adding axis labels to its plots. * Note that ZEUS_2001_S4815815 uses the wrong jet definition: it should be a cone but curently uses kT. * Fixing CDF_2005_S6217184 to use correct (midpoint, R=0.7) jet definition. That this was using a kT definition with R=1.0 was only made obvious when the default FastJets constructor was removed. * Removing FastJets default constructor: since there are now several good (IRC safe) jet definitions available, there is no obvious safe default and analyses should have to specify which they use. * Moving FastJets constructors into implementation file to reduce recompilation dependencies, and adding new plugins. * Ensuring that axis labels actually get written to the output data file. 2009-04-22 Andy Buckley * Adding explicit FastJet CDF jet alg overlap_threshold constructor param values, since the default value from 2.3.x is now removed in version 2.4.0. * Removing use of HepMC ThreeVector::mag method (in one place only) since this has been removed in version 2.5.0b. * Fix to hepmc.i (included by rivet.i) to ignore new HepMC 2.5.0b GenEvent stream operator. 2009-04-21 Andy Buckley * Dependency on FastJet now requires version 2.4.0 or later. Jade algorithm is now native. * Moving all analysis constructors and Projection headers from the analysis header files into their .cc implementation files, cutting header dependencies. * Removing AIDA headers: now using LWH headers only, with enhancement to use axis labels. This facility is now used by the histo booking routines, and calling the booking function versions which don't specify axis labels will result in a runtime warning. 2009-04-07 Andy Buckley * Adding $(DESTDIR) prefix to call to Python module "setup.py install" * Moving HepMC SWIG mappings into Python Rivet module for now: seems to work-around the SL type-mapping bug. 2009-04-03 Andy Buckley * Adding MC analysis for LHC UE: higher-pT replica of Tevatron 2008 leading jets study. * Adding CDF_1990 pseudorapidity analysis. * Moving CDF_2001 constructor into implementation file. * Cleaning up CDF_2008_LEADINGJETS a bit, e.g. using foreach loops. * Adding function interface for specifying axis labels in histo bookings. Currently has no effect, since AIDA doesn't seem to have a mechanism for axis labels. It really is a piece of crap. 2009-03-18 Andy Buckley * Adding docs "make upload" and other tweaks to make the doc files fit in with the Rivet website. * Improving LaTex docs to show email addresses in printable form and to group analyses by collider or other metadata. * Adding doc script to include run info in LaTeX docs, and to make HTML docs. * Removing WZandh projection, which wasn't generator independent and whose sole usage was already replaced by ZFinder. * Improvements to constructors of ZFinder and InvMassFS. * Changing ExampleTree to use real FS-based Z finding. 2009-03-16 Andy Buckley * Allow the -H histo file spec to give a full name if wanted. If it doesn't end in the desired extension, it will be added. * Adding --runname option (and API elements) to choose a run name to be prepended as a "top level directory" in histo paths. An empty value results in no extra TLD. 2009-03-06 Andy Buckley * Adding R=0.2 photon clustering to the electrons in the CDF 2000 Z pT analysis. 2009-03-04 Andy Buckley * Fixing use of fastjet-config to not use the user's PATH variable. * Fixing SWIG type table for HepMC object interchange. 2009-02-20 Andy Buckley * Adding use of new metadata in command line analysis querying with the rivet command, and in building the PDF Rivet manual. * Adding extended metadata methods to the Analysis interface and the Python wrapper. All standard analyses comply with this new interface. 2009-02-19 Andy Buckley * Adding usefully-scoped config headers, a Rivet::version() function which uses them, and installing the generated headers to fix "external" builds against an installed copy of Rivet. The version() function has been added to the Python wrapper. 2009-02-05 Andy Buckley * Removing ROOT dependency and linking. Woo! There's no need for this now, because the front-end accepts no histo format switch and we'll just use aida2root for output conversions. Simpler this way, and it avoids about half of our compilation bug reports from 32/64 bit ROOT build confusions. 2009-02-04 Andy Buckley * Adding automatic generation of LaTeX manual entries for the standard analyses. 2009-01-20 Andy Buckley * Removing RivetGun and TCLAP source files! 2009-01-19 Andy Buckley * Added psyco Python optimiser to rivet, make-plots and compare-histos. * bin/aida2root: Added "-" -> "_" mangling, following requests. 2009-01-17 Andy Buckley * 1.1.2 release. 2009-01-15 Andy Buckley * Converting Python build system to bundle SWIG output in tarball. 2009-01-14 Andy Buckley * Converting AIDA/LWH divide function to return a DPS so that bin width factors don't get all screwed up. Analyses adapted to use the new division operation (a DPS/DPS divide would also be nice... but can wait for YODA). 2009-01-06 Andy Buckley * bin/make-plots: Added --png option for making PNG output files, using 'convert' (after making a PDF --- it's a bit messy) * bin/make-plots: Added --eps option for output filtering through ps2eps. 2009-01-05 Andy Buckley * Python: reworking Python extension build to use distutils and newer m4 Python macros. Probably breaks distcheck but is otherwise more robust and platform independent (i.e. it should now work on Macs). 2008-12-19 Andy Buckley * make-plots: Multi-threaded make-plots and cleaned up the LaTeX building a bit (necessary to remove the implicit single global state). 2008-12-18 Andy Buckley * make-plots: Made LaTeX run in no-stop mode. * compare-histos: Updated to use a nicer labelling syntax on the command line and to successfully build MC-MC plots. 2008-12-16 Andy Buckley * Made LWH bin edge comparisons safe against numerical errors. * Added Particle comparison functions for sorting. * Removing most bad things from ExampleTree and tidying up. Marked WZandh projection for removal. 2008-12-03 Hendrik Hoeth * Added the two missing observables to the CDF_2008_NOTE_9337 analysis, i.e. track pT and sum(ET). There is a small difference between our MC output and the MC plots of the analysis' author, we're still waiting for the author's comments. 2008-12-02 Andy Buckley * Overloading use of a std::set in the interface, since the version of SWIG on Sci Linux doesn't have a predefined mapping for STL sets. 2008-12-02 Hendrik Hoeth * Fixed uemerge. The output was seriously broken by a single line of debug information in fillAbove(). Also changed uemerge output to exponential notation. * Unified ref and mc histos in compare-histos. Histos with one bin are plotted linear. Option for disabling the ratio plot. Several fixes for labels, legends, output directories, ... * Changed rivetgun's fallback directory for parameter files to $PREFIX/share/AGILe, since that's where the steering files now are. * Running aida2flat in split mode now produces make-plots compatible dat-files for direct plotting. 2008-11-28 Andy Buckley * Replaced binreloc with an upgraded and symbol-independent copy. 2008-11-25 Andy Buckley * Added searching of $RIVET_REF_PATH for AIDA reference data files. 2008-11-24 Andy Buckley * Removing "get"s and other obsfucated syntax from ProjectionApplier (Projection and Analysis) interfaces. 2008-11-21 Andy Buckley * Using new "global" Jet and V4 sorting functors in TrackJet. Looks like there was a sorting direction problem before... * Verbose mode with --list-analyses now shows descriptions as well as analysis names. * Moved data/Rivet to data/refdata and moved data/RivetGun contents to AGILe (since generator steering is no longer a Rivet thing) * Added unchecked ratio plots to D0 Run II jet + photon analysis. * Added D0 inclusive photon analysis. * Added D0 Z rapidity analysis. * Tidied up constructor interface and projection chain implementation of InvMassFinalState. * Added ~complete set of Jet and FourMomentum sorting functors. 2008-11-20 Andy Buckley * Added IdentifiedFinalState. * Moved a lot of TrackJet and Jet code into .cc files. * Fixed a caching bug in Jet: cache flag resets should never be conditional, since they are then sensitive to initialisation errors. * Added quark enum values to ParticleName. * Rationalised JetAlg interfaces somewhat, with "size()" and "jets()" methods in the interface. * Added D0 W charge asymmetry and D0 inclusive jets analyses. 2008-11-18 Andy Buckley * Adding D0 inclusive Z pT shape analysis. * Added D0 Z + jet pT and photon + jet pT spectrum analyses. * Lots of tidying up of particle, event, particle name etc. * Now the first event is used to detect the beam type and remove incompatible analyses. 2008-11-17 Andy Buckley * Added bash completion for rivetgun. * Starting to provide stand-alone call methods on projections so they can be used without the caching infrastructure. This could also be handy for unit testing. * Adding functionality (sorting function and built-in sorting schemes) to the JetAlg interface. 2008-11-10 Hendrik Hoeth * Fix floating point number output format in aida2flat and flat2aida * Added CDF_2002_S4796047: CDF Run-I charged multiplicity distribution * Renamed CDF_2008_MINBIAS to CDF_2008_NOTE_9337, since the note is publicly available now. 2008-11-10 Hendrik Hoeth * Added DELPHI_2003_WUD_03_11: Delphi 4-jet angular distributions. There is still a problem with the analysis, so don't use it yet. But I need to commit the code because my laptop is broken ... 2008-11-06 Andy Buckley * Code review: lots of tidying up of projections and analyses. * Fixes for compatibility with the LLVM C & C++ compiler. * Change of Particle interface to remove "get"-prefixed method names. 2008-11-05 Andy Buckley * Adding ability to query analysis metadata from the command line. * Example of a plugin analyis now in plugindemo, with a make check test to make sure that the plugin analysis is recognised by the command line "rivet" tool. * GCC 4.3 fix to mat-vec tests. 2008-11-04 Andy Buckley * Adding native logger control from Python interface. 2008-11-03 Andy Buckley * Adding bash_completion for rivet executable. 2008-10-31 Andy Buckley * Clean-up of histo titles and analysis code review. * Added momentum construction functions from FastJet PseudoJets. 2008-10-28 Andy Buckley * Auto-booking of histograms with a name, rather than the HepData ID 3-tuple is now possible. * Fix in CDF 2001 pT spectra to get the normalisations to depend on the pT_lead cutoff. 2008-10-23 Andy Buckley * rivet handles signals neatly, as for rivetgun, so that premature killing of the analysis process will still result in an analysis file. * rivet now accepts cross-section as a command line argument and, if it is missing and is required, will prompt the user for it interactively. 2008-10-22 Andy Buckley * rivet (Python interface) now can list analyses, check when adding analyses that the given names are valid, specify histo file name, and provide sensibly graded event number logging. 2008-10-20 Andy Buckley * Corrections to CDF 2004 analysis based on correspondance with Joey Huston. M bias dbns now use whole event within |eta| < 0.7, and Cheese plots aren't filled at all if there are insufficient jets (and the correct ETlead is used). 2008-10-08 Andy Buckley * Added AnalysisHandler::commitData() method, to allow the Python interface to write out a histo file without having to know anything about the histogramming API. * Reduced SWIG interface file to just map a subset of Analysis and AnalysisHandler functionality. This will be the basis for a new command line interface. 2008-10-06 Andy Buckley * Converted FastJets plugin to use a Boost shared_pointer to the cached ClusterSequence. The nullness of the pointer is now used to indicate an empty tracks (and hence jets) set. Once FastJet natively support empty CSeqs, we can rewrite this a bit more neatly and ditch the shared_ptr. 2008-10-02 Andy Buckley * The CDF_2004 (Acosta) data file now includes the full range of pT for the min bias data at both 630 and 1800 GeV. Previously, only the small low-pT insert plot had been entered into HepData. 2008-09-30 Andy Buckley * Lots of updates to CDF_2004 (Acosta) UE analysis, including sorting jets by E rather than Et, and factorising transverse cone code into a function so that it can be called with a random "leading jet" in min bias mode. Min bias histos are now being trial-filled just with tracks in the transverse cones, since the paper is very unclear on this. * Discovered a serious caching problem in FastJets projection when an empty tracks vector is passed from the FinalState. Unfortunately, FastJet provides no API way to solve the problem, so we'll have to report this upstream. For now, we're solving this for CDF_2004 by explicitly vetoing events with no tracks. * Added Doxygen to the build with target "dox" * Moved detection of whether cross-section information is needed into the AnalysisHandler, with dynamic computation by scanning contained analyses. * Improved robustness of event reading to detect properly when the input file is smaller than expected. 2008-09-29 Hendrik Hoeth * New analysis: CDF_2000_S4155203 2008-09-23 Andy Buckley * rivetgun can now be built and run without AGILe. Based on a patch by Frank Siegert. 2008-09-23 Hendrik Hoeth * Some preliminary numbers for the CDF_2008_LEADINGJETS analysis (only transverse region and not all observables. But all we have now.) 2008-09-17 Andy Buckley * Breaking up the mammoth "generate" function, to make Python mapping easier, among other reasons. * Added if-zero-return-zero checking to angle mapping functions, to avoid problems where 1e-19 gets mapped on to 2 pi and then fails boundary asserts. * Added HistoHandler singleton class, which will be a central repository for holding analyses' histogram objects to be accessed via a user-chosen name. 2008-08-26 Andy Buckley * Allowing rivet-config to return combined flags. 2008-08-14 Andy Buckley * Fixed some g++ 4.3 compilation bugs, including "vector" not being a valid name for a method which returns a physics vector, since it clashes with std::vector (which we globally import). Took the opportunity to rationalise the Jet interface a bit, since "particle" was used to mean "FourMomentum", and "Particle" types required a call to "getFullParticle". I removed the "gets" at the same time, as part of our gradual migration to a coherent naming policy. 2008-08-11 Andy Buckley * Tidying of FastJets and added new data files from HepData. 2008-08-10 James Monk * FastJets now uses user_index property of fastjet::PseudoJet to reconstruct PID information in jet contents. 2008-08-07 Andy Buckley * Reworking of param file and command line parsing. Tab characters are now handled by the parser, in a way equivalent to spaces. 2008-08-06 Andy Buckley * Added extra histos and filling to Acosta analysis - all HepData histos should now be filled, depending on sqrt{s}. Also trialling use of LaTeX math mode in titles. 2008-08-05 Andy Buckley * More data files for CDF analyses (2 x 2008, 1 x 1994), and moved the RivetGun AtlasPythia6.params file to more standard fpythia-atlas.params (and added to the install list). 2008-08-04 Andy Buckley * Reduced size of available options blocks in RivetGun help text by removing "~" negating variants (which are hardly ever used in practice) and restricting beam particles to PROTON, ANTIPROTON,ELECTRON and POSITRON. * Fixed Et sorting in Acosta analysis. 2008-08-01 Andy Buckley * Added AIDA headers to the install list, since external (plugin-type) analyses need them to be present for compilation to succeed. 2008-07-29 Andy Buckley * Fixed missing ROOT compile flags for libRivet. * Added command line repetition to logging. 2008-07-29 Hendrik Hoeth * Included the missing numbers and three more observables in the CDF_2008_NOTE_9351 analysis. 2008-07-29 Andy Buckley * Fixed wrong flags on rivet-config 2008-07-28 Hendrik Hoeth * Renamed CDF_2008_DRELLYAN to CDF_2008_NOTE_9351. Updated numbers and cuts to the final version of this CDF note. 2008-07-28 Andy Buckley * Fixed polar angle calcuation to use atan2. * Added "mk" prefixes and x/setX convention to math classes. 2008-07-28 Hendrik Hoeth * Fixed definition of FourMomentum::pT (it had been returning pT2) 2008-07-27 Andy Buckley * Added better tests for Boost headers. * Added testing for -ansi, -pedantic and -Wall compiler flags. 2008-07-25 Hendrik Hoeth * updated DELPHI_2002_069_CONF_603 according to information from the author 2008-07-17 Andy Buckley * Improvements to aida2flat: now can produce one output file per histo, and there is a -g "gnuplot mode" which comments out the YODA/make_plot headers to make the format readable by gnuplot. * Import boost::assign namespace contents into the Rivet namespace --- provides very useful intuitive collection initialising functions. 2008-07-15 Andy Buckley * Fixed missing namespace in vector/matrix testing. * Removed Boost headers: now a system dependency. * Fixed polarRadius infinite loop. 2008-07-09 Andy Buckley * Fixed definitions of mapAngleMPiToPi, etc. and used them to fix the Jet::getPhi method. * Trialling use of "foreach" loop in CDF_2004: it works! Very nice. 2008-07-08 Andy Buckley * Removed accidental reference to an "FS" projection in FinalStateHCM's compare method. rivetgun -A now works again. * Added TASSO, SLD and D0_2008 reference data. The TASSO and SLD papers aren't installed or included in the tarball since there are currently no plans to implement these analyses. * Added Rivet namespacing to vector, matrix etc. classes. This required some re-writing and the opportunity was taken to move some canonical function definitions inside the classes and to improve the header structure of the Math area. 2008-07-07 Andy Buckley * Added Rivet namespace to Units.hh and Constants.hh. * Added Doxygen "@brief" flags to analyses. * Added "RIVET_" namespacing to all header guards. * Merged Giulio Lenzi's isolation/vetoing/invmass projections and D0 2008 analysis. 2008-06-23 Jon Butterworth * Modified FastJet to fix ysplit and split and filter. * Modified ExampleTree to show how to call them. 2008-06-19 Hendrik Hoeth * Added first version of the CDF_2008_DRELLYAN analysis described on http://www-cdf.fnal.gov/physics/new/qcd/abstracts/UEinDY_08.html There is a small difference between the analysis and this implementation, but it's too small to be visible. The fpythia-cdfdrellyan.params parameter file is for this analysis. * Added first version of the CDF_2008_MINBIAS analysis described on http://www-cdf.fnal.gov/physics/new/qcd/abstracts/minbias_08.html The .aida file is read from the plots on the web and will change. I'm still discussing some open questions about the analysis with the author. 2008-06-18 Jon Butterworth * Added First versions of splitJet and filterJet methods to fastjet.cc. Not yet tested, buyer beware. 2008-06-18 Andy Buckley * Added extra sorted Jets and Pseudojets methods to FastJets, and added ptmin argument to the JetAlg getJets() method, requiring a change to TrackJet. 2008-06-13 Andy Buckley * Fixed processing of "RG" parameters to ensure that invalid iterators are never used. 2008-06-10 Andy Buckley * Updated AIDA reference files, changing "/HepData" root path to "/REF". Still missing a couple of reference files due to upstream problems with the HepData records. 2008-06-09 Andy Buckley * rivetgun now handles termination signals (SIGTERM, SIGINT and SIGHUP) gracefully, finishing the event loop and finalising histograms. This means that histograms will always get written out, even if not all the requested events have been generated. 2008-06-04 Hendrik Hoeth * Added DELPHI_2002_069_CONF_603 analysis 2008-05-30 Hendrik Hoeth * Added InitialQuarks projection * Added OPAL_1998_S3780481 analysis 2008-05-29 Andy Buckley * distcheck compatibility fixes and autotools tweaks. 2008-05-28 Andy Buckley * Converted FastJet to use Boost smart_ptr for its plugin handling, to solve double-delete errors stemming from the heap cloning of projections. * Added (a subset of) Boost headers, particularly the smart pointers. 2008-05-24 Andy Buckley * Added autopackage spec files. * Merged these changes into the trunk. * Added a registerClonedProjection(...) method to ProjectionHandler: this is needed so that cloned projections will have valid pointer entries in the ProjectHandler repository. * Added clone() methods to all projections (need to use this, since the templated "new PROJ(proj)" approach to cloning can't handle object polymorphism. 2008-05-19 Andy Buckley * Moved projection-applying functions into ProjectionApplier base class (from which Projection and Analysis both derive). * Added Rivet-specific exceptions in place of std::runtime_error. * Removed unused HepML reference files. * Added error handling for requested analyses with wrong case convention / missing name. 2008-05-15 Hendrik Hoeth * New analysis PDG_Hadron_Multiplicities * flat2aida converter 2008-05-15 Andy Buckley * Removed unused mysterious Perl scripts! * Added RivetGun.HepMC logging of HepMC event details. 2008-05-14 Hendrik Hoeth * New analysis DELPHI_1995_S3137023. This analysis contains the xp spectra of Xi+- and Sigma(1385)+-. 2008-05-13 Andy Buckley * Improved logging interface: log levels are now integers (for cross-library compatibility and level setting also applies to existing loggers. 2008-05-09 Andy Buckley * Improvements to robustness of ROOT checks. * Added --version flag on config scripts and rivetgun. 2008-05-06 Hendrik Hoeth * New UnstableFinalState projection which selects all hadrons, leptons and real photons including unstable particles. * In the DELPHI_1996_S3430090 analysis the multiplicities for pi+/pi- and p0 are filled, using the UnstableFinalState projection. 2008-05-06 Andy Buckley * FastJets projection now protects against the case where no particles exist in the final state (where FastJet throws an exception). * AIDA file writing is now separated from the AnalysisHandler::finalize method... API users can choose what to do with the histo objects, be that writing out or further processing. 2008-04-29 Andy Buckley * Increased default tolerances in floating point comparisons as they were overly stringent and valid f.p. precision errors were being treated as significant. * Implemented remainder of Acosta UE analysis. * Added proper getEtSum() to Jet. * Added Et2() member and function to FourMomentum. * Added aida2flat conversion script. * Fixed ambiguity in TrackJet algorithm as to how the iteration continues when tracks are merged into jets in the inner loop. 2008-04-28 Andy Buckley * Merged in major "ProjectionHandler" branch. Projections are now all stored centrally in the singleton ProjectionHandler container, rather than as member pointers in projections and analyses. This also affects the applyProjection mechanism, which is now available as a templated method on Analysis and Projection. Still a few wrinkles need to be worked out. * The branch changes required a comprehensive review of all existing projections and analyses: lots of tidying up of these classes, as well as the auxiliary code like math utils, has taken place. Too much to list and track, unfortunately! 2008-03-28 Andy Buckley * Started second CDF UE analysis ("Acosta"): histograms defined. * Fixed anomalous factor of 2 in LWH conversion from Profile1D to DataPointSet. * Added pT distribution histos to CDF 2001 UE analysis. 2008-03-26 Andy Buckley * Removed charged+neutral versions of histograms and projections from DELPHI analysis since they just duplicate the more robust charged-only measurements and aren't really of interest for tuning. 2008-03-10 Andy Buckley * Profile histograms now use error computation with proper weighting, as described here: http://en.wikipedia.org/wiki/Weighted_average 2008-02-28 Andy Buckley * Added --enable-jade flag for Professor studies with patched FastJet. * Minor fixes to LCG tag generator and gfilt m4 macros. * Fixed projection slicing issues with Field UE analysis. * Added Analysis::vetoEvent(e) function, which keeps track of the correction to the sum of weights due to event vetoing in analysis classes. 2008-02-26 Andy Buckley * Vector and derived classes now initialise to have zeroed components when the no-arg constructor is used. * Added Analysis::scale() function to scale 1D histograms. Analysis::normalize() uses it internally, and the DELPHI (A)EEC, whose histo weights are not pure event weights, and normalised using scale(h, 1/sumEventWeights). 2008-02-21 Hendrik Hoeth * Added EEC and AEEC to the DELPHI_1996_S3430090 analysis. The normalisation of these histograms is still broken (ticket #163). 2008-02-19 Hendrik Hoeth * Many fixes to the DELPHI_1996_S3430090 analysis: bugfix in the calulation of eigenvalues/eigenvectors in MatrixDiag.hh for the sphericity, rewrite of Thrust/Major/Minor, fixed scaled momentum, hemisphere masses, normalisation in single particle events, final state slicing problems in the projections for Thrust, Sphericity and Hemispheres. 2008-02-08 Andy Buckley * Applied fixes and extensions to DIS classes, based on submissions by Dan Traynor. 2008-02-06 Andy Buckley * Made projection pointers used for cut combining into const pointers. Required some redefinition of the Projection* comparison operator. * Temporarily added FinalState member to ChargedFinalState to stop projection lifetime crash. 2008-02-01 Andy Buckley * Fixed another misplaced factor of bin width in the Analysis::normalize() method. 2008-01-30 Andy Buckley * Fixed the conversion of IHistogram1D to DPS, both via the explicit Analysis::normalize() method and the implicit AnalysisHandler::treeNormalize() route. The root of the problem is the AIDA choice of the word "height" to represent the sum of weights in a bin: i.e. the bin width is not taken into account either in computing bin height or error. 2008-01-22 Andy Buckley * Beam projection now uses HepMC GenEvent::beam_particles() method to get the beam particles. This is more portable and robust for C++ generators, and equivalent to the existing "first two" method for Fortran generators. 2008-01-17 Andy Buckley * Added angle range fix to pseudorapidity function (thanks to Piergiulio Lenzi). 2008-01-10 Andy Buckley * Changed autobooking plot codes to use zero-padding (gets the order right in JAS, file browser, ROOT etc.). Also changed the 'ds' part to 'd' for consistency. HepData's AIDA output has been correspondingly updated, as have the bundled data files. 2008-01-04 Andy Buckley * Tidied up JetShape projection a bit, including making the constructor params const references. This seems to have sorted the runtime segfault in the CDF_2005 analysis. * Added caching of the analysis bin edges from the AIDA file - each analysis object will now only read its reference file once, which massively speeds up the rivetgun startup time for analyses with large numbhers of autobooked histos (e.g. the DELPHI_1996_S3430090 analysis). 2008-01-02 Andy Buckley * CDF_2001_S4751469 now uses the LossyFinalState projection, with an 8% loss rate. * Added LossyFinalState and HadronicFinalState, and fixed a "polarity" bug in the charged final state projection (it was keeping only the *uncharged* particles). * Now using isatty(1) to determine whether or not color escapes can be used. Also removed --color argument, since it can't have an effect (TCLAP doesn't do position-based flag toggling). * Made Python extension build optional (and disabled by default). 2008-01-01 Andy Buckley * Removed some unwanted DEBUG statements, and lowered the level of some infrastructure DEBUGs to TRACE level. * Added bash color escapes to the logger system. 2007-12-21 Leif Lonnblad * include/LWH/ManagedObject.h: Fixed infinite loop in encodeForXML cf. ticket #135. 2007-12-20 Andy Buckley * Removed HepPID, HepPDT and Boost dependencies. * Fixed XML entity encoding in LWH. Updated CDF_2007_S7057202 analysis to not do its own XML encoding of titles. 2007-12-19 Andy Buckley * Changed units header to set GeV = 1 (HepMC convention) and using units in CDF UE analysis. 2007-12-15 Andy Buckley * Introduced analysis metadata methods for all analyses (and made them part of the Analysis interface). 2007-12-11 Andy Buckley * Added JetAlg base projection for TrackJet, FastJet etc. 2007-12-06 Andy Buckley * Added checking for Boost library, and the standard Boost test program for shared_ptr. * Got basic Python interface running - required some tweaking since Python and Rivet's uses of dlopen collide (another RTLD_GLOBAL issue - see http://muttley.hates-software.com/2006/01/25/c37456e6.html ) 2007-12-05 Andy Buckley * Replaced all use of KtJets projection with FastJets projection. KtJets projection disabled but left undeleted for now. CLHEP and KtJet libraries removed from configure searches and Makefile flags. 2007-12-04 Andy Buckley * Param file loading now falls back to the share/RivetGun directory if a local file can't be found and the provided name has no directory separators in it. * Converted TrackJet projection to update the jet centroid with each particle added, using pT weighting in the eta and phi averaging. 2007-12-03 Andy Buckley * Merged all command line handling functions into one large parse function, since only one executable now needs them. This removes a few awkward memory leaks. * Removed rivet executable - HepMC file reading functionality will move into rivetgun. * Now using HepMC IO_GenEvent format (IO_Ascii and IO_ExtendedAscii are deprecated). Now requires HepMC >= 2.3.0. * Added forward declarations of GSL diagonalisation routines, eliminating need for GSL headers to be installed on build machine. 2007-11-27 Andy Buckley * Removed charge differentiation from Multiplicity projection (use CFS proj) and updated ExampleAnalysis to produce more useful numbers. * Introduced binreloc for runtime path determination. * Fixed several bugs in FinalState, ChargedFinalState, TrackJet and Field analysis. * Completed move to new analysis naming scheme. 2007-11-26 Andy Buckley * Removed conditional HAVE_FASTJET bits: FastJet is now compulsory. * Merging appropriate RivetGun parts into Rivet. RivetGun currently broken. 2007-11-23 Andy Buckley * Renaming analyses to Spires-ID scheme: currently of form S, to become __. 2007-11-20 Andy Buckley * Merged replacement vectors, matrices and boosts into trunk. 2007-11-15 Leif Lonnblad * src/Analysis.cc, include/Rivet/Analysis.hh: Introduced normalize function. See ticket #126. 2007-10-31 Andy Buckley * Tagging as 1.0b2 for HERA-LHC meeting. 2007-10-25 Andy Buckley * Added AxesDefinition base interface to Sphericity and Thrust, used by Hemispheres. * Exposed BinaryCut class, improved its interface and fixed a few bugs. It's now used by VetoedFinalState for momentum cuts. * Removed extra output from autobooking AIDA reader. * Added automatic DPS booking. 2007-10-12 Andy Buckley * Improved a few features of the build system 2007-10-09 James Monk * Fixed dylib dlopen on Mac OS X. 2007-10-05 Andy Buckley * Added new reference files. 2007-10-03 Andy Buckley * Fixed bug in configure.ac which led to explicit CXX setting being ignored. * Including Logging.hh in Projection.hh, hence new transitive dependency on Logging.hh being installed. Since this is the normal behaviour, I don't think this is a problem. * Fixed segfaulting bug due to use of addProjection() in locally-scoped contained projections. This isn't a proper fix, since the whole framework should be designed to avoid the possibility of bugs like this. * Added newly built HepML and AIDA reference files for current analyses. 2007-10-02 Andy Buckley * Fixed possible null-pointer dereference in Particle copy constructor and copy assignment: this removes one of two blocker segfaults, the other of which is related to the copy-assignment of the TotalVisMomentum projection in the ExampleTree analysis. 2007-10-01 Andy Buckley * Fixed portable path to Rivet share directory. 2007-09-28 Andy Buckley * Added more functionality to the rivet-config script: now has libdir, includedir, cppflags, ldflags and ldlibs options. 2007-09-26 Andy Buckley * Added the analysis library closer function to the AnalysisHandler finalize() method, and also moved the analysis delete loop into AnalysisHandler::finalize() so as not to try deleting objects whose libraries have already closed. * Replaced the RivetPaths.cc.in method for portable paths with something using -D defines - much simpler! 2007-09-21 Lars Sonnenschein * Added HepEx0505013 analysis and JetShape projection (some fixes by AB.) * Added GetLorentzJets member function to D0 RunII cone jet projection 2007-09-21 Andy Buckley * Fixed lots if bugs and bad practice in HepEx0505013 (to make it compile-able!) * Downclassed the log messages from the Test analysis to DEBUG level. * Added isEmpty() method to final state projection. * Added testing for empty final state and useful debug log messages to sphericity projection. 2007-09-20 Andy Buckley * Added Hemispheres projection, which calculates event hemisphere masses and broadenings. 2007-09-19 Andy Buckley * Added an explicit copy assignment operator to Particle: the absence of one of these was responsible for the double-delete error. * Added a "fuzzy equals" utility function for float/double types to Utils.hh (which already contains a variety of handy little functions). * Removed deprecated Beam::operator(). * Added ChargedFinalState projection and de-pointered the contained FinalState projection in VetoedFinalState. 2007-09-18 Andy Buckley * Major bug fixes to the regularised version of the sphericity projection (and hence the Parisi tensor projection). Don't trust C & D param results from any previous version! * Added extra methods to thrust and sphericity projections to get the oblateness and the sphericity basis (currently returns dummy axes since I can't yet work out how to get the similarity transform eigenvectors from CLHEP) 2007-09-14 Andy Buckley * Merged in a branch of pluggable analysis mechanisms. 2007-06-25 Jon Butterworth * Fixed some bugs in the root output for DataPoint.h 2007-06-25 Andy Buckley * include/Rivet/**/Makefile.am: No longer installing headers for "internal" functionality. * include/Rivet/Projections/*.hh: Removed the private restrictions on copy-assignment operators. 2007-06-18 Leif Lonnblad * include/LWH/Tree.h: Fixed minor bug in listObjectNames. * include/LWH/DataPointSet.h: Fixed setCoordinate functions so that they resize the vector of DataPoints if it initially was empty. * include/LWH/DataPoint.h: Added constructor taking a vector of measuremts. 2007-06-16 Leif Lonnblad * include/LWH/Tree.h: Implemented the listObjectNames and ls functions. * include/Rivet/Projections/FinalStateHCM.hh, include/Rivet/Projections/VetoedFinalState.hh: removed _theParticles and corresponding access function. Use base class variable instead. * include/Rivet/Projections/FinalState.hh: Made _theParticles protected. 2007-06-13 Leif Lonnblad * src/Projections/FinalStateHCM.cc, src/Projections/DISKinematics.cc: Equality checks using GenParticle::operator== changed to check for pointer equality. * include/Rivet/Analysis/HepEx9506012.hh: Uses modified DISLepton projection. * include/Rivet/Particle.hh: Added member function to check if a GenParticle is associated. * include/Rivet/Projections/DISLepton.hh, src/Projections/DISLepton.cc: Fixed bug in projection. Introduced final state projection to limit searching for scattered lepton. Still not properly tested. 2007-06-08 Leif Lonnblad * include/Rivet/Projections/PVertex.hh, src/Projections/PVertex.cc: Fixed the projection to simply get the signal_process_vertex from the GenEvent. This is the way it should work. If the GenEvent does not have a signal_process_vertex properly set up in this way, the problem is with the class that fills the GenEvent. 2007-06-06 Jon Butterworth * Merged TotalVisibleMomentum and CalMET * Added pT ranges to Vetoed final state projection 2007-05-27 Jon Butterworth * Fixed initialization of VetoedFinalStateProjection in ExampleTree 2007-05-27 Leif Lonnblad * include/Rivet/Projections/KtJets.*: Make sure the KtEvent is deleted properly. 2007-05-26 Jon Butterworth * Added leptons to the ExampleTree. * Added TotalVisibleEnergy projection, and added output to ExampleTree. 2007-05-25 Jon Butterworth * Added a charged lepton projection 2007-05-23 Andy Buckley * src/Analysis/HepEx0409040.cc: Changed range of the histograms to the "pi" range rather than the "128" range. * src/Analysis/Analysis.cc: Fixed a bug in the AIDA path building. Histogram auto-booking now works. 2007-05-23 Leif Lonnblad * src/Analysis/HepEx9506012.cc: Now uses the histogram booking function in the Analysis class. 2007-05-23 Jon Butterworth * Fixed bug in PRD65092002 (was failing on zero jets) 2007-05-23 Andy Buckley * Added (but haven't properly tested) a VetoedFinalState projection. * Added normalize() method for AIDA 1D histograms. * Added configure checking for Mac OS X version, and setting the development target flag accordingly. 2007-05-22 Andy Buckley * Added an ostream method for AnalysisName enums. * Converted Analyses and Projections to use projection lists, cuts and beam constraints. * Added beam pair combining to the BeamPair sets of Projections by finding set meta-intersections. * Added methods to Cuts, Analysis and Projection to make Cut definition easier. * Fixed default fall-through in cut handling switch statement and now using -numeric_limits::max() rather than min() * Added more control of logging presentation via static flag methods on Log. 2007-05-13 Andy Buckley * Added self-consistency checking mechanisms for Cuts and Beam * Re-implemented the cut-handling part of RivetInfo as a Cuts class. * Changed names of Analysis and Projection name() and handler() methods to getName() and getHandler() to be more consistent with the rest of the public method names in those classes. 2007-05-02 Andy Buckley * Added auto-booking of histogram bins from AIDA XML files. The AIDA files are located via a C++ function which is generated from RivetPaths.cc.in by running configure. 2007-04-18 Andy Buckley * Added a preliminary version of the Rick Field UE analysis, under the name PRD65092002. 2007-04-19 Leif Lonnblad * src/Analysis/HepEx0409040.cc: The reason this did not compile under gcc-4 is that some iterators into a vector were wrongly assued to be pointers and were initialized to 0 and later compared to 0. I've changed this to initialize to end() of the corresponding vector and to compare with the same end() later. 2007-04-05 Andy Buckley * Lots of name changes in anticipation of the MCNet school. RivetHandler is now AnalysisHandler (since that's what it does!), BeamParticle has become ParticleName, and RivetInfo has been split into Cut and BeamConstraint portions. * Added BeamConstraint mechanism, which can be used to determine if an analysis is compatible with the beams being used in the generator. The ParticleName includes an "ANY" wildcard for this purpose. 2006-03-19 Andy Buckley * Added "rivet" executable which can read in HepMC ASCII dump files and apply Rivet analyses on the events. 2007-02-24 Leif Lonnblad * src/Projections/KtJets.cc: Added comparison of member variables in compare() function * all: Merged changes from polymorphic-projections branch into trunk 2007-02-17 Leif Lonnblad * all: projections and analysis handlers: All projections which uses other projctions now has a pointer rather than a copy of those projections to allow for polymorphism. The constructors has also been changed to require the used projections themselves, rather than the arguments needed to construct them. 2007-02-17 Leif Lonnblad * src/Projections/FinalState.cc, include/Rivet/Projections/FinalState.icc (Rivet), include/Rivet/Projections/FinalState.hh: Added cut in transverse momentum on the particles to be included in the final state. 2007-02-06 Leif Lonnblad * include/LWH/HistogramFactory.h: Fixed divide-by-zero in divide function. Also fixed bug in error calculation in divide function. Introduced checkBin function to make sure two histograms are equal even if they have variable bin widths. * include/LWH/Histogram1D.h: In normalize(double), do not do anything if the sum of the bins are zero to avoid dividing by zero. 2007-01-20 Leif Lonnblad * src/Test/testLWH.cc: Modified to output files using the Tree. * configure.ac: Removed AC_CONFIG_AUX_DIR([include/Rivet/Config]) since the directory does not exist anymore. 2006-12-21 Andy Buckley * Rivet will now conditionally install the AIDA and LWH headers if it can't find them when configure'ing. * Started integrating Leif's LWH package to fulfill the AIDA duties. * Replaced multitude of CLHEP wrapper headers with a single RivetCLHEP.h header. 2006-11-20 Andy Buckley * Introduced log4cpp logging. * Added analysis enum, which can be used as input to an analysis factory by Rivet users. 2006-11-02 Andy Buckley * Yet more, almost pointless, administrative moving around of things with the intention of making the structure a bit better-defined: * The RivetInfo and RivetHandler classes have been moved from src/Analysis into src as they are really the main Rivet interface classes. The Rivet.h header has also been moved into the "header root". * The build of a single shared library in lib has been disabled, with the library being built instead in src. 2006-10-14 Andy Buckley * Introduced a minimal subset of the Sherpa math tools, such as Vector{3,4}D, Matrix, etc. The intention is to eventually cut the dependency on CLHEP. 2006-07-28 Andy Buckley * Moving things around: all sources now in directories under src 2006-06-04 Leif Lonnblad * Analysis/Examples/HZ95108.*: Now uses CentralEtHCM. Also set GeV units on the relevant histograms. * Projections/CentralEtHCM.*: Making a special class just to get out one number - the summed Et in the central rapidity bin - may seem like an overkill. But in case some one else might nees it... 2006-06-03 Leif Lonnblad * Analysis/Examples/HZ95108.*: Added the hz95108 energy flow analysis from HZtool. * Projections/DISLepton.*: Since many HERA measurements do not care if we have electron or positron beam, it is now possible to specify lepton or anti-lepton. * Projections/Event.*: Added member and access function for the weight of an event (taken from the GenEvent object.weights()[0]. * Analysis/RivetHandler.*: Now depends explicitly on the AIDA interface. An AIDA analysis factory must be specified in the constructor, where a tree and histogram factory is automatically created. Added access functions to the relevant AIDA objects. * Analysis/AnalysisBase.*: Added access to the RivetHandler and its AIDA factories. 2005-12-27 Leif Lonnblad * configure.ac: Added -I$THEPEGPATH/include to AM_CPPFLAGS. * Config/Rivet.h: Added some std incudes and using std:: declaration. * Analysis/RivetInfo.*: Fixed some bugs. The RivetInfo facility now works, although it has not been thoroughly tested. * Analysis/Examples/TestMultiplicity.*: Re-introduced FinalStateHCM for testing purposes but commented it away again. * .: Made a number of changes to implement handling of RivetInfo objects. diff --git a/analyses/pluginALICE/ALICE_2011_S8909580.cc b/analyses/pluginALICE/ALICE_2011_S8909580.cc --- a/analyses/pluginALICE/ALICE_2011_S8909580.cc +++ b/analyses/pluginALICE/ALICE_2011_S8909580.cc @@ -1,103 +1,103 @@ #include "Rivet/Analysis.hh" #include "Rivet/Projections/FinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { class ALICE_2011_S8909580 : public Analysis { public: ALICE_2011_S8909580() : Analysis("ALICE_2011_S8909580") {} public: void init() { - const UnstableFinalState ufs(Cuts::abseta < 15); + const UnstableParticles ufs(Cuts::abseta < 15); declare(ufs, "UFS"); _histPtK0s = bookHisto1D(1, 1, 1); _histPtLambda = bookHisto1D(2, 1, 1); _histPtAntiLambda = bookHisto1D(3, 1, 1); _histPtXi = bookHisto1D(4, 1, 1); _histPtPhi = bookHisto1D(5, 1, 1); _temp_h_Lambdas = bookHisto1D("TMP/h_Lambdas", refData(6, 1, 1)); _temp_h_Kzeros = bookHisto1D("TMP/h_Kzeros", refData(6, 1, 1)); _h_LamKzero = bookScatter2D(6, 1, 1); } void analyze(const Event& event) { const double weight = event.weight(); - const UnstableFinalState& ufs = apply(event, "UFS"); + const UnstableParticles& ufs = apply(event, "UFS"); foreach (const Particle& p, ufs.particles()) { const double absrap = p.absrap(); const double pT = p.pT()/GeV; if (absrap < 0.8) { switch(p.pid()) { case 3312: case -3312: if ( !( p.hasAncestor(3334) || p.hasAncestor(-3334) ) ) { _histPtXi->fill(pT, weight); } break; if (absrap < 0.75) { case 310: _histPtK0s->fill(pT, weight); _temp_h_Kzeros->fill(pT, 2*weight); break; case 3122: if ( !( p.hasAncestor(3322) || p.hasAncestor(-3322) || p.hasAncestor(3312) || p.hasAncestor(-3312) || p.hasAncestor(3334) || p.hasAncestor(-3334) ) ) { _histPtLambda->fill(pT, weight); _temp_h_Lambdas->fill(pT, weight); } break; case -3122: if ( !( p.hasAncestor(3322) || p.hasAncestor(-3322) || p.hasAncestor(3312) || p.hasAncestor(-3312) || p.hasAncestor(3334) || p.hasAncestor(-3334) ) ) { _histPtAntiLambda->fill(pT, weight); _temp_h_Lambdas->fill(pT, weight); } break; } if (absrap<0.6) { case 333: _histPtPhi->fill(pT, weight); break; } } } } } void finalize() { scale(_histPtK0s, 1./(1.5*sumOfWeights())); scale(_histPtLambda, 1./(1.5*sumOfWeights())); scale(_histPtAntiLambda, 1./(1.5*sumOfWeights())); scale(_histPtXi, 1./(1.6*sumOfWeights())); scale(_histPtPhi, 1./(1.2*sumOfWeights())); divide(_temp_h_Lambdas, _temp_h_Kzeros, _h_LamKzero); } private: Histo1DPtr _histPtK0s, _histPtLambda, _histPtAntiLambda, _histPtXi, _histPtPhi; Histo1DPtr _temp_h_Lambdas, _temp_h_Kzeros; Scatter2DPtr _h_LamKzero; }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(ALICE_2011_S8909580); } diff --git a/analyses/pluginALICE/ALICE_2012_I1116147.cc b/analyses/pluginALICE/ALICE_2012_I1116147.cc --- a/analyses/pluginALICE/ALICE_2012_I1116147.cc +++ b/analyses/pluginALICE/ALICE_2012_I1116147.cc @@ -1,87 +1,87 @@ //-*- C++ -*- #include "Rivet/Analysis.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { class ALICE_2012_I1116147 : public Analysis { public: /// Constructor DEFAULT_RIVET_ANALYSIS_CTOR(ALICE_2012_I1116147); /// Initialise projections and histograms void init() { - const UnstableFinalState ufs(Cuts::absrap < RAPMAX); + const UnstableParticles ufs(Cuts::absrap < RAPMAX); addProjection(ufs, "UFS"); // Check if cm energy is 7 TeV or 0.9 TeV if (fuzzyEquals(sqrtS()/GeV, 900, 1E-3)) _cm_energy_case = 1; else if (fuzzyEquals(sqrtS()/GeV, 7000, 1E-3)) _cm_energy_case = 2; if (_cm_energy_case == 0) throw UserError("Center of mass energy of the given input is neither 900 nor 7000 GeV."); // Book histos if (_cm_energy_case == 1) { _h_pi0 = bookHisto1D(2,1,1); } else { _h_pi0 = bookHisto1D(1,1,1); _h_eta = bookHisto1D(3,1,1); _h_etaToPion = bookScatter2D(4,1,1); } // Temporary plots with the binning of _h_etaToPion to construct the eta/pi0 ratio _temp_h_pion = bookHisto1D("TMP/h_pion", refData(4,1,1)); _temp_h_eta = bookHisto1D("TMP/h_eta", refData(4,1,1)); } /// Per-event analysis void analyze(const Event& event) { const double weight = event.weight(); - const FinalState& ufs = apply(event, "UFS"); + const FinalState& ufs = apply(event, "UFS"); for (const Particle& p : ufs.particles()) { const double normfactor = TWOPI*p.pT()/GeV*2*RAPMAX; if (p.pid() == 111) { // Neutral pion; ALICE corrects for pi0 feed-down from K_0_s and Lambda if (p.hasAncestor(310) || p.hasAncestor(3122) || p.hasAncestor(-3122)) continue; //< K_0_s, Lambda, Anti-Lambda _h_pi0->fill(p.pT()/GeV, weight/normfactor); _temp_h_pion->fill(p.pT()/GeV, weight); } else if (p.pid() == 221 && _cm_energy_case == 2) { // eta meson (only for 7 TeV) _h_eta->fill(p.pT()/GeV, weight/normfactor); _temp_h_eta->fill(p.pT()/GeV, weight); } } } /// Normalize histos and construct ratio void finalize() { scale(_h_pi0, crossSection()/microbarn/sumOfWeights()); if (_cm_energy_case == 2) { divide(_temp_h_eta, _temp_h_pion, _h_etaToPion); scale(_h_eta, crossSection()/microbarn/sumOfWeights()); } } private: const double RAPMAX = 0.8; int _cm_energy_case = 0; Histo1DPtr _h_pi0, _h_eta; Histo1DPtr _temp_h_pion, _temp_h_eta; Scatter2DPtr _h_etaToPion; }; DECLARE_RIVET_PLUGIN(ALICE_2012_I1116147); } diff --git a/analyses/pluginALICE/ALICE_2014_I1300380.cc b/analyses/pluginALICE/ALICE_2014_I1300380.cc --- a/analyses/pluginALICE/ALICE_2014_I1300380.cc +++ b/analyses/pluginALICE/ALICE_2014_I1300380.cc @@ -1,120 +1,120 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { class ALICE_2014_I1300380 : public Analysis { public: ALICE_2014_I1300380() : Analysis("ALICE_2014_I1300380") {} public: void init() { - const UnstableFinalState cfs(Cuts::absrap<0.5); + const UnstableParticles cfs(Cuts::absrap<0.5); declare(cfs, "CFS"); // Plots from the paper _histPtSigmaStarPlus = bookHisto1D("d01-x01-y01"); // Sigma*+ _histPtSigmaStarMinus = bookHisto1D("d01-x01-y02"); // Sigma*- _histPtSigmaStarPlusAnti = bookHisto1D("d01-x01-y03"); // anti Sigma*- _histPtSigmaStarMinusAnti = bookHisto1D("d01-x01-y04"); // anti Sigma*+ _histPtXiStar = bookHisto1D("d02-x01-y01"); // 0.5 * (xi star + anti xi star) _histAveragePt = bookProfile1D("d03-x01-y01"); // profile } void analyze(const Event& event) { const double weight = event.weight(); - const UnstableFinalState& cfs = apply(event, "CFS"); + const UnstableParticles& cfs = apply(event, "CFS"); foreach (const Particle& p, cfs.particles()) { // protections against mc generators decaying long-lived particles if ( !(p.hasAncestor(310) || p.hasAncestor(-310) || // K0s p.hasAncestor(130) || p.hasAncestor(-130) || // K0l p.hasAncestor(3322) || p.hasAncestor(-3322) || // Xi0 p.hasAncestor(3122) || p.hasAncestor(-3122) || // Lambda p.hasAncestor(3222) || p.hasAncestor(-3222) || // Sigma+/- p.hasAncestor(3312) || p.hasAncestor(-3312) || // Xi-/+ p.hasAncestor(3334) || p.hasAncestor(-3334) )) // Omega-/+ { int aid = abs(p.pdgId()); if (aid == 211 || // pi+ aid == 321 || // K+ aid == 313 || // K*(892)0 aid == 2212 || // proton aid == 333 ) { // phi(1020) _histAveragePt->fill(p.mass()/GeV, p.pT()/GeV, weight); } } // end if "rejection of long-lived particles" switch (p.pdgId()) { case 3224: _histPtSigmaStarPlus->fill(p.pT()/GeV, weight); _histAveragePt->fill(p.mass()/GeV, p.pT()/GeV, weight); break; case -3224: _histPtSigmaStarPlusAnti->fill(p.pT()/GeV, weight); _histAveragePt->fill(p.mass()/GeV, p.pT()/GeV, weight); break; case 3114: _histPtSigmaStarMinus->fill(p.pT()/GeV, weight); _histAveragePt->fill(p.mass()/GeV, p.pT()/GeV, weight); break; case -3114: _histPtSigmaStarMinusAnti->fill(p.pT()/GeV, weight); _histAveragePt->fill(p.mass()/GeV, p.pT()/GeV, weight); break; case 3324: _histPtXiStar->fill(p.pT()/GeV, weight); _histAveragePt->fill(p.mass()/GeV, p.pT()/GeV, weight); break; case -3324: _histPtXiStar->fill(p.pT()/GeV, weight); _histAveragePt->fill(p.mass()/GeV, p.pT()/GeV, weight); break; case 3312: _histAveragePt->fill(p.mass()/GeV, p.pT()/GeV, weight); break; case -3312: _histAveragePt->fill(p.mass()/GeV, p.pT()/GeV, weight); break; case 3334: _histAveragePt->fill(p.mass()/GeV, p.pT()/GeV, weight); break; case -3334: _histAveragePt->fill(p.mass()/GeV, p.pT()/GeV, weight); break; } } } void finalize() { scale(_histPtSigmaStarPlus, 1./sumOfWeights()); scale(_histPtSigmaStarPlusAnti, 1./sumOfWeights()); scale(_histPtSigmaStarMinus, 1./sumOfWeights()); scale(_histPtSigmaStarMinusAnti, 1./sumOfWeights()); scale(_histPtXiStar, 1./sumOfWeights()/ 2.); } private: // plots from the paper Histo1DPtr _histPtSigmaStarPlus; Histo1DPtr _histPtSigmaStarPlusAnti; Histo1DPtr _histPtSigmaStarMinus; Histo1DPtr _histPtSigmaStarMinusAnti; Histo1DPtr _histPtXiStar; Profile1DPtr _histAveragePt; }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(ALICE_2014_I1300380); } diff --git a/analyses/pluginALICE/ALICE_2017_I1512110.cc b/analyses/pluginALICE/ALICE_2017_I1512110.cc --- a/analyses/pluginALICE/ALICE_2017_I1512110.cc +++ b/analyses/pluginALICE/ALICE_2017_I1512110.cc @@ -1,88 +1,88 @@ //-*- C++ -*- #include "Rivet/Analysis.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { class ALICE_2017_I1512110 : public Analysis { public: /// Constructor ALICE_2017_I1512110() : Analysis("ALICE_2017_I1512110"), _rapmax(0.8) { } void init() { - const UnstableFinalState ufs(Cuts::absrap < _rapmax); + const UnstableParticles ufs(Cuts::absrap < _rapmax); addProjection(ufs, "UFS"); _h_pi0 = bookHisto1D(3,1,1); _h_eta = bookHisto1D(4,1,1); _h_etaToPion = bookScatter2D(5,1,1); // temporary plots with the binning of _h_etaToPion // to construct the eta/pi0 ratio in the end _temp_h_pion = bookHisto1D("TMP/h_pion",refData(5,1,1)); _temp_h_eta = bookHisto1D("TMP/h_eta",refData(5,1,1)); } void analyze(const Event& event) { const double weight = event.weight(); - const UnstableFinalState& ufs = applyProjection(event, "UFS"); + const UnstableParticles& ufs = applyProjection(event, "UFS"); for (const Particle& p : ufs.particles()) { if (p.pid() == 111) { // neutral pion; ALICE corrects for pi0 feed-down if ( !(p.hasAncestor(310) || p.hasAncestor(130) || // K0_s, K0_l p.hasAncestor(321) || p.hasAncestor(-321) || // K+,K- p.hasAncestor(3122) || p.hasAncestor(-3122) || // Lambda, Anti-Lambda p.hasAncestor(3212) || p.hasAncestor(-3212) || // Sigma0 p.hasAncestor(3222) || p.hasAncestor(-3222) || // Sigmas p.hasAncestor(3112) || p.hasAncestor(-3112) || // Sigmas p.hasAncestor(3322) || p.hasAncestor(-3322) || // Cascades p.hasAncestor(3312) || p.hasAncestor(-3312) )) // Cascades { _h_pi0->fill(p.pT()/GeV, weight /(TWOPI*p.pT()/GeV*2*_rapmax)); _temp_h_pion->fill(p.pT()/GeV, weight); } } else if (p.pid() == 221){ // eta meson _h_eta->fill(p.pT()/GeV, weight /(TWOPI*p.pT()/GeV*2*_rapmax)); _temp_h_eta->fill(p.pT()/GeV, weight); } } } void finalize() { scale(_h_pi0, crossSection()/picobarn/sumOfWeights()); scale(_h_eta, crossSection()/picobarn/sumOfWeights()); divide(_temp_h_eta, _temp_h_pion, _h_etaToPion); } private: double _rapmax; Histo1DPtr _h_pi0; Histo1DPtr _h_eta; Histo1DPtr _temp_h_pion; Histo1DPtr _temp_h_eta; Scatter2DPtr _h_etaToPion; }; DECLARE_RIVET_PLUGIN(ALICE_2017_I1512110); } diff --git a/analyses/pluginALICE/ALICE_2017_I1620477.cc b/analyses/pluginALICE/ALICE_2017_I1620477.cc --- a/analyses/pluginALICE/ALICE_2017_I1620477.cc +++ b/analyses/pluginALICE/ALICE_2017_I1620477.cc @@ -1,90 +1,90 @@ //-*- C++ -*- #include "Rivet/Analysis.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" #include "Rivet/Tools/ParticleUtils.hh" namespace Rivet { class ALICE_2017_I1620477 : public Analysis { public: /// Constructor ALICE_2017_I1620477() : Analysis("ALICE_2017_I1620477"), _rapmax(0.8) { } void init() { - const UnstableFinalState ufs(Cuts::absrap < _rapmax); + const UnstableParticles ufs(Cuts::absrap < _rapmax); addProjection(ufs, "UFS"); _h_pi0 = bookHisto1D(1,1,1); _h_eta = bookHisto1D(2,1,1); _h_etaToPion = bookScatter2D(8,1,1); // temporary plots with the binning of _h_etaToPion // to construct the eta/pi0 ratio in the end _temp_h_pion = bookHisto1D("TMP/h_pion",refData(8,1,1)); _temp_h_eta = bookHisto1D("TMP/h_eta",refData(8,1,1)); } void analyze(const Event& event) { const double weight = event.weight(); - const UnstableFinalState& ufs = applyProjection(event, "UFS"); + const UnstableParticles& ufs = applyProjection(event, "UFS"); for(auto p: ufs.particles()) { if (p.pid() == 111) { // neutral pion; ALICE corrects for pi0 feed-down if ( !(p.hasAncestor(310) || p.hasAncestor(130) || // K0_s, K0_l p.hasAncestor(321) || p.hasAncestor(-321) || // K+,K- p.hasAncestor(3122) || p.hasAncestor(-3122) || // Lambda, Anti-Lambda p.hasAncestor(3212) || p.hasAncestor(-3212) || // Sigma0 p.hasAncestor(3222) || p.hasAncestor(-3222) || // Sigmas p.hasAncestor(3112) || p.hasAncestor(-3112) || // Sigmas p.hasAncestor(3322) || p.hasAncestor(-3322) || // Cascades p.hasAncestor(3312) || p.hasAncestor(-3312) )) // Cascades { _h_pi0->fill(p.pT()/GeV, weight /(TWOPI*p.pT()/GeV*2*_rapmax)); _temp_h_pion->fill(p.pT()/GeV, weight); } } else if (p.pid() == 221) { // eta meson _h_eta->fill(p.pT()/GeV, weight /(TWOPI*p.pT()/GeV*2*_rapmax)); _temp_h_eta->fill(p.pT()/GeV, weight); } } } void finalize() { scale(_h_pi0, crossSection()/picobarn/sumOfWeights()); scale(_h_eta, crossSection()/picobarn/sumOfWeights()); divide(_temp_h_eta, _temp_h_pion, _h_etaToPion); } private: double _rapmax; Histo1DPtr _h_pi0; Histo1DPtr _h_eta; Histo1DPtr _temp_h_pion; Histo1DPtr _temp_h_eta; Scatter2DPtr _h_etaToPion; }; DECLARE_RIVET_PLUGIN(ALICE_2017_I1620477); } diff --git a/analyses/pluginATLAS/ATLAS_2011_I944826.cc b/analyses/pluginATLAS/ATLAS_2011_I944826.cc --- a/analyses/pluginATLAS/ATLAS_2011_I944826.cc +++ b/analyses/pluginATLAS/ATLAS_2011_I944826.cc @@ -1,260 +1,260 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/ChargedFinalState.hh" #include "Rivet/Projections/IdentifiedFinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { class ATLAS_2011_I944826 : public Analysis { public: /// Constructor ATLAS_2011_I944826() : Analysis("ATLAS_2011_I944826") { _sum_w_ks = 0.0; _sum_w_lambda = 0.0; _sum_w_passed = 0.0; } /// Book histograms and initialise projections before the run void init() { - UnstableFinalState ufs(Cuts::pT > 100*MeV); + UnstableParticles ufs(Cuts::pT > 100*MeV); declare(ufs, "UFS"); ChargedFinalState mbts(Cuts::absetaIn(2.09, 3.84)); declare(mbts, "MBTS"); IdentifiedFinalState nstable(Cuts::abseta < 2.5 && Cuts::pT >= 100*MeV); nstable.acceptIdPair(PID::ELECTRON) .acceptIdPair(PID::MUON) .acceptIdPair(PID::PIPLUS) .acceptIdPair(PID::KPLUS) .acceptIdPair(PID::PROTON); declare(nstable, "nstable"); if (fuzzyEquals(sqrtS()/GeV, 7000, 1e-3)) { _hist_Ks_pT = bookHisto1D(1, 1, 1); _hist_Ks_y = bookHisto1D(2, 1, 1); _hist_Ks_mult = bookHisto1D(3, 1, 1); _hist_L_pT = bookHisto1D(7, 1, 1); _hist_L_y = bookHisto1D(8, 1, 1); _hist_L_mult = bookHisto1D(9, 1, 1); _hist_Ratio_v_y = bookScatter2D(13, 1, 1); _hist_Ratio_v_pT = bookScatter2D(14, 1, 1); // _temp_lambda_v_y = Histo1D(10, 0.0, 2.5); _temp_lambdabar_v_y = Histo1D(10, 0.0, 2.5); _temp_lambda_v_pT = Histo1D(18, 0.5, 4.1); _temp_lambdabar_v_pT = Histo1D(18, 0.5, 4.1); } else if (fuzzyEquals(sqrtS()/GeV, 900, 1E-3)) { _hist_Ks_pT = bookHisto1D(4, 1, 1); _hist_Ks_y = bookHisto1D(5, 1, 1); _hist_Ks_mult = bookHisto1D(6, 1, 1); _hist_L_pT = bookHisto1D(10, 1, 1); _hist_L_y = bookHisto1D(11, 1, 1); _hist_L_mult = bookHisto1D(12, 1, 1); _hist_Ratio_v_y = bookScatter2D(15, 1, 1); _hist_Ratio_v_pT = bookScatter2D(16, 1, 1); // _temp_lambda_v_y = Histo1D(5, 0.0, 2.5); _temp_lambdabar_v_y = Histo1D(5, 0.0, 2.5); _temp_lambda_v_pT = Histo1D(8, 0.5, 3.7); _temp_lambdabar_v_pT = Histo1D(8, 0.5, 3.7); } } // This function is required to impose the flight time cuts on Kaons and Lambdas double getPerpFlightDistance(const Rivet::Particle& p) { const HepMC::GenParticle* genp = p.genParticle(); const HepMC::GenVertex* prodV = genp->production_vertex(); const HepMC::GenVertex* decV = genp->end_vertex(); const HepMC::ThreeVector prodPos = prodV->point3d(); if (decV) { const HepMC::ThreeVector decPos = decV->point3d(); double dy = prodPos.y() - decPos.y(); double dx = prodPos.x() - decPos.x(); return add_quad(dx, dy); } return numeric_limits::max(); } bool daughtersSurviveCuts(const Rivet::Particle& p) { // We require the Kshort or Lambda to decay into two charged // particles with at least pT = 100 MeV inside acceptance region const HepMC::GenParticle* genp = p.genParticle(); const HepMC::GenVertex* decV = genp->end_vertex(); bool decision = true; if (!decV) return false; if (decV->particles_out_size() == 2) { std::vector pTs; std::vector charges; std::vector etas; foreach (const HepMC::GenParticle* gp, particles(decV, HepMC::children)) { pTs.push_back(gp->momentum().perp()); etas.push_back(fabs(gp->momentum().eta())); charges.push_back( Rivet::PID::threeCharge(gp->pdg_id()) ); // gp->print(); } if ( (pTs[0]/Rivet::GeV < 0.1) || (pTs[1]/Rivet::GeV < 0.1) ) { decision = false; MSG_DEBUG("Failed pT cut: " << pTs[0]/Rivet::GeV << " " << pTs[1]/Rivet::GeV); } if ( etas[0] > 2.5 || etas[1] > 2.5 ) { decision = false; MSG_DEBUG("Failed eta cut: " << etas[0] << " " << etas[1]); } if ( charges[0] * charges[1] >= 0 ) { decision = false; MSG_DEBUG("Failed opposite charge cut: " << charges[0] << " " << charges[1]); } } else { decision = false; MSG_DEBUG("Failed nDaughters cut: " << decV->particles_out_size()); } return decision; } /// Perform the per-event analysis void analyze(const Event& event) { const double weight = event.weight(); // ATLAS MBTS trigger requirement of at least one hit in either hemisphere if (apply(event, "MBTS").size() < 1) { MSG_DEBUG("Failed trigger cut"); vetoEvent; } // Veto event also when we find less than 2 particles in the acceptance region of type 211,2212,11,13,321 if (apply(event, "nstable").size() < 2) { MSG_DEBUG("Failed stable particle cut"); vetoEvent; } _sum_w_passed += weight; // This ufs holds all the Kaons and Lambdas - const UnstableFinalState& ufs = apply(event, "UFS"); + const UnstableParticles& ufs = apply(event, "UFS"); // Some conters int n_KS0 = 0; int n_LAMBDA = 0; // Particle loop foreach (const Particle& p, ufs.particles()) { // General particle quantities const double pT = p.pT(); const double y = p.rapidity(); const PdgId apid = p.abspid(); double flightd = 0.0; // Look for Kaons, Lambdas switch (apid) { case PID::K0S: flightd = getPerpFlightDistance(p); if (!inRange(flightd/mm, 4., 450.) ) { MSG_DEBUG("Kaon failed flight distance cut:" << flightd); break; } if (daughtersSurviveCuts(p) ) { _hist_Ks_y ->fill(y, weight); _hist_Ks_pT->fill(pT/GeV, weight); _sum_w_ks += weight; n_KS0++; } break; case PID::LAMBDA: if (pT < 0.5*GeV) { // Lambdas have an additional pT cut of 500 MeV MSG_DEBUG("Lambda failed pT cut:" << pT/GeV << " GeV"); break; } flightd = getPerpFlightDistance(p); if (!inRange(flightd/mm, 17., 450.)) { MSG_DEBUG("Lambda failed flight distance cut:" << flightd/mm << " mm"); break; } if ( daughtersSurviveCuts(p) ) { if (p.pid() == PID::LAMBDA) { _temp_lambda_v_y.fill(fabs(y), weight); _temp_lambda_v_pT.fill(pT/GeV, weight); _hist_L_y->fill(y, weight); _hist_L_pT->fill(pT/GeV, weight); _sum_w_lambda += weight; n_LAMBDA++; } else if (p.pid() == -PID::LAMBDA) { _temp_lambdabar_v_y.fill(fabs(y), weight); _temp_lambdabar_v_pT.fill(pT/GeV, weight); } } break; } } // Fill multiplicity histos _hist_Ks_mult->fill(n_KS0, weight); _hist_L_mult->fill(n_LAMBDA, weight); } /// Normalise histograms etc., after the run void finalize() { MSG_DEBUG("# Events that pass the trigger: " << _sum_w_passed); MSG_DEBUG("# Kshort events: " << _sum_w_ks); MSG_DEBUG("# Lambda events: " << _sum_w_lambda); /// @todo Replace with normalize()? scale(_hist_Ks_pT, 1.0/_sum_w_ks); scale(_hist_Ks_y, 1.0/_sum_w_ks); scale(_hist_Ks_mult, 1.0/_sum_w_passed); /// @todo Replace with normalize()? scale(_hist_L_pT, 1.0/_sum_w_lambda); scale(_hist_L_y, 1.0/_sum_w_lambda); scale(_hist_L_mult, 1.0/_sum_w_passed); // Division of histograms to obtain lambda_bar/lambda ratios divide(_temp_lambdabar_v_y, _temp_lambda_v_y, _hist_Ratio_v_y); divide(_temp_lambdabar_v_pT, _temp_lambda_v_pT, _hist_Ratio_v_pT); } private: /// Counters double _sum_w_ks, _sum_w_lambda, _sum_w_passed; /// @name Persistent histograms //@{ Histo1DPtr _hist_Ks_pT, _hist_Ks_y, _hist_Ks_mult; Histo1DPtr _hist_L_pT, _hist_L_y, _hist_L_mult; Scatter2DPtr _hist_Ratio_v_pT, _hist_Ratio_v_y; //@} /// @name Temporary histograms //@{ Histo1D _temp_lambda_v_y, _temp_lambdabar_v_y; Histo1D _temp_lambda_v_pT, _temp_lambdabar_v_pT; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(ATLAS_2011_I944826); } diff --git a/analyses/pluginATLAS/ATLAS_2011_S9035664.cc b/analyses/pluginATLAS/ATLAS_2011_S9035664.cc --- a/analyses/pluginATLAS/ATLAS_2011_S9035664.cc +++ b/analyses/pluginATLAS/ATLAS_2011_S9035664.cc @@ -1,138 +1,138 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/Beam.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/ChargedFinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief J/psi production at ATLAS class ATLAS_2011_S9035664: public Analysis { public: /// Constructor ATLAS_2011_S9035664() : Analysis("ATLAS_2011_S9035664") {} /// @name Analysis methods //@{ void init() { - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); _nonPrRapHigh = bookHisto1D( 14, 1, 1); _nonPrRapMedHigh = bookHisto1D( 13, 1, 1); _nonPrRapMedLow = bookHisto1D( 12, 1, 1); _nonPrRapLow = bookHisto1D( 11, 1, 1); _PrRapHigh = bookHisto1D( 18, 1, 1); _PrRapMedHigh = bookHisto1D( 17, 1, 1); _PrRapMedLow = bookHisto1D( 16, 1, 1); _PrRapLow = bookHisto1D( 15, 1, 1); _IncRapHigh = bookHisto1D( 20, 1, 1); _IncRapMedHigh = bookHisto1D( 21, 1, 1); _IncRapMedLow = bookHisto1D( 22, 1, 1); _IncRapLow = bookHisto1D( 23, 1, 1); } void analyze(const Event& e) { // Get event weight for histo filling const double weight = e.weight(); // Final state of unstable particles to get particle spectra - const UnstableFinalState& ufs = apply(e, "UFS"); + const UnstableParticles& ufs = apply(e, "UFS"); foreach (const Particle& p, ufs.particles()) { if (p.abspid() != 443) continue; const GenVertex* gv = p.genParticle()->production_vertex(); bool nonPrompt = false; if (gv) { foreach (const GenParticle* pi, Rivet::particles(gv, HepMC::ancestors)) { const PdgId pid2 = pi->pdg_id(); if (PID::isHadron(pid2) && PID::hasBottom(pid2)) { nonPrompt = true; break; } } } double absrap = p.absrap(); double xp = p.perp(); if (absrap<=2.4 and absrap>2.) { if (nonPrompt) _nonPrRapHigh->fill(xp, weight); else if (!nonPrompt) _PrRapHigh->fill(xp, weight); _IncRapHigh->fill(xp, weight); } else if (absrap<=2. and absrap>1.5) { if (nonPrompt) _nonPrRapMedHigh->fill(xp, weight); else if (!nonPrompt) _PrRapMedHigh->fill(xp, weight); _IncRapMedHigh->fill(xp, weight); } else if (absrap<=1.5 and absrap>0.75) { if (nonPrompt) _nonPrRapMedLow->fill(xp, weight); else if (!nonPrompt) _PrRapMedLow->fill(xp, weight); _IncRapMedLow->fill(xp, weight); } else if (absrap<=0.75) { if (nonPrompt) _nonPrRapLow->fill(xp, weight); else if (!nonPrompt) _PrRapLow->fill(xp, weight); _IncRapLow->fill(xp, weight); } } } /// Finalize void finalize() { double factor = crossSection()/nanobarn*0.0593; scale(_PrRapHigh , factor/sumOfWeights()); scale(_PrRapMedHigh , factor/sumOfWeights()); scale(_PrRapMedLow , factor/sumOfWeights()); scale(_PrRapLow , factor/sumOfWeights()); scale(_nonPrRapHigh , factor/sumOfWeights()); scale(_nonPrRapMedHigh, factor/sumOfWeights()); scale(_nonPrRapMedLow , factor/sumOfWeights()); scale(_nonPrRapLow , factor/sumOfWeights()); scale(_IncRapHigh , 1000.*factor/sumOfWeights()); scale(_IncRapMedHigh , 1000.*factor/sumOfWeights()); scale(_IncRapMedLow , 1000.*factor/sumOfWeights()); scale(_IncRapLow , 1000.*factor/sumOfWeights()); } //@} private: Histo1DPtr _nonPrRapHigh; Histo1DPtr _nonPrRapMedHigh; Histo1DPtr _nonPrRapMedLow; Histo1DPtr _nonPrRapLow; Histo1DPtr _PrRapHigh; Histo1DPtr _PrRapMedHigh; Histo1DPtr _PrRapMedLow; Histo1DPtr _PrRapLow; Histo1DPtr _IncRapHigh; Histo1DPtr _IncRapMedHigh; Histo1DPtr _IncRapMedLow; Histo1DPtr _IncRapLow; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(ATLAS_2011_S9035664); } diff --git a/analyses/pluginATLAS/ATLAS_2012_I1082009.cc b/analyses/pluginATLAS/ATLAS_2012_I1082009.cc --- a/analyses/pluginATLAS/ATLAS_2012_I1082009.cc +++ b/analyses/pluginATLAS/ATLAS_2012_I1082009.cc @@ -1,147 +1,147 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/IdentifiedFinalState.hh" #include "Rivet/Projections/VetoedFinalState.hh" #include "Rivet/Projections/MissingMomentum.hh" #include "Rivet/Projections/FastJets.hh" #include "Rivet/Projections/LeadingParticlesFinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { class ATLAS_2012_I1082009 : public Analysis { public: /// @name Constructors etc. //@{ /// Constructor ATLAS_2012_I1082009() : Analysis("ATLAS_2012_I1082009"), _weight25_30(0.),_weight30_40(0.),_weight40_50(0.), _weight50_60(0.),_weight60_70(0.),_weight25_70(0.) { } //@} public: /// @name Analysis methods //@{ /// Book histograms and initialise projections before the run void init() { // Input for the jets: No neutrinos, no muons VetoedFinalState veto; veto.addVetoPairId(PID::MUON); veto.vetoNeutrinos(); FastJets jets(veto, FastJets::ANTIKT, 0.6); declare(jets, "jets"); // unstable final-state for D* - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); _h_pt25_30 = bookHisto1D( 8,1,1); _h_pt30_40 = bookHisto1D( 9,1,1); _h_pt40_50 = bookHisto1D(10,1,1); _h_pt50_60 = bookHisto1D(11,1,1); _h_pt60_70 = bookHisto1D(12,1,1); _h_pt25_70 = bookHisto1D(13,1,1); } /// Perform the per-event analysis void analyze(const Event& event) { const double weight = event.weight(); // get the jets Jets jets; foreach (const Jet& jet, apply(event, "jets").jetsByPt(25.0*GeV)) { if ( jet.abseta() < 2.5 ) jets.push_back(jet); } // get the D* mesons - const UnstableFinalState& ufs = apply(event, "UFS"); + const UnstableParticles& ufs = apply(event, "UFS"); Particles Dstar; foreach (const Particle& p, ufs.particles()) { const int id = p.abspid(); if(id==413) Dstar.push_back(p); } // loop over the jobs foreach (const Jet& jet, jets ) { double perp = jet.perp(); bool found = false; double z(0.); if(perp<25.||perp>70.) continue; foreach(const Particle & p, Dstar) { if(p.perp()<7.5) continue; if(deltaR(p, jet.momentum())<0.6) { Vector3 axis = jet.p3().unit(); z = axis.dot(p.p3())/jet.E(); if(z<0.3) continue; found = true; break; } } _weight25_70 += weight; if(found) _h_pt25_70->fill(z,weight); if(perp>=25.&&perp<30.) { _weight25_30 += weight; if(found) _h_pt25_30->fill(z,weight); } else if(perp>=30.&&perp<40.) { _weight30_40 += weight; if(found) _h_pt30_40->fill(z,weight); } else if(perp>=40.&&perp<50.) { _weight40_50 += weight; if(found) _h_pt40_50->fill(z,weight); } else if(perp>=50.&&perp<60.) { _weight50_60 += weight; if(found) _h_pt50_60->fill(z,weight); } else if(perp>=60.&&perp<70.) { _weight60_70 += weight; if(found) _h_pt60_70->fill(z,weight); } } } /// Normalise histograms etc., after the run void finalize() { scale(_h_pt25_30,1./_weight25_30); scale(_h_pt30_40,1./_weight30_40); scale(_h_pt40_50,1./_weight40_50); scale(_h_pt50_60,1./_weight50_60); scale(_h_pt60_70,1./_weight60_70); scale(_h_pt25_70,1./_weight25_70); } //@} private: /// @name Histograms //@{ double _weight25_30,_weight30_40,_weight40_50; double _weight50_60,_weight60_70,_weight25_70; Histo1DPtr _h_pt25_30; Histo1DPtr _h_pt30_40; Histo1DPtr _h_pt40_50; Histo1DPtr _h_pt50_60; Histo1DPtr _h_pt60_70; Histo1DPtr _h_pt25_70; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(ATLAS_2012_I1082009); } diff --git a/analyses/pluginATLAS/ATLAS_2012_I1093734.cc b/analyses/pluginATLAS/ATLAS_2012_I1093734.cc --- a/analyses/pluginATLAS/ATLAS_2012_I1093734.cc +++ b/analyses/pluginATLAS/ATLAS_2012_I1093734.cc @@ -1,320 +1,320 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/ChargedFinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" #include "Rivet/Projections/MissingMomentum.hh" namespace Rivet { namespace { inline double sumAB(vector vecX, vector vecY, vector vecW) { assert(vecX.size() == vecY.size() && vecX.size() == vecW.size()); double sum(0); for (size_t i = 0; i < vecX.size(); i++) sum += vecW[i] * vecX[i] * vecY[i]; return sum; } inline double sumA(vector vecX, vector vecW) { assert(vecX.size() == vecW.size()); double sum(0); for (size_t i = 0; i < vecX.size(); i++) sum += vecX[i]*vecW[i]; return sum; } inline double sumW(vector vecW) { double sum(0); for (size_t i = 0; i < vecW.size(); i++) sum += vecW[i]; return sum; } inline double mean(vector vecX, vector vecW) { return sumA(vecX, vecW) / sumW(vecW); } inline double standard_deviation(vector vecX, vector vecW) { const double x_bar = mean(vecX, vecW); double sum(0); for (size_t i = 0; i < vecX.size(); i++) { sum += vecW[i] * sqr(vecX[i] - x_bar); } return sqrt( sum / sumW(vecW) ); } inline double a0_regression(vector vecX, vector vecY, vector vecW) { const double numerator = sumA(vecY, vecW) * sumAB(vecX, vecX, vecW) - sumA(vecX, vecW) * sumAB(vecX, vecY, vecW); const double denominator = sumW(vecW) * sumAB(vecX, vecX, vecW) - sumA(vecX, vecW) * sumA(vecX, vecW); return numerator / denominator; } inline double a1_regression(vector vecX, vector vecY, vector vecW) { const double numerator = sumW(vecW) * sumAB(vecX,vecY,vecW) - sumA(vecX, vecW) * sumA(vecY, vecW); const double denominator = sumW(vecW) * sumAB(vecX,vecX,vecW) - sumA(vecX, vecW) * sumA(vecX, vecW); return numerator/ denominator; } inline double a1_regression2(vector vecX, vector vecY, vector vecW) { const double x_bar = mean(vecX, vecW); const double y_bar = mean(vecY, vecW); double sumXY(0); for (size_t i = 0; i < vecX.size(); i++) { sumXY += vecW[i] * (vecY[i]-y_bar) * (vecX[i]-x_bar); } return sumXY / ( standard_deviation(vecX, vecW) * standard_deviation(vecY, vecW) * sumW(vecW) ); } inline double quadra_sum_residual(vector vecX, vector vecY, vector vecW) { const double a0 = a0_regression(vecX, vecY, vecW); const double a1 = a1_regression(vecX, vecY, vecW); double sum(0); for (size_t i = 0; i < vecX.size(); i++) { const double y_est = a0 + a1*vecX[i]; sum += vecW[i] * sqr(vecY[i] - y_est); } return sum; } inline double error_on_slope(vector vecX, vector vecY, vector vecW) { const double quadra_sum_res = quadra_sum_residual(vecX, vecY, vecW); const double sqrt_quadra_sum_x = standard_deviation(vecX, vecW) * sqrt(sumW(vecW)); return sqrt(quadra_sum_res/(sumW(vecW)-2)) / sqrt_quadra_sum_x; } } /// Forward-backward and azimuthal correlations in minimum bias events class ATLAS_2012_I1093734 : public Analysis { public: /// Constructor ATLAS_2012_I1093734() : Analysis("ATLAS_2012_I1093734") { // Stat convergence happens around 20k events, so it doesn't make sense to run this // analysis with much less than that. Given that, lets avoid some unnecessary vector // resizing by allocating sensible amounts in the first place. for (int ipt = 0; ipt < NPTBINS; ++ipt) { for (int k = 0; k < NETABINS; ++k) { _vecsNchF [ipt][k].reserve(10000); _vecsNchB [ipt][k].reserve(10000); _vecWeight[ipt][k].reserve(10000); if (ipt == 0) { _vecsSumptF[k].reserve(10000); _vecsSumptB[k].reserve(10000); } } } } public: /// @name Analysis methods //@{ /// Book histograms and initialise projections before the run void init() { // FB correlations part // Projections for (int ipt = 0; ipt < NPTBINS; ++ipt) { const double ptmin = PTMINVALUES[ipt]*MeV; for (int ieta = 0; ieta < NETABINS; ++ieta) { declare(ChargedFinalState(-ETAVALUES[ieta], -ETAVALUES[ieta]+0.5, ptmin), "Tracks"+ETABINNAMES[ieta]+"B"+PTBINNAMES[ipt]); declare(ChargedFinalState( ETAVALUES[ieta]-0.5, ETAVALUES[ieta], ptmin), "Tracks"+ETABINNAMES[ieta]+"F"+PTBINNAMES[ipt]); } declare(ChargedFinalState(-2.5, 2.5, ptmin), "CFS" + PTBINNAMES[ipt]); } // Histos if (fuzzyEquals(sqrtS(), 7000*GeV, 1e-3)) { for (int ipt = 0; ipt < NPTBINS ; ++ipt ) _s_NchCorr_vsEta[ipt] = bookScatter2D(1+ipt, 2, 1, true); for (int ieta = 0; ieta < NETABINS; ++ieta) _s_NchCorr_vsPt [ieta] = bookScatter2D(8+ieta, 2, 1, true); _s_PtsumCorr = bookScatter2D(13, 2, 1, true); } else if (fuzzyEquals(sqrtS(), 900*GeV, 1e-3)) { _s_NchCorr_vsEta[0] = bookScatter2D(14, 2, 1, true); _s_PtsumCorr = bookScatter2D(15, 2, 1, true); } // Azimuthal correlations part // Projections const double ptmin = 500*MeV; declare(ChargedFinalState(-2.5, 2.5, ptmin), "ChargedTracks25"); declare(ChargedFinalState(-2.0, 2.0, ptmin), "ChargedTracks20"); declare(ChargedFinalState(-1.0, 1.0, ptmin), "ChargedTracks10"); // Histos /// @todo Declare/book as temporary for (size_t ieta = 0; ieta < 3; ++ieta) { if (fuzzyEquals(sqrtS(), 7000*GeV, 1e-3)) { _s_dphiMin[ieta] = bookScatter2D(2+2*ieta, 1, 1, true); _s_diffSO[ieta] = bookScatter2D(8+2*ieta, 1, 1, true); _th_dphi[ieta] = YODA::Histo1D(refData(2+2*ieta, 1, 1)); _th_same[ieta] = YODA::Histo1D(refData(8+2*ieta, 1, 1)); _th_oppo[ieta] = YODA::Histo1D(refData(8+2*ieta, 1, 1)); } else if (fuzzyEquals(sqrtS(), 900*GeV, 1e-3)) { _s_dphiMin[ieta] = bookScatter2D(1+2*ieta, 1, 1, true); _s_diffSO[ieta] = bookScatter2D(7+2*ieta, 1, 1, true); _th_dphi[ieta] = YODA::Histo1D(refData(1+2*ieta, 1, 1)); _th_same[ieta] = YODA::Histo1D(refData(7+2*ieta, 1, 1)); _th_oppo[ieta] = YODA::Histo1D(refData(7+2*ieta, 1, 1)); } } } /// Perform the per-event analysis void analyze(const Event& event) { const double weight = event.weight(); for (int ipt = 0; ipt < NPTBINS; ++ipt) { const FinalState& charged = apply(event, "CFS" + PTBINNAMES[ipt]); if (charged.particles().size() >= 2) { for (int ieta = 0; ieta < NETABINS; ++ieta) { const string fname = "Tracks" + ETABINNAMES[ieta] + "F" + PTBINNAMES[ipt]; const string bname = "Tracks" + ETABINNAMES[ieta] + "B" + PTBINNAMES[ipt]; const ParticleVector particlesF = apply(event, fname).particles(); const ParticleVector particlesB = apply(event, bname).particles(); _vecsNchF[ipt][ieta].push_back((double) particlesF.size()); _vecsNchB[ipt][ieta].push_back((double) particlesB.size()); _vecWeight[ipt][ieta].push_back(weight); // Sum pT only for 100 MeV particles if (ipt == 0) { double sumptF = 0; double sumptB = 0; foreach (const Particle& p, particlesF) sumptF += p.pT(); foreach (const Particle& p, particlesB) sumptB += p.pT(); _vecsSumptF[ieta].push_back(sumptF); _vecsSumptB[ieta].push_back(sumptB); } } } } string etabin[3] = { "10", "20", "25" }; for (int ieta = 0; ieta < 3; ieta++) { const string fname = "ChargedTracks" + etabin[ieta]; const ParticleVector partTrks = apply(event, fname).particlesByPt(); // Find the leading track and fill the temp histograms const Particle& plead = partTrks[0]; foreach (const Particle& p, partTrks) { if (&plead == &p) continue; ///< Don't compare the lead particle to itself const double dphi = deltaPhi(p.momentum(), plead.momentum()); _th_dphi[ieta].fill(dphi, weight); const bool sameside = (plead.eta() * p.eta() > 0); (sameside ? _th_same : _th_oppo)[ieta].fill(dphi, weight); } } } /// Finalize void finalize() { // FB part // @todo For 2D plots we will need _vecsNchF[i], _vecsNchB[j] for (int ipt = 0; ipt < NPTBINS; ++ipt) { for (int ieta = 0; ieta < NETABINS; ++ieta) { _s_NchCorr_vsEta[ipt]->point(ieta).setY(a1_regression2(_vecsNchF[ipt][ieta], _vecsNchB[ipt][ieta], _vecWeight[ipt][ieta])); _s_NchCorr_vsEta[ipt]->point(ieta).setYErr(error_on_slope(_vecsNchF[ipt][ieta], _vecsNchB[ipt][ieta], _vecWeight[ipt][ieta])); } // There is just one plot at 900 GeV so exit the loop here if (fuzzyEquals(sqrtS(), 900*GeV, 1e-3) && ipt == 0) break; } if (!fuzzyEquals(sqrtS(), 900*GeV, 1e-3)) { ///< No plots at 900 GeV for (int ieta = 0; ieta < NETABINS; ++ieta) { for (int ipt = 0; ipt < NPTBINS; ++ipt) { _s_NchCorr_vsPt[ieta]->point(ipt).setY(a1_regression2(_vecsNchF[ipt][ieta], _vecsNchB[ipt][ieta], _vecWeight[ipt][ieta])); _s_NchCorr_vsPt[ieta]->point(ipt).setYErr(error_on_slope(_vecsNchF[ipt][ieta], _vecsNchB[ipt][ieta], _vecWeight[ipt][ieta])); } } } // Sum pt only for 100 MeV particles for (int ieta = 0; ieta < NETABINS; ++ieta) { _s_PtsumCorr->point(ieta).setY(a1_regression2(_vecsSumptF[ieta], _vecsSumptB[ieta], _vecWeight[0][ieta])); _s_PtsumCorr->point(ieta).setYErr(error_on_slope(_vecsSumptF[ieta], _vecsSumptB[ieta], _vecWeight[0][ieta])); } // Azimuthal part for (int ieta = 0; ieta < 3; ieta++) { /// @note We don't just do a subtraction because of the risk of negative values and negative errors /// @todo Should the difference always be shown as positive?, i.e. y -> abs(y), etc. /// @todo Should the normalization be done _after_ the -ve value treatment? YODA::Histo1D hdiffSO = _th_same[ieta] - _th_oppo[ieta]; hdiffSO.normalize(hdiffSO.bin(0).xWidth()); for (size_t i = 0; i < hdiffSO.numBins(); ++i) { const double y = hdiffSO.bin(i).height() >= 0 ? hdiffSO.bin(i).height() : 0; const double yerr = hdiffSO.bin(i).heightErr() >= 0 ? hdiffSO.bin(i).heightErr() : 0; _s_diffSO[ieta]->point(i).setY(y, yerr); } // Extract minimal value double histMin = _th_dphi[ieta].bin(0).height(); for (size_t iphi = 1; iphi < _th_dphi[ieta].numBins(); ++iphi) { histMin = std::min(histMin, _th_dphi[ieta].bin(iphi).height()); } // Build scatter of differences double sumDiff = 0; for (size_t iphi = 0; iphi < _th_dphi[ieta].numBins(); ++iphi) { const double diff = _th_dphi[ieta].bin(iphi).height() - histMin; _s_dphiMin[ieta]->point(iphi).setY(diff, _th_dphi[ieta].bin(iphi).heightErr()); sumDiff += diff; } // Normalize _s_dphiMin[ieta]->scale(1, 1/sumDiff); } } //@} private: static const int NPTBINS = 7; static const int NETABINS = 5; static const double PTMINVALUES[NPTBINS]; static const string PTBINNAMES[NPTBINS]; static const double ETAVALUES[NETABINS]; static const string ETABINNAMES[NETABINS]; vector _vecWeight[NPTBINS][NETABINS]; vector _vecsNchF[NPTBINS][NETABINS]; vector _vecsNchB[NPTBINS][NETABINS]; vector _vecsSumptF[NETABINS]; vector _vecsSumptB[NETABINS]; /// @name Histograms //@{ Scatter2DPtr _s_NchCorr_vsEta[NPTBINS], _s_NchCorr_vsPt[NETABINS], _s_PtsumCorr; Scatter2DPtr _s_dphiMin[3], _s_diffSO[3]; YODA::Histo1D _th_dphi[3], _th_same[3], _th_oppo[3]; //@} }; /// @todo Initialize these inline at declaration with C++11 const double ATLAS_2012_I1093734::PTMINVALUES[] = {100, 200, 300, 500, 1000, 1500, 2000 }; const string ATLAS_2012_I1093734::PTBINNAMES[] = { "100", "200", "300", "500", "1000", "1500", "2000" }; const double ATLAS_2012_I1093734::ETAVALUES[] = {0.5, 1.0, 1.5, 2.0, 2.5}; const string ATLAS_2012_I1093734::ETABINNAMES[] = { "05", "10", "15", "20", "25" }; // Hook for the plugin system DECLARE_RIVET_PLUGIN(ATLAS_2012_I1093734); } diff --git a/analyses/pluginATLAS/ATLAS_2012_I1094568.cc b/analyses/pluginATLAS/ATLAS_2012_I1094568.cc --- a/analyses/pluginATLAS/ATLAS_2012_I1094568.cc +++ b/analyses/pluginATLAS/ATLAS_2012_I1094568.cc @@ -1,366 +1,366 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/IdentifiedFinalState.hh" #include "Rivet/Projections/LeadingParticlesFinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" #include "Rivet/Projections/HadronicFinalState.hh" #include "Rivet/Projections/VetoedFinalState.hh" #include "Rivet/Projections/FastJets.hh" namespace Rivet { struct ATLAS_2012_I1094568_Plots { // Track which veto region this is, to match the autobooked histograms int region_index; // Lower rapidity boundary or veto region double y_low; // Upper rapidity boundary or veto region double y_high; double vetoJetPt_Q0; double vetoJetPt_Qsum; // Histograms to store the veto jet pT and sum(veto jet pT) histograms. Histo1DPtr _h_vetoJetPt_Q0; Histo1DPtr _h_vetoJetPt_Qsum; // Scatter2Ds for the gap fractions Scatter2DPtr _d_gapFraction_Q0; Scatter2DPtr _d_gapFraction_Qsum; }; /// Top pair production with central jet veto class ATLAS_2012_I1094568 : public Analysis { public: /// Constructor ATLAS_2012_I1094568() : Analysis("ATLAS_2012_I1094568") { } /// Book histograms and initialise projections before the run void init() { const FinalState fs(Cuts::abseta < 4.5); declare(fs, "ALL_FS"); /// Get electrons from truth record IdentifiedFinalState elec_fs(Cuts::abseta < 2.47 && Cuts::pT > 25*GeV); elec_fs.acceptIdPair(PID::ELECTRON); declare(elec_fs, "ELEC_FS"); /// Get muons which pass the initial kinematic cuts: IdentifiedFinalState muon_fs(Cuts::abseta < 2.5 && Cuts::pT > 20*GeV); muon_fs.acceptIdPair(PID::MUON); declare(muon_fs, "MUON_FS"); /// Get all neutrinos. These will not be used to form jets. /// We'll use the highest 2 pT neutrinos to calculate the MET IdentifiedFinalState neutrino_fs(Cuts::abseta < 4.5); neutrino_fs.acceptNeutrinos(); declare(neutrino_fs, "NEUTRINO_FS"); // Final state used as input for jet-finding. // We include everything except the muons and neutrinos VetoedFinalState jet_input(fs); jet_input.vetoNeutrinos(); jet_input.addVetoPairId(PID::MUON); declare(jet_input, "JET_INPUT"); // Get the jets FastJets jets(jet_input, FastJets::ANTIKT, 0.4); declare(jets, "JETS"); // Initialise weight counter m_total_weight = 0.0; // Init histogramming for the various regions m_plots[0].region_index = 1; m_plots[0].y_low = 0.0; m_plots[0].y_high = 0.8; initializePlots(m_plots[0]); // m_plots[1].region_index = 2; m_plots[1].y_low = 0.8; m_plots[1].y_high = 1.5; initializePlots(m_plots[1]); // m_plots[2].region_index = 3; m_plots[2].y_low = 1.5; m_plots[2].y_high = 2.1; initializePlots(m_plots[2]); // m_plots[3].region_index = 4; m_plots[3].y_low = 0.0; m_plots[3].y_high = 2.1; initializePlots(m_plots[3]); } void initializePlots(ATLAS_2012_I1094568_Plots& plots) { const string vetoPt_Q0_name = "TMP/vetoJetPt_Q0_" + to_str(plots.region_index); plots.vetoJetPt_Q0 = 0.0; plots._h_vetoJetPt_Q0 = bookHisto1D(vetoPt_Q0_name, 200, 0.0, 1000.0); plots._d_gapFraction_Q0 = bookScatter2D(plots.region_index, 1, 1); foreach (Point2D p, refData(plots.region_index, 1, 1).points()) { p.setY(0, 0); plots._d_gapFraction_Q0->addPoint(p); } const string vetoPt_Qsum_name = "TMP/vetoJetPt_Qsum_" + to_str(plots.region_index); plots._h_vetoJetPt_Qsum = bookHisto1D(vetoPt_Qsum_name, 200, 0.0, 1000.0); plots._d_gapFraction_Qsum = bookScatter2D(plots.region_index, 2, 1); plots.vetoJetPt_Qsum = 0.0; foreach (Point2D p, refData(plots.region_index, 2, 1).points()) { p.setY(0, 0); plots._d_gapFraction_Qsum->addPoint(p); } } /// Perform the per-event analysis void analyze(const Event& event) { const double weight = event.weight(); /// Get the various sets of final state particles const Particles& elecFS = apply(event, "ELEC_FS").particlesByPt(); const Particles& muonFS = apply(event, "MUON_FS").particlesByPt(); const Particles& neutrinoFS = apply(event, "NEUTRINO_FS").particlesByPt(); // Get all jets with pT > 25 GeV const Jets& jets = apply(event, "JETS").jetsByPt(25.0*GeV); // Keep any jets that pass the initial rapidity cut vector central_jets; foreach(const Jet& j, jets) { if (j.absrap() < 2.4) central_jets.push_back(&j); } // For each of the jets that pass the rapidity cut, only keep those that are not // too close to any leptons vector good_jets; foreach(const Jet* j, central_jets) { bool goodJet = true; foreach (const Particle& e, elecFS) { double elec_jet_dR = deltaR(e.momentum(), j->momentum()); if (elec_jet_dR < 0.4) { goodJet = false; break; } } if (!goodJet) continue; if (!goodJet) continue; foreach (const Particle& m, muonFS) { double muon_jet_dR = deltaR(m.momentum(), j->momentum()); if (muon_jet_dR < 0.4) { goodJet = false; break; } } if (!goodJet) continue; good_jets.push_back(j); } // Get b hadrons with pT > 5 GeV - /// @todo This is a hack -- replace with UnstableFinalState + /// @todo This is a hack -- replace with UnstableParticles vector B_hadrons; vector allParticles = particles(event.genEvent()); for (size_t i = 0; i < allParticles.size(); i++) { const GenParticle* p = allParticles[i]; if (!PID::isHadron(p->pdg_id()) || !PID::hasBottom(p->pdg_id())) continue; if (p->momentum().perp() < 5*GeV) continue; B_hadrons.push_back(p); } // For each of the good jets, check whether any are b-jets (via dR matching) vector b_jets; foreach (const Jet* j, good_jets) { bool isbJet = false; foreach (const GenParticle* b, B_hadrons) { if (deltaR(j->momentum(), FourMomentum(b->momentum())) < 0.3) isbJet = true; } if (isbJet) b_jets.push_back(j); } // Check the good jets again and keep track of the "additional jets" // i.e. those which are not either of the 2 highest pT b-jets vector veto_jets; int n_bjets_matched = 0; foreach (const Jet* j, good_jets) { bool isBJet = false; foreach (const Jet* b, b_jets) { if (n_bjets_matched == 2) break; if (b == j){isBJet = true; ++ n_bjets_matched;} } if (!isBJet) veto_jets.push_back(j); } // Get the MET by taking the vector sum of all neutrinos /// @todo Use MissingMomentum instead? double MET = 0; FourMomentum p_MET; foreach (const Particle& p, neutrinoFS) { p_MET = p_MET + p.momentum(); } MET = p_MET.pT(); // Now we have everything we need to start doing the event selections bool passed_ee = false; vector vetoJets_ee; // We want exactly 2 electrons... if (elecFS.size() == 2) { // ... with opposite sign charges. if (charge(elecFS[0]) != charge(elecFS[1])) { // Check the MET if (MET >= 40*GeV) { // Do some dilepton mass cuts const double dilepton_mass = (elecFS[0].momentum() + elecFS[1].momentum()).mass(); if (dilepton_mass >= 15*GeV) { if (fabs(dilepton_mass - 91.0*GeV) >= 10.0*GeV) { // We need at least 2 b-jets if (b_jets.size() > 1) { // This event has passed all the cuts; passed_ee = true; } } } } } } bool passed_mumu = false; // Now do the same checks for the mumu channel vector vetoJets_mumu; // So we now want 2 good muons... if (muonFS.size() == 2) { // ...with opposite sign charges. if (charge(muonFS[0]) != charge(muonFS[1])) { // Check the MET if (MET >= 40*GeV) { // and do some di-muon mass cuts const double dilepton_mass = (muonFS.at(0).momentum() + muonFS.at(1).momentum()).mass(); if (dilepton_mass >= 15*GeV) { if (fabs(dilepton_mass - 91.0*GeV) >= 10.0*GeV) { // Need at least 2 b-jets if (b_jets.size() > 1) { // This event has passed all mumu-channel cuts passed_mumu = true; } } } } } } bool passed_emu = false; // Finally, the same again with the emu channel vector vetoJets_emu; // We want exactly 1 electron and 1 muon if (elecFS.size() == 1 && muonFS.size() == 1) { // With opposite sign charges if (charge(elecFS[0]) != charge(muonFS[0])) { // Calculate HT: scalar sum of the pTs of the leptons and all good jets double HT = 0; HT += elecFS[0].pT(); HT += muonFS[0].pT(); foreach (const Jet* j, good_jets) HT += fabs(j->pT()); // Keep events with HT > 130 GeV if (HT > 130.0*GeV) { // And again we want 2 or more b-jets if (b_jets.size() > 1) { passed_emu = true; } } } } if (passed_ee == true || passed_mumu == true || passed_emu == true) { // If the event passes the selection, we use it for all gap fractions m_total_weight += weight; // Loop over each veto jet foreach (const Jet* j, veto_jets) { const double pt = j->pT(); const double rapidity = fabs(j->rapidity()); // Loop over each region for (size_t i = 0; i < 4; ++i) { // If the jet falls into this region, get its pT and increment sum(pT) if (inRange(rapidity, m_plots[i].y_low, m_plots[i].y_high)) { m_plots[i].vetoJetPt_Qsum += pt; // If we've already got a veto jet, don't replace it if (m_plots[i].vetoJetPt_Q0 == 0.0) m_plots[i].vetoJetPt_Q0 = pt; } } } for (size_t i = 0; i < 4; ++i) { m_plots[i]._h_vetoJetPt_Q0->fill(m_plots[i].vetoJetPt_Q0, weight); m_plots[i]._h_vetoJetPt_Qsum->fill(m_plots[i].vetoJetPt_Qsum, weight); m_plots[i].vetoJetPt_Q0 = 0.0; m_plots[i].vetoJetPt_Qsum = 0.0; } } } /// Normalise histograms etc., after the run void finalize() { for (size_t i = 0; i < 4; ++i) { finalizeGapFraction(m_total_weight, m_plots[i]._d_gapFraction_Q0, m_plots[i]._h_vetoJetPt_Q0); finalizeGapFraction(m_total_weight, m_plots[i]._d_gapFraction_Qsum, m_plots[i]._h_vetoJetPt_Qsum); } } /// Convert temporary histos to cumulative efficiency scatters /// @todo Should be possible to replace this with a couple of YODA one-lines for diff -> integral and "efficiency division" void finalizeGapFraction(double total_weight, Scatter2DPtr gapFraction, Histo1DPtr vetoPt) { // Stores the cumulative frequency of the veto jet pT histogram double vetoPtWeightSum = 0.0; // Keep track of which gap fraction point we're currently populating (#final_points != #tmp_bins) size_t fgap_point = 0; for (size_t i = 0; i < vetoPt->numBins(); ++i) { // If we've done the last "final" point, stop if (fgap_point == gapFraction->numPoints()) break; // Increment the cumulative vetoPt counter for this temp histo bin /// @todo Get rid of this and use vetoPt->integral(i+1) when points and bins line up? vetoPtWeightSum += vetoPt->bin(i).sumW(); // If this temp histo bin's upper edge doesn't correspond to the reference point, don't finalise the scatter. // Note that points are ON the bin edges and have no width: they represent the integral up to exactly that point. if ( !fuzzyEquals(vetoPt->bin(i).xMax(), gapFraction->point(fgap_point).x()) ) continue; // Calculate the gap fraction and its uncertainty const double frac = (total_weight != 0.0) ? vetoPtWeightSum/total_weight : 0; const double fracErr = (total_weight != 0.0) ? sqrt(frac*(1-frac)/total_weight) : 0; gapFraction->point(fgap_point).setY(frac, fracErr); ++fgap_point; } } private: // Weight counter double m_total_weight; // Structs containing all the plots, for each event selection ATLAS_2012_I1094568_Plots m_plots[4]; }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(ATLAS_2012_I1094568); } diff --git a/analyses/pluginATLAS/ATLAS_2012_I1203852.cc b/analyses/pluginATLAS/ATLAS_2012_I1203852.cc --- a/analyses/pluginATLAS/ATLAS_2012_I1203852.cc +++ b/analyses/pluginATLAS/ATLAS_2012_I1203852.cc @@ -1,375 +1,375 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/FastJets.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/IdentifiedFinalState.hh" #include "Rivet/Projections/WFinder.hh" #include "Rivet/Projections/LeadingParticlesFinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" #include "Rivet/Projections/VetoedFinalState.hh" #include "Rivet/Projections/DressedLeptons.hh" #include "Rivet/Projections/MergedFinalState.hh" #include "Rivet/Projections/MissingMomentum.hh" #include "Rivet/Projections/InvMassFinalState.hh" namespace Rivet { /// Generic Z candidate struct Zstate : public ParticlePair { Zstate() { } Zstate(ParticlePair _particlepair) : ParticlePair(_particlepair) { } FourMomentum mom() const { return first.momentum() + second.momentum(); } operator FourMomentum() const { return mom(); } static bool cmppT(const Zstate& lx, const Zstate& rx) { return lx.mom().pT() < rx.mom().pT(); } }; /// ZZ analysis class ATLAS_2012_I1203852 : public Analysis { public: /// Default constructor ATLAS_2012_I1203852() : Analysis("ATLAS_2012_I1203852") { } void init() { // NB Missing ET is not required to be neutrinos FinalState fs(-5.0, 5.0, 0.0*GeV); // Final states to form Z bosons vids.push_back(make_pair(PID::ELECTRON, PID::POSITRON)); vids.push_back(make_pair(PID::MUON, PID::ANTIMUON)); IdentifiedFinalState Photon(fs); Photon.acceptIdPair(PID::PHOTON); IdentifiedFinalState bare_EL(fs); bare_EL.acceptIdPair(PID::ELECTRON); IdentifiedFinalState bare_MU(fs); bare_MU.acceptIdPair(PID::MUON); // Selection 1: ZZ-> llll selection Cut etaranges_lep = Cuts::abseta < 3.16 && Cuts::pT > 7*GeV; DressedLeptons electron_sel4l(Photon, bare_EL, 0.1, etaranges_lep); declare(electron_sel4l, "ELECTRON_sel4l"); DressedLeptons muon_sel4l(Photon, bare_MU, 0.1, etaranges_lep); declare(muon_sel4l, "MUON_sel4l"); // Selection 2: ZZ-> llnunu selection Cut etaranges_lep2 = Cuts::abseta < 2.5 && Cuts::pT > 10*GeV; DressedLeptons electron_sel2l2nu(Photon, bare_EL, 0.1, etaranges_lep2); declare(electron_sel2l2nu, "ELECTRON_sel2l2nu"); DressedLeptons muon_sel2l2nu(Photon, bare_MU, 0.1, etaranges_lep2); declare(muon_sel2l2nu, "MUON_sel2l2nu"); /// Get all neutrinos. These will not be used to form jets. IdentifiedFinalState neutrino_fs(Cuts::abseta < 4.5); neutrino_fs.acceptNeutrinos(); declare(neutrino_fs, "NEUTRINO_FS"); // Calculate missing ET from the visible final state, not by requiring neutrinos addProjection(MissingMomentum(Cuts::abseta < 4.5), "MISSING"); VetoedFinalState jetinput; jetinput.addVetoOnThisFinalState(bare_MU); jetinput.addVetoOnThisFinalState(neutrino_fs); FastJets jetpro(fs, FastJets::ANTIKT, 0.4); declare(jetpro, "jet"); // Both ZZ on-shell histos _h_ZZ_xsect = bookHisto1D(1, 1, 1); _h_ZZ_ZpT = bookHisto1D(3, 1, 1); _h_ZZ_phill = bookHisto1D(5, 1, 1); _h_ZZ_mZZ = bookHisto1D(7, 1, 1); // One Z off-shell (ZZstar) histos _h_ZZs_xsect = bookHisto1D(1, 1, 2); // ZZ -> llnunu histos _h_ZZnunu_xsect = bookHisto1D(1, 1, 3); _h_ZZnunu_ZpT = bookHisto1D(4, 1, 1); _h_ZZnunu_phill = bookHisto1D(6, 1, 1); _h_ZZnunu_mZZ = bookHisto1D(8, 1, 1); } /// Do the analysis void analyze(const Event& e) { const double weight = e.weight(); //////////////////////////////////////////////////////////////////// // preselection of leptons for ZZ-> llll final state //////////////////////////////////////////////////////////////////// Particles leptons_sel4l; const vector& mu_sel4l = apply(e, "MUON_sel4l").dressedLeptons(); const vector& el_sel4l = apply(e, "ELECTRON_sel4l").dressedLeptons(); vector leptonsFS_sel4l; leptonsFS_sel4l.insert( leptonsFS_sel4l.end(), mu_sel4l.begin(), mu_sel4l.end() ); leptonsFS_sel4l.insert( leptonsFS_sel4l.end(), el_sel4l.begin(), el_sel4l.end() ); //////////////////////////////////////////////////////////////////// // OVERLAP removal dR(l,l)>0.2 //////////////////////////////////////////////////////////////////// for (const DressedLepton& l1 : leptonsFS_sel4l) { bool isolated = true; for (DressedLepton& l2 : leptonsFS_sel4l) { const double dR = deltaR(l1, l2); if (dR < 0.2 && !isSame(l1, l2)) { isolated = false; break; } } if (isolated) leptons_sel4l.push_back(l1); } ////////////////////////////////////////////////////////////////// // Exactly two opposite charged leptons ////////////////////////////////////////////////////////////////// // calculate total 'flavour' charge double totalcharge = 0; for (const Particle& l : leptons_sel4l) totalcharge += l.pid(); // Analyze 4 lepton events if (leptons_sel4l.size() == 4 && totalcharge == 0 ) { Zstate Z1, Z2; // Identifies Z states from 4 lepton pairs identifyZstates(Z1, Z2,leptons_sel4l); //////////////////////////////////////////////////////////////////////////// // Z MASS WINDOW // -ZZ: for both Z: 6620 GeV /////////////////////////////////////////////////////////////////////////// Zstate leadPtZ = std::max(Z1, Z2, Zstate::cmppT); double mZ1 = Z1.mom().mass(); double mZ2 = Z2.mom().mass(); double ZpT = leadPtZ.mom().pT(); double phill = fabs(deltaPhi(leadPtZ.first, leadPtZ.second)); if (phill > M_PI) phill = 2*M_PI-phill; double mZZ = (Z1.mom() + Z2.mom()).mass(); if (mZ1 > 20*GeV && mZ2 > 20*GeV) { // ZZ* selection if (inRange(mZ1, 66*GeV, 116*GeV) || inRange(mZ2, 66*GeV, 116*GeV)) { _h_ZZs_xsect -> fill(sqrtS()*GeV, weight); } // ZZ selection if (inRange(mZ1, 66*GeV, 116*GeV) && inRange(mZ2, 66*GeV, 116*GeV)) { _h_ZZ_xsect -> fill(sqrtS()*GeV, weight); _h_ZZ_ZpT -> fill(ZpT , weight); _h_ZZ_phill -> fill(phill , weight); _h_ZZ_mZZ -> fill(mZZ , weight); } } } //////////////////////////////////////////////////////////////////// /// preselection of leptons for ZZ-> llnunu final state //////////////////////////////////////////////////////////////////// Particles leptons_sel2l2nu; // output const vector& mu_sel2l2nu = apply(e, "MUON_sel2l2nu").dressedLeptons(); const vector& el_sel2l2nu = apply(e, "ELECTRON_sel2l2nu").dressedLeptons(); vector leptonsFS_sel2l2nu; leptonsFS_sel2l2nu.insert( leptonsFS_sel2l2nu.end(), mu_sel2l2nu.begin(), mu_sel2l2nu.end() ); leptonsFS_sel2l2nu.insert( leptonsFS_sel2l2nu.end(), el_sel2l2nu.begin(), el_sel2l2nu.end() ); // Lepton preselection for ZZ-> llnunu if ((mu_sel2l2nu.empty() || el_sel2l2nu.empty()) // cannot have opposite flavour && (leptonsFS_sel2l2nu.size() == 2) // exactly two leptons && (leptonsFS_sel2l2nu[0].charge() * leptonsFS_sel2l2nu[1].charge() < 1 ) // opposite charge && (deltaR(leptonsFS_sel2l2nu[0], leptonsFS_sel2l2nu[1]) > 0.3) // overlap removal && (leptonsFS_sel2l2nu[0].pT() > 20*GeV && leptonsFS_sel2l2nu[1].pT() > 20*GeV)) { // trigger requirement leptons_sel2l2nu.insert(leptons_sel2l2nu.end(), leptonsFS_sel2l2nu.begin(), leptonsFS_sel2l2nu.end()); } if (leptons_sel2l2nu.empty()) vetoEvent; // no further analysis, fine to veto Particles leptons_sel2l2nu_jetveto; foreach (const DressedLepton& l, mu_sel2l2nu) leptons_sel2l2nu_jetveto.push_back(l.constituentLepton()); foreach (const DressedLepton& l, el_sel2l2nu) leptons_sel2l2nu_jetveto.push_back(l.constituentLepton()); double ptll = (leptons_sel2l2nu[0].momentum() + leptons_sel2l2nu[1].momentum()).pT(); // Find Z1-> ll FinalState fs2(-3.2, 3.2); InvMassFinalState imfs(fs2, vids, 20*GeV, sqrtS()); imfs.calc(leptons_sel2l2nu); if (imfs.particlePairs().size() != 1) vetoEvent; const ParticlePair& Z1constituents = imfs.particlePairs()[0]; FourMomentum Z1 = Z1constituents.first.momentum() + Z1constituents.second.momentum(); // Z to neutrinos candidate from missing ET const MissingMomentum & missmom = applyProjection(e, "MISSING"); const FourMomentum Z2 = missmom.missingMomentum(ZMASS); double met_Znunu = missmom.missingEt(); //Z2.pT(); // mTZZ const double mT2_1st_term = add_quad(ZMASS, ptll) + add_quad(ZMASS, met_Znunu); const double mT2_2nd_term = Z1.px() + Z2.px(); const double mT2_3rd_term = Z1.py() + Z2.py(); const double mTZZ = sqrt(sqr(mT2_1st_term) - sqr(mT2_2nd_term) - sqr(mT2_3rd_term)); if (!inRange(Z2.mass(), 66*GeV, 116*GeV)) vetoEvent; if (!inRange(Z1.mass(), 76*GeV, 106*GeV)) vetoEvent; ///////////////////////////////////////////////////////////// // AXIAL MET < 75 GeV //////////////////////////////////////////////////////////// double dPhiZ1Z2 = fabs(deltaPhi(Z1, Z2)); if (dPhiZ1Z2 > M_PI) dPhiZ1Z2 = 2*M_PI - dPhiZ1Z2; const double axialEtmiss = -Z2.pT()*cos(dPhiZ1Z2); if (axialEtmiss < 75*GeV) vetoEvent; const double ZpT = Z1.pT(); double phill = fabs(deltaPhi(Z1constituents.first, Z1constituents.second)); if (phill > M_PI) phill = 2*M_PI - phill; //////////////////////////////////////////////////////////////////////////// // JETS // -"j": found by "jetpro" projection && pT() > 25 GeV && |eta| < 4.5 // -"goodjets": "j" && dR(electron/muon,jet) > 0.3 // // JETVETO: veto all events with at least one good jet /////////////////////////////////////////////////////////////////////////// vector good_jets; foreach (const Jet& j, apply(e, "jet").jetsByPt(25)) { if (j.abseta() > 4.5) continue; bool isLepton = 0; foreach (const Particle& l, leptons_sel2l2nu_jetveto) { const double dR = deltaR(l.momentum(), j.momentum()); if (dR < 0.3) { isLepton = true; break; } } if (!isLepton) good_jets.push_back(j); } size_t n_sel_jets = good_jets.size(); if (n_sel_jets != 0) vetoEvent; ///////////////////////////////////////////////////////////// // Fractional MET and lepton pair difference: "RatioMet"< 0.4 //////////////////////////////////////////////////////////// double ratioMet = fabs(Z2.pT() - Z1.pT()) / Z1.pT(); if (ratioMet > 0.4 ) vetoEvent; // End of ZZllnunu selection: now fill histograms _h_ZZnunu_xsect->fill(sqrtS()/GeV, weight); _h_ZZnunu_ZpT ->fill(ZpT, weight); _h_ZZnunu_phill->fill(phill, weight); _h_ZZnunu_mZZ ->fill(mTZZ, weight); } /// Finalize void finalize() { const double norm = crossSection()/sumOfWeights()/femtobarn; scale(_h_ZZ_xsect, norm); normalize(_h_ZZ_ZpT); normalize(_h_ZZ_phill); normalize(_h_ZZ_mZZ); scale(_h_ZZs_xsect, norm); scale(_h_ZZnunu_xsect, norm); normalize(_h_ZZnunu_ZpT); normalize(_h_ZZnunu_phill); normalize(_h_ZZnunu_mZZ); } private: void identifyZstates(Zstate& Z1, Zstate& Z2, const Particles& leptons_sel4l); Histo1DPtr _h_ZZ_xsect, _h_ZZ_ZpT, _h_ZZ_phill, _h_ZZ_mZZ; Histo1DPtr _h_ZZs_xsect; Histo1DPtr _h_ZZnunu_xsect, _h_ZZnunu_ZpT, _h_ZZnunu_phill, _h_ZZnunu_mZZ; vector< pair > vids; const double ZMASS = 91.1876; // GeV }; /// 4l to ZZ assignment -- algorithm void ATLAS_2012_I1203852::identifyZstates(Zstate& Z1, Zstate& Z2, const Particles& leptons_sel4l) { ///////////////////////////////////////////////////////////////////////////// /// ZZ->4l pairing /// - Exactly two same flavour opposite charged leptons /// - Ambiguities in pairing are resolved by choosing the combination /// that results in the smaller value of the sum |mll - mZ| for the two pairs ///////////////////////////////////////////////////////////////////////////// Particles part_pos_el, part_neg_el, part_pos_mu, part_neg_mu; foreach (const Particle& l , leptons_sel4l) { if (l.abspid() == PID::ELECTRON) { if (l.pid() < 0) part_neg_el.push_back(l); if (l.pid() > 0) part_pos_el.push_back(l); } else if (l.abspid() == PID::MUON) { if (l.pid() < 0) part_neg_mu.push_back(l); if (l.pid() > 0) part_pos_mu.push_back(l); } } // ee/mm channel if ( part_neg_el.size() == 2 || part_neg_mu.size() == 2) { Zstate Zcand_1, Zcand_2, Zcand_3, Zcand_4; if (part_neg_el.size() == 2) { // ee Zcand_1 = Zstate( ParticlePair( part_neg_el[0], part_pos_el[0] ) ); Zcand_2 = Zstate( ParticlePair( part_neg_el[0], part_pos_el[1] ) ); Zcand_3 = Zstate( ParticlePair( part_neg_el[1], part_pos_el[0] ) ); Zcand_4 = Zstate( ParticlePair( part_neg_el[1], part_pos_el[1] ) ); } else { // mumu Zcand_1 = Zstate( ParticlePair( part_neg_mu[0], part_pos_mu[0] ) ); Zcand_2 = Zstate( ParticlePair( part_neg_mu[0], part_pos_mu[1] ) ); Zcand_3 = Zstate( ParticlePair( part_neg_mu[1], part_pos_mu[0] ) ); Zcand_4 = Zstate( ParticlePair( part_neg_mu[1], part_pos_mu[1] ) ); } // We can have the following pairs: (Z1 + Z4) || (Z2 + Z3) double minValue_1, minValue_2; minValue_1 = fabs( Zcand_1.mom().mass() - ZMASS ) + fabs( Zcand_4.mom().mass() - ZMASS); minValue_2 = fabs( Zcand_2.mom().mass() - ZMASS ) + fabs( Zcand_3.mom().mass() - ZMASS); if (minValue_1 < minValue_2 ) { Z1 = Zcand_1; Z2 = Zcand_4; } else { Z1 = Zcand_2; Z2 = Zcand_3; } // emu channel } else if (part_neg_mu.size() == 1 && part_neg_el.size() == 1) { Z1 = Zstate ( ParticlePair (part_neg_mu[0], part_pos_mu[0] ) ); Z2 = Zstate ( ParticlePair (part_neg_el[0], part_pos_el[0] ) ); } } // The hook for the plugin system DECLARE_RIVET_PLUGIN(ATLAS_2012_I1203852); } diff --git a/analyses/pluginATLAS/ATLAS_2012_I1204447.cc b/analyses/pluginATLAS/ATLAS_2012_I1204447.cc --- a/analyses/pluginATLAS/ATLAS_2012_I1204447.cc +++ b/analyses/pluginATLAS/ATLAS_2012_I1204447.cc @@ -1,1060 +1,1060 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/ChargedFinalState.hh" #include "Rivet/Projections/VisibleFinalState.hh" #include "Rivet/Projections/VetoedFinalState.hh" #include "Rivet/Projections/IdentifiedFinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" #include "Rivet/Projections/FastJets.hh" namespace Rivet { class ATLAS_2012_I1204447 : public Analysis { public: /// Constructor ATLAS_2012_I1204447() : Analysis("ATLAS_2012_I1204447") { } /// Book histograms and initialise projections before the run void init() { // To calculate the acceptance without having the fiducial lepton efficiencies included, this part can be turned off _use_fiducial_lepton_efficiency = true; // Random numbers for simulation of ATLAS detector reconstruction efficiency srand(160385); // Read in all signal regions _signal_regions = getSignalRegions(); // Set number of events per signal region to 0 for (size_t i = 0; i < _signal_regions.size(); i++) _eventCountsPerSR[_signal_regions[i]] = 0.0; // Final state including all charged and neutral particles const FinalState fs(-5.0, 5.0, 1*GeV); declare(fs, "FS"); // Final state including all charged particles declare(ChargedFinalState(Cuts::abseta < 2.5 && Cuts::pT > 1*GeV), "CFS"); // Final state including all visible particles (to calculate MET, Jets etc.) declare(VisibleFinalState(Cuts::abseta < 5.0), "VFS"); // Final state including all AntiKt 04 Jets VetoedFinalState vfs; vfs.addVetoPairId(PID::MUON); declare(FastJets(vfs, FastJets::ANTIKT, 0.4), "AntiKtJets04"); // Final state including all unstable particles (including taus) - declare(UnstableFinalState(Cuts::abseta < 5.0 && Cuts::pT > 5*GeV), "UFS"); + declare(UnstableParticles(Cuts::abseta < 5.0 && Cuts::pT > 5*GeV), "UFS"); // Final state including all electrons IdentifiedFinalState elecs(Cuts::abseta < 2.47 && Cuts::pT > 10*GeV); elecs.acceptIdPair(PID::ELECTRON); declare(elecs, "elecs"); // Final state including all muons IdentifiedFinalState muons(Cuts::abseta < 2.5 && Cuts::pT > 10*GeV); muons.acceptIdPair(PID::MUON); declare(muons, "muons"); // Book histograms _h_HTlep_all = bookHisto1D("HTlep_all" , 30, 0, 1500); _h_HTjets_all = bookHisto1D("HTjets_all", 30, 0, 1500); _h_MET_all = bookHisto1D("MET_all" , 20, 0, 1000); _h_Meff_all = bookHisto1D("Meff_all" , 30, 0, 3000); _h_e_n = bookHisto1D("e_n" , 10, -0.5, 9.5); _h_mu_n = bookHisto1D("mu_n" , 10, -0.5, 9.5); _h_tau_n = bookHisto1D("tau_n", 10, -0.5, 9.5); _h_pt_1_3l = bookHisto1D("pt_1_3l", 100, 0, 2000); _h_pt_2_3l = bookHisto1D("pt_2_3l", 100, 0, 2000); _h_pt_3_3l = bookHisto1D("pt_3_3l", 100, 0, 2000); _h_pt_1_2ltau = bookHisto1D("pt_1_2ltau", 100, 0, 2000); _h_pt_2_2ltau = bookHisto1D("pt_2_2ltau", 100, 0, 2000); _h_pt_3_2ltau = bookHisto1D("pt_3_2ltau", 100, 0, 2000); _h_excluded = bookHisto1D("excluded", 2, -0.5, 1.5); } /// Perform the per-event analysis void analyze(const Event& event) { // Muons Particles muon_candidates; const Particles charged_tracks = apply(event, "CFS").particles(); const Particles visible_particles = apply(event, "VFS").particles(); foreach (const Particle& mu, apply(event, "muons").particlesByPt()) { // Calculate pTCone30 variable (pT of all tracks within dR<0.3 - pT of muon itself) double pTinCone = -mu.pT(); foreach (const Particle& track, charged_tracks) { if (deltaR(mu.momentum(), track.momentum()) < 0.3) pTinCone += track.pT(); } // Calculate eTCone30 variable (pT of all visible particles within dR<0.3) double eTinCone = 0.; foreach (const Particle& visible_particle, visible_particles) { if (visible_particle.abspid() != PID::MUON && inRange(deltaR(mu.momentum(), visible_particle.momentum()), 0.1, 0.3)) eTinCone += visible_particle.pT(); } // Apply reconstruction efficiency and simulate reco int muon_id = 13; if ( mu.hasAncestor(15) || mu.hasAncestor(-15)) muon_id = 14; const double eff = (_use_fiducial_lepton_efficiency) ? apply_reco_eff(muon_id, mu) : 1.0; const bool keep_muon = rand()/static_cast(RAND_MAX) <= eff; // Keep muon if pTCone30/pT < 0.15 and eTCone30/pT < 0.2 and reconstructed if (keep_muon && pTinCone/mu.pT() <= 0.15 && eTinCone/mu.pT() < 0.2) muon_candidates.push_back(mu); } // Electrons Particles electron_candidates; foreach (const Particle& e, apply(event, "elecs").particlesByPt()) { // Neglect electrons in crack regions if (inRange(e.abseta(), 1.37, 1.52)) continue; // Calculate pTCone30 variable (pT of all tracks within dR<0.3 - pT of electron itself) double pTinCone = -e.pT(); foreach (const Particle& track, charged_tracks) { if (deltaR(e.momentum(), track.momentum()) < 0.3) pTinCone += track.pT(); } // Calculate eTCone30 variable (pT of all visible particles (except muons) within dR<0.3) double eTinCone = 0.; foreach (const Particle& visible_particle, visible_particles) { if (visible_particle.abspid() != PID::MUON && inRange(deltaR(e.momentum(), visible_particle.momentum()), 0.1, 0.3)) eTinCone += visible_particle.pT(); } // Apply reconstruction efficiency and simulate reco int elec_id = 11; if (e.hasAncestor(15) || e.hasAncestor(-15)) elec_id = 12; const double eff = (_use_fiducial_lepton_efficiency) ? apply_reco_eff(elec_id, e) : 1.0; const bool keep_elec = rand()/static_cast(RAND_MAX) <= eff; // Keep electron if pTCone30/pT < 0.13 and eTCone30/pT < 0.2 and reconstructed if (keep_elec && pTinCone/e.pT() <= 0.13 && eTinCone/e.pT() < 0.2) electron_candidates.push_back(e); } // Taus /// @todo This could benefit from a tau finder projection Particles tau_candidates; - foreach (const Particle& tau, apply(event, "UFS").particlesByPt()) { + foreach (const Particle& tau, apply(event, "UFS").particlesByPt()) { // Only pick taus out of all unstable particles if (tau.abspid() != PID::TAU) continue; // Check that tau has decayed into daughter particles /// @todo Huh? Unstable taus with no decay vtx? Can use Particle.isStable()? But why in this situation? if (tau.genParticle()->end_vertex() == 0) continue; // Calculate visible tau pT from pT of tau neutrino in tau decay for pT and |eta| cuts FourMomentum daughter_tau_neutrino_momentum = get_tau_neutrino_mom(tau); Particle tau_vis = tau; tau_vis.setMomentum(tau.momentum()-daughter_tau_neutrino_momentum); // keep only taus in certain eta region and above 15 GeV of visible tau pT if ( tau_vis.pT() <= 15.0*GeV || tau_vis.abseta() > 2.5) continue; // Get prong number (number of tracks) in tau decay and check if tau decays leptonically unsigned int nprong = 0; bool lep_decaying_tau = false; get_prong_number(tau.genParticle(), nprong, lep_decaying_tau); // Apply reconstruction efficiency int tau_id = 15; if (nprong == 1) tau_id = 15; else if (nprong == 3) tau_id = 16; // Get fiducial lepton efficiency simulate reco efficiency const double eff = (_use_fiducial_lepton_efficiency) ? apply_reco_eff(tau_id, tau_vis) : 1.0; const bool keep_tau = rand()/static_cast(RAND_MAX) <= eff; // Keep tau if nprong = 1, it decays hadronically, and it's reconstructed by the detector if ( !lep_decaying_tau && nprong == 1 && keep_tau) tau_candidates.push_back(tau_vis); } // Jets (all anti-kt R=0.4 jets with pT > 25 GeV and eta < 4.9) Jets jet_candidates; foreach (const Jet& jet, apply(event, "AntiKtJets04").jetsByPt(25*GeV)) { if (jet.abseta() < 4.9) jet_candidates.push_back(jet); } // ETmiss Particles vfs_particles = apply(event, "VFS").particles(); FourMomentum pTmiss; foreach (const Particle& p, vfs_particles) pTmiss -= p.momentum(); double eTmiss = pTmiss.pT()/GeV; //------------------ // Overlap removal // electron - electron Particles electron_candidates_2; for (size_t ie = 0; ie < electron_candidates.size(); ++ie) { const Particle & e = electron_candidates[ie]; bool away = true; // If electron pair within dR < 0.1: remove electron with lower pT for (size_t ie2=0; ie2 < electron_candidates_2.size(); ++ie2) { if ( deltaR( e.momentum(), electron_candidates_2[ie2].momentum()) < 0.1 ) { away = false; break; } } // If isolated keep it if ( away ) electron_candidates_2.push_back( e ); } // jet - electron Jets recon_jets; foreach (const Jet& jet, jet_candidates) { bool away = true; // if jet within dR < 0.2 of electron: remove jet foreach (const Particle& e, electron_candidates_2) { if (deltaR(e.momentum(), jet.momentum()) < 0.2) { away = false; break; } } // jet - tau if (away) { // If jet within dR < 0.2 of tau: remove jet foreach (const Particle& tau, tau_candidates) { if (deltaR(tau.momentum(), jet.momentum()) < 0.2) { away = false; break; } } } // If isolated keep it if ( away ) recon_jets.push_back( jet ); } // electron - jet Particles recon_leptons, recon_e; for (size_t ie = 0; ie < electron_candidates_2.size(); ++ie) { const Particle& e = electron_candidates_2[ie]; // If electron within 0.2 < dR < 0.4 from any jets: remove electron bool away = true; foreach (const Jet& jet, recon_jets) { if (deltaR(e.momentum(), jet.momentum()) < 0.4) { away = false; break; } } // electron - muon // if electron within dR < 0.1 of a muon: remove electron if (away) { foreach (const Particle& mu, muon_candidates) { if (deltaR(mu.momentum(), e.momentum()) < 0.1) { away = false; break; } } } // If isolated keep it if (away) { recon_e += e; recon_leptons += e; } } // tau - electron Particles recon_tau; foreach ( const Particle& tau, tau_candidates ) { bool away = true; // If tau within dR < 0.2 of an electron: remove tau foreach ( const Particle& e, recon_e ) { if (deltaR( tau.momentum(), e.momentum()) < 0.2) { away = false; break; } } // tau - muon // If tau within dR < 0.2 of a muon: remove tau if (away) { foreach (const Particle& mu, muon_candidates) { if (deltaR(tau.momentum(), mu.momentum()) < 0.2) { away = false; break; } } } // If isolated keep it if (away) recon_tau.push_back( tau ); } // Muon - jet isolation Particles recon_mu, trigger_mu; // If muon within dR < 0.4 of a jet, remove muon foreach (const Particle& mu, muon_candidates) { bool away = true; foreach (const Jet& jet, recon_jets) { if ( deltaR( mu.momentum(), jet.momentum()) < 0.4 ) { away = false; break; } } if (away) { recon_mu.push_back( mu ); recon_leptons.push_back( mu ); if (mu.abseta() < 2.4) trigger_mu.push_back( mu ); } } // End overlap removal //------------------ // Jet cleaning if (rand()/static_cast(RAND_MAX) <= 0.42) { foreach (const Jet& jet, recon_jets) { const double eta = jet.rapidity(); const double phi = jet.azimuthalAngle(MINUSPI_PLUSPI); if (jet.pT() > 25*GeV && inRange(eta, -0.1, 1.5) && inRange(phi, -0.9, -0.5)) vetoEvent; } } // Post-isolation event cuts // Require at least 3 charged tracks in event if (charged_tracks.size() < 3) vetoEvent; // And at least one e/mu passing trigger if (!( !recon_e .empty() && recon_e[0] .pT() > 25*GeV) && !( !trigger_mu.empty() && trigger_mu[0].pT() > 25*GeV) ) { MSG_DEBUG("Hardest lepton fails trigger"); vetoEvent; } // And only accept events with at least 2 electrons and muons and at least 3 leptons in total if (recon_mu.size() + recon_e.size() + recon_tau.size() < 3 || recon_leptons.size() < 2) vetoEvent; // Now it's worth getting the event weight const double weight = event.weight(); // Sort leptons by decreasing pT sortByPt(recon_leptons); sortByPt(recon_tau); // Calculate HTlep, fill lepton pT histograms & store chosen combination of 3 leptons double HTlep = 0.; Particles chosen_leptons; if ( recon_leptons.size() > 2 ) { _h_pt_1_3l->fill(recon_leptons[0].perp()/GeV, weight); _h_pt_2_3l->fill(recon_leptons[1].perp()/GeV, weight); _h_pt_3_3l->fill(recon_leptons[2].perp()/GeV, weight); HTlep = (recon_leptons[0].pT() + recon_leptons[1].pT() + recon_leptons[2].pT())/GeV; chosen_leptons.push_back( recon_leptons[0] ); chosen_leptons.push_back( recon_leptons[1] ); chosen_leptons.push_back( recon_leptons[2] ); } else { _h_pt_1_2ltau->fill(recon_leptons[0].perp()/GeV, weight); _h_pt_2_2ltau->fill(recon_leptons[1].perp()/GeV, weight); _h_pt_3_2ltau->fill(recon_tau[0].perp()/GeV, weight); HTlep = (recon_leptons[0].pT() + recon_leptons[1].pT() + recon_tau[0].pT())/GeV ; chosen_leptons.push_back( recon_leptons[0] ); chosen_leptons.push_back( recon_leptons[1] ); chosen_leptons.push_back( recon_tau[0] ); } // Number of prompt e/mu and had taus _h_e_n ->fill(recon_e.size() , weight); _h_mu_n ->fill(recon_mu.size() , weight); _h_tau_n->fill(recon_tau.size(), weight); // Calculate HTjets double HTjets = 0.; foreach ( const Jet & jet, recon_jets ) HTjets += jet.perp()/GeV; // Calculate meff double meff = eTmiss + HTjets; Particles all_leptons; foreach ( const Particle & e , recon_e ) { meff += e.perp()/GeV; all_leptons.push_back( e ); } foreach ( const Particle & mu, recon_mu ) { meff += mu.perp()/GeV; all_leptons.push_back( mu ); } foreach ( const Particle & tau, recon_tau ) { meff += tau.perp()/GeV; all_leptons.push_back( tau ); } // Fill histogram of kinematic variables _h_HTlep_all ->fill(HTlep , weight); _h_HTjets_all->fill(HTjets, weight); _h_MET_all ->fill(eTmiss, weight); _h_Meff_all ->fill(meff , weight); // Determine signal region (3l/2ltau, onZ/offZ) string basic_signal_region; if ( recon_mu.size() + recon_e.size() > 2 ) basic_signal_region += "3l_"; else if ( (recon_mu.size() + recon_e.size() == 2) && (recon_tau.size() > 0)) basic_signal_region += "2ltau_"; // Is there an OSSF pair or a three lepton combination with an invariant mass close to the Z mass int onZ = isonZ(chosen_leptons); if (onZ == 1) basic_signal_region += "onZ"; else if (onZ == 0) basic_signal_region += "offZ"; // Check in which signal regions this event falls and adjust event counters fillEventCountsPerSR(basic_signal_region, onZ, HTlep, eTmiss, HTjets, meff, weight); } /// Normalise histograms etc., after the run void finalize() { // Normalize to an integrated luminosity of 1 fb-1 double norm = crossSection()/femtobarn/sumOfWeights(); string best_signal_region = ""; double ratio_best_SR = 0.; // Loop over all signal regions and find signal region with best sensitivity (ratio signal events/visible cross-section) for (size_t i = 0; i < _signal_regions.size(); i++) { double signal_events = _eventCountsPerSR[_signal_regions[i]] * norm; // Use expected upper limits to find best signal region double UL95 = getUpperLimit(_signal_regions[i], false); double ratio = signal_events / UL95; if (ratio > ratio_best_SR) { best_signal_region = _signal_regions[i]; ratio_best_SR = ratio; } } double signal_events_best_SR = _eventCountsPerSR[best_signal_region] * norm; double exp_UL_best_SR = getUpperLimit(best_signal_region, false); double obs_UL_best_SR = getUpperLimit(best_signal_region, true); // Print out result cout << "----------------------------------------------------------------------------------------" << endl; cout << "Best signal region: " << best_signal_region << endl; cout << "Normalized number of signal events in this best signal region (per fb-1): " << signal_events_best_SR << endl; cout << "Efficiency*Acceptance: " << _eventCountsPerSR[best_signal_region]/sumOfWeights() << endl; cout << "Cross-section [fb]: " << crossSection()/femtobarn << endl; cout << "Expected visible cross-section (per fb-1): " << exp_UL_best_SR << endl; cout << "Ratio (signal events / expected visible cross-section): " << ratio_best_SR << endl; cout << "Observed visible cross-section (per fb-1): " << obs_UL_best_SR << endl; cout << "Ratio (signal events / observed visible cross-section): " << signal_events_best_SR/obs_UL_best_SR << endl; cout << "----------------------------------------------------------------------------------------" << endl; cout << "Using the EXPECTED limits (visible cross-section) of the analysis: " << endl; if (signal_events_best_SR > exp_UL_best_SR) { cout << "Since the number of signal events > the visible cross-section, this model/grid point is EXCLUDED with 95% CL." << endl; _h_excluded->fill(1); } else { cout << "Since the number of signal events < the visible cross-section, this model/grid point is NOT EXCLUDED." << endl; _h_excluded->fill(0); } cout << "----------------------------------------------------------------------------------------" << endl; cout << "Using the OBSERVED limits (visible cross-section) of the analysis: " << endl; if (signal_events_best_SR > obs_UL_best_SR) { cout << "Since the number of signal events > the visible cross-section, this model/grid point is EXCLUDED with 95% CL." << endl; _h_excluded->fill(1); } else { cout << "Since the number of signal events < the visible cross-section, this model/grid point is NOT EXCLUDED." << endl; _h_excluded->fill(0); } cout << "----------------------------------------------------------------------------------------" << endl; // Normalize to cross section if (norm != 0) { scale(_h_HTlep_all, norm); scale(_h_HTjets_all, norm); scale(_h_MET_all, norm); scale(_h_Meff_all, norm); scale(_h_pt_1_3l, norm); scale(_h_pt_2_3l, norm); scale(_h_pt_3_3l, norm); scale(_h_pt_1_2ltau, norm); scale(_h_pt_2_2ltau, norm); scale(_h_pt_3_2ltau, norm); scale(_h_e_n, norm); scale(_h_mu_n, norm); scale(_h_tau_n, norm); scale(_h_excluded, signal_events_best_SR); } } /// Helper functions //@{ /// Function giving a list of all signal regions vector getSignalRegions() { // List of basic signal regions vector basic_signal_regions; basic_signal_regions.push_back("3l_offZ"); basic_signal_regions.push_back("3l_onZ"); basic_signal_regions.push_back("2ltau_offZ"); basic_signal_regions.push_back("2ltau_onZ"); // List of kinematic variables vector kinematic_variables; kinematic_variables.push_back("HTlep"); kinematic_variables.push_back("METStrong"); kinematic_variables.push_back("METWeak"); kinematic_variables.push_back("Meff"); kinematic_variables.push_back("MeffStrong"); vector signal_regions; // Loop over all kinematic variables and basic signal regions for (size_t i0 = 0; i0 < kinematic_variables.size(); i0++) { for (size_t i1 = 0; i1 < basic_signal_regions.size(); i1++) { // Is signal region onZ? int onZ = (basic_signal_regions[i1].find("onZ") != string::npos) ? 1 : 0; // Get cut values for this kinematic variable vector cut_values = getCutsPerSignalRegion(kinematic_variables[i0], onZ); // Loop over all cut values for (size_t i2 = 0; i2 < cut_values.size(); i2++) { // push signal region into vector signal_regions.push_back( (kinematic_variables[i0] + "_" + basic_signal_regions[i1] + "_cut_" + toString(i2)) ); } } } return signal_regions; } /// Function giving all cut vales per kinematic variable (taking onZ for MET into account) vector getCutsPerSignalRegion(const string& signal_region, int onZ=0) { vector cutValues; // Cut values for HTlep if (signal_region.compare("HTlep") == 0) { cutValues.push_back(0); cutValues.push_back(100); cutValues.push_back(150); cutValues.push_back(200); cutValues.push_back(300); } // Cut values for METStrong (HTjets > 100 GeV) and METWeak (HTjets < 100 GeV) else if (signal_region.compare("METStrong") == 0 || signal_region.compare("METWeak") == 0) { if (onZ == 0) cutValues.push_back(0); else if (onZ == 1) cutValues.push_back(20); cutValues.push_back(50); cutValues.push_back(75); } // Cut values for Meff and MeffStrong (MET > 75 GeV) if (signal_region.compare("Meff") == 0 || signal_region.compare("MeffStrong") == 0) { cutValues.push_back(0); cutValues.push_back(150); cutValues.push_back(300); cutValues.push_back(500); } return cutValues; } /// function fills map EventCountsPerSR by looping over all signal regions /// and looking if the event falls into this signal region void fillEventCountsPerSR(const string& basic_signal_region, int onZ, double HTlep, double eTmiss, double HTjets, double meff, double weight) { // Get cut values for HTlep, loop over them and add event if cut is passed vector cut_values = getCutsPerSignalRegion("HTlep", onZ); for (size_t i = 0; i < cut_values.size(); i++) { if (HTlep > cut_values[i]) _eventCountsPerSR[("HTlep_" + basic_signal_region + "_cut_" + toString(cut_values[i]))] += weight; } // Get cut values for METStrong, loop over them and add event if cut is passed cut_values = getCutsPerSignalRegion("METStrong", onZ); for (size_t i = 0; i < cut_values.size(); i++) { if (eTmiss > cut_values[i] && HTjets > 100.) _eventCountsPerSR[("METStrong_" + basic_signal_region + "_cut_" + toString(cut_values[i]))] += weight; } // Get cut values for METWeak, loop over them and add event if cut is passed cut_values = getCutsPerSignalRegion("METWeak", onZ); for (size_t i = 0; i < cut_values.size(); i++) { if (eTmiss > cut_values[i] && HTjets <= 100.) _eventCountsPerSR[("METWeak_" + basic_signal_region + "_cut_" + toString(cut_values[i]))] += weight; } // Get cut values for Meff, loop over them and add event if cut is passed cut_values = getCutsPerSignalRegion("Meff", onZ); for (size_t i = 0; i < cut_values.size(); i++) { if (meff > cut_values[i]) _eventCountsPerSR[("Meff_" + basic_signal_region + "_cut_" + toString(cut_values[i]))] += weight; } // Get cut values for MeffStrong, loop over them and add event if cut is passed cut_values = getCutsPerSignalRegion("MeffStrong", onZ); for (size_t i = 0; i < cut_values.size(); i++) { if (meff > cut_values[i] && eTmiss > 75.) _eventCountsPerSR[("MeffStrong_" + basic_signal_region + "_cut_" + toString(cut_values[i]))] += weight; } } /// Function returning 4-vector of daughter-particle if it is a tau neutrino /// @todo Move to TauFinder and make less HepMC-ish FourMomentum get_tau_neutrino_mom(const Particle& p) { assert(p.abspid() == PID::TAU); const GenVertex* dv = p.genParticle()->end_vertex(); assert(dv != NULL); for (GenVertex::particles_out_const_iterator pp = dv->particles_out_const_begin(); pp != dv->particles_out_const_end(); ++pp) { if (abs((*pp)->pdg_id()) == PID::NU_TAU) return FourMomentum((*pp)->momentum()); } return FourMomentum(); } /// Function calculating the prong number of taus /// @todo Move to TauFinder and make less HepMC-ish void get_prong_number(const GenParticle* p, unsigned int& nprong, bool& lep_decaying_tau) { assert(p != NULL); //const int tau_barcode = p->barcode(); const GenVertex* dv = p->end_vertex(); assert(dv != NULL); for (GenVertex::particles_out_const_iterator pp = dv->particles_out_const_begin(); pp != dv->particles_out_const_end(); ++pp) { // If they have status 1 and are charged they will produce a track and the prong number is +1 if ((*pp)->status() == 1 ) { const int id = (*pp)->pdg_id(); if (Rivet::PID::charge(id) != 0 ) ++nprong; // Check if tau decays leptonically // @todo Can a tau decay include a tau in its decay daughters?! if ((abs(id) == PID::ELECTRON || abs(id) == PID::MUON || abs(id) == PID::TAU) && abs(p->pdg_id()) == PID::TAU) lep_decaying_tau = true; } // If the status of the daughter particle is 2 it is unstable and the further decays are checked else if ((*pp)->status() == 2 ) { get_prong_number(*pp, nprong, lep_decaying_tau); } } } /// Function giving fiducial lepton efficiency double apply_reco_eff(int flavor, const Particle& p) { float pt = p.pT()/GeV; float eta = p.eta(); double eff = 0.; //double err = 0.; if (flavor == 11) { // weight prompt electron -- now including data/MC ID SF in eff. //float rho = 0.820; float p0 = 7.34; float p1 = 0.8977; //float ep0= 0.5 ; float ep1= 0.0087; eff = p1 - p0/pt; //double err0 = ep0/pt; // d(eff)/dp0 //double err1 = ep1; // d(eff)/dp1 //err = sqrt(err0*err0 + err1*err1 - 2*rho*err0*err1); double avgrate = 0.6867; float wz_ele_eta[] = {0.588717,0.603674,0.666135,0.747493,0.762202,0.675051,0.751606,0.745569,0.665333,0.610432,0.592693,}; //float ewz_ele_eta[] ={0.00292902,0.002476,0.00241209,0.00182319,0.00194339,0.00299785,0.00197339,0.00182004,0.00241793,0.00245997,0.00290394,}; int ibin = 3; if (eta >= -2.5 && eta < -2.0) ibin = 0; if (eta >= -2.0 && eta < -1.5) ibin = 1; if (eta >= -1.5 && eta < -1.0) ibin = 2; if (eta >= -1.0 && eta < -0.5) ibin = 3; if (eta >= -0.5 && eta < -0.1) ibin = 4; if (eta >= -0.1 && eta < 0.1) ibin = 5; if (eta >= 0.1 && eta < 0.5) ibin = 6; if (eta >= 0.5 && eta < 1.0) ibin = 7; if (eta >= 1.0 && eta < 1.5) ibin = 8; if (eta >= 1.5 && eta < 2.0) ibin = 9; if (eta >= 2.0 && eta < 2.5) ibin = 10; double eff_eta = wz_ele_eta[ibin]; //double err_eta = ewz_ele_eta[ibin]; eff = (eff*eff_eta)/avgrate; } if (flavor == 12) { // weight electron from tau //float rho = 0.884; float p0 = 6.799; float p1 = 0.842; //float ep0= 0.664; float ep1= 0.016; eff = p1 - p0/pt; //double err0 = ep0/pt; // d(eff)/dp0 //double err1 = ep1; // d(eff)/dp1 //err = sqrt(err0*err0 + err1*err1 - 2*rho*err0*err1); double avgrate = 0.5319; float wz_elet_eta[] = {0.468945,0.465953,0.489545,0.58709,0.59669,0.515829,0.59284,0.575828,0.498181,0.463536,0.481738,}; //float ewz_elet_eta[] ={0.00933795,0.00780868,0.00792679,0.00642083,0.00692652,0.0101568,0.00698452,0.00643524,0.0080002,0.00776238,0.0094699,}; int ibin = 3; if (eta >= -2.5 && eta < -2.0) ibin = 0; if (eta >= -2.0 && eta < -1.5) ibin = 1; if (eta >= -1.5 && eta < -1.0) ibin = 2; if (eta >= -1.0 && eta < -0.5) ibin = 3; if (eta >= -0.5 && eta < -0.1) ibin = 4; if (eta >= -0.1 && eta < 0.1) ibin = 5; if (eta >= 0.1 && eta < 0.5) ibin = 6; if (eta >= 0.5 && eta < 1.0) ibin = 7; if (eta >= 1.0 && eta < 1.5) ibin = 8; if (eta >= 1.5 && eta < 2.0) ibin = 9; if (eta >= 2.0 && eta < 2.5) ibin = 10; double eff_eta = wz_elet_eta[ibin]; //double err_eta = ewz_elet_eta[ibin]; eff = (eff*eff_eta)/avgrate; } if (flavor == 13) {// weight prompt muon //if eta>0.1 float p0 = -18.21; float p1 = 14.83; float p2 = 0.9312; //float ep0= 5.06; float ep1= 1.9; float ep2=0.00069; if ( fabs(eta) < 0.1) { p0 = 7.459; p1 = 2.615; p2 = 0.5138; //ep0 = 10.4; ep1 = 4.934; ep2 = 0.0034; } double arg = ( pt-p0 )/( 2.*p1 ) ; eff = 0.5 * p2 * (1.+erf(arg)); //err = 0.1*eff; } if (flavor == 14) {// weight muon from tau if (fabs(eta) < 0.1) { float p0 = -1.756; float p1 = 12.38; float p2 = 0.4441; //float ep0= 10.39; float ep1= 7.9; float ep2=0.022; double arg = ( pt-p0 )/( 2.*p1 ) ; eff = 0.5 * p2 * (1.+erf(arg)); //err = 0.1*eff; } else { float p0 = 2.102; float p1 = 0.8293; //float ep0= 0.271; float ep1= 0.0083; eff = p1 - p0/pt; //double err0 = ep0/pt; // d(eff)/dp0 //double err1 = ep1; // d(eff)/dp1 //err = sqrt(err0*err0 + err1*err1 - 2*rho*err0*err1); } } if (flavor == 15) {// weight hadronic tau 1p float wz_tau1p[] = {0.0249278,0.146978,0.225049,0.229212,0.21519,0.206152,0.201559,0.197917,0.209249,0.228336,0.193548,}; //float ewz_tau1p[] ={0.00178577,0.00425252,0.00535052,0.00592126,0.00484684,0.00612941,0.00792099,0.0083006,0.0138307,0.015568,0.0501751,}; int ibin = 0; if (pt > 15) ibin = 1; if (pt > 20) ibin = 2; if (pt > 25) ibin = 3; if (pt > 30) ibin = 4; if (pt > 40) ibin = 5; if (pt > 50) ibin = 6; if (pt > 60) ibin = 7; if (pt > 80) ibin = 8; if (pt > 100) ibin = 9; if (pt > 200) ibin = 10; eff = wz_tau1p[ibin]; //err = ewz_tau1p[ibin]; double avgrate = 0.1718; float wz_tau1p_eta[] = {0.162132,0.176393,0.139619,0.178813,0.185144,0.210027,0.203937,0.178688,0.137034,0.164216,0.163713,}; //float ewz_tau1p_eta[] ={0.00706705,0.00617989,0.00506798,0.00525172,0.00581865,0.00865675,0.00599245,0.00529877,0.00506368,0.00617025,0.00726219,}; ibin = 3; if (eta >= -2.5 && eta < -2.0) ibin = 0; if (eta >= -2.0 && eta < -1.5) ibin = 1; if (eta >= -1.5 && eta < -1.0) ibin = 2; if (eta >= -1.0 && eta < -0.5) ibin = 3; if (eta >= -0.5 && eta < -0.1) ibin = 4; if (eta >= -0.1 && eta < 0.1) ibin = 5; if (eta >= 0.1 && eta < 0.5) ibin = 6; if (eta >= 0.5 && eta < 1.0) ibin = 7; if (eta >= 1.0 && eta < 1.5) ibin = 8; if (eta >= 1.5 && eta < 2.0) ibin = 9; if (eta >= 2.0 && eta < 2.5) ibin = 10; double eff_eta = wz_tau1p_eta[ibin]; //double err_eta = ewz_tau1p_eta[ibin]; eff = (eff*eff_eta)/avgrate; } if (flavor == 16) { //weight hadronic tau 3p float wz_tau3p[] = {0.000587199,0.00247181,0.0013031,0.00280112,}; //float ewz_tau3p[] ={0.000415091,0.000617187,0.000582385,0.00197792,}; int ibin = 0; if (pt > 15) ibin = 1; if (pt > 20) ibin = 2; if (pt > 40) ibin = 3; if (pt > 80) ibin = 4; eff = wz_tau3p[ibin]; //err = ewz_tau3p[ibin]; } return eff; } /// Function giving observed upper limit (visible cross-section) double getUpperLimit(const string& signal_region, bool observed) { map upperLimitsObserved; upperLimitsObserved["HTlep_3l_offZ_cut_0"] = 11.; upperLimitsObserved["HTlep_3l_offZ_cut_100"] = 8.7; upperLimitsObserved["HTlep_3l_offZ_cut_150"] = 4.0; upperLimitsObserved["HTlep_3l_offZ_cut_200"] = 4.4; upperLimitsObserved["HTlep_3l_offZ_cut_300"] = 1.6; upperLimitsObserved["HTlep_2ltau_offZ_cut_0"] = 25.; upperLimitsObserved["HTlep_2ltau_offZ_cut_100"] = 14.; upperLimitsObserved["HTlep_2ltau_offZ_cut_150"] = 6.1; upperLimitsObserved["HTlep_2ltau_offZ_cut_200"] = 3.3; upperLimitsObserved["HTlep_2ltau_offZ_cut_300"] = 1.2; upperLimitsObserved["HTlep_3l_onZ_cut_0"] = 48.; upperLimitsObserved["HTlep_3l_onZ_cut_100"] = 38.; upperLimitsObserved["HTlep_3l_onZ_cut_150"] = 14.; upperLimitsObserved["HTlep_3l_onZ_cut_200"] = 7.2; upperLimitsObserved["HTlep_3l_onZ_cut_300"] = 4.5; upperLimitsObserved["HTlep_2ltau_onZ_cut_0"] = 85.; upperLimitsObserved["HTlep_2ltau_onZ_cut_100"] = 53.; upperLimitsObserved["HTlep_2ltau_onZ_cut_150"] = 11.0; upperLimitsObserved["HTlep_2ltau_onZ_cut_200"] = 5.2; upperLimitsObserved["HTlep_2ltau_onZ_cut_300"] = 3.0; upperLimitsObserved["METStrong_3l_offZ_cut_0"] = 2.6; upperLimitsObserved["METStrong_3l_offZ_cut_50"] = 2.1; upperLimitsObserved["METStrong_3l_offZ_cut_75"] = 2.1; upperLimitsObserved["METStrong_2ltau_offZ_cut_0"] = 4.2; upperLimitsObserved["METStrong_2ltau_offZ_cut_50"] = 3.1; upperLimitsObserved["METStrong_2ltau_offZ_cut_75"] = 2.6; upperLimitsObserved["METStrong_3l_onZ_cut_20"] = 11.0; upperLimitsObserved["METStrong_3l_onZ_cut_50"] = 6.4; upperLimitsObserved["METStrong_3l_onZ_cut_75"] = 5.1; upperLimitsObserved["METStrong_2ltau_onZ_cut_20"] = 5.9; upperLimitsObserved["METStrong_2ltau_onZ_cut_50"] = 3.4; upperLimitsObserved["METStrong_2ltau_onZ_cut_75"] = 1.2; upperLimitsObserved["METWeak_3l_offZ_cut_0"] = 11.; upperLimitsObserved["METWeak_3l_offZ_cut_50"] = 5.3; upperLimitsObserved["METWeak_3l_offZ_cut_75"] = 3.1; upperLimitsObserved["METWeak_2ltau_offZ_cut_0"] = 23.; upperLimitsObserved["METWeak_2ltau_offZ_cut_50"] = 4.3; upperLimitsObserved["METWeak_2ltau_offZ_cut_75"] = 3.1; upperLimitsObserved["METWeak_3l_onZ_cut_20"] = 41.; upperLimitsObserved["METWeak_3l_onZ_cut_50"] = 16.; upperLimitsObserved["METWeak_3l_onZ_cut_75"] = 8.0; upperLimitsObserved["METWeak_2ltau_onZ_cut_20"] = 80.; upperLimitsObserved["METWeak_2ltau_onZ_cut_50"] = 4.4; upperLimitsObserved["METWeak_2ltau_onZ_cut_75"] = 1.8; upperLimitsObserved["Meff_3l_offZ_cut_0"] = 11.; upperLimitsObserved["Meff_3l_offZ_cut_150"] = 8.1; upperLimitsObserved["Meff_3l_offZ_cut_300"] = 3.1; upperLimitsObserved["Meff_3l_offZ_cut_500"] = 2.1; upperLimitsObserved["Meff_2ltau_offZ_cut_0"] = 25.; upperLimitsObserved["Meff_2ltau_offZ_cut_150"] = 12.; upperLimitsObserved["Meff_2ltau_offZ_cut_300"] = 3.9; upperLimitsObserved["Meff_2ltau_offZ_cut_500"] = 2.2; upperLimitsObserved["Meff_3l_onZ_cut_0"] = 48.; upperLimitsObserved["Meff_3l_onZ_cut_150"] = 37.; upperLimitsObserved["Meff_3l_onZ_cut_300"] = 11.; upperLimitsObserved["Meff_3l_onZ_cut_500"] = 4.8; upperLimitsObserved["Meff_2ltau_onZ_cut_0"] = 85.; upperLimitsObserved["Meff_2ltau_onZ_cut_150"] = 28.; upperLimitsObserved["Meff_2ltau_onZ_cut_300"] = 5.9; upperLimitsObserved["Meff_2ltau_onZ_cut_500"] = 1.9; upperLimitsObserved["MeffStrong_3l_offZ_cut_0"] = 3.8; upperLimitsObserved["MeffStrong_3l_offZ_cut_150"] = 3.8; upperLimitsObserved["MeffStrong_3l_offZ_cut_300"] = 2.8; upperLimitsObserved["MeffStrong_3l_offZ_cut_500"] = 2.1; upperLimitsObserved["MeffStrong_2ltau_offZ_cut_0"] = 3.9; upperLimitsObserved["MeffStrong_2ltau_offZ_cut_150"] = 4.0; upperLimitsObserved["MeffStrong_2ltau_offZ_cut_300"] = 2.9; upperLimitsObserved["MeffStrong_2ltau_offZ_cut_500"] = 1.5; upperLimitsObserved["MeffStrong_3l_onZ_cut_0"] = 10.0; upperLimitsObserved["MeffStrong_3l_onZ_cut_150"] = 10.0; upperLimitsObserved["MeffStrong_3l_onZ_cut_300"] = 6.8; upperLimitsObserved["MeffStrong_3l_onZ_cut_500"] = 3.9; upperLimitsObserved["MeffStrong_2ltau_onZ_cut_0"] = 1.6; upperLimitsObserved["MeffStrong_2ltau_onZ_cut_150"] = 1.4; upperLimitsObserved["MeffStrong_2ltau_onZ_cut_300"] = 1.5; upperLimitsObserved["MeffStrong_2ltau_onZ_cut_500"] = 0.9; // Expected upper limits are also given but not used in this analysis map upperLimitsExpected; upperLimitsExpected["HTlep_3l_offZ_cut_0"] = 11.; upperLimitsExpected["HTlep_3l_offZ_cut_100"] = 8.5; upperLimitsExpected["HTlep_3l_offZ_cut_150"] = 4.6; upperLimitsExpected["HTlep_3l_offZ_cut_200"] = 3.6; upperLimitsExpected["HTlep_3l_offZ_cut_300"] = 1.9; upperLimitsExpected["HTlep_2ltau_offZ_cut_0"] = 23.; upperLimitsExpected["HTlep_2ltau_offZ_cut_100"] = 14.; upperLimitsExpected["HTlep_2ltau_offZ_cut_150"] = 6.4; upperLimitsExpected["HTlep_2ltau_offZ_cut_200"] = 3.6; upperLimitsExpected["HTlep_2ltau_offZ_cut_300"] = 1.5; upperLimitsExpected["HTlep_3l_onZ_cut_0"] = 33.; upperLimitsExpected["HTlep_3l_onZ_cut_100"] = 25.; upperLimitsExpected["HTlep_3l_onZ_cut_150"] = 12.; upperLimitsExpected["HTlep_3l_onZ_cut_200"] = 6.5; upperLimitsExpected["HTlep_3l_onZ_cut_300"] = 3.1; upperLimitsExpected["HTlep_2ltau_onZ_cut_0"] = 94.; upperLimitsExpected["HTlep_2ltau_onZ_cut_100"] = 61.; upperLimitsExpected["HTlep_2ltau_onZ_cut_150"] = 9.9; upperLimitsExpected["HTlep_2ltau_onZ_cut_200"] = 4.5; upperLimitsExpected["HTlep_2ltau_onZ_cut_300"] = 1.9; upperLimitsExpected["METStrong_3l_offZ_cut_0"] = 3.1; upperLimitsExpected["METStrong_3l_offZ_cut_50"] = 2.4; upperLimitsExpected["METStrong_3l_offZ_cut_75"] = 2.3; upperLimitsExpected["METStrong_2ltau_offZ_cut_0"] = 4.8; upperLimitsExpected["METStrong_2ltau_offZ_cut_50"] = 3.3; upperLimitsExpected["METStrong_2ltau_offZ_cut_75"] = 2.1; upperLimitsExpected["METStrong_3l_onZ_cut_20"] = 8.7; upperLimitsExpected["METStrong_3l_onZ_cut_50"] = 4.9; upperLimitsExpected["METStrong_3l_onZ_cut_75"] = 3.8; upperLimitsExpected["METStrong_2ltau_onZ_cut_20"] = 7.3; upperLimitsExpected["METStrong_2ltau_onZ_cut_50"] = 2.8; upperLimitsExpected["METStrong_2ltau_onZ_cut_75"] = 1.5; upperLimitsExpected["METWeak_3l_offZ_cut_0"] = 10.; upperLimitsExpected["METWeak_3l_offZ_cut_50"] = 4.7; upperLimitsExpected["METWeak_3l_offZ_cut_75"] = 3.0; upperLimitsExpected["METWeak_2ltau_offZ_cut_0"] = 21.; upperLimitsExpected["METWeak_2ltau_offZ_cut_50"] = 4.0; upperLimitsExpected["METWeak_2ltau_offZ_cut_75"] = 2.6; upperLimitsExpected["METWeak_3l_onZ_cut_20"] = 30.; upperLimitsExpected["METWeak_3l_onZ_cut_50"] = 10.; upperLimitsExpected["METWeak_3l_onZ_cut_75"] = 5.4; upperLimitsExpected["METWeak_2ltau_onZ_cut_20"] = 88.; upperLimitsExpected["METWeak_2ltau_onZ_cut_50"] = 5.5; upperLimitsExpected["METWeak_2ltau_onZ_cut_75"] = 2.2; upperLimitsExpected["Meff_3l_offZ_cut_0"] = 11.; upperLimitsExpected["Meff_3l_offZ_cut_150"] = 8.8; upperLimitsExpected["Meff_3l_offZ_cut_300"] = 3.7; upperLimitsExpected["Meff_3l_offZ_cut_500"] = 2.1; upperLimitsExpected["Meff_2ltau_offZ_cut_0"] = 23.; upperLimitsExpected["Meff_2ltau_offZ_cut_150"] = 13.; upperLimitsExpected["Meff_2ltau_offZ_cut_300"] = 4.9; upperLimitsExpected["Meff_2ltau_offZ_cut_500"] = 2.4; upperLimitsExpected["Meff_3l_onZ_cut_0"] = 33.; upperLimitsExpected["Meff_3l_onZ_cut_150"] = 25.; upperLimitsExpected["Meff_3l_onZ_cut_300"] = 9.; upperLimitsExpected["Meff_3l_onZ_cut_500"] = 3.9; upperLimitsExpected["Meff_2ltau_onZ_cut_0"] = 94.; upperLimitsExpected["Meff_2ltau_onZ_cut_150"] = 35.; upperLimitsExpected["Meff_2ltau_onZ_cut_300"] = 6.8; upperLimitsExpected["Meff_2ltau_onZ_cut_500"] = 2.5; upperLimitsExpected["MeffStrong_3l_offZ_cut_0"] = 3.9; upperLimitsExpected["MeffStrong_3l_offZ_cut_150"] = 3.9; upperLimitsExpected["MeffStrong_3l_offZ_cut_300"] = 3.0; upperLimitsExpected["MeffStrong_3l_offZ_cut_500"] = 2.0; upperLimitsExpected["MeffStrong_2ltau_offZ_cut_0"] = 3.8; upperLimitsExpected["MeffStrong_2ltau_offZ_cut_150"] = 3.9; upperLimitsExpected["MeffStrong_2ltau_offZ_cut_300"] = 3.1; upperLimitsExpected["MeffStrong_2ltau_offZ_cut_500"] = 1.6; upperLimitsExpected["MeffStrong_3l_onZ_cut_0"] = 6.9; upperLimitsExpected["MeffStrong_3l_onZ_cut_150"] = 7.1; upperLimitsExpected["MeffStrong_3l_onZ_cut_300"] = 4.9; upperLimitsExpected["MeffStrong_3l_onZ_cut_500"] = 3.0; upperLimitsExpected["MeffStrong_2ltau_onZ_cut_0"] = 2.4; upperLimitsExpected["MeffStrong_2ltau_onZ_cut_150"] = 2.5; upperLimitsExpected["MeffStrong_2ltau_onZ_cut_300"] = 2.0; upperLimitsExpected["MeffStrong_2ltau_onZ_cut_500"] = 1.1; if (observed) return upperLimitsObserved[signal_region]; else return upperLimitsExpected[signal_region]; } /// Function checking if there is an OSSF lepton pair or a combination of 3 leptons with an invariant mass close to the Z mass /// @todo Should the reference Z mass be 91.2? int isonZ (const Particles& particles) { int onZ = 0; double best_mass_2 = 999.; double best_mass_3 = 999.; // Loop over all 2 particle combinations to find invariant mass of OSSF pair closest to Z mass foreach ( const Particle& p1, particles ) { foreach ( const Particle& p2, particles ) { double mass_difference_2_old = fabs(91.0 - best_mass_2); double mass_difference_2_new = fabs(91.0 - (p1.momentum() + p2.momentum()).mass()/GeV); // If particle combination is OSSF pair calculate mass difference to Z mass if ( (p1.pid()*p2.pid() == -121 || p1.pid()*p2.pid() == -169) ) { // Get invariant mass closest to Z mass if (mass_difference_2_new < mass_difference_2_old) best_mass_2 = (p1.momentum() + p2.momentum()).mass()/GeV; // In case there is an OSSF pair take also 3rd lepton into account (e.g. from FSR and photon to electron conversion) foreach ( const Particle & p3 , particles ) { double mass_difference_3_old = fabs(91.0 - best_mass_3); double mass_difference_3_new = fabs(91.0 - (p1.momentum() + p2.momentum() + p3.momentum()).mass()/GeV); if (mass_difference_3_new < mass_difference_3_old) best_mass_3 = (p1.momentum() + p2.momentum() + p3.momentum()).mass()/GeV; } } } } // Pick the minimum invariant mass of the best OSSF pair combination and the best 3 lepton combination // If this mass is in a 20 GeV window around the Z mass, the event is classified as onZ double best_mass = min(best_mass_2, best_mass_3); if (fabs(91.0 - best_mass) < 20) onZ = 1; return onZ; } //@} private: /// Histograms //@{ Histo1DPtr _h_HTlep_all, _h_HTjets_all, _h_MET_all, _h_Meff_all; Histo1DPtr _h_pt_1_3l, _h_pt_2_3l, _h_pt_3_3l, _h_pt_1_2ltau, _h_pt_2_2ltau, _h_pt_3_2ltau; Histo1DPtr _h_e_n, _h_mu_n, _h_tau_n; Histo1DPtr _h_excluded; //@} /// Fiducial efficiencies to model the effects of the ATLAS detector bool _use_fiducial_lepton_efficiency; /// List of signal regions and event counts per signal region vector _signal_regions; map _eventCountsPerSR; }; DECLARE_RIVET_PLUGIN(ATLAS_2012_I1204447); } diff --git a/analyses/pluginATLAS/ATLAS_2014_I1282441.cc b/analyses/pluginATLAS/ATLAS_2014_I1282441.cc --- a/analyses/pluginATLAS/ATLAS_2014_I1282441.cc +++ b/analyses/pluginATLAS/ATLAS_2014_I1282441.cc @@ -1,91 +1,91 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/FinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" #include "Rivet/Projections/IdentifiedFinalState.hh" namespace Rivet { class ATLAS_2014_I1282441 : public Analysis { public: ATLAS_2014_I1282441() : Analysis("ATLAS_2014_I1282441") { } void init() { // Use a large eta range such that we can discriminate on y /// @todo Convert to use a y-cut directly - UnstableFinalState ufs(Cuts::abseta < 10 && Cuts::pT > 500*MeV); + UnstableParticles ufs(Cuts::abseta < 10 && Cuts::pT > 500*MeV); IdentifiedFinalState phis(ufs); phis.acceptIdPair(PID::PHI); declare(phis, "Phis"); IdentifiedFinalState kpms(Cuts::abseta < 2.0 && Cuts::pT > 230*MeV); kpms.acceptIdPair(PID::KPLUS); declare(kpms, "Kpms"); _h_phi_rapidity = bookHisto1D(2,1,1); _h_phi_pT = bookHisto1D(1,1,1); } void analyze(const Event& event) { const Particles& ks_all = apply(event, "Kpms").particles(); Particles kp, km; foreach (const Particle& p, ks_all) { if (!p.hasAncestor(PID::PHI)) { MSG_DEBUG("-- K not from phi."); continue; } if (p.p3().mod() > 800*MeV) { MSG_DEBUG("-- p K too high."); continue; } (p.charge() > 0 ? kp : km).push_back(p); } const Particles& phis_all = apply(event, "Phis").particles(); Particles phis; /// @todo Use particles(Cuts&) instead foreach (const Particle& p, phis_all) { if ( p.absrap() > 0.8 ) { MSG_DEBUG("-- phi Y too high."); continue; } if ( p.pT() > 1.2*GeV ) { MSG_DEBUG("-- phi pT too high."); continue; } phis.push_back(p); } // Find Phi -> KK decays through matching of the kinematics if (!kp.empty() && !km.empty() && !phis.empty()) { const double w = event.weight(); MSG_DEBUG("Numbers of particles: #phi=" << phis.size() << ", #K+=" << kp.size() << ", #K-=" << km.size()); for (size_t ip = 0; ip < phis.size(); ++ip) { const Particle& phi = phis[ip]; for (size_t ikm = 0; ikm < km.size(); ++ikm) { for (size_t ikp = 0; ikp < kp.size(); ++ikp) { const FourMomentum mom = kp[ikp].mom() + km[ikm].mom(); if ( fuzzyEquals(mom.mass(), phi.mass(), 1e-5) ) { MSG_DEBUG("Accepted combinatoric: phi#:" << ip << " K+#:" << ikp << " K-#:" << ikm); _h_phi_rapidity->fill(phi.absrap(), w); _h_phi_pT->fill(phi.pT()/MeV, w); } else { MSG_DEBUG("Rejected combinatoric: phi#:" << ip << " K+#:" << ikp << " K-#:" << ikm << " Mass difference is " << mom.mass()-phi.mass()); } } } } } } void finalize() { scale(_h_phi_rapidity, crossSection()/millibarn/sumOfWeights()); scale(_h_phi_pT, crossSection()/microbarn/sumOfWeights()); } private: Histo1DPtr _h_phi_rapidity, _h_phi_pT; }; DECLARE_RIVET_PLUGIN(ATLAS_2014_I1282441); } diff --git a/analyses/pluginATLAS/ATLAS_2014_I1282447.cc b/analyses/pluginATLAS/ATLAS_2014_I1282447.cc --- a/analyses/pluginATLAS/ATLAS_2014_I1282447.cc +++ b/analyses/pluginATLAS/ATLAS_2014_I1282447.cc @@ -1,597 +1,597 @@ // -*- C++ -*- // ATLAS W+c analysis ////////////////////////////////////////////////////////////////////////// /* Description of rivet analysis ATLAS_2014_I1282447 W+c production This rivet routine implements the ATLAS W+c analysis. Apart from those histograms, described and published on HEP Data, here are some helper histograms defined, these are: d02-x01-y01, d02-x01-y02 and d08-x01-y01 are ratios, the nominator ("_plus") and denominator ("_minus") histograms are also given, so that the ratios can be reconstructed if need be (e.g. when running on separate samples). d05 and d06 are ratios over inclusive W production. The routine has to be run on a sample for inclusive W production in order to make sure the denominator ("_winc") is correctly filled. The ratios can be constructed using the following sample code: python divideWCharm.py import yoda hists_wc = yoda.read("Rivet_Wc.yoda") hists_winc = yoda.read("Rivet_Winc.yoda") ## division histograms --> ONLY for different plus minus runs # (merge before using yodamerge Rivet_plus.yoda Rivet_minus.yoda > Rivet_Wc.yoda) d02y01_plus = hists_wc["/ATLAS_2014_I1282447/d02-x01-y01_plus"] d02y01_minus = hists_wc["/ATLAS_2014_I1282447/d02-x01-y01_minus"] ratio_d02y01 = d02y01_plus.divide(d02y01_minus) ratio_d02y01.path = "/ATLAS_2014_I1282447/d02-x01-y01" d02y02_plus = hists_wc["/ATLAS_2014_I1282447/d02-x01-y02_plus"] d02y02_minus = hists_wc["/ATLAS_2014_I1282447/d02-x01-y02_minus"] ratio_d02y02= d02y02_plus.divide(d02y02_minus) ratio_d02y02.path = "/ATLAS_2014_I1282447/d02-x01-y02" d08y01_plus = hists_wc["/ATLAS_2014_I1282447/d08-x01-y01_plus"] d08y01_minus = hists_wc["/ATLAS_2014_I1282447/d08-x01-y01_minus"] ratio_d08y01= d08y01_plus.divide(d08y01_minus) ratio_d08y01.path = "/ATLAS_2014_I1282447/d08-x01-y01" # inclusive cross section h_winc = hists_winc["/ATLAS_2014_I1282447/d05-x01-y01"] h_d = hists_wc["/ATLAS_2014_I1282447/d01-x01-y02"] h_dstar= hists_wc["/ATLAS_2014_I1282447/d01-x01-y03"] ratio_wd = h_d.divide(h_winc) ratio_wd.path = "/ATLAS_2014_I1282447/d05-x01-y02" ratio_wdstar = h_d.divide(h_winc) ratio_wdstar.path = "/ATLAS_2014_I1282447/d05-x01-y03" # pT differential h_winc_plus = hists_winc["/ATLAS_2014_I1282447/d06-x01-y01_winc"] h_winc_minus = hists_winc["/ATLAS_2014_I1282447/d06-x01-y02_winc"] h_wd_plus = hists_wc["/ATLAS_2014_I1282447/d06-x01-y01_wplus"] h_wd_minus = hists_wc["/ATLAS_2014_I1282447/d06-x01-y02_wminus"] h_wdstar_plus = hists_wc["/ATLAS_2014_I1282447/d06-x01-y03_wplus"] h_wdstar_minus = hists_wc["/ATLAS_2014_I1282447/d06-x01-y04_wminus"] ratio_wd_plus = h_wd_plus.divide(h_winc_plus) ratio_wd_plus.path = "/ATLAS_2014_I1282447/d06-x01-y01" ratio_wd_minus = h_wd_plus.divide(h_winc_minus) ratio_wd_minus.path = "/ATLAS_2014_I1282447/d06-x01-y02" ratio_wdstar_plus = h_wdstar_plus.divide(h_winc_plus) ratio_wdstar_plus.path = "/ATLAS_2014_I1282447/d06-x01-y03" ratio_wdstar_minus = h_wdstar_plus.divide(h_winc_minus) ratio_wdstar_minus.path = "/ATLAS_2014_I1282447/d06-x01-y04" ratio_wd_plus = h_wd_plus.divide(h_winc_plus) ratio_wd_plus.path = "/ATLAS_2014_I1282447/d06-x01-y01" ratio_wd_minus = h_wd_plus.divide(h_winc_minus) ratio_wd_minus.path = "/ATLAS_2014_I1282447/d06-x01-y02" h_winc_plus= hists_winc["/ATLAS_2014_I1282447/d06-x01-y01_winc"] h_winc_minus= hists_winc["/ATLAS_2014_I1282447/d06-x01-y02_winc"] ## copy other histograms for plotting d01x01y01= hists_wc["/ATLAS_2014_I1282447/d01-x01-y01"] d01x01y01.path = "/ATLAS_2014_I1282447/d01-x01-y01" d01x01y02= hists_wc["/ATLAS_2014_I1282447/d01-x01-y02"] d01x01y02.path = "/ATLAS_2014_I1282447/d01-x01-y02" d01x01y03= hists_wc["/ATLAS_2014_I1282447/d01-x01-y03"] d01x01y03.path = "/ATLAS_2014_I1282447/d01-x01-y03" d03x01y01= hists_wc["/ATLAS_2014_I1282447/d03-x01-y01"] d03x01y01.path = "/ATLAS_2014_I1282447/d03-x01-y01" d03x01y02= hists_wc["/ATLAS_2014_I1282447/d03-x01-y02"] d03x01y02.path = "/ATLAS_2014_I1282447/d03-x01-y02" d04x01y01= hists_wc["/ATLAS_2014_I1282447/d04-x01-y01"] d04x01y01.path = "/ATLAS_2014_I1282447/d04-x01-y01" d04x01y02= hists_wc["/ATLAS_2014_I1282447/d04-x01-y02"] d04x01y02.path = "/ATLAS_2014_I1282447/d04-x01-y02" d04x01y03= hists_wc["/ATLAS_2014_I1282447/d04-x01-y03"] d04x01y03.path = "/ATLAS_2014_I1282447/d04-x01-y03" d04x01y04= hists_wc["/ATLAS_2014_I1282447/d04-x01-y04"] d04x01y04.path = "/ATLAS_2014_I1282447/d04-x01-y04" d07x01y01= hists_wc["/ATLAS_2014_I1282447/d07-x01-y01"] d07x01y01.path = "/ATLAS_2014_I1282447/d07-x01-y01" yoda.write([ratio_d02y01,ratio_d02y02,ratio_d08y01, ratio_wd ,ratio_wdstar,ratio_wd_plus,ratio_wd_minus ,ratio_wdstar_plus,ratio_wdstar_minus,d01x01y01,d01x01y02,d01x01y03,d03x01y01,d03x01y02,d04x01y01,d04x01y02,d04x01y03,d04x01y04,d07x01y01],"validation.yoda") */ ////////////////////////////////////////////////////////////////////////// #include "Rivet/Analysis.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" #include "Rivet/Projections/WFinder.hh" #include "Rivet/Projections/FastJets.hh" #include "Rivet/Projections/ChargedFinalState.hh" #include "Rivet/Projections/VetoedFinalState.hh" namespace Rivet { class ATLAS_2014_I1282447 : public Analysis { public: /// Constructor ATLAS_2014_I1282447() : Analysis("ATLAS_2014_I1282447") { setNeedsCrossSection(true); } /// @name Analysis methods //@{ /// Book histograms and initialise projections before the run void init() { /// @todo Initialise and register projections here - UnstableFinalState fs; + UnstableParticles fs; Cut cuts = Cuts::etaIn(-2.5, 2.5) & (Cuts::pT > 20*GeV); /// should use sample WITHOUT QED radiation off the electron WFinder wfinder_born_el(fs, cuts, PID::ELECTRON, 25*GeV, 8000*GeV, 15*GeV, 0.1, WFinder::CLUSTERALL, WFinder::TRACK); declare(wfinder_born_el, "WFinder_born_el"); WFinder wfinder_born_mu(fs, cuts, PID::MUON , 25*GeV, 8000*GeV, 15*GeV, 0.1, WFinder::CLUSTERALL, WFinder::TRACK); declare(wfinder_born_mu, "WFinder_born_mu"); // all hadrons that could be coming from a charm decay -- // -- for safety, use region -3.5 - 3.5 - declare(UnstableFinalState(Cuts::abseta <3.5), "hadrons"); + declare(UnstableParticles(Cuts::abseta <3.5), "hadrons"); // Input for the jets: no neutrinos, no muons, and no electron which passed the electron cuts // also: NO electron, muon or tau (needed due to ATLAS jet truth reconstruction feature) VetoedFinalState veto; veto.addVetoOnThisFinalState(wfinder_born_el); veto.addVetoOnThisFinalState(wfinder_born_mu); veto.addVetoPairId(PID::ELECTRON); veto.addVetoPairId(PID::MUON); veto.addVetoPairId(PID::TAU); FastJets jets(veto, FastJets::ANTIKT, 0.4); declare(jets, "jets"); // Book histograms // charge separated integrated cross sections _hist_wcjet_charge = bookHisto1D("d01-x01-y01"); _hist_wd_charge = bookHisto1D("d01-x01-y02"); _hist_wdstar_charge = bookHisto1D("d01-x01-y03"); // charge integrated total cross sections _hist_wcjet_ratio = bookScatter2D("d02-x01-y01"); _hist_wd_ratio = bookScatter2D("d02-x01-y02"); _hist_wcjet_minus = bookHisto1D("d02-x01-y01_minus"); _hist_wd_minus = bookHisto1D("d02-x01-y02_minus"); _hist_wcjet_plus = bookHisto1D("d02-x01-y01_plus"); _hist_wd_plus = bookHisto1D("d02-x01-y02_plus"); // eta distributions _hist_wplus_wcjet_eta_lep = bookHisto1D("d03-x01-y01"); _hist_wminus_wcjet_eta_lep = bookHisto1D("d03-x01-y02"); _hist_wplus_wdminus_eta_lep = bookHisto1D("d04-x01-y01"); _hist_wminus_wdplus_eta_lep = bookHisto1D("d04-x01-y02"); _hist_wplus_wdstar_eta_lep = bookHisto1D("d04-x01-y03"); _hist_wminus_wdstar_eta_lep = bookHisto1D("d04-x01-y04"); // ratio of cross section (WD over W inclusive) // postprocess! _hist_w_inc = bookHisto1D("d05-x01-y01"); _hist_wd_winc_ratio = bookScatter2D("d05-x01-y02"); _hist_wdstar_winc_ratio = bookScatter2D("d05-x01-y03"); // ratio of cross section (WD over W inclusive -- function of pT of D meson) _hist_wplusd_wplusinc_pt_ratio = bookScatter2D("d06-x01-y01"); _hist_wminusd_wminusinc_pt_ratio = bookScatter2D("d06-x01-y02"); _hist_wplusdstar_wplusinc_pt_ratio = bookScatter2D("d06-x01-y03"); _hist_wminusdstar_wminusinc_pt_ratio = bookScatter2D("d06-x01-y04"); // could use for postprocessing! _hist_wplusd_wplusinc_pt = bookHisto1D("d06-x01-y01_wplus"); _hist_wminusd_wminusinc_pt = bookHisto1D("d06-x01-y02_wminus"); _hist_wplusdstar_wplusinc_pt = bookHisto1D("d06-x01-y03_wplus"); _hist_wminusdstar_wminusinc_pt = bookHisto1D("d06-x01-y04_wminus"); _hist_wplus_winc = bookHisto1D("d06-x01-y01_winc"); _hist_wminus_winc = bookHisto1D("d06-x01-y02_winc"); // jet multiplicity of charge integrated W+cjet cross section (+0 or +1 jet in addition to the charm jet) _hist_wcjet_jets = bookHisto1D("d07-x01-y01"); // jet multiplicity of W+cjet cross section ratio (+0 or +1 jet in addition to the charm jet) _hist_wcjet_jets_ratio = bookScatter2D("d08-x01-y01"); _hist_wcjet_jets_plus = bookHisto1D("d08-x01-y01_plus"); _hist_wcjet_jets_minus = bookHisto1D("d08-x01-y01_minus"); } /// Perform the per-event analysis void analyze(const Event& event) { const double weight = event.weight(); double charge_weight = 0; // account for OS/SS events int lepton_charge = 0; double lepton_eta = 0.; /// Find leptons const WFinder& wfinder_born_el = apply(event, "WFinder_born_el"); const WFinder& wfinder_born_mu = apply(event, "WFinder_born_mu"); if (wfinder_born_el.empty() && wfinder_born_mu.empty()) { MSG_DEBUG("No W bosons found"); vetoEvent; } bool keepevent = false; //check electrons if (!wfinder_born_el.empty()) { const FourMomentum nu = wfinder_born_el.constituentNeutrinos()[0]; if (wfinder_born_el.mT() > 40*GeV && nu.pT() > 25*GeV) { keepevent = true; lepton_charge = wfinder_born_el.constituentLeptons()[0].charge(); lepton_eta = fabs(wfinder_born_el.constituentLeptons()[0].pseudorapidity()); } } //check muons if (!wfinder_born_mu.empty()) { const FourMomentum nu = wfinder_born_mu.constituentNeutrinos()[0]; if (wfinder_born_mu.mT() > 40*GeV && nu.pT() > 25*GeV) { keepevent = true; lepton_charge = wfinder_born_mu.constituentLeptons()[0].charge(); lepton_eta = fabs(wfinder_born_mu.constituentLeptons()[0].pseudorapidity()); } } if (!keepevent) { MSG_DEBUG("Event does not pass mT and MET cuts"); vetoEvent; } if (lepton_charge > 0) { _hist_wplus_winc->fill(10., weight); _hist_wplus_winc->fill(16., weight); _hist_wplus_winc->fill(30., weight); _hist_wplus_winc->fill(60., weight); _hist_w_inc->fill(+1, weight); } else if (lepton_charge < 0) { _hist_wminus_winc->fill(10., weight); _hist_wminus_winc->fill(16., weight); _hist_wminus_winc->fill(30., weight); _hist_wminus_winc->fill(60., weight); _hist_w_inc->fill(-1, weight); } // Find hadrons in the event - const UnstableFinalState& fs = apply(event, "hadrons"); + const UnstableParticles& fs = apply(event, "hadrons"); /// FIND Different channels // 1: wcjet // get jets const Jets& jets = apply(event, "jets").jetsByPt(Cuts::pT>25.0*GeV && Cuts::abseta<2.5); // loop over jets to select jets used to match to charm Jets js; int matched_charmHadron = 0; double charm_charge = 0.; int njets = 0; int nj = 0; bool mat_jet = false; double ptcharm = 0; if (matched_charmHadron > -1) { for (const Jet& j : jets) { mat_jet = false; njets += 1; for (const Particle& p : fs.particles()) { /// @todo Avoid touching HepMC! const GenParticle* part = p.genParticle(); if (p.hasCharm()) { //if(isFromBDecay(p)) continue; if (p.fromBottom()) continue; if (p.pT() < 5*GeV ) continue; if (hasCharmedChildren(part)) continue; if (deltaR(p, j) < 0.3) { mat_jet = true; if (p.pT() > ptcharm) { charm_charge = part->pdg_id(); ptcharm = p.pT(); } } } } if (mat_jet) nj++; } if (charm_charge * lepton_charge > 0) charge_weight = -1; else charge_weight = +1; if (nj == 1) { if (lepton_charge > 0) { _hist_wcjet_charge ->fill( 1, weight*charge_weight); _hist_wcjet_plus ->fill( 0, weight*charge_weight); _hist_wplus_wcjet_eta_lep ->fill(lepton_eta, weight*charge_weight); _hist_wcjet_jets_plus ->fill(njets-1 , weight*charge_weight); } else if (lepton_charge < 0) { _hist_wcjet_charge ->fill( -1, weight*charge_weight); _hist_wcjet_minus ->fill( 0, weight*charge_weight); _hist_wminus_wcjet_eta_lep->fill(lepton_eta, weight*charge_weight); _hist_wcjet_jets_minus ->fill(njets-1 , weight*charge_weight); } _hist_wcjet_jets->fill(njets-1, weight*charge_weight); } } // // 1/2: w+d(*) meson for (const Particle& p : fs.particles()) { /// @todo Avoid touching HepMC! const GenParticle* part = p.genParticle(); if (p.pT() < 8*GeV) continue; if (fabs(p.eta()) > 2.2) continue; // W+D if (abs(part->pdg_id()) == 411) { if (lepton_charge * part->pdg_id() > 0) charge_weight = -1; else charge_weight = +1; // fill histos if (lepton_charge > 0) { _hist_wd_charge ->fill( 1, weight*charge_weight); _hist_wd_plus ->fill( 0, weight*charge_weight); _hist_wplus_wdminus_eta_lep->fill(lepton_eta, weight*charge_weight); _hist_wplusd_wplusinc_pt ->fill( p.pT(), weight*charge_weight); } else if (lepton_charge < 0) { _hist_wd_charge ->fill( -1, weight*charge_weight); _hist_wd_minus ->fill( 0, weight*charge_weight); _hist_wminus_wdplus_eta_lep->fill(lepton_eta, weight*charge_weight); _hist_wminusd_wminusinc_pt ->fill(p.pT() , weight*charge_weight); } } // W+Dstar if ( abs(part->pdg_id()) == 413 ) { if (lepton_charge*part->pdg_id() > 0) charge_weight = -1; else charge_weight = +1; if (lepton_charge > 0) { _hist_wdstar_charge->fill(+1, weight*charge_weight); _hist_wd_plus->fill( 0, weight*charge_weight); _hist_wplus_wdstar_eta_lep->fill( lepton_eta, weight*charge_weight); _hist_wplusdstar_wplusinc_pt->fill( p.pT(), weight*charge_weight); } else if (lepton_charge < 0) { _hist_wdstar_charge->fill(-1, weight*charge_weight); _hist_wd_minus->fill(0, weight*charge_weight); _hist_wminus_wdstar_eta_lep->fill(lepton_eta, weight*charge_weight); _hist_wminusdstar_wminusinc_pt->fill(p.pT(), weight*charge_weight); } } } } /// Normalise histograms etc., after the run void finalize() { const double sf = crossSection() / sumOfWeights(); // norm to cross section // d01 scale(_hist_wcjet_charge, sf); scale(_hist_wd_charge, sf); scale(_hist_wdstar_charge, sf); //d02 scale(_hist_wcjet_plus, sf); scale(_hist_wcjet_minus, sf); scale(_hist_wd_plus, sf); scale(_hist_wd_minus, sf); divide(_hist_wcjet_plus, _hist_wcjet_minus, _hist_wcjet_ratio); divide(_hist_wd_plus, _hist_wd_minus, _hist_wd_ratio ); //d03 scale(_hist_wplus_wcjet_eta_lep, sf); scale(_hist_wminus_wcjet_eta_lep, sf); //d04 scale(_hist_wplus_wdminus_eta_lep, crossSection()/sumOfWeights()); scale(_hist_wminus_wdplus_eta_lep, crossSection()/sumOfWeights()); scale(_hist_wplus_wdstar_eta_lep , crossSection()/sumOfWeights()); scale(_hist_wminus_wdstar_eta_lep, crossSection()/sumOfWeights()); //d05 scale(_hist_w_inc, 0.01 * sf); // in percent --> /100 divide(_hist_wd_charge, _hist_w_inc, _hist_wd_winc_ratio ); divide(_hist_wdstar_charge, _hist_w_inc, _hist_wdstar_winc_ratio); //d06, in percentage! scale(_hist_wplusd_wplusinc_pt, sf); scale(_hist_wminusd_wminusinc_pt, sf); scale(_hist_wplusdstar_wplusinc_pt, sf); scale(_hist_wminusdstar_wminusinc_pt, sf); scale(_hist_wplus_winc, 0.01 * sf); // in percent --> /100 scale(_hist_wminus_winc, 0.01 * sf); // in percent --> /100 divide(_hist_wplusd_wplusinc_pt, _hist_wplus_winc , _hist_wplusd_wplusinc_pt_ratio ); divide(_hist_wminusd_wminusinc_pt, _hist_wminus_winc, _hist_wminusd_wminusinc_pt_ratio ); divide(_hist_wplusdstar_wplusinc_pt, _hist_wplus_winc , _hist_wplusdstar_wplusinc_pt_ratio ); divide(_hist_wminusdstar_wminusinc_pt, _hist_wminus_winc, _hist_wminusdstar_wminusinc_pt_ratio); //d07 scale(_hist_wcjet_jets, sf); //d08 scale(_hist_wcjet_jets_minus, sf); scale(_hist_wcjet_jets_plus, sf); divide(_hist_wcjet_jets_plus, _hist_wcjet_jets_minus , _hist_wcjet_jets_ratio); } //@} private: // Data members like post-cuts event weight counters go here // Check whether particle comes from b-decay /// @todo Use built-in method and avoid HepMC bool isFromBDecay(const Particle& p) { bool isfromB = false; if (p.genParticle() == nullptr) return false; const GenParticle* part = p.genParticle(); const GenVertex* ivtx = const_cast(part->production_vertex()); while (ivtx) { if (ivtx->particles_in_size() < 1) { isfromB = false; break; } const HepMC::GenVertex::particles_in_const_iterator iPart_invtx = ivtx->particles_in_const_begin(); part = (*iPart_invtx); if (!part) { isfromB = false; break; } isfromB = PID::hasBottom(part->pdg_id()); if (isfromB == true) break; ivtx = const_cast(part->production_vertex()); if ( part->pdg_id() == 2212 || !ivtx ) break; // reached beam } return isfromB; } // Check whether particle has charmed children /// @todo Use built-in method and avoid HepMC! bool hasCharmedChildren(const GenParticle *part) { bool hasCharmedChild = false; if (part == nullptr) return false; const GenVertex* ivtx = const_cast(part->end_vertex()); if (ivtx == nullptr) return false; // if (ivtx->particles_out_size() < 2) return false; HepMC::GenVertex::particles_out_const_iterator iPart_invtx = ivtx->particles_out_const_begin(); HepMC::GenVertex::particles_out_const_iterator end_invtx = ivtx->particles_out_const_end(); for ( ; iPart_invtx != end_invtx; iPart_invtx++ ) { const GenParticle* p2 = (*iPart_invtx); if (p2 == part) continue; hasCharmedChild = PID::hasCharm(p2->pdg_id()); if (hasCharmedChild == true) break; hasCharmedChild = hasCharmedChildren(p2); if (hasCharmedChild == true) break; } return hasCharmedChild; } private: /// @name Histograms //@{ //d01-x01- Histo1DPtr _hist_wcjet_charge; Histo1DPtr _hist_wd_charge; Histo1DPtr _hist_wdstar_charge; //d02-x01- Scatter2DPtr _hist_wcjet_ratio; Scatter2DPtr _hist_wd_ratio; Histo1DPtr _hist_wcjet_plus; Histo1DPtr _hist_wd_plus; Histo1DPtr _hist_wcjet_minus; Histo1DPtr _hist_wd_minus; //d03-x01- Histo1DPtr _hist_wplus_wcjet_eta_lep; Histo1DPtr _hist_wminus_wcjet_eta_lep; //d04-x01- Histo1DPtr _hist_wplus_wdminus_eta_lep; Histo1DPtr _hist_wminus_wdplus_eta_lep; //d05-x01- Histo1DPtr _hist_wplus_wdstar_eta_lep; Histo1DPtr _hist_wminus_wdstar_eta_lep; // postprocessing histos //d05-x01 Histo1DPtr _hist_w_inc; Scatter2DPtr _hist_wd_winc_ratio; Scatter2DPtr _hist_wdstar_winc_ratio; //d06-x01 Histo1DPtr _hist_wplus_winc; Histo1DPtr _hist_wminus_winc; Scatter2DPtr _hist_wplusd_wplusinc_pt_ratio; Scatter2DPtr _hist_wminusd_wminusinc_pt_ratio; Scatter2DPtr _hist_wplusdstar_wplusinc_pt_ratio; Scatter2DPtr _hist_wminusdstar_wminusinc_pt_ratio; Histo1DPtr _hist_wplusd_wplusinc_pt ; Histo1DPtr _hist_wminusd_wminusinc_pt; Histo1DPtr _hist_wplusdstar_wplusinc_pt; Histo1DPtr _hist_wminusdstar_wminusinc_pt; // d07-x01 Histo1DPtr _hist_wcjet_jets ; //d08-x01 Scatter2DPtr _hist_wcjet_jets_ratio ; Histo1DPtr _hist_wcjet_jets_plus ; Histo1DPtr _hist_wcjet_jets_minus; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(ATLAS_2014_I1282447); } diff --git a/analyses/pluginATLAS/ATLAS_2014_I1327229.cc b/analyses/pluginATLAS/ATLAS_2014_I1327229.cc --- a/analyses/pluginATLAS/ATLAS_2014_I1327229.cc +++ b/analyses/pluginATLAS/ATLAS_2014_I1327229.cc @@ -1,1330 +1,1330 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/ChargedFinalState.hh" #include "Rivet/Projections/VisibleFinalState.hh" #include "Rivet/Projections/VetoedFinalState.hh" #include "Rivet/Projections/IdentifiedFinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" #include "Rivet/Projections/FastJets.hh" namespace Rivet { class ATLAS_2014_I1327229 : public Analysis { public: /// Constructor ATLAS_2014_I1327229() : Analysis("ATLAS_2014_I1327229") { } /// Book histograms and initialise projections before the run void init() { // To calculate the acceptance without having the fiducial lepton efficiencies included, this part can be turned off _use_fiducial_lepton_efficiency = true; // Random numbers for simulation of ATLAS detector reconstruction efficiency /// @todo Replace with SmearedParticles etc. srand(160385); // Read in all signal regions _signal_regions = getSignalRegions(); // Set number of events per signal region to 0 for (size_t i = 0; i < _signal_regions.size(); i++) _eventCountsPerSR[_signal_regions[i]] = 0.0; // Final state including all charged and neutral particles const FinalState fs(-5.0, 5.0, 1*GeV); declare(fs, "FS"); // Final state including all charged particles declare(ChargedFinalState(-2.5, 2.5, 1*GeV), "CFS"); // Final state including all visible particles (to calculate MET, Jets etc.) declare(VisibleFinalState(-5.0,5.0),"VFS"); // Final state including all AntiKt 04 Jets VetoedFinalState vfs; vfs.addVetoPairId(PID::MUON); declare(FastJets(vfs, FastJets::ANTIKT, 0.4), "AntiKtJets04"); // Final state including all unstable particles (including taus) - declare(UnstableFinalState(Cuts::abseta < 5.0 && Cuts::pT > 5*GeV),"UFS"); + declare(UnstableParticles(Cuts::abseta < 5.0 && Cuts::pT > 5*GeV),"UFS"); // Final state including all electrons IdentifiedFinalState elecs(Cuts::abseta < 2.47 && Cuts::pT > 10*GeV); elecs.acceptIdPair(PID::ELECTRON); declare(elecs, "elecs"); // Final state including all muons IdentifiedFinalState muons(Cuts::abseta < 2.5 && Cuts::pT > 10*GeV); muons.acceptIdPair(PID::MUON); declare(muons, "muons"); /// Book histograms: _h_HTlep_all = bookHisto1D("HTlep_all", 30,0,3000); _h_HTjets_all = bookHisto1D("HTjets_all", 30,0,3000); _h_MET_all = bookHisto1D("MET_all", 30,0,1500); _h_Meff_all = bookHisto1D("Meff_all", 50,0,5000); _h_min_pT_all = bookHisto1D("min_pT_all", 50, 0, 2000); _h_mT_all = bookHisto1D("mT_all", 50, 0, 2000); _h_e_n = bookHisto1D("e_n", 10, -0.5, 9.5); _h_mu_n = bookHisto1D("mu_n", 10, -0.5, 9.5); _h_tau_n = bookHisto1D("tau_n", 10, -0.5, 9.5); _h_pt_1_3l = bookHisto1D("pt_1_3l", 100, 0, 2000); _h_pt_2_3l = bookHisto1D("pt_2_3l", 100, 0, 2000); _h_pt_3_3l = bookHisto1D("pt_3_3l", 100, 0, 2000); _h_pt_1_2ltau = bookHisto1D("pt_1_2ltau", 100, 0, 2000); _h_pt_2_2ltau = bookHisto1D("pt_2_2ltau", 100, 0, 2000); _h_pt_3_2ltau = bookHisto1D("pt_3_2ltau", 100, 0, 2000); _h_excluded = bookHisto1D("excluded", 2, -0.5, 1.5); } /// Perform the per-event analysis void analyze(const Event& event) { // Muons Particles muon_candidates; const Particles charged_tracks = apply(event, "CFS").particles(); const Particles visible_particles = apply(event, "VFS").particles(); for (const Particle& mu : apply(event, "muons").particlesByPt() ) { // Calculate pTCone30 variable (pT of all tracks within dR<0.3 - pT of muon itself) double pTinCone = -mu.pT(); for (const Particle& track : charged_tracks ) { if (deltaR(mu.momentum(),track.momentum()) < 0.3 ) pTinCone += track.pT(); } // Calculate eTCone30 variable (pT of all visible particles within dR<0.3) double eTinCone = 0.; for (const Particle& visible_particle : visible_particles) { if (visible_particle.abspid() != PID::MUON && inRange(deltaR(mu.momentum(),visible_particle.momentum()), 0.1, 0.3)) eTinCone += visible_particle.pT(); } // Apply reconstruction efficiency and simulate reconstruction int muon_id = 13; if (mu.hasAncestor(PID::TAU) || mu.hasAncestor(-PID::TAU)) muon_id = 14; const double eff = (_use_fiducial_lepton_efficiency) ? apply_reco_eff(muon_id,mu) : 1.0; const bool keep_muon = rand()/static_cast(RAND_MAX)<=eff; // Keep muon if pTCone30/pT < 0.15 and eTCone30/pT < 0.2 and reconstructed if (keep_muon && pTinCone/mu.pT() <= 0.1 && eTinCone/mu.pT() < 0.1) muon_candidates.push_back(mu); } // Electrons Particles electron_candidates; for (const Particle& e : apply(event, "elecs").particlesByPt() ) { // Neglect electrons in crack regions if (inRange(e.abseta(), 1.37, 1.52)) continue; // Calculate pTCone30 variable (pT of all tracks within dR<0.3 - pT of electron itself) double pTinCone = -e.pT(); for (const Particle& track : charged_tracks) { if (deltaR(e.momentum(), track.momentum()) < 0.3 ) pTinCone += track.pT(); } // Calculate eTCone30 variable (pT of all visible particles (except muons) within dR<0.3) double eTinCone = 0.; for (const Particle& visible_particle : visible_particles) { if (visible_particle.abspid() != PID::MUON && inRange(deltaR(e.momentum(),visible_particle.momentum()), 0.1, 0.3)) eTinCone += visible_particle.pT(); } // Apply reconstruction efficiency and simulate reconstruction int elec_id = 11; if (e.hasAncestor(15) || e.hasAncestor(-15)) elec_id = 12; const double eff = (_use_fiducial_lepton_efficiency) ? apply_reco_eff(elec_id,e) : 1.0; const bool keep_elec = rand()/static_cast(RAND_MAX)<=eff; // Keep electron if pTCone30/pT < 0.13 and eTCone30/pT < 0.2 and reconstructed if (keep_elec && pTinCone/e.pT() <= 0.1 && eTinCone/e.pT() < 0.1) electron_candidates.push_back(e); } // Taus Particles tau_candidates; - for (const Particle& tau : apply(event, "UFS").particles() ) { + for (const Particle& tau : apply(event, "UFS").particles() ) { // Only pick taus out of all unstable particles if ( tau.abspid() != PID::TAU) continue; // Check that tau has decayed into daughter particles if (tau.genParticle()->end_vertex() == 0) continue; // Calculate visible tau momentum using the tau neutrino momentum in the tau decay FourMomentum daughter_tau_neutrino_momentum = get_tau_neutrino_momentum(tau); Particle tau_vis = tau; tau_vis.setMomentum(tau.momentum()-daughter_tau_neutrino_momentum); // keep only taus in certain eta region and above 15 GeV of visible tau pT if ( tau_vis.pT()/GeV <= 15.0 || tau_vis.abseta() > 2.5) continue; // Get prong number (number of tracks) in tau decay and check if tau decays leptonically unsigned int nprong = 0; bool lep_decaying_tau = false; get_prong_number(tau.genParticle(),nprong,lep_decaying_tau); // Apply reconstruction efficiency and simulate reconstruction int tau_id = 15; if (nprong == 1) tau_id = 15; else if (nprong == 3) tau_id = 16; const double eff = (_use_fiducial_lepton_efficiency) ? apply_reco_eff(tau_id,tau_vis) : 1.0; const bool keep_tau = rand()/static_cast(RAND_MAX)<=eff; // Keep tau if nprong = 1, it decays hadronically and it is reconstructed if ( !lep_decaying_tau && nprong == 1 && keep_tau) tau_candidates.push_back(tau_vis); } // Jets (all anti-kt R=0.4 jets with pT > 30 GeV and eta < 4.9 Jets jet_candidates; for (const Jet& jet : apply(event, "AntiKtJets04").jetsByPt(30.0*GeV) ) { if (jet.abseta() < 4.9 ) jet_candidates.push_back(jet); } // ETmiss Particles vfs_particles = apply(event, "VFS").particles(); FourMomentum pTmiss; for (const Particle& p : vfs_particles) pTmiss -= p.momentum(); double eTmiss = pTmiss.pT()/GeV; // ------------------------- // Overlap removal // electron - electron Particles electron_candidates_2; for(size_t ie = 0; ie < electron_candidates.size(); ++ie) { const Particle& e = electron_candidates[ie]; bool away = true; // If electron pair within dR < 0.1: remove electron with lower pT for(size_t ie2 = 0; ie2 < electron_candidates_2.size(); ++ie2) { if (deltaR(e.momentum(),electron_candidates_2[ie2].momentum()) < 0.1 ) { away = false; break; } } // If isolated keep it if ( away ) electron_candidates_2.push_back( e ); } // jet - electron Jets recon_jets; for (const Jet& jet : jet_candidates) { bool away = true; // If jet within dR < 0.2 of electron: remove jet for (const Particle& e : electron_candidates_2) { if (deltaR(e.momentum(), jet.momentum()) < 0.2 ) { away = false; break; } } // jet - tau if ( away ) { // If jet within dR < 0.2 of tau: remove jet for (const Particle& tau : tau_candidates) { if (deltaR(tau.momentum(), jet.momentum()) < 0.2 ) { away = false; break; } } } // If isolated keep it if ( away ) recon_jets.push_back( jet ); } // electron - jet Particles recon_leptons, recon_e; for (size_t ie = 0; ie < electron_candidates_2.size(); ++ie) { const Particle& e = electron_candidates_2[ie]; // If electron within 0.2 < dR < 0.4 from any jets: remove electron bool away = true; for (const Jet& jet : recon_jets) { if (deltaR(e.momentum(), jet.momentum()) < 0.4 ) { away = false; break; } } // electron - muon // If electron within dR < 0.1 of a muon: remove electron if (away) { for (const Particle& mu : muon_candidates) { if (deltaR(mu.momentum(),e.momentum()) < 0.1) { away = false; break; } } } // If isolated keep it if ( away ) { recon_e.push_back( e ); recon_leptons.push_back( e ); } } // tau - electron Particles recon_tau; for (const Particle& tau : tau_candidates) { bool away = true; // If tau within dR < 0.2 of an electron: remove tau for (const Particle & e : recon_e) { if (deltaR(tau.momentum(),e.momentum()) < 0.2 ) { away = false; break; } } // tau - muon // If tau within dR < 0.2 of a muon: remove tau if (away) { for (const Particle& mu : muon_candidates) { if (deltaR(tau.momentum(), mu.momentum()) < 0.2 ) { away = false; break; } } } // If isolated keep it if (away) recon_tau.push_back( tau ); } // muon - jet Particles recon_mu, trigger_mu; // If muon within dR < 0.4 of a jet: remove muon for (const Particle& mu : muon_candidates ) { bool away = true; for (const Jet& jet : recon_jets) { if (deltaR(mu.momentum(), jet.momentum()) < 0.4 ) { away = false; break; } } if (away) { recon_mu.push_back( mu ); recon_leptons.push_back( mu ); if (mu.abseta() < 2.4) trigger_mu.push_back( mu ); } } // End overlap removal // --------------------- // Jet cleaning if (rand()/static_cast(RAND_MAX) <= 0.42) { for (const Jet& jet : recon_jets ) { const double eta = jet.rapidity(); const double phi = jet.azimuthalAngle(MINUSPI_PLUSPI); if(jet.pT() > 25*GeV && inRange(eta,-0.1,1.5) && inRange(phi,-0.9,-0.5)) vetoEvent; } } // Event selection // Require at least 3 charged tracks in event if (charged_tracks.size() < 3) vetoEvent; // And at least one e/mu passing trigger if( !( !recon_e.empty() && recon_e[0].pT()>26.*GeV) && !( !trigger_mu.empty() && trigger_mu[0].pT()>26.*GeV) ) { MSG_DEBUG("Hardest lepton fails trigger"); vetoEvent; } // And only accept events with at least 2 electrons and muons and at least 3 leptons in total if (recon_mu.size() + recon_e.size() + recon_tau.size() < 3 || recon_leptons.size() < 2) vetoEvent; // Getting the event weight const double weight = event.weight(); // Sort leptons by decreasing pT sortByPt(recon_leptons); sortByPt(recon_tau); // Calculate HTlep, fill lepton pT histograms & store chosen combination of 3 leptons double HTlep = 0.; Particles chosen_leptons; if (recon_leptons.size() > 2) { _h_pt_1_3l->fill(recon_leptons[0].pT()/GeV, weight); _h_pt_2_3l->fill(recon_leptons[1].pT()/GeV, weight); _h_pt_3_3l->fill(recon_leptons[2].pT()/GeV, weight); HTlep = (recon_leptons[0].pT() + recon_leptons[1].pT() + recon_leptons[2].pT())/GeV; chosen_leptons.push_back( recon_leptons[0] ); chosen_leptons.push_back( recon_leptons[1] ); chosen_leptons.push_back( recon_leptons[2] ); } else { _h_pt_1_2ltau->fill(recon_leptons[0].pT()/GeV, weight); _h_pt_2_2ltau->fill(recon_leptons[1].pT()/GeV, weight); _h_pt_3_2ltau->fill(recon_tau[0].pT()/GeV, weight); HTlep = recon_leptons[0].pT()/GeV + recon_leptons[1].pT()/GeV + recon_tau[0].pT()/GeV; chosen_leptons.push_back( recon_leptons[0] ); chosen_leptons.push_back( recon_leptons[1] ); chosen_leptons.push_back( recon_tau[0] ); } // Calculate mT and mTW variable Particles mT_leptons; Particles mTW_leptons; for (size_t i1 = 0; i1 < 3; i1 ++) { for (size_t i2 = i1+1; i2 < 3; i2 ++) { double OSSF_inv_mass = isOSSF_mass(chosen_leptons[i1],chosen_leptons[i2]); if (OSSF_inv_mass != 0.) { for (size_t i3 = 0; i3 < 3 ; i3 ++) { if (i3 != i2 && i3 != i1) { mT_leptons.push_back(chosen_leptons[i3]); if ( fabs(91.0 - OSSF_inv_mass) < 20. ) mTW_leptons.push_back(chosen_leptons[i3]); } } } else { mT_leptons.push_back(chosen_leptons[0]); mTW_leptons.push_back(chosen_leptons[0]); } } } sortByPt(mT_leptons); sortByPt(mTW_leptons); double mT = sqrt(2*pTmiss.pT()/GeV*mT_leptons[0].pT()/GeV*(1-cos(pTmiss.phi()-mT_leptons[0].phi()))); double mTW = sqrt(2*pTmiss.pT()/GeV*mTW_leptons[0].pT()/GeV*(1-cos(pTmiss.phi()-mTW_leptons[0].phi()))); // Calculate Min pT variable double min_pT = chosen_leptons[2].pT()/GeV; // Number of prompt e/mu and had taus _h_e_n->fill(recon_e.size(),weight); _h_mu_n->fill(recon_mu.size(),weight); _h_tau_n->fill(recon_tau.size(),weight); // Calculate HTjets variable double HTjets = 0.; for (const Jet& jet : recon_jets) HTjets += jet.pT()/GeV; // Calculate meff variable double meff = eTmiss + HTjets; Particles all_leptons; for (const Particle& e : recon_e ) { meff += e.pT()/GeV; all_leptons.push_back( e ); } for (const Particle& mu : recon_mu) { meff += mu.pT()/GeV; all_leptons.push_back( mu ); } for (const Particle& tau : recon_tau) { meff += tau.pT()/GeV; all_leptons.push_back( tau ); } // Fill histograms of kinematic variables _h_HTlep_all->fill(HTlep,weight); _h_HTjets_all->fill(HTjets,weight); _h_MET_all->fill(eTmiss,weight); _h_Meff_all->fill(meff,weight); _h_min_pT_all->fill(min_pT,weight); _h_mT_all->fill(mT,weight); // Determine signal region (3l / 2ltau , onZ / offZ OSSF / offZ no-OSSF) // 3l vs. 2ltau string basic_signal_region; if (recon_mu.size() + recon_e.size() > 2) basic_signal_region += "3l_"; else if ( (recon_mu.size() + recon_e.size() == 2) && (recon_tau.size() > 0)) basic_signal_region += "2ltau_"; // Is there an OSSF pair or a three lepton combination with an invariant mass close to the Z mass int onZ = isonZ(chosen_leptons); if (onZ == 1) basic_signal_region += "onZ"; else if (onZ == 0) { bool OSSF = isOSSF(chosen_leptons); if (OSSF) basic_signal_region += "offZ_OSSF"; else basic_signal_region += "offZ_noOSSF"; } // Check in which signal regions this event falls and adjust event counters // INFO: The b-jet signal regions of the paper are not included in this Rivet implementation fillEventCountsPerSR(basic_signal_region,onZ,HTlep,eTmiss,HTjets,meff,min_pT,mTW,weight); } /// Normalise histograms etc., after the run void finalize() { // Normalize to an integrated luminosity of 1 fb-1 double norm = crossSection()/femtobarn/sumOfWeights(); string best_signal_region = ""; double ratio_best_SR = 0.; // Loop over all signal regions and find signal region with best sensitivity (ratio signal events/visible cross-section) for (size_t i = 0; i < _signal_regions.size(); i++) { double signal_events = _eventCountsPerSR[_signal_regions[i]] * norm; // Use expected upper limits to find best signal region: double UL95 = getUpperLimit(_signal_regions[i],false); double ratio = signal_events / UL95; if (ratio > ratio_best_SR) { best_signal_region = _signal_regions.at(i); ratio_best_SR = ratio; } } double signal_events_best_SR = _eventCountsPerSR[best_signal_region] * norm; double exp_UL_best_SR = getUpperLimit(best_signal_region, false); double obs_UL_best_SR = getUpperLimit(best_signal_region, true); // Print out result cout << "----------------------------------------------------------------------------------------" << endl; cout << "Number of total events: " << sumOfWeights() << endl; cout << "Best signal region: " << best_signal_region << endl; cout << "Normalized number of signal events in this best signal region (per fb-1): " << signal_events_best_SR << endl; cout << "Efficiency*Acceptance: " << _eventCountsPerSR[best_signal_region]/sumOfWeights() << endl; cout << "Cross-section [fb]: " << crossSection()/femtobarn << endl; cout << "Expected visible cross-section (per fb-1): " << exp_UL_best_SR << endl; cout << "Ratio (signal events / expected visible cross-section): " << ratio_best_SR << endl; cout << "Observed visible cross-section (per fb-1): " << obs_UL_best_SR << endl; cout << "Ratio (signal events / observed visible cross-section): " << signal_events_best_SR/obs_UL_best_SR << endl; cout << "----------------------------------------------------------------------------------------" << endl; cout << "Using the EXPECTED limits (visible cross-section) of the analysis: " << endl; if (signal_events_best_SR > exp_UL_best_SR) { cout << "Since the number of signal events > the visible cross-section, this model/grid point is EXCLUDED with 95% C.L." << endl; _h_excluded->fill(1); } else { cout << "Since the number of signal events < the visible cross-section, this model/grid point is NOT EXCLUDED." << endl; _h_excluded->fill(0); } cout << "----------------------------------------------------------------------------------------" << endl; cout << "Using the OBSERVED limits (visible cross-section) of the analysis: " << endl; if (signal_events_best_SR > obs_UL_best_SR) { cout << "Since the number of signal events > the visible cross-section, this model/grid point is EXCLUDED with 95% C.L." << endl; _h_excluded->fill(1); } else { cout << "Since the number of signal events < the visible cross-section, this model/grid point is NOT EXCLUDED." << endl; _h_excluded->fill(0); } cout << "----------------------------------------------------------------------------------------" << endl; cout << "INFO: The b-jet signal regions of the paper are not included in this Rivet implementation." << endl; cout << "----------------------------------------------------------------------------------------" << endl; /// Normalize to cross section if (norm != 0) { scale(_h_HTlep_all, norm); scale(_h_HTjets_all, norm); scale(_h_MET_all, norm); scale(_h_Meff_all, norm); scale(_h_min_pT_all, norm); scale(_h_mT_all, norm); scale(_h_pt_1_3l, norm); scale(_h_pt_2_3l, norm); scale(_h_pt_3_3l, norm); scale(_h_pt_1_2ltau, norm); scale(_h_pt_2_2ltau, norm); scale(_h_pt_3_2ltau, norm); scale(_h_e_n, norm); scale(_h_mu_n, norm); scale(_h_tau_n, norm); scale(_h_excluded, norm); } } /// Helper functions //@{ /// Function giving a list of all signal regions vector getSignalRegions() { // List of basic signal regions vector basic_signal_regions; basic_signal_regions.push_back("3l_offZ_OSSF"); basic_signal_regions.push_back("3l_offZ_noOSSF"); basic_signal_regions.push_back("3l_onZ"); basic_signal_regions.push_back("2ltau_offZ_OSSF"); basic_signal_regions.push_back("2ltau_offZ_noOSSF"); basic_signal_regions.push_back("2ltau_onZ"); // List of kinematic variables vector kinematic_variables; kinematic_variables.push_back("HTlep"); kinematic_variables.push_back("METStrong"); kinematic_variables.push_back("METWeak"); kinematic_variables.push_back("Meff"); kinematic_variables.push_back("MeffStrong"); kinematic_variables.push_back("MeffMt"); kinematic_variables.push_back("MinPt"); vector signal_regions; // Loop over all kinematic variables and basic signal regions for (size_t i0 = 0; i0 < kinematic_variables.size(); i0++) { for (size_t i1 = 0; i1 < basic_signal_regions.size(); i1++) { // Is signal region onZ? int onZ = (basic_signal_regions[i1].find("onZ") != string::npos) ? 1 : 0; // Get cut values for this kinematic variable vector cut_values = getCutsPerSignalRegion(kinematic_variables[i0], onZ); // Loop over all cut values for (size_t i2 = 0; i2 < cut_values.size(); i2++) { // Push signal region into vector signal_regions.push_back( kinematic_variables[i0] + "_" + basic_signal_regions[i1] + "_cut_" + toString(cut_values[i2]) ); } } } return signal_regions; } /// Function giving all cut values per kinematic variable vector getCutsPerSignalRegion(const string& signal_region, int onZ = 0) { vector cutValues; // Cut values for HTlep if (signal_region.compare("HTlep") == 0) { cutValues.push_back(0); cutValues.push_back(200); cutValues.push_back(500); cutValues.push_back(800); } // Cut values for MinPt else if (signal_region.compare("MinPt") == 0) { cutValues.push_back(0); cutValues.push_back(50); cutValues.push_back(100); cutValues.push_back(150); } // Cut values for METStrong (HTjets > 150 GeV) and METWeak (HTjets < 150 GeV) else if (signal_region.compare("METStrong") == 0 || signal_region.compare("METWeak") == 0) { cutValues.push_back(0); cutValues.push_back(100); cutValues.push_back(200); cutValues.push_back(300); } // Cut values for Meff if (signal_region.compare("Meff") == 0) { cutValues.push_back(0); cutValues.push_back(600); cutValues.push_back(1000); cutValues.push_back(1500); } // Cut values for MeffStrong (MET > 100 GeV) if ((signal_region.compare("MeffStrong") == 0 || signal_region.compare("MeffMt") == 0) && onZ ==1) { cutValues.push_back(0); cutValues.push_back(600); cutValues.push_back(1200); } return cutValues; } /// function fills map _eventCountsPerSR by looping over all signal regions /// and looking if the event falls into this signal region void fillEventCountsPerSR(const string& basic_signal_region, int onZ, double HTlep, double eTmiss, double HTjets, double meff, double min_pT, double mTW, double weight) { // Get cut values for HTlep, loop over them and add event if cut is passed vector cut_values = getCutsPerSignalRegion("HTlep", onZ); for (size_t i = 0; i < cut_values.size(); i++) { if (HTlep > cut_values[i]) _eventCountsPerSR[("HTlep_" + basic_signal_region + "_cut_" + toString(cut_values[i]))] += weight; } // Get cut values for MinPt, loop over them and add event if cut is passed cut_values = getCutsPerSignalRegion("MinPt", onZ); for (size_t i = 0; i < cut_values.size(); i++) { if (min_pT > cut_values[i]) _eventCountsPerSR[("MinPt_" + basic_signal_region + "_cut_" + toString(cut_values[i]))] += weight; } // Get cut values for METStrong, loop over them and add event if cut is passed cut_values = getCutsPerSignalRegion("METStrong", onZ); for (size_t i = 0; i < cut_values.size(); i++) { if (eTmiss > cut_values[i] && HTjets > 150.) _eventCountsPerSR[("METStrong_" + basic_signal_region + "_cut_" + toString(cut_values[i]))] += weight; } // Get cut values for METWeak, loop over them and add event if cut is passed cut_values = getCutsPerSignalRegion("METWeak", onZ); for (size_t i = 0; i < cut_values.size(); i++) { if (eTmiss > cut_values[i] && HTjets <= 150.) _eventCountsPerSR[("METWeak_" + basic_signal_region + "_cut_" + toString(cut_values[i]))] += weight; } // Get cut values for Meff, loop over them and add event if cut is passed cut_values = getCutsPerSignalRegion("Meff", onZ); for (size_t i = 0; i < cut_values.size(); i++) { if (meff > cut_values[i]) _eventCountsPerSR[("Meff_" + basic_signal_region + "_cut_" + toString(cut_values[i]))] += weight; } // Get cut values for MeffStrong, loop over them and add event if cut is passed cut_values = getCutsPerSignalRegion("MeffStrong", onZ); for (size_t i = 0; i < cut_values.size(); i++) { if (meff > cut_values[i] && eTmiss > 100.) _eventCountsPerSR[("MeffStrong_" + basic_signal_region + "_cut_" + toString(cut_values[i]))] += weight; } // Get cut values for MeffMt, loop over them and add event if cut is passed cut_values = getCutsPerSignalRegion("MeffMt", onZ); for (size_t i = 0; i < cut_values.size(); i++) { if (meff > cut_values[i] && mTW > 100. && onZ == 1) _eventCountsPerSR[("MeffMt_" + basic_signal_region + "_cut_" + toString(cut_values[i]))] += weight; } } /// Function returning 4-momentum of daughter-particle if it is a tau neutrino FourMomentum get_tau_neutrino_momentum(const Particle& p) { assert(p.abspid() == PID::TAU); const GenVertex* dv = p.genParticle()->end_vertex(); assert(dv != NULL); // Loop over all daughter particles for (GenVertex::particles_out_const_iterator pp = dv->particles_out_const_begin(); pp != dv->particles_out_const_end(); ++pp) { if (abs((*pp)->pdg_id()) == PID::NU_TAU) return FourMomentum((*pp)->momentum()); } return FourMomentum(); } /// Function calculating the prong number of taus void get_prong_number(const GenParticle* p, unsigned int& nprong, bool& lep_decaying_tau) { assert(p != NULL); const GenVertex* dv = p->end_vertex(); assert(dv != NULL); for (GenVertex::particles_out_const_iterator pp = dv->particles_out_const_begin(); pp != dv->particles_out_const_end(); ++pp) { // If they have status 1 and are charged they will produce a track and the prong number is +1 if ((*pp)->status() == 1 ) { const int id = (*pp)->pdg_id(); if (Rivet::PID::charge(id) != 0 ) ++nprong; // Check if tau decays leptonically if (( abs(id) == PID::ELECTRON || abs(id) == PID::MUON || abs(id) == PID::TAU ) && abs(p->pdg_id()) == PID::TAU) lep_decaying_tau = true; } // If the status of the daughter particle is 2 it is unstable and the further decays are checked else if ((*pp)->status() == 2 ) { get_prong_number((*pp),nprong,lep_decaying_tau); } } } /// Function giving fiducial lepton efficiency double apply_reco_eff(int flavor, const Particle& p) { double pt = p.pT()/GeV; double eta = p.eta(); double eff = 0.; if (flavor == 11) { // weight prompt electron -- now including data/MC ID SF in eff. double avgrate = 0.685; const static double wz_ele[] = {0.0256,0.522,0.607,0.654,0.708,0.737,0.761,0.784,0.815,0.835,0.851,0.841,0.898}; // double ewz_ele[] = {0.000257,0.00492,0.00524,0.00519,0.00396,0.00449,0.00538,0.00513,0.00773,0.00753,0.0209,0.0964,0.259}; int ibin = 0; if(pt > 10 && pt < 15) ibin = 0; if(pt > 15 && pt < 20) ibin = 1; if(pt > 20 && pt < 25) ibin = 2; if(pt > 25 && pt < 30) ibin = 3; if(pt > 30 && pt < 40) ibin = 4; if(pt > 40 && pt < 50) ibin = 5; if(pt > 50 && pt < 60) ibin = 6; if(pt > 60 && pt < 80) ibin = 7; if(pt > 80 && pt < 100) ibin = 8; if(pt > 100 && pt < 200) ibin = 9; if(pt > 200 && pt < 400) ibin = 10; if(pt > 400 && pt < 600) ibin = 11; if(pt > 600) ibin = 12; double eff_pt = 0.; eff_pt = wz_ele[ibin]; eta = fabs(eta); const static double wz_ele_eta[] = {0.65,0.714,0.722,0.689,0.635,0.615}; // double ewz_ele_eta[] = {0.00642,0.00355,0.00335,0.004,0.00368,0.00422}; ibin = 0; if(eta > 0 && eta < 0.1) ibin = 0; if(eta > 0.1 && eta < 0.5) ibin = 1; if(eta > 0.5 && eta < 1.0) ibin = 2; if(eta > 1.0 && eta < 1.5) ibin = 3; if(eta > 1.5 && eta < 2.0) ibin = 4; if(eta > 2.0 && eta < 2.5) ibin = 5; double eff_eta = 0.; eff_eta = wz_ele_eta[ibin]; eff = (eff_pt * eff_eta) / avgrate; } if (flavor == 12) { // weight electron from tau double avgrate = 0.476; const static double wz_ele[] = {0.00855,0.409,0.442,0.55,0.632,0.616,0.615,0.642,0.72,0.617}; // double ewz_ele[] = {0.000573,0.0291,0.0366,0.0352,0.0363,0.0474,0.0628,0.0709,0.125,0.109}; int ibin = 0; if(pt > 10 && pt < 15) ibin = 0; if(pt > 15 && pt < 20) ibin = 1; if(pt > 20 && pt < 25) ibin = 2; if(pt > 25 && pt < 30) ibin = 3; if(pt > 30 && pt < 40) ibin = 4; if(pt > 40 && pt < 50) ibin = 5; if(pt > 50 && pt < 60) ibin = 6; if(pt > 60 && pt < 80) ibin = 7; if(pt > 80 && pt < 100) ibin = 8; if(pt > 100) ibin = 9; double eff_pt = 0.; eff_pt = wz_ele[ibin]; eta = fabs(eta); const static double wz_ele_eta[] = {0.546,0.5,0.513,0.421,0.47,0.433}; //double ewz_ele_eta[] = {0.0566,0.0257,0.0263,0.0263,0.0303,0.0321}; ibin = 0; if(eta > 0 && eta < 0.1) ibin = 0; if(eta > 0.1 && eta < 0.5) ibin = 1; if(eta > 0.5 && eta < 1.0) ibin = 2; if(eta > 1.0 && eta < 1.5) ibin = 3; if(eta > 1.5 && eta < 2.0) ibin = 4; if(eta > 2.0 && eta < 2.5) ibin = 5; double eff_eta = 0.; eff_eta = wz_ele_eta[ibin]; eff = (eff_pt * eff_eta) / avgrate; } if (flavor == 13) { // weight prompt muon int ibin = 0; if(pt > 10 && pt < 15) ibin = 0; if(pt > 15 && pt < 20) ibin = 1; if(pt > 20 && pt < 25) ibin = 2; if(pt > 25 && pt < 30) ibin = 3; if(pt > 30 && pt < 40) ibin = 4; if(pt > 40 && pt < 50) ibin = 5; if(pt > 50 && pt < 60) ibin = 6; if(pt > 60 && pt < 80) ibin = 7; if(pt > 80 && pt < 100) ibin = 8; if(pt > 100 && pt < 200) ibin = 9; if(pt > 200 && pt < 400) ibin = 10; if(pt > 400) ibin = 11; if(fabs(eta) < 0.1) { const static double wz_mu[] = {0.00705,0.402,0.478,0.49,0.492,0.499,0.527,0.512,0.53,0.528,0.465,0.465}; //double ewz_mu[] = {0.000298,0.0154,0.017,0.0158,0.0114,0.0123,0.0155,0.0133,0.0196,0.0182,0.0414,0.0414}; double eff_pt = 0.; eff_pt = wz_mu[ibin]; eff = eff_pt; } if(fabs(eta) > 0.1) { const static double wz_mu[] = {0.0224,0.839,0.887,0.91,0.919,0.923,0.925,0.925,0.922,0.918,0.884,0.834}; //double ewz_mu[] = {0.000213,0.00753,0.0074,0.007,0.00496,0.00534,0.00632,0.00583,0.00849,0.00804,0.0224,0.0963}; double eff_pt = 0.; eff_pt = wz_mu[ibin]; eff = eff_pt; } } if (flavor == 14) { // weight muon from tau int ibin = 0; if(pt > 10 && pt < 15) ibin = 0; if(pt > 15 && pt < 20) ibin = 1; if(pt > 20 && pt < 25) ibin = 2; if(pt > 25 && pt < 30) ibin = 3; if(pt > 30 && pt < 40) ibin = 4; if(pt > 40 && pt < 50) ibin = 5; if(pt > 50 && pt < 60) ibin = 6; if(pt > 60 && pt < 80) ibin = 7; if(pt > 80 && pt < 100) ibin = 8; if(pt > 100) ibin = 9; if(fabs(eta) < 0.1) { const static double wz_mu[] = {0.0,0.664,0.124,0.133,0.527,0.283,0.495,0.25,0.5,0.331}; //double ewz_mu[] = {0.0,0.192,0.0437,0.0343,0.128,0.107,0.202,0.125,0.25,0.191}; double eff_pt = 0.; eff_pt = wz_mu[ibin]; eff = eff_pt; } if(fabs(eta) > 0.1) { const static double wz_mu[] = {0.0,0.617,0.655,0.676,0.705,0.738,0.712,0.783,0.646,0.745}; //double ewz_mu[] = {0.0,0.043,0.0564,0.0448,0.0405,0.0576,0.065,0.0825,0.102,0.132}; double eff_pt = 0.; eff_pt = wz_mu[ibin]; eff = eff_pt; } } if (flavor == 15) { // weight hadronic tau 1p double avgrate = 0.16; const static double wz_tau1p[] = {0.0,0.0311,0.148,0.229,0.217,0.292,0.245,0.307,0.227,0.277}; //double ewz_tau1p[] = {0.0,0.00211,0.0117,0.0179,0.0134,0.0248,0.0264,0.0322,0.0331,0.0427}; int ibin = 0; if(pt > 10 && pt < 15) ibin = 0; if(pt > 15 && pt < 20) ibin = 1; if(pt > 20 && pt < 25) ibin = 2; if(pt > 25 && pt < 30) ibin = 3; if(pt > 30 && pt < 40) ibin = 4; if(pt > 40 && pt < 50) ibin = 5; if(pt > 50 && pt < 60) ibin = 6; if(pt > 60 && pt < 80) ibin = 7; if(pt > 80 && pt < 100) ibin = 8; if(pt > 100) ibin = 9; double eff_pt = 0.; eff_pt = wz_tau1p[ibin]; const static double wz_tau1p_eta[] = {0.166,0.15,0.188,0.175,0.142,0.109}; //double ewz_tau1p_eta[] ={0.0166,0.00853,0.0097,0.00985,0.00949,0.00842}; ibin = 0; if(eta > 0.0 && eta < 0.1) ibin = 0; if(eta > 0.1 && eta < 0.5) ibin = 1; if(eta > 0.5 && eta < 1.0) ibin = 2; if(eta > 1.0 && eta < 1.5) ibin = 3; if(eta > 1.5 && eta < 2.0) ibin = 4; if(eta > 2.0 && eta < 2.5) ibin = 5; double eff_eta = 0.; eff_eta = wz_tau1p_eta[ibin]; eff = (eff_pt * eff_eta) / avgrate; } return eff; } /// Function giving observed and expected upper limits (on the visible cross-section) double getUpperLimit(const string& signal_region, bool observed) { map upperLimitsObserved; map upperLimitsExpected; upperLimitsObserved["HTlep_3l_offZ_OSSF_cut_0"] = 2.435; upperLimitsObserved["HTlep_3l_offZ_OSSF_cut_200"] = 0.704; upperLimitsObserved["HTlep_3l_offZ_OSSF_cut_500"] = 0.182; upperLimitsObserved["HTlep_3l_offZ_OSSF_cut_800"] = 0.147; upperLimitsObserved["HTlep_2ltau_offZ_OSSF_cut_0"] = 13.901; upperLimitsObserved["HTlep_2ltau_offZ_OSSF_cut_200"] = 1.677; upperLimitsObserved["HTlep_2ltau_offZ_OSSF_cut_500"] = 0.141; upperLimitsObserved["HTlep_2ltau_offZ_OSSF_cut_800"] = 0.155; upperLimitsObserved["HTlep_3l_offZ_noOSSF_cut_0"] = 1.054; upperLimitsObserved["HTlep_3l_offZ_noOSSF_cut_200"] = 0.341; upperLimitsObserved["HTlep_3l_offZ_noOSSF_cut_500"] = 0.221; upperLimitsObserved["HTlep_3l_offZ_noOSSF_cut_800"] = 0.140; upperLimitsObserved["HTlep_2ltau_offZ_noOSSF_cut_0"] = 4.276; upperLimitsObserved["HTlep_2ltau_offZ_noOSSF_cut_200"] = 0.413; upperLimitsObserved["HTlep_2ltau_offZ_noOSSF_cut_500"] = 0.138; upperLimitsObserved["HTlep_2ltau_offZ_noOSSF_cut_800"] = 0.150; upperLimitsObserved["HTlep_3l_onZ_cut_0"] = 29.804; upperLimitsObserved["HTlep_3l_onZ_cut_200"] = 3.579; upperLimitsObserved["HTlep_3l_onZ_cut_500"] = 0.466; upperLimitsObserved["HTlep_3l_onZ_cut_800"] = 0.298; upperLimitsObserved["HTlep_2ltau_onZ_cut_0"] = 205.091; upperLimitsObserved["HTlep_2ltau_onZ_cut_200"] = 3.141; upperLimitsObserved["HTlep_2ltau_onZ_cut_500"] = 0.290; upperLimitsObserved["HTlep_2ltau_onZ_cut_800"] = 0.157; upperLimitsObserved["METStrong_3l_offZ_OSSF_cut_0"] = 1.111; upperLimitsObserved["METStrong_3l_offZ_OSSF_cut_100"] = 0.354; upperLimitsObserved["METStrong_3l_offZ_OSSF_cut_200"] = 0.236; upperLimitsObserved["METStrong_3l_offZ_OSSF_cut_300"] = 0.150; upperLimitsObserved["METStrong_2ltau_offZ_OSSF_cut_0"] = 1.881; upperLimitsObserved["METStrong_2ltau_offZ_OSSF_cut_100"] = 0.406; upperLimitsObserved["METStrong_2ltau_offZ_OSSF_cut_200"] = 0.194; upperLimitsObserved["METStrong_2ltau_offZ_OSSF_cut_300"] = 0.134; upperLimitsObserved["METStrong_3l_offZ_noOSSF_cut_0"] = 0.770; upperLimitsObserved["METStrong_3l_offZ_noOSSF_cut_100"] = 0.295; upperLimitsObserved["METStrong_3l_offZ_noOSSF_cut_200"] = 0.149; upperLimitsObserved["METStrong_3l_offZ_noOSSF_cut_300"] = 0.140; upperLimitsObserved["METStrong_2ltau_offZ_noOSSF_cut_0"] = 2.003; upperLimitsObserved["METStrong_2ltau_offZ_noOSSF_cut_100"] = 0.806; upperLimitsObserved["METStrong_2ltau_offZ_noOSSF_cut_200"] = 0.227; upperLimitsObserved["METStrong_2ltau_offZ_noOSSF_cut_300"] = 0.138; upperLimitsObserved["METStrong_3l_onZ_cut_0"] = 6.383; upperLimitsObserved["METStrong_3l_onZ_cut_100"] = 0.959; upperLimitsObserved["METStrong_3l_onZ_cut_200"] = 0.549; upperLimitsObserved["METStrong_3l_onZ_cut_300"] = 0.182; upperLimitsObserved["METStrong_2ltau_onZ_cut_0"] = 10.658; upperLimitsObserved["METStrong_2ltau_onZ_cut_100"] = 0.637; upperLimitsObserved["METStrong_2ltau_onZ_cut_200"] = 0.291; upperLimitsObserved["METStrong_2ltau_onZ_cut_300"] = 0.227; upperLimitsObserved["METWeak_3l_offZ_OSSF_cut_0"] = 1.802; upperLimitsObserved["METWeak_3l_offZ_OSSF_cut_100"] = 0.344; upperLimitsObserved["METWeak_3l_offZ_OSSF_cut_200"] = 0.189; upperLimitsObserved["METWeak_3l_offZ_OSSF_cut_300"] = 0.148; upperLimitsObserved["METWeak_2ltau_offZ_OSSF_cut_0"] = 12.321; upperLimitsObserved["METWeak_2ltau_offZ_OSSF_cut_100"] = 0.430; upperLimitsObserved["METWeak_2ltau_offZ_OSSF_cut_200"] = 0.137; upperLimitsObserved["METWeak_2ltau_offZ_OSSF_cut_300"] = 0.134; upperLimitsObserved["METWeak_3l_offZ_noOSSF_cut_0"] = 0.562; upperLimitsObserved["METWeak_3l_offZ_noOSSF_cut_100"] = 0.153; upperLimitsObserved["METWeak_3l_offZ_noOSSF_cut_200"] = 0.154; upperLimitsObserved["METWeak_3l_offZ_noOSSF_cut_300"] = 0.141; upperLimitsObserved["METWeak_2ltau_offZ_noOSSF_cut_0"] = 2.475; upperLimitsObserved["METWeak_2ltau_offZ_noOSSF_cut_100"] = 0.244; upperLimitsObserved["METWeak_2ltau_offZ_noOSSF_cut_200"] = 0.141; upperLimitsObserved["METWeak_2ltau_offZ_noOSSF_cut_300"] = 0.142; upperLimitsObserved["METWeak_3l_onZ_cut_0"] = 24.769; upperLimitsObserved["METWeak_3l_onZ_cut_100"] = 0.690; upperLimitsObserved["METWeak_3l_onZ_cut_200"] = 0.198; upperLimitsObserved["METWeak_3l_onZ_cut_300"] = 0.138; upperLimitsObserved["METWeak_2ltau_onZ_cut_0"] = 194.360; upperLimitsObserved["METWeak_2ltau_onZ_cut_100"] = 0.287; upperLimitsObserved["METWeak_2ltau_onZ_cut_200"] = 0.144; upperLimitsObserved["METWeak_2ltau_onZ_cut_300"] = 0.130; upperLimitsObserved["Meff_3l_offZ_OSSF_cut_0"] = 2.435; upperLimitsObserved["Meff_3l_offZ_OSSF_cut_600"] = 0.487; upperLimitsObserved["Meff_3l_offZ_OSSF_cut_1000"] = 0.156; upperLimitsObserved["Meff_3l_offZ_OSSF_cut_1500"] = 0.140; upperLimitsObserved["Meff_2ltau_offZ_OSSF_cut_0"] = 13.901; upperLimitsObserved["Meff_2ltau_offZ_OSSF_cut_600"] = 0.687; upperLimitsObserved["Meff_2ltau_offZ_OSSF_cut_1000"] = 0.224; upperLimitsObserved["Meff_2ltau_offZ_OSSF_cut_1500"] = 0.155; upperLimitsObserved["Meff_3l_offZ_noOSSF_cut_0"] = 1.054; upperLimitsObserved["Meff_3l_offZ_noOSSF_cut_600"] = 0.249; upperLimitsObserved["Meff_3l_offZ_noOSSF_cut_1000"] = 0.194; upperLimitsObserved["Meff_3l_offZ_noOSSF_cut_1500"] = 0.145; upperLimitsObserved["Meff_2ltau_offZ_noOSSF_cut_0"] = 4.276; upperLimitsObserved["Meff_2ltau_offZ_noOSSF_cut_600"] = 0.772; upperLimitsObserved["Meff_2ltau_offZ_noOSSF_cut_1000"] = 0.218; upperLimitsObserved["Meff_2ltau_offZ_noOSSF_cut_1500"] = 0.204; upperLimitsObserved["Meff_3l_onZ_cut_0"] = 29.804; upperLimitsObserved["Meff_3l_onZ_cut_600"] = 2.933; upperLimitsObserved["Meff_3l_onZ_cut_1000"] = 0.912; upperLimitsObserved["Meff_3l_onZ_cut_1500"] = 0.225; upperLimitsObserved["Meff_2ltau_onZ_cut_0"] = 205.091; upperLimitsObserved["Meff_2ltau_onZ_cut_600"] = 1.486; upperLimitsObserved["Meff_2ltau_onZ_cut_1000"] = 0.641; upperLimitsObserved["Meff_2ltau_onZ_cut_1500"] = 0.204; upperLimitsObserved["MeffStrong_3l_offZ_OSSF_cut_0"] = 0.479; upperLimitsObserved["MeffStrong_3l_offZ_OSSF_cut_600"] = 0.353; upperLimitsObserved["MeffStrong_3l_offZ_OSSF_cut_1200"] = 0.187; upperLimitsObserved["MeffStrong_2ltau_offZ_OSSF_cut_0"] = 0.617; upperLimitsObserved["MeffStrong_2ltau_offZ_OSSF_cut_600"] = 0.320; upperLimitsObserved["MeffStrong_2ltau_offZ_OSSF_cut_1200"] = 0.281; upperLimitsObserved["MeffStrong_3l_offZ_noOSSF_cut_0"] = 0.408; upperLimitsObserved["MeffStrong_3l_offZ_noOSSF_cut_600"] = 0.240; upperLimitsObserved["MeffStrong_3l_offZ_noOSSF_cut_1200"] = 0.150; upperLimitsObserved["MeffStrong_2ltau_offZ_noOSSF_cut_0"] = 0.774; upperLimitsObserved["MeffStrong_2ltau_offZ_noOSSF_cut_600"] = 0.417; upperLimitsObserved["MeffStrong_2ltau_offZ_noOSSF_cut_1200"] = 0.266; upperLimitsObserved["MeffStrong_3l_onZ_cut_0"] = 1.208; upperLimitsObserved["MeffStrong_3l_onZ_cut_600"] = 0.837; upperLimitsObserved["MeffStrong_3l_onZ_cut_1200"] = 0.269; upperLimitsObserved["MeffStrong_2ltau_onZ_cut_0"] = 0.605; upperLimitsObserved["MeffStrong_2ltau_onZ_cut_600"] = 0.420; upperLimitsObserved["MeffStrong_2ltau_onZ_cut_1200"] = 0.141; upperLimitsObserved["MeffMt_3l_onZ_cut_0"] = 1.832; upperLimitsObserved["MeffMt_3l_onZ_cut_600"] = 0.862; upperLimitsObserved["MeffMt_3l_onZ_cut_1200"] = 0.222; upperLimitsObserved["MeffMt_2ltau_onZ_cut_0"] = 1.309; upperLimitsObserved["MeffMt_2ltau_onZ_cut_600"] = 0.481; upperLimitsObserved["MeffMt_2ltau_onZ_cut_1200"] = 0.146; upperLimitsObserved["MinPt_3l_offZ_OSSF_cut_0"] = 2.435; upperLimitsObserved["MinPt_3l_offZ_OSSF_cut_50"] = 0.500; upperLimitsObserved["MinPt_3l_offZ_OSSF_cut_100"] = 0.203; upperLimitsObserved["MinPt_3l_offZ_OSSF_cut_150"] = 0.128; upperLimitsObserved["MinPt_2ltau_offZ_OSSF_cut_0"] = 13.901; upperLimitsObserved["MinPt_2ltau_offZ_OSSF_cut_50"] = 0.859; upperLimitsObserved["MinPt_2ltau_offZ_OSSF_cut_100"] = 0.158; upperLimitsObserved["MinPt_2ltau_offZ_OSSF_cut_150"] = 0.155; upperLimitsObserved["MinPt_3l_offZ_noOSSF_cut_0"] = 1.054; upperLimitsObserved["MinPt_3l_offZ_noOSSF_cut_50"] = 0.295; upperLimitsObserved["MinPt_3l_offZ_noOSSF_cut_100"] = 0.148; upperLimitsObserved["MinPt_3l_offZ_noOSSF_cut_150"] = 0.137; upperLimitsObserved["MinPt_2ltau_offZ_noOSSF_cut_0"] = 4.276; upperLimitsObserved["MinPt_2ltau_offZ_noOSSF_cut_50"] = 0.314; upperLimitsObserved["MinPt_2ltau_offZ_noOSSF_cut_100"] = 0.134; upperLimitsObserved["MinPt_2ltau_offZ_noOSSF_cut_150"] = 0.140; upperLimitsObserved["MinPt_3l_onZ_cut_0"] = 29.804; upperLimitsObserved["MinPt_3l_onZ_cut_50"] = 1.767; upperLimitsObserved["MinPt_3l_onZ_cut_100"] = 0.690; upperLimitsObserved["MinPt_3l_onZ_cut_150"] = 0.301; upperLimitsObserved["MinPt_2ltau_onZ_cut_0"] = 205.091; upperLimitsObserved["MinPt_2ltau_onZ_cut_50"] = 1.050; upperLimitsObserved["MinPt_2ltau_onZ_cut_100"] = 0.155; upperLimitsObserved["MinPt_2ltau_onZ_cut_150"] = 0.146; upperLimitsObserved["nbtag_3l_offZ_OSSF_cut_0"] = 2.435; upperLimitsObserved["nbtag_3l_offZ_OSSF_cut_1"] = 0.865; upperLimitsObserved["nbtag_3l_offZ_OSSF_cut_2"] = 0.474; upperLimitsObserved["nbtag_2ltau_offZ_OSSF_cut_0"] = 13.901; upperLimitsObserved["nbtag_2ltau_offZ_OSSF_cut_1"] = 1.566; upperLimitsObserved["nbtag_2ltau_offZ_OSSF_cut_2"] = 0.426; upperLimitsObserved["nbtag_3l_offZ_noOSSF_cut_0"] = 1.054; upperLimitsObserved["nbtag_3l_offZ_noOSSF_cut_1"] = 0.643; upperLimitsObserved["nbtag_3l_offZ_noOSSF_cut_2"] = 0.321; upperLimitsObserved["nbtag_2ltau_offZ_noOSSF_cut_0"] = 4.276; upperLimitsObserved["nbtag_2ltau_offZ_noOSSF_cut_1"] = 2.435; upperLimitsObserved["nbtag_2ltau_offZ_noOSSF_cut_2"] = 1.073; upperLimitsObserved["nbtag_3l_onZ_cut_0"] = 29.804; upperLimitsObserved["nbtag_3l_onZ_cut_1"] = 3.908; upperLimitsObserved["nbtag_3l_onZ_cut_2"] = 0.704; upperLimitsObserved["nbtag_2ltau_onZ_cut_0"] = 205.091; upperLimitsObserved["nbtag_2ltau_onZ_cut_1"] = 9.377; upperLimitsObserved["nbtag_2ltau_onZ_cut_2"] = 0.657; upperLimitsExpected["HTlep_3l_offZ_OSSF_cut_0"] = 2.893; upperLimitsExpected["HTlep_3l_offZ_OSSF_cut_200"] = 1.175; upperLimitsExpected["HTlep_3l_offZ_OSSF_cut_500"] = 0.265; upperLimitsExpected["HTlep_3l_offZ_OSSF_cut_800"] = 0.155; upperLimitsExpected["HTlep_2ltau_offZ_OSSF_cut_0"] = 14.293; upperLimitsExpected["HTlep_2ltau_offZ_OSSF_cut_200"] = 1.803; upperLimitsExpected["HTlep_2ltau_offZ_OSSF_cut_500"] = 0.159; upperLimitsExpected["HTlep_2ltau_offZ_OSSF_cut_800"] = 0.155; upperLimitsExpected["HTlep_3l_offZ_noOSSF_cut_0"] = 0.836; upperLimitsExpected["HTlep_3l_offZ_noOSSF_cut_200"] = 0.340; upperLimitsExpected["HTlep_3l_offZ_noOSSF_cut_500"] = 0.218; upperLimitsExpected["HTlep_3l_offZ_noOSSF_cut_800"] = 0.140; upperLimitsExpected["HTlep_2ltau_offZ_noOSSF_cut_0"] = 4.132; upperLimitsExpected["HTlep_2ltau_offZ_noOSSF_cut_200"] = 0.599; upperLimitsExpected["HTlep_2ltau_offZ_noOSSF_cut_500"] = 0.146; upperLimitsExpected["HTlep_2ltau_offZ_noOSSF_cut_800"] = 0.148; upperLimitsExpected["HTlep_3l_onZ_cut_0"] = 32.181; upperLimitsExpected["HTlep_3l_onZ_cut_200"] = 4.879; upperLimitsExpected["HTlep_3l_onZ_cut_500"] = 0.473; upperLimitsExpected["HTlep_3l_onZ_cut_800"] = 0.266; upperLimitsExpected["HTlep_2ltau_onZ_cut_0"] = 217.801; upperLimitsExpected["HTlep_2ltau_onZ_cut_200"] = 3.676; upperLimitsExpected["HTlep_2ltau_onZ_cut_500"] = 0.235; upperLimitsExpected["HTlep_2ltau_onZ_cut_800"] = 0.150; upperLimitsExpected["METStrong_3l_offZ_OSSF_cut_0"] = 1.196; upperLimitsExpected["METStrong_3l_offZ_OSSF_cut_100"] = 0.423; upperLimitsExpected["METStrong_3l_offZ_OSSF_cut_200"] = 0.208; upperLimitsExpected["METStrong_3l_offZ_OSSF_cut_300"] = 0.158; upperLimitsExpected["METStrong_2ltau_offZ_OSSF_cut_0"] = 2.158; upperLimitsExpected["METStrong_2ltau_offZ_OSSF_cut_100"] = 0.461; upperLimitsExpected["METStrong_2ltau_offZ_OSSF_cut_200"] = 0.186; upperLimitsExpected["METStrong_2ltau_offZ_OSSF_cut_300"] = 0.138; upperLimitsExpected["METStrong_3l_offZ_noOSSF_cut_0"] = 0.495; upperLimitsExpected["METStrong_3l_offZ_noOSSF_cut_100"] = 0.284; upperLimitsExpected["METStrong_3l_offZ_noOSSF_cut_200"] = 0.150; upperLimitsExpected["METStrong_3l_offZ_noOSSF_cut_300"] = 0.146; upperLimitsExpected["METStrong_2ltau_offZ_noOSSF_cut_0"] = 1.967; upperLimitsExpected["METStrong_2ltau_offZ_noOSSF_cut_100"] = 0.732; upperLimitsExpected["METStrong_2ltau_offZ_noOSSF_cut_200"] = 0.225; upperLimitsExpected["METStrong_2ltau_offZ_noOSSF_cut_300"] = 0.147; upperLimitsExpected["METStrong_3l_onZ_cut_0"] = 7.157; upperLimitsExpected["METStrong_3l_onZ_cut_100"] = 1.342; upperLimitsExpected["METStrong_3l_onZ_cut_200"] = 0.508; upperLimitsExpected["METStrong_3l_onZ_cut_300"] = 0.228; upperLimitsExpected["METStrong_2ltau_onZ_cut_0"] = 12.441; upperLimitsExpected["METStrong_2ltau_onZ_cut_100"] = 0.534; upperLimitsExpected["METStrong_2ltau_onZ_cut_200"] = 0.243; upperLimitsExpected["METStrong_2ltau_onZ_cut_300"] = 0.218; upperLimitsExpected["METWeak_3l_offZ_OSSF_cut_0"] = 2.199; upperLimitsExpected["METWeak_3l_offZ_OSSF_cut_100"] = 0.391; upperLimitsExpected["METWeak_3l_offZ_OSSF_cut_200"] = 0.177; upperLimitsExpected["METWeak_3l_offZ_OSSF_cut_300"] = 0.144; upperLimitsExpected["METWeak_2ltau_offZ_OSSF_cut_0"] = 12.431; upperLimitsExpected["METWeak_2ltau_offZ_OSSF_cut_100"] = 0.358; upperLimitsExpected["METWeak_2ltau_offZ_OSSF_cut_200"] = 0.150; upperLimitsExpected["METWeak_2ltau_offZ_OSSF_cut_300"] = 0.135; upperLimitsExpected["METWeak_3l_offZ_noOSSF_cut_0"] = 0.577; upperLimitsExpected["METWeak_3l_offZ_noOSSF_cut_100"] = 0.214; upperLimitsExpected["METWeak_3l_offZ_noOSSF_cut_200"] = 0.155; upperLimitsExpected["METWeak_3l_offZ_noOSSF_cut_300"] = 0.140; upperLimitsExpected["METWeak_2ltau_offZ_noOSSF_cut_0"] = 2.474; upperLimitsExpected["METWeak_2ltau_offZ_noOSSF_cut_100"] = 0.382; upperLimitsExpected["METWeak_2ltau_offZ_noOSSF_cut_200"] = 0.144; upperLimitsExpected["METWeak_2ltau_offZ_noOSSF_cut_300"] = 0.146; upperLimitsExpected["METWeak_3l_onZ_cut_0"] = 26.305; upperLimitsExpected["METWeak_3l_onZ_cut_100"] = 1.227; upperLimitsExpected["METWeak_3l_onZ_cut_200"] = 0.311; upperLimitsExpected["METWeak_3l_onZ_cut_300"] = 0.188; upperLimitsExpected["METWeak_2ltau_onZ_cut_0"] = 205.198; upperLimitsExpected["METWeak_2ltau_onZ_cut_100"] = 0.399; upperLimitsExpected["METWeak_2ltau_onZ_cut_200"] = 0.166; upperLimitsExpected["METWeak_2ltau_onZ_cut_300"] = 0.140; upperLimitsExpected["Meff_3l_offZ_OSSF_cut_0"] = 2.893; upperLimitsExpected["Meff_3l_offZ_OSSF_cut_600"] = 0.649; upperLimitsExpected["Meff_3l_offZ_OSSF_cut_1000"] = 0.252; upperLimitsExpected["Meff_3l_offZ_OSSF_cut_1500"] = 0.150; upperLimitsExpected["Meff_2ltau_offZ_OSSF_cut_0"] = 14.293; upperLimitsExpected["Meff_2ltau_offZ_OSSF_cut_600"] = 0.657; upperLimitsExpected["Meff_2ltau_offZ_OSSF_cut_1000"] = 0.226; upperLimitsExpected["Meff_2ltau_offZ_OSSF_cut_1500"] = 0.154; upperLimitsExpected["Meff_3l_offZ_noOSSF_cut_0"] = 0.836; upperLimitsExpected["Meff_3l_offZ_noOSSF_cut_600"] = 0.265; upperLimitsExpected["Meff_3l_offZ_noOSSF_cut_1000"] = 0.176; upperLimitsExpected["Meff_3l_offZ_noOSSF_cut_1500"] = 0.146; upperLimitsExpected["Meff_2ltau_offZ_noOSSF_cut_0"] = 4.132; upperLimitsExpected["Meff_2ltau_offZ_noOSSF_cut_600"] = 0.678; upperLimitsExpected["Meff_2ltau_offZ_noOSSF_cut_1000"] = 0.243; upperLimitsExpected["Meff_2ltau_offZ_noOSSF_cut_1500"] = 0.184; upperLimitsExpected["Meff_3l_onZ_cut_0"] = 32.181; upperLimitsExpected["Meff_3l_onZ_cut_600"] = 3.219; upperLimitsExpected["Meff_3l_onZ_cut_1000"] = 0.905; upperLimitsExpected["Meff_3l_onZ_cut_1500"] = 0.261; upperLimitsExpected["Meff_2ltau_onZ_cut_0"] = 217.801; upperLimitsExpected["Meff_2ltau_onZ_cut_600"] = 1.680; upperLimitsExpected["Meff_2ltau_onZ_cut_1000"] = 0.375; upperLimitsExpected["Meff_2ltau_onZ_cut_1500"] = 0.178; upperLimitsExpected["MeffStrong_3l_offZ_OSSF_cut_0"] = 0.571; upperLimitsExpected["MeffStrong_3l_offZ_OSSF_cut_600"] = 0.386; upperLimitsExpected["MeffStrong_3l_offZ_OSSF_cut_1200"] = 0.177; upperLimitsExpected["MeffStrong_2ltau_offZ_OSSF_cut_0"] = 0.605; upperLimitsExpected["MeffStrong_2ltau_offZ_OSSF_cut_600"] = 0.335; upperLimitsExpected["MeffStrong_2ltau_offZ_OSSF_cut_1200"] = 0.249; upperLimitsExpected["MeffStrong_3l_offZ_noOSSF_cut_0"] = 0.373; upperLimitsExpected["MeffStrong_3l_offZ_noOSSF_cut_600"] = 0.223; upperLimitsExpected["MeffStrong_3l_offZ_noOSSF_cut_1200"] = 0.150; upperLimitsExpected["MeffStrong_2ltau_offZ_noOSSF_cut_0"] = 0.873; upperLimitsExpected["MeffStrong_2ltau_offZ_noOSSF_cut_600"] = 0.428; upperLimitsExpected["MeffStrong_2ltau_offZ_noOSSF_cut_1200"] = 0.210; upperLimitsExpected["MeffStrong_3l_onZ_cut_0"] = 2.034; upperLimitsExpected["MeffStrong_3l_onZ_cut_600"] = 1.093; upperLimitsExpected["MeffStrong_3l_onZ_cut_1200"] = 0.293; upperLimitsExpected["MeffStrong_2ltau_onZ_cut_0"] = 0.690; upperLimitsExpected["MeffStrong_2ltau_onZ_cut_600"] = 0.392; upperLimitsExpected["MeffStrong_2ltau_onZ_cut_1200"] = 0.156; upperLimitsExpected["MeffMt_3l_onZ_cut_0"] = 2.483; upperLimitsExpected["MeffMt_3l_onZ_cut_600"] = 0.845; upperLimitsExpected["MeffMt_3l_onZ_cut_1200"] = 0.255; upperLimitsExpected["MeffMt_2ltau_onZ_cut_0"] = 1.448; upperLimitsExpected["MeffMt_2ltau_onZ_cut_600"] = 0.391; upperLimitsExpected["MeffMt_2ltau_onZ_cut_1200"] = 0.146; upperLimitsExpected["MinPt_3l_offZ_OSSF_cut_0"] = 2.893; upperLimitsExpected["MinPt_3l_offZ_OSSF_cut_50"] = 0.703; upperLimitsExpected["MinPt_3l_offZ_OSSF_cut_100"] = 0.207; upperLimitsExpected["MinPt_3l_offZ_OSSF_cut_150"] = 0.143; upperLimitsExpected["MinPt_2ltau_offZ_OSSF_cut_0"] = 14.293; upperLimitsExpected["MinPt_2ltau_offZ_OSSF_cut_50"] = 0.705; upperLimitsExpected["MinPt_2ltau_offZ_OSSF_cut_100"] = 0.149; upperLimitsExpected["MinPt_2ltau_offZ_OSSF_cut_150"] = 0.155; upperLimitsExpected["MinPt_3l_offZ_noOSSF_cut_0"] = 0.836; upperLimitsExpected["MinPt_3l_offZ_noOSSF_cut_50"] = 0.249; upperLimitsExpected["MinPt_3l_offZ_noOSSF_cut_100"] = 0.135; upperLimitsExpected["MinPt_3l_offZ_noOSSF_cut_150"] = 0.136; upperLimitsExpected["MinPt_2ltau_offZ_noOSSF_cut_0"] = 4.132; upperLimitsExpected["MinPt_2ltau_offZ_noOSSF_cut_50"] = 0.339; upperLimitsExpected["MinPt_2ltau_offZ_noOSSF_cut_100"] = 0.149; upperLimitsExpected["MinPt_2ltau_offZ_noOSSF_cut_150"] = 0.145; upperLimitsExpected["MinPt_3l_onZ_cut_0"] = 32.181; upperLimitsExpected["MinPt_3l_onZ_cut_50"] = 2.260; upperLimitsExpected["MinPt_3l_onZ_cut_100"] = 0.438; upperLimitsExpected["MinPt_3l_onZ_cut_150"] = 0.305; upperLimitsExpected["MinPt_2ltau_onZ_cut_0"] = 217.801; upperLimitsExpected["MinPt_2ltau_onZ_cut_50"] = 1.335; upperLimitsExpected["MinPt_2ltau_onZ_cut_100"] = 0.162; upperLimitsExpected["MinPt_2ltau_onZ_cut_150"] = 0.149; upperLimitsExpected["nbtag_3l_offZ_OSSF_cut_0"] = 2.893; upperLimitsExpected["nbtag_3l_offZ_OSSF_cut_1"] = 0.923; upperLimitsExpected["nbtag_3l_offZ_OSSF_cut_2"] = 0.452; upperLimitsExpected["nbtag_2ltau_offZ_OSSF_cut_0"] = 14.293; upperLimitsExpected["nbtag_2ltau_offZ_OSSF_cut_1"] = 1.774; upperLimitsExpected["nbtag_2ltau_offZ_OSSF_cut_2"] = 0.549; upperLimitsExpected["nbtag_3l_offZ_noOSSF_cut_0"] = 0.836; upperLimitsExpected["nbtag_3l_offZ_noOSSF_cut_1"] = 0.594; upperLimitsExpected["nbtag_3l_offZ_noOSSF_cut_2"] = 0.298; upperLimitsExpected["nbtag_2ltau_offZ_noOSSF_cut_0"] = 4.132; upperLimitsExpected["nbtag_2ltau_offZ_noOSSF_cut_1"] = 2.358; upperLimitsExpected["nbtag_2ltau_offZ_noOSSF_cut_2"] = 0.958; upperLimitsExpected["nbtag_3l_onZ_cut_0"] = 32.181; upperLimitsExpected["nbtag_3l_onZ_cut_1"] = 3.868; upperLimitsExpected["nbtag_3l_onZ_cut_2"] = 0.887; upperLimitsExpected["nbtag_2ltau_onZ_cut_0"] = 217.801; upperLimitsExpected["nbtag_2ltau_onZ_cut_1"] = 9.397; upperLimitsExpected["nbtag_2ltau_onZ_cut_2"] = 0.787; if (observed) return upperLimitsObserved[signal_region]; else return upperLimitsExpected[signal_region]; } /// Function checking if there is an OSSF lepton pair or a combination of 3 leptons with an invariant mass close to the Z mass int isonZ (const Particles& particles) { int onZ = 0; double best_mass_2 = 999.; double best_mass_3 = 999.; // Loop over all 2 particle combinations to find invariant mass of OSSF pair closest to Z mass for (const Particle& p1 : particles) { for (const Particle& p2 : particles) { double mass_difference_2_old = fabs(91.0 - best_mass_2); double mass_difference_2_new = fabs(91.0 - (p1.momentum() + p2.momentum()).mass()/GeV); // If particle combination is OSSF pair calculate mass difference to Z mass if ((p1.pid()*p2.pid() == -121 || p1.pid()*p2.pid() == -169)) { // Get invariant mass closest to Z mass if (mass_difference_2_new < mass_difference_2_old) best_mass_2 = (p1.momentum() + p2.momentum()).mass()/GeV; // In case there is an OSSF pair take also 3rd lepton into account (e.g. from FSR and photon to electron conversion) for (const Particle& p3 : particles ) { double mass_difference_3_old = fabs(91.0 - best_mass_3); double mass_difference_3_new = fabs(91.0 - (p1.momentum() + p2.momentum() + p3.momentum()).mass()/GeV); if (mass_difference_3_new < mass_difference_3_old) best_mass_3 = (p1.momentum() + p2.momentum() + p3.momentum()).mass()/GeV; } } } } // Pick the minimum invariant mass of the best OSSF pair combination and the best 3 lepton combination double best_mass = min(best_mass_2,best_mass_3); // if this mass is in a 20 GeV window around the Z mass, the event is classified as onZ if ( fabs(91.0 - best_mass) < 20. ) onZ = 1; return onZ; } /// function checking if two leptons are an OSSF lepton pair and giving out the invariant mass (0 if no OSSF pair) double isOSSF_mass (const Particle& p1, const Particle& p2) { double inv_mass = 0.; // Is particle combination OSSF pair? if ((p1.pid()*p2.pid() == -121 || p1.pid()*p2.pid() == -169)) { // Get invariant mass inv_mass = (p1.momentum() + p2.momentum()).mass()/GeV; } return inv_mass; } /// Function checking if there is an OSSF lepton pair bool isOSSF (const Particles& particles) { for (size_t i1=0 ; i1 < 3 ; i1 ++) { for (size_t i2 = i1+1 ; i2 < 3 ; i2 ++) { if ((particles[i1].pid()*particles[i2].pid() == -121 || particles[i1].pid()*particles[i2].pid() == -169)) { return true; } } } return false; } //@} private: /// Histograms //@{ Histo1DPtr _h_HTlep_all, _h_HTjets_all, _h_MET_all, _h_Meff_all, _h_min_pT_all, _h_mT_all; Histo1DPtr _h_pt_1_3l, _h_pt_2_3l, _h_pt_3_3l, _h_pt_1_2ltau, _h_pt_2_2ltau, _h_pt_3_2ltau; Histo1DPtr _h_e_n, _h_mu_n, _h_tau_n; Histo1DPtr _h_excluded; //@} /// Fiducial efficiencies to model the effects of the ATLAS detector bool _use_fiducial_lepton_efficiency; /// List of signal regions and event counts per signal region vector _signal_regions; map _eventCountsPerSR; }; DECLARE_RIVET_PLUGIN(ATLAS_2014_I1327229); } diff --git a/analyses/pluginATLAS/ATLAS_2015_I1394865.cc b/analyses/pluginATLAS/ATLAS_2015_I1394865.cc --- a/analyses/pluginATLAS/ATLAS_2015_I1394865.cc +++ b/analyses/pluginATLAS/ATLAS_2015_I1394865.cc @@ -1,270 +1,270 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/FastJets.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/IdentifiedFinalState.hh" #include "Rivet/Projections/WFinder.hh" #include "Rivet/Projections/LeadingParticlesFinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" #include "Rivet/Projections/VetoedFinalState.hh" #include "Rivet/Projections/DressedLeptons.hh" #include "Rivet/Projections/MergedFinalState.hh" #include "Rivet/Projections/MissingMomentum.hh" #include "Rivet/Projections/InvMassFinalState.hh" namespace Rivet { /// Inclusive 4-lepton lineshape class ATLAS_2015_I1394865 : public Analysis { public: /// Default constructor DEFAULT_RIVET_ANALYSIS_CTOR(ATLAS_2015_I1394865); void init() { FinalState fs(Cuts::abseta < 5.0); IdentifiedFinalState photon(fs, PID::PHOTON); IdentifiedFinalState bare_EL(fs, {PID::ELECTRON, -PID::ELECTRON}); IdentifiedFinalState bare_MU(fs, {PID::MUON, -PID::MUON}); // Selection 1: ZZ-> llll selection Cut etaranges_el = Cuts::abseta < 2.5 && Cuts::pT > 7*GeV; Cut etaranges_mu = Cuts::abseta < 2.7 && Cuts::pT > 6*GeV; DressedLeptons electron_sel4l(photon, bare_EL, 0.1, etaranges_el); declare(electron_sel4l, "ELECTRON_sel4l"); DressedLeptons muon_sel4l(photon, bare_MU, 0.1, etaranges_mu); declare(muon_sel4l, "MUON_sel4l"); // Both ZZ on-shell histos _h_ZZ_mZZ = bookHisto1D(1, 1, 1); _h_ZZ_pTZZ = bookHisto1D(2, 1, 1); } /// Do the analysis void analyze(const Event& e) { const double weight = e.weight(); //////////////////////////////////////////////////////////////////// // Preselection of leptons for ZZ-> llll final state //////////////////////////////////////////////////////////////////// Particles leptons_sel4l; const vector& mu_sel4l = apply(e, "MUON_sel4l").dressedLeptons(); const vector& el_sel4l = apply(e, "ELECTRON_sel4l").dressedLeptons(); const vector leptonsFS_sel4l = mu_sel4l + el_sel4l; // leptonsFS_sel4l.insert( leptonsFS_sel4l.end(), mu_sel4l.begin(), mu_sel4l.end() ); // leptonsFS_sel4l.insert( leptonsFS_sel4l.end(), el_sel4l.begin(), el_sel4l.end() ); // mu: pT > 6 GeV, eta < 2.7; ele: pT > 7 GeV, eta < 2.5 for (const DressedLepton& l : leptonsFS_sel4l) { if (l.abspid() == PID::ELECTRON) leptons_sel4l.push_back(l); // REDUNDANT: if (l.pT() > 7*GeV && l.abseta() < 2.5) else if (l.abspid() == PID::MUON) leptons_sel4l.push_back(l); // REDUNDANT: if (l.pT() > 6*GeV && l.abseta() < 2.7) } ////////////////////////////////////////////////////////////////// // Exactly two opposite charged leptons ////////////////////////////////////////////////////////////////// // Calculate total 'flavour' charge double totalcharge = 0; for (const Particle& l : leptons_sel4l) totalcharge += l.pid(); // Analyze 4 lepton events if (leptons_sel4l.size() != 4 || totalcharge != 0) vetoEvent; // Identify Z states from 4 lepton pairs Zstate Z1, Z2, Z1_alt, Z2_alt; if ( !identifyZstates(Z1, Z2, Z1_alt, Z2_alt, leptons_sel4l) ) vetoEvent; const double mZ1 = Z1.mom().mass(); const double mZ2 = Z2.mom().mass(); const double mZ1_alt = Z1_alt.mom().mass(); const double mZ2_alt = Z2_alt.mom().mass(); const double pTZ1 = Z1.mom().pT(); const double pTZ2 = Z2.mom().pT(); const double mZZ = (Z1.mom() + Z2.mom()).mass(); const double pTZZ = (Z1.mom() + Z2.mom()).pT(); // Event selections // pT(Z) > 2 GeV bool pass = pTZ1 > 2*GeV && pTZ2 > 2*GeV; if (!pass) vetoEvent; // Lepton kinematics: pT > 20, 15, 10 (8 if muon) GeV int n1 = 0, n2 = 0, n3 = 0; for (Particle& l : leptons_sel4l) { if (l.pT() > 20*GeV) ++n1; if (l.pT() > 15*GeV) ++n2; if (l.pT() > 10*GeV && l.abspid() == PID::ELECTRON) ++n3; if (l.pT() > 8*GeV && l.abspid() == PID::MUON) ++n3; } pass = pass && n1>=1 && n2>=2 && n3>=3; if (!pass) vetoEvent; // Dilepton mass: 50 < mZ1 < 120 GeV, 12 < mZ2 < 120 GeV pass = pass && mZ1 > 50*GeV && mZ1 < 120*GeV; pass = pass && mZ2 > 12*GeV && mZ2 < 120*GeV; if (!pass) vetoEvent; // Lepton separation: deltaR(l, l') > 0.1 (0.2) for same- (different-) flavor leptons for (size_t i = 0; i < leptons_sel4l.size(); ++i) { for (size_t j = i + 1; j < leptons_sel4l.size(); ++j) { const Particle& l1 = leptons_sel4l[i]; const Particle& l2 = leptons_sel4l[j]; pass = pass && deltaR(l1, l2) > (l1.abspid() == l2.abspid() ? 0.1 : 0.2); if (!pass) vetoEvent; } } // J/Psi veto: m(l+l-) > 5 GeV pass = pass && mZ1 > 5*GeV && mZ2 > 5*GeV && mZ1_alt > 5*GeV && mZ2_alt > 5*GeV; if (!pass) vetoEvent; // 80 < m4l < 1000 GeV pass = pass && mZZ > 80*GeV && mZZ < 1000*GeV; if (!pass) vetoEvent; // Fill histograms _h_ZZ_mZZ->fill(mZZ, weight); _h_ZZ_pTZZ->fill(pTZZ, weight); } /// Finalize void finalize() { const double norm = crossSection()/sumOfWeights()/femtobarn/TeV; scale(_h_ZZ_mZZ, norm); scale(_h_ZZ_pTZZ, norm); } /// Generic Z candidate struct Zstate : public ParticlePair { Zstate() { } Zstate(ParticlePair _particlepair) : ParticlePair(_particlepair) { } FourMomentum mom() const { return first.momentum() + second.momentum(); } operator FourMomentum() const { return mom(); } static bool cmppT(const Zstate& lx, const Zstate& rx) { return lx.mom().pT() < rx.mom().pT(); } }; /// @brief 4l to ZZ assignment algorithm /// /// ZZ->4l pairing /// - At least two same flavour opposite sign (SFOS) lepton pairs /// - Ambiguities in pairing are resolved following the procedure /// 1. the leading Z (Z1) is choosen as the SFOS with dilepton mass closet to Z mass /// 2. the subleading Z (Z2) is choosen as the remaining SFOS dilepton pair /// /// Z1, Z2: the selected pairing /// Z1_alt, Z2_alt: the alternative pairing (the same as Z1, Z2 in 2e2m case) bool identifyZstates(Zstate& Z1, Zstate& Z2, Zstate& Z1_alt, Zstate& Z2_alt, const Particles& leptons_sel4l) { const double ZMASS = 91.1876*GeV; bool findZZ = false; Particles part_pos_el, part_neg_el, part_pos_mu, part_neg_mu; for (const Particle& l : leptons_sel4l) { if (l.abspid() == PID::ELECTRON) { if (l.pid() < 0) part_neg_el.push_back(l); if (l.pid() > 0) part_pos_el.push_back(l); } else if (l.abspid() == PID::MUON) { if (l.pid() < 0) part_neg_mu.push_back(l); if (l.pid() > 0) part_pos_mu.push_back(l); } } // eeee/mmmm channel if ((part_neg_el.size() == 2 && part_pos_el.size() == 2) || (part_neg_mu.size() == 2 && part_pos_mu.size() == 2)) { findZZ = true; Zstate Zcand_1, Zcand_2, Zcand_3, Zcand_4; Zstate Zcand_1_tmp, Zcand_2_tmp, Zcand_3_tmp, Zcand_4_tmp; if (part_neg_el.size() == 2) { // eeee Zcand_1_tmp = Zstate( ParticlePair( part_neg_el[0], part_pos_el[0] ) ); Zcand_2_tmp = Zstate( ParticlePair( part_neg_el[0], part_pos_el[1] ) ); Zcand_3_tmp = Zstate( ParticlePair( part_neg_el[1], part_pos_el[0] ) ); Zcand_4_tmp = Zstate( ParticlePair( part_neg_el[1], part_pos_el[1] ) ); } else { // mmmm Zcand_1_tmp = Zstate( ParticlePair( part_neg_mu[0], part_pos_mu[0] ) ); Zcand_2_tmp = Zstate( ParticlePair( part_neg_mu[0], part_pos_mu[1] ) ); Zcand_3_tmp = Zstate( ParticlePair( part_neg_mu[1], part_pos_mu[0] ) ); Zcand_4_tmp = Zstate( ParticlePair( part_neg_mu[1], part_pos_mu[1] ) ); } // We can have the following pairs: (Z1 + Z4) || (Z2 + Z3) // Firstly, reorder withing each quadruplet to have // - fabs(mZ1 - ZMASS) < fabs(mZ4 - ZMASS) // - fabs(mZ2 - ZMASS) < fabs(mZ3 - ZMASS) if (fabs(Zcand_1_tmp.mom().mass() - ZMASS) < fabs(Zcand_4_tmp.mom().mass() - ZMASS)) { Zcand_1 = Zcand_1_tmp; Zcand_4 = Zcand_4_tmp; } else { Zcand_1 = Zcand_4_tmp; Zcand_4 = Zcand_1_tmp; } if (fabs(Zcand_2_tmp.mom().mass() - ZMASS) < fabs(Zcand_3_tmp.mom().mass() - ZMASS)) { Zcand_2 = Zcand_2_tmp; Zcand_3 = Zcand_3_tmp; } else { Zcand_2 = Zcand_3_tmp; Zcand_3 = Zcand_2_tmp; } // We can have the following pairs: (Z1 + Z4) || (Z2 + Z3) // Secondly, select the leading and subleading Z following // 1. the leading Z (Z1) is choosen as the SFOS with dilepton mass closet to Z mass // 2. the subleading Z (Z2) is choosen as the remaining SFOS dilepton pair if (fabs(Zcand_1.mom().mass() - ZMASS) < fabs(Zcand_2.mom().mass() - ZMASS)) { Z1 = Zcand_1; Z2 = Zcand_4; Z1_alt = Zcand_2; Z2_alt = Zcand_3; } else { Z1 = Zcand_2; Z2 = Zcand_3; Z1_alt = Zcand_1; Z2_alt = Zcand_4; } } // end of eeee/mmmm channel else if (part_neg_el.size() == 1 && part_pos_el.size() == 1 && part_neg_mu.size() == 1 && part_pos_mu.size() == 1) { // 2e2m channel findZZ = true; Zstate Zcand_1, Zcand_2; Zcand_1 = Zstate( ParticlePair( part_neg_mu[0], part_pos_mu[0] ) ); Zcand_2 = Zstate( ParticlePair( part_neg_el[0], part_pos_el[0] ) ); if (fabs(Zcand_1.mom().mass() - ZMASS) < fabs(Zcand_2.mom().mass() - ZMASS)) { Z1 = Zcand_1; Z2 = Zcand_2; } else { Z1 = Zcand_2; Z2 = Zcand_1; } Z1_alt = Z1; Z2_alt = Z2; } return findZZ; } private: Histo1DPtr _h_ZZ_pTZZ, _h_ZZ_mZZ; }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(ATLAS_2015_I1394865); } diff --git a/analyses/pluginATLAS/ATLAS_2015_I1397637.cc b/analyses/pluginATLAS/ATLAS_2015_I1397637.cc --- a/analyses/pluginATLAS/ATLAS_2015_I1397637.cc +++ b/analyses/pluginATLAS/ATLAS_2015_I1397637.cc @@ -1,218 +1,218 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/FinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" #include "Rivet/Projections/VetoedFinalState.hh" #include "Rivet/Projections/IdentifiedFinalState.hh" #include "Rivet/Projections/PromptFinalState.hh" #include "Rivet/Projections/DressedLeptons.hh" #include "Rivet/Projections/FastJets.hh" namespace Rivet { class ATLAS_2015_I1397637 : public Analysis { public: /// Constructor DEFAULT_RIVET_ANALYSIS_CTOR(ATLAS_2015_I1397637); /// Book projections and histograms void init() { // Base final state definition const FinalState fs(Cuts::abseta < 4.5); // Neutrinos for MET IdentifiedFinalState nu_id; nu_id.acceptNeutrinos(); PromptFinalState neutrinos(nu_id); neutrinos.acceptTauDecays(true); declare(neutrinos, "neutrinos"); // Get photons used to dress leptons IdentifiedFinalState photons(fs); photons.acceptId(PID::PHOTON); // Use all bare muons as input to the DressedMuons projection IdentifiedFinalState mu_id(fs); mu_id.acceptIdPair(PID::MUON); PromptFinalState bare_mu(mu_id); bare_mu.acceptTauDecays(true); // Use all bare electrons as input to the DressedElectrons projection IdentifiedFinalState el_id(fs); el_id.acceptIdPair(PID::ELECTRON); PromptFinalState bare_el(el_id); bare_el.acceptTauDecays(true); // Use all bare leptons including taus for single-lepton filter IdentifiedFinalState lep_id(fs); lep_id.acceptIdPair(PID::MUON); lep_id.acceptIdPair(PID::ELECTRON); PromptFinalState bare_lep(lep_id); declare(bare_lep, "bare_lep"); // Tau finding /// @todo Use TauFinder - UnstableFinalState ufs; + UnstableParticles ufs; IdentifiedFinalState tau_id(ufs); tau_id.acceptIdPair(PID::TAU); PromptFinalState bare_tau(tau_id); declare(bare_tau, "bare_tau"); // Muons and electrons must have |eta| < 2.5 Cut eta_ranges = Cuts::abseta < 2.5; // Get dressed muons and the good muons (pt>25GeV) DressedLeptons all_dressed_mu(photons, bare_mu, 0.1, eta_ranges, true); DressedLeptons dressed_mu(photons, bare_mu, 0.1, eta_ranges && Cuts::pT > 25*GeV, true); declare(dressed_mu, "muons"); // Get dressed electrons and the good electrons (pt>25GeV) DressedLeptons all_dressed_el(photons, bare_el, 0.1, eta_ranges, true); DressedLeptons dressed_el(photons, bare_el, 0.1, eta_ranges && Cuts::pT > 25*GeV, true); declare(dressed_el, "electrons"); // Jet clustering VetoedFinalState vfs(fs); vfs.addVetoOnThisFinalState(all_dressed_el); vfs.addVetoOnThisFinalState(all_dressed_mu); vfs.addVetoOnThisFinalState(neutrinos); // Small-R jets /// @todo Use extra constructor args FastJets jets(vfs, FastJets::ANTIKT, 0.4); jets.useInvisibles(JetAlg::ALL_INVISIBLES); jets.useMuons(JetAlg::DECAY_MUONS); declare(jets, "jets"); // Large-R jets /// @todo Use extra constructor args FastJets large_jets(vfs, FastJets::ANTIKT, 1.0); large_jets.useInvisibles(JetAlg::ALL_INVISIBLES); large_jets.useMuons(JetAlg::DECAY_MUONS); declare(large_jets, "fat_jets"); /// Book histogram _h_pttop = bookHisto1D(1, 1, 1); } /// Perform the per-event analysis void analyze(const Event& event) { // Single lepton filter on bare leptons with no cuts const Particles& bare_lep = apply(event, "bare_lep").particles(); const Particles& bare_tau = apply(event, "bare_tau").particles(); if (bare_lep.size() + bare_tau.size() != 1) vetoEvent; // Electrons and muons const vector& electrons = apply(event, "electrons").dressedLeptons(); const vector& muons = apply(event, "muons").dressedLeptons(); if (electrons.size() + muons.size() != 1) vetoEvent; const DressedLepton& lepton = muons.empty() ? electrons[0] : muons[0]; // Get the neutrinos from the event record (they have pT > 0.0 and |eta| < 4.5 at this stage const Particles& neutrinos = apply(event, "neutrinos").particlesByPt(); FourMomentum met; for (const Particle& nu : neutrinos) met += nu.momentum(); if (met.pT() < 20*GeV) vetoEvent; // Thin jets and trimmed fat jets /// @todo Use Rivet built-in FJ trimming support const Jets& jets = apply(event, "jets").jetsByPt(Cuts::pT > 25*GeV && Cuts::abseta < 2.5); const PseudoJets& fat_pjets = apply(event, "fat_jets").pseudoJetsByPt(); const double Rfilt = 0.3, ptFrac_min = 0.05; ///< @todo Need to be careful about the units for the pT cut passed to FJ? PseudoJets trimmed_fat_pjets; fastjet::Filter trimmer(fastjet::JetDefinition(fastjet::kt_algorithm, Rfilt), fastjet::SelectorPtFractionMin(ptFrac_min)); for (const PseudoJet& pjet : fat_pjets) trimmed_fat_pjets += trimmer(pjet); trimmed_fat_pjets = fastjet::sorted_by_pt(trimmed_fat_pjets); // Jet reclustering // Use a kT cluster sequence to recluster the trimmed jets so that a d12 can then be obtained from the reclustered jet vector splittingScales; for (const PseudoJet& tpjet : trimmed_fat_pjets) { const PseudoJets tpjet_constits = tpjet.constituents(); const fastjet::ClusterSequence kt_cs(tpjet_constits, fastjet::JetDefinition(fastjet::kt_algorithm, 1.5, fastjet::E_scheme, fastjet::Best)); const PseudoJets kt_jets = kt_cs.inclusive_jets(); const double d12 = 1.5 * sqrt(kt_jets[0].exclusive_subdmerge(1)); splittingScales += d12; } Jets trimmed_fat_jets; for (size_t i = 0; i < trimmed_fat_pjets.size(); ++i) { const Jet tj = trimmed_fat_pjets[i]; if (tj.mass() <= 100*GeV) continue; if (tj.pT() <= 300*GeV) continue; if (splittingScales[i] <= 40*GeV) continue; if (tj.abseta() >= 2.0) continue; trimmed_fat_jets += tj; } if (trimmed_fat_jets.empty()) vetoEvent; // Jet b-tagging Jets bjets, non_bjets; for (const Jet& jet : jets) (jet.bTagged() ? bjets : non_bjets) += jet; if (bjets.empty()) vetoEvent; // Boosted selection: lepton/jet overlap const double transmass = sqrt( 2 * lepton.pT() * met.pT() * (1 - cos(deltaPhi(lepton, met))) ); if (transmass + met.pt() <= 60*GeV) vetoEvent; int lepJetIndex = -1; for (size_t i = 0; i < jets.size(); ++i) { const Jet& jet = jets[i]; if (deltaR(jet, lepton) < 1.5) { lepJetIndex = i; break; } } if (lepJetIndex < 0) vetoEvent; const Jet& ljet = jets[lepJetIndex]; // Boosted selection: lepton-jet/fat-jet matching int fatJetIndex = -1; for (size_t j = 0; j < trimmed_fat_jets.size(); ++j) { const Jet& fjet = trimmed_fat_jets[j]; const double dR_fatjet = deltaR(ljet, fjet); const double dPhi_fatjet = deltaPhi(lepton, fjet); if (dR_fatjet > 1.5 && dPhi_fatjet > 2.3) { fatJetIndex = j; break; } } if (fatJetIndex < 0) vetoEvent; const Jet& fjet = trimmed_fat_jets[fatJetIndex]; // Boosted selection: b-tag matching const bool lepbtag = ljet.bTagged(); bool hadbtag = false; for (const Jet& bjet : bjets) { hadbtag |= (deltaR(fjet, bjet) < 1.0); } // Fill histo if selection passed if (hadbtag || lepbtag) _h_pttop->fill(fjet.pT()/GeV, event.weight()); } /// Normalise histograms etc., after the run void finalize() { scale(_h_pttop, crossSection()/femtobarn / sumOfWeights()); } private: Histo1DPtr _h_pttop; }; DECLARE_RIVET_PLUGIN(ATLAS_2015_I1397637); } diff --git a/analyses/pluginATLAS/ATLAS_2017_I1604029.cc b/analyses/pluginATLAS/ATLAS_2017_I1604029.cc --- a/analyses/pluginATLAS/ATLAS_2017_I1604029.cc +++ b/analyses/pluginATLAS/ATLAS_2017_I1604029.cc @@ -1,149 +1,149 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/FastJets.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/DressedLeptons.hh" #include "Rivet/Projections/PromptFinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { ///@brief: ttbar + gamma at 8 TeV class ATLAS_2017_I1604029 : public Analysis { public: // Constructor DEFAULT_RIVET_ANALYSIS_CTOR(ATLAS_2017_I1604029); // Book histograms and initialise projections before the run void init() { const FinalState fs; // signal photons PromptFinalState prompt_ph(Cuts::abspid == PID::PHOTON && Cuts::pT > 15*GeV && Cuts::abseta < 2.37); declare(prompt_ph, "photons"); // bare leptons Cut base_cuts = (Cuts::abseta < 2.7) && (Cuts::pT > 10*GeV); IdentifiedFinalState bare_leps(base_cuts); bare_leps.acceptIdPair(PID::MUON); bare_leps.acceptIdPair(PID::ELECTRON); declare(bare_leps, "bare_leptons"); // dressed leptons Cut dressed_cuts = (Cuts::abseta < 2.5) && (Cuts::pT > 25*GeV); PromptFinalState prompt_mu(base_cuts && Cuts::abspid == PID::MUON); PromptFinalState prompt_el(base_cuts && Cuts::abspid == PID::ELECTRON); IdentifiedFinalState all_photons(fs, PID::PHOTON); DressedLeptons elecs(all_photons, prompt_el, 0.1, dressed_cuts); declare(elecs, "elecs"); DressedLeptons muons(all_photons, prompt_mu, 0.1, dressed_cuts); declare(muons, "muons"); // auxiliary projections for 'single-lepton ttbar filter' PromptFinalState prompt_lep(Cuts::abspid == PID::MUON || Cuts::abspid == PID::ELECTRON); declare(prompt_lep, "prompt_leps"); - declare(UnstableFinalState(), "ufs"); + declare(UnstableParticles(), "ufs"); // jets FastJets jets(fs, FastJets::ANTIKT, 0.4, JetAlg::NO_MUONS, JetAlg::NO_INVISIBLES); declare(jets, "jets"); // BOOK HISTOGRAMS _h["pt"] = bookHisto1D(2,1,1); _h["eta"] = bookHisto1D(3,1,1); } // Perform the per-event analysis void analyze(const Event& event) { const double weight = event.weight(); // analysis extrapolated to 1-lepton-plus-jets channel, where "lepton" cannot be a tau // (i.e. contribution from dileptonic ttbar where one of the leptons is outside // the detector acceptance has been subtracted as a background) if (applyProjection(event, "prompt_leps").particles().size() != 1) vetoEvent; - for (const auto& p : apply(event, "ufs").particles()) { + for (const auto& p : apply(event, "ufs").particles()) { if (p.fromPromptTau()) vetoEvent; } // photon selection Particles photons = applyProjection(event, "photons").particlesByPt(); Particles bare_leps = apply(event, "bare_leptons").particles(); for (const Particle& lep : bare_leps) ifilter_discard(photons, deltaRLess(lep, 0.1)); if (photons.size() != 1) vetoEvent; const Particle& photon = photons[0]; // jet selection Jets jets = apply(event, "jets").jetsByPt(Cuts::abseta < 2.5 && Cuts::pT > 25*GeV); // lepton selection const vector& elecs = apply(event, "elecs").dressedLeptons(); const vector& all_muons = apply(event, "muons").dressedLeptons(); // jet photon/electron overlap removal for (const DressedLepton& e : elecs) ifilter_discard(jets, deltaRLess(e, 0.2, RAPIDITY)); for (const Particle& ph : photons) ifilter_discard(jets, deltaRLess(ph, 0.1, RAPIDITY)); if (jets.size() < 4) vetoEvent; // photon-jet minimum deltaR double mindR_phjet = 999.; for (Jet jet : jets) { const double dR_phjet = deltaR(photon, jet); if (dR_phjet < mindR_phjet) mindR_phjet = dR_phjet; } if (mindR_phjet < 0.5) vetoEvent; // muon jet overlap removal vector muons; foreach (DressedLepton mu, all_muons) { bool overlaps = false; foreach (Jet jet, jets) { if (deltaR(mu, jet) < 0.4) { overlaps = true; break; } } if (overlaps) continue; muons.push_back(mu); } // one electron XOR one muon bool isEl = elecs.size() == 1 && muons.size() == 0; bool isMu = muons.size() == 1 && elecs.size() == 0; if (!isEl && !isMu) vetoEvent; // photon-lepton deltaR double mindR_phlep = deltaR(photon, isEl? elecs[0] : muons[0]); if (mindR_phlep < 0.7) vetoEvent; // b-tagging Jets bjets; foreach (Jet jet, jets) { if (jet.bTagged(Cuts::pT > 5*GeV)) bjets +=jet; } if (bjets.empty()) vetoEvent; _h["pt"]->fill(photon.pT()/GeV, weight); _h["eta"]->fill(photon.abseta(), weight); } // Normalise histograms etc., after the run void finalize() { const double normto(crossSection() / femtobarn / sumOfWeights()); for (auto &hist : _h) { scale(hist.second, normto); } } private: map _h; }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(ATLAS_2017_I1604029); } diff --git a/analyses/pluginCMS/CMS_2011_S8973270.cc b/analyses/pluginCMS/CMS_2011_S8973270.cc --- a/analyses/pluginCMS/CMS_2011_S8973270.cc +++ b/analyses/pluginCMS/CMS_2011_S8973270.cc @@ -1,164 +1,164 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/FinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" #include "Rivet/Projections/FastJets.hh" namespace Rivet { class CMS_2011_S8973270 : public Analysis { public: /// Constructor CMS_2011_S8973270() : Analysis("CMS_2011_S8973270") { } void init() { FinalState fs; FastJets jetproj(fs, FastJets::ANTIKT, 0.5); jetproj.useInvisibles(); declare(jetproj, "Jets"); - UnstableFinalState ufs; + UnstableParticles ufs; declare(ufs, "UFS"); // Book histograms _h_dsigma_dR_56GeV = bookHisto1D(1,1,1); _h_dsigma_dR_84GeV = bookHisto1D(2,1,1); _h_dsigma_dR_120GeV = bookHisto1D(3,1,1); _h_dsigma_dPhi_56GeV = bookHisto1D(4,1,1); _h_dsigma_dPhi_84GeV = bookHisto1D(5,1,1); _h_dsigma_dPhi_120GeV = bookHisto1D(6,1,1); _countMCDR56 = 0; _countMCDR84 = 0; _countMCDR120 = 0; _countMCDPhi56 = 0; _countMCDPhi84 = 0; _countMCDPhi120 = 0; } /// Perform the per-event analysis void analyze(const Event& event) { const double weight = event.weight(); const Jets& jets = apply(event,"Jets").jetsByPt(); - const UnstableFinalState& ufs = apply(event, "UFS"); + const UnstableParticles& ufs = apply(event, "UFS"); // Find the leading jet pT and eta if (jets.size() == 0) vetoEvent; const double ljpT = jets[0].pT(); const double ljeta = jets[0].eta(); MSG_DEBUG("Leading jet pT / eta: " << ljpT << " / " << ljeta); // Minimum requirement for event if (ljpT > 56*GeV && fabs(ljeta) < 3.0) { // Find B hadrons in event int nab = 0, nb = 0; //counters for all B and independent B hadrons double etaB1 = 7.7, etaB2 = 7.7; double phiB1 = 7.7, phiB2 = 7.7; double pTB1 = 7.7, pTB2 = 7.7; foreach (const Particle& p, ufs.particles()) { int aid = p.abspid(); if (aid/100 == 5 || aid/1000==5) { nab++; // 2J+1 == 1 (mesons) or 2 (baryons) if (aid%10 == 1 || aid%10 == 2) { // No B decaying to B if (aid != 5222 && aid != 5112 && aid != 5212 && aid != 5322) { if (nb==0) { etaB1 = p.eta(); phiB1 = p.phi(); pTB1 = p.pT(); } else if (nb==1) { etaB2 = p.eta(); phiB2 = p.phi(); pTB2 = p.pT(); } nb++; } } MSG_DEBUG("ID " << aid << " B hadron"); } } if (nb==2 && pTB1 > 15*GeV && pTB2 > 15*GeV && fabs(etaB1) < 2.0 && fabs(etaB2) < 2.0) { double dPhi = deltaPhi(phiB1, phiB2); double dR = deltaR(etaB1, phiB1, etaB2, phiB2); MSG_DEBUG("DR/DPhi " << dR << " " << dPhi); // MC counters if (dR > 2.4) _countMCDR56 += weight; if (dR > 2.4 && ljpT > 84*GeV) _countMCDR84 += weight; if (dR > 2.4 && ljpT > 120*GeV) _countMCDR120 += weight; if (dPhi > 3.*PI/4.) _countMCDPhi56 += weight; if (dPhi > 3.*PI/4. && ljpT > 84*GeV) _countMCDPhi84 += weight; if (dPhi > 3.*PI/4. && ljpT > 120*GeV) _countMCDPhi120 += weight; _h_dsigma_dR_56GeV->fill(dR, weight); if (ljpT > 84*GeV) _h_dsigma_dR_84GeV->fill(dR, weight); if (ljpT > 120*GeV) _h_dsigma_dR_120GeV->fill(dR, weight); _h_dsigma_dPhi_56GeV->fill(dPhi, weight); if (ljpT > 84*GeV) _h_dsigma_dPhi_84GeV->fill(dPhi, weight); if (ljpT > 120*GeV) _h_dsigma_dPhi_120GeV->fill(dPhi, weight); //MSG_DEBUG("nb " << nb << " " << nab); } } } /// Normalise histograms etc., after the run void finalize() { MSG_DEBUG("crossSection " << crossSection() << " sumOfWeights " << sumOfWeights()); // Hardcoded bin widths double DRbin = 0.4; double DPhibin = PI/8.0; // Find out the correct numbers double nDataDR56 = 25862.20; double nDataDR84 = 5675.55; double nDataDR120 = 1042.72; double nDataDPhi56 = 24220.00; double nDataDPhi84 = 4964.00; double nDataDPhi120 = 919.10; double normDR56 = (_countMCDR56 > 0.) ? nDataDR56/_countMCDR56 : crossSection()/sumOfWeights(); double normDR84 = (_countMCDR84 > 0.) ? nDataDR84/_countMCDR84 : crossSection()/sumOfWeights(); double normDR120 = (_countMCDR120 > 0.) ? nDataDR120/_countMCDR120 : crossSection()/sumOfWeights(); double normDPhi56 = (_countMCDPhi56 > 0.) ? nDataDPhi56/_countMCDPhi56 : crossSection()/sumOfWeights(); double normDPhi84 = (_countMCDPhi84 > 0.) ? nDataDPhi84/_countMCDPhi84 : crossSection()/sumOfWeights(); double normDPhi120 = (_countMCDPhi120 > 0.) ? nDataDPhi120/_countMCDPhi120 : crossSection()/sumOfWeights(); scale(_h_dsigma_dR_56GeV, normDR56*DRbin); scale(_h_dsigma_dR_84GeV, normDR84*DRbin); scale(_h_dsigma_dR_120GeV, normDR120*DRbin); scale(_h_dsigma_dPhi_56GeV, normDPhi56*DPhibin); scale(_h_dsigma_dPhi_84GeV, normDPhi84*DPhibin); scale(_h_dsigma_dPhi_120GeV, normDPhi120*DPhibin); } //@} private: /// @name Counters //@{ double _countMCDR56, _countMCDR84, _countMCDR120; double _countMCDPhi56, _countMCDPhi84, _countMCDPhi120; //@} /// @name Histograms //@{ Histo1DPtr _h_dsigma_dR_56GeV, _h_dsigma_dR_84GeV, _h_dsigma_dR_120GeV; Histo1DPtr _h_dsigma_dPhi_56GeV, _h_dsigma_dPhi_84GeV, _h_dsigma_dPhi_120GeV; //@} }; // Hook for the plugin system DECLARE_RIVET_PLUGIN(CMS_2011_S8973270); } diff --git a/analyses/pluginCMS/CMS_2011_S8978280.cc b/analyses/pluginCMS/CMS_2011_S8978280.cc --- a/analyses/pluginCMS/CMS_2011_S8978280.cc +++ b/analyses/pluginCMS/CMS_2011_S8978280.cc @@ -1,114 +1,114 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief CMS strange particle spectra (Ks, Lambda, Cascade) in pp at 900 and 7000 GeV /// @author Kevin Stenson class CMS_2011_S8978280 : public Analysis { public: /// Constructor CMS_2011_S8978280() : Analysis("CMS_2011_S8978280") { } void init() { - UnstableFinalState ufs(Cuts::absrap < 2); + UnstableParticles ufs(Cuts::absrap < 2); declare(ufs, "UFS"); // Particle distributions versus rapidity and transverse momentum if (fuzzyEquals(sqrtS()/GeV, 900*GeV)){ _h_dNKshort_dy = bookHisto1D(1, 1, 1); _h_dNKshort_dpT = bookHisto1D(2, 1, 1); _h_dNLambda_dy = bookHisto1D(3, 1, 1); _h_dNLambda_dpT = bookHisto1D(4, 1, 1); _h_dNXi_dy = bookHisto1D(5, 1, 1); _h_dNXi_dpT = bookHisto1D(6, 1, 1); // _h_LampT_KpT = bookScatter2D(7, 1, 1); _h_XipT_LampT = bookScatter2D(8, 1, 1); _h_Lamy_Ky = bookScatter2D(9, 1, 1); _h_Xiy_Lamy = bookScatter2D(10, 1, 1); } else if (fuzzyEquals(sqrtS()/GeV, 7000*GeV)){ _h_dNKshort_dy = bookHisto1D(1, 1, 2); _h_dNKshort_dpT = bookHisto1D(2, 1, 2); _h_dNLambda_dy = bookHisto1D(3, 1, 2); _h_dNLambda_dpT = bookHisto1D(4, 1, 2); _h_dNXi_dy = bookHisto1D(5, 1, 2); _h_dNXi_dpT = bookHisto1D(6, 1, 2); // _h_LampT_KpT = bookScatter2D(7, 1, 2); _h_XipT_LampT = bookScatter2D(8, 1, 2); _h_Lamy_Ky = bookScatter2D(9, 1, 2); _h_Xiy_Lamy = bookScatter2D(10, 1, 2); } } void analyze(const Event& event) { const double weight = event.weight(); - const UnstableFinalState& parts = apply(event, "UFS"); + const UnstableParticles& parts = apply(event, "UFS"); foreach (const Particle& p, parts.particles()) { switch (p.abspid()) { case PID::K0S: _h_dNKshort_dy->fill(p.absrap(), weight); _h_dNKshort_dpT->fill(p.pT(), weight); break; case PID::LAMBDA: // Lambda should not have Cascade or Omega ancestors since they should not decay. But just in case... if ( !( p.hasAncestor(3322) || p.hasAncestor(-3322) || p.hasAncestor(3312) || p.hasAncestor(-3312) || p.hasAncestor(3334) || p.hasAncestor(-3334) ) ) { _h_dNLambda_dy->fill(p.absrap(), weight); _h_dNLambda_dpT->fill(p.pT(), weight); } break; case PID::XIMINUS: // Cascade should not have Omega ancestors since it should not decay. But just in case... if ( !( p.hasAncestor(3334) || p.hasAncestor(-3334) ) ) { _h_dNXi_dy->fill(p.absrap(), weight); _h_dNXi_dpT->fill(p.pT(), weight); } break; } } } void finalize() { divide(_h_dNLambda_dpT,_h_dNKshort_dpT, _h_LampT_KpT); divide(_h_dNXi_dpT,_h_dNLambda_dpT, _h_XipT_LampT); divide(_h_dNLambda_dy,_h_dNKshort_dy, _h_Lamy_Ky); divide(_h_dNXi_dy,_h_dNLambda_dy, _h_Xiy_Lamy); const double normpT = 1.0/sumOfWeights(); const double normy = 0.5*normpT; // Accounts for using |y| instead of y scale(_h_dNKshort_dy, normy); scale(_h_dNKshort_dpT, normpT); scale(_h_dNLambda_dy, normy); scale(_h_dNLambda_dpT, normpT); scale(_h_dNXi_dy, normy); scale(_h_dNXi_dpT, normpT); } private: // Particle distributions versus rapidity and transverse momentum Histo1DPtr _h_dNKshort_dy, _h_dNKshort_dpT, _h_dNLambda_dy, _h_dNLambda_dpT, _h_dNXi_dy, _h_dNXi_dpT; Scatter2DPtr _h_LampT_KpT, _h_XipT_LampT, _h_Lamy_Ky, _h_Xiy_Lamy; }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(CMS_2011_S8978280); } diff --git a/analyses/pluginCMS/CMS_2012_PAS_QCD_11_010.cc b/analyses/pluginCMS/CMS_2012_PAS_QCD_11_010.cc --- a/analyses/pluginCMS/CMS_2012_PAS_QCD_11_010.cc +++ b/analyses/pluginCMS/CMS_2012_PAS_QCD_11_010.cc @@ -1,89 +1,89 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/ChargedFinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" #include "Rivet/Projections/FastJets.hh" namespace Rivet { class CMS_2012_PAS_QCD_11_010 : public Analysis { public: CMS_2012_PAS_QCD_11_010() : Analysis("CMS_2012_PAS_QCD_11_010") { } void init() { const FastJets jets(ChargedFinalState(Cuts::abseta < 2.5 && Cuts::pT > 0.5*GeV), FastJets::ANTIKT, 0.5); declare(jets, "Jets"); - const UnstableFinalState ufs(Cuts::abseta < 2 && Cuts::pT > 0.6*GeV); + const UnstableParticles ufs(Cuts::abseta < 2 && Cuts::pT > 0.6*GeV); declare(ufs, "UFS"); _h_nTrans_Lambda = bookProfile1D(1, 1, 1); _h_nTrans_Kaon = bookProfile1D(2, 1, 1); _h_ptsumTrans_Lambda = bookProfile1D(3, 1, 1); _h_ptsumTrans_Kaon = bookProfile1D(4, 1, 1); } void analyze(const Event& event) { const double weight = event.weight(); Jets jets = apply(event, "Jets").jetsByPt(1.0*GeV); if (jets.size() < 1) vetoEvent; if (fabs(jets[0].eta()) >= 2) { // cuts on leading jets vetoEvent; } FourMomentum p_lead = jets[0].momentum(); const double pTlead = p_lead.pT(); - const UnstableFinalState& ufs = apply(event, "UFS"); + const UnstableParticles& ufs = apply(event, "UFS"); int numTrans_Kaon = 0; int numTrans_Lambda = 0; double ptSumTrans_Kaon = 0.; double ptSumTrans_Lambda = 0.; foreach (const Particle& p, ufs.particles()) { double dphi = deltaPhi(p, p_lead); double pT = p.pT(); const PdgId id = p.abspid(); if (dphi > PI/3. && dphi < 2./3.*PI) { if (id == 310 && pT > 0.6*GeV) { ptSumTrans_Kaon += pT/GeV; numTrans_Kaon++; } else if (id == 3122 && pT > 1.5*GeV) { ptSumTrans_Lambda += pT/GeV; numTrans_Lambda++; } } } _h_nTrans_Kaon->fill(pTlead/GeV, numTrans_Kaon / (8.0 * PI/3.0), weight); _h_nTrans_Lambda->fill(pTlead/GeV, numTrans_Lambda / (8.0 * PI/3.0), weight); _h_ptsumTrans_Kaon->fill(pTlead/GeV, ptSumTrans_Kaon / (GeV * (8.0 * PI/3.0)), weight); _h_ptsumTrans_Lambda->fill(pTlead/GeV, ptSumTrans_Lambda / (GeV * (8.0 * PI/3.0)), weight); } void finalize() { } private: Profile1DPtr _h_nTrans_Kaon; Profile1DPtr _h_nTrans_Lambda; Profile1DPtr _h_ptsumTrans_Kaon; Profile1DPtr _h_ptsumTrans_Lambda; }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(CMS_2012_PAS_QCD_11_010); } diff --git a/analyses/pluginCMS/CMS_2013_I1256943.cc b/analyses/pluginCMS/CMS_2013_I1256943.cc --- a/analyses/pluginCMS/CMS_2013_I1256943.cc +++ b/analyses/pluginCMS/CMS_2013_I1256943.cc @@ -1,194 +1,194 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/ZFinder.hh" #include "Rivet/Projections/FinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// CMS cross-section and angular correlations in Z boson + b-hadrons events at 7 TeV class CMS_2013_I1256943 : public Analysis { public: /// Constructor DEFAULT_RIVET_ANALYSIS_CTOR(CMS_2013_I1256943); /// Add projections and book histograms void init() { _sumW = 0; _sumW50 = 0; _sumWpT = 0; FinalState fs(Cuts::abseta < 2.4 && Cuts::pT > 20*GeV); declare(fs, "FS"); - UnstableFinalState ufs(Cuts::abseta < 2 && Cuts::pT > 15*GeV); + UnstableParticles ufs(Cuts::abseta < 2 && Cuts::pT > 15*GeV); declare(ufs, "UFS"); Cut zetacut = Cuts::abseta < 2.4; ZFinder zfindermu(fs, zetacut, PID::MUON, 81.0*GeV, 101.0*GeV, 0.1, ZFinder::NOCLUSTER, ZFinder::TRACK, 91.2*GeV); declare(zfindermu, "ZFinderMu"); ZFinder zfinderel(fs, zetacut, PID::ELECTRON, 81.0*GeV, 101.0*GeV, 0.1, ZFinder::NOCLUSTER, ZFinder::TRACK, 91.2*GeV); declare(zfinderel, "ZFinderEl"); // Histograms in non-boosted region of Z pT _h_dR_BB = bookHisto1D(1, 1, 1); _h_dphi_BB = bookHisto1D(2, 1, 1); _h_min_dR_ZB = bookHisto1D(3, 1, 1); _h_A_ZBB = bookHisto1D(4, 1, 1); // Histograms in boosted region of Z pT (pT > 50 GeV) _h_dR_BB_boost = bookHisto1D(5, 1, 1); _h_dphi_BB_boost = bookHisto1D(6, 1, 1); _h_min_dR_ZB_boost = bookHisto1D(7, 1, 1); _h_A_ZBB_boost = bookHisto1D(8, 1, 1); _h_min_ZpT = bookHisto1D(9,1,1); } /// Do the analysis void analyze(const Event& e) { - const UnstableFinalState& ufs = apply(e, "UFS"); + const UnstableParticles& ufs = apply(e, "UFS"); const ZFinder& zfindermu = apply(e, "ZFinderMu"); const ZFinder& zfinderel = apply(e, "ZFinderEl"); // Look for a Z --> mu+ mu- event in the final state if (zfindermu.empty() && zfinderel.empty()) vetoEvent; const Particles& z = !zfindermu.empty() ? zfindermu.bosons() : zfinderel.bosons(); const bool is_boosted = ( z[0].pT() > 50*GeV ); vector Bmom; // Loop over the unstable particles for (const Particle& p : ufs.particles()) { const PdgId pid = p.pid(); // Look for particles with a bottom quark if (PID::hasBottom(pid)) { bool good_B = false; const GenParticle* pgen = p.genParticle(); const GenVertex* vgen = pgen -> end_vertex(); // Loop over the decay products of each unstable particle, looking for a b-hadron pair /// @todo Avoid HepMC API if (vgen) { for (GenVertex::particles_out_const_iterator it = vgen->particles_out_const_begin(); it != vgen->particles_out_const_end(); ++it) { // If the particle produced has a bottom quark do not count it and go to the next loop cycle. if (!( PID::hasBottom( (*it)->pdg_id() ) ) ) { good_B = true; continue; } else { good_B = false; break; } } if (good_B ) Bmom.push_back( p.momentum() ); } else continue; } } // If there are more than two B's in the final state veto the event if (Bmom.size() != 2 ) { Bmom.clear(); vetoEvent; } // Calculate the observables double dphiBB = deltaPhi(Bmom[0], Bmom[1]); double dRBB = deltaR(Bmom[0], Bmom[1]); const FourMomentum& pZ = z[0].momentum(); const bool closest_B = ( deltaR(pZ, Bmom[0]) < deltaR(pZ, Bmom[1]) ); const double mindR_ZB = closest_B ? deltaR(pZ, Bmom[0]) : deltaR(pZ, Bmom[1]); const double maxdR_ZB = closest_B ? deltaR(pZ, Bmom[1]) : deltaR(pZ, Bmom[0]); const double AZBB = ( maxdR_ZB - mindR_ZB ) / ( maxdR_ZB + mindR_ZB ); // Get event weight for histogramming const double weight = e.weight(); // Fill the histograms in the non-boosted region _h_dphi_BB->fill(dphiBB, weight); _h_dR_BB->fill(dRBB, weight); _h_min_dR_ZB->fill(mindR_ZB, weight); _h_A_ZBB->fill(AZBB, weight); _sumW += weight; _sumWpT += weight; // Fill the histograms in the boosted region if (is_boosted) { _sumW50 += weight; _h_dphi_BB_boost->fill(dphiBB, weight); _h_dR_BB_boost->fill(dRBB, weight); _h_min_dR_ZB_boost->fill(mindR_ZB, weight); _h_A_ZBB_boost->fill(AZBB, weight); } // Fill Z pT (cumulative) histogram _h_min_ZpT->fill(0, weight); if (pZ.pT() > 40*GeV ) { _sumWpT += weight; _h_min_ZpT->fill(40, weight); } if (pZ.pT() > 80*GeV ) { _sumWpT += weight; _h_min_ZpT->fill(80, weight); } if (pZ.pT() > 120*GeV ) { _sumWpT += weight; _h_min_ZpT->fill(120, weight); } Bmom.clear(); } /// Finalize void finalize() { // Normalize excluding overflow bins (d'oh) normalize(_h_dR_BB, 0.7*crossSection()*_sumW/sumOfWeights(), false); // d01-x01-y01 normalize(_h_dphi_BB, 0.53*crossSection()*_sumW/sumOfWeights(), false); // d02-x01-y01 normalize(_h_min_dR_ZB, 0.84*crossSection()*_sumW/sumOfWeights(), false); // d03-x01-y01 normalize(_h_A_ZBB, 0.2*crossSection()*_sumW/sumOfWeights(), false); // d04-x01-y01 normalize(_h_dR_BB_boost, 0.84*crossSection()*_sumW50/sumOfWeights(), false); // d05-x01-y01 normalize(_h_dphi_BB_boost, 0.63*crossSection()*_sumW50/sumOfWeights(), false); // d06-x01-y01 normalize(_h_min_dR_ZB_boost, 1*crossSection()*_sumW50/sumOfWeights(), false); // d07-x01-y01 normalize(_h_A_ZBB_boost, 0.25*crossSection()*_sumW50/sumOfWeights(), false); // d08-x01-y01 normalize(_h_min_ZpT, 40*crossSection()*_sumWpT/sumOfWeights(), false); // d09-x01-y01 } private: /// @name Weight counters //@{ double _sumW, _sumW50, _sumWpT; //@} /// @name Histograms //@{ Histo1DPtr _h_dphi_BB, _h_dR_BB, _h_min_dR_ZB, _h_A_ZBB; Histo1DPtr _h_dphi_BB_boost, _h_dR_BB_boost, _h_min_dR_ZB_boost, _h_A_ZBB_boost, _h_min_ZpT; //@} }; // Hook for the plugin system DECLARE_RIVET_PLUGIN(CMS_2013_I1256943); } diff --git a/analyses/pluginCMS/CMS_2016_I1486238.cc b/analyses/pluginCMS/CMS_2016_I1486238.cc --- a/analyses/pluginCMS/CMS_2016_I1486238.cc +++ b/analyses/pluginCMS/CMS_2016_I1486238.cc @@ -1,124 +1,124 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/InitialQuarks.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" #include "Rivet/Projections/FastJets.hh" namespace Rivet { /// Studies of 2 b-jet + 2 jet production in proton-proton collisions at 7 TeV class CMS_2016_I1486238 : public Analysis { public: /// Constructor DEFAULT_RIVET_ANALYSIS_CTOR(CMS_2016_I1486238); /// @name Analysis methods //@{ /// Book histograms and initialise projections before the run void init() { FastJets akt(FinalState(), FastJets::ANTIKT, 0.5); addProjection(akt, "antikT"); _h_Deltaphi_newway = bookHisto1D(1,1,1); _h_deltaphiafterlight = bookHisto1D(9,1,1); _h_SumPLight = bookHisto1D(5,1,1); _h_LeadingBJetpt = bookHisto1D(11,1,1); _h_SubleadingBJetpt = bookHisto1D(15,1,1); _h_LeadingLightJetpt = bookHisto1D(13,1,1); _h_SubleadingLightJetpt = bookHisto1D(17,1,1); _h_LeadingBJeteta = bookHisto1D(10,1,1); _h_SubleadingBJeteta = bookHisto1D(14,1,1); _h_LeadingLightJeteta = bookHisto1D(12,1,1); _h_SubleadingLightJeteta = bookHisto1D(16,1,1); } /// Perform the per-event analysis void analyze(const Event& event) { const Jets& jets = apply(event, "antikT").jetsByPt(Cuts::absrap < 4.7 && Cuts::pT > 20*GeV); if (jets.size() < 4) vetoEvent; // Initial quarks /// @note Quark-level tagging... Particles bquarks; for (const GenParticle* p : particles(event.genEvent())) { if (abs(p->pdg_id()) == PID::BQUARK) bquarks += Particle(p); } Jets bjets, ljets; for (const Jet& j : jets) { const bool btag = any(bquarks, deltaRLess(j, 0.3)); // for (const Particle& b : bquarks) if (deltaR(j, b) < 0.3) btag = true; (btag && j.abseta() < 2.4 ? bjets : ljets).push_back(j); } // Fill histograms const double weight = event.weight(); if (bjets.size() >= 2 && ljets.size() >= 2) { _h_LeadingBJetpt->fill(bjets[0].pT()/GeV, weight); _h_SubleadingBJetpt->fill(bjets[1].pT()/GeV, weight); _h_LeadingLightJetpt->fill(ljets[0].pT()/GeV, weight); _h_SubleadingLightJetpt->fill(ljets[1].pT()/GeV, weight); // _h_LeadingBJeteta->fill(bjets[0].eta(), weight); _h_SubleadingBJeteta->fill(bjets[1].eta(), weight); _h_LeadingLightJeteta->fill(ljets[0].eta(), weight); _h_SubleadingLightJeteta->fill(ljets[1].eta(), weight); const double lightdphi = deltaPhi(ljets[0], ljets[1]); _h_deltaphiafterlight->fill(lightdphi, weight); const double vecsumlightjets = sqrt(sqr(ljets[0].px()+ljets[1].px()) + sqr(ljets[0].py()+ljets[1].py())); //< @todo Just (lj0+lj1).pT()? Or use add_quad const double term2 = vecsumlightjets/(sqrt(sqr(ljets[0].px()) + sqr(ljets[0].py())) + sqrt(sqr(ljets[1].px()) + sqr(ljets[1].py()))); //< @todo lj0.pT() + lj1.pT()? Or add_quad _h_SumPLight->fill(term2, weight); const double pxBsyst2 = bjets[0].px()+bjets[1].px(); // @todo (bj0+bj1).px() const double pyBsyst2 = bjets[0].py()+bjets[1].py(); // @todo (bj0+bj1).py() const double pxJetssyst2 = ljets[0].px()+ljets[1].px(); // @todo (lj0+lj1).px() const double pyJetssyst2 = ljets[0].py()+ljets[1].py(); // @todo (lj0+lj1).py() const double modulusB2 = sqrt(sqr(pxBsyst2)+sqr(pyBsyst2)); //< @todo add_quad const double modulusJets2 = sqrt(sqr(pxJetssyst2)+sqr(pyJetssyst2)); //< @todo add_quad const double cosphiBsyst2 = pxBsyst2/modulusB2; const double cosphiJetssyst2 = pxJetssyst2/modulusJets2; const double phiBsyst2 = ((pyBsyst2 > 0) ? 1 : -1) * acos(cosphiBsyst2); //< @todo sign(pyBsyst2) const double phiJetssyst2 = sign(pyJetssyst2) * acos(cosphiJetssyst2); const double Dphi2 = deltaPhi(phiBsyst2, phiJetssyst2); _h_Deltaphi_newway->fill(Dphi2,weight); } } /// Normalise histograms etc., after the run void finalize() { const double invlumi = crossSection()/picobarn/sumOfWeights(); normalize({_h_SumPLight, _h_deltaphiafterlight, _h_Deltaphi_newway}); scale({_h_LeadingLightJetpt, _h_SubleadingLightJetpt, _h_LeadingBJetpt, _h_SubleadingBJetpt}, invlumi); scale({_h_LeadingLightJeteta, _h_SubleadingLightJeteta, _h_LeadingBJeteta, _h_SubleadingBJeteta}, invlumi); } //@} private: /// @name Histograms //@{ Histo1DPtr _h_deltaphiafterlight, _h_Deltaphi_newway, _h_SumPLight; Histo1DPtr _h_LeadingBJetpt, _h_SubleadingBJetpt, _h_LeadingLightJetpt, _h_SubleadingLightJetpt; Histo1DPtr _h_LeadingBJeteta, _h_SubleadingBJeteta, _h_LeadingLightJeteta, _h_SubleadingLightJeteta; }; // Hook for the plugin system DECLARE_RIVET_PLUGIN(CMS_2016_I1486238); } diff --git a/analyses/pluginHERA/H1_1994_S2919893.cc b/analyses/pluginHERA/H1_1994_S2919893.cc --- a/analyses/pluginHERA/H1_1994_S2919893.cc +++ b/analyses/pluginHERA/H1_1994_S2919893.cc @@ -1,226 +1,228 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Math/Constants.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/DISKinematics.hh" namespace Rivet { /// @brief H1 energy flow and charged particle spectra /// @author Peter Richardson /// Based on the equivalent HZTool analysis class H1_1994_S2919893 : public Analysis { public: /// Constructor H1_1994_S2919893() : Analysis("H1_1994_S2919893") { // Initialise member variables _w77 = make_pair(0.0, 0.0); _w122 = make_pair(0.0, 0.0); _w169 = make_pair(0.0, 0.0); _w117 = make_pair(0.0, 0.0); _wEnergy = make_pair(0.0, 0.0); } /// @name Analysis methods //@{ /// Initialise projections and histograms void init() { // Projections declare(DISLepton(), "Lepton"); declare(DISKinematics(), "Kinematics"); declare(FinalState(), "FS"); // Histos _histEnergyFlowLowX = bookHisto1D(1, 1, 1); _histEnergyFlowHighX = bookHisto1D(1, 1, 2); _histEECLowX = bookHisto1D(2, 1, 1); _histEECHighX = bookHisto1D(2, 1, 2); _histSpectraW77 = bookHisto1D(3, 1, 1); _histSpectraW122 = bookHisto1D(3, 1, 2); _histSpectraW169 = bookHisto1D(3, 1, 3); _histSpectraW117 = bookHisto1D(3, 1, 4); _histPT2 = bookProfile1D(4, 1, 1); } /// Analyse each event void analyze(const Event& event) { // Get the DIS kinematics const DISKinematics& dk = apply(event, "Kinematics"); + if ( dk.failed() ) vetoEvent; const double x = dk.x(); const double w2 = dk.W2(); const double w = sqrt(w2); // Momentum of the scattered lepton const DISLepton& dl = apply(event,"Lepton"); + if ( dl.failed() ) return; const FourMomentum leptonMom = dl.out(); const double ptel = leptonMom.pT(); const double enel = leptonMom.E(); const double thel = leptonMom.angle(dk.beamHadron().mom())/degree; // Extract the particles other than the lepton const FinalState& fs = apply(event, "FS"); Particles particles; particles.reserve(fs.particles().size()); const GenParticle* dislepGP = dl.out().genParticle(); foreach (const Particle& p, fs.particles()) { const GenParticle* loopGP = p.genParticle(); if (loopGP == dislepGP) continue; particles.push_back(p); } // Cut on the forward energy double efwd = 0.0; foreach (const Particle& p, particles) { const double th = p.angle(dk.beamHadron())/degree; if (inRange(th, 4.4, 15)) efwd += p.E(); } // Apply the cuts // Lepton energy and angle, w2 and forward energy MSG_DEBUG("enel/GeV = " << enel/GeV << ", thel = " << thel << ", w2 = " << w2 << ", efwd/GeV = " << efwd/GeV); bool cut = enel/GeV > 14. && thel > 157. && thel < 172.5 && w2 >= 3000. && efwd/GeV > 0.5; if (!cut) vetoEvent; // Weight of the event const double weight = event.weight(); (x < 1e-3 ? _wEnergy.first : _wEnergy.second) += weight; // Boost to hadronic CM const LorentzTransform hcmboost = dk.boostHCM(); // Loop over the particles long ncharged(0); for (size_t ip1 = 0; ip1 < particles.size(); ++ip1) { const Particle& p = particles[ip1]; const double th = p.angle(dk.beamHadron().momentum()) / degree; // Boost momentum to lab const FourMomentum hcmMom = hcmboost.transform(p.momentum()); // Angular cut if (th <= 4.4) continue; // Energy flow histogram const double et = fabs(hcmMom.Et()); const double eta = hcmMom.eta(); (x < 1e-3 ? _histEnergyFlowLowX : _histEnergyFlowHighX)->fill(eta, et*weight); if (PID::threeCharge(p.pid()) != 0) { /// @todo Use units in w comparisons... what are the units? if (w > 50. && w <= 200.) { double xf= 2 * hcmMom.z() / w; double pt2 = hcmMom.pT2(); if (w > 50. && w <= 100.) { _histSpectraW77 ->fill(xf, weight); } else if (w > 100. && w <= 150.) { _histSpectraW122->fill(xf, weight); } else if (w > 150. && w <= 200.) { _histSpectraW169->fill(xf, weight); } _histSpectraW117->fill(xf, weight); /// @todo Is this profile meant to be filled with 2 weight factors? _histPT2->fill(xf, pt2*weight/GeV2, weight); ++ncharged; } } // Energy-energy correlation if (th <= 8.) continue; double phi1 = p.phi(ZERO_2PI); double eta1 = p.eta(); double et1 = fabs(p.momentum().Et()); for (size_t ip2 = ip1+1; ip2 < particles.size(); ++ip2) { const Particle& p2 = particles[ip2]; //double th2 = beamAngle(p2.momentum(), order); double th2 = p2.angle(dk.beamHadron().momentum()) / degree; if (th2 <= 8.) continue; double phi2 = p2.phi(ZERO_2PI); /// @todo Use angle function double deltaphi = phi1 - phi2; if (fabs(deltaphi) > PI) deltaphi = fabs(fabs(deltaphi) - TWOPI); double eta2 = p2.eta(); double omega = sqrt(sqr(eta1-eta2) + sqr(deltaphi)); double et2 = fabs(p2.momentum().Et()); double wt = et1*et2 / sqr(ptel) * weight; (x < 1e-3 ? _histEECLowX : _histEECHighX)->fill(omega, wt); } } // Factors for normalization if (w > 50. && w <= 200.) { if (w <= 100.) { _w77.first += ncharged*weight; _w77.second += weight; } else if (w <= 150.) { _w122.first += ncharged*weight; _w122.second += weight; } else { _w169.first += ncharged*weight; _w169.second += weight; } _w117.first += ncharged*weight; _w117.second += weight; } } // Normalize inclusive single particle distributions to the average number of charged particles per event. void finalize() { normalize(_histSpectraW77, _w77.first/_w77.second); normalize(_histSpectraW122, _w122.first/_w122.second); normalize(_histSpectraW169, _w169.first/_w169.second); normalize(_histSpectraW117, _w117.first/_w117.second); scale(_histEnergyFlowLowX , 1./_wEnergy.first ); scale(_histEnergyFlowHighX, 1./_wEnergy.second); scale(_histEECLowX , 1./_wEnergy.first ); scale(_histEECHighX, 1./_wEnergy.second); } //@} private: /// Polar angle with right direction of the beam inline double beamAngle(const FourVector& v, bool order) { double thel = v.polarAngle()/degree; if (thel < 0) thel += 180.; if (!order) thel = 180 - thel; return thel; } /// @name Histograms //@{ Histo1DPtr _histEnergyFlowLowX, _histEnergyFlowHighX; Histo1DPtr _histEECLowX, _histEECHighX; Histo1DPtr _histSpectraW77, _histSpectraW122, _histSpectraW169, _histSpectraW117; Profile1DPtr _histPT2; //@} /// @name Storage of weights to calculate averages for normalisation //@{ pair _w77, _w122, _w169, _w117, _wEnergy; //@} }; DECLARE_RIVET_PLUGIN(H1_1994_S2919893); } diff --git a/analyses/pluginHERA/H1_1995_S3167097.cc b/analyses/pluginHERA/H1_1995_S3167097.cc --- a/analyses/pluginHERA/H1_1995_S3167097.cc +++ b/analyses/pluginHERA/H1_1995_S3167097.cc @@ -1,120 +1,122 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/DISFinalState.hh" #include "Rivet/Projections/CentralEtHCM.hh" namespace Rivet { /// H1 energy flow in DIS /// /// @todo Make histograms match those in HepData and use autobooking /// /// @author Leif Lonnblad /// @author Andy Buckley class H1_1995_S3167097 : public Analysis { public: /// Constructor H1_1995_S3167097() : Analysis("H1_1995_S3167097") { } /// @name Analysis methods //@{ void init() { // Projections const DISKinematics& diskin = declare(DISKinematics(), "Kinematics"); const DISFinalState& fshcm = declare(DISFinalState(diskin, DISFinalState::HCM), "FS"); declare(CentralEtHCM(fshcm), "Y1HCM"); // Histograms /// @todo Convert to use autobooking and correspond to HepData data tables _sumw.resize(9); _hEtFlow.resize(9); for (size_t i = 0; i < 9; ++i) _hEtFlow[i] = bookHisto1D(to_str(i), 24, -6, 6); _tmphAvEt = Histo1D(9, 1.0, 10.0); _tmphAvX = Histo1D(9, 1.0, 10.0); _tmphAvQ2 = Histo1D(9, 1.0, 10.0); _tmphN = Histo1D(9, 1.0, 10.0); } /// Calculate the bin number from the DISKinematics projection /// @todo Convert to use a HEPUtils Binning1D size_t _getbin(const DISKinematics& dk) { if (inRange(dk.Q2()/GeV2, 5.0, 10.0)) { if (inRange(dk.x(), 1e-4, 2e-4)) return 0; if (inRange(dk.x(), 2e-4, 5e-4) && dk.Q2() > 6.0*GeV2) return 1; } else if (inRange(dk.Q2()/GeV2, 10.0, 20.0)) { if (inRange(dk.x(), 2e-4, 5e-4)) return 2; if (inRange(dk.x(), 5e-4, 8e-4)) return 3; if (inRange(dk.x(), 8e-4, 1.5e-3)) return 4; if (inRange(dk.x(), 1.5e-3, 4e-3)) return 5; } else if (inRange(dk.Q2()/GeV2, 20.0, 50.0)) { if (inRange(dk.x(), 5e-4, 1.4e-3)) return 6; if (inRange(dk.x(), 1.4e-3, 3e-3)) return 7; if (inRange(dk.x(), 3e-3, 1e-2)) return 8; } return -1; } void analyze(const Event& event) { const FinalState& fs = apply(event, "FS"); const DISKinematics& dk = apply(event, "Kinematics"); + if ( dk.failed() ) vetoEvent; const CentralEtHCM& y1 = apply(event, "Y1HCM"); + if ( y1.failed() ) vetoEvent; const int ibin = _getbin(dk); if (ibin < 0) vetoEvent; const double weight = event.weight(); _sumw[ibin] += weight; for (size_t i = 0, N = fs.particles().size(); i < N; ++i) { const double rap = fs.particles()[i].rapidity(); const double et = fs.particles()[i].Et(); _hEtFlow[ibin]->fill(rap, weight * et/GeV); } /// @todo Use fillBin? _tmphAvEt.fill(ibin + 1.5, weight * y1.sumEt()/GeV); _tmphAvX.fill(ibin + 1.5, weight * dk.x()); _tmphAvQ2.fill(ibin + 1.5, weight * dk.Q2()/GeV2); _tmphN.fill(ibin + 1.5, weight); } void finalize() { for (size_t ibin = 0; ibin < 9; ++ibin) scale(_hEtFlow[ibin], 0.5/_sumw[ibin]); /// @todo Improve this! addAnalysisObject(make_shared(_tmphAvEt/_tmphN, histoPath("21")) ); addAnalysisObject(make_shared(_tmphAvX/_tmphN, histoPath("22")) ); addAnalysisObject(make_shared(_tmphAvQ2/_tmphN, histoPath("23")) ); } //@} private: /// Histograms for the \f$ E_T \f$ flow vector _hEtFlow; /// Temporary histograms for averages in different kinematical bins. Histo1D _tmphAvEt, _tmphAvX, _tmphAvQ2, _tmphN; /// Weights counters for each kinematic bin vector _sumw; }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(H1_1995_S3167097); } diff --git a/analyses/pluginHERA/H1_2000_S4129130.cc b/analyses/pluginHERA/H1_2000_S4129130.cc --- a/analyses/pluginHERA/H1_2000_S4129130.cc +++ b/analyses/pluginHERA/H1_2000_S4129130.cc @@ -1,259 +1,261 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Math/Constants.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/DISKinematics.hh" namespace Rivet { /// @brief H1 energy flow and charged particle spectra /// /// @author Peter Richardson /// /// Based on the HZTOOL analysis HZ99091 class H1_2000_S4129130 : public Analysis { public: /// Constructor H1_2000_S4129130() : Analysis("H1_2000_S4129130") { } /// @name Analysis methods //@{ /// Initialise projections and histograms void init() { // Projections declare(DISLepton(), "Lepton"); declare(DISKinematics(), "Kinematics"); declare(FinalState(), "FS"); // Histos Histo1DPtr h; // Histograms and weight vectors for low Q^2 a for (size_t ix = 0; ix < 17; ++ix) { h = bookHisto1D(ix+1, 1, 1); _histETLowQa.push_back(h); _weightETLowQa.push_back(0.); } // Histograms and weight vectors for high Q^2 a for (size_t ix = 0; ix < 7; ++ix) { h = bookHisto1D(ix+18, 1, 1); _histETHighQa.push_back(h); _weightETHighQa.push_back(0.); } // Histograms and weight vectors for low Q^2 b for (size_t ix = 0; ix < 5; ++ix) { h = bookHisto1D(ix+25, 1, 1); _histETLowQb.push_back(h); _weightETLowQb.push_back(0.); } // Histograms and weight vectors for high Q^2 b for (size_t ix = 0; ix < 3; ++ix) { h = bookHisto1D(30+ix, 1, 1); _histETHighQb.push_back(h); _weightETHighQb.push_back(0.0); } // Histograms for the averages _histAverETCentral = bookProfile1D(33, 1, 1); _histAverETFrag = bookProfile1D(34, 1, 1); } /// Analyze each event void analyze(const Event& event) { // DIS kinematics const DISKinematics& dk = apply(event, "Kinematics"); + if ( dk.failed() ) vetoEvent; double q2 = dk.Q2(); double x = dk.x(); double y = dk.y(); double w2 = dk.W2(); // Kinematics of the scattered lepton const DISLepton& dl = apply(event,"Lepton"); + if ( dl.failed() ) return; const FourMomentum leptonMom = dl.out(); const double enel = leptonMom.E(); const double thel = 180 - leptonMom.angle(dl.in().mom())/degree; // Extract the particles other than the lepton const FinalState& fs = apply(event, "FS"); Particles particles; particles.reserve(fs.size()); const GenParticle* dislepGP = dl.out().genParticle(); ///< @todo Is the GenParticle stuff necessary? (Not included in Particle::==?) foreach (const Particle& p, fs.particles()) { const GenParticle* loopGP = p.genParticle(); if (loopGP == dislepGP) continue; particles.push_back(p); } // Cut on the forward energy double efwd = 0.; foreach (const Particle& p, particles) { const double th = 180 - p.angle(dl.in())/degree; if (inRange(th, 4.4, 15.0)) efwd += p.E(); } // There are four possible selections for events bool evcut[4]; // Low Q2 selection a evcut[0] = enel/GeV > 12. && w2 >= 4400.*GeV2 && efwd/GeV > 0.5 && inRange(thel,157.,176.); // Low Q2 selection b evcut[1] = enel/GeV > 12. && inRange(y,0.3,0.5); // High Q2 selection a evcut[2] = inRange(thel,12.,150.) && inRange(y,0.05,0.6) && w2 >= 4400.*GeV2 && efwd > 0.5; // High Q2 selection b evcut[3] = inRange(thel,12.,150.) && inRange(y,0.05,0.6) && inRange(w2,27110.*GeV2,45182.*GeV2); // Veto if fails all cuts /// @todo Can we use all()? if (! (evcut[0] || evcut[1] || evcut[2] || evcut[3]) ) vetoEvent; // Find the bins int bin[4] = {-1,-1,-1,-1}; // For the low Q2 selection a) if (q2 > 2.5*GeV2 && q2 <= 5.*GeV2) { if (x > 0.00005 && x <= 0.0001 ) bin[0] = 0; if (x > 0.0001 && x <= 0.0002 ) bin[0] = 1; if (x > 0.0002 && x <= 0.00035) bin[0] = 2; if (x > 0.00035 && x <= 0.0010 ) bin[0] = 3; } else if (q2 > 5.*GeV2 && q2 <= 10.*GeV2) { if (x > 0.0001 && x <= 0.0002 ) bin[0] = 4; if (x > 0.0002 && x <= 0.00035) bin[0] = 5; if (x > 0.00035 && x <= 0.0007 ) bin[0] = 6; if (x > 0.0007 && x <= 0.0020 ) bin[0] = 7; } else if (q2 > 10.*GeV2 && q2 <= 20.*GeV2) { if (x > 0.0002 && x <= 0.0005) bin[0] = 8; if (x > 0.0005 && x <= 0.0008) bin[0] = 9; if (x > 0.0008 && x <= 0.0015) bin[0] = 10; if (x > 0.0015 && x <= 0.040 ) bin[0] = 11; } else if (q2 > 20.*GeV2 && q2 <= 50.*GeV2) { if (x > 0.0005 && x <= 0.0014) bin[0] = 12; if (x > 0.0014 && x <= 0.0030) bin[0] = 13; if (x > 0.0030 && x <= 0.0100) bin[0] = 14; } else if (q2 > 50.*GeV2 && q2 <= 100.*GeV2) { if (x >0.0008 && x <= 0.0030) bin[0] = 15; if (x >0.0030 && x <= 0.0200) bin[0] = 16; } // check in one of the bins evcut[0] &= bin[0] >= 0; // For the low Q2 selection b) if (q2 > 2.5*GeV2 && q2 <= 5. *GeV2) bin[1] = 0; if (q2 > 5. *GeV2 && q2 <= 10. *GeV2) bin[1] = 1; if (q2 > 10.*GeV2 && q2 <= 20. *GeV2) bin[1] = 2; if (q2 > 20.*GeV2 && q2 <= 50. *GeV2) bin[1] = 3; if (q2 > 50.*GeV2 && q2 <= 100.*GeV2) bin[1] = 4; // check in one of the bins evcut[1] &= bin[1] >= 0; // for the high Q2 selection a) if (q2 > 100.*GeV2 && q2 <= 400.*GeV2) { if (x > 0.00251 && x <= 0.00631) bin[2] = 0; if (x > 0.00631 && x <= 0.0158 ) bin[2] = 1; if (x > 0.0158 && x <= 0.0398 ) bin[2] = 2; } else if (q2 > 400.*GeV2 && q2 <= 1100.*GeV2) { if (x > 0.00631 && x <= 0.0158 ) bin[2] = 3; if (x > 0.0158 && x <= 0.0398 ) bin[2] = 4; if (x > 0.0398 && x <= 1. ) bin[2] = 5; } else if (q2 > 1100.*GeV2 && q2 <= 100000.*GeV2) { if (x > 0. && x <= 1.) bin[2] = 6; } // check in one of the bins evcut[2] &= bin[2] >= 0; // for the high Q2 selection b) if (q2 > 100.*GeV2 && q2 <= 220.*GeV2) bin[3] = 0; else if (q2 > 220.*GeV2 && q2 <= 400.*GeV2) bin[3] = 1; else if (q2 > 400. ) bin[3] = 2; // check in one of*GeV the bins evcut[3] &= bin[3] >= 0; // Veto if fails all cuts after bin selection /// @todo Can we use all()? if (! (evcut[0] || evcut[1] || evcut[2] || evcut[3])) vetoEvent; // Increment the count for normalisation const double weight = event.weight(); if (evcut[0]) _weightETLowQa [bin[0]] += weight; if (evcut[1]) _weightETLowQb [bin[1]] += weight; if (evcut[2]) _weightETHighQa[bin[2]] += weight; if (evcut[3]) _weightETHighQb[bin[3]] += weight; // Boost to hadronic CoM const LorentzTransform hcmboost = dk.boostHCM(); // Loop over the particles double etcent = 0; double etfrag = 0; foreach (const Particle& p, particles) { // Boost momentum to CMS const FourMomentum hcmMom = hcmboost.transform(p.momentum()); double et = fabs(hcmMom.Et()); double eta = hcmMom.eta(); // Averages in central and forward region if (fabs(eta) < .5 ) etcent += et; if (eta > 2 && eta <= 3.) etfrag += et; // Histograms of Et flow if (evcut[0]) _histETLowQa [bin[0]]->fill(eta, et*weight); if (evcut[1]) _histETLowQb [bin[1]]->fill(eta, et*weight); if (evcut[2]) _histETHighQa[bin[2]]->fill(eta, et*weight); if (evcut[3]) _histETHighQb[bin[3]]->fill(eta, et*weight); } // Fill histograms for the average quantities if (evcut[1] || evcut[3]) { _histAverETCentral->fill(q2, etcent, weight); _histAverETFrag ->fill(q2, etfrag, weight); } } // Finalize void finalize() { // Normalization of the Et distributions /// @todo Simplify by using normalize() instead? Are all these being normalized to area=1? for (size_t ix = 0; ix < 17; ++ix) if (_weightETLowQa[ix] != 0) scale(_histETLowQa[ix], 1/_weightETLowQa[ix]); for (size_t ix = 0; ix < 7; ++ix) if (_weightETHighQa[ix] != 0) scale(_histETHighQa[ix], 1/_weightETHighQa[ix]); for (size_t ix = 0; ix < 5; ++ix) if (_weightETLowQb[ix] != 0) scale(_histETLowQb[ix], 1/_weightETLowQb[ix]); for (size_t ix = 0; ix < 3; ++ix) if (_weightETHighQb[ix] != 0) scale(_histETHighQb[ix], 1/_weightETHighQb[ix]); } //@} private: /// @name Histograms //@{ vector _histETLowQa; vector _histETHighQa; vector _histETLowQb; vector _histETHighQb; Profile1DPtr _histAverETCentral; Profile1DPtr _histAverETFrag; //@} /// @name storage of weights for normalisation //@{ vector _weightETLowQa; vector _weightETHighQa; vector _weightETLowQb; vector _weightETHighQb; //@} }; DECLARE_RIVET_PLUGIN(H1_2000_S4129130); } diff --git a/analyses/pluginHERA/H1_2007_I746380.cc b/analyses/pluginHERA/H1_2007_I746380.cc new file mode 100644 --- /dev/null +++ b/analyses/pluginHERA/H1_2007_I746380.cc @@ -0,0 +1,545 @@ +// -*- C++ -*- +#include "Rivet/Analysis.hh" +#include "Rivet/Projections/Beam.hh" +#include "Rivet/Projections/FinalState.hh" +#include "Rivet/Projections/DISKinematics.hh" +#include "Rivet/Projections/DISFinalState.hh" +#include "Rivet/Projections/FastJets.hh" + +namespace Rivet { + +namespace H1_2007_I746380_PROJECTIONS { + + /// Projection to find the largest gaps and the masses of the two + /// systems separated by the gap. Based on the HZTools gap-finding + /// method (hzhadgap.F). Note that gaps are found in the HCM frame. + /// + /// @author Christine O. Rasmussen. + class RapidityGap : public Projection { + + public: + + /// Type of DIS boost to apply + enum Frame { HCM, LAB, XCM }; + + RapidityGap() { + setName("RapidityGap"); + addProjection(DISKinematics(), "DISKIN"); + addProjection(DISFinalState(DISFinalState::HCM), "DISFS"); + } + + DEFAULT_RIVET_PROJ_CLONE(RapidityGap); + + const double M2X() const {return _M2X;} + const double M2Y() const {return _M2Y;} + const double t() const {return _t;} + const double gap() const {return _gap;} + const double gapUpp() const {return _gapUpp;} + const double gapLow() const {return _gapLow;} + const double EpPzX(Frame f) const { + if (f == LAB) return _ePpzX_LAB; + else if (f == XCM) return _ePpzX_XCM; + else return _ePpzX_HCM; + } + const double EmPzX(Frame f) const { + if (f == LAB) return _eMpzX_LAB; + else if (f == XCM) return _eMpzX_XCM; + else return _eMpzX_HCM; + } + const FourMomentum pX(Frame f) const { + if (f == LAB) return _momX_LAB; + else if (f == XCM) return _momX_XCM; + else return _momX_HCM; + } + const FourMomentum pY(Frame f) const { + if (f == LAB) return _momY_LAB; + else if (f == XCM) return _momY_XCM; + else return _momY_HCM; + } + const Particles& systemX(Frame f) const { + if (f == LAB) return _pX_LAB; + else if (f == XCM) return _pX_XCM; + else return _pX_HCM; + } + const Particles& systemY(Frame f) const { + if (f == LAB) return _pY_LAB; + else if (f == XCM) return _pY_XCM; + else return _pY_HCM; + } + + protected: + + virtual int compare(const Projection& p) const { + const RapidityGap& other = pcast(p); + return mkNamedPCmp(other, "DISKIN") || mkNamedPCmp(other, "DISFS"); + } + + virtual void project(const Event& e){ + const DISKinematics& dk = apply(e, "DISKIN"); + const Particles& p = apply(e, "DISFS").particles(cmpMomByEta); + findgap(p, dk); + } + + void clearAll(){ + _M2X = _M2Y = _t = _gap = 0.; + _gapUpp = _gapLow = -8.; + _ePpzX_HCM = _eMpzX_HCM =_ePpzX_LAB = _eMpzX_LAB = _ePpzX_XCM = _eMpzX_XCM = 0.; + _momX_HCM.setPE(0., 0., 0., 0.); + _momY_HCM.setPE(0., 0., 0., 0.); + _momX_XCM.setPE(0., 0., 0., 0.); + _momY_XCM.setPE(0., 0., 0., 0.); + _momX_LAB.setPE(0., 0., 0., 0.); + _momY_LAB.setPE(0., 0., 0., 0.); + _pX_HCM.clear(); + _pY_HCM.clear(); + _pX_XCM.clear(); + _pY_XCM.clear(); + _pX_LAB.clear(); + _pY_LAB.clear(); + } + + void findgap(const Particles& particles, const DISKinematics& diskin){ + + clearAll(); + + // Begin by finding largest gap and gapedges between all final + // state particles in HCM frame. + int nP = particles.size(); + int dir = diskin.orientation(); + for (int i = 0; i < nP-1; ++i){ + double tmpGap = abs(particles[i+1].eta() - particles[i].eta()); + if (tmpGap > _gap) { + _gap = tmpGap; + _gapLow = (dir > 0) ? particles[i].eta() : dir * particles[i+1].eta(); + _gapUpp = (dir > 0) ? particles[i+1].eta() : dir * particles[i].eta(); + } + } + + // Define the two systems X and Y. + Particles tmp_pX, tmp_pY; + foreach (const Particle& ip, particles) { + if (dir * ip.eta() > _gapLow) tmp_pX.push_back(ip); + else tmp_pY.push_back(ip); + } + + Particles pX, pY; + pX = (dir < 0) ? tmp_pY : tmp_pX; + pY = (dir < 0) ? tmp_pX : tmp_pY; + + // Find variables related to HCM frame. + // Note that HCM has photon along +z, as opposed to + // H1 where proton is along +z. This results in a sign change + // as compared to H1 papers! + + // X - side + FourMomentum momX; + foreach (const Particle& jp, pX) { + momX += jp.momentum(); + _ePpzX_HCM += jp.E() - jp.pz(); // Sign + => - + _eMpzX_HCM += jp.E() + jp.pz(); // Sign - => + + } + _momX_HCM = momX; + _pX_HCM = pX; + _M2X = _momX_HCM.mass2(); + + // Y - side + FourMomentum momY; + foreach (const Particle& kp, pY) momY += kp.momentum(); + _momY_HCM = momY; + _pY_HCM = pY; + _M2Y = _momY_HCM.mass2(); + + // Find variables related to LAB frame + const LorentzTransform hcmboost = diskin.boostHCM(); + const LorentzTransform hcminverse = hcmboost.inverse(); + _momX_LAB = hcminverse.transform(_momX_HCM); + _momY_LAB = hcminverse.transform(_momY_HCM); + + // Find momenta in XCM frame. Note that it is HCM frame that is + // boosted, resulting in a sign change later! + const bool doXCM = (momX.betaVec().mod2() < 1.); + if (doXCM) { + const LorentzTransform xcmboost = + LorentzTransform::mkFrameTransformFromBeta(momX.betaVec()); + _momX_XCM = xcmboost.transform(momX); + _momY_XCM = xcmboost.transform(momY); + } + + foreach (const Particle& jp, pX) { + // Boost from HCM to LAB. + FourMomentum lab = hcminverse.transform(jp.momentum()); + _ePpzX_LAB += lab.E() + dir * lab.pz(); + _eMpzX_LAB += lab.E() - dir * lab.pz(); + Particle plab = jp; + plab.setMomentum(lab); + _pX_LAB.push_back(plab); + // Set XCM. Note that since HCM frame is boosted to XCM frame, + // we have a sign change + if (doXCM) { + const LorentzTransform xcmboost = + LorentzTransform::mkFrameTransformFromBeta(_momX_HCM.betaVec()); + FourMomentum xcm = xcmboost.transform(jp.momentum()); + _ePpzX_XCM += xcm.E() - xcm.pz(); // Sign + => - + _eMpzX_XCM += xcm.E() + xcm.pz(); // Sign - => + + Particle pxcm = jp; + pxcm.setMomentum(xcm); + _pX_XCM.push_back(pxcm); + } + } + + foreach (const Particle& jp, pY) { + // Boost from HCM to LAB + FourMomentum lab = hcminverse.transform(jp.momentum()); + Particle plab = jp; + plab.setMomentum(lab); + _pY_LAB.push_back(plab); + // Boost from HCM to XCM + if (doXCM) { + const LorentzTransform xcmboost = + LorentzTransform::mkFrameTransformFromBeta(_momX_HCM.betaVec()); + FourMomentum xcm = xcmboost.transform(jp.momentum()); + Particle pxcm = jp; + pxcm.setMomentum(xcm); + _pY_XCM.push_back(pxcm); + } + } + + // Find t: Currently can only handle gap on proton side. + // @TODO: Expand to also handle gap on photon side + // Boost p from LAB to HCM frame to find t. + const FourMomentum proton = hcmboost.transform(diskin.beamHadron().momentum()); + FourMomentum pPom = proton - _momY_HCM; + _t = pPom * pPom; + + } + + private: + + double _M2X, _M2Y, _t; + double _gap, _gapUpp, _gapLow; + double _ePpzX_LAB, _eMpzX_LAB, _ePpzX_HCM, _eMpzX_HCM, _ePpzX_XCM, _eMpzX_XCM; + FourMomentum _momX_HCM, _momY_HCM,_momX_LAB, _momY_LAB, _momX_XCM, _momY_XCM; + Particles _pX_HCM, _pY_HCM, _pX_LAB, _pY_LAB, _pX_XCM, _pY_XCM; + + }; + + /// Projection to boost system X (photon+Pomeron) particles into its rest frame. + /// + /// @author Ilkka Helenius + class BoostedXSystem : public FinalState { + public: + + BoostedXSystem(const FinalState& fs) { + setName("BoostedXSystem"); + declare(fs,"FS"); + addProjection(RapidityGap(), "RAPGAP"); + } + + // Return the boost to XCM frame. + const LorentzTransform& boost() const { return _boost; } + + DEFAULT_RIVET_PROJ_CLONE(BoostedXSystem); + + protected: + + // Apply the projection on the supplied event. + void project(const Event& e){ + + const RapidityGap& rg = apply(e, "RAPGAP"); + + // Total momentum of the system X. + const FourMomentum pX = rg.pX(RapidityGap::HCM); + + // Reset the boost. Is there a separate method for this? + _boost = combine(_boost, _boost.inverse()); + + // Define boost only when numerically safe, otherwise negligible. + if (pX.betaVec().mod2() < 1.) + _boost = LorentzTransform::mkFrameTransformFromBeta(pX.betaVec()); + + // Boost the particles from system X. + _theParticles.clear(); + _theParticles.reserve(rg.systemX(RapidityGap::HCM).size()); + for (const Particle& p : rg.systemX(RapidityGap::HCM)) { + Particle temp = p; + temp.setMomentum(_boost.transform(temp.momentum())); + _theParticles.push_back(temp); + } + + } + + // Compare projections. + int compare(const Projection& p) const { + const BoostedXSystem& other = pcast(p); + return mkNamedPCmp(other, "RAPGAP") || mkNamedPCmp(other, "FS"); + } + + private: + + LorentzTransform _boost; + + }; + + } + + + + /// @brief H1 diffractive dijets + /// + /// Diffractive dijets H1 with 920 GeV p and 27.5 GeV e + /// Note tagged protons! + /// + /// @author Christine O. Rasmussen + class H1_2007_I746380 : public Analysis { + public: + + typedef H1_2007_I746380_PROJECTIONS::RapidityGap RapidityGap; + typedef H1_2007_I746380_PROJECTIONS::BoostedXSystem BoostedXSystem; + + /// Constructor + DEFAULT_RIVET_ANALYSIS_CTOR(H1_2007_I746380); + + /// @name Analysis methods + //@{ + + // Book projections and histograms + void init() { + + declare(DISKinematics(), "Kinematics"); + const DISFinalState& disfs = declare(DISFinalState(DISFinalState::HCM), "DISFS"); + const BoostedXSystem& disfsXcm = declare( BoostedXSystem(disfs), "BoostedXFS"); + declare(FastJets(disfsXcm, fastjet::JetAlgorithm::kt_algorithm, fastjet::RecombinationScheme::pt_scheme, 1.0, + JetAlg::ALL_MUONS, JetAlg::NO_INVISIBLES, nullptr), "DISFSJets"); + declare(RapidityGap(), "RapidityGap"); + + // Book histograms from REF data + _h_DIS_dsigdzPom = bookHisto1D(1, 1, 1); + _h_DIS_dsigdlogXpom = bookHisto1D(2, 1, 1); + _h_DIS_dsigdW = bookHisto1D(3, 1, 1); + _h_DIS_dsigdQ2 = bookHisto1D(4, 1, 1); + _h_DIS_dsigdEtJet1 = bookHisto1D(5, 1, 1); + _h_DIS_dsigdAvgEta = bookHisto1D(6, 1, 1); + _h_DIS_dsigdDeltaEta = bookHisto1D(7, 1, 1); + + _h_PHO_dsigdzPom = bookHisto1D(8, 1, 1); + _h_PHO_dsigdxGam = bookHisto1D(9, 1, 1); + _h_PHO_dsigdlogXpom = bookHisto1D(10, 1, 1); + _h_PHO_dsigdW = bookHisto1D(11, 1, 1); + _h_PHO_dsigdEtJet1 = bookHisto1D(12, 1, 1); + _h_PHO_dsigdAvgEta = bookHisto1D(13, 1, 1); + _h_PHO_dsigdDeltaEta = bookHisto1D(14, 1, 1); + _h_PHO_dsigdMjets = bookHisto1D(15, 1, 1); + + isDIS = false; + nVeto0 = 0; + nVeto1 = 0; + nVeto2 = 0; + nVeto3 = 0; + nVeto4 = 0; + nVeto5 = 0; + nPHO = 0; + nDIS = 0; + } + + // Do the analysis + void analyze(const Event& event) { + + // Event weight + const double weight = event.weight(); + isDIS = false; + + // Projections - special handling of events where no proton found: + const RapidityGap& rg = apply(event, "RapidityGap"); + const DISKinematics& kin = apply(event, "Kinematics"); + const BoostedXSystem& disfsXcm = apply( event, "BoostedXFS"); + + // Determine kinematics: H1 has +z = proton direction + int dir = kin.orientation(); + double W2 = kin.W2(); + double W = sqrt(W2); + double y = kin.y(); + double Q2 = kin.Q2(); + + // Separate into DIS and PHO regimes else veto + if (!inRange(W, 165.*GeV, 242.*GeV)) vetoEvent; + if (Q2 < 0.01*GeV2) { + isDIS = false; + ++nPHO; + } else if (inRange(Q2, 4.0*GeV2, 80.*GeV2)) { + isDIS = true; + ++nDIS; + } else { + vetoEvent; + } + ++nVeto0; + + // Find diffractive variables as defined in paper. + const double M2Y = rg.M2Y(); + const double M2X = rg.M2X(); + const double abst = abs(rg.t()); + const double xPom = (isDIS) ? (Q2 + M2X) / (Q2 + W2) : + rg.EpPzX(RapidityGap::LAB) / (2. * kin.beamHadron().E()); + + // Veto if outside allowed region + if (sqrt(M2Y) > 1.6*GeV) vetoEvent; + ++nVeto1; + if (abst > 1.0*GeV2) vetoEvent; + ++nVeto2; + if (xPom > 0.03) vetoEvent; + ++nVeto3; + + // Jet selection. Note jets are found in photon-proton (XCM) + // frame, but eta cut is applied in lab frame! + Cut jetcuts = Cuts::Et > 4.* GeV; + Jets jets = apply(event, "DISFSJets").jets(jetcuts, cmpMomByEt); + // Veto if not dijets and if Et_j1 < 5.0 + if (jets.size() < 2) vetoEvent; + if (jets[0].Et() < 5.*GeV) vetoEvent; + ++nVeto4; + // Find Et_jet1 and deltaEta* in XCM frame + double EtJet1 = jets[0].Et() * GeV; + double etaXCMJet1 = jets[0].eta(); + double etaXCMJet2 = jets[1].eta(); + double deltaEtaJets = abs(etaXCMJet1 - etaXCMJet2); + + // Transform from XCM to HCM + const LorentzTransform xcmboost = disfsXcm.boost(); + for (int i = 0; i < 2; ++i) jets[i].transformBy(xcmboost.inverse()); + // Find mass of jets and EpPz, EmPz of jets + FourMomentum momJets = jets[0].momentum() + jets[1].momentum(); + double M2jets = momJets.mass2(); + double EpPzJets = 0.; + double EmPzJets = 0.; + // DIS variables are found in XCM frame, so boost back again + if (isDIS){ + for (int i = 0; i < 2; ++i) jets[i].transformBy(xcmboost); + } + // Note sign change wrt. H1 because photon is in +z direction + // Jets in HCM so no need to consider orientation. + for (int i = 0; i < 2; ++i){ + EpPzJets += jets[i].E() - jets[i].pz(); // Sign: + => - + EmPzJets += jets[i].E() + jets[i].pz(); // Sign: - => + + } + + // Transform the jets from HCM to LAB frame where eta cut is + // applied for photoproduction. + const LorentzTransform hcmboost = kin.boostHCM(); + for (int i = 0; i < 2; ++i) jets[i].transformBy(hcmboost.inverse()); + double etaLabJet1 = dir * jets[0].eta(); + double etaLabJet2 = dir * jets[1].eta(); + double etaMin = (isDIS) ? -3. : -1.; + double etaMax = (isDIS) ? 0. : 2.; + double eta1 = (isDIS) ? etaXCMJet1 : etaLabJet1; + double eta2 = (isDIS) ? etaXCMJet2 : etaLabJet2; + if (!inRange(eta1, etaMin, etaMax)) vetoEvent; + if (!inRange(eta2, etaMin, etaMax)) vetoEvent; + ++nVeto5; + + // Pseudorapidity distributions are examined in lab frame: + double avgEtaJets = 0.5 * (etaLabJet1 + etaLabJet2); + + // Derive xPom and xGam values from the jet kinematics. + double zPomJets, xGamJets; + if (isDIS) { + zPomJets = (Q2 + M2jets) / (Q2 + M2X); + xGamJets = EmPzJets / rg.EmPzX(RapidityGap::XCM); + } else { + // Boost E_p, E_e to HCM frame + FourMomentum lep = hcmboost.transform(kin.beamLepton().momentum()); + FourMomentum had = hcmboost.transform(kin.beamHadron().momentum()); + zPomJets = EpPzJets / (2. * xPom * had.E()); + xGamJets = EmPzJets / (2. * y * lep.E()); + } + + // Now fill histograms + if (isDIS){ + _h_DIS_dsigdzPom ->fill(zPomJets, weight); + _h_DIS_dsigdlogXpom ->fill(log10(xPom), weight); + _h_DIS_dsigdW ->fill(W, weight); + _h_DIS_dsigdQ2 ->fill(Q2, weight); + _h_DIS_dsigdEtJet1 ->fill(EtJet1, weight); + _h_DIS_dsigdAvgEta ->fill(avgEtaJets, weight); + _h_DIS_dsigdDeltaEta ->fill(deltaEtaJets, weight); + } else { + _h_PHO_dsigdzPom ->fill(zPomJets, weight); + _h_PHO_dsigdxGam ->fill(xGamJets, weight); + _h_PHO_dsigdlogXpom ->fill(log10(xPom), weight); + _h_PHO_dsigdW ->fill(W, weight); + _h_PHO_dsigdEtJet1 ->fill(EtJet1, weight); + _h_PHO_dsigdAvgEta ->fill(avgEtaJets, weight); + _h_PHO_dsigdDeltaEta ->fill(deltaEtaJets, weight); + _h_PHO_dsigdMjets ->fill(sqrt(M2jets), weight); + } + + } + + // Finalize + void finalize() { + // Normalise to cross section + const double norm = crossSection()/picobarn/sumOfWeights(); + + scale( _h_DIS_dsigdzPom , norm); + scale( _h_DIS_dsigdlogXpom , norm); + scale( _h_DIS_dsigdW , norm); + scale( _h_DIS_dsigdQ2 , norm); + scale( _h_DIS_dsigdEtJet1 , norm); + scale( _h_DIS_dsigdAvgEta , norm); + scale( _h_DIS_dsigdDeltaEta, norm); + + scale( _h_PHO_dsigdzPom , norm); + scale( _h_PHO_dsigdxGam , norm); + scale( _h_PHO_dsigdlogXpom , norm); + scale( _h_PHO_dsigdW , norm); + scale( _h_PHO_dsigdEtJet1 , norm); + scale( _h_PHO_dsigdAvgEta , norm); + scale( _h_PHO_dsigdDeltaEta, norm); + scale( _h_PHO_dsigdMjets , norm); + + const double dPHO = nPHO; + MSG_INFO("H1_2007_I746380"); + MSG_INFO("Cross section = " << crossSection()/picobarn << " pb"); + MSG_INFO("Number of events = " << numEvents() << ", sumW = " << sumOfWeights()); + MSG_INFO("Number of PHO = " << nPHO << ", number of DIS = " << nDIS); + MSG_INFO("Events passing electron veto = " << nVeto0 << " (" << nVeto0/dPHO * 100. << "%)" ); + MSG_INFO("Events passing MY = " << nVeto1 << " (" << nVeto1/dPHO * 100. << "%)" ); + MSG_INFO("Events passing t veto = " << nVeto2 << " (" << nVeto2/dPHO * 100. << "%)" ); + MSG_INFO("Events passing xPom = " << nVeto3 << " (" << nVeto3/dPHO * 100. << "%)" ); + MSG_INFO("Events passing jet Et veto = " << nVeto4 << " (" << nVeto4/dPHO * 100. << "%)" ); + MSG_INFO("Events passing jet eta veto = " << nVeto5 << " (" << nVeto5/dPHO * 100. << "%)" ); + + } + + //@} + + + private: + + /// @name Histograms + //@{ + // Book histograms from REF data + Histo1DPtr _h_DIS_dsigdzPom ; + Histo1DPtr _h_DIS_dsigdlogXpom ; + Histo1DPtr _h_DIS_dsigdW ; + Histo1DPtr _h_DIS_dsigdQ2 ; + Histo1DPtr _h_DIS_dsigdEtJet1 ; + Histo1DPtr _h_DIS_dsigdAvgEta ; + Histo1DPtr _h_DIS_dsigdDeltaEta; + + Histo1DPtr _h_PHO_dsigdzPom ; + Histo1DPtr _h_PHO_dsigdxGam ; + Histo1DPtr _h_PHO_dsigdlogXpom ; + Histo1DPtr _h_PHO_dsigdW ; + Histo1DPtr _h_PHO_dsigdEtJet1 ; + Histo1DPtr _h_PHO_dsigdAvgEta ; + Histo1DPtr _h_PHO_dsigdDeltaEta; + Histo1DPtr _h_PHO_dsigdMjets ; + //@} + + bool isDIS; + int nVeto0, nVeto1, nVeto2, nVeto3, nVeto4, nVeto5; + int nPHO, nDIS; + }; + + DECLARE_RIVET_PLUGIN(H1_2007_I746380); + +} diff --git a/analyses/pluginHERA/H1_2007_I746380.info b/analyses/pluginHERA/H1_2007_I746380.info new file mode 100644 --- /dev/null +++ b/analyses/pluginHERA/H1_2007_I746380.info @@ -0,0 +1,46 @@ +Name: H1_2007_I746380 +Year: 2007 +Summary: Tests of QCD Factorisation in the diffractive production of dijets in deep-inelastic scattering and photoproduction at HERA +Experiment: H1 +Collider: HERA +InspireID: 746380 +Status: UNVALIDATED +Authors: + - Christine O. Rasmussen + - Ilkka Helenius +References: +- Eur. Phys. J. C51 (2007) 549 +- arXiv:hep-ex/0703022 +RunInfo: + 820 GeV protons colliding with 27.5 GeV positrons; + Diffractive photoproduction of dijets; + Jet $E_T > 4$ GeV; +NumEvents: 1000000 +Beams: [p+, e+] +Energies: [[820, 27.5]] +PtCuts: [0] +Description: + H1 diffractive jets from proton--positron collisions at beam energies of + 820~GeV and 27.5~GeV. Measurements are presented of differential dijet cross + sections in diffractive photoproduction (Q2 < 0.01 GeV2) and deep-inelastic + scattering processes (DIS, 4 < Q2 < 80 GeV2). The event topology is given by + ep → eXY , in which the system X, containing at least two jets, is separated + from a leading low-mass proton remnant system Y by a large rapidity gap. +BibKey: Aktas:2007hn +BibTeX: '@article{Aktas:2007hn, + author = "Aktas, A. and others", + title = "{Tests of QCD factorisation in the diffractive production + of dijets in deep-inelastic scattering and photoproduction + at HERA}", + collaboration = "H1", + journal = "Eur. Phys. J.", + volume = "C51", + year = "2007", + pages = "549-568", + doi = "10.1140/epjc/s10052-007-0325-4", + eprint = "hep-ex/0703022", + archivePrefix = "arXiv", + primaryClass = "hep-ex", + reportNumber = "DESY-07-018", + SLACcitation = "%%CITATION = HEP-EX/0703022;%%" +}' diff --git a/analyses/pluginHERA/H1_2007_I746380.plot b/analyses/pluginHERA/H1_2007_I746380.plot new file mode 100644 --- /dev/null +++ b/analyses/pluginHERA/H1_2007_I746380.plot @@ -0,0 +1,174 @@ +# BEGIN PLOT /H1_2007_I746380/d01-x01-y01 +Title= DIS +YLabel=$\mathrm{d}\sigma / \mathrm{d} z_{\mathbb{P}}$ +XLabel=$z_{\mathbb{P}}$ +LogY=0 +LegendXPos=0.1 +LegendYPos=0.35 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2007_I746380/d02-x01-y01 +Title= DIS +YLabel=$\mathrm{d}\sigma / \mathrm{d} \mathrm{log}_{10}x_{\mathbb{P}}$ +XLabel=$\mathrm{log}_{10}x_{\mathbb{P}}$ +LogY=0 +LegendXPos=0.1 +LegendYPos=0.95 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2007_I746380/d03-x01-y01 +Title= DIS +YLabel=$\mathrm{d}\sigma / \mathrm{d} W$ +XLabel=$W$ +LogY=0 +LegendXPos=0.1 +LegendYPos=0.35 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2007_I746380/d04-x01-y01 +Title= DIS +YLabel=$\mathrm{d}\sigma / \mathrm{d} Q^2$ +XLabel=$Q^2$ +LogY=0 +LegendXPos=0.6 +LegendYPos=0.95 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2007_I746380/d05-x01-y01 +Title= DIS +YLabel=$\mathrm{d}\sigma / \mathrm{d} E_T^{*\,\mathrm{jet\,1}}$ +XLabel=$E_T^{*\,\mathrm{jet\,1}}$ +LogY=0 +LegendXPos=0.6 +LegendYPos=0.95 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2007_I746380/d06-x01-y01 +Title=DIS +YLabel=$\mathrm{d}\sigma / \mathrm{d}<\eta_{\mathrm{jet}}^{\mathrm{lab}}>$ +XLabel=$<\eta_{\mathrm{jet}}^{\mathrm{lab}}>$ +LogY=0 +LegendXPos=0.1 +LegendYPos=0.95 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2007_I746380/d07-x01-y01 +Title=DIS +YLabel=$\mathrm{d}\sigma / \mathrm{d}|\Delta\eta_{\mathrm{jet}}^{*}|$ +XLabel=$|\Delta\eta_{\mathrm{jet}}^{*}|$ +LogY=0 +LegendXPos=0.6 +LegendYPos=0.95 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2007_I746380/d08-x01-y01 +Title=Photoproduction +YLabel=$\mathrm{d}\sigma / \mathrm{d} z_{\mathbb{P}}$ +XLabel=$z_{\mathbb{P}}$ +LogY=0 +LegendXPos=0.1 +LegendYPos=0.35 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2007_I746380/d09-x01-y01 +Title=Photoproduction +YLabel=$\mathrm{d}\sigma / \mathrm{d} x_{\gamma}$ +XLabel=$x_{\gamma}$ +LogY=0 +LegendXPos=0.1 +LegendYPos=0.95 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2007_I746380/d10-x01-y01 +Title=Photoproduction +YLabel=$\mathrm{d}\sigma / \mathrm{d} \mathrm{log}_{10}x_{\mathbb{P}}$ +XLabel=$\mathrm{log}_{10}x_{\mathbb{P}}$ +LogY=0 +LegendXPos=0.1 +LegendYPos=0.95 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2007_I746380/d11-x01-y01 +Title= Photoproduction +YLabel=$\mathrm{d}\sigma / \mathrm{d} W$ +XLabel=$W$ +LogY=0 +LegendXPos=0.1 +LegendYPos=0.35 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2007_I746380/d12-x01-y01 +Title= Photoproduction +YLabel=$\mathrm{d}\sigma / \mathrm{d} E_T^{*\,\mathrm{jet\,1}}$ +XLabel=$E_T^{*\,\mathrm{jet\,1}}$ +LogY=1 +LegendXPos=0.1 +LegendYPos=0.35 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2007_I746380/d13-x01-y01 +Title= Photoproduction +YLabel=$\mathrm{d}\sigma / \mathrm{d}<\eta_{\mathrm{jet}}^{\mathrm{lab}}>$ +XLabel=$<\eta_{\mathrm{jet}}^{\mathrm{lab}}>$ +LogY=0 +LegendXPos=0.6 +LegendYPos=0.95 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2007_I746380/d14-x01-y01 +Title=Photoproduction +YLabel=$\mathrm{d}\sigma / \mathrm{d}|\Delta\eta_{\mathrm{jet}}^{*}|$ +XLabel=$|\Delta\eta_{\mathrm{jet}}^{*}|$ +LogY=0 +LegendXPos=0.6 +LegendYPos=0.95 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2007_I746380/d15-x01-y01 +Title=Photoproduction +YLabel=$\mathrm{d}\sigma / \mathrm{d}M_{12}$ +XLabel=$M_{12}$ +LogY=0 +LegendXPos=0.6 +LegendYPos=0.95 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# ... add more histograms as you need them ... +# BEGIN PLOT /H1_2007_I746380/d01-x01-y01 +#Title=[Uncomment and insert title for histogram d01-x01-y01 here] +#XLabel=[Uncomment and insert x-axis label for histogram d01-x01-y01 here] +#YLabel=[Uncomment and insert y-axis label for histogram d01-x01-y01 here] +# + any additional plot settings you might like, see make-plots documentation +# END PLOT + +# ... add more histograms as you need them ... diff --git a/analyses/pluginHERA/H1_2007_I746380.yoda b/analyses/pluginHERA/H1_2007_I746380.yoda new file mode 100644 --- /dev/null +++ b/analyses/pluginHERA/H1_2007_I746380.yoda @@ -0,0 +1,176 @@ +BEGIN YODA_SCATTER2D_V2 /REF/H1_2007_I746380/d01-x01-y01 +IsRef: 1 +Path: /REF/H1_2007_I746380/d01-x01-y01 +Title: doi:10.17182/hepdata.45555.v1/t1 +Type: Scatter2D +--- +# xval xerr- xerr+ yval yerr- yerr+ +2.500000e-01 1.500000e-01 1.500000e-01 5.900000e+01 1.118034e+01 1.118034e+01 +5.000000e-01 1.000000e-01 1.000000e-01 3.400000e+01 8.944272e+00 8.944272e+00 +7.000000e-01 1.000000e-01 1.000000e-01 1.600000e+01 5.000000e+00 5.000000e+00 +9.000000e-01 1.000000e-01 1.000000e-01 5.200000e+00 2.332381e+00 2.332381e+00 +END YODA_SCATTER2D_V2 +BEGIN YODA_SCATTER2D_V2 /REF/H1_2007_I746380/d02-x01-y01 +IsRef: 1 +Path: /REF/H1_2007_I746380/d02-x01-y01 +Title: doi:10.17182/hepdata.45555.v1/t2 +Type: Scatter2D +--- +# xval xerr- xerr+ yval yerr- yerr+ +-2.100000e+00 2.000000e-01 2.000000e-01 2.030000e+01 5.024938e+00 5.024938e+00 +-1.800000e+00 1.000000e-01 1.000000e-01 4.300000e+01 8.602325e+00 8.602325e+00 +-1.600000e+00 1.000000e-01 1.000000e-01 6.200000e+01 1.476482e+01 1.476482e+01 +END YODA_SCATTER2D_V2 +BEGIN YODA_SCATTER2D_V2 /REF/H1_2007_I746380/d03-x01-y01 +IsRef: 1 +Path: /REF/H1_2007_I746380/d03-x01-y01 +Title: doi:10.17182/hepdata.45555.v1/t3 +Type: Scatter2D +--- +# xval xerr- xerr+ yval yerr- yerr+ +1.750000e+02 1.000000e+01 1.000000e+01 4.500000e-01 1.166190e-01 1.166190e-01 +1.950000e+02 1.000000e+01 1.000000e+01 4.000000e-01 9.433981e-02 9.433981e-02 +2.150000e+02 1.000000e+01 1.000000e+01 3.700000e-01 8.602325e-02 8.602325e-02 +2.335000e+02 8.500000e+00 8.500000e+00 3.300000e-01 8.602325e-02 8.602325e-02 +END YODA_SCATTER2D_V2 +BEGIN YODA_SCATTER2D_V2 /REF/H1_2007_I746380/d04-x01-y01 +IsRef: 1 +Path: /REF/H1_2007_I746380/d04-x01-y01 +Title: doi:10.17182/hepdata.45555.v1/t4 +Type: Scatter2D +--- +# xval xerr- xerr+ yval yerr- yerr+ +5.000000e+00 1.000000e+00 1.000000e+00 3.400000e+00 8.602325e-01 8.602325e-01 +7.000000e+00 1.000000e+00 1.000000e+00 2.400000e+00 6.403124e-01 6.403124e-01 +1.000000e+01 2.000000e+00 2.000000e+00 8.300000e-01 2.701851e-01 2.701851e-01 +1.600000e+01 4.000000e+00 4.000000e+00 6.300000e-01 1.720465e-01 1.720465e-01 +2.500000e+01 5.000000e+00 5.000000e+00 4.700000e-01 1.442221e-01 1.442221e-01 +3.500000e+01 5.000000e+00 5.000000e+00 1.800000e-01 7.810250e-02 7.810250e-02 +6.000000e+01 2.000000e+01 2.000000e+01 8.100000e-02 3.342155e-02 3.342155e-02 +END YODA_SCATTER2D_V2 +BEGIN YODA_SCATTER2D_V2 /REF/H1_2007_I746380/d05-x01-y01 +IsRef: 1 +Path: /REF/H1_2007_I746380/d05-x01-y01 +Title: doi:10.17182/hepdata.45555.v1/t5 +Type: Scatter2D +--- +# xval xerr- xerr+ yval yerr- yerr+ +6.000000e+00 1.000000e+00 1.000000e+00 9.300000e+00 1.700000e+00 1.700000e+00 +8.000000e+00 1.000000e+00 1.000000e+00 4.100000e+00 1.029563e+00 1.029563e+00 +1.000000e+01 1.000000e+00 1.000000e+00 1.000000e+00 4.472136e-01 4.472136e-01 +END YODA_SCATTER2D_V2 +BEGIN YODA_SCATTER2D_V2 /REF/H1_2007_I746380/d06-x01-y01 +IsRef: 1 +Path: /REF/H1_2007_I746380/d06-x01-y01 +Title: doi:10.17182/hepdata.45555.v1/t6 +Type: Scatter2D +--- +# xval xerr- xerr+ yval yerr- yerr+ +-5.500000e-01 1.500000e-01 1.500000e-01 2.100000e+01 5.830952e+00 5.830952e+00 +-2.500000e-01 1.500000e-01 1.500000e-01 2.900000e+01 7.211103e+00 7.211103e+00 +5.000000e-02 1.500000e-01 1.500000e-01 2.100000e+01 5.830952e+00 5.830952e+00 +END YODA_SCATTER2D_V2 +BEGIN YODA_SCATTER2D_V2 /REF/H1_2007_I746380/d07-x01-y01 +IsRef: 1 +Path: /REF/H1_2007_I746380/d07-x01-y01 +Title: doi:10.17182/hepdata.45555.v1/t7 +Type: Scatter2D +--- +# xval xerr- xerr+ yval yerr- yerr+ +2.500000e-01 2.500000e-01 2.500000e-01 3.000000e+01 5.830952e+00 5.830952e+00 +7.500000e-01 2.500000e-01 2.500000e-01 1.500000e+01 3.605551e+00 3.605551e+00 +1.500000e+00 5.000000e-01 5.000000e-01 5.900000e+00 1.526434e+00 1.526434e+00 +END YODA_SCATTER2D_V2 +BEGIN YODA_SCATTER2D_V2 /REF/H1_2007_I746380/d08-x01-y01 +IsRef: 1 +Path: /REF/H1_2007_I746380/d08-x01-y01 +Title: doi:10.17182/hepdata.45555.v1/t8 +Type: Scatter2D +--- +# xval xerr- xerr+ yval yerr- yerr+ +2.500000e-01 1.500000e-01 1.500000e-01 2.900000e+02 5.385165e+01 5.385165e+01 +5.000000e-01 1.000000e-01 1.000000e-01 3.400000e+02 7.280110e+01 7.280110e+01 +7.000000e-01 1.000000e-01 1.000000e-01 3.100000e+02 5.385165e+01 5.385165e+01 +9.000000e-01 1.000000e-01 1.000000e-01 1.500000e+02 3.162278e+01 3.162278e+01 +END YODA_SCATTER2D_V2 +BEGIN YODA_SCATTER2D_V2 /REF/H1_2007_I746380/d09-x01-y01 +IsRef: 1 +Path: /REF/H1_2007_I746380/d09-x01-y01 +Title: doi:10.17182/hepdata.45555.v1/t9 +Type: Scatter2D +--- +# xval xerr- xerr+ yval yerr- yerr+ +2.500000e-01 1.500000e-01 1.500000e-01 1.500000e+02 3.162278e+01 3.162278e+01 +5.000000e-01 1.000000e-01 1.000000e-01 2.500000e+02 5.385165e+01 5.385165e+01 +7.000000e-01 1.000000e-01 1.000000e-01 3.700000e+02 4.472136e+01 4.472136e+01 +9.000000e-01 1.000000e-01 1.000000e-01 3.500000e+02 7.280110e+01 7.280110e+01 +END YODA_SCATTER2D_V2 +BEGIN YODA_SCATTER2D_V2 /REF/H1_2007_I746380/d10-x01-y01 +IsRef: 1 +Path: /REF/H1_2007_I746380/d10-x01-y01 +Title: doi:10.17182/hepdata.45555.v1/t10 +Type: Scatter2D +--- +# xval xerr- xerr+ yval yerr- yerr+ +-2.200000e+00 1.000000e-01 1.000000e-01 1.100000e+02 3.162278e+01 3.162278e+01 +-2.000000e+00 1.000000e-01 1.000000e-01 2.000000e+02 3.162278e+01 3.162278e+01 +-1.800000e+00 1.000000e-01 1.000000e-01 3.500000e+02 5.385165e+01 5.385165e+01 +-1.600000e+00 1.000000e-01 1.000000e-01 5.500000e+02 1.044031e+02 1.044031e+02 +END YODA_SCATTER2D_V2 +BEGIN YODA_SCATTER2D_V2 /REF/H1_2007_I746380/d11-x01-y01 +IsRef: 1 +Path: /REF/H1_2007_I746380/d11-x01-y01 +Title: doi:10.17182/hepdata.45555.v1/t11 +Type: Scatter2D +--- +# xval xerr- xerr+ yval yerr- yerr+ +1.750000e+02 1.000000e+01 1.000000e+01 3.800000e+00 6.324555e-01 6.324555e-01 +1.950000e+02 1.000000e+01 1.000000e+01 3.500000e+00 5.385165e-01 5.385165e-01 +2.150000e+02 1.000000e+01 1.000000e+01 3.000000e+00 4.472136e-01 4.472136e-01 +2.335000e+02 8.500000e+00 8.500000e+00 2.400000e+00 4.472136e-01 4.472136e-01 +END YODA_SCATTER2D_V2 +BEGIN YODA_SCATTER2D_V2 /REF/H1_2007_I746380/d12-x01-y01 +IsRef: 1 +Path: /REF/H1_2007_I746380/d12-x01-y01 +Title: doi:10.17182/hepdata.45555.v1/t12 +Type: Scatter2D +--- +# xval xerr- xerr+ yval yerr- yerr+ +6.000000e+00 1.000000e+00 1.000000e+00 8.500000e+01 1.236932e+01 1.236932e+01 +8.000000e+00 1.000000e+00 1.000000e+00 2.800000e+01 4.472136e+00 4.472136e+00 +1.000000e+01 1.000000e+00 1.000000e+00 7.300000e+00 2.061553e+00 2.061553e+00 +END YODA_SCATTER2D_V2 +BEGIN YODA_SCATTER2D_V2 /REF/H1_2007_I746380/d13-x01-y01 +IsRef: 1 +Path: /REF/H1_2007_I746380/d13-x01-y01 +Title: doi:10.17182/hepdata.45555.v1/t13 +Type: Scatter2D +--- +# xval xerr- xerr+ yval yerr- yerr+ +-5.500000e-01 1.500000e-01 1.500000e-01 1.400000e+02 3.162278e+01 3.162278e+01 +-2.500000e-01 1.500000e-01 1.500000e-01 2.300000e+02 3.162278e+01 3.162278e+01 +5.000000e-02 1.500000e-01 1.500000e-01 1.900000e+02 3.162278e+01 3.162278e+01 +5.000000e-01 3.000000e-01 3.000000e-01 8.900000e+01 1.431782e+01 1.431782e+01 +END YODA_SCATTER2D_V2 +BEGIN YODA_SCATTER2D_V2 /REF/H1_2007_I746380/d14-x01-y01 +IsRef: 1 +Path: /REF/H1_2007_I746380/d14-x01-y01 +Title: doi:10.17182/hepdata.45555.v1/t14 +Type: Scatter2D +--- +# xval xerr- xerr+ yval yerr- yerr+ +2.500000e-01 2.500000e-01 2.500000e-01 1.790000e+02 3.036445e+01 3.036445e+01 +7.500000e-01 2.500000e-01 2.500000e-01 1.570000e+02 2.284732e+01 2.284732e+01 +1.250000e+00 2.500000e-01 2.500000e-01 8.800000e+01 1.431782e+01 1.431782e+01 +1.750000e+00 2.500000e-01 2.500000e-01 5.500000e+01 1.029563e+01 1.029563e+01 +END YODA_SCATTER2D_V2 +BEGIN YODA_SCATTER2D_V2 /REF/H1_2007_I746380/d15-x01-y01 +IsRef: 1 +Path: /REF/H1_2007_I746380/d15-x01-y01 +Title: doi:10.17182/hepdata.45555.v1/t15 +Type: Scatter2D +--- +# xval xerr- xerr+ yval yerr- yerr+ +1.300000e+01 4.000000e+00 4.000000e+00 2.560000e+01 4.002499e+00 4.002499e+00 +2.200000e+01 5.000000e+00 5.000000e+00 3.800000e+00 7.615773e-01 7.615773e-01 +END YODA_SCATTER2D_V2 diff --git a/analyses/pluginHERA/H1_2015_I1343110.cc b/analyses/pluginHERA/H1_2015_I1343110.cc new file mode 100644 --- /dev/null +++ b/analyses/pluginHERA/H1_2015_I1343110.cc @@ -0,0 +1,595 @@ +// -*- C++ -*- +#include "Rivet/Analysis.hh" +#include "Rivet/Projections/Beam.hh" +#include "Rivet/Projections/FinalState.hh" +#include "Rivet/Projections/DISKinematics.hh" +#include "Rivet/Projections/DISFinalState.hh" +#include "Rivet/Projections/DISDiffHadron.hh" +#include "Rivet/Projections/FastJets.hh" + +namespace Rivet { + +namespace H1_2015_I1343110_PROJECTIONS { + + /// Projection to find the largest gaps and the masses of the two + /// systems separated by the gap. Based on the HZTools gap-finding + /// method (hzhadgap.F). Note that gaps are found in the HCM frame. + /// + /// @author Christine O. Rasmussen. + class RapidityGap : public Projection { + + public: + + /// Type of DIS boost to apply + enum Frame { HCM, LAB, XCM }; + + RapidityGap() { + setName("RapidityGap"); + addProjection(DISKinematics(), "DISKIN"); + addProjection(DISFinalState(DISFinalState::HCM), "DISFS"); + } + + DEFAULT_RIVET_PROJ_CLONE(RapidityGap); + + const double M2X() const {return _M2X;} + const double M2Y() const {return _M2Y;} + const double t() const {return _t;} + const double gap() const {return _gap;} + const double gapUpp() const {return _gapUpp;} + const double gapLow() const {return _gapLow;} + const double EpPzX(Frame f) const { + if (f == LAB) return _ePpzX_LAB; + else if (f == XCM) return _ePpzX_XCM; + else return _ePpzX_HCM; + } + const double EmPzX(Frame f) const { + if (f == LAB) return _eMpzX_LAB; + else if (f == XCM) return _eMpzX_XCM; + else return _eMpzX_HCM; + } + const FourMomentum pX(Frame f) const { + if (f == LAB) return _momX_LAB; + else if (f == XCM) return _momX_XCM; + else return _momX_HCM; + } + const FourMomentum pY(Frame f) const { + if (f == LAB) return _momY_LAB; + else if (f == XCM) return _momY_XCM; + else return _momY_HCM; + } + const Particles& systemX(Frame f) const { + if (f == LAB) return _pX_LAB; + else if (f == XCM) return _pX_XCM; + else return _pX_HCM; + } + const Particles& systemY(Frame f) const { + if (f == LAB) return _pY_LAB; + else if (f == XCM) return _pY_XCM; + else return _pY_HCM; + } + + protected: + + virtual int compare(const Projection& p) const { + const RapidityGap& other = pcast(p); + return mkNamedPCmp(other, "DISKIN") || mkNamedPCmp(other, "DISFS"); + } + + virtual void project(const Event& e){ + const DISKinematics& dk = apply(e, "DISKIN"); + const Particles& p = apply(e, "DISFS").particles(cmpMomByEta); + findgap(p, dk); + } + + void clearAll(){ + _M2X = _M2Y = _t = _gap = 0.; + _gapUpp = _gapLow = -8.; + _ePpzX_HCM = _eMpzX_HCM =_ePpzX_LAB = _eMpzX_LAB = _ePpzX_XCM = _eMpzX_XCM = 0.; + _momX_HCM.setPE(0., 0., 0., 0.); + _momY_HCM.setPE(0., 0., 0., 0.); + _momX_XCM.setPE(0., 0., 0., 0.); + _momY_XCM.setPE(0., 0., 0., 0.); + _momX_LAB.setPE(0., 0., 0., 0.); + _momY_LAB.setPE(0., 0., 0., 0.); + _pX_HCM.clear(); + _pY_HCM.clear(); + _pX_XCM.clear(); + _pY_XCM.clear(); + _pX_LAB.clear(); + _pY_LAB.clear(); + } + + void findgap(const Particles& particles, const DISKinematics& diskin){ + + clearAll(); + + // Begin by finding largest gap and gapedges between all final + // state particles in HCM frame. + int nP = particles.size(); + int dir = diskin.orientation(); + for (int i = 0; i < nP-1; ++i){ + double tmpGap = abs(particles[i+1].eta() - particles[i].eta()); + if (tmpGap > _gap) { + _gap = tmpGap; + _gapLow = (dir > 0) ? particles[i].eta() : dir * particles[i+1].eta(); + _gapUpp = (dir > 0) ? particles[i+1].eta() : dir * particles[i].eta(); + } + } + + // Define the two systems X and Y. + Particles tmp_pX, tmp_pY; + foreach (const Particle& ip, particles) { + if (dir * ip.eta() > _gapLow) tmp_pX.push_back(ip); + else tmp_pY.push_back(ip); + } + + Particles pX, pY; + pX = (dir < 0) ? tmp_pY : tmp_pX; + pY = (dir < 0) ? tmp_pX : tmp_pY; + + // Find variables related to HCM frame. + // Note that HCM has photon along +z, as opposed to + // H1 where proton is along +z. This results in a sign change + // as compared to H1 papers! + + // X - side + FourMomentum momX; + foreach (const Particle& jp, pX) { + momX += jp.momentum(); + _ePpzX_HCM += jp.E() - jp.pz(); // Sign + => - + _eMpzX_HCM += jp.E() + jp.pz(); // Sign - => + + } + _momX_HCM = momX; + _pX_HCM = pX; + _M2X = _momX_HCM.mass2(); + + // Y - side + FourMomentum momY; + foreach (const Particle& kp, pY) momY += kp.momentum(); + _momY_HCM = momY; + _pY_HCM = pY; + _M2Y = _momY_HCM.mass2(); + + // Find variables related to LAB frame + const LorentzTransform hcmboost = diskin.boostHCM(); + const LorentzTransform hcminverse = hcmboost.inverse(); + _momX_LAB = hcminverse.transform(_momX_HCM); + _momY_LAB = hcminverse.transform(_momY_HCM); + + // Find momenta in XCM frame. Note that it is HCM frame that is + // boosted, resulting in a sign change later! + const bool doXCM = (momX.betaVec().mod2() < 1.); + if (doXCM) { + const LorentzTransform xcmboost = + LorentzTransform::mkFrameTransformFromBeta(momX.betaVec()); + _momX_XCM = xcmboost.transform(momX); + _momY_XCM = xcmboost.transform(momY); + } + + foreach (const Particle& jp, pX) { + // Boost from HCM to LAB. + FourMomentum lab = hcminverse.transform(jp.momentum()); + _ePpzX_LAB += lab.E() + dir * lab.pz(); + _eMpzX_LAB += lab.E() - dir * lab.pz(); + Particle plab = jp; + plab.setMomentum(lab); + _pX_LAB.push_back(plab); + // Set XCM. Note that since HCM frame is boosted to XCM frame, + // we have a sign change + if (doXCM) { + const LorentzTransform xcmboost = + LorentzTransform::mkFrameTransformFromBeta(_momX_HCM.betaVec()); + FourMomentum xcm = xcmboost.transform(jp.momentum()); + _ePpzX_XCM += xcm.E() - xcm.pz(); // Sign + => - + _eMpzX_XCM += xcm.E() + xcm.pz(); // Sign - => + + Particle pxcm = jp; + pxcm.setMomentum(xcm); + _pX_XCM.push_back(pxcm); + } + } + + foreach (const Particle& jp, pY) { + // Boost from HCM to LAB + FourMomentum lab = hcminverse.transform(jp.momentum()); + Particle plab = jp; + plab.setMomentum(lab); + _pY_LAB.push_back(plab); + // Boost from HCM to XCM + if (doXCM) { + const LorentzTransform xcmboost = + LorentzTransform::mkFrameTransformFromBeta(_momX_HCM.betaVec()); + FourMomentum xcm = xcmboost.transform(jp.momentum()); + Particle pxcm = jp; + pxcm.setMomentum(xcm); + _pY_XCM.push_back(pxcm); + } + } + + // Find t: Currently can only handle gap on proton side. + // @TODO: Expand to also handle gap on photon side + // Boost p from LAB to HCM frame to find t. + const FourMomentum proton = hcmboost.transform(diskin.beamHadron().momentum()); + FourMomentum pPom = proton - _momY_HCM; + _t = pPom * pPom; + + } + + private: + + double _M2X, _M2Y, _t; + double _gap, _gapUpp, _gapLow; + double _ePpzX_LAB, _eMpzX_LAB, _ePpzX_HCM, _eMpzX_HCM, _ePpzX_XCM, _eMpzX_XCM; + FourMomentum _momX_HCM, _momY_HCM,_momX_LAB, _momY_LAB, _momX_XCM, _momY_XCM; + Particles _pX_HCM, _pY_HCM, _pX_LAB, _pY_LAB, _pX_XCM, _pY_XCM; + + }; + + /// Projection to boost system X (photon+Pomeron) particles into its rest frame. + /// + /// @author Ilkka Helenius + class BoostedXSystem : public FinalState { + public: + + BoostedXSystem(const FinalState& fs) { + setName("BoostedXSystem"); + declare(fs,"FS"); + addProjection(RapidityGap(), "RAPGAP"); + } + + // Return the boost to XCM frame. + const LorentzTransform& boost() const { return _boost; } + + DEFAULT_RIVET_PROJ_CLONE(BoostedXSystem); + + protected: + + // Apply the projection on the supplied event. + void project(const Event& e){ + + const RapidityGap& rg = apply(e, "RAPGAP"); + + // Total momentum of the system X. + const FourMomentum pX = rg.pX(RapidityGap::HCM); + + // Reset the boost. Is there a separate method for this? + _boost = combine(_boost, _boost.inverse()); + + // Define boost only when numerically safe, otherwise negligible. + if (pX.betaVec().mod2() < 1.) + _boost = LorentzTransform::mkFrameTransformFromBeta(pX.betaVec()); + + // Boost the particles from system X. + _theParticles.clear(); + _theParticles.reserve(rg.systemX(RapidityGap::HCM).size()); + for (const Particle& p : rg.systemX(RapidityGap::HCM)) { + Particle temp = p; + temp.setMomentum(_boost.transform(temp.momentum())); + _theParticles.push_back(temp); + } + + } + + // Compare projections. + int compare(const Projection& p) const { + const BoostedXSystem& other = pcast(p); + return mkNamedPCmp(other, "RAPGAP") || mkNamedPCmp(other, "FS"); + } + + private: + + LorentzTransform _boost; + + }; + + } + + /// @brief H1 diffractive dijets + /// + /// Diffractive dijets H1 with 920 GeV p and 27.5 GeV e + /// Tagged protons & jets found in gamma*p rest frame. + /// + /// @author Christine O. Rasmussen + class H1_2015_I1343110 : public Analysis { + public: + + /// Constructor + DEFAULT_RIVET_ANALYSIS_CTOR(H1_2015_I1343110); + + typedef H1_2015_I1343110_PROJECTIONS::RapidityGap RapidityGap; + typedef H1_2015_I1343110_PROJECTIONS::BoostedXSystem BoostedXSystem; + + /// @name Analysis methods + //@{ + + // Book projections and histograms + void init() { + + declare(DISKinematics(), "Kinematics"); + const DISFinalState& disfs = declare(DISFinalState(DISFinalState::HCM), "DISFS"); + const BoostedXSystem& disfsXcm = declare( BoostedXSystem(disfs), "BoostedXFS"); + declare(FastJets(disfsXcm, fastjet::JetAlgorithm::kt_algorithm, fastjet::RecombinationScheme::pt_scheme, 1.0, + JetAlg::ALL_MUONS, JetAlg::NO_INVISIBLES, nullptr), "DISFSJets"); + declare(DISDiffHadron(), "Hadron"); + declare(RapidityGap(), "RapidityGap"); + + // Book histograms from REF data + _h_PHO_sig_sqrts = bookHisto1D(1, 1, 1); + _h_DIS_sig_sqrts = bookHisto1D(2, 1, 1); + _h_PHODIS_sqrts = bookScatter2D(3, 1, 1); + + _h_DIS_dsigdz = bookHisto1D(4, 1, 1); + _h_DIS_dsigdxPom = bookHisto1D(5, 1, 1); + _h_DIS_dsigdy = bookHisto1D(6, 1, 1); + _h_DIS_dsigdQ2 = bookHisto1D(7, 1, 1); + _h_DIS_dsigdEtj1 = bookHisto1D(8, 1, 1); + _h_DIS_dsigdMX = bookHisto1D(9, 1, 1); + _h_DIS_dsigdDeltaEta = bookHisto1D(10, 1, 1); + _h_DIS_dsigdAvgEta = bookHisto1D(11, 1, 1); + + _h_PHO_dsigdz = bookHisto1D(12, 1, 1); + _h_PHO_dsigdxPom = bookHisto1D(13, 1, 1); + _h_PHO_dsigdy = bookHisto1D(14, 1, 1); + _h_PHO_dsigdxGam = bookHisto1D(15, 1, 1); + _h_PHO_dsigdEtj1 = bookHisto1D(16, 1, 1); + _h_PHO_dsigdMX = bookHisto1D(17, 1, 1); + _h_PHO_dsigdDeltaEta = bookHisto1D(18, 1, 1); + _h_PHO_dsigdAvgEta = bookHisto1D(19, 1, 1); + + _h_PHODIS_deltaEta = bookScatter2D(20, 1, 1); + _h_PHODIS_y = bookScatter2D(21, 1, 1); + _h_PHODIS_z = bookScatter2D(22, 1, 1); + _h_PHODIS_Etj1 = bookScatter2D(23, 1, 1); + + isPHO = false; + nVeto1 = 0; + nVeto2 = 0; + nVeto3 = 0; + nVeto4 = 0; + nVeto5 = 0; + nVeto6 = 0; + nPHO = 0; + nDIS = 0; + } + + // Do the analysis + void analyze(const Event& event) { + + // Event weight + const double weight = event.weight(); + isPHO = false; + + // Projections - special handling of events where no proton found: + const RapidityGap& rg = apply(event, "RapidityGap"); + const DISKinematics& kin = apply(event, "Kinematics"); + const BoostedXSystem& disfsXcm = apply( event, "BoostedXFS"); + Particle hadronOut; + Particle hadronIn; + try { + const DISDiffHadron& diffhadr = apply(event, "Hadron"); + hadronOut = diffhadr.out(); + hadronIn = diffhadr.in(); + } catch (const Error& e){ + vetoEvent; + } + + // Determine kinematics: H1 has +z = proton direction + int dir = kin.orientation(); + double y = kin.y(); + double Q2 = kin.Q2(); + + // Separate into DIS and PHO regimes else veto + if (Q2 < 2.*GeV2 && inRange(y, 0.2, 0.70)) { + isPHO = true; + ++nPHO; + } else if (inRange(Q2, 4.0*GeV2, 80.*GeV2) && inRange(y, 0.2, 0.7)) { + isPHO = false; + ++nDIS; + } else vetoEvent; + ++nVeto1; + + // Find diffractive variables as defined in paper. + // Note tagged protons in VFPS => smaller allowed xPom range + // xPom = 1 - E'/E, M2X from hadrons, t = (P-P')^2 + const double M2X = rg.M2X(); + const double abst = abs(rg.t()); + const double xPom = 1. - hadronOut.energy() / hadronIn.energy(); + + //cout << "\nhadout=" << hadronOut.energy() << ", hadin=" << hadronIn.energy() << endl; + //cout << "xPomH1=" << (Q2+M2X) / (y * sqr(sqrtS())) << endl; + //cout << "|t|=" << abst << ", xPom=" << xPom << endl; + // Veto if outside allowed region + if (abst > 0.6 * GeV2) vetoEvent; + ++nVeto2; + if (!inRange(xPom, 0.010, 0.024)) vetoEvent; + ++nVeto3; + + // Jet selection. Note jets are found in XCM frame, but + // eta cut is applied in lab frame! + Cut jetcuts = Cuts::Et > 4.* GeV; + Jets jets = apply(event, "DISFSJets").jets(jetcuts, cmpMomByEt); + // Veto if not dijets and if Et_j1 < 5.5 + if (jets.size() < 2) vetoEvent; + if (jets[0].Et() < 5.5 * GeV) vetoEvent; + ++nVeto4; + // Find Et_jet1 in XCM frame + double EtJet1 = jets[0].Et() * GeV; + + //cout << "gamma*p frame:" << endl; + //cout << "Et1=" << jets[0].Et() << ", E1=" << jets[0].E() << ", pz1=" << jets[0].pz() << ", m1=" << jets[0].mass() << endl; + //cout << "Et2=" << jets[1].Et() << ", E2=" << jets[1].E() << ", pz2=" << jets[1].pz() << ", m2=" << jets[1].mass() << endl; + + // Transform from XCM to HCM + const LorentzTransform xcmboost = disfsXcm.boost(); + for (int i = 0; i < 2; ++i) jets[i].transformBy(xcmboost.inverse()); + + // Find mass of jets and EpPz, EmPz of jets in HCM frame. + FourMomentum momJets = jets[0].momentum() + jets[1].momentum(); + double M2jets = momJets.mass2(); + double EpPzJets = 0.; + double EmPzJets = 0.; + // Note sign change wrt. H1 because photon is in +z direction + for (int i = 0; i < 2; ++i){ + EpPzJets += jets[i].E() - jets[i].pz(); // Sign: + => - + EmPzJets += jets[i].E() + jets[i].pz(); // Sign: - => + + } + + // Transform the jets from HCM to LAB frame where eta cut is + // applied for photoproduction. + const LorentzTransform hcmboost = kin.boostHCM(); + for (int i = 0; i < 2; ++i) jets[i].transformBy(hcmboost.inverse()); + double etaLabJet1 = dir * jets[0].eta(); + double etaLabJet2 = dir * jets[1].eta(); + if (!inRange(etaLabJet1, -1., 2.5)) vetoEvent; + if (!inRange(etaLabJet2, -1., 2.5)) vetoEvent; + ++nVeto5; + + // Pseudorapidity distributions are examined in lab frame: + double deltaEtaJets = abs(dir * jets[0].eta() - dir * jets[1].eta()); + double avgEtaJets = 0.5 * (dir * jets[0].eta() + dir * jets[1].eta()); + + // Evaluate observables + double zPomJets, xGamJets = 0.; + if (isPHO){ + zPomJets = EpPzJets / rg.EpPzX(RapidityGap::HCM); + xGamJets = EmPzJets / rg.EmPzX(RapidityGap::HCM); + //cout << "xGamJets=" << xGamJets << endl; + } else { + zPomJets = (Q2 + M2jets) / (Q2 + M2X); + } + + //cout << "lab frame:" << endl; + //cout << "Et1=" << jets[0].Et() << ", E1=" << jets[0].E() << ", pz1=" << jets[0].pz() << ", m1=" << jets[0].mass() << endl; + //cout << "Et2=" << jets[1].Et() << ", E2=" << jets[1].E() << ", pz2=" << jets[1].pz() << ", m2=" << jets[1].mass() << endl; + //cout << "EpPzJets=" << EpPzJets << ", EmPzJets=" << EmPzJets << endl; + //cout << "Et*exp(eta)=" << jets[0].Et()*exp(etaLabJet1) + jets[1].Et()*exp(etaLabJet2) << endl; + //cout << "Et*exp(-eta)=" << jets[0].Et()*exp(-etaLabJet1) + jets[1].Et()*exp(-etaLabJet2) << endl; + //cout << "EpPz=" << rg.EpPzX(RapidityGap::HCM) << ", EmPz=" << rg.EmPzX(RapidityGap::HCM) << endl; + //cout << "2 xPom Ep=" << 2. * xPom * kin.beamHadron().E() << ", 2 y Ee=" << 2. * y * kin.beamLepton().E() << endl; + //cout << "xGam=" << xGamJets << ", zPom=" << zPomJets << endl; + //cout << "M12=" << M2jets << ", deltaEta=" << deltaEtaJets << ", avgEta=" << avgEtaJets << endl; + + // Veto events with zPom > 0.8 + if (zPomJets > 0.8) vetoEvent; + ++nVeto6; + + // Now fill histograms + if (isPHO){ + _h_PHO_sig_sqrts ->fill(sqrtS()/GeV, weight); + _h_PHO_dsigdz ->fill(zPomJets, weight); + _h_PHO_dsigdxPom ->fill(xPom, weight); + _h_PHO_dsigdy ->fill(y, weight); + _h_PHO_dsigdxGam ->fill(xGamJets, weight); + _h_PHO_dsigdEtj1 ->fill(EtJet1, weight); + _h_PHO_dsigdMX ->fill(sqrt(M2X)*GeV, weight); + _h_PHO_dsigdDeltaEta ->fill(deltaEtaJets, weight); + _h_PHO_dsigdAvgEta ->fill(avgEtaJets, weight); + } else { + _h_DIS_sig_sqrts ->fill(sqrtS()/GeV, weight); + _h_DIS_dsigdz ->fill(zPomJets, weight); + _h_DIS_dsigdxPom ->fill(xPom, weight); + _h_DIS_dsigdy ->fill(y, weight); + _h_DIS_dsigdQ2 ->fill(Q2, weight); + _h_DIS_dsigdEtj1 ->fill(EtJet1, weight); + _h_DIS_dsigdMX ->fill(sqrt(M2X)*GeV, weight); + _h_DIS_dsigdDeltaEta ->fill(deltaEtaJets, weight); + _h_DIS_dsigdAvgEta ->fill(avgEtaJets, weight); + } + + } + + // Finalize + void finalize() { + // Normalise to cross section + // Remember to manually scale the cross section afterwards with + // the number of rejected events. + const double norm = crossSection()/picobarn/sumOfWeights(); + + scale(_h_PHO_sig_sqrts, norm); + scale(_h_PHO_dsigdz, norm); + scale(_h_PHO_dsigdxPom, norm); + scale(_h_PHO_dsigdy, norm); + scale(_h_PHO_dsigdxGam, norm); + scale(_h_PHO_dsigdEtj1, norm); + scale(_h_PHO_dsigdMX, norm); + scale(_h_PHO_dsigdDeltaEta, norm); + scale(_h_PHO_dsigdAvgEta, norm); + + scale(_h_DIS_sig_sqrts, norm); + scale(_h_DIS_dsigdz, norm); + scale(_h_DIS_dsigdxPom, norm); + scale(_h_DIS_dsigdy, norm); + scale(_h_DIS_dsigdQ2, norm); + scale(_h_DIS_dsigdEtj1, norm); + scale(_h_DIS_dsigdMX, norm); + scale(_h_DIS_dsigdDeltaEta, norm); + scale(_h_DIS_dsigdAvgEta, norm); + + if (_h_DIS_sig_sqrts->numEntries() != 0) + divide(_h_PHO_sig_sqrts, _h_DIS_sig_sqrts, _h_PHODIS_sqrts); + if (_h_DIS_dsigdDeltaEta->numEntries() != 0) + divide(_h_PHO_dsigdDeltaEta, _h_DIS_dsigdDeltaEta, _h_PHODIS_deltaEta); + if (_h_DIS_dsigdy->numEntries() != 0) + divide(_h_PHO_dsigdy, _h_DIS_dsigdy, _h_PHODIS_y); + if (_h_DIS_dsigdz->numEntries() != 0) + divide(_h_PHO_dsigdz, _h_DIS_dsigdz, _h_PHODIS_z); + if (_h_DIS_dsigdEtj1->numEntries() != 0) + divide(_h_PHO_dsigdEtj1, _h_DIS_dsigdEtj1, _h_PHODIS_Etj1); + + const double dPHO = nPHO; + MSG_INFO("H1_2015_I1343110"); + MSG_INFO("Cross section = " << crossSection()/picobarn << " pb"); + MSG_INFO("Number of events = " << numEvents() << ", sumW = " << sumOfWeights()); + MSG_INFO("Number of PHO = " << nPHO << ", number of DIS = " << nDIS); + MSG_INFO("Events passing electron veto = " << nVeto1 << " (" << nVeto1/dPHO * 100. << "%)" ); + MSG_INFO("Events passing t veto = " << nVeto2 << " (" << nVeto2/dPHO * 100. << "%)" ); + MSG_INFO("Events passing xPom = " << nVeto3 << " (" << nVeto3/dPHO * 100. << "%)" ); + MSG_INFO("Events passing jet Et veto = " << nVeto4 << " (" << nVeto4/dPHO * 100. << "%)" ); + MSG_INFO("Events passing jet eta veto = " << nVeto5 << " (" << nVeto5/dPHO * 100. << "%)" ); + MSG_INFO("Events passing zPom veto = " << nVeto6 << " (" << nVeto6/dPHO * 100. << "%)" ); + + } + + //@} + + + private: + + /// @name Histograms + //@{ + // Book histograms from REF data + Histo1DPtr _h_PHO_sig_sqrts; + Histo1DPtr _h_DIS_sig_sqrts; + Scatter2DPtr _h_PHODIS_sqrts; + + Histo1DPtr _h_DIS_dsigdz; + Histo1DPtr _h_DIS_dsigdxPom; + Histo1DPtr _h_DIS_dsigdy; + Histo1DPtr _h_DIS_dsigdQ2; + Histo1DPtr _h_DIS_dsigdEtj1; + Histo1DPtr _h_DIS_dsigdMX; + Histo1DPtr _h_DIS_dsigdDeltaEta; + Histo1DPtr _h_DIS_dsigdAvgEta; + + Histo1DPtr _h_PHO_dsigdz; + Histo1DPtr _h_PHO_dsigdxPom; + Histo1DPtr _h_PHO_dsigdy; + Histo1DPtr _h_PHO_dsigdxGam; + Histo1DPtr _h_PHO_dsigdEtj1; + Histo1DPtr _h_PHO_dsigdMX; + Histo1DPtr _h_PHO_dsigdDeltaEta; + Histo1DPtr _h_PHO_dsigdAvgEta; + + Scatter2DPtr _h_PHODIS_deltaEta; + Scatter2DPtr _h_PHODIS_y; + Scatter2DPtr _h_PHODIS_z; + Scatter2DPtr _h_PHODIS_Etj1; + //@} + + bool isPHO; + int nVeto1, nVeto2, nVeto3, nVeto4, nVeto5, nVeto6; + int nPHO, nDIS; + }; + + DECLARE_RIVET_PLUGIN(H1_2015_I1343110); + +} diff --git a/analyses/pluginHERA/H1_2015_I1343110.info b/analyses/pluginHERA/H1_2015_I1343110.info new file mode 100644 --- /dev/null +++ b/analyses/pluginHERA/H1_2015_I1343110.info @@ -0,0 +1,49 @@ +Name: H1_2015_I1343110 +Year: 2015 +Summary: Diffractive dijets in DIS and photoproduction +Experiment: H1 +Collider: HERA +InspireID: 1343110 +Status: UNVALIDATED +Authors: + - Christine O. Rasmussen + - Ilkka Helenius +References: +- JHEP 05 (2015) 056 +- arXiv:1502.01683[hep-ex] +RunInfo: + 920 GeV protons colliding with 27.5 GeV positrons; + Diffractive photoproduction of dijets; + Tagged protons.; + Jet $pT > 5$ GeV; + Note that CM energy is WRONG in HepData table.; + Has been changed by hand in YODA refdata file to correct value. +NumEvents: 1000000 +Beams: [p+, e+] +Energies: [[920, 27.5]] +PtCuts: [0] +Description: + H1 diffractive jets from proton--positron collisions at beam energies of + 920~GeV and 27.5~GeV. The cross section of the diffractive process + e+p -> e+X+p is measured at a centre-of-mass energy of 318 GeV, where the + system X contains at least two jets and the leading final state proton p is + detected in the H1 Very Forward Proton Spectrometer. The measurement is + performed in photoproduction with photon virtualities Q^2 < 2 GeV^2 and in + deep-inelastic scattering with 4 GeV^2 < Q2 < 80 GeV^2. +BibKey: Andreev:2015cwa +BibTeX: '@Article{Andreev:2015cwa, + author = "Andreev, V. and others", + title = "{Diffractive Dijet Production with a Leading Proton in + $ep$ Collisions at HERA}", + collaboration = "H1", + journal = "JHEP", + volume = "05", + year = "2015", + pages = "056", + doi = "10.1007/JHEP05(2015)056", + eprint = "1502.01683", + archivePrefix = "arXiv", + primaryClass = "hep-ex", + reportNumber = "DESY-14-242", + SLACcitation = "%%CITATION = ARXIV:1502.01683;%%" +}' diff --git a/analyses/pluginHERA/H1_2015_I1343110.plot b/analyses/pluginHERA/H1_2015_I1343110.plot new file mode 100644 --- /dev/null +++ b/analyses/pluginHERA/H1_2015_I1343110.plot @@ -0,0 +1,262 @@ +# BEGIN PLOT /H1_2015_I1343110/d01-x01-y01 +Title= Photoproduction +YLabel=$\sigma_{\gamma\mathm{p}}$ +XLabel=$\sqrt{s}$ +LogY=0 +LegendXPos=0.1 +LegendYPos=0.35 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2015_I1343110/d02-x01-y01 +Title= DIS +YLabel=$\sigma_{\mathm{DIS}}$ +XLabel=$\sqrt{s}$ +LogY=0 +LegendXPos=0.1 +LegendYPos=0.35 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2015_I1343110/d03-x01-y01 +Title= Photoproduction/DIS +YLabel=$\sigma_{\gamma\mathrm{p}}/\sigma_{\mathrm{DIS}}$ +XLabel=$\sqrt{s}$ +LogY=0 +LegendXPos=0.1 +LegendYPos=0.35 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2015_I1343110/d04-x01-y01 +Title= DIS +XLabel=$z_{\mathbb{P}}$ +YLabel=$\mathrm{d}\sigma / \mathrm{d} z_{\mathbb{P}}$ +LogY=0 +LegendXPos=0.6 +LegendYPos=0.95 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2015_I1343110/d05-x01-y01 +Title= DIS +XLabel=$x_{\mathbb{P}}$ +YLabel=$\mathrm{d}\sigma / \mathrm{d} x_{\mathbb{P}}$ +LogY=0 +LegendXPos=0.1 +LegendYPos=0.35 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2015_I1343110/d06-x01-y01 +Title=DIS +XLabel=$y$ +YLabel=$\mathrm{d}\sigma / \mathrm{d} y$ +LogY=0 +LegendXPos=0.1 +LegendYPos=0.35 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2015_I1343110/d07-x01-y01 +Title=DIS +XLabel=$Q^2$ +YLabel=$\mathrm{d}\sigma / \mathrm{d} Q^2$ +LogY=1 +LegendXPos=0.6 +LegendYPos=0.95 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2015_I1343110/d08-x01-y01 +Title=DIS +XLabel=$E_{\mathrm{T}}^{\mathrm{jet1}}$ +YLabel=$\mathrm{d}\sigma / \mathrm{d} E_{\mathrm{T}}^{\mathrm{jet1}}$ +LogY=1 +LegendXPos=0.6 +LegendYPos=0.95 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2015_I1343110/d09-x01-y01 +Title=DIS +XLabel=$M_X$ +YLabel=$\mathrm{d}\sigma / \mathrm{d} M_X$ +LogY=0 +LegendXPos=0.1 +LegendYPos=0.95 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2015_I1343110/d10-x01-y01 +Title=DIS +XLabel=$|\Delta\eta|$ +YLabel=$\mathrm{d}\sigma / \mathrm{d} |\Delta\eta|$ +LogY=0 +LegendXPos=0.6 +LegendYPos=0.95 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2015_I1343110/d11-x01-y01 +Title=DIS +XLabel=$<\eta>$ +YLabel=$\mathrm{d}\sigma / \mathrm{d} <\eta>$ +LogY=0 +LegendXPos=0.1 +LegendYPos=0.95 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2015_I1343110/d12-x01-y01 +Title= Photoproduction +XLabel=$z_{\mathbb{P}}$ +YLabel=$\mathrm{d}\sigma / \mathrm{d} z_{\mathbb{P}}$ +LogY=0 +LegendXPos=0.05 +LegendYPos=0.95 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2015_I1343110/d13-x01-y01 +Title= Photoproduction +XLabel=$x_{\mathbb{P}}$ +YLabel=$\mathrm{d}\sigma / \mathrm{d} x_{\mathbb{P}}$ +LogY=0 +LegendXPos=0.1 +LegendYPos=0.35 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2015_I1343110/d14-x01-y01 +Title=Photoproduction +XLabel=$y$ +YLabel=$\mathrm{d}\sigma / \mathrm{d} y$ +LogY=0 +LegendXPos=0.1 +LegendYPos=0.35 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2015_I1343110/d15-x01-y01 +Title=Photoproduction +XLabel=$x_{\gamma}$ +YLabel=$\mathrm{d}\sigma / \mathrm{d} x_{\gamma}$ +LogY=0 +LegendXPos=0.1 +LegendYPos=0.95 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2015_I1343110/d16-x01-y01 +Title=Photoproduction +XLabel=$E_{\mathrm{T}}^{\mathrm{jet1}}$ +YLabel=$\mathrm{d}\sigma / \mathrm{d} E_{\mathrm{T}}^{\mathrm{jet1}}$ +LogY=1 +LegendXPos=0.6 +LegendYPos=0.95 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2015_I1343110/d17-x01-y01 +Title=Photoproduction +XLabel=$M_X$ +YLabel=$\mathrm{d}\sigma / \mathrm{d} M_X$ +LogY=0 +LegendXPos=0.1 +LegendYPos=0.95 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2015_I1343110/d18-x01-y01 +Title=Photoproduction +XLabel=$|\Delta\eta|$ +YLabel=$\mathrm{d}\sigma / \mathrm{d} |\Delta\eta|$ +LogY=0 +LegendXPos=0.6 +LegendYPos=0.95 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2015_I1343110/d19-x01-y01 +Title=Photoproduction +XLabel=$<\eta>$ +YLabel=$\mathrm{d}\sigma / \mathrm{d} <\eta>$ +LogY=0 +LegendXPos=0.1 +LegendYPos=0.95 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2015_I1343110/d20-x01-y01 +Title= Photoproduction/DIS +YLabel=$\sigma_{\gamma\mathrm{p}}/\sigma_{\mathrm{DIS}}$ +XLabel=$|\Delta\eta|$ +LogY=0 +LegendXPos=0.1 +LegendYPos=0.95 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2015_I1343110/d21-x01-y01 +Title= Photoproduction/DIS +YLabel=$\sigma_{\gamma\mathrm{p}}/\sigma_{\mathrm{DIS}}$ +XLabel=$y$ +LogY=0 +LegendXPos=0.1 +LegendYPos=0.95 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2015_I1343110/d22-x01-y01 +Title= Photoproduction/DIS +YLabel=$\sigma_{\gamma\mathrm{p}}/\sigma_{\mathrm{DIS}}$ +XLabel=$z_{\mathbb{P}}$ +LogY=0 +LegendXPos=0.1 +LegendYPos=0.95 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /H1_2015_I1343110/d23-x01-y01 +Title= Photoproduction/DIS +YLabel=$\sigma_{\gamma\mathrm{p}}/\sigma_{\mathrm{DIS}}$ +XLabel=$E_T^{\mathrm{jet1}}$ +LogY=0 +LegendXPos=0.1 +LegendYPos=0.95 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# ... add more histograms as you need them ... +# BEGIN PLOT /H1_2015_I1343110/d01-x01-y01 +#Title=[Uncomment and insert title for histogram d01-x01-y01 here] +#XLabel=[Uncomment and insert x-axis label for histogram d01-x01-y01 here] +#YLabel=[Uncomment and insert y-axis label for histogram d01-x01-y01 here] +# + any additional plot settings you might like, see make-plots documentation +# END PLOT + +# ... add more histograms as you need them ... diff --git a/analyses/pluginHERA/H1_2015_I1343110.yoda b/analyses/pluginHERA/H1_2015_I1343110.yoda new file mode 100644 --- /dev/null +++ b/analyses/pluginHERA/H1_2015_I1343110.yoda @@ -0,0 +1,623 @@ +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d01-x01-y01 +IsRef=1 +Path=/REF/H1_2015_I1343110/d01-x01-y01 +Title=doi:10.17182/hepdata.73234.v1/t1 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +3.181000e+02 5.000000e-01 5.000000e-01 2.370000e+02 3.401470e+01 3.401470e+01 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d01-x01-y02 +IsRef=1 +Path=/REF/H1_2015_I1343110/d01-x01-y02 +Title=doi:10.17182/hepdata.73234.v1/t1 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +3.181000e+02 5.000000e-01 5.000000e-01 9.060000e-01 0.000000e+00 0.000000e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d02-x01-y01 +IsRef=1 +Path=/REF/H1_2015_I1343110/d02-x01-y01 +Title=doi:10.17182/hepdata.73234.v1/t2 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +3.181000e+02 5.000000e-01 5.000000e-01 3.050000e+01 3.224903e+00 3.224903e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d02-x01-y02 +IsRef=1 +Path=/REF/H1_2015_I1343110/d02-x01-y02 +Title=doi:10.17182/hepdata.73234.v1/t2 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +3.181000e+02 5.000000e-01 5.000000e-01 9.990000e-01 0.000000e+00 0.000000e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d02-x01-y03 +IsRef=1 +Path=/REF/H1_2015_I1343110/d02-x01-y03 +Title=doi:10.17182/hepdata.73234.v1/t2 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +3.181000e+02 5.000000e-01 5.000000e-01 1.022000e+00 0.000000e+00 0.000000e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d03-x01-y01 +IsRef=1 +Path=/REF/H1_2015_I1343110/d03-x01-y01 +Title=doi:10.17182/hepdata.73234.v1/t3 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +3.181000e+02 5.000000e-01 5.000000e-01 7.780000e+00 1.288255e+00 1.288255e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d04-x01-y01 +IsRef=1 +Path=/REF/H1_2015_I1343110/d04-x01-y01 +Title=doi:10.17182/hepdata.73234.v1/t4 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +1.000000e-01 1.000000e-01 1.000000e-01 3.210000e+01 8.567574e+00 8.567574e+00 +3.000000e-01 1.000000e-01 1.000000e-01 5.980000e+01 9.755285e+00 9.755285e+00 +5.000000e-01 1.000000e-01 1.000000e-01 4.800000e+01 8.586769e+00 8.586769e+00 +7.000000e-01 1.000000e-01 1.000000e-01 1.390000e+01 5.891633e+00 5.891633e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d04-x01-y02 +IsRef=1 +Path=/REF/H1_2015_I1343110/d04-x01-y02 +Title=doi:10.17182/hepdata.73234.v1/t4 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +1.000000e-01 1.000000e-01 1.000000e-01 9.160000e-01 0.000000e+00 0.000000e+00 +3.000000e-01 1.000000e-01 1.000000e-01 1.012000e+00 0.000000e+00 0.000000e+00 +5.000000e-01 1.000000e-01 1.000000e-01 1.017000e+00 0.000000e+00 0.000000e+00 +7.000000e-01 1.000000e-01 1.000000e-01 1.028000e+00 0.000000e+00 0.000000e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d04-x01-y03 +IsRef=1 +Path=/REF/H1_2015_I1343110/d04-x01-y03 +Title=doi:10.17182/hepdata.73234.v1/t4 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +1.000000e-01 1.000000e-01 1.000000e-01 1.084000e+00 0.000000e+00 0.000000e+00 +3.000000e-01 1.000000e-01 1.000000e-01 1.054000e+00 0.000000e+00 0.000000e+00 +5.000000e-01 1.000000e-01 1.000000e-01 9.960000e-01 0.000000e+00 0.000000e+00 +7.000000e-01 1.000000e-01 1.000000e-01 9.100000e-01 0.000000e+00 0.000000e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d05-x01-y01 +IsRef=1 +Path=/REF/H1_2015_I1343110/d05-x01-y01 +Title=doi:10.17182/hepdata.73234.v1/t5 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +1.200000e-02 2.000000e-03 2.000000e-03 2.250000e+03 5.550253e+02 5.550253e+02 +1.650000e-02 2.500000e-03 2.500000e-03 2.210000e+03 4.257908e+02 4.257908e+02 +2.150000e-02 2.500000e-03 2.500000e-03 2.290000e+03 3.968049e+02 3.968049e+02 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d05-x01-y02 +IsRef=1 +Path=/REF/H1_2015_I1343110/d05-x01-y02 +Title=doi:10.17182/hepdata.73234.v1/t5 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +1.200000e-02 2.000000e-03 2.000000e-03 9.980000e-01 0.000000e+00 0.000000e+00 +1.650000e-02 2.500000e-03 2.500000e-03 1.003000e+00 0.000000e+00 0.000000e+00 +2.150000e-02 2.500000e-03 2.500000e-03 9.970000e-01 0.000000e+00 0.000000e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d05-x01-y03 +IsRef=1 +Path=/REF/H1_2015_I1343110/d05-x01-y03 +Title=doi:10.17182/hepdata.73234.v1/t5 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +1.200000e-02 2.000000e-03 2.000000e-03 1.058000e+00 0.000000e+00 0.000000e+00 +1.650000e-02 2.500000e-03 2.500000e-03 1.014000e+00 0.000000e+00 0.000000e+00 +2.150000e-02 2.500000e-03 2.500000e-03 1.006000e+00 0.000000e+00 0.000000e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d06-x01-y01 +IsRef=1 +Path=/REF/H1_2015_I1343110/d06-x01-y01 +Title=doi:10.17182/hepdata.73234.v1/t6 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +2.600000e-01 6.000000e-02 6.000000e-02 7.600000e+01 1.568714e+01 1.568714e+01 +3.800000e-01 6.000000e-02 6.000000e-02 6.970000e+01 1.277052e+01 1.277052e+01 +5.000000e-01 6.000000e-02 6.000000e-02 6.540000e+01 1.189094e+01 1.189094e+01 +6.300000e-01 7.000000e-02 7.000000e-02 3.860000e+01 9.184205e+00 9.184205e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d06-x01-y02 +IsRef=1 +Path=/REF/H1_2015_I1343110/d06-x01-y02 +Title=doi:10.17182/hepdata.73234.v1/t6 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +2.600000e-01 6.000000e-02 6.000000e-02 1.060000e+00 0.000000e+00 0.000000e+00 +3.800000e-01 6.000000e-02 6.000000e-02 9.750000e-01 0.000000e+00 0.000000e+00 +5.000000e-01 6.000000e-02 6.000000e-02 9.920000e-01 0.000000e+00 0.000000e+00 +6.300000e-01 7.000000e-02 7.000000e-02 9.480000e-01 0.000000e+00 0.000000e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d06-x01-y03 +IsRef=1 +Path=/REF/H1_2015_I1343110/d06-x01-y03 +Title=doi:10.17182/hepdata.73234.v1/t6 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +2.600000e-01 6.000000e-02 6.000000e-02 9.920000e-01 0.000000e+00 0.000000e+00 +3.800000e-01 6.000000e-02 6.000000e-02 1.002000e+00 0.000000e+00 0.000000e+00 +5.000000e-01 6.000000e-02 6.000000e-02 1.056000e+00 0.000000e+00 0.000000e+00 +6.300000e-01 7.000000e-02 7.000000e-02 1.084000e+00 0.000000e+00 0.000000e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d07-x01-y01 +IsRef=1 +Path=/REF/H1_2015_I1343110/d07-x01-y01 +Title=doi:10.17182/hepdata.73234.v1/t7 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +4.500000e+00 5.000000e-01 5.000000e-01 4.830000e+00 1.351132e+00 1.351132e+00 +6.000000e+00 1.000000e+00 1.000000e+00 2.550000e+00 6.687518e-01 6.687518e-01 +9.000000e+00 2.000000e+00 2.000000e+00 1.660000e+00 3.343242e-01 3.343242e-01 +2.050000e+01 9.500000e+00 9.500000e+00 5.200000e-01 8.538457e-02 8.538457e-02 +5.500000e+01 2.500000e+01 2.500000e+01 1.040000e-01 2.724165e-02 2.724165e-02 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d07-x01-y02 +IsRef=1 +Path=/REF/H1_2015_I1343110/d07-x01-y02 +Title=doi:10.17182/hepdata.73234.v1/t7 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +4.500000e+00 5.000000e-01 5.000000e-01 9.820000e-01 0.000000e+00 0.000000e+00 +6.000000e+00 1.000000e+00 1.000000e+00 1.002000e+00 0.000000e+00 0.000000e+00 +9.000000e+00 2.000000e+00 2.000000e+00 9.740000e-01 0.000000e+00 0.000000e+00 +2.050000e+01 9.500000e+00 9.500000e+00 1.019000e+00 0.000000e+00 0.000000e+00 +5.500000e+01 2.500000e+01 2.500000e+01 1.036000e+00 0.000000e+00 0.000000e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d07-x01-y03 +IsRef=1 +Path=/REF/H1_2015_I1343110/d07-x01-y03 +Title=doi:10.17182/hepdata.73234.v1/t7 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +4.500000e+00 5.000000e-01 5.000000e-01 1.020000e+00 0.000000e+00 0.000000e+00 +6.000000e+00 1.000000e+00 1.000000e+00 1.020000e+00 0.000000e+00 0.000000e+00 +9.000000e+00 2.000000e+00 2.000000e+00 1.028000e+00 0.000000e+00 0.000000e+00 +2.050000e+01 9.500000e+00 9.500000e+00 1.034000e+00 0.000000e+00 0.000000e+00 +5.500000e+01 2.500000e+01 2.500000e+01 1.013000e+00 0.000000e+00 0.000000e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d08-x01-y01 +IsRef=1 +Path=/REF/H1_2015_I1343110/d08-x01-y01 +Title=doi:10.17182/hepdata.73234.v1/t8 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +6.250000e+00 7.500000e-01 7.500000e-01 1.124000e+01 1.630769e+00 1.630769e+00 +7.750000e+00 7.500000e-01 7.500000e-01 5.660000e+00 1.170567e+00 1.170567e+00 +9.250000e+00 7.500000e-01 7.500000e-01 2.550000e+00 1.191710e+00 1.191710e+00 +1.225000e+01 2.250000e+00 2.250000e+00 4.850000e-01 2.309761e-01 2.309761e-01 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d08-x01-y02 +IsRef=1 +Path=/REF/H1_2015_I1343110/d08-x01-y02 +Title=doi:10.17182/hepdata.73234.v1/t8 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +6.250000e+00 7.500000e-01 7.500000e-01 9.990000e-01 0.000000e+00 0.000000e+00 +7.750000e+00 7.500000e-01 7.500000e-01 9.860000e-01 0.000000e+00 0.000000e+00 +9.250000e+00 7.500000e-01 7.500000e-01 1.050000e+00 0.000000e+00 0.000000e+00 +1.225000e+01 2.250000e+00 2.250000e+00 9.610000e-01 0.000000e+00 0.000000e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d08-x01-y03 +IsRef=1 +Path=/REF/H1_2015_I1343110/d08-x01-y03 +Title=doi:10.17182/hepdata.73234.v1/t8 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +6.250000e+00 7.500000e-01 7.500000e-01 1.006000e+00 0.000000e+00 0.000000e+00 +7.750000e+00 7.500000e-01 7.500000e-01 1.034000e+00 0.000000e+00 0.000000e+00 +9.250000e+00 7.500000e-01 7.500000e-01 1.112000e+00 0.000000e+00 0.000000e+00 +1.225000e+01 2.250000e+00 2.250000e+00 9.760000e-01 0.000000e+00 0.000000e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d09-x01-y01 +IsRef=1 +Path=/REF/H1_2015_I1343110/d09-x01-y01 +Title=doi:10.17182/hepdata.73234.v1/t9 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +1.500000e+01 5.000000e+00 5.000000e+00 2.000000e-01 2.698611e-01 2.698611e-01 +2.400000e+01 4.000000e+00 4.000000e+00 2.060000e+00 2.932227e-01 2.932227e-01 +3.200000e+01 4.000000e+00 4.000000e+00 1.430000e+00 2.477864e-01 2.477864e-01 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d09-x01-y02 +IsRef=1 +Path=/REF/H1_2015_I1343110/d09-x01-y02 +Title=doi:10.17182/hepdata.73234.v1/t9 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +1.500000e+01 5.000000e+00 5.000000e+00 1.024000e+00 0.000000e+00 0.000000e+00 +2.400000e+01 4.000000e+00 4.000000e+00 1.026000e+00 0.000000e+00 0.000000e+00 +3.200000e+01 4.000000e+00 4.000000e+00 9.520000e-01 0.000000e+00 0.000000e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d09-x01-y03 +IsRef=1 +Path=/REF/H1_2015_I1343110/d09-x01-y03 +Title=doi:10.17182/hepdata.73234.v1/t9 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +1.500000e+01 5.000000e+00 5.000000e+00 9.770000e-01 0.000000e+00 0.000000e+00 +2.400000e+01 4.000000e+00 4.000000e+00 1.021000e+00 0.000000e+00 0.000000e+00 +3.200000e+01 4.000000e+00 4.000000e+00 1.046000e+00 0.000000e+00 0.000000e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d10-x01-y01 +IsRef=1 +Path=/REF/H1_2015_I1343110/d10-x01-y01 +Title=doi:10.17182/hepdata.73234.v1/t10 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +2.500000e-01 2.500000e-01 2.500000e-01 2.480000e+01 4.022266e+00 4.022266e+00 +7.500000e-01 2.500000e-01 2.500000e-01 1.600000e+01 3.472590e+00 3.472590e+00 +1.250000e+00 2.500000e-01 2.500000e-01 1.310000e+01 3.128268e+00 3.128268e+00 +1.750000e+00 2.500000e-01 2.500000e-01 7.800000e+00 2.672305e+00 2.672305e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d10-x01-y02 +IsRef=1 +Path=/REF/H1_2015_I1343110/d10-x01-y02 +Title=doi:10.17182/hepdata.73234.v1/t10 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +2.500000e-01 2.500000e-01 2.500000e-01 1.015000e+00 0.000000e+00 0.000000e+00 +7.500000e-01 2.500000e-01 2.500000e-01 1.002000e+00 0.000000e+00 0.000000e+00 +1.250000e+00 2.500000e-01 2.500000e-01 9.680000e-01 0.000000e+00 0.000000e+00 +1.750000e+00 2.500000e-01 2.500000e-01 9.660000e-01 0.000000e+00 0.000000e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d10-x01-y03 +IsRef=1 +Path=/REF/H1_2015_I1343110/d10-x01-y03 +Title=doi:10.17182/hepdata.73234.v1/t10 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +2.500000e-01 2.500000e-01 2.500000e-01 1.004000e+00 0.000000e+00 0.000000e+00 +7.500000e-01 2.500000e-01 2.500000e-01 1.046000e+00 0.000000e+00 0.000000e+00 +1.250000e+00 2.500000e-01 2.500000e-01 1.030000e+00 0.000000e+00 0.000000e+00 +1.750000e+00 2.500000e-01 2.500000e-01 1.030000e+00 0.000000e+00 0.000000e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d11-x01-y01 +IsRef=1 +Path=/REF/H1_2015_I1343110/d11-x01-y01 +Title=doi:10.17182/hepdata.73234.v1/t11 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +-7.250000e-01 2.750000e-01 2.750000e-01 1.030000e+01 2.455681e+00 2.455681e+00 +-2.500000e-01 2.000000e-01 2.000000e-01 3.010000e+01 4.685556e+00 4.685556e+00 +1.000000e-01 1.500000e-01 1.500000e-01 3.000000e+01 5.646539e+00 5.646539e+00 +4.500000e-01 2.000000e-01 2.000000e-01 9.200000e+00 3.509749e+00 3.509749e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d11-x01-y02 +IsRef=1 +Path=/REF/H1_2015_I1343110/d11-x01-y02 +Title=doi:10.17182/hepdata.73234.v1/t11 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +-7.250000e-01 2.750000e-01 2.750000e-01 1.011000e+00 0.000000e+00 0.000000e+00 +-2.500000e-01 2.000000e-01 2.000000e-01 1.021000e+00 0.000000e+00 0.000000e+00 +1.000000e-01 1.500000e-01 1.500000e-01 9.940000e-01 0.000000e+00 0.000000e+00 +4.500000e-01 2.000000e-01 2.000000e-01 9.210000e-01 0.000000e+00 0.000000e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d11-x01-y03 +IsRef=1 +Path=/REF/H1_2015_I1343110/d11-x01-y03 +Title=doi:10.17182/hepdata.73234.v1/t11 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +-7.250000e-01 2.750000e-01 2.750000e-01 9.050000e-01 0.000000e+00 0.000000e+00 +-2.500000e-01 2.000000e-01 2.000000e-01 1.011000e+00 0.000000e+00 0.000000e+00 +1.000000e-01 1.500000e-01 1.500000e-01 1.056000e+00 0.000000e+00 0.000000e+00 +4.500000e-01 2.000000e-01 2.000000e-01 1.171000e+00 0.000000e+00 0.000000e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d12-x01-y01 +IsRef=1 +Path=/REF/H1_2015_I1343110/d12-x01-y01 +Title=doi:10.17182/hepdata.73234.v1/t12 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +1.000000e-01 1.000000e-01 1.000000e-01 7.300000e+01 4.375642e+01 4.375642e+01 +3.000000e-01 1.000000e-01 1.000000e-01 3.660000e+02 8.649533e+01 8.649533e+01 +5.000000e-01 1.000000e-01 1.000000e-01 4.130000e+02 8.893416e+01 8.893416e+01 +7.000000e-01 1.000000e-01 1.000000e-01 2.980000e+02 7.628451e+01 7.628451e+01 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d12-x01-y02 +IsRef=1 +Path=/REF/H1_2015_I1343110/d12-x01-y02 +Title=doi:10.17182/hepdata.73234.v1/t12 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +1.000000e-01 1.000000e-01 1.000000e-01 7.540000e-01 0.000000e+00 0.000000e+00 +3.000000e-01 1.000000e-01 1.000000e-01 8.330000e-01 0.000000e+00 0.000000e+00 +5.000000e-01 1.000000e-01 1.000000e-01 9.280000e-01 0.000000e+00 0.000000e+00 +7.000000e-01 1.000000e-01 1.000000e-01 1.017000e+00 0.000000e+00 0.000000e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d13-x01-y01 +IsRef=1 +Path=/REF/H1_2015_I1343110/d13-x01-y01 +Title=doi:10.17182/hepdata.73234.v1/t13 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +1.200000e-02 2.000000e-03 2.000000e-03 1.780000e+04 3.348104e+03 3.348104e+03 +1.650000e-02 2.500000e-03 2.500000e-03 1.530000e+04 2.736691e+03 2.736691e+03 +2.150000e-02 2.500000e-03 2.500000e-03 1.790000e+04 5.193129e+03 5.193129e+03 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d13-x01-y02 +IsRef=1 +Path=/REF/H1_2015_I1343110/d13-x01-y02 +Title=doi:10.17182/hepdata.73234.v1/t13 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +1.200000e-02 2.000000e-03 2.000000e-03 9.330000e-01 0.000000e+00 0.000000e+00 +1.650000e-02 2.500000e-03 2.500000e-03 9.160000e-01 0.000000e+00 0.000000e+00 +2.150000e-02 2.500000e-03 2.500000e-03 8.820000e-01 0.000000e+00 0.000000e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d14-x01-y01 +IsRef=1 +Path=/REF/H1_2015_I1343110/d14-x01-y01 +Title=doi:10.17182/hepdata.73234.v1/t14 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +2.600000e-01 6.000000e-02 6.000000e-02 6.200000e+02 1.560837e+02 1.560837e+02 +3.800000e-01 6.000000e-02 6.000000e-02 5.410000e+02 1.190016e+02 1.190016e+02 +5.000000e-01 6.000000e-02 6.000000e-02 4.080000e+02 1.087739e+02 1.087739e+02 +6.300000e-01 7.000000e-02 7.000000e-02 3.420000e+02 7.948024e+01 7.948024e+01 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d14-x01-y02 +IsRef=1 +Path=/REF/H1_2015_I1343110/d14-x01-y02 +Title=doi:10.17182/hepdata.73234.v1/t14 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +2.600000e-01 6.000000e-02 6.000000e-02 8.580000e-01 0.000000e+00 0.000000e+00 +3.800000e-01 6.000000e-02 6.000000e-02 9.140000e-01 0.000000e+00 0.000000e+00 +5.000000e-01 6.000000e-02 6.000000e-02 9.570000e-01 0.000000e+00 0.000000e+00 +6.300000e-01 7.000000e-02 7.000000e-02 9.130000e-01 0.000000e+00 0.000000e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d15-x01-y01 +IsRef=1 +Path=/REF/H1_2015_I1343110/d15-x01-y01 +Title=doi:10.17182/hepdata.73234.v1/t15 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +1.500000e-01 1.500000e-01 1.500000e-01 6.500000e+01 4.965804e+01 4.965804e+01 +4.500000e-01 1.500000e-01 1.500000e-01 1.800000e+02 5.183781e+01 5.183781e+01 +7.000000e-01 1.000000e-01 1.000000e-01 3.970000e+02 9.235094e+01 9.235094e+01 +9.000000e-01 1.000000e-01 1.000000e-01 3.670000e+02 6.187624e+01 6.187624e+01 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d15-x01-y02 +IsRef=1 +Path=/REF/H1_2015_I1343110/d15-x01-y02 +Title=doi:10.17182/hepdata.73234.v1/t15 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +1.500000e-01 1.500000e-01 1.500000e-01 6.540000e-01 0.000000e+00 0.000000e+00 +4.500000e-01 1.500000e-01 1.500000e-01 8.840000e-01 0.000000e+00 0.000000e+00 +7.000000e-01 1.000000e-01 1.000000e-01 1.536000e+00 0.000000e+00 0.000000e+00 +9.000000e-01 1.000000e-01 1.000000e-01 6.830000e-01 0.000000e+00 0.000000e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d16-x01-y01 +IsRef=1 +Path=/REF/H1_2015_I1343110/d16-x01-y01 +Title=doi:10.17182/hepdata.73234.v1/t16 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +6.250000e+00 7.500000e-01 7.500000e-01 9.100000e+01 1.930444e+01 1.930444e+01 +7.750000e+00 7.500000e-01 7.500000e-01 4.560000e+01 1.244220e+01 1.244220e+01 +9.250000e+00 7.500000e-01 7.500000e-01 1.120000e+01 6.276089e+00 6.276089e+00 +1.225000e+01 2.250000e+00 2.250000e+00 1.150000e+00 1.058962e+00 1.058962e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d16-x01-y02 +IsRef=1 +Path=/REF/H1_2015_I1343110/d16-x01-y02 +Title=doi:10.17182/hepdata.73234.v1/t16 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +6.250000e+00 7.500000e-01 7.500000e-01 8.770000e-01 0.000000e+00 0.000000e+00 +7.750000e+00 7.500000e-01 7.500000e-01 9.910000e-01 0.000000e+00 0.000000e+00 +9.250000e+00 7.500000e-01 7.500000e-01 9.560000e-01 0.000000e+00 0.000000e+00 +1.225000e+01 2.250000e+00 2.250000e+00 8.400000e-01 0.000000e+00 0.000000e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d17-x01-y01 +IsRef=1 +Path=/REF/H1_2015_I1343110/d17-x01-y01 +Title=doi:10.17182/hepdata.73234.v1/t17 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +1.500000e+01 5.000000e+00 5.000000e+00 2.470000e+00 1.097286e+00 1.097286e+00 +2.400000e+01 4.000000e+00 4.000000e+00 1.320000e+01 2.564268e+00 2.564268e+00 +3.200000e+01 4.000000e+00 4.000000e+00 1.240000e+01 2.753247e+00 2.753247e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d17-x01-y02 +IsRef=1 +Path=/REF/H1_2015_I1343110/d17-x01-y02 +Title=doi:10.17182/hepdata.73234.v1/t17 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +1.500000e+01 5.000000e+00 5.000000e+00 8.990000e-01 0.000000e+00 0.000000e+00 +2.400000e+01 4.000000e+00 4.000000e+00 9.250000e-01 0.000000e+00 0.000000e+00 +3.200000e+01 4.000000e+00 4.000000e+00 9.330000e-01 0.000000e+00 0.000000e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d18-x01-y01 +IsRef=1 +Path=/REF/H1_2015_I1343110/d18-x01-y01 +Title=doi:10.17182/hepdata.73234.v1/t18 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +2.500000e-01 2.500000e-01 2.500000e-01 1.710000e+02 2.558437e+01 2.558437e+01 +7.500000e-01 2.500000e-01 2.500000e-01 1.470000e+02 2.712220e+01 2.712220e+01 +1.250000e+00 2.500000e-01 2.500000e-01 9.300000e+01 2.178683e+01 2.178683e+01 +1.750000e+00 2.500000e-01 2.500000e-01 4.100000e+01 1.595638e+01 1.595638e+01 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d18-x01-y02 +IsRef=1 +Path=/REF/H1_2015_I1343110/d18-x01-y02 +Title=doi:10.17182/hepdata.73234.v1/t18 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +2.500000e-01 2.500000e-01 2.500000e-01 8.720000e-01 0.000000e+00 0.000000e+00 +7.500000e-01 2.500000e-01 2.500000e-01 9.050000e-01 0.000000e+00 0.000000e+00 +1.250000e+00 2.500000e-01 2.500000e-01 9.360000e-01 0.000000e+00 0.000000e+00 +1.750000e+00 2.500000e-01 2.500000e-01 9.780000e-01 0.000000e+00 0.000000e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d19-x01-y01 +IsRef=1 +Path=/REF/H1_2015_I1343110/d19-x01-y01 +Title=doi:10.17182/hepdata.73234.v1/t19 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +-7.250000e-01 2.750000e-01 2.750000e-01 4.840000e+01 9.001489e+00 9.001489e+00 +-2.500000e-01 2.000000e-01 2.000000e-01 1.750000e+02 2.853359e+01 2.853359e+01 +1.000000e-01 1.500000e-01 1.500000e-01 2.640000e+02 4.349595e+01 4.349595e+01 +4.500000e-01 2.000000e-01 2.000000e-01 1.340000e+02 3.725224e+01 3.725224e+01 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d19-x01-y02 +IsRef=1 +Path=/REF/H1_2015_I1343110/d19-x01-y02 +Title=doi:10.17182/hepdata.73234.v1/t19 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +-7.250000e-01 2.750000e-01 2.750000e-01 7.950000e-01 0.000000e+00 0.000000e+00 +-2.500000e-01 2.000000e-01 2.000000e-01 8.810000e-01 0.000000e+00 0.000000e+00 +1.000000e-01 1.500000e-01 1.500000e-01 9.710000e-01 0.000000e+00 0.000000e+00 +4.500000e-01 2.000000e-01 2.000000e-01 9.760000e-01 0.000000e+00 0.000000e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d20-x01-y01 +IsRef=1 +Path=/REF/H1_2015_I1343110/d20-x01-y01 +Title=doi:10.17182/hepdata.73234.v1/t20 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +2.500000e-01 2.500000e-01 2.500000e-01 6.900000e+00 1.449082e+00 1.449082e+00 +7.500000e-01 2.500000e-01 2.500000e-01 9.200000e+00 2.595542e+00 2.595542e+00 +1.250000e+00 2.500000e-01 2.500000e-01 7.100000e+00 2.376592e+00 2.376592e+00 +1.750000e+00 2.500000e-01 2.500000e-01 5.200000e+00 2.653784e+00 2.653784e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d20-x01-y02 +IsRef=1 +Path=/REF/H1_2015_I1343110/d20-x01-y02 +Title=doi:10.17182/hepdata.73234.v1/t20 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +2.500000e-01 2.500000e-01 2.500000e-01 8.670000e-01 0.000000e+00 0.000000e+00 +7.500000e-01 2.500000e-01 2.500000e-01 8.650000e-01 0.000000e+00 0.000000e+00 +1.250000e+00 2.500000e-01 2.500000e-01 9.080000e-01 0.000000e+00 0.000000e+00 +1.750000e+00 2.500000e-01 2.500000e-01 9.510000e-01 0.000000e+00 0.000000e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d21-x01-y01 +IsRef=1 +Path=/REF/H1_2015_I1343110/d21-x01-y01 +Title=doi:10.17182/hepdata.73234.v1/t21 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +2.600000e-01 6.000000e-02 6.000000e-02 8.000000e+00 2.556923e+00 2.556923e+00 +3.800000e-01 6.000000e-02 6.000000e-02 7.700000e+00 2.167314e+00 2.167314e+00 +5.000000e-01 6.000000e-02 6.000000e-02 6.200000e+00 2.002379e+00 2.002379e+00 +6.300000e-01 7.000000e-02 7.000000e-02 8.900000e+00 2.814554e+00 2.814554e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d21-x01-y02 +IsRef=1 +Path=/REF/H1_2015_I1343110/d21-x01-y02 +Title=doi:10.17182/hepdata.73234.v1/t21 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +2.600000e-01 6.000000e-02 6.000000e-02 8.640000e-01 0.000000e+00 0.000000e+00 +3.800000e-01 6.000000e-02 6.000000e-02 9.120000e-01 0.000000e+00 0.000000e+00 +5.000000e-01 6.000000e-02 6.000000e-02 9.070000e-01 0.000000e+00 0.000000e+00 +6.300000e-01 7.000000e-02 7.000000e-02 8.410000e-01 0.000000e+00 0.000000e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d22-x01-y01 +IsRef=1 +Path=/REF/H1_2015_I1343110/d22-x01-y01 +Title=doi:10.17182/hepdata.73234.v1/t22 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +1.000000e-01 1.000000e-01 1.000000e-01 2.290000e+00 1.567528e+00 1.567528e+00 +3.000000e-01 1.000000e-01 1.000000e-01 6.100000e+00 1.704696e+00 1.704696e+00 +5.000000e-01 1.000000e-01 1.000000e-01 8.500000e+00 2.239520e+00 2.239520e+00 +7.000000e-01 1.000000e-01 1.000000e-01 2.140000e+01 1.040553e+01 1.040553e+01 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d22-x01-y02 +IsRef=1 +Path=/REF/H1_2015_I1343110/d22-x01-y02 +Title=doi:10.17182/hepdata.73234.v1/t22 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +1.000000e-01 1.000000e-01 1.000000e-01 6.970000e-01 0.000000e+00 0.000000e+00 +3.000000e-01 1.000000e-01 1.000000e-01 7.900000e-01 0.000000e+00 0.000000e+00 +5.000000e-01 1.000000e-01 1.000000e-01 9.320000e-01 0.000000e+00 0.000000e+00 +7.000000e-01 1.000000e-01 1.000000e-01 1.116000e+00 0.000000e+00 0.000000e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d23-x01-y01 +IsRef=1 +Path=/REF/H1_2015_I1343110/d23-x01-y01 +Title=doi:10.17182/hepdata.73234.v1/t23 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +6.250000e+00 7.500000e-01 7.500000e-01 8.000000e+00 2.129518e+00 2.129518e+00 +7.750000e+00 7.500000e-01 7.500000e-01 8.050000e+00 2.363097e+00 2.363097e+00 +9.250000e+00 7.500000e-01 7.500000e-01 4.400000e+00 2.982749e+00 2.982749e+00 +1.225000e+01 2.250000e+00 2.250000e+00 2.400000e+00 2.417634e+00 2.417634e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/H1_2015_I1343110/d23-x01-y02 +IsRef=1 +Path=/REF/H1_2015_I1343110/d23-x01-y02 +Title=doi:10.17182/hepdata.73234.v1/t23 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +6.250000e+00 7.500000e-01 7.500000e-01 8.720000e-01 0.000000e+00 0.000000e+00 +7.750000e+00 7.500000e-01 7.500000e-01 9.570000e-01 0.000000e+00 0.000000e+00 +9.250000e+00 7.500000e-01 7.500000e-01 8.580000e-01 0.000000e+00 0.000000e+00 +1.225000e+01 2.250000e+00 2.250000e+00 8.590000e-01 0.000000e+00 0.000000e+00 +END YODA_SCATTER2D + diff --git a/analyses/pluginHERA/HERA_2015_I1353667.cc b/analyses/pluginHERA/HERA_2015_I1353667.cc new file mode 100644 --- /dev/null +++ b/analyses/pluginHERA/HERA_2015_I1353667.cc @@ -0,0 +1,99 @@ +// -*- C++ -*- +#include "Rivet/Analysis.hh" +#include "Rivet/Projections/FinalState.hh" +#include "Rivet/Projections/DISKinematics.hh" +#include "Rivet/Projections/UnstableParticles.hh" + +namespace Rivet { + + + /// @brief Combined H1/ZEUS D* production cross-sections in DIS + class HERA_2015_I1353667 : public Analysis { + public: + + /// Constructor + DEFAULT_RIVET_ANALYSIS_CTOR(HERA_2015_I1353667); + + + /// @name Analysis methods + //@{ + + /// Book histograms and initialise projections before the run + void init() { + + // Initialise and register projections + // declare(FinalState(Cuts::abseta < 5 && Cuts::pT > 100*MeV), "FS"); + // FinalState fs; + declare(DISKinematics(), "Kinematics"); + declare(UnstableParticles(), "Dstars"); + //Cuts::abspid == PID::DSTARPLUS + + // Book histograms + _h_pTD = bookHisto1D(1, 1, 1); + _h_etaD = bookHisto1D(2, 1, 1); + _h_zD = bookHisto1D(3, 1, 1); + _h_Q2 = bookHisto1D(4, 1, 1); + _h_y = bookHisto1D(5, 1, 1); + // _h_Q2y = bookHisto2D(6, 1, 1); + } + + + /// Perform the per-event analysis + void analyze(const Event& event) { + + // Determine kinematics, including event orientation + const DISKinematics& kin = apply(event, "Kinematics"); + //const int orientation = kin.orientation(); + + // Q2 and inelasticity cuts + if (!inRange(kin.Q2(), 1.5*GeV2, 1000*GeV2)) vetoEvent; + if (!inRange(kin.y(), 0.02, 0.7)) vetoEvent; + + + // D* reconstruction + const Particles unstables = apply(event, "Dstars") + .particles(Cuts::pT > 1.5*GeV && Cuts::abseta < 1.5); + const Particles dstars = filter_select(unstables, [](const Particle& p){ return p.abspid() == PID::DSTARPLUS; }); + if (dstars.empty()) vetoEvent; + MSG_DEBUG("#D* = " << dstars.size()); + const Particle& dstar = dstars.front(); + const double zD = (dstar.E() - dstar.pz()) / (2*kin.beamLepton().E()*kin.y()); + + // Single-differential histograms with higher low-Q2 cut + if (kin.Q2() > 5*GeV2) { + _h_pTD->fill(dstar.pT()/GeV, event.weight()); + _h_etaD->fill(dstar.eta(), event.weight()); + _h_zD->fill(zD/GeV, event.weight()); + _h_Q2->fill(kin.Q2()/GeV2, event.weight()); + _h_y->fill(kin.y(), event.weight()); + } + + // // Double-differential (y,Q2) histograms + // _h_Q2y->fill(kin.Q2()/GeV2, kin.y(), event.weight()); + + } + + + /// Normalise histograms etc., after the run + void finalize() { + scale({_h_pTD, _h_etaD, _h_zD, _h_Q2, _h_y}, crossSection()/nanobarn/sumOfWeights()); + } + + //@} + + + /// @name Histograms + //@{ + Histo1DPtr _h_pTD, _h_etaD, _h_zD, _h_Q2, _h_y; + Histo2DPtr _h_Q2y; + //@} + + + }; + + + // The hook for the plugin system + DECLARE_RIVET_PLUGIN(HERA_2015_I1353667); + + +} diff --git a/analyses/pluginHERA/HERA_2015_I1353667.info b/analyses/pluginHERA/HERA_2015_I1353667.info new file mode 100644 --- /dev/null +++ b/analyses/pluginHERA/HERA_2015_I1353667.info @@ -0,0 +1,47 @@ +Name: HERA_2015_I1353667 +Year: 2015 +Summary: Combined H1/ZEUS $D^*$ production cross-sections in DIS +Experiment: H1/ZEUS +Collider: HERA +InspireID: 1353667 +Status: UNVALIDATED +Authors: + - Andy Buckley +References: +- 'JHEP 1509 (2015) 149' +- 'DOI:10.1007/JHEP09(2015)149' +- 'DESY-15-037' +- 'arxiv:1503.06042' +- 'http://www-h1.desy.de/publications/htmlsplit/DESY-15-037.long.poster.html' +RunInfo: 'Inclusive DIS events. $Q^2$ cut must be lower than 1.5 $\GeV^2$.' +NeedCrossSection: yes +Beams: [[p+, e-], [p+, e+]] +Energies: [318] +Description: + H1 and ZEUS combined differential cross-sections for inclusive $D^{*\pm}$ + production in deep-inelastic $ep$ scattering at HERA. The cross-sections + are combined in the common visible phase-space region of photon virtuality + $Q^2 > 5 \GeV^2$, electron inelasticity $0.02 < y < 0.7$, and the $D^{*\pm}$ + meson's transverse momentum $p_T(D^*) > 1.5 \GeV$ and pseudorapidity + $|\eta(D^*)| < 1.5$. The combination procedure takes into account all + correlations. Double-differential cross sections $d2\sigma/dQ^2 dy$ + are combined with earlier $D^{∗\pm}$ data, extending the kinematic range + down to $Q^2 > 1.5 \GeV^2$. +Keywords: [ep dis dstar] +BibKey: H1:2015dma +BibTeX: '@article{H1:2015dma, + author = "Abramowicz, H. and others", + title = "{Combination of differential D$^{∗\pm}$ cross-section + measurements in deep-inelastic ep scattering at HERA}", + collaboration = "H1, ZEUS", + journal = "JHEP", + volume = "09", + year = "2015", + pages = "149", + doi = "10.1007/JHEP09(2015)149", + eprint = "1503.06042", + archivePrefix = "arXiv", + primaryClass = "hep-ex", + reportNumber = "DESY-15-037", + SLACcitation = "%%CITATION = ARXIV:1503.06042;%%" +}' diff --git a/analyses/pluginHERA/HERA_2015_I1353667.plot b/analyses/pluginHERA/HERA_2015_I1353667.plot new file mode 100644 --- /dev/null +++ b/analyses/pluginHERA/HERA_2015_I1353667.plot @@ -0,0 +1,31 @@ +BEGIN PLOT /HERA_2015_I1353667/d01-x01-y01 +Title= +XLabel=$p_\perp(D^*)$ [GeV] +YLabel=$\mathrm{d}\sigma/\mathrm{d}p_\perp(D^*)$ [GeV$^{-1}$] +LogX=1 +END PLOT + +BEGIN PLOT /HERA_2015_I1353667/d02-x01-y01 +Title= +XLabel=$\eta(D^*)$ +YLabel=$\mathrm{d}\sigma/\mathrm{d}\eta(D^*)$ +END PLOT + +BEGIN PLOT /HERA_2015_I1353667/d03-x01-y01 +Title= +XLabel=$z(D^*)$ +YLabel=$\mathrm{d}\sigma/\mathrm{d}z(D^*)$ +END PLOT + +BEGIN PLOT /HERA_2015_I1353667/d04-x01-y01 +Title= +XLabel=$Q^2$ [GeV$^2$] +YLabel=$\mathrm{d}\sigma/\mathrm{d}Q^2$ [GeV$^{-2}$] +LogX=1 +END PLOT + +BEGIN PLOT /HERA_2015_I1353667/d05-x01-y01 +Title= +XLabel=$y$ +YLabel=$\mathrm{d}\sigma/\mathrm{d}y$ +END PLOT diff --git a/analyses/pluginHERA/HERA_2015_I1353667.yoda b/analyses/pluginHERA/HERA_2015_I1353667.yoda new file mode 100644 --- /dev/null +++ b/analyses/pluginHERA/HERA_2015_I1353667.yoda @@ -0,0 +1,154 @@ +BEGIN YODA_SCATTER2D_V2 /REF/HERA_2015_I1353667/d01-x01-y01 +Variations: [""] +ErrorBreakdown: {0: {stat: {dn: -0.1504, up: 0.1504}, 'sys,cor': {dn: -0.11045, up: 0.11045}}, 1: {stat: {dn: -0.10878000000000002, up: 0.10878000000000002}, 'sys,cor': {dn: -0.09324, up: 0.09324}}, 2: {stat: {dn: -0.07325999999999999, up: 0.07325999999999999}, 'sys,cor': {dn: -0.07919999999999999, up: 0.07919999999999999}}, 3: {stat: {dn: -0.05425, up: 0.05425}, 'sys,cor': {dn: -0.057350000000000005, up: 0.057350000000000005}}, 4: {stat: {dn: -0.0444, up: 0.0444}, 'sys,cor': {dn: -0.042, up: 0.042}}, 5: {stat: {dn: -0.029728, up: 0.029728}, 'sys,cor': {dn: -0.031585999999999996, up: 0.031585999999999996}}, 6: {stat: {dn: -0.01842, up: 0.01842}, 'sys,cor': {dn: -0.02149, up: 0.02149}}, 7: {stat: {dn: -0.009889, up: 0.009889}, 'sys,cor': {dn: -0.010527, up: 0.010527}}, 8: {stat: {dn: -0.00437, up: 0.00437}, 'sys,cor': {dn: -0.004255, up: 0.004255}}, 9: {stat: {dn: -0.0017928, up: 0.0017928}, 'sys,cor': {dn: -0.0012284, up: 0.0012284}}, 10: {stat: {dn: -0.0003952, up: 0.0003952}, 'sys,cor': {dn: -0.00024320000000000003, up: 0.00024320000000000003}}} + +IsRef: 1 +Path: /REF/HERA_2015_I1353667/d01-x01-y01 +Title: doi:10.17182/hepdata.73328.v1/t1 +Type: Scatter2D +--- +# xval xerr- xerr+ yval yerr- yerr+ +1.690000e+00 1.900000e-01 1.900000e-01 2.350000e+00 1.865995e-01 1.865995e-01 +2.080000e+00 2.000000e-01 2.000000e-01 2.220000e+00 1.432717e-01 1.432717e-01 +2.480000e+00 2.000000e-01 2.000000e-01 1.980000e+00 1.078873e-01 1.078873e-01 +2.880000e+00 2.000000e-01 2.000000e-01 1.550000e+00 7.894356e-02 7.894356e-02 +3.290000e+00 2.100000e-01 2.100000e-01 1.200000e+00 6.111759e-02 6.111759e-02 +3.750000e+00 2.500000e-01 2.500000e-01 9.290000e-01 4.337545e-02 4.337545e-02 +4.375000e+00 3.750000e-01 3.750000e-01 6.140000e-01 2.830400e-02 2.830400e-02 +5.375000e+00 6.250000e-01 6.250000e-01 3.190000e-01 1.444334e-02 1.444334e-02 +7.000000e+00 1.000000e+00 1.000000e+00 1.150000e-01 6.099338e-03 6.099338e-03 +9.500000e+00 1.500000e+00 1.500000e+00 3.320000e-02 2.173269e-03 2.173269e-03 +1.550000e+01 4.500000e+00 4.500000e+00 3.800000e-03 4.640359e-04 4.640359e-04 +END YODA_SCATTER2D_V2 +BEGIN YODA_SCATTER2D_V2 /REF/HERA_2015_I1353667/d02-x01-y01 +Variations: [""] +ErrorBreakdown: {0: {stat: {dn: -0.07888, up: 0.07888}, 'sys,cor': {dn: -0.058480000000000004, up: 0.058480000000000004}}, 1: {stat: {dn: -0.06992, up: 0.06992}, 'sys,cor': {dn: -0.0608, up: 0.0608}}, 2: {stat: {dn: -0.07314, up: 0.07314}, 'sys,cor': {dn: -0.0636, up: 0.0636}}, 3: {stat: {dn: -0.06802, up: 0.06802}, 'sys,cor': {dn: -0.06265, up: 0.06265}}, 4: {stat: {dn: -0.06954, up: 0.06954}, 'sys,cor': {dn: -0.06039, up: 0.06039}}, 5: {stat: {dn: -0.07182, up: 0.07182}, 'sys,cor': {dn: -0.06993, up: 0.06993}}, 6: {stat: {dn: -0.07440000000000001, up: 0.07440000000000001}, 'sys,cor': {dn: -0.06324, up: 0.06324}}, 7: {stat: {dn: -0.07519999999999999, up: 0.07519999999999999}, 'sys,cor': {dn: -0.06767999999999999, up: 0.06767999999999999}}, 8: {stat: {dn: -0.07830999999999999, up: 0.07830999999999999}, 'sys,cor': {dn: -0.06684999999999999, up: 0.06684999999999999}}, 9: {stat: {dn: -0.08256, up: 0.08256}, 'sys,cor': {dn: -0.0768, up: 0.0768}}, 10: {stat: {dn: -0.09776, up: 0.09776}, 'sys,cor': {dn: -0.0832, up: 0.0832}}, 11: {stat: {dn: -0.11403, up: 0.11403}, 'sys,cor': {dn: -0.08688, up: 0.08688}}} + +IsRef: 1 +Path: /REF/HERA_2015_I1353667/d02-x01-y01 +Title: doi:10.17182/hepdata.73328.v1/t2 +Type: Scatter2D +--- +# xval xerr- xerr+ yval yerr- yerr+ +-1.375000e+00 1.250000e-01 1.250000e-01 1.360000e+00 9.819351e-02 9.819351e-02 +-1.125000e+00 1.250000e-01 1.250000e-01 1.520000e+00 9.265768e-02 9.265768e-02 +-8.750000e-01 1.250000e-01 1.250000e-01 1.590000e+00 9.692481e-02 9.692481e-02 +-6.250000e-01 1.250000e-01 1.250000e-01 1.790000e+00 9.247563e-02 9.247563e-02 +-3.750000e-01 1.250000e-01 1.250000e-01 1.830000e+00 9.210192e-02 9.210192e-02 +-1.250000e-01 1.250000e-01 1.250000e-01 1.890000e+00 1.002413e-01 1.002413e-01 +1.250000e-01 1.250000e-01 1.250000e-01 1.860000e+00 9.764557e-02 9.764557e-02 +3.750000e-01 1.250000e-01 1.250000e-01 1.880000e+00 1.011713e-01 1.011713e-01 +6.250000e-01 1.250000e-01 1.250000e-01 1.910000e+00 1.029630e-01 1.029630e-01 +8.750000e-01 1.250000e-01 1.250000e-01 1.920000e+00 1.127581e-01 1.127581e-01 +1.125000e+00 1.250000e-01 1.250000e-01 2.080000e+00 1.283716e-01 1.283716e-01 +1.375000e+00 1.250000e-01 1.250000e-01 1.810000e+00 1.433561e-01 1.433561e-01 +END YODA_SCATTER2D_V2 +BEGIN YODA_SCATTER2D_V2 /REF/HERA_2015_I1353667/d03-x01-y01 +Variations: [""] +ErrorBreakdown: {0: {stat: {dn: -0.3116, up: 0.3116}, 'sys,cor': {dn: -0.19352, up: 0.19352}}, 1: {stat: {dn: -0.35279999999999995, up: 0.35279999999999995}, 'sys,cor': {dn: -0.46304999999999996, up: 0.46304999999999996}}, 2: {stat: {dn: -0.30135, up: 0.30135}, 'sys,cor': {dn: -0.39605999999999997, up: 0.39605999999999997}}, 3: {stat: {dn: -0.24084000000000003, up: 0.24084000000000003}, 'sys,cor': {dn: -0.34788, up: 0.34788}}, 4: {stat: {dn: -0.15894, up: 0.15894}, 'sys,cor': {dn: -0.3532, up: 0.3532}}, 5: {stat: {dn: -0.11472, up: 0.11472}, 'sys,cor': {dn: -0.24378, up: 0.24378}}, 6: {stat: {dn: -0.05103, up: 0.05103}, 'sys,cor': {dn: -0.06426, up: 0.06426}}} + +IsRef: 1 +Path: /REF/HERA_2015_I1353667/d03-x01-y01 +Title: doi:10.17182/hepdata.73328.v1/t3 +Type: Scatter2D +--- +# xval xerr- xerr+ yval yerr- yerr+ +5.000000e-02 5.000000e-02 5.000000e-02 3.280000e+00 3.668031e-01 3.668031e-01 +1.500000e-01 5.000000e-02 5.000000e-02 7.350000e+00 5.821367e-01 5.821367e-01 +2.600000e-01 6.000000e-02 6.000000e-02 8.610000e+00 4.976699e-01 4.976699e-01 +3.850000e-01 6.500000e-02 6.500000e-02 8.920000e+00 4.231128e-01 4.231128e-01 +5.100000e-01 6.000000e-02 6.000000e-02 8.830000e+00 3.873140e-01 3.873140e-01 +6.850000e-01 1.150000e-01 1.150000e-01 4.780000e+00 2.694241e-01 2.694241e-01 +9.000000e-01 1.000000e-01 1.000000e-01 6.300000e-01 8.205735e-02 8.205735e-02 +END YODA_SCATTER2D_V2 +BEGIN YODA_SCATTER2D_V2 /REF/HERA_2015_I1353667/d04-x01-y01 +Variations: [""] +ErrorBreakdown: {0: {stat: {dn: -0.018959999999999998, up: 0.018959999999999998}, 'sys,cor': {dn: -0.0237, up: 0.0237}}, 1: {stat: {dn: -0.012728, up: 0.012728}, 'sys,cor': {dn: -0.011248, up: 0.011248}}, 2: {stat: {dn: -0.008055999999999999, up: 0.008055999999999999}, 'sys,cor': {dn: -0.00848, up: 0.00848}}, 3: {stat: {dn: -0.003968, up: 0.003968}, 'sys,cor': {dn: -0.004712, up: 0.004712}}, 4: {stat: {dn: -0.002541, up: 0.002541}, 'sys,cor': {dn: -0.0026135999999999998, up: 0.0026135999999999998}}, 5: {stat: {dn: -0.0014689, up: 0.0014689}, 'sys,cor': {dn: -0.001588, up: 0.001588}}, 6: {stat: {dn: -0.0007216000000000001, up: 0.0007216000000000001}, 'sys,cor': {dn: -0.0007708000000000001, up: 0.0007708000000000001}}, 7: {stat: {dn: -0.0003874, up: 0.0003874}, 'sys,cor': {dn: -0.00029055, up: 0.00029055}}, 8: {stat: {dn: -0.00014975999999999998, up: 0.00014975999999999998}, 'sys,cor': {dn: -0.00011023999999999999, up: 0.00011023999999999999}}, 9: {stat: {dn: -6.7032e-05, up: 6.7032e-05}, 'sys,cor': {dn: -4.41e-05, up: 4.41e-05}}, 10: {stat: {dn: -8.999999999999999e-06, up: 8.999999999999999e-06}, 'sys,cor': {dn: -5.024999999999999e-06, up: 5.024999999999999e-06}}} + +IsRef: 1 +Path: /REF/HERA_2015_I1353667/d04-x01-y01 +Title: doi:10.17182/hepdata.73328.v1/t4 +Type: Scatter2D +--- +# xval xerr- xerr+ yval yerr- yerr+ +6.500000e+00 1.500000e+00 1.500000e+00 4.740000e-01 3.035081e-02 3.035081e-02 +9.000000e+00 1.000000e+00 1.000000e+00 2.960000e-01 1.698586e-02 1.698586e-02 +1.150000e+01 1.500000e+00 1.500000e+00 2.120000e-01 1.169656e-02 1.169656e-02 +1.600000e+01 3.000000e+00 3.000000e+00 1.240000e-01 6.160192e-03 6.160192e-03 +2.350000e+01 4.500000e+00 4.500000e+00 7.260000e-02 3.645214e-03 3.645214e-03 +3.400000e+01 6.000000e+00 6.000000e+00 3.970000e-02 2.163195e-03 2.163195e-03 +5.000000e+01 1.000000e+01 1.000000e+01 1.640000e-02 1.055859e-03 1.055859e-03 +8.000000e+01 2.000000e+01 2.000000e+01 7.450000e-03 4.842500e-04 4.842500e-04 +1.290000e+02 2.900000e+01 2.900000e+01 2.080000e-03 1.859594e-04 1.859594e-04 +2.045000e+02 4.650000e+01 4.650000e+01 8.820000e-04 8.023777e-05 8.023777e-05 +6.255000e+02 3.745000e+02 3.745000e+02 7.500000e-05 1.030779e-05 1.030779e-05 +END YODA_SCATTER2D_V2 +BEGIN YODA_SCATTER2D_V2 /REF/HERA_2015_I1353667/d05-x01-y01 +Variations: [""] +ErrorBreakdown: {0: {stat: {dn: -0.7018, up: 0.7018}, 'sys,cor': {dn: -1.1011, up: 1.1011}}, 1: {stat: {dn: -0.7332, up: 0.7332}, 'sys,cor': {dn: -0.8647999999999999, up: 0.8647999999999999}}, 2: {stat: {dn: -0.5780000000000001, up: 0.5780000000000001}, 'sys,cor': {dn: -0.731, up: 0.731}}, 3: {stat: {dn: -0.4958000000000001, up: 0.4958000000000001}, 'sys,cor': {dn: -0.5628000000000001, up: 0.5628000000000001}}, 4: {stat: {dn: -0.38079999999999997, up: 0.38079999999999997}, 'sys,cor': {dn: -0.4144, up: 0.4144}}, 5: {stat: {dn: -0.28305, up: 0.28305}, 'sys,cor': {dn: -0.32130000000000003, up: 0.32130000000000003}}, 6: {stat: {dn: -0.1912, up: 0.1912}, 'sys,cor': {dn: -0.25334, up: 0.25334}}, 7: {stat: {dn: -0.14839999999999998, up: 0.14839999999999998}, 'sys,cor': {dn: -0.1696, up: 0.1696}}} + +IsRef: 1 +Path: /REF/HERA_2015_I1353667/d05-x01-y01 +Title: doi:10.17182/hepdata.73328.v1/t5 +Type: Scatter2D +--- +# xval xerr- xerr+ yval yerr- yerr+ +3.500000e-02 1.500000e-02 1.500000e-02 1.210000e+01 1.305735e+00 1.305735e+00 +7.000000e-02 2.000000e-02 2.000000e-02 1.880000e+01 1.133782e+00 1.133782e+00 +1.100000e-01 2.000000e-02 2.000000e-02 1.700000e+01 9.319040e-01 9.319040e-01 +1.550000e-01 2.500000e-02 2.500000e-02 1.340000e+01 7.500410e-01 7.500410e-01 +2.200000e-01 4.000000e-02 4.000000e-02 1.120000e+01 5.627930e-01 5.627930e-01 +3.100000e-01 5.000000e-02 5.000000e-02 7.650000e+00 4.281950e-01 4.281950e-01 +4.300000e-01 7.000000e-02 7.000000e-02 4.780000e+00 3.173934e-01 3.173934e-01 +6.000000e-01 1.000000e-01 1.000000e-01 2.650000e+00 2.253591e-01 2.253591e-01 +END YODA_SCATTER2D_V2 +BEGIN YODA_SCATTER3D_V2 /REF/HERA_2015_I1353667/d06-x01-y01 +Variations: [""] +ErrorBreakdown: {0: {stat: {dn: -0.6140399999999999, up: 0.6140399999999999}, 'sys,cor': {dn: -0.119, up: 0.119}}, 1: {stat: {dn: -0.6215, up: 0.6215}, 'sys,cor': {dn: -0.14300000000000002, up: 0.14300000000000002}}, 2: {stat: {dn: -0.36, up: 0.36}, 'sys,cor': {dn: -0.078, up: 0.078}}, 3: {stat: {dn: -0.18880500000000003, up: 0.18880500000000003}, 'sys,cor': {dn: -0.023025000000000004, up: 0.023025000000000004}}, 4: {stat: {dn: -0.25086, up: 0.25086}, 'sys,cor': {dn: -0.06216, up: 0.06216}}, 5: {stat: {dn: -0.15642, up: 0.15642}, 'sys,cor': {dn: -0.05346, up: 0.05346}}, 6: {stat: {dn: -0.22018, up: 0.22018}, 'sys,cor': {dn: -0.02943, up: 0.02943}}, 7: {stat: {dn: -0.05066199999999999, up: 0.05066199999999999}, 'sys,cor': {dn: -0.009021999999999999, up: 0.009021999999999999}}, 8: {stat: {dn: -0.13038, up: 0.13038}, 'sys,cor': {dn: -0.04664, up: 0.04664}}, 9: {stat: {dn: -0.11388, up: 0.11388}, 'sys,cor': {dn: -0.05986, up: 0.05986}}, 10: {stat: {dn: -0.07128000000000001, up: 0.07128000000000001}, 'sys,cor': {dn: -0.05676, up: 0.05676}}, 11: {stat: {dn: -0.037877, up: 0.037877}, 'sys,cor': {dn: -0.030147, up: 0.030147}}, 12: {stat: {dn: -0.014055999999999999, up: 0.014055999999999999}, 'sys,cor': {dn: -0.010542000000000001, up: 0.010542000000000001}}, 13: {stat: {dn: -0.0676, up: 0.0676}, 'sys,cor': {dn: -0.034319999999999996, up: 0.034319999999999996}}, 14: {stat: {dn: -0.050688, up: 0.050688}, 'sys,cor': {dn: -0.029952, up: 0.029952}}, 15: {stat: {dn: -0.026173999999999996, up: 0.026173999999999996}, 'sys,cor': {dn: -0.015931999999999998, up: 0.015931999999999998}}, 16: {stat: {dn: -0.018951999999999997, up: 0.018951999999999997}, 'sys,cor': {dn: -0.012771999999999999, up: 0.012771999999999999}}, 17: {stat: {dn: -0.008456, up: 0.008456}, 'sys,cor': {dn: -0.00604, up: 0.00604}}, 18: {stat: {dn: -0.026106, up: 0.026106}, 'sys,cor': {dn: -0.014426999999999999, up: 0.014426999999999999}}, 19: {stat: {dn: -0.024569999999999998, up: 0.024569999999999998}, 'sys,cor': {dn: -0.015497999999999998, up: 0.015497999999999998}}, 20: {stat: {dn: -0.013919999999999998, up: 0.013919999999999998}, 'sys,cor': {dn: -0.009569999999999999, up: 0.009569999999999999}}, 21: {stat: {dn: -0.0093, up: 0.0093}, 'sys,cor': {dn: -0.006324, up: 0.006324}}, 22: {stat: {dn: -0.004290400000000001, up: 0.004290400000000001}, 'sys,cor': {dn: -0.0030448000000000003, up: 0.0030448000000000003}}, 23: {stat: {dn: -0.010226800000000001, up: 0.010226800000000001}, 'sys,cor': {dn: -0.0056662, up: 0.0056662}}, 24: {stat: {dn: -0.007257, up: 0.007257}, 'sys,cor': {dn: -0.004428, up: 0.004428}}, 25: {stat: {dn: -0.0050160000000000005, up: 0.0050160000000000005}, 'sys,cor': {dn: -0.00342, up: 0.00342}}, 26: {stat: {dn: -0.0031906, up: 0.0031906}, 'sys,cor': {dn: -0.002226, up: 0.002226}}, 27: {stat: {dn: -0.0016691999999999998, up: 0.0016691999999999998}, 'sys,cor': {dn: -0.0011876999999999999, up: 0.0011876999999999999}}, 28: {stat: {dn: -0.0020635999999999996, up: 0.0020635999999999996}, 'sys,cor': {dn: -0.0006837599999999999, up: 0.0006837599999999999}}, 29: {stat: {dn: -0.00297, up: 0.00297}, 'sys,cor': {dn: -0.001188, up: 0.001188}}, 30: {stat: {dn: -0.00164, up: 0.00164}, 'sys,cor': {dn: -0.0007585000000000001, up: 0.0007585000000000001}}, 31: {stat: {dn: -0.0010746000000000002, up: 0.0010746000000000002}, 'sys,cor': {dn: -0.0006368000000000001, up: 0.0006368000000000001}}, 32: {stat: {dn: -0.0005409599999999999, up: 0.0005409599999999999}, 'sys,cor': {dn: -0.0003136, up: 0.0003136}}, 33: {stat: {dn: -0.00033784, up: 0.00033784}, 'sys,cor': {dn: -0.00016892, up: 0.00016892}}, 34: {stat: {dn: -0.00024198, up: 0.00024198}, 'sys,cor': {dn: -8.938e-05, up: 8.938e-05}}, 35: {stat: {dn: -0.00018257999999999998, up: 0.00018257999999999998}, 'sys,cor': {dn: -7.876e-05, up: 7.876e-05}}, 36: {stat: {dn: -0.00010764799999999998, up: 0.00010764799999999998}, 'sys,cor': {dn: -4.2687999999999995e-05, up: 4.2687999999999995e-05}}, 37: {stat: {dn: -1.8995000000000004e-05, up: 1.8995000000000004e-05}, 'sys,cor': {dn: -6.157000000000001e-06, up: 6.157000000000001e-06}}, 38: {stat: {dn: -1.4985999999999998e-05, up: 1.4985999999999998e-05}, 'sys,cor': {dn: -5.899999999999999e-06, up: 5.899999999999999e-06}}} + +IsRef: 1 +Path: /REF/HERA_2015_I1353667/d06-x01-y01 +Title: doi:10.17182/hepdata.73328.v1/t6 +Type: Scatter3D +--- +# xval xerr- xerr+ yval yerr- yerr+ zval zerr- zerr+ +2.500000e+00 1.000000e+00 1.000000e+00 5.500000e-02 3.500000e-02 3.500000e-02 4.760000e+00 6.254647e-01 6.254647e-01 +2.500000e+00 1.000000e+00 1.000000e+00 1.250000e-01 3.500000e-02 3.500000e-02 5.500000e+00 6.377392e-01 6.377392e-01 +2.500000e+00 1.000000e+00 1.000000e+00 2.400000e-01 8.000000e-02 8.000000e-02 3.000000e+00 3.683531e-01 3.683531e-01 +2.500000e+00 1.000000e+00 1.000000e+00 5.100000e-01 1.900000e-01 1.900000e-01 9.210000e-01 1.902038e-01 1.902038e-01 +4.500000e+00 1.000000e+00 1.000000e+00 5.500000e-02 3.500000e-02 3.500000e-02 2.220000e+00 2.584465e-01 2.584465e-01 +4.500000e+00 1.000000e+00 1.000000e+00 1.250000e-01 3.500000e-02 3.500000e-02 1.980000e+00 1.653033e-01 1.653033e-01 +4.500000e+00 1.000000e+00 1.000000e+00 2.400000e-01 8.000000e-02 8.000000e-02 1.090000e+00 2.221381e-01 2.221381e-01 +4.500000e+00 1.000000e+00 1.000000e+00 5.100000e-01 1.900000e-01 1.900000e-01 3.470000e-01 5.145906e-02 5.145906e-02 +7.250000e+00 1.750000e+00 1.750000e+00 3.500000e-02 1.500000e-02 1.500000e-02 1.060000e+00 1.384711e-01 1.384711e-01 +7.250000e+00 1.750000e+00 1.750000e+00 7.000000e-02 2.000000e-02 2.000000e-02 1.460000e+00 1.286541e-01 1.286541e-01 +7.250000e+00 1.750000e+00 1.750000e+00 1.250000e-01 3.500000e-02 3.500000e-02 1.320000e+00 9.111825e-02 9.111825e-02 +7.250000e+00 1.750000e+00 1.750000e+00 2.400000e-01 8.000000e-02 8.000000e-02 7.730000e-01 4.840980e-02 4.840980e-02 +7.250000e+00 1.750000e+00 1.750000e+00 5.100000e-01 1.900000e-01 1.900000e-01 2.510000e-01 1.757000e-02 1.757000e-02 +1.150000e+01 2.500000e+00 2.500000e+00 3.500000e-02 1.500000e-02 1.500000e-02 5.200000e-01 7.581308e-02 7.581308e-02 +1.150000e+01 2.500000e+00 2.500000e+00 7.000000e-02 2.000000e-02 2.000000e-02 7.680000e-01 5.887610e-02 5.887610e-02 +1.150000e+01 2.500000e+00 2.500000e+00 1.250000e-01 3.500000e-02 3.500000e-02 5.690000e-01 3.064159e-02 3.064159e-02 +1.150000e+01 2.500000e+00 2.500000e+00 2.400000e-01 8.000000e-02 8.000000e-02 4.120000e-01 2.285393e-02 2.285393e-02 +1.150000e+01 2.500000e+00 2.500000e+00 5.100000e-01 1.900000e-01 1.900000e-01 1.510000e-01 1.039161e-02 1.039161e-02 +1.850000e+01 4.500000e+00 4.500000e+00 3.500000e-02 1.500000e-02 1.500000e-02 2.290000e-01 2.982720e-02 2.982720e-02 +1.850000e+01 4.500000e+00 4.500000e+00 7.000000e-02 2.000000e-02 2.000000e-02 3.780000e-01 2.904949e-02 2.904949e-02 +1.850000e+01 4.500000e+00 4.500000e+00 1.250000e-01 3.500000e-02 3.500000e-02 2.900000e-01 1.689234e-02 1.689234e-02 +1.850000e+01 4.500000e+00 4.500000e+00 2.400000e-01 8.000000e-02 8.000000e-02 1.860000e-01 1.124647e-02 1.124647e-02 +1.850000e+01 4.500000e+00 4.500000e+00 5.100000e-01 1.900000e-01 1.900000e-01 6.920000e-02 5.261021e-03 5.261021e-03 +3.400000e+01 1.100000e+01 1.100000e+01 3.500000e-02 1.500000e-02 1.500000e-02 6.910000e-02 1.169159e-02 1.169159e-02 +3.400000e+01 1.100000e+01 1.100000e+01 7.000000e-02 2.000000e-02 2.000000e-02 1.230000e-01 8.501249e-03 8.501249e-03 +3.400000e+01 1.100000e+01 1.100000e+01 1.250000e-01 3.500000e-02 3.500000e-02 1.140000e-01 6.070968e-03 6.070968e-03 +3.400000e+01 1.100000e+01 1.100000e+01 2.400000e-01 8.000000e-02 8.000000e-02 7.420000e-02 3.890373e-03 3.890373e-03 +3.400000e+01 1.100000e+01 1.100000e+01 5.100000e-01 1.900000e-01 1.900000e-01 3.210000e-02 2.048624e-03 2.048624e-03 +7.250000e+01 2.750000e+01 2.750000e+01 3.500000e-02 1.500000e-02 1.500000e-02 6.160000e-03 2.173930e-03 2.173930e-03 +7.250000e+01 2.750000e+01 2.750000e+01 7.000000e-02 2.000000e-02 2.000000e-02 2.700000e-02 3.198788e-03 3.198788e-03 +7.250000e+01 2.750000e+01 2.750000e+01 1.250000e-01 3.500000e-02 3.500000e-02 2.050000e-02 1.806910e-03 1.806910e-03 +7.250000e+01 2.750000e+01 2.750000e+01 2.400000e-01 8.000000e-02 8.000000e-02 1.990000e-02 1.249111e-03 1.249111e-03 +7.250000e+01 2.750000e+01 2.750000e+01 5.100000e-01 1.900000e-01 1.900000e-01 7.840000e-03 6.252861e-04 6.252861e-04 +1.290000e+02 2.900000e+01 2.900000e+01 1.700000e-01 1.500000e-01 1.500000e-01 4.120000e-03 3.777166e-04 3.777166e-04 +1.290000e+02 2.900000e+01 2.900000e+01 5.100000e-01 1.900000e-01 1.900000e-01 2.180000e-03 2.579595e-04 2.579595e-04 +2.045000e+02 4.650000e+01 4.650000e+01 1.600000e-01 1.400000e-01 1.400000e-01 1.790000e-03 1.988431e-04 1.988431e-04 +2.045000e+02 4.650000e+01 4.650000e+01 5.000000e-01 2.000000e-01 2.000000e-01 9.280000e-04 1.158031e-04 1.158031e-04 +6.255000e+02 3.745000e+02 3.745000e+02 1.400000e-01 1.200000e-01 1.200000e-01 1.310000e-04 1.996794e-05 1.996794e-05 +6.255000e+02 3.745000e+02 3.745000e+02 4.800000e-01 2.200000e-01 2.200000e-01 1.180000e-04 1.610560e-05 1.610560e-05 +END YODA_SCATTER3D_V2 diff --git a/analyses/pluginHERA/ZEUS_2001_S4815815.cc b/analyses/pluginHERA/ZEUS_2001_S4815815.cc --- a/analyses/pluginHERA/ZEUS_2001_S4815815.cc +++ b/analyses/pluginHERA/ZEUS_2001_S4815815.cc @@ -1,172 +1,174 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/Beam.hh" #include "Rivet/Projections/DISKinematics.hh" #include "Rivet/Projections/FastJets.hh" namespace Rivet { /// @brief ZEUS dijet photoproduction study used in the ZEUS jets PDF fit /// /// This class is a reproduction of the HZTool routine for the ZEUS /// dijet photoproduction paper which was used in the ZEUS jets PDF fit. /// /// @note Cleaning cuts on event pT/sqrt(Et) and y_e are not needed in MC analysis. /// /// @author Andy Buckley /// @author Ilkka Helenius class ZEUS_2001_S4815815 : public Analysis { public: /// Constructor DEFAULT_RIVET_ANALYSIS_CTOR(ZEUS_2001_S4815815); /// @name Analysis methods //@{ // Book projections and histograms void init() { // Projections /// @todo Acceptance + // checking recombination scheme and radius checked with original code from M.Wing FinalState fs; - declare(FastJets(fs, FastJets::KT, 1.0), "Jets"); //< R=1 checked with Matt Wing + declare(FastJets(fs, fastjet::JetAlgorithm::kt_algorithm, fastjet::RecombinationScheme::Et_scheme, 1.0), "Jets"); declare(DISKinematics(), "Kinematics"); // Table 1 _h_costh[0] = bookHisto1D(1, 1, 1); _h_costh[1] = bookHisto1D(1, 1, 2); // Table 2 _h_etjet1[1][0] = bookHisto1D(2, 1, 1); _h_etjet1[1][1] = bookHisto1D(3, 1, 1); _h_etjet1[1][2] = bookHisto1D(4, 1, 1); _h_etjet1[1][3] = bookHisto1D(5, 1, 1); _h_etjet1[1][4] = bookHisto1D(6, 1, 1); _h_etjet1[1][5] = bookHisto1D(7, 1, 1); // Table 3 _h_etjet1[0][0] = bookHisto1D(8, 1, 1); _h_etjet1[0][1] = bookHisto1D(9, 1, 1); _h_etjet1[0][2] = bookHisto1D(10, 1, 1); _h_etjet1[0][3] = bookHisto1D(11, 1, 1); _h_etjet1[0][4] = bookHisto1D(12, 1, 1); _h_etjet1[0][5] = bookHisto1D(13, 1, 1); // Table 4 _h_etajet2[1][0] = bookHisto1D(14, 1, 1); _h_etajet2[1][1] = bookHisto1D(15, 1, 1); _h_etajet2[1][2] = bookHisto1D(16, 1, 1); // Table 5 _h_etajet2[0][0] = bookHisto1D(17, 1, 1); _h_etajet2[0][1] = bookHisto1D(18, 1, 1); _h_etajet2[0][2] = bookHisto1D(19, 1, 1); // Table 6 _h_xobsy[0] = bookHisto1D(20, 1, 1); _h_xobsy[1] = bookHisto1D(21, 1, 1); _h_xobsy[2] = bookHisto1D(22, 1, 1); _h_xobsy[3] = bookHisto1D(23, 1, 1); } // Do the analysis void analyze(const Event& event) { // Determine kinematics, including event orientation since ZEUS coord system is for +z = proton direction const DISKinematics& kin = apply(event, "Kinematics"); + if ( kin.failed() ) vetoEvent; const int orientation = kin.orientation(); // Q2 and inelasticity cuts if (kin.Q2() > 1*GeV2) vetoEvent; if (!inRange(kin.y(), 0.2, 0.85)) vetoEvent; // Jet selection const Jets jets = apply(event, "Jets") \ .jets(Cuts::Et > 11*GeV && Cuts::etaIn(-1*orientation, 2.4*orientation), cmpMomByEt); MSG_DEBUG("Jet multiplicity = " << jets.size()); if (jets.size() < 2) vetoEvent; const Jet& j1 = jets[0]; const Jet& j2 = jets[1]; if (j1.Et() < 14*GeV) vetoEvent; // Jet eta and cos(theta*) computation const double eta1 = orientation*j1.eta(), eta2 = orientation*j2.eta(); const double etabar = (eta1 + eta2)/2; const double etadiff = eta1 - eta2; const double costhetastar = tanh(etadiff/2); // Computation of x_y^obs /// @note Assuming Ee is the lab frame positron momentum, not in proton rest frame cf. the ambiguous phrase in the paper const double xyobs = (j1.Et() * exp(-eta1) + j2.Et() * exp(-eta2)) / (2*kin.y()*kin.beamLepton().E()); const size_t i_xyobs = (xyobs < 0.75) ? 0 : 1; // Calculate the invariant mass of the dijet as in the paper const double mjj = sqrt( 2.*j1.Et()*j2.Et()*( cosh(j1.eta() - j2.eta()) - cos(j1.phi() - j2.phi()) ) ); // Fill histograms const double weight = event.weight(); // T1 if (mjj > 42*GeV && inRange(etabar, 0.1, 1.3)) _h_costh[i_xyobs]->fill(abs(costhetastar), weight); // T2, T3: Symmetrize eta selection, each event contribute twice to the cross section for (size_t isel = 0; isel < 2; ++isel) { double etaJet1 = (isel == 0) ? orientation*j1.eta() : orientation*j2.eta(); double etaJet2 = (isel == 0) ? orientation*j2.eta() : orientation*j1.eta(); if (inRange(etaJet1, -1, 0) && inRange(etaJet2, -1, 0)) _h_etjet1[i_xyobs][0]->fill(j1.Et()/GeV, weight); else if (inRange(etaJet1, 0, 1) && inRange(etaJet2, -1, 0)) _h_etjet1[i_xyobs][1]->fill(j1.Et()/GeV, weight); else if (inRange(etaJet1, 0, 1) && inRange(etaJet2, 0, 1)) _h_etjet1[i_xyobs][2]->fill(j1.Et()/GeV, weight); else if (inRange(etaJet1, 1, 2.4) && inRange(etaJet2, -1, 0)) _h_etjet1[i_xyobs][3]->fill(j1.Et()/GeV, weight); else if (inRange(etaJet1, 1, 2.4) && inRange(etaJet2, 0, 1)) _h_etjet1[i_xyobs][4]->fill(j1.Et()/GeV, weight); else if (inRange(etaJet1, 1, 2.4) && inRange(etaJet2, 1, 2.4)) _h_etjet1[i_xyobs][5]->fill(j1.Et()/GeV, weight); // T4, T5 if (inRange(etaJet1, -1, 0)) _h_etajet2[i_xyobs][0]->fill(etaJet2, weight); else if (inRange(etaJet1, 0, 1)) _h_etajet2[i_xyobs][1]->fill(etaJet2, weight); else if (inRange(etaJet1, 1, 2.4)) _h_etajet2[i_xyobs][2]->fill(etaJet2, weight); } // T6 if (inRange(j1.Et()/GeV, 14, 17)) _h_xobsy[0]->fill(xyobs, weight); else if (inRange(j1.Et()/GeV, 17, 25)) _h_xobsy[1]->fill(xyobs, weight); else if (inRange(j1.Et()/GeV, 25, 35)) _h_xobsy[2]->fill(xyobs, weight); else if (inRange(j1.Et()/GeV, 35, 90)) _h_xobsy[3]->fill(xyobs, weight); } // Finalize void finalize() { const double sf = crossSection()/picobarn/sumOfWeights(); for (size_t ix = 0; ix < 2; ++ix) { scale(_h_costh[ix], sf); for (auto& h : _h_etjet1[ix]) scale(h, sf); for (auto& h : _h_etajet2[ix]) scale(h, sf); } for (auto& h : _h_xobsy) scale(h, sf); } //@} private: /// @name Histograms //@{ Histo1DPtr _h_costh[2], _h_etjet1[2][6], _h_etajet2[2][3], _h_xobsy[4]; //@} }; DECLARE_RIVET_PLUGIN(ZEUS_2001_S4815815); } diff --git a/analyses/pluginHERA/ZEUS_2001_S4815815.info b/analyses/pluginHERA/ZEUS_2001_S4815815.info --- a/analyses/pluginHERA/ZEUS_2001_S4815815.info +++ b/analyses/pluginHERA/ZEUS_2001_S4815815.info @@ -1,53 +1,53 @@ Name: ZEUS_2001_S4815815 Year: 2001 Summary: Dijet photoproduction analysis Experiment: ZEUS Collider: HERA Run I SpiresID: 4815815 InspireID: 568665 Status: VALIDATED Authors: - Andy Buckley - Ilkka Helenius - - Jon Butterworth + - Jon Butterworth References: - Eur.Phys.J.C23:615,2002 - DESY 01/220 - hep-ex/0112029 RunInfo: 820 GeV protons colliding with 27.5 GeV positrons; Direct and resolved photoproduction of dijets; Leading jet $pT > 14$ GeV, second jet $pT > 11$ GeV; Jet pseudorapidity $-1 < |\eta| < 2.4$ NumEvents: 1000000 Beams: [p+, e+] Energies: [[820, 27.5]] PtCuts: [0] Description: ZEUS photoproduction of jets from proton--positron collisions at beam energies of 820~GeV on 27.5~GeV. Photoproduction can either be direct, in which case the photon interacts directly with the parton, or resolved, in which case the photon acts as a source of quarks and gluons. A photon-proton centre of mass energy of between 134~GeV and 227~GeV is probed, with values of $x_P$, the fractional momentum of the partons inside the proton, predominantly in the region between 0.01 and 0.1. The fractional momentum of the partons from the photon, $x_\gamma$, is in the region 0.1 to 1. Jets are reconstructed in the range $-1 < |\eta| < 2.4$ using the $k_\perp$ algorithm with an $R$ parameter of 1.0. The minimum \pT of the leading jet should be greater than 14~GeV, and at least one other jet must have $\pT > 11$~GeV. BibKey: Chekanov:2001bw BibTeX: '@Article{Chekanov:2001bw, author = "Chekanov, S. and others", collaboration = "ZEUS", title = "{Dijet photoproduction at HERA and the structure of the photon}", journal = "Eur. Phys. J.", volume = "C23", year = "2002", pages = "615-631", eprint = "hep-ex/0112029", archivePrefix = "arXiv", doi = "10.1007/s100520200936", SLACcitation = "%%CITATION = HEP-EX/0112029;%%" }' diff --git a/analyses/pluginHERA/ZEUS_2008_I763404.cc b/analyses/pluginHERA/ZEUS_2008_I763404.cc new file mode 100644 --- /dev/null +++ b/analyses/pluginHERA/ZEUS_2008_I763404.cc @@ -0,0 +1,182 @@ +// -*- C++ -*- +#include "Rivet/Analysis.hh" +#include "Rivet/Projections/Beam.hh" +#include "Rivet/Projections/DISKinematics.hh" +#include "Rivet/Projections/DISDiffHadron.hh" +#include "Rivet/Projections/FastJets.hh" + +namespace Rivet { + + + /// @brief ZEUS dijet photoproduction study used in the ZEUS jets PDF fit + /// + /// This class is a reproduction of the HZTool routine for the ZEUS + /// dijet photoproduction paper which was used in the ZEUS jets PDF fit. + /// + /// @author Ilkka Helenius + class ZEUS_2008_I763404 : public Analysis { + public: + + /// Constructor + DEFAULT_RIVET_ANALYSIS_CTOR(ZEUS_2008_I763404); + + /// @name Analysis methods + //@{ + + // Book projections and histograms + void init() { + + /// @todo Acceptance + FinalState fs; + // Final state particles with central tracking detector. + declare(FastJets(fs, FastJets::KT, 1.0), "Jets"); + + // Projections + declare(DISKinematics(), "Kinematics"); + declare(DISDiffHadron(), "Hadron"); + + _h_dsigma_all[0] = bookHisto1D(1, 1, 1); + _h_dsigma_all[1] = bookHisto1D(2, 1, 1); + _h_dsigma_all[2] = bookHisto1D(3, 1, 1); + _h_dsigma_all[3] = bookHisto1D(4, 1, 1); + _h_dsigma_all[4] = bookHisto1D(5, 1, 1); + _h_dsigma_all[5] = bookHisto1D(6, 1, 1); + _h_xgamma = bookHisto1D(7, 1, 1); + _h_dsigma_xgamma[0][0] = bookHisto1D(8, 1, 1); + _h_dsigma_xgamma[0][1] = bookHisto1D(9, 1, 1); + _h_dsigma_xgamma[0][2] = bookHisto1D(10, 1, 1); + _h_dsigma_xgamma[0][3] = bookHisto1D(11, 1, 1); + _h_dsigma_xgamma[1][0] = bookHisto1D(12, 1, 1); + _h_dsigma_xgamma[1][1] = bookHisto1D(13, 1, 1); + _h_dsigma_xgamma[1][2] = bookHisto1D(14, 1, 1); + _h_dsigma_xgamma[1][3] = bookHisto1D(15, 1, 1); + + nVeto0 = 0; + nVeto1 = 0; + nVeto2 = 0; + nVeto3 = 0; + nVeto4 = 0; + } + + // Do the analysis + void analyze(const Event& event) { + + // Derive the DIS kinematics. + const DISKinematics& kin = apply(event, "Kinematics"); + + // Derive the diffractive kinematics (should be used for diffractive only). + Particle hadronOut; + Particle hadronIn; + try { + const DISDiffHadron & diffhadr = apply(event, "Hadron"); + hadronOut = diffhadr.out(); + hadronIn = diffhadr.in(); + } catch (const Error& e){ + vetoEvent; + } + + // Determine event orientation, since coord system is for +z = proton direction + const int orientation = kin.orientation(); + + // Calculate the photon 4-momentum from the incoming and outgoing lepton. + const FourMomentum qleptonIn = kin.beamLepton().momentum(); + const FourMomentum qleptonOut = kin.scatteredLepton().momentum(); + const FourMomentum qphoton = qleptonIn - qleptonOut; + + // Calculate the Pomeron 4-momentum from the incoming and outgoing hadron + const FourMomentum pHadOut = hadronOut.momentum(); + const FourMomentum pHadIn = hadronIn.momentum(); + const FourMomentum pPomeron = pHadIn - pHadOut; + + // Q2 and inelasticity cuts + if (kin.Q2() > 1*GeV2) vetoEvent; + ++nVeto0; + if (!inRange(kin.y(), 0.2, 0.85)) vetoEvent; + ++nVeto1; + + // Jet selection and veto. + const Jets jets = apply(event, "Jets") \ + .jets(Cuts::Et > 6.5*GeV && Cuts::etaIn(-1.5*orientation, 1.5*orientation), cmpMomByEt); + MSG_DEBUG("Jet multiplicity = " << jets.size()); + if (jets.size() < 2) vetoEvent; + ++nVeto2; + const Jet& j1 = jets[0]; + const Jet& j2 = jets[1]; + if (j1.Et() < 7.5*GeV) vetoEvent; + ++nVeto3; + + // Veto on x_Pomeron. + const double xPom = ( pPomeron * qphoton ) / (pHadIn * qphoton); + if (xPom > 0.025) vetoEvent; + ++nVeto4; + + // Computation of event-level variables. + const double eta1 = orientation*j1.eta(), eta2 = orientation*j2.eta(); + const double xyobs = (j1.Et() * exp(-eta1) + j2.Et() * exp(-eta2)) / (2*kin.y()*kin.beamLepton().E()); + const size_t i_xyobs = (xyobs < 0.75) ? 1 : 0; + const double zPobs = (j1.Et() * exp(eta1) + j2.Et() * exp(eta2)) / (2*xPom*kin.beamHadron().E()); + const double M_X = sqrt( (pPomeron + qphoton).mass2() ); + + // Fill histograms + const double weight = event.weight(); + + _h_dsigma_all[0]->fill(kin.y(), weight); + _h_dsigma_all[1]->fill(M_X, weight); + _h_dsigma_all[2]->fill(xPom, weight); + _h_dsigma_all[3]->fill(zPobs, weight); + _h_dsigma_all[4]->fill(j1.Et(), weight); + _h_dsigma_all[5]->fill(eta1, weight); + + _h_xgamma->fill(xyobs, weight); + + _h_dsigma_xgamma[i_xyobs][0]->fill(kin.y(), weight); + _h_dsigma_xgamma[i_xyobs][1]->fill(M_X, weight); + _h_dsigma_xgamma[i_xyobs][2]->fill(xPom, weight); + _h_dsigma_xgamma[i_xyobs][3]->fill(zPobs, weight); + + } + + // Finalize + void finalize() { + const double norm = crossSection()/picobarn/sumOfWeights(); + scale(_h_xgamma, norm); + for (auto& h : _h_dsigma_all) scale(h, norm); + for (auto& h : _h_dsigma_xgamma[0]) scale(h, norm); + for (auto& h : _h_dsigma_xgamma[1]) scale(h, norm); + + // Cross section in nb for these observables. + scale(_h_dsigma_all[2], 1e-3); + scale(_h_dsigma_xgamma[0][2], 1e-3); + scale(_h_dsigma_xgamma[1][2], 1e-3); + + double dPHO = nVeto1; + + MSG_INFO("ZEUS_2008_I763403"); + MSG_INFO("Cross section = " << crossSection()/picobarn); + MSG_INFO("Number of events = " << numEvents() << ", sumW = " << sumOfWeights()); + MSG_INFO("Events passing electron veto1= " << nVeto0 << " (" << nVeto0/dPHO * 100. << "%)" ); + MSG_INFO("Events passing electron veto2= " << nVeto1 << " (" << nVeto1/dPHO * 100. << "%)" ); + MSG_INFO("Events passing jet size veto = " << nVeto2 << " (" << nVeto2/dPHO * 100. << "%)" ); + MSG_INFO("Events passing jet Et veto = " << nVeto3 << " (" << nVeto3/dPHO * 100. << "%)" ); + MSG_INFO("Events passing xPom veto = " << nVeto4 << " (" << nVeto4/dPHO * 100. << "%)" ); + + } + + //@} + + + private: + + /// @name Histograms + //@{ + Histo1DPtr _h_dsigma_all[6]; + Histo1DPtr _h_xgamma; + Histo1DPtr _h_dsigma_xgamma[2][4]; + //@} + + int nVeto0, nVeto1, nVeto2, nVeto3, nVeto4; + }; + + DECLARE_RIVET_PLUGIN(ZEUS_2008_I763404); + +} diff --git a/analyses/pluginHERA/ZEUS_2008_I763404.info b/analyses/pluginHERA/ZEUS_2008_I763404.info new file mode 100644 --- /dev/null +++ b/analyses/pluginHERA/ZEUS_2008_I763404.info @@ -0,0 +1,50 @@ +Name: ZEUS_2008_I763404 +Year: 2008 +Summary: Diffractive photoproduction of dijets +Experiment: ZEUS +Collider: HERA Run II +SpiresID: 7416806 +InspireID: 763404 +Status: UNVALIDATED +Authors: + - Ilkka Helenius + - Christine O. Rasmussen +References: + - Eur.Phys.J.C55:177,2008 + - DESY 07/161 + - arXiv:0710.1498 [hep-ex] +RunInfo: + 920 GeV protons colliding with 27.5 GeV positrons; + Diffractive photoproduction of dijets; + Leading jet $pT > 7.5$ GeV, second jet $pT > 6.5$ GeV; + Jet pseudorapidity $-1.5 < \eta^{jet} < 1.5$ +NumEvents: 1000000 +Beams: [p+, e+] +Energies: [[920, 27.5]] +PtCuts: [0] +Description: + ZEUS analysis for diffractive photoproduction of dijets in proton-positron + collisions with beam energies of 920~GeV on 27.5~GeV at the ep collider HERA + using an integrated luminosity of 77.2 pb−1. The measurements were made in the + kinematic range Q2 < 1 GeV^2, 0.20 < y < 0.85 and xIP < 0.025, where Q2 is the + photon virtuality, y is the inelasticity and xIP is the fraction of the proton + momentum taken by the diffractive exchange. The two jets with the highest + transverse energy, Ejet, were required to satisfy E_jet > 7.5 and 6.5 GeV, + respectively, and to lie in the pseudorapidity range −1.5 < η_{jet} < 1.5. +BibKey: Chekanov:2007rh +BibTeX: '@article{Chekanov:2007rh, + author = "Chekanov, Sergei and others", + title = "{Diffractive photoproduction of dijets in ep collisions + at HERA}", + collaboration = "ZEUS", + journal = "Eur. Phys. J.", + volume = "C55", + year = "2008", + pages = "177-191", + doi = "10.1140/epjc/s10052-008-0598-2", + eprint = "0710.1498", + archivePrefix = "arXiv", + primaryClass = "hep-ex", + reportNumber = "DESY-07-161", + SLACcitation = "%%CITATION = ARXIV:0710.1498;%%" +}' diff --git a/analyses/pluginHERA/ZEUS_2008_I763404.plot b/analyses/pluginHERA/ZEUS_2008_I763404.plot new file mode 100644 --- /dev/null +++ b/analyses/pluginHERA/ZEUS_2008_I763404.plot @@ -0,0 +1,203 @@ +# BEGIN PLOT /ZEUS_2008_I763404/d01-x01-y01 +Title= +XLabel=$y$ +YLabel=$\mathrm{d}\sigma / \mathrm{d}y$ [pb] +LogY=0 +LegendXPos=0.1 +LegendYPos=0.35 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +#YMax=400 +# END PLOT + +# BEGIN PLOT /ZEUS_2008_I763404/d02-x01-y01 +Title= +XLabel=$M_X$ +YLabel=$\mathrm{d}\sigma / \mathrm{d}M_X$ [pb] +LogY=0 +LegendXPos=0.1 +LegendYPos=0.95 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +YMax=12 +# END PLOT + +# BEGIN PLOT /ZEUS_2008_I763404/d03-x01-y01 +Title= +XLabel=$x_{\mathrm{P}}$ +YLabel=$\mathrm{d}\sigma / \mathrm{d}x_{\mathrm{P}}$ [pb] +LogY=0 +LegendXPos=0.1 +LegendYPos=0.95 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +#RatioPlotYMin=0.0 +#RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /ZEUS_2008_I763404/d04-x01-y01 +Title= +XLabel=$z_{\mathrm{P}}^{\mathrm{obs}}$ +YLabel=$\mathrm{d}\sigma / \mathrm{d}z_{\mathrm{P}}^{\mathrm{obs}}$ [pb] +LogY=0 +LegendXPos=0.1 +LegendYPos=0.95 +#RatioPlotYMin=0.0 +#RatioPlotYMax=2.2 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +YMax=500 +# END PLOT + +# BEGIN PLOT /ZEUS_2008_I763404/d05-x01-y01 +Title= +XLabel=$E_{\mathrm{T}}^{\mathrm{jet1}}$ +YLabel=$\mathrm{d}\sigma / \mathrm{d}E_{\mathrm{T}}^{\mathrm{jet1}}$ [pb/GeV] +LogY=1 +LegendXPos=0.1 +LegendYPos=0.35 +#RatioPlotYMin=0.0 +#RatioPlotYMax=2.2 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +#YMax=100 +# END PLOT + +# BEGIN PLOT /ZEUS_2008_I763404/d06-x01-y01 +Title= +XLabel=$\eta^{\mathrm{jet1}}$ +YLabel=$\mathrm{d}\sigma / \mathrm{d}\eta^{\mathrm{jet1}}$ [pb] +LogY=0 +LegendXPos=0.3 +LegendYPos=0.35 +#RatioPlotYMin=0.0 +#RatioPlotYMax=2.2 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +#YMax=150 +# END PLOT + +# BEGIN PLOT /ZEUS_2008_I763404/d07-x01-y01 +Title= +XLabel=$x_{\gamma}^{\mathrm{obs}}$ +YLabel=$\mathrm{d}\sigma / \mathrm{d}x_{\gamma}^{\mathrm{obs}}$ [pb] +LogY=0 +LegendXPos=0.1 +LegendYPos=0.95 +#RatioPlotYMin=0.0 +#RatioPlotYMax=2.2 +RatioPlotYMin=0.3 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /ZEUS_2008_I763404/d08-x01-y01 +Title= +XLabel=$y$ +YLabel=$\mathrm{d}\sigma / \mathrm{d}y$ [pb] +LogY=0 +CustomLegend=$x_{\gamma} > 0.75$ +LegendXPos=0.1 +LegendYPos=0.35 +#RatioPlotYMin=0.0 +#RatioPlotYMax=2.2 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /ZEUS_2008_I763404/d09-x01-y01 +Title= +XLabel=$M_X$ +YLabel=$\mathrm{d}\sigma / \mathrm{d}M_X$ [pb/GeV] +LogY=0 +CustomLegend=$x_{\gamma} > 0.75$ +LegendXPos=0.6 +LegendYPos=0.95 +#RatioPlotYMin=0.0 +#RatioPlotYMax=2.2 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /ZEUS_2008_I763404/d10-x01-y01 +Title= +XLabel=$x_{\mathrm{P}}$ +YLabel=$\mathrm{d}\sigma / \mathrm{d}x_{\mathrm{P}}$ [pb] +LogY=0 +CustomLegend=$x_{\gamma} > 0.75$ +LegendXPos=0.6 +LegendYPos=0.35 +#RatioPlotYMin=0.0 +#RatioPlotYMax=2.2 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /ZEUS_2008_I763404/d11-x01-y01 +Title= +XLabel=$z_{\mathrm{P}}^{\mathrm{obs}}$ +YLabel=$\mathrm{d}\sigma / \mathrm{d}z_{\mathrm{P}}^{\mathrm{obs}}$ [pb] +LogY=0 +CustomLegend=$x_{\gamma} > 0.75$ +LegendXPos=0.6 +LegendYPos=0.35 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +#RatioPlotYMin=0.0 +#RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /ZEUS_2008_I763404/d12-x01-y01 +Title= +XLabel=$y$ +YLabel=$\mathrm{d}\sigma / \mathrm{d}y$ [pb] +LogY=0 +CustomLegend=$x_{\gamma} < 0.75$ +LegendXPos=0.1 +LegendYPos=0.95 +#RatioPlotYMin=0.0 +#RatioPlotYMax=2.2 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /ZEUS_2008_I763404/d13-x01-y01 +Title= +XLabel=$M_X$ +YLabel=$\mathrm{d}\sigma / \mathrm{d}M_X$ [pb/GeV] +LogY=0 +CustomLegend=$x_{\gamma} < 0.75$ +LegendXPos=0.1 +LegendYPos=0.95 +#RatioPlotYMin=0.0 +#RatioPlotYMax=2.2 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /ZEUS_2008_I763404/d14-x01-y01 +Title= +XLabel=$x_{\mathrm{P}}$ +YLabel=$\mathrm{d}\sigma / \mathrm{d}x_{\mathrm{P}}$ [pb] +LogY=0 +CustomLegend=$x_{\gamma} < 0.75$ +LegendXPos=0.1 +LegendYPos=0.95 +#RatioPlotYMin=0.0 +#RatioPlotYMax=2.2 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT + +# BEGIN PLOT /ZEUS_2008_I763404/d15-x01-y01 +Title= +XLabel=$z_{\mathrm{P}}^{\mathrm{obs}}$ +YLabel=$\mathrm{d}\sigma / \mathrm{d}z_{\mathrm{P}}^{\mathrm{obs}}$ [pb] +LogY=0 +CustomLegend=$x_{\gamma} < 0.75$ +LegendXPos=0.1 +LegendYPos=0.95 +#RatioPlotYMin=0.0 +#RatioPlotYMax=2.2 +RatioPlotYMin=0.1 +RatioPlotYMax=2.2 +# END PLOT diff --git a/analyses/pluginHERA/ZEUS_2008_I763404.yoda b/analyses/pluginHERA/ZEUS_2008_I763404.yoda new file mode 100644 --- /dev/null +++ b/analyses/pluginHERA/ZEUS_2008_I763404.yoda @@ -0,0 +1,194 @@ +BEGIN YODA_SCATTER2D /REF/ZEUS_2008_I763404/d01-x01-y01 +IsRef=1 +Path=/REF/ZEUS_2008_I763404/d01-x01-y01 +Title=doi:10.17182/hepdata.63789.v1/t1 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +2.650000e-01 6.500000e-02 6.500000e-02 1.379000e+02 9.246621e+00 1.658704e+01 +3.950000e-01 6.500000e-02 6.500000e-02 1.984000e+02 9.027735e+00 2.330901e+01 +5.250000e-01 6.500000e-02 6.500000e-02 2.183000e+02 1.780140e+01 2.633439e+01 +6.550000e-01 6.500000e-02 6.500000e-02 1.965000e+02 1.175457e+01 2.392175e+01 +7.850000e-01 6.500000e-02 6.500000e-02 2.036000e+02 1.388092e+01 2.467651e+01 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/ZEUS_2008_I763404/d02-x01-y01 +IsRef=1 +Path=/REF/ZEUS_2008_I763404/d02-x01-y01 +Title=doi:10.17182/hepdata.63789.v1/t2 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +1.750000e+01 2.500000e+00 2.500000e+00 2.110000e+00 1.109054e-01 2.027313e-01 +2.250000e+01 2.500000e+00 2.500000e+00 6.350000e+00 3.141656e-01 3.925557e-01 +2.750000e+01 2.500000e+00 2.500000e+00 6.390000e+00 3.449638e-01 8.668333e-01 +3.250000e+01 2.500000e+00 2.500000e+00 5.410000e+00 4.188078e-01 6.952697e-01 +3.750000e+01 2.500000e+00 2.500000e+00 3.140000e+00 2.694439e-01 7.116179e-01 +4.250000e+01 2.500000e+00 2.500000e+00 1.210000e+00 1.392839e-01 3.241913e-01 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/ZEUS_2008_I763404/d03-x01-y01 +IsRef=1 +Path=/REF/ZEUS_2008_I763404/d03-x01-y01 +Title=doi:10.17182/hepdata.63789.v1/t3 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +2.500000e-03 2.500000e-03 2.500000e-03 4.000000e-01 7.280110e-02 7.280110e-02 +7.500000e-03 2.500000e-03 2.500000e-03 3.940000e+00 2.714774e-01 2.675818e-01 +1.250000e-02 2.500000e-03 2.500000e-03 6.280000e+00 2.808914e-01 6.628725e-01 +1.750000e-02 2.500000e-03 2.500000e-03 7.000000e+00 4.528797e-01 9.811218e-01 +2.250000e-02 2.500000e-03 2.500000e-03 7.210000e+00 5.714018e-01 1.305910e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/ZEUS_2008_I763404/d04-x01-y01 +IsRef=1 +Path=/REF/ZEUS_2008_I763404/d04-x01-y01 +Title=doi:10.17182/hepdata.63789.v1/t4 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +3.000000e-01 1.000000e-01 1.000000e-01 8.640000e+01 1.090688e+01 1.663641e+01 +5.000000e-01 1.000000e-01 1.000000e-01 1.457000e+02 1.305603e+01 1.889418e+01 +7.000000e-01 1.000000e-01 1.000000e-01 1.929000e+02 1.423025e+01 1.561602e+01 +9.000000e-01 1.000000e-01 1.000000e-01 1.902000e+02 6.687301e+00 1.611583e+01 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/ZEUS_2008_I763404/d05-x01-y01 +IsRef=1 +Path=/REF/ZEUS_2008_I763404/d05-x01-y01 +Title=doi:10.17182/hepdata.63789.v1/t5 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +8.500000e+00 1.000000e+00 1.000000e+00 4.400000e+01 2.049390e+00 4.001250e+00 +1.050000e+01 1.000000e+00 1.000000e+00 1.370000e+01 9.486833e-01 3.385262e+00 +1.250000e+01 1.000000e+00 1.000000e+00 3.500000e+00 4.123106e-01 5.385165e-01 +1.450000e+01 1.000000e+00 1.000000e+00 8.000000e-01 1.414214e-01 1.732051e-01 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/ZEUS_2008_I763404/d06-x01-y01 +IsRef=1 +Path=/REF/ZEUS_2008_I763404/d06-x01-y01 +Title=doi:10.17182/hepdata.63789.v1/t6 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +-1.250000e+00 2.500000e-01 2.500000e-01 1.420000e+01 1.473092e+00 2.014944e+00 +-7.500000e-01 2.500000e-01 2.500000e-01 5.560000e+01 3.551056e+00 4.805206e+00 +-2.500000e-01 2.500000e-01 2.500000e-01 7.290000e+01 5.536244e+00 7.147727e+00 +2.500000e-01 2.500000e-01 2.500000e-01 6.360000e+01 3.852272e+00 7.948585e+00 +7.500000e-01 2.500000e-01 2.500000e-01 3.490000e+01 1.539480e+00 5.566866e+00 +1.250000e+00 2.500000e-01 2.500000e-01 8.000000e+00 7.348469e-01 1.542725e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/ZEUS_2008_I763404/d07-x01-y01 +IsRef=1 +Path=/REF/ZEUS_2008_I763404/d07-x01-y01 +Title=doi:10.17182/hepdata.63789.v1/t7 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +3.125000e-01 6.250000e-02 6.250000e-02 2.850000e+01 3.996248e+00 2.823119e+00 +4.375000e-01 6.250000e-02 6.250000e-02 5.270000e+01 5.537147e+00 5.930430e+00 +5.625000e-01 6.250000e-02 6.250000e-02 7.810000e+01 7.181922e+00 5.247857e+00 +6.875000e-01 6.250000e-02 6.250000e-02 1.143000e+02 1.132696e+01 1.006479e+01 +8.750000e-01 1.250000e-01 1.250000e-01 3.565000e+02 2.108578e+01 3.779074e+01 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/ZEUS_2008_I763404/d08-x01-y01 +IsRef=1 +Path=/REF/ZEUS_2008_I763404/d08-x01-y01 +Title=doi:10.17182/hepdata.63789.v1/t8 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +2.650000e-01 6.500000e-02 6.500000e-02 1.232000e+02 9.237965e+00 1.324009e+01 +3.950000e-01 6.500000e-02 6.500000e-02 1.526000e+02 8.705171e+00 1.747942e+01 +5.250000e-01 6.500000e-02 6.500000e-02 1.518000e+02 1.257100e+01 1.839701e+01 +6.550000e-01 6.500000e-02 6.500000e-02 1.252000e+02 7.505331e+00 1.633922e+01 +7.850000e-01 6.500000e-02 6.500000e-02 1.353000e+02 1.221515e+01 1.640762e+01 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/ZEUS_2008_I763404/d09-x01-y01 +IsRef=1 +Path=/REF/ZEUS_2008_I763404/d09-x01-y01 +Title=doi:10.17182/hepdata.63789.v1/t9 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +1.750000e+01 2.500000e+00 2.500000e+00 2.080000e+00 1.109054e-01 1.974842e-01 +2.250000e+01 2.500000e+00 2.500000e+00 5.270000e+00 2.211334e-01 4.049691e-01 +2.750000e+01 2.500000e+00 2.500000e+00 4.880000e+00 4.207137e-01 5.408327e-01 +3.250000e+01 2.500000e+00 2.500000e+00 3.260000e+00 3.189044e-01 4.495553e-01 +3.750000e+01 2.500000e+00 2.500000e+00 1.700000e+00 2.032240e-01 4.216634e-01 +4.250000e+01 2.500000e+00 2.500000e+00 5.800000e-01 1.212436e-01 1.835756e-01 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/ZEUS_2008_I763404/d10-x01-y01 +IsRef=1 +Path=/REF/ZEUS_2008_I763404/d10-x01-y01 +Title=doi:10.17182/hepdata.63789.v1/t10 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +2.500000e-03 2.500000e-03 2.500000e-03 4.000000e-01 7.874008e-02 6.782330e-02 +7.500000e-03 2.500000e-03 2.500000e-03 3.330000e+00 1.984943e-01 2.576820e-01 +1.250000e-02 2.500000e-03 2.500000e-03 4.840000e+00 2.370654e-01 4.593474e-01 +1.750000e-02 2.500000e-03 2.500000e-03 4.860000e+00 3.762978e-01 6.743886e-01 +2.250000e-02 2.500000e-03 2.500000e-03 4.430000e+00 4.863127e-01 7.812810e-01 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/ZEUS_2008_I763404/d11-x01-y01 +IsRef=1 +Path=/REF/ZEUS_2008_I763404/d11-x01-y01 +Title=doi:10.17182/hepdata.63789.v1/t11 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +3.000000e-01 1.000000e-01 1.000000e-01 7.200000e+01 9.929250e+00 1.263566e+01 +5.000000e-01 1.000000e-01 1.000000e-01 1.053000e+02 9.970456e+00 1.453203e+01 +7.000000e-01 1.000000e-01 1.000000e-01 1.206000e+02 6.862215e+00 1.298807e+01 +9.000000e-01 1.000000e-01 1.000000e-01 1.440000e+02 6.873136e+00 9.332202e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/ZEUS_2008_I763404/d12-x01-y01 +IsRef=1 +Path=/REF/ZEUS_2008_I763404/d12-x01-y01 +Title=doi:10.17182/hepdata.63789.v1/t12 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +2.650000e-01 6.500000e-02 6.500000e-02 1.470000e+01 1.805547e+00 2.998333e+00 +3.950000e-01 6.500000e-02 6.500000e-02 4.490000e+01 4.179713e+00 6.217717e+00 +5.250000e-01 6.500000e-02 6.500000e-02 6.650000e+01 9.729851e+00 1.300269e+01 +6.550000e-01 6.500000e-02 6.500000e-02 7.100000e+01 7.570997e+00 2.297129e+01 +7.850000e-01 6.500000e-02 6.500000e-02 6.950000e+01 6.351378e+00 1.940876e+01 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/ZEUS_2008_I763404/d13-x01-y01 +IsRef=1 +Path=/REF/ZEUS_2008_I763404/d13-x01-y01 +Title=doi:10.17182/hepdata.63789.v1/t13 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +1.750000e+01 2.500000e+00 2.500000e+00 3.000000e-02 1.732051e-02 1.732051e-02 +2.250000e+01 2.500000e+00 2.500000e+00 1.090000e+00 1.987461e-01 8.124038e-02 +2.750000e+01 2.500000e+00 2.500000e+00 1.550000e+00 1.067708e-01 2.853069e-01 +3.250000e+01 2.500000e+00 2.500000e+00 2.140000e+00 2.489980e-01 6.024948e-01 +3.750000e+01 2.500000e+00 2.500000e+00 1.450000e+00 2.051828e-01 5.128353e-01 +4.250000e+01 2.500000e+00 2.500000e+00 6.400000e-01 9.380832e-02 2.758623e-01 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/ZEUS_2008_I763404/d14-x01-y01 +IsRef=1 +Path=/REF/ZEUS_2008_I763404/d14-x01-y01 +Title=doi:10.17182/hepdata.63789.v1/t14 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +7.500000e-03 2.500000e-03 2.500000e-03 6.000000e-01 1.109054e-01 5.196152e-02 +1.250000e-02 2.500000e-03 2.500000e-03 1.440000e+00 1.445683e-01 2.515949e-01 +1.750000e-02 2.500000e-03 2.500000e-03 2.190000e+00 2.156386e-01 4.724405e-01 +2.250000e-02 2.500000e-03 2.500000e-03 2.760000e+00 3.238827e-01 1.008464e+00 +END YODA_SCATTER2D + +BEGIN YODA_SCATTER2D /REF/ZEUS_2008_I763404/d15-x01-y01 +IsRef=1 +Path=/REF/ZEUS_2008_I763404/d15-x01-y01 +Title=doi:10.17182/hepdata.63789.v1/t15 +Type=Scatter2D +# xval xerr- xerr+ yval yerr- yerr+ +3.000000e-01 1.000000e-01 1.000000e-01 1.440000e+01 2.509980e+00 8.872993e+00 +5.000000e-01 1.000000e-01 1.000000e-01 4.040000e+01 4.733920e+00 2.258982e+01 +7.000000e-01 1.000000e-01 1.000000e-01 7.230000e+01 8.439194e+00 2.127299e+01 +9.000000e-01 1.000000e-01 1.000000e-01 4.620000e+01 1.175670e+01 2.126029e+00 +END YODA_SCATTER2D + diff --git a/analyses/pluginHERA/ZEUS_2012_I1116258.cc b/analyses/pluginHERA/ZEUS_2012_I1116258.cc new file mode 100644 --- /dev/null +++ b/analyses/pluginHERA/ZEUS_2012_I1116258.cc @@ -0,0 +1,154 @@ +// -*- C++ -*- +#include "Rivet/Analysis.hh" +#include "Rivet/Projections/Beam.hh" +#include "Rivet/Projections/DISKinematics.hh" +#include "Rivet/Projections/FastJets.hh" +#include "fastjet/SISConePlugin.hh" + +namespace Rivet { + + + /// @brief ZEUS inclusive jet photoproduction study used to measure alpha_s + /// + /// @author Jon Butterworth + class ZEUS_2012_I1116258 : public Analysis { + public: + + /// Constructor + DEFAULT_RIVET_ANALYSIS_CTOR(ZEUS_2012_I1116258); + + /// @name Analysis methods + //@{ + + // Book projections and histograms + void init() { + + // Projections + + // Jet schemes checked with oringal code, M.Wing, A.Geiser + FinalState fs; + double jet_radius = 1.0; + declare(FastJets(fs, fastjet::JetAlgorithm::kt_algorithm, fastjet::RecombinationScheme::Et_scheme, jet_radius), "Jets"); + declare(FastJets(fs, fastjet::JetAlgorithm::antikt_algorithm, fastjet::RecombinationScheme::Et_scheme, jet_radius), "Jets_akt"); + + // bit of messing about to use the correct recombnation scheme for SISCone. + double overlap_threshold = 0.75; + fastjet::SISConePlugin * plugin = new fastjet::SISConePlugin(jet_radius, overlap_threshold); + plugin->set_use_jet_def_recombiner(true); + JetDefinition siscone(plugin); + siscone.set_recombination_scheme(fastjet::RecombinationScheme::Et_scheme); + declare(FastJets(fs, siscone), "Jets_sis"); + + + declare(DISKinematics(), "Kinematics"); + + // all eta + _h_etjet[0] = bookHisto1D(1, 1, 1); + + // two ET cuts. + _h_etajet[0] = bookHisto1D(2, 1, 1); + _h_etajet[1] = bookHisto1D(3, 1, 1); + + // in eta regions + _h_etjet[1] = bookHisto1D(4, 1, 1); + _h_etjet[2] = bookHisto1D(5, 1, 1); + _h_etjet[3] = bookHisto1D(6, 1, 1); + _h_etjet[4] = bookHisto1D(7, 1, 1); + _h_etjet[5] = bookHisto1D(8, 1, 1); + + // antiKT + _h_etjet[6] = bookHisto1D(9, 1, 1); + _h_etajet[2] = bookHisto1D(11, 1, 1); + + // SiSCone + _h_etjet[7] = bookHisto1D(10, 1, 1); + _h_etajet[3] = bookHisto1D(12, 1, 1); + + } + + + // Do the analysis + void analyze(const Event& event) { + + // Determine kinematics, including event orientation since ZEUS coord system is for +z = proton direction + const DISKinematics& kin = apply(event, "Kinematics"); + const int orientation = kin.orientation(); + + // Q2 and inelasticity cuts + if (kin.Q2() > 1*GeV2) vetoEvent; + if (!inRange(sqrt(kin.W2()), 142.0, 293.0)) vetoEvent; + + // Jet selection + // @TODO check the recombination scheme + const Jets jets = apply(event, "Jets") \ + .jets(Cuts::Et > 17*GeV && Cuts::etaIn(-1*orientation, 2.5*orientation), cmpMomByEt); + MSG_DEBUG("kT Jet multiplicity = " << jets.size()); + + const Jets jets_akt = apply(event, "Jets_akt") \ + .jets(Cuts::Et > 17*GeV && Cuts::etaIn(-1*orientation, 2.5*orientation), cmpMomByEt); + + const Jets jets_sis = apply(event, "Jets_sis") \ + .jets(Cuts::Et > 17*GeV && Cuts::etaIn(-1*orientation, 2.5*orientation), cmpMomByEt); + + + // Fill histograms + const double weight = event.weight(); + + for (const Jet& jet : jets ){ + _h_etjet[0]->fill(jet.pt(), weight); + _h_etajet[0]->fill(orientation*jet.eta(), weight); + if (jet.pt()>21*GeV) { + _h_etajet[1]->fill(orientation*jet.eta(), weight); + } + if (orientation*jet.eta() < 0) { + _h_etjet[1]->fill(jet.pt(), weight); + } else if (orientation*jet.eta() < 1) { + _h_etjet[2]->fill(jet.pt(), weight); + } else if (orientation*jet.eta() < 1.5) { + _h_etjet[3]->fill(jet.pt(), weight); + } else if (orientation*jet.eta() < 2) { + _h_etjet[4]->fill(jet.pt(), weight); + } else { + _h_etjet[5]->fill(jet.pt(), weight); + } + } + + for (const Jet& jet : jets_akt ){ + _h_etjet[6]->fill(jet.pt(), weight); + _h_etajet[2]->fill(orientation*jet.eta(), weight); + } + for (const Jet& jet : jets_sis ){ + _h_etjet[7]->fill(jet.pt(), weight); + _h_etajet[3]->fill(orientation*jet.eta(), weight); + } + + } + + + // Finalize + void finalize() { + const double sf = crossSection()/picobarn/sumOfWeights(); + for( int i = 0; i < 8; i++ ) { + scale(_h_etjet[i], sf); + } + for( int i = 0; i < 4; i++ ) { + scale(_h_etajet[i], sf); + } + } + + //@} + + + private: + + /// @name Histograms + //@{ + Histo1DPtr _h_etjet[8], _h_etajet[4]; + //@} + + }; + + + DECLARE_RIVET_PLUGIN(ZEUS_2012_I1116258); + +} diff --git a/analyses/pluginHERA/ZEUS_2012_I1116258.info b/analyses/pluginHERA/ZEUS_2012_I1116258.info new file mode 100644 --- /dev/null +++ b/analyses/pluginHERA/ZEUS_2012_I1116258.info @@ -0,0 +1,52 @@ +Name: ZEUS_2012_I1116258 +Year: 2012 +Summary: Inclusive-jet photoproduction at HERA and determination of the strong coupling +Experiment: ZEUS +Collider: HERA Run II +InspireID: 1116250 +Status: UNVALIDATED +Authors: + - Jon Butterworth +References: + - Nucl.Phys. B864 (2012) 1-37 + - DESY 12/045 + - hep-ex/1205.6153 +RunInfo: + 920 GeV protons colliding with 27.5 GeV positrons; + Direct and resolved photoproduction of dijets; + Jet $pT > 17$ GeV + Jet pseudorapidity $-1 < |\eta| < 2.5$ +NumEvents: 1000000 +Beams: [p+, e+] +Energies: [[920, 27.5]] +Description: + Inclusive-jet cross sections have been measured in the reaction ep->e+jet+X for photon virtuality Q2 < 1 GeV2 and gamma-p + centre-of-mass energies in the region 142 < W(gamma-p) < 293 GeV with the ZEUS detector at HERA using an integrated + luminosity of 300 pb-1. Jets were identified using the kT, anti-kT or SIScone jet algorithms in the laboratory frame. + Single-differential cross sections are presented as functions of the jet transverse energy, ETjet, and pseudorapidity, + etajet, for jets with ETjet > 17 GeV and -1 < etajet < 2.5. In addition, measurements of double-differential inclusive-jet + cross sections are presented as functions of ETjet in different regions of etajet. Next-to-leading-order QCD calculations + give a good description of the measurements, except for jets with low ETjet and high etajet. The influence of + non-perturbative effects not related to hadronisation was studied. Measurements of the ratios of cross sections using + different jet algorithms are also presented; the measured ratios are well described by calculations including up to + O(alphas2) terms. Values of alphas(Mz) were extracted from the measurements and the energy-scale dependence of the + coupling was determined. The value of alphas(Mz) extracted from the measurements based on the kT jet algorithm is + alphas(Mz) = 0.1206 +0.0023 -0.0022 (exp.) +0.0042 -0.0035 (th.); the results from the anti-kT and SIScone algorithms + are compatible with this value and have a similar precision. +BibKey: Abramowicz:2012jz +BibTeX: '@article{Abramowicz:2012jz, + author = "Abramowicz, H. and others", + title = "{Inclusive-jet photoproduction at HERA and determination + of alphas}", + collaboration = "ZEUS", + journal = "Nucl. Phys.", + volume = "B864", + year = "2012", + pages = "1-37", + doi = "10.1016/j.nuclphysb.2012.06.006", + eprint = "1205.6153", + archivePrefix = "arXiv", + primaryClass = "hep-ex", + reportNumber = "DESY-12-045", + SLACcitation = "%%CITATION = ARXIV:1205.6153;%%" +}' diff --git a/analyses/pluginHERA/ZEUS_2012_I1116258.plot b/analyses/pluginHERA/ZEUS_2012_I1116258.plot new file mode 100644 --- /dev/null +++ b/analyses/pluginHERA/ZEUS_2012_I1116258.plot @@ -0,0 +1,112 @@ +# BEGIN PLOT /ZEUS_2012_I1116258/d01-x01-y01 +Title= +XLabel=$E_T$ [GeV] +YLabel=$\mathrm{d}\sigma / \mathrm{d}E_T$ [pb/GeV] +CustomLegend=$-1 > \eta > 2.5, k_T$ alg +LogY=1 +LegendXPos=0.4 +# END PLOT + +# BEGIN PLOT /ZEUS_2012_I1116258/d02-x01-y01 +Title= +XLabel=$\eta$ +YLabel=$\mathrm{d}\sigma / \mathrm{d}|\eta|$ [pb] +CustomLegend=$E_T > 17$GeV, $k_T$ alg +LogY=0 +LegendXPos=0.5 +LegendYPos=0.5 +# END PLOT + +# BEGIN PLOT /ZEUS_2012_I1116258/d03-x01-y01 +Title= +XLabel=$\eta$ +YLabel=$\mathrm{d}\sigma / \mathrm{d}|\eta|$ [pb] +CustomLegend=$E_T > 21$GeV, $k_T$ alg +LogY=0 +LegendXPos=0.5 +LegendYPos=0.5 +# END PLOT + +# BEGIN PLOT /ZEUS_2012_I1116258/d04-x01-y01 +Title= +XLabel=$E_T$ [GeV] +YLabel=$\mathrm{d}\sigma / \mathrm{d}E_T$ [pb/GeV] +CustomLegend=$-1 > \eta > 0, k_T$ alg +LogY=1 +LegendXPos=0.4 +# END PLOT + +# BEGIN PLOT /ZEUS_2012_I1116258/d05-x01-y01 +Title= +XLabel=$E_T$ [GeV] +YLabel=$\mathrm{d}\sigma / \mathrm{d}E_T$ [pb/GeV] +CustomLegend=$0 > \eta > 1, k_T$ alg +LogY=1 +LegendXPos=0.4 +# END PLOT + +# BEGIN PLOT /ZEUS_2012_I1116258/d06-x01-y01 +Title= +XLabel=$E_T$ [GeV] +YLabel=$\mathrm{d}\sigma / \mathrm{d}E_T$ [pb/GeV] +CustomLegend=$1 > \eta > 1.5, k_T$ alg +LogY=1 +LegendXPos=0.4 +# END PLOT + +# BEGIN PLOT /ZEUS_2012_I1116258/d07-x01-y01 +Title= +XLabel=$E_T$ [GeV] +YLabel=$\mathrm{d}\sigma / \mathrm{d}E_T$ [pb/GeV] +CustomLegend=$1.5 > \eta > 2, k_T$ alg +LogY=1 +LegendXPos=0.4 +# END PLOT + +# BEGIN PLOT /ZEUS_2012_I1116258/d08-x01-y01 +Title= +XLabel=$E_T$ [GeV] +YLabel=$\mathrm{d}\sigma / \mathrm{d}E_T$ [pb/GeV] +CustomLegend=$2 > \eta > 2.5, k_T$ alg +LogY=1 +LegendXPos=0.4 +# END PLOT + +# BEGIN PLOT /ZEUS_2012_I1116258/d09-x01-y01 +Title= +XLabel=$E_T$ [GeV] +YLabel=$\mathrm{d}\sigma / \mathrm{d}E_T$ [pb/GeV] +CustomLegend=$-1 > \eta > 2,$ anti-$k_T$ alg +LogY=1 +LegendXPos=0.4 +# END PLOT + +# BEGIN PLOT /ZEUS_2012_I1116258/d10-x01-y01 +Title= +XLabel=$E_T$ [GeV] +YLabel=$\mathrm{d}\sigma / \mathrm{d}E_T$ [pb/GeV] +CustomLegend=$-1 > \eta > 2.5$, SISCone +LogY=1 +LegendXPos=0.4 +# END PLOT + +# BEGIN PLOT /ZEUS_2012_I1116258/d11-x01-y01 +Title= +XLabel=$\eta$ +YLabel=$\mathrm{d}\sigma / \mathrm{d}|\eta|$ [pb] +CustomLegend=$E_T > 17$GeV, anti-$k_T$ alg +LogY=0 +LegendXPos=0.5 +LegendYPos=0.5 +# END PLOT + +# BEGIN PLOT /ZEUS_2012_I1116258/d12-x01-y01 +Title= +XLabel=$\eta$ +YLabel=$\mathrm{d}\sigma / \mathrm{d}|\eta|$ [pb] +CustomLegend=$E_T > 17$GeV, SISCone +LogY=0 +LegendXPos=0.5 +LegendYPos=0.5 +# END PLOT + diff --git a/analyses/pluginHERA/ZEUS_2012_I1116258.yoda b/analyses/pluginHERA/ZEUS_2012_I1116258.yoda new file mode 100644 --- /dev/null +++ b/analyses/pluginHERA/ZEUS_2012_I1116258.yoda @@ -0,0 +1,252 @@ +BEGIN YODA_SCATTER2D_V2 /REF/ZEUS_2012_I1116258/d01-x01-y01 +Variations: [""] +ErrorBreakdown: {0: {stat: {dn: -0.52, up: 0.52}, 'sys,JEscale': {dn: -11.93, up: 11.35}, 'sys,uncorr': {dn: -6.36, up: 6.37}}, 1: {stat: {dn: -0.28, up: 0.28}, 'sys,JEscale': {dn: -4.5, up: 4.19}, 'sys,uncorr': {dn: -1.55, up: 1.56}}, 2: {stat: {dn: -0.18, up: 0.18}, 'sys,JEscale': {dn: -1.8, up: 1.76}, 'sys,uncorr': {dn: -0.52, up: 0.52}}, 3: {stat: {dn: -0.09, up: 0.09}, 'sys,JEscale': {dn: -0.772, up: 0.687}, 'sys,uncorr': {dn: -0.142, up: 0.15}}, 4: {stat: {dn: -0.051, up: 0.051}, 'sys,JEscale': {dn: -0.251, up: 0.25}, 'sys,uncorr': {dn: -0.102, up: 0.104}}, 5: {stat: {dn: -0.032, up: 0.032}, 'sys,JEscale': {dn: -0.102, up: 0.098}, 'sys,uncorr': {dn: -0.033, up: 0.033}}, 6: {stat: {dn: -0.017, up: 0.017}, 'sys,JEscale': {dn: -0.044, up: 0.038}, 'sys,uncorr': {dn: -0.015, up: 0.015}}, 7: {stat: {dn: -0.0057, up: 0.0057}, 'sys,JEscale': {dn: -0.009, up: 0.0086}, 'sys,uncorr': {dn: -0.0028, up: 0.0033}}, 8: {stat: {dn: -0.0014, up: 0.0014}, 'sys,JEscale': {dn: -0.0011, up: 0.0012}, 'sys,uncorr': {dn: -0.001, up: 0.001}}} + +IsRef: 1 +Path: /REF/ZEUS_2012_I1116258/d01-x01-y01 +Title: doi:10.17182/hepdata.62400.v1/t1 +Type: Scatter2D +--- +# xval xerr- xerr+ yval yerr- yerr+ +1.870000e+01 1.700000e+00 2.300000e+00 2.958400e+02 1.352941e+01 1.302574e+01 +2.270000e+01 1.700000e+00 2.300000e+00 9.586000e+01 4.767693e+00 4.479743e+00 +2.670000e+01 1.700000e+00 2.300000e+00 3.688000e+01 1.882233e+00 1.844017e+00 +3.140000e+01 2.400000e+00 3.600000e+00 1.360600e+01 7.900937e-01 7.089210e-01 +3.750000e+01 2.500000e+00 3.500000e+00 4.492000e+00 2.756919e-01 2.755304e-01 +4.360000e+01 2.600000e+00 3.400000e+00 1.677000e+00 1.118794e-01 1.082451e-01 +5.020000e+01 3.200000e+00 4.800000e+00 5.890000e-01 4.949747e-02 4.424929e-02 +6.030000e+01 5.300000e+00 1.070000e+01 1.216000e-01 1.101499e-02 1.083236e-02 +7.720000e+01 6.200000e+00 1.780000e+01 1.210000e-02 2.042058e-03 2.097618e-03 +END YODA_SCATTER2D_V2 +BEGIN YODA_SCATTER2D_V2 /REF/ZEUS_2012_I1116258/d02-x01-y01 +Variations: [""] +ErrorBreakdown: {0: {stat: {dn: -0.92, up: 0.92}, 'sys,JEscale': {dn: -7.78, up: 6.86}, 'sys,uncorr': {dn: -4.89, up: 5.12}}, 1: {stat: {dn: -1.6, up: 1.6}, 'sys,JEscale': {dn: -15.3, up: 14.0}, 'sys,uncorr': {dn: -8.5, up: 8.7}}, 2: {stat: {dn: -2.2, up: 2.2}, 'sys,JEscale': {dn: -23.1, up: 21.7}, 'sys,uncorr': {dn: -9.9, up: 10.0}}, 3: {stat: {dn: -2.6, up: 2.6}, 'sys,JEscale': {dn: -28.2, up: 25.9}, 'sys,uncorr': {dn: -7.9, up: 8.1}}, 4: {stat: {dn: -2.9, up: 2.9}, 'sys,JEscale': {dn: -32.5, up: 30.3}, 'sys,uncorr': {dn: -8.0, up: 8.2}}, 5: {stat: {dn: -3.1, up: 3.1}, 'sys,JEscale': {dn: -34.4, up: 32.5}, 'sys,uncorr': {dn: -12.2, up: 12.3}}, 6: {stat: {dn: -3.2, up: 3.2}, 'sys,JEscale': {dn: -32.8, up: 31.4}, 'sys,uncorr': {dn: -19.3, up: 19.3}}, 7: {stat: {dn: -3.3, up: 3.3}, 'sys,JEscale': {dn: -30.7, up: 29.1}, 'sys,uncorr': {dn: -19.6, up: 19.6}}, 8: {stat: {dn: -2.9, up: 2.9}, 'sys,JEscale': {dn: -27.0, up: 25.1}, 'sys,uncorr': {dn: -24.0, up: 24.0}}, 9: {stat: {dn: -2.8, up: 2.8}, 'sys,JEscale': {dn: -25.3, up: 24.6}, 'sys,uncorr': {dn: -23.8, up: 23.8}}, 10: {stat: {dn: -2.6, up: 2.6}, 'sys,JEscale': {dn: -23.2, up: 22.5}, 'sys,uncorr': {dn: -16.3, up: 16.4}}, 11: {stat: {dn: -2.6, up: 2.6}, 'sys,JEscale': {dn: -21.1, up: 20.4}, 'sys,uncorr': {dn: -13.4, up: 13.4}}, 12: {stat: {dn: -2.4, up: 2.4}, 'sys,JEscale': {dn: -19.9, up: 18.7}, 'sys,uncorr': {dn: -20.2, up: 20.2}}} + +IsRef: 1 +Path: /REF/ZEUS_2012_I1116258/d02-x01-y01 +Title: doi:10.17182/hepdata.62400.v1/t2 +Type: Scatter2D +--- +# xval xerr- xerr+ yval yerr- yerr+ +-5.900000e-01 1.600000e-01 9.000000e-02 8.065000e+01 9.235091e+00 8.609321e+00 +-3.600000e-01 1.400000e-01 1.100000e-01 2.214000e+02 1.757555e+01 1.656050e+01 +-1.100000e-01 1.400000e-01 1.100000e-01 4.044000e+02 2.522816e+01 2.399437e+01 +1.300000e-01 1.300000e-01 1.200000e-01 5.552000e+02 2.940085e+01 2.726133e+01 +3.800000e-01 1.300000e-01 1.200000e-01 6.858000e+02 3.359554e+01 3.152364e+01 +6.300000e-01 1.300000e-01 1.200000e-01 7.796000e+02 3.663072e+01 3.488768e+01 +8.700000e-01 1.200000e-01 1.300000e-01 8.030000e+02 3.819123e+01 3.699581e+01 +1.120000e+00 1.200000e-01 1.300000e-01 7.849000e+02 3.657239e+01 3.524003e+01 +1.380000e+00 1.300000e-01 1.200000e-01 6.949000e+02 3.624100e+01 3.484853e+01 +1.630000e+00 1.300000e-01 1.200000e-01 6.548000e+02 3.484781e+01 3.434298e+01 +1.880000e+00 1.300000e-01 1.200000e-01 5.921000e+02 2.847262e+01 2.796373e+01 +2.130000e+00 1.300000e-01 1.200000e-01 5.473000e+02 2.513026e+01 2.454547e+01 +2.380000e+00 1.300000e-01 1.200000e-01 5.072000e+02 2.845716e+01 2.763132e+01 +END YODA_SCATTER2D_V2 +BEGIN YODA_SCATTER2D_V2 /REF/ZEUS_2012_I1116258/d03-x01-y01 +Variations: [""] +ErrorBreakdown: {0: {stat: {dn: -0.13, up: 0.13}, 'sys,JEscale': {dn: -0.62, up: 0.56}, 'sys,uncorr': {dn: -0.49, up: 0.55}}, 1: {stat: {dn: -0.6, up: 0.6}, 'sys,JEscale': {dn: -3.88, up: 3.47}, 'sys,uncorr': {dn: -2.45, up: 2.51}}, 2: {stat: {dn: -1.1, up: 1.1}, 'sys,JEscale': {dn: -7.9, up: 7.3}, 'sys,uncorr': {dn: -3.8, up: 3.8}}, 3: {stat: {dn: -1.4, up: 1.4}, 'sys,JEscale': {dn: -10.6, up: 9.7}, 'sys,uncorr': {dn: -3.6, up: 3.8}}, 4: {stat: {dn: -1.7, up: 1.7}, 'sys,JEscale': {dn: -12.7, up: 11.8}, 'sys,uncorr': {dn: -3.2, up: 3.3}}, 5: {stat: {dn: -1.8, up: 1.8}, 'sys,JEscale': {dn: -14.1, up: 13.0}, 'sys,uncorr': {dn: -4.4, up: 4.6}}, 6: {stat: {dn: -2.0, up: 2.0}, 'sys,JEscale': {dn: -14.5, up: 14.0}, 'sys,uncorr': {dn: -5.9, up: 5.9}}, 7: {stat: {dn: -2.0, up: 2.0}, 'sys,JEscale': {dn: -14.4, up: 13.3}, 'sys,uncorr': {dn: -5.1, up: 5.1}}, 8: {stat: {dn: -1.8, up: 1.8}, 'sys,JEscale': {dn: -12.2, up: 11.5}, 'sys,uncorr': {dn: -5.9, up: 5.9}}, 9: {stat: {dn: -1.7, up: 1.7}, 'sys,JEscale': {dn: -11.4, up: 11.2}, 'sys,uncorr': {dn: -6.5, up: 6.5}}, 10: {stat: {dn: -1.6, up: 1.6}, 'sys,JEscale': {dn: -9.9, up: 9.3}, 'sys,uncorr': {dn: -4.3, up: 4.3}}, 11: {stat: {dn: -1.5, up: 1.5}, 'sys,JEscale': {dn: -9.1, up: 8.4}, 'sys,uncorr': {dn: -2.6, up: 2.6}}, 12: {stat: {dn: -1.3, up: 1.3}, 'sys,JEscale': {dn: -8.3, up: 7.7}, 'sys,uncorr': {dn: -5.3, up: 5.3}}} + +IsRef: 1 +Path: /REF/ZEUS_2012_I1116258/d03-x01-y01 +Title: doi:10.17182/hepdata.62400.v1/t3 +Type: Scatter2D +--- +# xval xerr- xerr+ yval yerr- yerr+ +-5.600000e-01 1.900000e-01 6.000000e-02 4.120000e+00 8.008745e-01 7.956130e-01 +-3.400000e-01 1.600000e-01 9.000000e-02 3.812000e+01 4.627840e+00 4.324465e+00 +-1.100000e-01 1.400000e-01 1.100000e-01 1.088000e+02 8.835157e+00 8.303012e+00 +1.300000e-01 1.300000e-01 1.200000e-01 1.762000e+02 1.128184e+01 1.051142e+01 +3.800000e-01 1.300000e-01 1.200000e-01 2.383000e+02 1.320682e+01 1.237013e+01 +6.300000e-01 1.300000e-01 1.200000e-01 2.820000e+02 1.487985e+01 1.390683e+01 +8.700000e-01 1.200000e-01 1.300000e-01 3.095000e+02 1.578163e+01 1.532351e+01 +1.120000e+00 1.200000e-01 1.300000e-01 3.145000e+02 1.540682e+01 1.438402e+01 +1.380000e+00 1.300000e-01 1.200000e-01 2.816000e+02 1.367077e+01 1.304990e+01 +1.630000e+00 1.300000e-01 1.200000e-01 2.629000e+02 1.323254e+01 1.306063e+01 +1.880000e+00 1.300000e-01 1.200000e-01 2.253000e+02 1.091146e+01 1.037015e+01 +2.130000e+00 1.300000e-01 1.200000e-01 2.009000e+02 9.582275e+00 8.920202e+00 +2.380000e+00 1.300000e-01 1.200000e-01 1.732000e+02 9.933277e+00 9.437690e+00 +END YODA_SCATTER2D_V2 +BEGIN YODA_SCATTER2D_V2 /REF/ZEUS_2012_I1116258/d04-x01-y01 +Variations: [""] +ErrorBreakdown: {0: {stat: {dn: -0.17, up: 0.17}, 'sys,JEscale': {dn: -2.21, up: 2.04}, 'sys,uncorr': {dn: -1.14, up: 1.15}}, 1: {stat: {dn: -0.071, up: 0.071}, 'sys,JEscale': {dn: -0.592, up: 0.543}, 'sys,uncorr': {dn: -0.331, up: 0.337}}, 2: {stat: {dn: -0.032, up: 0.032}, 'sys,JEscale': {dn: -0.167, up: 0.157}, 'sys,uncorr': {dn: -0.109, up: 0.115}}, 3: {stat: {dn: -0.01, up: 0.01}, 'sys,JEscale': {dn: -0.039, up: 0.032}, 'sys,uncorr': {dn: -0.024, up: 0.024}}, 4: {stat: {dn: -0.0018, up: 0.0018}, 'sys,JEscale': {dn: -0.0031, up: 0.0023}, 'sys,uncorr': {dn: -0.0021, up: 0.0026}}} + +IsRef: 1 +Path: /REF/ZEUS_2012_I1116258/d04-x01-y01 +Title: doi:10.17182/hepdata.62400.v1/t4 +Type: Scatter2D +--- +# xval xerr- xerr+ yval yerr- yerr+ +1.860000e+01 1.600000e+00 2.400000e+00 3.599000e+01 2.492509e+00 2.347978e+00 +2.260000e+01 1.600000e+00 2.400000e+00 7.522000e+00 6.819575e-01 6.430078e-01 +2.650000e+01 1.500000e+00 2.500000e+00 1.695000e+00 2.019752e-01 1.972258e-01 +3.090000e+01 1.900000e+00 4.100000e+00 2.680000e-01 4.687217e-02 4.123106e-02 +3.700000e+01 2.000000e+00 4.000000e+00 1.380000e-02 4.154516e-03 3.910243e-03 +END YODA_SCATTER2D_V2 +BEGIN YODA_SCATTER2D_V2 /REF/ZEUS_2012_I1116258/d05-x01-y01 +Variations: [""] +ErrorBreakdown: {0: {stat: {dn: -0.31, up: 0.31}, 'sys,JEscale': {dn: -4.72, up: 4.45}, 'sys,uncorr': {dn: -1.67, up: 1.68}}, 1: {stat: {dn: -0.17, up: 0.17}, 'sys,JEscale': {dn: -1.83, up: 1.7}, 'sys,uncorr': {dn: -0.53, up: 0.54}}, 2: {stat: {dn: -0.11, up: 0.11}, 'sys,JEscale': {dn: -0.74, up: 0.72}, 'sys,uncorr': {dn: -0.24, up: 0.24}}, 3: {stat: {dn: -0.052, up: 0.052}, 'sys,JEscale': {dn: -0.3, up: 0.261}, 'sys,uncorr': {dn: -0.087, up: 0.093}}, 4: {stat: {dn: -0.027, up: 0.027}, 'sys,JEscale': {dn: -0.098, up: 0.09}, 'sys,uncorr': {dn: -0.039, up: 0.04}}, 5: {stat: {dn: -0.015, up: 0.015}, 'sys,JEscale': {dn: -0.032, up: 0.031}, 'sys,uncorr': {dn: -0.015, up: 0.016}}, 6: {stat: {dn: -0.0068, up: 0.0068}, 'sys,JEscale': {dn: -0.011, up: 0.0099}, 'sys,uncorr': {dn: -0.0056, up: 0.0059}}, 7: {stat: {dn: -0.0017, up: 0.0017}, 'sys,JEscale': {dn: -0.0019, up: 0.0019}, 'sys,uncorr': {dn: -0.0013, up: 0.0014}}, 8: {stat: {dn: -0.00022, up: 0.00022}, 'sys,JEscale': {dn: -0.00015, up: 0.0001}, 'sys,uncorr': {dn: -8.0e-05, up: 0.00011}}} + +IsRef: 1 +Path: /REF/ZEUS_2012_I1116258/d05-x01-y01 +Title: doi:10.17182/hepdata.62400.v1/t5 +Type: Scatter2D +--- +# xval xerr- xerr+ yval yerr- yerr+ +1.870000e+01 1.700000e+00 2.300000e+00 1.136100e+02 5.016313e+00 4.766655e+00 +2.270000e+01 1.700000e+00 2.300000e+00 3.773000e+01 1.912773e+00 1.791787e+00 +2.670000e+01 1.700000e+00 2.300000e+00 1.427000e+01 7.856844e-01 7.668768e-01 +3.140000e+01 2.400000e+00 3.600000e+00 5.034000e+00 3.166591e-01 2.819113e-01 +3.750000e+01 2.500000e+00 3.500000e+00 1.490000e+00 1.088761e-01 1.021225e-01 +4.340000e+01 2.400000e+00 3.600000e+00 4.850000e-01 3.839271e-02 3.797368e-02 +5.010000e+01 3.100000e+00 4.900000e+00 1.356000e-01 1.409255e-02 1.338133e-02 +5.980000e+01 4.800000e+00 1.120000e+01 2.200000e-02 2.861818e-03 2.908608e-03 +7.650000e+01 5.500000e+00 1.850000e+01 7.500000e-04 2.780288e-04 2.655184e-04 +END YODA_SCATTER2D_V2 +BEGIN YODA_SCATTER2D_V2 /REF/ZEUS_2012_I1116258/d06-x01-y01 +Variations: [""] +ErrorBreakdown: {0: {stat: {dn: -0.21, up: 0.21}, 'sys,JEscale': {dn: -1.92, up: 1.81}, 'sys,uncorr': {dn: -2.07, up: 2.07}}, 1: {stat: {dn: -0.12, up: 0.12}, 'sys,JEscale': {dn: -0.83, up: 0.77}, 'sys,uncorr': {dn: -0.43, up: 0.43}}, 2: {stat: {dn: -0.082, up: 0.082}, 'sys,JEscale': {dn: -0.387, up: 0.355}, 'sys,uncorr': {dn: -0.133, up: 0.133}}, 3: {stat: {dn: -0.044, up: 0.044}, 'sys,JEscale': {dn: -0.184, up: 0.173}, 'sys,uncorr': {dn: -0.06, up: 0.062}}, 4: {stat: {dn: -0.026, up: 0.026}, 'sys,JEscale': {dn: -0.058, up: 0.06}, 'sys,uncorr': {dn: -0.031, up: 0.031}}, 5: {stat: {dn: -0.016, up: 0.016}, 'sys,JEscale': {dn: -0.027, up: 0.026}, 'sys,uncorr': {dn: -0.013, up: 0.013}}, 6: {stat: {dn: -0.0089, up: 0.0089}, 'sys,JEscale': {dn: -0.013, up: 0.0117}, 'sys,uncorr': {dn: -0.0073, up: 0.0074}}, 7: {stat: {dn: -0.0031, up: 0.0031}, 'sys,JEscale': {dn: -0.0031, up: 0.0028}, 'sys,uncorr': {dn: -0.0023, up: 0.0023}}, 8: {stat: {dn: -0.00083, up: 0.00083}, 'sys,JEscale': {dn: -0.00038, up: 0.00041}, 'sys,uncorr': {dn: -0.00083, up: 0.00083}}} + +IsRef: 1 +Path: /REF/ZEUS_2012_I1116258/d06-x01-y01 +Title: doi:10.17182/hepdata.62400.v1/t6 +Type: Scatter2D +--- +# xval xerr- xerr+ yval yerr- yerr+ +1.870000e+01 1.700000e+00 2.300000e+00 5.526000e+01 2.831148e+00 2.757735e+00 +2.270000e+01 1.700000e+00 2.300000e+00 2.017000e+01 9.424436e-01 8.900562e-01 +2.670000e+01 1.700000e+00 2.300000e+00 8.723000e+00 4.173512e-01 3.878634e-01 +3.150000e+01 2.500000e+00 3.500000e+00 3.461000e+00 1.984742e-01 1.889683e-01 +3.760000e+01 2.600000e+00 3.400000e+00 1.209000e+00 7.071775e-02 7.236712e-02 +4.360000e+01 2.600000e+00 3.400000e+00 4.860000e-01 3.397058e-02 3.318132e-02 +5.030000e+01 3.300000e+00 4.700000e+00 1.911000e-01 1.736376e-02 1.645782e-02 +6.050000e+01 5.500000e+00 1.050000e+01 4.540000e-02 4.950758e-03 4.768648e-03 +7.750000e+01 6.500000e+00 1.750000e+01 5.080000e-03 1.233775e-03 1.243342e-03 +END YODA_SCATTER2D_V2 +BEGIN YODA_SCATTER2D_V2 /REF/ZEUS_2012_I1116258/d07-x01-y01 +Variations: [""] +ErrorBreakdown: {0: {stat: {dn: -0.19, up: 0.19}, 'sys,JEscale': {dn: -1.68, up: 1.64}, 'sys,uncorr': {dn: -1.87, up: 1.86}}, 1: {stat: {dn: -0.11, up: 0.11}, 'sys,JEscale': {dn: -0.68, up: 0.66}, 'sys,uncorr': {dn: -0.48, up: 0.48}}, 2: {stat: {dn: -0.069, up: 0.069}, 'sys,JEscale': {dn: -0.294, up: 0.285}, 'sys,uncorr': {dn: -0.134, up: 0.134}}, 3: {stat: {dn: -0.037, up: 0.037}, 'sys,JEscale': {dn: -0.138, up: 0.129}, 'sys,uncorr': {dn: -0.035, up: 0.035}}, 4: {stat: {dn: -0.023, up: 0.023}, 'sys,JEscale': {dn: -0.052, up: 0.056}, 'sys,uncorr': {dn: -0.02, up: 0.02}}, 5: {stat: {dn: -0.015, up: 0.015}, 'sys,JEscale': {dn: -0.026, up: 0.023}, 'sys,uncorr': {dn: -0.006, up: 0.006}}, 6: {stat: {dn: -0.0086, up: 0.0086}, 'sys,JEscale': {dn: -0.0119, up: 0.0099}, 'sys,uncorr': {dn: -0.0022, up: 0.002}}, 7: {stat: {dn: -0.0027, up: 0.0027}, 'sys,JEscale': {dn: -0.0025, up: 0.0021}, 'sys,uncorr': {dn: -0.0011, up: 0.0012}}, 8: {stat: {dn: -0.00081, up: 0.00081}, 'sys,JEscale': {dn: -0.00029, up: 0.00041}, 'sys,uncorr': {dn: -0.00028, up: 0.00027}}} + +IsRef: 1 +Path: /REF/ZEUS_2012_I1116258/d07-x01-y01 +Title: doi:10.17182/hepdata.62400.v1/t7 +Type: Scatter2D +--- +# xval xerr- xerr+ yval yerr- yerr+ +1.870000e+01 1.700000e+00 2.300000e+00 4.751000e+01 2.520992e+00 2.487026e+00 +2.270000e+01 1.700000e+00 2.300000e+00 1.670000e+01 8.395832e-01 8.234683e-01 +2.670000e+01 1.700000e+00 2.300000e+00 6.844000e+00 3.303831e-01 3.224004e-01 +3.150000e+01 2.500000e+00 3.500000e+00 2.818000e+00 1.470986e-01 1.386903e-01 +3.750000e+01 2.500000e+00 3.500000e+00 1.055000e+00 6.027437e-02 6.375735e-02 +4.370000e+01 2.700000e+00 3.300000e+00 4.320000e-01 3.061046e-02 2.810694e-02 +5.020000e+01 3.200000e+00 4.800000e+00 1.703000e-01 1.484621e-02 1.326537e-02 +6.060000e+01 5.600000e+00 1.040000e+01 3.340000e-02 3.840573e-03 3.624914e-03 +7.810000e+01 7.100000e+00 1.690000e+01 3.930000e-03 9.047652e-04 9.471536e-04 +END YODA_SCATTER2D_V2 +BEGIN YODA_SCATTER2D_V2 /REF/ZEUS_2012_I1116258/d08-x01-y01 +Variations: [""] +ErrorBreakdown: {0: {stat: {dn: -0.18, up: 0.18}, 'sys,JEscale': {dn: -1.43, up: 1.4}, 'sys,uncorr': {dn: -1.63, up: 1.63}}, 1: {stat: {dn: -0.097, up: 0.097}, 'sys,JEscale': {dn: -0.591, up: 0.523}, 'sys,uncorr': {dn: -0.325, up: 0.325}}, 2: {stat: {dn: -0.058, up: 0.058}, 'sys,JEscale': {dn: -0.222, up: 0.24}, 'sys,uncorr': {dn: -0.134, up: 0.134}}, 3: {stat: {dn: -0.029, up: 0.029}, 'sys,JEscale': {dn: -0.114, up: 0.091}, 'sys,uncorr': {dn: -0.027, up: 0.027}}, 4: {stat: {dn: -0.018, up: 0.018}, 'sys,JEscale': {dn: -0.038, up: 0.039}, 'sys,uncorr': {dn: -0.015, up: 0.016}}, 5: {stat: {dn: -0.011, up: 0.011}, 'sys,JEscale': {dn: -0.017, up: 0.017}, 'sys,uncorr': {dn: -0.004, up: 0.003}}, 6: {stat: {dn: -0.0059, up: 0.0059}, 'sys,JEscale': {dn: -0.0082, up: 0.0061}, 'sys,uncorr': {dn: -0.0065, up: 0.0065}}, 7: {stat: {dn: -0.0019, up: 0.0019}, 'sys,JEscale': {dn: -0.0013, up: 0.0016}, 'sys,uncorr': {dn: -0.0007, up: 0.0007}}, 8: {stat: {dn: -0.00065, up: 0.00065}, 'sys,JEscale': {dn: -0.00021, up: 0.00024}, 'sys,uncorr': {dn: -0.00023, up: 0.00023}}} + +IsRef: 1 +Path: /REF/ZEUS_2012_I1116258/d08-x01-y01 +Title: doi:10.17182/hepdata.62400.v1/t8 +Type: Scatter2D +--- +# xval xerr- xerr+ yval yerr- yerr+ +1.860000e+01 1.600000e+00 2.400000e+00 4.288000e+01 2.175822e+00 2.156224e+00 +2.270000e+01 1.700000e+00 2.300000e+00 1.347900e+01 6.814066e-01 6.233482e-01 +2.670000e+01 1.700000e+00 2.300000e+00 5.223000e+00 2.657141e-01 2.809270e-01 +3.150000e+01 2.500000e+00 3.500000e+00 1.977000e+00 1.206897e-01 9.925220e-02 +3.760000e+01 2.600000e+00 3.400000e+00 7.080000e-01 4.464303e-02 4.583667e-02 +4.360000e+01 2.600000e+00 3.400000e+00 2.680000e-01 2.063977e-02 2.046949e-02 +5.020000e+01 3.200000e+00 4.800000e+00 9.280000e-02 1.201249e-02 1.068971e-02 +6.030000e+01 5.300000e+00 1.070000e+01 1.920000e-02 2.406242e-03 2.580698e-03 +7.490000e+01 3.900000e+00 2.010000e+01 2.380000e-03 7.207635e-04 7.300685e-04 +END YODA_SCATTER2D_V2 +BEGIN YODA_SCATTER2D_V2 /REF/ZEUS_2012_I1116258/d09-x01-y01 +Variations: [""] +ErrorBreakdown: {0: {stat: {dn: -0.5, up: 0.5}, 'sys,JEscale': {dn: -11.75, up: 11.09}, 'sys,uncorr': {dn: -5.55, up: 5.55}}, 1: {stat: {dn: -0.28, up: 0.28}, 'sys,JEscale': {dn: -4.3, up: 4.03}, 'sys,uncorr': {dn: -1.35, up: 1.36}}, 2: {stat: {dn: -0.18, up: 0.18}, 'sys,JEscale': {dn: -1.76, up: 1.68}, 'sys,uncorr': {dn: -0.49, up: 0.49}}, 3: {stat: {dn: -0.091, up: 0.091}, 'sys,JEscale': {dn: -0.714, up: 0.64}, 'sys,uncorr': {dn: -0.17, up: 0.18}}, 4: {stat: {dn: -0.052, up: 0.052}, 'sys,JEscale': {dn: -0.243, up: 0.235}, 'sys,uncorr': {dn: -0.087, up: 0.09}}, 5: {stat: {dn: -0.032, up: 0.032}, 'sys,JEscale': {dn: -0.101, up: 0.093}, 'sys,uncorr': {dn: -0.028, up: 0.03}}, 6: {stat: {dn: -0.017, up: 0.017}, 'sys,JEscale': {dn: -0.039, up: 0.037}, 'sys,uncorr': {dn: -0.018, up: 0.018}}, 7: {stat: {dn: -0.0058, up: 0.0058}, 'sys,JEscale': {dn: -0.0081, up: 0.0074}, 'sys,uncorr': {dn: -0.0034, up: 0.0039}}, 8: {stat: {dn: -0.0014, up: 0.0014}, 'sys,JEscale': {dn: -0.001, up: 0.0009}, 'sys,uncorr': {dn: -0.0007, up: 0.0006}}} + +IsRef: 1 +Path: /REF/ZEUS_2012_I1116258/d09-x01-y01 +Title: doi:10.17182/hepdata.62400.v1/t9 +Type: Scatter2D +--- +# xval xerr- xerr+ yval yerr- yerr+ +1.860000e+01 1.600000e+00 2.400000e+00 2.768400e+02 1.300442e+01 1.241131e+01 +2.270000e+01 1.700000e+00 2.300000e+00 8.951000e+01 4.515628e+00 4.262499e+00 +2.670000e+01 1.700000e+00 2.300000e+00 3.454000e+01 1.835783e+00 1.759233e+00 +3.140000e+01 2.400000e+00 3.600000e+00 1.277100e+01 7.395789e-01 6.710298e-01 +3.750000e+01 2.500000e+00 3.500000e+00 4.218000e+00 2.632907e-01 2.569611e-01 +4.350000e+01 2.500000e+00 3.500000e+00 1.567000e+00 1.095856e-01 1.028251e-01 +5.020000e+01 3.200000e+00 4.800000e+00 5.500000e-01 4.619524e-02 4.451966e-02 +6.030000e+01 5.300000e+00 1.070000e+01 1.139000e-01 1.052663e-02 1.017890e-02 +7.750000e+01 6.500000e+00 1.750000e+01 1.050000e-02 1.857418e-03 1.769181e-03 +END YODA_SCATTER2D_V2 +BEGIN YODA_SCATTER2D_V2 /REF/ZEUS_2012_I1116258/d10-x01-y01 +Variations: [""] +ErrorBreakdown: {0: {stat: {dn: -0.51, up: 0.51}, 'sys,JEscale': {dn: -11.52, up: 10.89}, 'sys,uncorr': {dn: -4.3, up: 4.31}}, 1: {stat: {dn: -0.28, up: 0.28}, 'sys,JEscale': {dn: -4.27, up: 3.96}, 'sys,uncorr': {dn: -1.21, up: 1.22}}, 2: {stat: {dn: -0.18, up: 0.18}, 'sys,JEscale': {dn: -1.75, up: 1.65}, 'sys,uncorr': {dn: -0.48, up: 0.49}}, 3: {stat: {dn: -0.09, up: 0.09}, 'sys,JEscale': {dn: -0.695, up: 0.651}, 'sys,uncorr': {dn: -0.179, up: 0.185}}, 4: {stat: {dn: -0.051, up: 0.051}, 'sys,JEscale': {dn: -0.252, up: 0.233}, 'sys,uncorr': {dn: -0.107, up: 0.108}}, 5: {stat: {dn: -0.031, up: 0.031}, 'sys,JEscale': {dn: -0.1, up: 0.09}, 'sys,uncorr': {dn: -0.029, up: 0.031}}, 6: {stat: {dn: -0.016, up: 0.016}, 'sys,JEscale': {dn: -0.039, up: 0.034}, 'sys,uncorr': {dn: -0.02, up: 0.02}}, 7: {stat: {dn: -0.0055, up: 0.0055}, 'sys,JEscale': {dn: -0.0085, up: 0.0085}, 'sys,uncorr': {dn: -0.0042, up: 0.0045}}, 8: {stat: {dn: -0.0013, up: 0.0013}, 'sys,JEscale': {dn: -0.0013, up: 0.0012}, 'sys,uncorr': {dn: -0.0008, up: 0.0008}}} + +IsRef: 1 +Path: /REF/ZEUS_2012_I1116258/d10-x01-y01 +Title: doi:10.17182/hepdata.62400.v1/t10 +Type: Scatter2D +--- +# xval xerr- xerr+ yval yerr- yerr+ +1.870000e+01 1.700000e+00 2.300000e+00 2.780100e+02 1.230693e+01 1.172298e+01 +2.270000e+01 1.700000e+00 2.300000e+00 9.082000e+01 4.446954e+00 4.153119e+00 +2.670000e+01 1.700000e+00 2.300000e+00 3.527000e+01 1.823541e+00 1.730607e+00 +3.140000e+01 2.400000e+00 3.600000e+00 1.305900e+01 7.233021e-01 6.827342e-01 +3.750000e+01 2.500000e+00 3.500000e+00 4.330000e+00 2.784852e-01 2.618282e-01 +4.360000e+01 2.600000e+00 3.400000e+00 1.639000e+00 1.086370e-01 1.001099e-01 +5.030000e+01 3.300000e+00 4.700000e+00 5.650000e-01 4.665833e-02 4.256759e-02 +6.050000e+01 5.500000e+00 1.050000e+01 1.199000e-01 1.096084e-02 1.107926e-02 +7.770000e+01 6.700000e+00 1.730000e+01 1.080000e-02 2.004994e-03 1.941649e-03 +END YODA_SCATTER2D_V2 +BEGIN YODA_SCATTER2D_V2 /REF/ZEUS_2012_I1116258/d11-x01-y01 +Variations: [""] +ErrorBreakdown: {0: {stat: {dn: -0.84, up: 0.84}, 'sys,JEscale': {dn: -6.51, up: 5.83}, 'sys,uncorr': {dn: -3.88, up: 4.16}}, 1: {stat: {dn: -1.6, up: 1.6}, 'sys,JEscale': {dn: -14.1, up: 13.3}, 'sys,uncorr': {dn: -7.9, up: 8.1}}, 2: {stat: {dn: -2.1, up: 2.1}, 'sys,JEscale': {dn: -21.4, up: 20.3}, 'sys,uncorr': {dn: -9.9, up: 10.1}}, 3: {stat: {dn: -2.5, up: 2.5}, 'sys,JEscale': {dn: -26.3, up: 25.5}, 'sys,uncorr': {dn: -7.3, up: 7.5}}, 4: {stat: {dn: -2.8, up: 2.8}, 'sys,JEscale': {dn: -30.3, up: 28.3}, 'sys,uncorr': {dn: -6.6, up: 6.9}}, 5: {stat: {dn: -3.0, up: 3.0}, 'sys,JEscale': {dn: -32.7, up: 30.8}, 'sys,uncorr': {dn: -9.5, up: 9.6}}, 6: {stat: {dn: -3.1, up: 3.1}, 'sys,JEscale': {dn: -32.1, up: 30.0}, 'sys,uncorr': {dn: -15.5, up: 15.5}}, 7: {stat: {dn: -3.2, up: 3.2}, 'sys,JEscale': {dn: -29.8, up: 28.4}, 'sys,uncorr': {dn: -18.3, up: 18.3}}, 8: {stat: {dn: -2.8, up: 2.8}, 'sys,JEscale': {dn: -25.8, up: 24.0}, 'sys,uncorr': {dn: -19.1, up: 19.1}}, 9: {stat: {dn: -2.7, up: 2.7}, 'sys,JEscale': {dn: -25.0, up: 23.4}, 'sys,uncorr': {dn: -20.2, up: 20.1}}, 10: {stat: {dn: -2.6, up: 2.6}, 'sys,JEscale': {dn: -24.1, up: 22.4}, 'sys,uncorr': {dn: -16.2, up: 16.2}}, 11: {stat: {dn: -2.6, up: 2.6}, 'sys,JEscale': {dn: -22.8, up: 21.3}, 'sys,uncorr': {dn: -16.1, up: 16.1}}, 12: {stat: {dn: -2.5, up: 2.5}, 'sys,JEscale': {dn: -21.2, up: 18.7}, 'sys,uncorr': {dn: -18.5, up: 18.5}}} + +IsRef: 1 +Path: /REF/ZEUS_2012_I1116258/d11-x01-y01 +Title: doi:10.17182/hepdata.62400.v1/t11 +Type: Scatter2D +--- +# xval xerr- xerr+ yval yerr- yerr+ +-5.800000e-01 1.700000e-01 8.000000e-02 6.563000e+01 7.624966e+00 7.211109e+00 +-3.500000e-01 1.500000e-01 1.000000e-01 2.003000e+02 1.624131e+01 1.565439e+01 +-1.200000e-01 1.300000e-01 1.200000e-01 3.695000e+02 2.367235e+01 2.277081e+01 +1.300000e-01 1.300000e-01 1.200000e-01 5.186000e+02 2.740858e+01 2.669738e+01 +3.800000e-01 1.300000e-01 1.200000e-01 6.346000e+02 3.113663e+01 2.926329e+01 +6.300000e-01 1.300000e-01 1.200000e-01 7.222000e+02 3.418391e+01 3.240062e+01 +8.700000e-01 1.200000e-01 1.300000e-01 7.482000e+02 3.578086e+01 3.390959e+01 +1.120000e+00 1.200000e-01 1.300000e-01 7.323000e+02 3.511652e+01 3.393656e+01 +1.380000e+00 1.300000e-01 1.200000e-01 6.497000e+02 3.222251e+01 3.080016e+01 +1.630000e+00 1.300000e-01 1.200000e-01 6.109000e+02 3.225415e+01 3.096546e+01 +1.870000e+00 1.200000e-01 1.300000e-01 5.695000e+02 2.915493e+01 2.776617e+01 +2.130000e+00 1.300000e-01 1.200000e-01 5.362000e+02 2.803230e+01 2.682648e+01 +2.380000e+00 1.300000e-01 1.200000e-01 4.886000e+02 2.824783e+01 2.642329e+01 +END YODA_SCATTER2D_V2 +BEGIN YODA_SCATTER2D_V2 /REF/ZEUS_2012_I1116258/d12-x01-y01 +Variations: [""] +ErrorBreakdown: {0: {stat: {dn: -0.87, up: 0.87}, 'sys,JEscale': {dn: -7.06, up: 6.21}, 'sys,uncorr': {dn: -4.36, up: 4.67}}, 1: {stat: {dn: -1.6, up: 1.6}, 'sys,JEscale': {dn: -14.7, up: 13.5}, 'sys,uncorr': {dn: -8.7, up: 8.7}}, 2: {stat: {dn: -2.2, up: 2.2}, 'sys,JEscale': {dn: -22.1, up: 20.4}, 'sys,uncorr': {dn: -10.9, up: 11.0}}, 3: {stat: {dn: -2.6, up: 2.6}, 'sys,JEscale': {dn: -27.1, up: 25.6}, 'sys,uncorr': {dn: -8.0, up: 8.3}}, 4: {stat: {dn: -2.9, up: 2.9}, 'sys,JEscale': {dn: -30.6, up: 28.1}, 'sys,uncorr': {dn: -6.7, up: 6.8}}, 5: {stat: {dn: -3.1, up: 3.1}, 'sys,JEscale': {dn: -32.5, up: 30.1}, 'sys,uncorr': {dn: -9.0, up: 9.1}}, 6: {stat: {dn: -3.2, up: 3.2}, 'sys,JEscale': {dn: -31.8, up: 29.9}, 'sys,uncorr': {dn: -13.8, up: 13.8}}, 7: {stat: {dn: -3.3, up: 3.3}, 'sys,JEscale': {dn: -29.3, up: 27.7}, 'sys,uncorr': {dn: -14.6, up: 14.7}}, 8: {stat: {dn: -2.9, up: 2.9}, 'sys,JEscale': {dn: -24.3, up: 23.3}, 'sys,uncorr': {dn: -15.3, up: 15.2}}, 9: {stat: {dn: -2.7, up: 2.7}, 'sys,JEscale': {dn: -23.1, up: 22.3}, 'sys,uncorr': {dn: -14.3, up: 14.3}}, 10: {stat: {dn: -2.6, up: 2.6}, 'sys,JEscale': {dn: -22.2, up: 20.9}, 'sys,uncorr': {dn: -10.9, up: 10.8}}, 11: {stat: {dn: -2.5, up: 2.5}, 'sys,JEscale': {dn: -22.0, up: 20.5}, 'sys,uncorr': {dn: -14.1, up: 14.1}}, 12: {stat: {dn: -2.5, up: 2.5}, 'sys,JEscale': {dn: -21.6, up: 20.1}, 'sys,uncorr': {dn: -24.4, up: 24.3}}} + +IsRef: 1 +Path: /REF/ZEUS_2012_I1116258/d12-x01-y01 +Title: doi:10.17182/hepdata.62400.v1/t12 +Type: Scatter2D +--- +# xval xerr- xerr+ yval yerr- yerr+ +-5.800000e-01 1.700000e-01 8.000000e-02 6.965000e+01 8.343267e+00 7.818561e+00 +-3.500000e-01 1.500000e-01 1.000000e-01 2.053000e+02 1.715634e+01 1.614001e+01 +-1.200000e-01 1.300000e-01 1.200000e-01 3.793000e+02 2.473985e+01 2.328089e+01 +1.300000e-01 1.300000e-01 1.200000e-01 5.277000e+02 2.837552e+01 2.703720e+01 +3.800000e-01 1.300000e-01 1.200000e-01 6.451000e+02 3.145886e+01 2.905615e+01 +6.300000e-01 1.300000e-01 1.200000e-01 7.316000e+02 3.386532e+01 3.159794e+01 +8.700000e-01 1.200000e-01 1.300000e-01 7.568000e+02 3.481264e+01 3.308610e+01 +1.120000e+00 1.200000e-01 1.300000e-01 7.350000e+02 3.290198e+01 3.153205e+01 +1.380000e+00 1.300000e-01 1.200000e-01 6.500000e+02 2.886157e+01 2.797034e+01 +1.630000e+00 1.300000e-01 1.200000e-01 5.987000e+02 2.730183e+01 2.662837e+01 +1.870000e+00 1.200000e-01 1.300000e-01 5.490000e+02 2.486785e+01 2.366876e+01 +2.130000e+00 1.300000e-01 1.200000e-01 5.298000e+02 2.624995e+01 2.500620e+01 +2.380000e+00 1.300000e-01 1.200000e-01 5.185000e+02 3.268287e+01 3.163463e+01 +END YODA_SCATTER2D_V2 diff --git a/analyses/pluginLEP/ALEPH_1996_S3486095.cc b/analyses/pluginLEP/ALEPH_1996_S3486095.cc --- a/analyses/pluginLEP/ALEPH_1996_S3486095.cc +++ b/analyses/pluginLEP/ALEPH_1996_S3486095.cc @@ -1,481 +1,481 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/Beam.hh" #include "Rivet/Projections/Sphericity.hh" #include "Rivet/Projections/Thrust.hh" #include "Rivet/Projections/FastJets.hh" #include "Rivet/Projections/ParisiTensor.hh" #include "Rivet/Projections/Hemispheres.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/ChargedFinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief ALEPH QCD study with event shapes and identified particles /// @author Holger Schulz class ALEPH_1996_S3486095 : public Analysis { public: /// Constructor DEFAULT_RIVET_ANALYSIS_CTOR(ALEPH_1996_S3486095); /// @name Analysis methods //@{ void init() { _weightedTotalPartNum = 0; // Set up projections declare(Beam(), "Beams"); const ChargedFinalState cfs; declare(cfs, "FS"); - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); declare(FastJets(cfs, FastJets::DURHAM, 0.7), "DurhamJets"); declare(Sphericity(cfs), "Sphericity"); declare(ParisiTensor(cfs), "Parisi"); const Thrust thrust(cfs); declare(thrust, "Thrust"); declare(Hemispheres(thrust), "Hemispheres"); // Book histograms _histSphericity = bookHisto1D(1, 1, 1); _histAplanarity = bookHisto1D(2, 1, 1); _hist1MinusT = bookHisto1D(3, 1, 1); _histTMinor = bookHisto1D(4, 1, 1); _histY3 = bookHisto1D(5, 1, 1); _histHeavyJetMass = bookHisto1D(6, 1, 1); _histCParam = bookHisto1D(7, 1, 1); _histOblateness = bookHisto1D(8, 1, 1); _histScaledMom = bookHisto1D(9, 1, 1); _histRapidityT = bookHisto1D(10, 1, 1); _histPtSIn = bookHisto1D(11, 1, 1); _histPtSOut = bookHisto1D(12, 1, 1); _histLogScaledMom = bookHisto1D(17, 1, 1); _histChMult = bookHisto1D(18, 1, 1); _histMeanChMult = bookHisto1D(19, 1, 1); _histMeanChMultRapt05= bookHisto1D(20, 1, 1); _histMeanChMultRapt10= bookHisto1D(21, 1, 1); _histMeanChMultRapt15= bookHisto1D(22, 1, 1); _histMeanChMultRapt20= bookHisto1D(23, 1, 1); // Particle spectra _histMultiPiPlus = bookHisto1D(25, 1, 1); _histMultiKPlus = bookHisto1D(26, 1, 1); _histMultiP = bookHisto1D(27, 1, 1); _histMultiPhoton = bookHisto1D(28, 1, 1); _histMultiPi0 = bookHisto1D(29, 1, 1); _histMultiEta = bookHisto1D(30, 1, 1); _histMultiEtaPrime = bookHisto1D(31, 1, 1); _histMultiK0 = bookHisto1D(32, 1, 1); _histMultiLambda0 = bookHisto1D(33, 1, 1); _histMultiXiMinus = bookHisto1D(34, 1, 1); _histMultiSigma1385Plus = bookHisto1D(35, 1, 1); _histMultiXi1530_0 = bookHisto1D(36, 1, 1); _histMultiRho = bookHisto1D(37, 1, 1); _histMultiOmega782 = bookHisto1D(38, 1, 1); _histMultiKStar892_0 = bookHisto1D(39, 1, 1); _histMultiPhi = bookHisto1D(40, 1, 1); _histMultiKStar892Plus = bookHisto1D(43, 1, 1); // Mean multiplicities _histMeanMultiPi0 = bookHisto1D(44, 1, 2); _histMeanMultiEta = bookHisto1D(44, 1, 3); _histMeanMultiEtaPrime = bookHisto1D(44, 1, 4); _histMeanMultiK0 = bookHisto1D(44, 1, 5); _histMeanMultiRho = bookHisto1D(44, 1, 6); _histMeanMultiOmega782 = bookHisto1D(44, 1, 7); _histMeanMultiPhi = bookHisto1D(44, 1, 8); _histMeanMultiKStar892Plus = bookHisto1D(44, 1, 9); _histMeanMultiKStar892_0 = bookHisto1D(44, 1, 10); _histMeanMultiLambda0 = bookHisto1D(44, 1, 11); _histMeanMultiSigma0 = bookHisto1D(44, 1, 12); _histMeanMultiXiMinus = bookHisto1D(44, 1, 13); _histMeanMultiSigma1385Plus = bookHisto1D(44, 1, 14); _histMeanMultiXi1530_0 = bookHisto1D(44, 1, 15); _histMeanMultiOmegaOmegaBar = bookHisto1D(44, 1, 16); } void analyze(const Event& e) { // First, veto on leptonic events by requiring at least 4 charged FS particles const FinalState& fs = apply(e, "FS"); const size_t numParticles = fs.particles().size(); // Even if we only generate hadronic events, we still need a cut on numCharged >= 2. if (numParticles < 2) { MSG_DEBUG("Failed leptonic event cut"); vetoEvent; } MSG_DEBUG("Passed leptonic event cut"); // Get event weight for histo filling const double weight = e.weight(); _weightedTotalPartNum += numParticles * weight; // Get beams and average beam momentum const ParticlePair& beams = apply(e, "Beams").beams(); const double meanBeamMom = ( beams.first.p3().mod() + beams.second.p3().mod() ) / 2.0; MSG_DEBUG("Avg beam momentum = " << meanBeamMom); // Thrusts MSG_DEBUG("Calculating thrust"); const Thrust& thrust = apply(e, "Thrust"); _hist1MinusT->fill(1 - thrust.thrust(), weight); _histTMinor->fill(thrust.thrustMinor(), weight); _histOblateness->fill(thrust.oblateness(), weight); // Jets MSG_DEBUG("Calculating differential jet rate plots:"); const FastJets& durjet = apply(e, "DurhamJets"); if (durjet.clusterSeq()) { double y3 = durjet.clusterSeq()->exclusive_ymerge_max(2); if (y3>0.0) _histY3->fill(-1. * std::log(y3), weight); } // Sphericities MSG_DEBUG("Calculating sphericity"); const Sphericity& sphericity = apply(e, "Sphericity"); _histSphericity->fill(sphericity.sphericity(), weight); _histAplanarity->fill(sphericity.aplanarity(), weight); // C param MSG_DEBUG("Calculating Parisi params"); const ParisiTensor& parisi = apply(e, "Parisi"); _histCParam->fill(parisi.C(), weight); // Hemispheres MSG_DEBUG("Calculating hemisphere variables"); const Hemispheres& hemi = apply(e, "Hemispheres"); _histHeavyJetMass->fill(hemi.scaledM2high(), weight); // Iterate over all the charged final state particles. double Evis = 0.0; double rapt05 = 0.; double rapt10 = 0.; double rapt15 = 0.; double rapt20 = 0.; MSG_DEBUG("About to iterate over charged FS particles"); foreach (const Particle& p, fs.particles()) { // Get momentum and energy of each particle. const Vector3 mom3 = p.p3(); const double energy = p.E(); Evis += energy; // Scaled momenta. const double mom = mom3.mod(); const double scaledMom = mom/meanBeamMom; const double logInvScaledMom = -std::log(scaledMom); _histLogScaledMom->fill(logInvScaledMom, weight); _histScaledMom->fill(scaledMom, weight); // Get momenta components w.r.t. thrust and sphericity. const double momT = dot(thrust.thrustAxis(), mom3); const double pTinS = dot(mom3, sphericity.sphericityMajorAxis()); const double pToutS = dot(mom3, sphericity.sphericityMinorAxis()); _histPtSIn->fill(fabs(pTinS/GeV), weight); _histPtSOut->fill(fabs(pToutS/GeV), weight); // Calculate rapidities w.r.t. thrust. const double rapidityT = 0.5 * std::log((energy + momT) / (energy - momT)); _histRapidityT->fill(fabs(rapidityT), weight); if (std::fabs(rapidityT) <= 0.5) { rapt05 += 1.0; } if (std::fabs(rapidityT) <= 1.0) { rapt10 += 1.0; } if (std::fabs(rapidityT) <= 1.5) { rapt15 += 1.0; } if (std::fabs(rapidityT) <= 2.0) { rapt20 += 1.0; } } _histChMult->fill(numParticles, weight); _histMeanChMultRapt05->fill(_histMeanChMultRapt05->bin(0).xMid(), rapt05 * weight); _histMeanChMultRapt10->fill(_histMeanChMultRapt10->bin(0).xMid(), rapt10 * weight); _histMeanChMultRapt15->fill(_histMeanChMultRapt15->bin(0).xMid(), rapt15 * weight); _histMeanChMultRapt20->fill(_histMeanChMultRapt20->bin(0).xMid(), rapt20 * weight); _histMeanChMult->fill(_histMeanChMult->bin(0).xMid(), numParticles*weight); //// Final state of unstable particles to get particle spectra - const UnstableFinalState& ufs = apply(e, "UFS"); + const UnstableParticles& ufs = apply(e, "UFS"); for (Particles::const_iterator p = ufs.particles().begin(); p != ufs.particles().end(); ++p) { const Vector3 mom3 = p->momentum().p3(); int id = abs(p->pid()); const double mom = mom3.mod(); const double energy = p->momentum().E(); const double scaledMom = mom/meanBeamMom; const double scaledEnergy = energy/meanBeamMom; // meanBeamMom is approximately beam energy switch (id) { case 22: _histMultiPhoton->fill(-1.*std::log(scaledMom), weight); break; case -321: case 321: _histMultiKPlus->fill(scaledMom, weight); break; case 211: case -211: _histMultiPiPlus->fill(scaledMom, weight); break; case 2212: case -2212: _histMultiP->fill(scaledMom, weight); break; case 111: _histMultiPi0->fill(scaledMom, weight); _histMeanMultiPi0->fill(_histMeanMultiPi0->bin(0).xMid(), weight); break; case 221: if (scaledMom >= 0.1) { _histMultiEta->fill(scaledEnergy, weight); _histMeanMultiEta->fill(_histMeanMultiEta->bin(0).xMid(), weight); } break; case 331: if (scaledMom >= 0.1) { _histMultiEtaPrime->fill(scaledEnergy, weight); _histMeanMultiEtaPrime->fill(_histMeanMultiEtaPrime->bin(0).xMid(), weight); } break; case 130: //klong case 310: //kshort _histMultiK0->fill(scaledMom, weight); _histMeanMultiK0->fill(_histMeanMultiK0->bin(0).xMid(), weight); break; case 113: _histMultiRho->fill(scaledMom, weight); _histMeanMultiRho->fill(_histMeanMultiRho->bin(0).xMid(), weight); break; case 223: _histMultiOmega782->fill(scaledMom, weight); _histMeanMultiOmega782->fill(_histMeanMultiOmega782->bin(0).xMid(), weight); break; case 333: _histMultiPhi->fill(scaledMom, weight); _histMeanMultiPhi->fill(_histMeanMultiPhi->bin(0).xMid(), weight); break; case 313: case -313: _histMultiKStar892_0->fill(scaledMom, weight); _histMeanMultiKStar892_0->fill(_histMeanMultiKStar892_0->bin(0).xMid(), weight); break; case 323: case -323: _histMultiKStar892Plus->fill(scaledEnergy, weight); _histMeanMultiKStar892Plus->fill(_histMeanMultiKStar892Plus->bin(0).xMid(), weight); break; case 3122: case -3122: _histMultiLambda0->fill(scaledMom, weight); _histMeanMultiLambda0->fill(_histMeanMultiLambda0->bin(0).xMid(), weight); break; case 3212: case -3212: _histMeanMultiSigma0->fill(_histMeanMultiSigma0->bin(0).xMid(), weight); break; case 3312: case -3312: _histMultiXiMinus->fill(scaledEnergy, weight); _histMeanMultiXiMinus->fill(_histMeanMultiXiMinus->bin(0).xMid(), weight); break; case 3114: case -3114: case 3224: case -3224: _histMultiSigma1385Plus->fill(scaledEnergy, weight); _histMeanMultiSigma1385Plus->fill(_histMeanMultiSigma1385Plus->bin(0).xMid(), weight); break; case 3324: case -3324: _histMultiXi1530_0->fill(scaledEnergy, weight); _histMeanMultiXi1530_0->fill(_histMeanMultiXi1530_0->bin(0).xMid(), weight); break; case 3334: _histMeanMultiOmegaOmegaBar->fill(_histMeanMultiOmegaOmegaBar->bin(0).xMid(), weight); break; } } } /// Finalize void finalize() { // Normalize inclusive single particle distributions to the average number // of charged particles per event. const double avgNumParts = _weightedTotalPartNum / sumOfWeights(); normalize(_histPtSIn, avgNumParts); normalize(_histPtSOut, avgNumParts); normalize(_histRapidityT, avgNumParts); normalize(_histY3); normalize(_histLogScaledMom, avgNumParts); normalize(_histScaledMom, avgNumParts); // particle spectra scale(_histMultiPiPlus ,1./sumOfWeights()); scale(_histMultiKPlus ,1./sumOfWeights()); scale(_histMultiP ,1./sumOfWeights()); scale(_histMultiPhoton ,1./sumOfWeights()); scale(_histMultiPi0 ,1./sumOfWeights()); scale(_histMultiEta ,1./sumOfWeights()); scale(_histMultiEtaPrime ,1./sumOfWeights()); scale(_histMultiK0 ,1./sumOfWeights()); scale(_histMultiLambda0 ,1./sumOfWeights()); scale(_histMultiXiMinus ,1./sumOfWeights()); scale(_histMultiSigma1385Plus ,1./sumOfWeights()); scale(_histMultiXi1530_0 ,1./sumOfWeights()); scale(_histMultiRho ,1./sumOfWeights()); scale(_histMultiOmega782 ,1./sumOfWeights()); scale(_histMultiKStar892_0 ,1./sumOfWeights()); scale(_histMultiPhi ,1./sumOfWeights()); scale(_histMultiKStar892Plus ,1./sumOfWeights()); // event shape normalize(_hist1MinusT); normalize(_histTMinor); normalize(_histOblateness); normalize(_histSphericity); normalize(_histAplanarity); normalize(_histHeavyJetMass); normalize(_histCParam); // mean multiplicities scale(_histChMult , 2.0/sumOfWeights()); // taking into account the binwidth of 2 scale(_histMeanChMult , 1.0/sumOfWeights()); scale(_histMeanChMultRapt05 , 1.0/sumOfWeights()); scale(_histMeanChMultRapt10 , 1.0/sumOfWeights()); scale(_histMeanChMultRapt15 , 1.0/sumOfWeights()); scale(_histMeanChMultRapt20 , 1.0/sumOfWeights()); scale(_histMeanMultiPi0 , 1.0/sumOfWeights()); scale(_histMeanMultiEta , 1.0/sumOfWeights()); scale(_histMeanMultiEtaPrime , 1.0/sumOfWeights()); scale(_histMeanMultiK0 , 1.0/sumOfWeights()); scale(_histMeanMultiRho , 1.0/sumOfWeights()); scale(_histMeanMultiOmega782 , 1.0/sumOfWeights()); scale(_histMeanMultiPhi , 1.0/sumOfWeights()); scale(_histMeanMultiKStar892Plus , 1.0/sumOfWeights()); scale(_histMeanMultiKStar892_0 , 1.0/sumOfWeights()); scale(_histMeanMultiLambda0 , 1.0/sumOfWeights()); scale(_histMeanMultiSigma0 , 1.0/sumOfWeights()); scale(_histMeanMultiXiMinus , 1.0/sumOfWeights()); scale(_histMeanMultiSigma1385Plus, 1.0/sumOfWeights()); scale(_histMeanMultiXi1530_0 , 1.0/sumOfWeights()); scale(_histMeanMultiOmegaOmegaBar, 1.0/sumOfWeights()); } //@} private: /// Store the weighted sums of numbers of charged / charged+neutral /// particles - used to calculate average number of particles for the /// inclusive single particle distributions' normalisations. double _weightedTotalPartNum; /// @name Histograms //@{ Histo1DPtr _histSphericity; Histo1DPtr _histAplanarity; Histo1DPtr _hist1MinusT; Histo1DPtr _histTMinor; Histo1DPtr _histY3; Histo1DPtr _histHeavyJetMass; Histo1DPtr _histCParam; Histo1DPtr _histOblateness; Histo1DPtr _histScaledMom; Histo1DPtr _histRapidityT; Histo1DPtr _histPtSIn; Histo1DPtr _histPtSOut; Histo1DPtr _histJetRate2Durham; Histo1DPtr _histJetRate3Durham; Histo1DPtr _histJetRate4Durham; Histo1DPtr _histJetRate5Durham; Histo1DPtr _histLogScaledMom; Histo1DPtr _histChMult; Histo1DPtr _histMultiPiPlus; Histo1DPtr _histMultiKPlus; Histo1DPtr _histMultiP; Histo1DPtr _histMultiPhoton; Histo1DPtr _histMultiPi0; Histo1DPtr _histMultiEta; Histo1DPtr _histMultiEtaPrime; Histo1DPtr _histMultiK0; Histo1DPtr _histMultiLambda0; Histo1DPtr _histMultiXiMinus; Histo1DPtr _histMultiSigma1385Plus; Histo1DPtr _histMultiXi1530_0; Histo1DPtr _histMultiRho; Histo1DPtr _histMultiOmega782; Histo1DPtr _histMultiKStar892_0; Histo1DPtr _histMultiPhi; Histo1DPtr _histMultiKStar892Plus; // mean multiplicities Histo1DPtr _histMeanChMult; Histo1DPtr _histMeanChMultRapt05; Histo1DPtr _histMeanChMultRapt10; Histo1DPtr _histMeanChMultRapt15; Histo1DPtr _histMeanChMultRapt20; Histo1DPtr _histMeanMultiPi0; Histo1DPtr _histMeanMultiEta; Histo1DPtr _histMeanMultiEtaPrime; Histo1DPtr _histMeanMultiK0; Histo1DPtr _histMeanMultiRho; Histo1DPtr _histMeanMultiOmega782; Histo1DPtr _histMeanMultiPhi; Histo1DPtr _histMeanMultiKStar892Plus; Histo1DPtr _histMeanMultiKStar892_0; Histo1DPtr _histMeanMultiLambda0; Histo1DPtr _histMeanMultiSigma0; Histo1DPtr _histMeanMultiXiMinus; Histo1DPtr _histMeanMultiSigma1385Plus; Histo1DPtr _histMeanMultiXi1530_0; Histo1DPtr _histMeanMultiOmegaOmegaBar; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(ALEPH_1996_S3486095); } diff --git a/analyses/pluginLEP/ALEPH_1999_S4193598.cc b/analyses/pluginLEP/ALEPH_1999_S4193598.cc --- a/analyses/pluginLEP/ALEPH_1999_S4193598.cc +++ b/analyses/pluginLEP/ALEPH_1999_S4193598.cc @@ -1,78 +1,78 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/Beam.hh" #include "Rivet/Projections/ChargedFinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { class ALEPH_1999_S4193598 : public Analysis { public: /// @name Constructors etc. //@{ /// Constructor ALEPH_1999_S4193598() : Analysis("ALEPH_1999_S4193598") { } //@} public: /// Book histograms and initialise projections before the run void init() { declare(Beam(), "Beams"); - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); declare(ChargedFinalState(), "CFS"); _h_Xe_Ds = bookHisto1D(1, 1, 1); } /// Perform the per-event analysis void analyze(const Event& event) { const double weight = event.weight(); // Trigger condition const ChargedFinalState& cfs = apply(event, "CFS"); if (cfs.size() < 5) vetoEvent; - const UnstableFinalState& ufs = apply(event, "UFS"); + const UnstableParticles& ufs = apply(event, "UFS"); // Get beams and average beam momentum const ParticlePair& beams = apply(event, "Beams").beams(); const double meanBeamMom = ( beams.first.p3().mod() + beams.second.p3().mod() ) / 2.0/GeV; // Accept all D*+- decays. Normalisation to data in finalize for (const Particle& p : filter_select(ufs.particles(), Cuts::abspid==PID::DSTARPLUS)) { // Scaled energy. const double energy = p.E()/GeV; const double scaledEnergy = energy/meanBeamMom; _h_Xe_Ds->fill(scaledEnergy, weight); } } /// Normalise histograms etc., after the run void finalize() { // Normalize to data integral normalize(_h_Xe_Ds, 0.00498); } private: Histo1DPtr _h_Xe_Ds; }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(ALEPH_1999_S4193598); } diff --git a/analyses/pluginLEP/ALEPH_2002_S4823664.cc b/analyses/pluginLEP/ALEPH_2002_S4823664.cc --- a/analyses/pluginLEP/ALEPH_2002_S4823664.cc +++ b/analyses/pluginLEP/ALEPH_2002_S4823664.cc @@ -1,91 +1,91 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/Beam.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/ChargedFinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief ALEPH eta/omega fragmentation function paper /// @author Peter Richardson class ALEPH_2002_S4823664 : public Analysis { public: /// Constructor ALEPH_2002_S4823664() : Analysis("ALEPH_2002_S4823664") {} /// @name Analysis methods //@{ void init() { declare(Beam(), "Beams"); declare(ChargedFinalState(), "FS"); - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); _histXpEta = bookHisto1D( 2, 1, 2); _histXpOmega = bookHisto1D( 3, 1, 2); } void analyze(const Event& e) { // First, veto on leptonic events by requiring at least 4 charged FS particles const FinalState& fs = apply(e, "FS"); const size_t numParticles = fs.particles().size(); // Even if we only generate hadronic events, we still need a cut on numCharged >= 2. if (numParticles < 2) { MSG_DEBUG("Failed leptonic event cut"); vetoEvent; } MSG_DEBUG("Passed leptonic event cut"); // Get event weight for histo filling const double weight = e.weight(); // Get beams and average beam momentum const ParticlePair& beams = apply(e, "Beams").beams(); const double meanBeamMom = ( beams.first.p3().mod() + beams.second.p3().mod() ) / 2.0; MSG_DEBUG("Avg beam momentum = " << meanBeamMom); // Final state of unstable particles to get particle spectra - const UnstableFinalState& ufs = apply(e, "UFS"); + const UnstableParticles& ufs = apply(e, "UFS"); foreach (const Particle& p, ufs.particles()) { if(p.abspid()==221) { double xp = p.p3().mod()/meanBeamMom; _histXpEta->fill(xp, weight); } else if(p.abspid()==223) { double xp = p.p3().mod()/meanBeamMom; _histXpOmega->fill(xp, weight); } } } /// Finalize void finalize() { scale(_histXpEta , 1./sumOfWeights()); scale(_histXpOmega, 1./sumOfWeights()); } //@} private: Histo1DPtr _histXpEta; Histo1DPtr _histXpOmega; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(ALEPH_2002_S4823664); } diff --git a/analyses/pluginLEP/ALEPH_2014_I1267648.cc b/analyses/pluginLEP/ALEPH_2014_I1267648.cc --- a/analyses/pluginLEP/ALEPH_2014_I1267648.cc +++ b/analyses/pluginLEP/ALEPH_2014_I1267648.cc @@ -1,118 +1,118 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief Add a short analysis description here class ALEPH_2014_I1267648 : public Analysis { public: /// Constructor DEFAULT_RIVET_ANALYSIS_CTOR(ALEPH_2014_I1267648); /// @name Analysis methods //@{ /// Book histograms and initialise projections before the run void init() { // Initialise and register projections - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); // Book histograms _h_pip0 = bookHisto1D(1, 1, 1); _h_pi2p0 = bookHisto1D(2, 1, 1); _h_pi3p0 = bookHisto1D(3, 1, 1); _h_3pi = bookHisto1D(4, 1, 1); _h_3pip0 = bookHisto1D(5, 1, 1); } void findDecayProducts(const Particle &mother, unsigned int &nstable, unsigned int &npip, unsigned int &npim, unsigned int &npi0, FourMomentum &ptot) { for (const Particle &p : mother.children()) { int id = p.pdgId(); if (id == PID::KPLUS || id == PID::KMINUS) { ++nstable; ptot += p.momentum(); } else if (id == PID::PIPLUS) { ++npip; ++nstable; ptot += p.momentum(); } else if (id == PID::PIMINUS) { ++npim; ++nstable; ptot += p.momentum(); } else if (id == PID::PI0) { ++nstable; ++npi0; ptot += p.momentum(); } else if (id == PID::PHOTON) continue; else if (!p.children().empty()) findDecayProducts(p, nstable, npip, npim, npi0, ptot); else ++nstable; } } /// Perform the per-event analysis void analyze(const Event& event) { const double weight = event.weight(); // Loop over taus - for (const Particle& tau : apply(event, "UFS").particles(Cuts::abspid==PID::TAU)) { + for (const Particle& tau : apply(event, "UFS").particles(Cuts::abspid==PID::TAU)) { FourMomentum ptot; unsigned int nstable(0), npip(0), npim(0), npi0(0); findDecayProducts(tau,nstable,npip,npim,npi0,ptot); // tau -> pi pi0 nu_tau (both charges) if (npim==1 && npi0==1 && nstable==3) _h_pip0->fill(ptot.mass2(), weight); // tau -> pi pi0 pi0 nu_tau (both charges) else if (npim==1 && npi0==2 && nstable==4) _h_pi2p0->fill(ptot.mass2(), weight); // tau -> pi pi0 pi0 pi0 (3,1,1) else if (npim==1 && npi0==3 && nstable==5) _h_pi3p0->fill(ptot.mass2(), weight); // tau -> 3 charged pions (4,1,1) else if (npim==2 && npip==1 && nstable==4) _h_3pi->fill(ptot.mass2(), weight); // tau -> 3 charged pions + pi0 (5,1,1) else if (npim==2 && npip==1 && npi0==1 && nstable==5) _h_3pip0->fill(ptot.mass2(), weight); } } /// Normalise histograms etc., after the run void finalize() { normalize(_h_pip0); // normalize to unity normalize(_h_pi2p0); // normalize to unity normalize(_h_pi3p0); // normalize to unity normalize(_h_3pi); // normalize to unity normalize(_h_3pip0); // normalize to unity } //@} private: /// @name Histograms //@{ Histo1DPtr _h_pip0; Histo1DPtr _h_pi2p0; Histo1DPtr _h_pi3p0; Histo1DPtr _h_3pi; Histo1DPtr _h_3pip0; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(ALEPH_2014_I1267648); } diff --git a/analyses/pluginLEP/DELPHI_1995_S3137023.cc b/analyses/pluginLEP/DELPHI_1995_S3137023.cc --- a/analyses/pluginLEP/DELPHI_1995_S3137023.cc +++ b/analyses/pluginLEP/DELPHI_1995_S3137023.cc @@ -1,107 +1,107 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/Beam.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/ChargedFinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief DELPHI strange baryon paper /// @author Hendrik Hoeth class DELPHI_1995_S3137023 : public Analysis { public: /// Constructor DELPHI_1995_S3137023() : Analysis("DELPHI_1995_S3137023") { _weightedTotalNumXiMinus = 0; _weightedTotalNumSigma1385Plus = 0; } /// @name Analysis methods //@{ void init() { declare(Beam(), "Beams"); declare(ChargedFinalState(), "FS"); - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); _histXpXiMinus = bookHisto1D(2, 1, 1); _histXpSigma1385Plus = bookHisto1D(3, 1, 1); } void analyze(const Event& e) { // First, veto on leptonic events by requiring at least 4 charged FS particles const FinalState& fs = apply(e, "FS"); const size_t numParticles = fs.particles().size(); // Even if we only generate hadronic events, we still need a cut on numCharged >= 2. if (numParticles < 2) { MSG_DEBUG("Failed leptonic event cut"); vetoEvent; } MSG_DEBUG("Passed leptonic event cut"); // Get event weight for histo filling const double weight = e.weight(); // Get beams and average beam momentum const ParticlePair& beams = apply(e, "Beams").beams(); const double meanBeamMom = ( beams.first.p3().mod() + beams.second.p3().mod() ) / 2.0; MSG_DEBUG("Avg beam momentum = " << meanBeamMom); // Final state of unstable particles to get particle spectra - const UnstableFinalState& ufs = apply(e, "UFS"); + const UnstableParticles& ufs = apply(e, "UFS"); foreach (const Particle& p, ufs.particles()) { const int id = p.abspid(); switch (id) { case 3312: _histXpXiMinus->fill(p.p3().mod()/meanBeamMom, weight); _weightedTotalNumXiMinus += weight; break; case 3114: case 3224: _histXpSigma1385Plus->fill(p.p3().mod()/meanBeamMom, weight); _weightedTotalNumSigma1385Plus += weight; break; } } } /// Finalize void finalize() { normalize(_histXpXiMinus , _weightedTotalNumXiMinus/sumOfWeights()); normalize(_histXpSigma1385Plus , _weightedTotalNumSigma1385Plus/sumOfWeights()); } //@} private: /// Store the weighted sums of numbers of charged / charged+neutral /// particles - used to calculate average number of particles for the /// inclusive single particle distributions' normalisations. double _weightedTotalNumXiMinus; double _weightedTotalNumSigma1385Plus; Histo1DPtr _histXpXiMinus; Histo1DPtr _histXpSigma1385Plus; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(DELPHI_1995_S3137023); } diff --git a/analyses/pluginLEP/DELPHI_1996_S3430090.cc b/analyses/pluginLEP/DELPHI_1996_S3430090.cc --- a/analyses/pluginLEP/DELPHI_1996_S3430090.cc +++ b/analyses/pluginLEP/DELPHI_1996_S3430090.cc @@ -1,552 +1,552 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/Beam.hh" #include "Rivet/Projections/Sphericity.hh" #include "Rivet/Projections/Thrust.hh" #include "Rivet/Projections/FastJets.hh" #include "Rivet/Projections/ParisiTensor.hh" #include "Rivet/Projections/Hemispheres.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/ChargedFinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /** * @brief DELPHI event shapes and identified particle spectra * @author Andy Buckley * @author Hendrik Hoeth * * This is the paper which was used for the original PROFESSOR MC tuning * study. It studies a wide range of e+ e- event shape variables, differential * jet rates in the Durham and JADE schemes, and incorporates identified * particle spectra, from other LEP analyses. * * @par Run conditions * * @arg LEP1 beam energy: \f$ \sqrt{s} = \f$ 91.2 GeV * @arg Run with generic QCD events. * @arg No \f$ p_\perp^\text{min} \f$ cutoff is required */ class DELPHI_1996_S3430090 : public Analysis { public: /// Constructor DELPHI_1996_S3430090() : Analysis("DELPHI_1996_S3430090") { _weightedTotalPartNum = 0.0; _passedCutWeightSum = 0.0; _passedCut3WeightSum = 0.0; _passedCut4WeightSum = 0.0; _passedCut5WeightSum = 0.0; } /// @name Analysis methods //@{ void init() { declare(Beam(), "Beams"); // Don't try to introduce a pT or eta cut here. It's all corrected // back. (See Section 2 of the paper.) const ChargedFinalState cfs; declare(cfs, "FS"); - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); declare(FastJets(cfs, FastJets::JADE, 0.7), "JadeJets"); declare(FastJets(cfs, FastJets::DURHAM, 0.7), "DurhamJets"); declare(Sphericity(cfs), "Sphericity"); declare(ParisiTensor(cfs), "Parisi"); const Thrust thrust(cfs); declare(thrust, "Thrust"); declare(Hemispheres(thrust), "Hemispheres"); _histPtTIn = bookHisto1D(1, 1, 1); _histPtTOut = bookHisto1D(2, 1, 1); _histPtSIn = bookHisto1D(3, 1, 1); _histPtSOut = bookHisto1D(4, 1, 1); _histRapidityT = bookHisto1D(5, 1, 1); _histRapidityS = bookHisto1D(6, 1, 1); _histScaledMom = bookHisto1D(7, 1, 1); _histLogScaledMom = bookHisto1D(8, 1, 1); _histPtTOutVsXp = bookProfile1D(9, 1, 1); _histPtVsXp = bookProfile1D(10, 1, 1); _hist1MinusT = bookHisto1D(11, 1, 1); _histTMajor = bookHisto1D(12, 1, 1); _histTMinor = bookHisto1D(13, 1, 1); _histOblateness = bookHisto1D(14, 1, 1); _histSphericity = bookHisto1D(15, 1, 1); _histAplanarity = bookHisto1D(16, 1, 1); _histPlanarity = bookHisto1D(17, 1, 1); _histCParam = bookHisto1D(18, 1, 1); _histDParam = bookHisto1D(19, 1, 1); _histHemiMassH = bookHisto1D(20, 1, 1); _histHemiMassL = bookHisto1D(21, 1, 1); _histHemiMassD = bookHisto1D(22, 1, 1); _histHemiBroadW = bookHisto1D(23, 1, 1); _histHemiBroadN = bookHisto1D(24, 1, 1); _histHemiBroadT = bookHisto1D(25, 1, 1); _histHemiBroadD = bookHisto1D(26, 1, 1); // Binned in y_cut _histDiffRate2Durham = bookHisto1D(27, 1, 1); _histDiffRate2Jade = bookHisto1D(28, 1, 1); _histDiffRate3Durham = bookHisto1D(29, 1, 1); _histDiffRate3Jade = bookHisto1D(30, 1, 1); _histDiffRate4Durham = bookHisto1D(31, 1, 1); _histDiffRate4Jade = bookHisto1D(32, 1, 1); // Binned in cos(chi) _histEEC = bookHisto1D(33, 1, 1); _histAEEC = bookHisto1D(34, 1, 1); _histMultiCharged = bookHisto1D(35, 1, 1); _histMultiPiPlus = bookHisto1D(36, 1, 1); _histMultiPi0 = bookHisto1D(36, 1, 2); _histMultiKPlus = bookHisto1D(36, 1, 3); _histMultiK0 = bookHisto1D(36, 1, 4); _histMultiEta = bookHisto1D(36, 1, 5); _histMultiEtaPrime = bookHisto1D(36, 1, 6); _histMultiDPlus = bookHisto1D(36, 1, 7); _histMultiD0 = bookHisto1D(36, 1, 8); _histMultiBPlus0 = bookHisto1D(36, 1, 9); _histMultiF0 = bookHisto1D(37, 1, 1); _histMultiRho = bookHisto1D(38, 1, 1); _histMultiKStar892Plus = bookHisto1D(38, 1, 2); _histMultiKStar892_0 = bookHisto1D(38, 1, 3); _histMultiPhi = bookHisto1D(38, 1, 4); _histMultiDStar2010Plus = bookHisto1D(38, 1, 5); _histMultiF2 = bookHisto1D(39, 1, 1); _histMultiK2Star1430_0 = bookHisto1D(39, 1, 2); _histMultiP = bookHisto1D(40, 1, 1); _histMultiLambda0 = bookHisto1D(40, 1, 2); _histMultiXiMinus = bookHisto1D(40, 1, 3); _histMultiOmegaMinus = bookHisto1D(40, 1, 4); _histMultiDeltaPlusPlus = bookHisto1D(40, 1, 5); _histMultiSigma1385Plus = bookHisto1D(40, 1, 6); _histMultiXi1530_0 = bookHisto1D(40, 1, 7); _histMultiLambdaB0 = bookHisto1D(40, 1, 8); } void analyze(const Event& e) { // First, veto on leptonic events by requiring at least 4 charged FS particles const FinalState& fs = apply(e, "FS"); const size_t numParticles = fs.particles().size(); // Even if we only generate hadronic events, we still need a cut on numCharged >= 2. if (numParticles < 2) { MSG_DEBUG("Failed leptonic event cut"); vetoEvent; } MSG_DEBUG("Passed leptonic event cut"); const double weight = e.weight(); _passedCutWeightSum += weight; _weightedTotalPartNum += numParticles * weight; // Get beams and average beam momentum const ParticlePair& beams = apply(e, "Beams").beams(); const double meanBeamMom = ( beams.first.p3().mod() + beams.second.p3().mod() ) / 2.0; MSG_DEBUG("Avg beam momentum = " << meanBeamMom); // Thrusts MSG_DEBUG("Calculating thrust"); const Thrust& thrust = apply(e, "Thrust"); _hist1MinusT->fill(1 - thrust.thrust(), weight); _histTMajor->fill(thrust.thrustMajor(), weight); _histTMinor->fill(thrust.thrustMinor(), weight); _histOblateness->fill(thrust.oblateness(), weight); // Jets const FastJets& durjet = apply(e, "DurhamJets"); const FastJets& jadejet = apply(e, "JadeJets"); if (numParticles >= 3) { _passedCut3WeightSum += weight; if (durjet.clusterSeq()) _histDiffRate2Durham->fill(durjet.clusterSeq()->exclusive_ymerge_max(2), weight); if (jadejet.clusterSeq()) _histDiffRate2Jade->fill(jadejet.clusterSeq()->exclusive_ymerge_max(2), weight); } if (numParticles >= 4) { _passedCut4WeightSum += weight; if (durjet.clusterSeq()) _histDiffRate3Durham->fill(durjet.clusterSeq()->exclusive_ymerge_max(3), weight); if (jadejet.clusterSeq()) _histDiffRate3Jade->fill(jadejet.clusterSeq()->exclusive_ymerge_max(3), weight); } if (numParticles >= 5) { _passedCut5WeightSum += weight; if (durjet.clusterSeq()) _histDiffRate4Durham->fill(durjet.clusterSeq()->exclusive_ymerge_max(4), weight); if (jadejet.clusterSeq()) _histDiffRate4Jade->fill(jadejet.clusterSeq()->exclusive_ymerge_max(4), weight); } // Sphericities MSG_DEBUG("Calculating sphericity"); const Sphericity& sphericity = apply(e, "Sphericity"); _histSphericity->fill(sphericity.sphericity(), weight); _histAplanarity->fill(sphericity.aplanarity(), weight); _histPlanarity->fill(sphericity.planarity(), weight); // C & D params MSG_DEBUG("Calculating Parisi params"); const ParisiTensor& parisi = apply(e, "Parisi"); _histCParam->fill(parisi.C(), weight); _histDParam->fill(parisi.D(), weight); // Hemispheres MSG_DEBUG("Calculating hemisphere variables"); const Hemispheres& hemi = apply(e, "Hemispheres"); _histHemiMassH->fill(hemi.scaledM2high(), weight); _histHemiMassL->fill(hemi.scaledM2low(), weight); _histHemiMassD->fill(hemi.scaledM2diff(), weight); _histHemiBroadW->fill(hemi.Bmax(), weight); _histHemiBroadN->fill(hemi.Bmin(), weight); _histHemiBroadT->fill(hemi.Bsum(), weight); _histHemiBroadD->fill(hemi.Bdiff(), weight); // Iterate over all the charged final state particles. double Evis = 0.0; double Evis2 = 0.0; MSG_DEBUG("About to iterate over charged FS particles"); foreach (const Particle& p, fs.particles()) { // Get momentum and energy of each particle. const Vector3 mom3 = p.p3(); const double energy = p.E(); Evis += energy; // Scaled momenta. const double mom = mom3.mod(); const double scaledMom = mom/meanBeamMom; const double logInvScaledMom = -std::log(scaledMom); _histLogScaledMom->fill(logInvScaledMom, weight); _histScaledMom->fill(scaledMom, weight); // Get momenta components w.r.t. thrust and sphericity. const double momT = dot(thrust.thrustAxis(), mom3); const double momS = dot(sphericity.sphericityAxis(), mom3); const double pTinT = dot(mom3, thrust.thrustMajorAxis()); const double pToutT = dot(mom3, thrust.thrustMinorAxis()); const double pTinS = dot(mom3, sphericity.sphericityMajorAxis()); const double pToutS = dot(mom3, sphericity.sphericityMinorAxis()); const double pT = sqrt(pow(pTinT, 2) + pow(pToutT, 2)); _histPtTIn->fill(fabs(pTinT/GeV), weight); _histPtTOut->fill(fabs(pToutT/GeV), weight); _histPtSIn->fill(fabs(pTinS/GeV), weight); _histPtSOut->fill(fabs(pToutS/GeV), weight); _histPtVsXp->fill(scaledMom, fabs(pT/GeV), weight); _histPtTOutVsXp->fill(scaledMom, fabs(pToutT/GeV), weight); // Calculate rapidities w.r.t. thrust and sphericity. const double rapidityT = 0.5 * std::log((energy + momT) / (energy - momT)); const double rapidityS = 0.5 * std::log((energy + momS) / (energy - momS)); _histRapidityT->fill(fabs(rapidityT), weight); _histRapidityS->fill(fabs(rapidityS), weight); MSG_TRACE(fabs(rapidityT) << " " << scaledMom/GeV); } Evis2 = Evis*Evis; // (A)EEC // Need iterators since second loop starts at current outer loop iterator, i.e. no "foreach" here! for (Particles::const_iterator p_i = fs.particles().begin(); p_i != fs.particles().end(); ++p_i) { for (Particles::const_iterator p_j = p_i; p_j != fs.particles().end(); ++p_j) { if (p_i == p_j) continue; const Vector3 mom3_i = p_i->momentum().p3(); const Vector3 mom3_j = p_j->momentum().p3(); const double energy_i = p_i->momentum().E(); const double energy_j = p_j->momentum().E(); const double cosij = dot(mom3_i.unit(), mom3_j.unit()); const double eec = (energy_i*energy_j) / Evis2; _histEEC->fill(cosij, eec*weight); if (cosij < 0) _histAEEC->fill( cosij, eec*weight); else _histAEEC->fill(-cosij, -eec*weight); } } _histMultiCharged->fill(_histMultiCharged->bin(0).xMid(), numParticles*weight); // Final state of unstable particles to get particle spectra - const UnstableFinalState& ufs = apply(e, "UFS"); + const UnstableParticles& ufs = apply(e, "UFS"); foreach (const Particle& p, ufs.particles()) { int id = p.abspid(); switch (id) { case 211: _histMultiPiPlus->fill(_histMultiPiPlus->bin(0).xMid(), weight); break; case 111: _histMultiPi0->fill(_histMultiPi0->bin(0).xMid(), weight); break; case 321: _histMultiKPlus->fill(_histMultiKPlus->bin(0).xMid(), weight); break; case 130: case 310: _histMultiK0->fill(_histMultiK0->bin(0).xMid(), weight); break; case 221: _histMultiEta->fill(_histMultiEta->bin(0).xMid(), weight); break; case 331: _histMultiEtaPrime->fill(_histMultiEtaPrime->bin(0).xMid(), weight); break; case 411: _histMultiDPlus->fill(_histMultiDPlus->bin(0).xMid(), weight); break; case 421: _histMultiD0->fill(_histMultiD0->bin(0).xMid(), weight); break; case 511: case 521: case 531: _histMultiBPlus0->fill(_histMultiBPlus0->bin(0).xMid(), weight); break; case 9010221: _histMultiF0->fill(_histMultiF0->bin(0).xMid(), weight); break; case 113: _histMultiRho->fill(_histMultiRho->bin(0).xMid(), weight); break; case 323: _histMultiKStar892Plus->fill(_histMultiKStar892Plus->bin(0).xMid(), weight); break; case 313: _histMultiKStar892_0->fill(_histMultiKStar892_0->bin(0).xMid(), weight); break; case 333: _histMultiPhi->fill(_histMultiPhi->bin(0).xMid(), weight); break; case 413: _histMultiDStar2010Plus->fill(_histMultiDStar2010Plus->bin(0).xMid(), weight); break; case 225: _histMultiF2->fill(_histMultiF2->bin(0).xMid(), weight); break; case 315: _histMultiK2Star1430_0->fill(_histMultiK2Star1430_0->bin(0).xMid(), weight); break; case 2212: _histMultiP->fill(_histMultiP->bin(0).xMid(), weight); break; case 3122: _histMultiLambda0->fill(_histMultiLambda0->bin(0).xMid(), weight); break; case 3312: _histMultiXiMinus->fill(_histMultiXiMinus->bin(0).xMid(), weight); break; case 3334: _histMultiOmegaMinus->fill(_histMultiOmegaMinus->bin(0).xMid(), weight); break; case 2224: _histMultiDeltaPlusPlus->fill(_histMultiDeltaPlusPlus->bin(0).xMid(), weight); break; case 3114: _histMultiSigma1385Plus->fill(_histMultiSigma1385Plus->bin(0).xMid(), weight); break; case 3324: _histMultiXi1530_0->fill(_histMultiXi1530_0->bin(0).xMid(), weight); break; case 5122: _histMultiLambdaB0->fill(_histMultiLambdaB0->bin(0).xMid(), weight); break; } } } // Finalize void finalize() { // Normalize inclusive single particle distributions to the average number // of charged particles per event. const double avgNumParts = _weightedTotalPartNum / _passedCutWeightSum; normalize(_histPtTIn, avgNumParts); normalize(_histPtTOut, avgNumParts); normalize(_histPtSIn, avgNumParts); normalize(_histPtSOut, avgNumParts); normalize(_histRapidityT, avgNumParts); normalize(_histRapidityS, avgNumParts); normalize(_histLogScaledMom, avgNumParts); normalize(_histScaledMom, avgNumParts); scale(_histEEC, 1.0/_passedCutWeightSum); scale(_histAEEC, 1.0/_passedCutWeightSum); scale(_histMultiCharged, 1.0/_passedCutWeightSum); scale(_histMultiPiPlus, 1.0/_passedCutWeightSum); scale(_histMultiPi0, 1.0/_passedCutWeightSum); scale(_histMultiKPlus, 1.0/_passedCutWeightSum); scale(_histMultiK0, 1.0/_passedCutWeightSum); scale(_histMultiEta, 1.0/_passedCutWeightSum); scale(_histMultiEtaPrime, 1.0/_passedCutWeightSum); scale(_histMultiDPlus, 1.0/_passedCutWeightSum); scale(_histMultiD0, 1.0/_passedCutWeightSum); scale(_histMultiBPlus0, 1.0/_passedCutWeightSum); scale(_histMultiF0, 1.0/_passedCutWeightSum); scale(_histMultiRho, 1.0/_passedCutWeightSum); scale(_histMultiKStar892Plus, 1.0/_passedCutWeightSum); scale(_histMultiKStar892_0, 1.0/_passedCutWeightSum); scale(_histMultiPhi, 1.0/_passedCutWeightSum); scale(_histMultiDStar2010Plus, 1.0/_passedCutWeightSum); scale(_histMultiF2, 1.0/_passedCutWeightSum); scale(_histMultiK2Star1430_0, 1.0/_passedCutWeightSum); scale(_histMultiP, 1.0/_passedCutWeightSum); scale(_histMultiLambda0, 1.0/_passedCutWeightSum); scale(_histMultiXiMinus, 1.0/_passedCutWeightSum); scale(_histMultiOmegaMinus, 1.0/_passedCutWeightSum); scale(_histMultiDeltaPlusPlus, 1.0/_passedCutWeightSum); scale(_histMultiSigma1385Plus, 1.0/_passedCutWeightSum); scale(_histMultiXi1530_0, 1.0/_passedCutWeightSum); scale(_histMultiLambdaB0, 1.0/_passedCutWeightSum); scale(_hist1MinusT, 1.0/_passedCutWeightSum); scale(_histTMajor, 1.0/_passedCutWeightSum); scale(_histTMinor, 1.0/_passedCutWeightSum); scale(_histOblateness, 1.0/_passedCutWeightSum); scale(_histSphericity, 1.0/_passedCutWeightSum); scale(_histAplanarity, 1.0/_passedCutWeightSum); scale(_histPlanarity, 1.0/_passedCutWeightSum); scale(_histHemiMassD, 1.0/_passedCutWeightSum); scale(_histHemiMassH, 1.0/_passedCutWeightSum); scale(_histHemiMassL, 1.0/_passedCutWeightSum); scale(_histHemiBroadW, 1.0/_passedCutWeightSum); scale(_histHemiBroadN, 1.0/_passedCutWeightSum); scale(_histHemiBroadT, 1.0/_passedCutWeightSum); scale(_histHemiBroadD, 1.0/_passedCutWeightSum); scale(_histCParam, 1.0/_passedCutWeightSum); scale(_histDParam, 1.0/_passedCutWeightSum); scale(_histDiffRate2Durham, 1.0/_passedCut3WeightSum); scale(_histDiffRate2Jade, 1.0/_passedCut3WeightSum); scale(_histDiffRate3Durham, 1.0/_passedCut4WeightSum); scale(_histDiffRate3Jade, 1.0/_passedCut4WeightSum); scale(_histDiffRate4Durham, 1.0/_passedCut5WeightSum); scale(_histDiffRate4Jade, 1.0/_passedCut5WeightSum); } //@} private: /// Store the weighted sums of numbers of charged / charged+neutral /// particles - used to calculate average number of particles for the /// inclusive single particle distributions' normalisations. double _weightedTotalPartNum; /// @name Sums of weights past various cuts //@{ double _passedCutWeightSum; double _passedCut3WeightSum; double _passedCut4WeightSum; double _passedCut5WeightSum; //@} /// @name Histograms //@{ Histo1DPtr _histPtTIn; Histo1DPtr _histPtTOut; Histo1DPtr _histPtSIn; Histo1DPtr _histPtSOut; Histo1DPtr _histRapidityT; Histo1DPtr _histRapidityS; Histo1DPtr _histScaledMom, _histLogScaledMom; Profile1DPtr _histPtTOutVsXp, _histPtVsXp; Histo1DPtr _hist1MinusT; Histo1DPtr _histTMajor; Histo1DPtr _histTMinor; Histo1DPtr _histOblateness; Histo1DPtr _histSphericity; Histo1DPtr _histAplanarity; Histo1DPtr _histPlanarity; Histo1DPtr _histCParam; Histo1DPtr _histDParam; Histo1DPtr _histHemiMassD; Histo1DPtr _histHemiMassH; Histo1DPtr _histHemiMassL; Histo1DPtr _histHemiBroadW; Histo1DPtr _histHemiBroadN; Histo1DPtr _histHemiBroadT; Histo1DPtr _histHemiBroadD; Histo1DPtr _histDiffRate2Durham; Histo1DPtr _histDiffRate2Jade; Histo1DPtr _histDiffRate3Durham; Histo1DPtr _histDiffRate3Jade; Histo1DPtr _histDiffRate4Durham; Histo1DPtr _histDiffRate4Jade; Histo1DPtr _histEEC, _histAEEC; Histo1DPtr _histMultiCharged; Histo1DPtr _histMultiPiPlus; Histo1DPtr _histMultiPi0; Histo1DPtr _histMultiKPlus; Histo1DPtr _histMultiK0; Histo1DPtr _histMultiEta; Histo1DPtr _histMultiEtaPrime; Histo1DPtr _histMultiDPlus; Histo1DPtr _histMultiD0; Histo1DPtr _histMultiBPlus0; Histo1DPtr _histMultiF0; Histo1DPtr _histMultiRho; Histo1DPtr _histMultiKStar892Plus; Histo1DPtr _histMultiKStar892_0; Histo1DPtr _histMultiPhi; Histo1DPtr _histMultiDStar2010Plus; Histo1DPtr _histMultiF2; Histo1DPtr _histMultiK2Star1430_0; Histo1DPtr _histMultiP; Histo1DPtr _histMultiLambda0; Histo1DPtr _histMultiXiMinus; Histo1DPtr _histMultiOmegaMinus; Histo1DPtr _histMultiDeltaPlusPlus; Histo1DPtr _histMultiSigma1385Plus; Histo1DPtr _histMultiXi1530_0; Histo1DPtr _histMultiLambdaB0; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(DELPHI_1996_S3430090); } diff --git a/analyses/pluginLEP/DELPHI_1999_S3960137.cc b/analyses/pluginLEP/DELPHI_1999_S3960137.cc --- a/analyses/pluginLEP/DELPHI_1999_S3960137.cc +++ b/analyses/pluginLEP/DELPHI_1999_S3960137.cc @@ -1,99 +1,99 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/Beam.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/ChargedFinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief DELPHI rho,f_0 and f_2 fragmentation function paper /// @author Peter Richardson class DELPHI_1999_S3960137 : public Analysis { public: /// Constructor DELPHI_1999_S3960137() : Analysis("DELPHI_1999_S3960137") {} /// @name Analysis methods //@{ void init() { declare(Beam(), "Beams"); declare(ChargedFinalState(), "FS"); - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); _histXpRho = bookHisto1D( 1, 1, 1); _histXpf0 = bookHisto1D( 1, 1, 2); _histXpf2 = bookHisto1D( 1, 1, 3); } void analyze(const Event& e) { // First, veto on leptonic events by requiring at least 4 charged FS particles const FinalState& fs = apply(e, "FS"); const size_t numParticles = fs.particles().size(); // Even if we only generate hadronic events, we still need a cut on numCharged >= 2. if (numParticles < 2) { MSG_DEBUG("Failed leptonic event cut"); vetoEvent; } MSG_DEBUG("Passed leptonic event cut"); // Get event weight for histo filling const double weight = e.weight(); // Get beams and average beam momentum const ParticlePair& beams = apply(e, "Beams").beams(); const double meanBeamMom = ( beams.first.p3().mod() + beams.second.p3().mod() ) / 2.0; MSG_DEBUG("Avg beam momentum = " << meanBeamMom); // Final state of unstable particles to get particle spectra - const UnstableFinalState& ufs = apply(e, "UFS"); + const UnstableParticles& ufs = apply(e, "UFS"); foreach (const Particle& p, ufs.particles()) { const int id = p.abspid(); double xp = p.p3().mod()/meanBeamMom; switch (id) { case 9010221: _histXpf0->fill(xp, weight); break; case 225: _histXpf2->fill(xp, weight); break; case 113: _histXpRho->fill(xp, weight); break; } } } /// Finalize void finalize() { scale(_histXpf0 , 1./sumOfWeights()); scale(_histXpf2 , 1./sumOfWeights()); scale(_histXpRho, 1./sumOfWeights()); } //@} private: Histo1DPtr _histXpf0; Histo1DPtr _histXpf2; Histo1DPtr _histXpRho; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(DELPHI_1999_S3960137); } diff --git a/analyses/pluginLEP/DELPHI_2011_I890503.cc b/analyses/pluginLEP/DELPHI_2011_I890503.cc --- a/analyses/pluginLEP/DELPHI_2011_I890503.cc +++ b/analyses/pluginLEP/DELPHI_2011_I890503.cc @@ -1,85 +1,85 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/Beam.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/ChargedFinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { class DELPHI_2011_I890503 : public Analysis { public: /// Constructor DELPHI_2011_I890503() : Analysis("DELPHI_2011_I890503") { } /// Book projections and histograms void init() { declare(Beam(), "Beams"); declare(ChargedFinalState(), "FS"); - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); _histXbweak = bookHisto1D(1, 1, 1); _histMeanXbweak = bookProfile1D(2, 1, 1); } void analyze(const Event& e) { // Even if we only generate hadronic events, we still need a cut on numCharged >= 2. if (apply(e, "FS").particles().size() < 2) { MSG_DEBUG("Failed ncharged cut"); vetoEvent; } MSG_DEBUG("Passed ncharged cut"); // Get event weight for histo filling const double weight = e.weight(); // Get beams and average beam momentum const ParticlePair& beams = apply(e, "Beams").beams(); const double meanBeamMom = ( beams.first.p3().mod() + beams.second.p3().mod() ) / 2.0; MSG_DEBUG("Avg beam momentum = " << meanBeamMom); - const UnstableFinalState& ufs = apply(e, "UFS"); + const UnstableParticles& ufs = apply(e, "UFS"); // Get Bottom hadrons const Particles bhads = filter_select(ufs.particles(), isBottomHadron); for (const Particle& bhad : bhads) { // Check for weak decay, i.e. no more bottom present in children if (bhad.children(lastParticleWith(hasBottom)).empty()) { const double xp = bhad.E()/meanBeamMom; _histXbweak->fill(xp, weight); _histMeanXbweak->fill(_histMeanXbweak->bin(0).xMid(), xp, weight); } } } // Finalize void finalize() { normalize(_histXbweak); } private: Histo1DPtr _histXbweak; Profile1DPtr _histMeanXbweak; }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(DELPHI_2011_I890503); } diff --git a/analyses/pluginLEP/L3_1992_I336180.cc b/analyses/pluginLEP/L3_1992_I336180.cc --- a/analyses/pluginLEP/L3_1992_I336180.cc +++ b/analyses/pluginLEP/L3_1992_I336180.cc @@ -1,90 +1,90 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/Beam.hh" #include "Rivet/Projections/ChargedFinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief L3 inclusive eta production in hadronic Z0 decays /// @author Simone Amoroso class L3_1992_I336180 : public Analysis { public: /// Constructor DEFAULT_RIVET_ANALYSIS_CTOR(L3_1992_I336180); /// @name Analysis methods //@{ /// Book histograms and initialise projections before the run void init() { // Initialise and register projections declare(Beam(), "Beams"); declare(ChargedFinalState(), "FS"); - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); // Book histograms _histXpEta = bookHisto1D( 1, 1, 1); _histLnXpEta = bookHisto1D( 2, 1, 1); } /// Perform the per-event analysis void analyze(const Event& event) { // Even if we only generate hadronic events, we still need a cut on numCharged >= 2. const FinalState& fs = apply(event, "FS"); if (fs.particles().size() < 2) { MSG_DEBUG("Failed ncharged cut"); vetoEvent; } MSG_DEBUG("Passed ncharged cut"); // Get event weight for histo filling const double weight = event.weight(); // Get beams and average beam momentum const ParticlePair& beams = apply(event, "Beams").beams(); const double meanBeamMom = ( beams.first.p3().mod() + beams.second.p3().mod() ) / 2.0; MSG_DEBUG("Avg beam momentum = " << meanBeamMom); // Final state of unstable particles to get particle spectra - const Particles& etas = apply(event, "UFS").particles(Cuts::abspid==PID::ETA); + const Particles& etas = apply(event, "UFS").particles(Cuts::abspid==PID::ETA); foreach (const Particle& p, etas) { double xp = p.p3().mod()/meanBeamMom; MSG_DEBUG("Eta xp = " << xp); _histXpEta->fill(xp, weight); _histLnXpEta->fill(log(1./xp), weight); } } /// Normalise histograms etc., after the run void finalize() { scale(_histXpEta, 1./sumOfWeights()); scale(_histLnXpEta, 1./sumOfWeights()); } //@} private: Histo1DPtr _histXpEta; Histo1DPtr _histLnXpEta; }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(L3_1992_I336180); } diff --git a/analyses/pluginLEP/OPAL_1993_I342766.cc b/analyses/pluginLEP/OPAL_1993_I342766.cc --- a/analyses/pluginLEP/OPAL_1993_I342766.cc +++ b/analyses/pluginLEP/OPAL_1993_I342766.cc @@ -1,91 +1,91 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/ChargedFinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" #include "Rivet/Projections/Beam.hh" namespace Rivet { /// @brief A Measurement of K*+- (892) production in hadronic Z0 decays /// @author Simone Amoroso class OPAL_1993_I342766 : public Analysis { public: /// Constructor DEFAULT_RIVET_ANALYSIS_CTOR(OPAL_1993_I342766); /// @name Analysis methods //@{ /// Book histograms and initialise projections before the run void init() { // Initialise and register projections declare(Beam(), "Beams"); declare(ChargedFinalState(), "FS"); - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); // Book histograms _histXeKStar892 = bookHisto1D( 1, 1, 1); _histMeanKStar892 = bookHisto1D( 2, 1, 1); } /// Perform the per-event analysis void analyze(const Event& event) { const FinalState& fs = apply(event, "FS"); const size_t numParticles = fs.particles().size(); // Even if we only generate hadronic events, we still need a cut on numCharged >= 2. if (numParticles < 2) { MSG_DEBUG("Failed leptonic event cut"); vetoEvent; } MSG_DEBUG("Passed leptonic event cut"); // Get event weight for histo filling const double weight = event.weight(); // Get beams and average beam momentum const ParticlePair& beams = apply(event, "Beams").beams(); const double meanBeamMom = ( beams.first.p3().mod() + beams.second.p3().mod() ) / 2.0; MSG_DEBUG("Avg beam momentum = " << meanBeamMom); // Final state of unstable particles to get particle spectra - const UnstableFinalState& ufs = apply(event, "UFS"); + const UnstableParticles& ufs = apply(event, "UFS"); foreach (const Particle& p, ufs.particles(Cuts::abspid==323)) { double xp = p.p3().mod()/meanBeamMom; _histXeKStar892->fill(xp, weight); _histMeanKStar892->fill(_histMeanKStar892->bin(0).xMid(), weight); } } /// Normalise histograms etc., after the run void finalize() { scale(_histXeKStar892, 1./sumOfWeights()); scale(_histMeanKStar892, 1./sumOfWeights()); } //@} private: /// @name Histograms Histo1DPtr _histXeKStar892; Histo1DPtr _histMeanKStar892; }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(OPAL_1993_I342766); } diff --git a/analyses/pluginLEP/OPAL_1995_S3198391.cc b/analyses/pluginLEP/OPAL_1995_S3198391.cc --- a/analyses/pluginLEP/OPAL_1995_S3198391.cc +++ b/analyses/pluginLEP/OPAL_1995_S3198391.cc @@ -1,84 +1,84 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/Beam.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/ChargedFinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief OPAL Delta++ fragmentation function paper /// @author Peter Richardson class OPAL_1995_S3198391 : public Analysis { public: /// Constructor OPAL_1995_S3198391() : Analysis("OPAL_1995_S3198391") {} /// @name Analysis methods //@{ void init() { declare(Beam(), "Beams"); declare(ChargedFinalState(), "FS"); - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); _histXpDelta = bookHisto1D( 1, 1, 1); } void analyze(const Event& e) { // First, veto on leptonic events by requiring at least 4 charged FS particles const FinalState& fs = apply(e, "FS"); const size_t numParticles = fs.particles().size(); // Even if we only generate hadronic events, we still need a cut on numCharged >= 2. if (numParticles < 2) { MSG_DEBUG("Failed leptonic event cut"); vetoEvent; } MSG_DEBUG("Passed leptonic event cut"); // Get event weight for histo filling const double weight = e.weight(); // Get beams and average beam momentum const ParticlePair& beams = apply(e, "Beams").beams(); const double meanBeamMom = ( beams.first.p3().mod() + beams.second.p3().mod() ) / 2.0; MSG_DEBUG("Avg beam momentum = " << meanBeamMom); // Final state of unstable particles to get particle spectra - const UnstableFinalState& ufs = apply(e, "UFS"); + const UnstableParticles& ufs = apply(e, "UFS"); foreach (const Particle& p, ufs.particles()) { if(p.abspid()==2224) { double xp = p.p3().mod()/meanBeamMom; _histXpDelta->fill(xp, weight); } } } /// Finalize void finalize() { scale(_histXpDelta, 1./sumOfWeights()); } //@} private: Histo1DPtr _histXpDelta; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(OPAL_1995_S3198391); } diff --git a/analyses/pluginLEP/OPAL_1996_S3257789.cc b/analyses/pluginLEP/OPAL_1996_S3257789.cc --- a/analyses/pluginLEP/OPAL_1996_S3257789.cc +++ b/analyses/pluginLEP/OPAL_1996_S3257789.cc @@ -1,97 +1,97 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/Beam.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/ChargedFinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief OPAL J/Psi fragmentation function paper /// @author Peter Richardson class OPAL_1996_S3257789 : public Analysis { public: /// Constructor OPAL_1996_S3257789() : Analysis("OPAL_1996_S3257789"), _weightSum(0.) {} /// @name Analysis methods //@{ void init() { declare(Beam(), "Beams"); declare(ChargedFinalState(), "FS"); - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); _histXpJPsi = bookHisto1D( 1, 1, 1); _multJPsi = bookHisto1D( 2, 1, 1); _multPsiPrime = bookHisto1D( 2, 1, 2); } void analyze(const Event& e) { // First, veto on leptonic events by requiring at least 4 charged FS particles const FinalState& fs = apply(e, "FS"); const size_t numParticles = fs.particles().size(); // Even if we only generate hadronic events, we still need a cut on numCharged >= 2. if (numParticles < 2) { MSG_DEBUG("Failed leptonic event cut"); vetoEvent; } MSG_DEBUG("Passed leptonic event cut"); // Get event weight for histo filling const double weight = e.weight(); // Get beams and average beam momentum const ParticlePair& beams = apply(e, "Beams").beams(); const double meanBeamMom = ( beams.first.p3().mod() + beams.second.p3().mod() ) / 2.0; MSG_DEBUG("Avg beam momentum = " << meanBeamMom); // Final state of unstable particles to get particle spectra - const UnstableFinalState& ufs = apply(e, "UFS"); + const UnstableParticles& ufs = apply(e, "UFS"); foreach (const Particle& p, ufs.particles()) { if(p.abspid()==443) { double xp = p.p3().mod()/meanBeamMom; _histXpJPsi->fill(xp, weight); _multJPsi->fill(91.2,weight); _weightSum += weight; } else if(p.abspid()==100443) { _multPsiPrime->fill(91.2,weight); } } } /// Finalize void finalize() { if(_weightSum>0.) scale(_histXpJPsi , 0.1/_weightSum); scale(_multJPsi , 1./sumOfWeights()); scale(_multPsiPrime, 1./sumOfWeights()); } //@} private: double _weightSum; Histo1DPtr _histXpJPsi; Histo1DPtr _multJPsi; Histo1DPtr _multPsiPrime; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(OPAL_1996_S3257789); } diff --git a/analyses/pluginLEP/OPAL_1997_S3396100.cc b/analyses/pluginLEP/OPAL_1997_S3396100.cc --- a/analyses/pluginLEP/OPAL_1997_S3396100.cc +++ b/analyses/pluginLEP/OPAL_1997_S3396100.cc @@ -1,163 +1,163 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/Beam.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/ChargedFinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief OPAL strange baryon paper /// @author Peter Richardson class OPAL_1997_S3396100 : public Analysis { public: /// Constructor OPAL_1997_S3396100() : Analysis("OPAL_1997_S3396100"), _weightedTotalNumLambda(0.) ,_weightedTotalNumXiMinus(0.), _weightedTotalNumSigma1385Plus(0.),_weightedTotalNumSigma1385Minus(0.), _weightedTotalNumXi1530(0.) ,_weightedTotalNumLambda1520(0.) {} /// @name Analysis methods //@{ void init() { declare(Beam(), "Beams"); declare(ChargedFinalState(), "FS"); - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); _histXpLambda = bookHisto1D( 1, 1, 1); _histXiLambda = bookHisto1D( 2, 1, 1); _histXpXiMinus = bookHisto1D( 3, 1, 1); _histXiXiMinus = bookHisto1D( 4, 1, 1); _histXpSigma1385Plus = bookHisto1D( 5, 1, 1); _histXiSigma1385Plus = bookHisto1D( 6, 1, 1); _histXpSigma1385Minus = bookHisto1D( 7, 1, 1); _histXiSigma1385Minus = bookHisto1D( 8, 1, 1); _histXpXi1530 = bookHisto1D( 9, 1, 1); _histXiXi1530 = bookHisto1D(10, 1, 1); _histXpLambda1520 = bookHisto1D(11, 1, 1); _histXiLambda1520 = bookHisto1D(12, 1, 1); } void analyze(const Event& e) { // First, veto on leptonic events by requiring at least 4 charged FS particles const FinalState& fs = apply(e, "FS"); const size_t numParticles = fs.particles().size(); // Even if we only generate hadronic events, we still need a cut on numCharged >= 2. if (numParticles < 2) { MSG_DEBUG("Failed leptonic event cut"); vetoEvent; } MSG_DEBUG("Passed leptonic event cut"); // Get event weight for histo filling const double weight = e.weight(); // Get beams and average beam momentum const ParticlePair& beams = apply(e, "Beams").beams(); const double meanBeamMom = ( beams.first.p3().mod() + beams.second.p3().mod() ) / 2.0; MSG_DEBUG("Avg beam momentum = " << meanBeamMom); // Final state of unstable particles to get particle spectra - const UnstableFinalState& ufs = apply(e, "UFS"); + const UnstableParticles& ufs = apply(e, "UFS"); foreach (const Particle& p, ufs.particles()) { const int id = p.abspid(); double xp = p.p3().mod()/meanBeamMom; double xi = -log(xp); switch (id) { case 3312: _histXpXiMinus->fill(xp, weight); _histXiXiMinus->fill(xi, weight); _weightedTotalNumXiMinus += weight; break; case 3224: _histXpSigma1385Plus->fill(xp, weight); _histXiSigma1385Plus->fill(xi, weight); _weightedTotalNumSigma1385Plus += weight; break; case 3114: _histXpSigma1385Minus->fill(xp, weight); _histXiSigma1385Minus->fill(xi, weight); _weightedTotalNumSigma1385Minus += weight; break; case 3122: _histXpLambda->fill(xp, weight); _histXiLambda->fill(xi, weight); _weightedTotalNumLambda += weight; break; case 3324: _histXpXi1530->fill(xp, weight); _histXiXi1530->fill(xi, weight); _weightedTotalNumXi1530 += weight; break; case 3124: _histXpLambda1520->fill(xp, weight); _histXiLambda1520->fill(xi, weight); _weightedTotalNumLambda1520 += weight; break; } } } /// Finalize void finalize() { normalize(_histXpLambda , _weightedTotalNumLambda /sumOfWeights()); normalize(_histXiLambda , _weightedTotalNumLambda /sumOfWeights()); normalize(_histXpXiMinus , _weightedTotalNumXiMinus /sumOfWeights()); normalize(_histXiXiMinus , _weightedTotalNumXiMinus /sumOfWeights()); normalize(_histXpSigma1385Plus , _weightedTotalNumSigma1385Plus/sumOfWeights()); normalize(_histXiSigma1385Plus , _weightedTotalNumSigma1385Plus/sumOfWeights()); normalize(_histXpSigma1385Minus, _weightedTotalNumSigma1385Plus/sumOfWeights()); normalize(_histXiSigma1385Minus, _weightedTotalNumSigma1385Plus/sumOfWeights()); normalize(_histXpXi1530 , _weightedTotalNumXi1530 /sumOfWeights()); normalize(_histXiXi1530 , _weightedTotalNumXi1530 /sumOfWeights()); normalize(_histXpLambda1520 , _weightedTotalNumLambda1520 /sumOfWeights()); normalize(_histXiLambda1520 , _weightedTotalNumLambda1520 /sumOfWeights()); } //@} private: /// Store the weighted sums of numbers of charged / charged+neutral /// particles - used to calculate average number of particles for the /// inclusive single particle distributions' normalisations. double _weightedTotalNumLambda; double _weightedTotalNumXiMinus; double _weightedTotalNumSigma1385Plus; double _weightedTotalNumSigma1385Minus; double _weightedTotalNumXi1530; double _weightedTotalNumLambda1520; Histo1DPtr _histXpLambda ; Histo1DPtr _histXiLambda ; Histo1DPtr _histXpXiMinus ; Histo1DPtr _histXiXiMinus ; Histo1DPtr _histXpSigma1385Plus ; Histo1DPtr _histXiSigma1385Plus ; Histo1DPtr _histXpSigma1385Minus; Histo1DPtr _histXiSigma1385Minus; Histo1DPtr _histXpXi1530 ; Histo1DPtr _histXiXi1530 ; Histo1DPtr _histXpLambda1520 ; Histo1DPtr _histXiLambda1520 ; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(OPAL_1997_S3396100); } diff --git a/analyses/pluginLEP/OPAL_1997_S3608263.cc b/analyses/pluginLEP/OPAL_1997_S3608263.cc --- a/analyses/pluginLEP/OPAL_1997_S3608263.cc +++ b/analyses/pluginLEP/OPAL_1997_S3608263.cc @@ -1,85 +1,85 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/Beam.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/ChargedFinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief OPAL K*0 fragmentation function paper /// @author Peter Richardson class OPAL_1997_S3608263 : public Analysis { public: /// Constructor OPAL_1997_S3608263() : Analysis("OPAL_1997_S3608263") {} /// @name Analysis methods //@{ void init() { declare(Beam(), "Beams"); declare(ChargedFinalState(), "FS"); - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); _histXeK0 = bookHisto1D( 1, 1, 1); } void analyze(const Event& e) { // First, veto on leptonic events by requiring at least 4 charged FS particles const FinalState& fs = apply(e, "FS"); const size_t numParticles = fs.particles().size(); // Even if we only generate hadronic events, we still need a cut on numCharged >= 2. if (numParticles < 2) { MSG_DEBUG("Failed leptonic event cut"); vetoEvent; } MSG_DEBUG("Passed leptonic event cut"); // Get event weight for histo filling const double weight = e.weight(); // Get beams and average beam momentum const ParticlePair& beams = apply(e, "Beams").beams(); const double meanBeamMom = ( beams.first.p3().mod() + beams.second.p3().mod() ) / 2.0; MSG_DEBUG("Avg beam momentum = " << meanBeamMom); // Final state of unstable particles to get particle spectra - const UnstableFinalState& ufs = apply(e, "UFS"); + const UnstableParticles& ufs = apply(e, "UFS"); foreach (const Particle& p, ufs.particles()) { const int id = p.abspid(); if (id==313) { double xp = p.p3().mod()/meanBeamMom; _histXeK0->fill(xp, weight); } } } /// Finalize void finalize() { scale(_histXeK0, 1./sumOfWeights()); } //@} private: Histo1DPtr _histXeK0; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(OPAL_1997_S3608263); } diff --git a/analyses/pluginLEP/OPAL_1998_S3702294.cc b/analyses/pluginLEP/OPAL_1998_S3702294.cc --- a/analyses/pluginLEP/OPAL_1998_S3702294.cc +++ b/analyses/pluginLEP/OPAL_1998_S3702294.cc @@ -1,99 +1,99 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/Beam.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/ChargedFinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief OPAL f0,f2 and phi fragmentation function paper /// @author Peter Richardson class OPAL_1998_S3702294 : public Analysis { public: /// Constructor OPAL_1998_S3702294() : Analysis("OPAL_1998_S3702294") {} /// @name Analysis methods //@{ void init() { declare(Beam(), "Beams"); declare(ChargedFinalState(), "FS"); - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); _histXpf0 = bookHisto1D( 2, 1, 1); _histXpf2 = bookHisto1D( 2, 1, 2); _histXpPhi = bookHisto1D( 2, 1, 3); } void analyze(const Event& e) { // First, veto on leptonic events by requiring at least 4 charged FS particles const FinalState& fs = apply(e, "FS"); const size_t numParticles = fs.particles().size(); // Even if we only generate hadronic events, we still need a cut on numCharged >= 2. if (numParticles < 2) { MSG_DEBUG("Failed leptonic event cut"); vetoEvent; } MSG_DEBUG("Passed leptonic event cut"); // Get event weight for histo filling const double weight = e.weight(); // Get beams and average beam momentum const ParticlePair& beams = apply(e, "Beams").beams(); const double meanBeamMom = ( beams.first.p3().mod() + beams.second.p3().mod() ) / 2.0; MSG_DEBUG("Avg beam momentum = " << meanBeamMom); // Final state of unstable particles to get particle spectra - const UnstableFinalState& ufs = apply(e, "UFS"); + const UnstableParticles& ufs = apply(e, "UFS"); foreach (const Particle& p, ufs.particles()) { const int id = p.abspid(); double xp = p.p3().mod()/meanBeamMom; switch (id) { case 9010221: _histXpf0->fill(xp, weight); break; case 225: _histXpf2->fill(xp, weight); break; case 333: _histXpPhi->fill(xp, weight); break; } } } /// Finalize void finalize() { scale(_histXpf0 , 1./sumOfWeights()); scale(_histXpf2 , 1./sumOfWeights()); scale(_histXpPhi, 1./sumOfWeights()); } //@} private: Histo1DPtr _histXpf0; Histo1DPtr _histXpf2; Histo1DPtr _histXpPhi; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(OPAL_1998_S3702294); } diff --git a/analyses/pluginLEP/OPAL_1998_S3749908.cc b/analyses/pluginLEP/OPAL_1998_S3749908.cc --- a/analyses/pluginLEP/OPAL_1998_S3749908.cc +++ b/analyses/pluginLEP/OPAL_1998_S3749908.cc @@ -1,152 +1,152 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/Beam.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/ChargedFinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief OPAL photon/light meson paper /// @author Peter Richardson class OPAL_1998_S3749908 : public Analysis { public: /// Constructor OPAL_1998_S3749908() : Analysis("OPAL_1998_S3749908") {} /// @name Analysis methods //@{ void init() { declare(Beam(), "Beams"); declare(ChargedFinalState(), "FS"); - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); _histXePhoton = bookHisto1D( 2, 1, 1); _histXiPhoton = bookHisto1D( 3, 1, 1); _histXePi = bookHisto1D( 4, 1, 1); _histXiPi = bookHisto1D( 5, 1, 1); _histXeEta = bookHisto1D( 6, 1, 1); _histXiEta = bookHisto1D( 7, 1, 1); _histXeRho = bookHisto1D( 8, 1, 1); _histXiRho = bookHisto1D( 9, 1, 1); _histXeOmega = bookHisto1D(10, 1, 1); _histXiOmega = bookHisto1D(11, 1, 1); _histXeEtaPrime = bookHisto1D(12, 1, 1); _histXiEtaPrime = bookHisto1D(13, 1, 1); _histXeA0 = bookHisto1D(14, 1, 1); _histXiA0 = bookHisto1D(15, 1, 1); } void analyze(const Event& e) { // First, veto on leptonic events by requiring at least 4 charged FS particles const FinalState& fs = apply(e, "FS"); const size_t numParticles = fs.particles().size(); // Even if we only generate hadronic events, we still need a cut on numCharged >= 2. if (numParticles < 2) { MSG_DEBUG("Failed leptonic event cut"); vetoEvent; } MSG_DEBUG("Passed leptonic event cut"); // Get event weight for histo filling const double weight = e.weight(); // Get beams and average beam momentum const ParticlePair& beams = apply(e, "Beams").beams(); const double meanBeamMom = ( beams.first.p3().mod() + beams.second.p3().mod() ) / 2.0; MSG_DEBUG("Avg beam momentum = " << meanBeamMom); // Final state of unstable particles to get particle spectra - const UnstableFinalState& ufs = apply(e, "UFS"); + const UnstableParticles& ufs = apply(e, "UFS"); foreach (const Particle& p, ufs.particles()) { const int id = p.abspid(); double xi = -log(p.p3().mod()/meanBeamMom); double xE = p.E()/meanBeamMom; switch (id) { case 22: // Photons _histXePhoton->fill(xE, weight); _histXiPhoton->fill(xi, weight); break; case 111: // Neutral pions _histXePi->fill(xE, weight); _histXiPi->fill(xi, weight); break; case 221: // eta _histXeEta->fill(xE, weight); _histXiEta->fill(xi, weight); break; case 213: // Charged rho (770) _histXeRho->fill(xE, weight); _histXiRho->fill(xi, weight); break; case 223: // omega (782) _histXeOmega->fill(xE, weight); _histXiOmega->fill(xi, weight); break; case 331: // eta' (958) _histXeEtaPrime->fill(xE, weight); _histXiEtaPrime->fill(xi, weight); break; case 9000211: // Charged a_0 (980) _histXeA0->fill(xE, weight); _histXiA0->fill(xi, weight); break; } } } /// Finalize void finalize() { scale(_histXePhoton , 1./sumOfWeights()); scale(_histXiPhoton , 1./sumOfWeights()); scale(_histXePi , 1./sumOfWeights()); scale(_histXiPi , 1./sumOfWeights()); scale(_histXeEta , 1./sumOfWeights()); scale(_histXiEta , 1./sumOfWeights()); scale(_histXeRho , 1./sumOfWeights()); scale(_histXiRho , 1./sumOfWeights()); scale(_histXeOmega , 1./sumOfWeights()); scale(_histXiOmega , 1./sumOfWeights()); scale(_histXeEtaPrime, 1./sumOfWeights()); scale(_histXiEtaPrime, 1./sumOfWeights()); scale(_histXeA0 , 1./sumOfWeights()); scale(_histXiA0 , 1./sumOfWeights()); } //@} private: Histo1DPtr _histXePhoton ; Histo1DPtr _histXiPhoton ; Histo1DPtr _histXePi ; Histo1DPtr _histXiPi ; Histo1DPtr _histXeEta ; Histo1DPtr _histXiEta ; Histo1DPtr _histXeRho ; Histo1DPtr _histXiRho ; Histo1DPtr _histXeOmega ; Histo1DPtr _histXiOmega ; Histo1DPtr _histXeEtaPrime; Histo1DPtr _histXiEtaPrime; Histo1DPtr _histXeA0 ; Histo1DPtr _histXiA0 ; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(OPAL_1998_S3749908); } diff --git a/analyses/pluginLEP/OPAL_2000_S4418603.cc b/analyses/pluginLEP/OPAL_2000_S4418603.cc --- a/analyses/pluginLEP/OPAL_2000_S4418603.cc +++ b/analyses/pluginLEP/OPAL_2000_S4418603.cc @@ -1,86 +1,86 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/Beam.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/ChargedFinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief OPAL K0 fragmentation function paper /// @author Peter Richardson class OPAL_2000_S4418603 : public Analysis { public: /// Constructor OPAL_2000_S4418603() : Analysis("OPAL_2000_S4418603") {} /// @name Analysis methods //@{ void init() { declare(Beam(), "Beams"); declare(ChargedFinalState(), "FS"); - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); _histXeK0 = bookHisto1D( 3, 1, 1); } void analyze(const Event& e) { // First, veto on leptonic events by requiring at least 4 charged FS particles const FinalState& fs = apply(e, "FS"); const size_t numParticles = fs.particles().size(); // Even if we only generate hadronic events, we still need a cut on numCharged >= 2. if (numParticles < 2) { MSG_DEBUG("Failed leptonic event cut"); vetoEvent; } MSG_DEBUG("Passed leptonic event cut"); // Get event weight for histo filling const double weight = e.weight(); // Get beams and average beam momentum const ParticlePair& beams = apply(e, "Beams").beams(); const double meanBeamMom = ( beams.first.p3().mod() + beams.second.p3().mod() ) / 2.0; MSG_DEBUG("Avg beam momentum = " << meanBeamMom); // Final state of unstable particles to get particle spectra - const UnstableFinalState& ufs = apply(e, "UFS"); + const UnstableParticles& ufs = apply(e, "UFS"); foreach (const Particle& p, ufs.particles()) { const int id = p.abspid(); if (id == PID::K0S || id == PID::K0L) { double xE = p.E()/meanBeamMom; _histXeK0->fill(xE, weight); } } } /// Finalize void finalize() { scale(_histXeK0, 1./sumOfWeights()); } //@} private: Histo1DPtr _histXeK0; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(OPAL_2000_S4418603); } diff --git a/analyses/pluginLEP/OPAL_2003_I599181.cc b/analyses/pluginLEP/OPAL_2003_I599181.cc --- a/analyses/pluginLEP/OPAL_2003_I599181.cc +++ b/analyses/pluginLEP/OPAL_2003_I599181.cc @@ -1,83 +1,83 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" #include "Rivet/Projections/Beam.hh" namespace Rivet { /// @brief OPAL b-fragmentation measurement for weak B-hadron decays /// @author Simone Amoroso class OPAL_2003_I599181 : public Analysis { public: /// Constructor DEFAULT_RIVET_ANALYSIS_CTOR(OPAL_2003_I599181); /// @name Analysis methods //@{ /// Book histograms and initialise projections before the run void init() { // Initialise and register projections declare(Beam(), "Beams"); - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); // Book histograms _histXbweak = bookHisto1D(1, 1, 1); _histMeanXbweak = bookProfile1D(2, 1, 1); } /// Perform the per-event analysis void analyze(const Event& event) { // Get event weight for histo filling const double weight = event.weight(); // Get beams and average beam momentum const ParticlePair& beams = apply(event, "Beams").beams(); const double meanBeamMom = ( beams.first.p3().mod() +beams.second.p3().mod() ) / 2.0; MSG_DEBUG("Avg beam momentum = " << meanBeamMom); - const UnstableFinalState& ufs = apply(event, "UFS"); + const UnstableParticles& ufs = apply(event, "UFS"); // Get Bottom hadrons const Particles bhads = filter_select(ufs.particles(), isBottomHadron); for (const Particle& bhad : bhads) { // Check for weak decay, i.e. no more bottom present in children if (bhad.children(lastParticleWith(hasBottom)).empty()) { const double xp = bhad.E()/meanBeamMom; _histXbweak->fill(xp, weight); _histMeanXbweak->fill(_histMeanXbweak->bin(0).xMid(), xp, weight); } } } /// Normalise histograms etc., after the run void finalize() { normalize(_histXbweak); } //@} private: Histo1DPtr _histXbweak; Profile1DPtr _histMeanXbweak; }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(OPAL_2003_I599181); } diff --git a/analyses/pluginLEP/SLD_1999_S3743934.cc b/analyses/pluginLEP/SLD_1999_S3743934.cc --- a/analyses/pluginLEP/SLD_1999_S3743934.cc +++ b/analyses/pluginLEP/SLD_1999_S3743934.cc @@ -1,642 +1,642 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/Beam.hh" #include "Rivet/Projections/FinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" #include "Rivet/Projections/ChargedFinalState.hh" #include "Rivet/Projections/InitialQuarks.hh" #include "Rivet/Projections/Thrust.hh" namespace Rivet { /// @brief SLD flavour-dependent fragmentation paper /// @author Peter Richardson class SLD_1999_S3743934 : public Analysis { public: /// Constructor SLD_1999_S3743934() : Analysis("SLD_1999_S3743934"), _SumOfudsWeights(0.), _SumOfcWeights(0.), _SumOfbWeights(0.), _multPiPlus(4,0.),_multKPlus(4,0.),_multK0(4,0.), _multKStar0(4,0.),_multPhi(4,0.), _multProton(4,0.),_multLambda(4,0.) { } /// @name Analysis methods //@{ void analyze(const Event& e) { // First, veto on leptonic events by requiring at least 4 charged FS particles const FinalState& fs = apply(e, "FS"); const size_t numParticles = fs.particles().size(); // Even if we only generate hadronic events, we still need a cut on numCharged >= 2. if (numParticles < 2) { MSG_DEBUG("Failed ncharged cut"); vetoEvent; } MSG_DEBUG("Passed ncharged cut"); // Get event weight for histo filling const double weight = e.weight(); // Get beams and average beam momentum const ParticlePair& beams = apply(e, "Beams").beams(); const double meanBeamMom = ( beams.first.p3().mod() + beams.second.p3().mod() ) / 2.0; MSG_DEBUG("Avg beam momentum = " << meanBeamMom); int flavour = 0; const InitialQuarks& iqf = apply(e, "IQF"); // If we only have two quarks (qqbar), just take the flavour. // If we have more than two quarks, look for the highest energetic q-qbar pair. /// @todo Can we make this based on hadron flavour instead? Particles quarks; if (iqf.particles().size() == 2) { flavour = iqf.particles().front().abspid(); quarks = iqf.particles(); } else { map quarkmap; foreach (const Particle& p, iqf.particles()) { if (quarkmap.find(p.pid()) == quarkmap.end()) quarkmap[p.pid()] = p; else if (quarkmap[p.pid()].E() < p.E()) quarkmap[p.pid()] = p; } double maxenergy = 0.; for (int i = 1; i <= 5; ++i) { double energy(0.); if (quarkmap.find( i) != quarkmap.end()) energy += quarkmap[ i].E(); if (quarkmap.find(-i) != quarkmap.end()) energy += quarkmap[-i].E(); if (energy > maxenergy) flavour = i; } if (quarkmap.find(flavour) != quarkmap.end()) quarks.push_back(quarkmap[flavour]); if (quarkmap.find(-flavour) != quarkmap.end()) quarks.push_back(quarkmap[-flavour]); } switch (flavour) { case PID::DQUARK: case PID::UQUARK: case PID::SQUARK: _SumOfudsWeights += weight; break; case PID::CQUARK: _SumOfcWeights += weight; break; case PID::BQUARK: _SumOfbWeights += weight; break; } // thrust axis for projections Vector3 axis = apply(e, "Thrust").thrustAxis(); double dot(0.); if (!quarks.empty()) { dot = quarks[0].p3().dot(axis); if (quarks[0].pid() < 0) dot *= -1; } foreach (const Particle& p, fs.particles()) { const double xp = p.p3().mod()/meanBeamMom; // if in quark or antiquark hemisphere bool quark = p.p3().dot(axis)*dot > 0.; _h_XpChargedN->fill(xp, weight); _temp_XpChargedN1->fill(xp, weight); _temp_XpChargedN2->fill(xp, weight); _temp_XpChargedN3->fill(xp, weight); int id = p.abspid(); // charged pions if (id == PID::PIPLUS) { _h_XpPiPlusN->fill(xp, weight); _multPiPlus[0] += weight; switch (flavour) { case PID::DQUARK: case PID::UQUARK: case PID::SQUARK: _multPiPlus[1] += weight; _h_XpPiPlusLight->fill(xp, weight); if( ( quark && p.pid()>0 ) || ( !quark && p.pid()<0 )) _h_RPiPlus->fill(xp, weight); else _h_RPiMinus->fill(xp, weight); break; case PID::CQUARK: _multPiPlus[2] += weight; _h_XpPiPlusCharm->fill(xp, weight); break; case PID::BQUARK: _multPiPlus[3] += weight; _h_XpPiPlusBottom->fill(xp, weight); break; } } else if (id == PID::KPLUS) { _h_XpKPlusN->fill(xp, weight); _multKPlus[0] += weight; switch (flavour) { case PID::DQUARK: case PID::UQUARK: case PID::SQUARK: _multKPlus[1] += weight; _temp_XpKPlusLight->fill(xp, weight); _h_XpKPlusLight->fill(xp, weight); if( ( quark && p.pid()>0 ) || ( !quark && p.pid()<0 )) _h_RKPlus->fill(xp, weight); else _h_RKMinus->fill(xp, weight); break; break; case PID::CQUARK: _multKPlus[2] += weight; _h_XpKPlusCharm->fill(xp, weight); _temp_XpKPlusCharm->fill(xp, weight); break; case PID::BQUARK: _multKPlus[3] += weight; _h_XpKPlusBottom->fill(xp, weight); break; } } else if (id == PID::PROTON) { _h_XpProtonN->fill(xp, weight); _multProton[0] += weight; switch (flavour) { case PID::DQUARK: case PID::UQUARK: case PID::SQUARK: _multProton[1] += weight; _temp_XpProtonLight->fill(xp, weight); _h_XpProtonLight->fill(xp, weight); if( ( quark && p.pid()>0 ) || ( !quark && p.pid()<0 )) _h_RProton->fill(xp, weight); else _h_RPBar ->fill(xp, weight); break; break; case PID::CQUARK: _multProton[2] += weight; _temp_XpProtonCharm->fill(xp, weight); _h_XpProtonCharm->fill(xp, weight); break; case PID::BQUARK: _multProton[3] += weight; _h_XpProtonBottom->fill(xp, weight); break; } } } - const UnstableFinalState& ufs = apply(e, "UFS"); + const UnstableParticles& ufs = apply(e, "UFS"); foreach (const Particle& p, ufs.particles()) { const double xp = p.p3().mod()/meanBeamMom; // if in quark or antiquark hemisphere bool quark = p.p3().dot(axis)*dot>0.; int id = p.abspid(); if (id == PID::LAMBDA) { _multLambda[0] += weight; _h_XpLambdaN->fill(xp, weight); switch (flavour) { case PID::DQUARK: case PID::UQUARK: case PID::SQUARK: _multLambda[1] += weight; _h_XpLambdaLight->fill(xp, weight); if( ( quark && p.pid()>0 ) || ( !quark && p.pid()<0 )) _h_RLambda->fill(xp, weight); else _h_RLBar ->fill(xp, weight); break; case PID::CQUARK: _multLambda[2] += weight; _h_XpLambdaCharm->fill(xp, weight); break; case PID::BQUARK: _multLambda[3] += weight; _h_XpLambdaBottom->fill(xp, weight); break; } } else if (id == 313) { _multKStar0[0] += weight; _h_XpKStar0N->fill(xp, weight); switch (flavour) { case PID::DQUARK: case PID::UQUARK: case PID::SQUARK: _multKStar0[1] += weight; _temp_XpKStar0Light->fill(xp, weight); _h_XpKStar0Light->fill(xp, weight); if ( ( quark && p.pid()>0 ) || ( !quark && p.pid()<0 )) _h_RKS0 ->fill(xp, weight); else _h_RKSBar0->fill(xp, weight); break; break; case PID::CQUARK: _multKStar0[2] += weight; _temp_XpKStar0Charm->fill(xp, weight); _h_XpKStar0Charm->fill(xp, weight); break; case PID::BQUARK: _multKStar0[3] += weight; _h_XpKStar0Bottom->fill(xp, weight); break; } } else if (id == 333) { _multPhi[0] += weight; _h_XpPhiN->fill(xp, weight); switch (flavour) { case PID::DQUARK: case PID::UQUARK: case PID::SQUARK: _multPhi[1] += weight; _h_XpPhiLight->fill(xp, weight); break; case PID::CQUARK: _multPhi[2] += weight; _h_XpPhiCharm->fill(xp, weight); break; case PID::BQUARK: _multPhi[3] += weight; _h_XpPhiBottom->fill(xp, weight); break; } } else if (id == PID::K0S || id == PID::K0L) { _multK0[0] += weight; _h_XpK0N->fill(xp, weight); switch (flavour) { case PID::DQUARK: case PID::UQUARK: case PID::SQUARK: _multK0[1] += weight; _h_XpK0Light->fill(xp, weight); break; case PID::CQUARK: _multK0[2] += weight; _h_XpK0Charm->fill(xp, weight); break; case PID::BQUARK: _multK0[3] += weight; _h_XpK0Bottom->fill(xp, weight); break; } } } } void init() { // Projections declare(Beam(), "Beams"); declare(ChargedFinalState(), "FS"); - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); declare(InitialQuarks(), "IQF"); declare(Thrust(FinalState()), "Thrust"); _temp_XpChargedN1 = bookHisto1D("TMP/XpChargedN1", refData( 1, 1, 1)); _temp_XpChargedN2 = bookHisto1D("TMP/XpChargedN2", refData( 2, 1, 1)); _temp_XpChargedN3 = bookHisto1D("TMP/XpChargedN3", refData( 3, 1, 1)); _h_XpPiPlusN = bookHisto1D( 1, 1, 2); _h_XpKPlusN = bookHisto1D( 2, 1, 2); _h_XpProtonN = bookHisto1D( 3, 1, 2); _h_XpChargedN = bookHisto1D( 4, 1, 1); _h_XpK0N = bookHisto1D( 5, 1, 1); _h_XpLambdaN = bookHisto1D( 7, 1, 1); _h_XpKStar0N = bookHisto1D( 8, 1, 1); _h_XpPhiN = bookHisto1D( 9, 1, 1); _h_XpPiPlusLight = bookHisto1D(10, 1, 1); _h_XpPiPlusCharm = bookHisto1D(10, 1, 2); _h_XpPiPlusBottom = bookHisto1D(10, 1, 3); _h_XpKPlusLight = bookHisto1D(12, 1, 1); _h_XpKPlusCharm = bookHisto1D(12, 1, 2); _h_XpKPlusBottom = bookHisto1D(12, 1, 3); _h_XpKStar0Light = bookHisto1D(14, 1, 1); _h_XpKStar0Charm = bookHisto1D(14, 1, 2); _h_XpKStar0Bottom = bookHisto1D(14, 1, 3); _h_XpProtonLight = bookHisto1D(16, 1, 1); _h_XpProtonCharm = bookHisto1D(16, 1, 2); _h_XpProtonBottom = bookHisto1D(16, 1, 3); _h_XpLambdaLight = bookHisto1D(18, 1, 1); _h_XpLambdaCharm = bookHisto1D(18, 1, 2); _h_XpLambdaBottom = bookHisto1D(18, 1, 3); _h_XpK0Light = bookHisto1D(20, 1, 1); _h_XpK0Charm = bookHisto1D(20, 1, 2); _h_XpK0Bottom = bookHisto1D(20, 1, 3); _h_XpPhiLight = bookHisto1D(22, 1, 1); _h_XpPhiCharm = bookHisto1D(22, 1, 2); _h_XpPhiBottom = bookHisto1D(22, 1, 3); _temp_XpKPlusCharm = bookHisto1D("TMP/XpKPlusCharm", refData(13, 1, 1)); _temp_XpKPlusLight = bookHisto1D("TMP/XpKPlusLight", refData(13, 1, 1)); _temp_XpKStar0Charm = bookHisto1D("TMP/XpKStar0Charm", refData(15, 1, 1)); _temp_XpKStar0Light = bookHisto1D("TMP/XpKStar0Light", refData(15, 1, 1)); _temp_XpProtonCharm = bookHisto1D("TMP/XpProtonCharm", refData(17, 1, 1)); _temp_XpProtonLight = bookHisto1D("TMP/XpProtonLight", refData(17, 1, 1)); _h_RPiPlus = bookHisto1D( 26, 1, 1); _h_RPiMinus = bookHisto1D( 26, 1, 2); _h_RKS0 = bookHisto1D( 28, 1, 1); _h_RKSBar0 = bookHisto1D( 28, 1, 2); _h_RKPlus = bookHisto1D( 30, 1, 1); _h_RKMinus = bookHisto1D( 30, 1, 2); _h_RProton = bookHisto1D( 32, 1, 1); _h_RPBar = bookHisto1D( 32, 1, 2); _h_RLambda = bookHisto1D( 34, 1, 1); _h_RLBar = bookHisto1D( 34, 1, 2); _s_Xp_PiPl_Ch = bookScatter2D(1, 1, 1); _s_Xp_KPl_Ch = bookScatter2D(2, 1, 1); _s_Xp_Pr_Ch = bookScatter2D(3, 1, 1); _s_Xp_PiPlCh_PiPlLi = bookScatter2D(11, 1, 1); _s_Xp_PiPlBo_PiPlLi = bookScatter2D(11, 1, 2); _s_Xp_KPlCh_KPlLi = bookScatter2D(13, 1, 1); _s_Xp_KPlBo_KPlLi = bookScatter2D(13, 1, 2); _s_Xp_KS0Ch_KS0Li = bookScatter2D(15, 1, 1); _s_Xp_KS0Bo_KS0Li = bookScatter2D(15, 1, 2); _s_Xp_PrCh_PrLi = bookScatter2D(17, 1, 1); _s_Xp_PrBo_PrLi = bookScatter2D(17, 1, 2); _s_Xp_LaCh_LaLi = bookScatter2D(19, 1, 1); _s_Xp_LaBo_LaLi = bookScatter2D(19, 1, 2); _s_Xp_K0Ch_K0Li = bookScatter2D(21, 1, 1); _s_Xp_K0Bo_K0Li = bookScatter2D(21, 1, 2); _s_Xp_PhiCh_PhiLi = bookScatter2D(23, 1, 1); _s_Xp_PhiBo_PhiLi = bookScatter2D(23, 1, 2); _s_PiM_PiP = bookScatter2D(27, 1, 1); _s_KSBar0_KS0 = bookScatter2D(29, 1, 1); _s_KM_KP = bookScatter2D(31, 1, 1); _s_Pr_PBar = bookScatter2D(33, 1, 1); _s_Lam_LBar = bookScatter2D(35, 1, 1); } /// Finalize void finalize() { // Get the ratio plots sorted out first divide(_h_XpPiPlusN, _temp_XpChargedN1, _s_Xp_PiPl_Ch); divide(_h_XpKPlusN, _temp_XpChargedN2, _s_Xp_KPl_Ch); divide(_h_XpProtonN, _temp_XpChargedN3, _s_Xp_Pr_Ch); divide(_h_XpPiPlusCharm, _h_XpPiPlusLight, _s_Xp_PiPlCh_PiPlLi); _s_Xp_PiPlCh_PiPlLi->scale(1.,_SumOfudsWeights/_SumOfcWeights); divide(_h_XpPiPlusBottom, _h_XpPiPlusLight, _s_Xp_PiPlBo_PiPlLi); _s_Xp_PiPlBo_PiPlLi->scale(1.,_SumOfudsWeights/_SumOfbWeights); divide(_temp_XpKPlusCharm , _temp_XpKPlusLight, _s_Xp_KPlCh_KPlLi); _s_Xp_KPlCh_KPlLi->scale(1.,_SumOfudsWeights/_SumOfcWeights); divide(_h_XpKPlusBottom, _h_XpKPlusLight, _s_Xp_KPlBo_KPlLi); _s_Xp_KPlBo_KPlLi->scale(1.,_SumOfudsWeights/_SumOfbWeights); divide(_temp_XpKStar0Charm, _temp_XpKStar0Light, _s_Xp_KS0Ch_KS0Li); _s_Xp_KS0Ch_KS0Li->scale(1.,_SumOfudsWeights/_SumOfcWeights); divide(_h_XpKStar0Bottom, _h_XpKStar0Light, _s_Xp_KS0Bo_KS0Li); _s_Xp_KS0Bo_KS0Li->scale(1.,_SumOfudsWeights/_SumOfbWeights); divide(_temp_XpProtonCharm, _temp_XpProtonLight, _s_Xp_PrCh_PrLi); _s_Xp_PrCh_PrLi->scale(1.,_SumOfudsWeights/_SumOfcWeights); divide(_h_XpProtonBottom, _h_XpProtonLight, _s_Xp_PrBo_PrLi); _s_Xp_PrBo_PrLi->scale(1.,_SumOfudsWeights/_SumOfbWeights); divide(_h_XpLambdaCharm, _h_XpLambdaLight, _s_Xp_LaCh_LaLi); _s_Xp_LaCh_LaLi->scale(1.,_SumOfudsWeights/_SumOfcWeights); divide(_h_XpLambdaBottom, _h_XpLambdaLight, _s_Xp_LaBo_LaLi); _s_Xp_LaBo_LaLi->scale(1.,_SumOfudsWeights/_SumOfbWeights); divide(_h_XpK0Charm, _h_XpK0Light, _s_Xp_K0Ch_K0Li); _s_Xp_K0Ch_K0Li->scale(1.,_SumOfudsWeights/_SumOfcWeights); divide(_h_XpK0Bottom, _h_XpK0Light, _s_Xp_K0Bo_K0Li); _s_Xp_K0Bo_K0Li->scale(1.,_SumOfudsWeights/_SumOfbWeights); divide(_h_XpPhiCharm, _h_XpPhiLight, _s_Xp_PhiCh_PhiLi); _s_Xp_PhiCh_PhiLi->scale(1.,_SumOfudsWeights/_SumOfcWeights); divide(_h_XpPhiBottom, _h_XpPhiLight, _s_Xp_PhiBo_PhiLi); _s_Xp_PhiBo_PhiLi->scale(1.,_SumOfudsWeights/_SumOfbWeights); // Then the leading particles divide(*_h_RPiMinus - *_h_RPiPlus, *_h_RPiMinus + *_h_RPiPlus, _s_PiM_PiP); divide(*_h_RKSBar0 - *_h_RKS0, *_h_RKSBar0 + *_h_RKS0, _s_KSBar0_KS0); divide(*_h_RKMinus - *_h_RKPlus, *_h_RKMinus + *_h_RKPlus, _s_KM_KP); divide(*_h_RProton - *_h_RPBar, *_h_RProton + *_h_RPBar, _s_Pr_PBar); divide(*_h_RLambda - *_h_RLBar, *_h_RLambda + *_h_RLBar, _s_Lam_LBar); // Then the rest scale(_h_XpPiPlusN, 1/sumOfWeights()); scale(_h_XpKPlusN, 1/sumOfWeights()); scale(_h_XpProtonN, 1/sumOfWeights()); scale(_h_XpChargedN, 1/sumOfWeights()); scale(_h_XpK0N, 1/sumOfWeights()); scale(_h_XpLambdaN, 1/sumOfWeights()); scale(_h_XpKStar0N, 1/sumOfWeights()); scale(_h_XpPhiN, 1/sumOfWeights()); scale(_h_XpPiPlusLight, 1/_SumOfudsWeights); scale(_h_XpPiPlusCharm, 1/_SumOfcWeights); scale(_h_XpPiPlusBottom, 1/_SumOfbWeights); scale(_h_XpKPlusLight, 1/_SumOfudsWeights); scale(_h_XpKPlusCharm, 1/_SumOfcWeights); scale(_h_XpKPlusBottom, 1/_SumOfbWeights); scale(_h_XpKStar0Light, 1/_SumOfudsWeights); scale(_h_XpKStar0Charm, 1/_SumOfcWeights); scale(_h_XpKStar0Bottom, 1/_SumOfbWeights); scale(_h_XpProtonLight, 1/_SumOfudsWeights); scale(_h_XpProtonCharm, 1/_SumOfcWeights); scale(_h_XpProtonBottom, 1/_SumOfbWeights); scale(_h_XpLambdaLight, 1/_SumOfudsWeights); scale(_h_XpLambdaCharm, 1/_SumOfcWeights); scale(_h_XpLambdaBottom, 1/_SumOfbWeights); scale(_h_XpK0Light, 1/_SumOfudsWeights); scale(_h_XpK0Charm, 1/_SumOfcWeights); scale(_h_XpK0Bottom, 1/_SumOfbWeights); scale(_h_XpPhiLight, 1/_SumOfudsWeights); scale(_h_XpPhiCharm , 1/_SumOfcWeights); scale(_h_XpPhiBottom, 1/_SumOfbWeights); scale(_h_RPiPlus, 1/_SumOfudsWeights); scale(_h_RPiMinus, 1/_SumOfudsWeights); scale(_h_RKS0, 1/_SumOfudsWeights); scale(_h_RKSBar0, 1/_SumOfudsWeights); scale(_h_RKPlus, 1/_SumOfudsWeights); scale(_h_RKMinus, 1/_SumOfudsWeights); scale(_h_RProton, 1/_SumOfudsWeights); scale(_h_RPBar, 1/_SumOfudsWeights); scale(_h_RLambda, 1/_SumOfudsWeights); scale(_h_RLBar, 1/_SumOfudsWeights); // Multiplicities double avgNumPartsAll, avgNumPartsLight,avgNumPartsCharm, avgNumPartsBottom; // pi+/- // all avgNumPartsAll = _multPiPlus[0]/sumOfWeights(); bookScatter2D(24, 1, 1, true)->point(0).setY(avgNumPartsAll); // light avgNumPartsLight = _multPiPlus[1]/_SumOfudsWeights; bookScatter2D(24, 1, 2, true)->point(0).setY(avgNumPartsLight); // charm avgNumPartsCharm = _multPiPlus[2]/_SumOfcWeights; bookScatter2D(24, 1, 3, true)->point(0).setY(avgNumPartsCharm); // bottom avgNumPartsBottom = _multPiPlus[3]/_SumOfbWeights; bookScatter2D(24, 1, 4, true)->point(0).setY(avgNumPartsBottom); // charm-light bookScatter2D(25, 1, 1, true)->point(0).setY(avgNumPartsCharm - avgNumPartsLight); // bottom-light bookScatter2D(25, 1, 2, true)->point(0).setY(avgNumPartsBottom - avgNumPartsLight); // K+/- // all avgNumPartsAll = _multKPlus[0]/sumOfWeights(); bookScatter2D(24, 2, 1, true)->point(0).setY(avgNumPartsAll); // light avgNumPartsLight = _multKPlus[1]/_SumOfudsWeights; bookScatter2D(24, 2, 2, true)->point(0).setY(avgNumPartsLight); // charm avgNumPartsCharm = _multKPlus[2]/_SumOfcWeights; bookScatter2D(24, 2, 3, true)->point(0).setY(avgNumPartsCharm); // bottom avgNumPartsBottom = _multKPlus[3]/_SumOfbWeights; bookScatter2D(24, 2, 4, true)->point(0).setY(avgNumPartsBottom); // charm-light bookScatter2D(25, 2, 1, true)->point(0).setY(avgNumPartsCharm - avgNumPartsLight); // bottom-light bookScatter2D(25, 2, 2, true)->point(0).setY(avgNumPartsBottom - avgNumPartsLight); // K0 // all avgNumPartsAll = _multK0[0]/sumOfWeights(); bookScatter2D(24, 3, 1, true)->point(0).setY(avgNumPartsAll); // light avgNumPartsLight = _multK0[1]/_SumOfudsWeights; bookScatter2D(24, 3, 2, true)->point(0).setY(avgNumPartsLight); // charm avgNumPartsCharm = _multK0[2]/_SumOfcWeights; bookScatter2D(24, 3, 3, true)->point(0).setY(avgNumPartsCharm); // bottom avgNumPartsBottom = _multK0[3]/_SumOfbWeights; bookScatter2D(24, 3, 4, true)->point(0).setY(avgNumPartsBottom); // charm-light bookScatter2D(25, 3, 1, true)->point(0).setY(avgNumPartsCharm - avgNumPartsLight); // bottom-light bookScatter2D(25, 3, 2, true)->point(0).setY(avgNumPartsBottom - avgNumPartsLight); // K*0 // all avgNumPartsAll = _multKStar0[0]/sumOfWeights(); bookScatter2D(24, 4, 1, true)->point(0).setY(avgNumPartsAll); // light avgNumPartsLight = _multKStar0[1]/_SumOfudsWeights; bookScatter2D(24, 4, 2, true)->point(0).setY(avgNumPartsLight); // charm avgNumPartsCharm = _multKStar0[2]/_SumOfcWeights; bookScatter2D(24, 4, 3, true)->point(0).setY(avgNumPartsCharm); // bottom avgNumPartsBottom = _multKStar0[3]/_SumOfbWeights; bookScatter2D(24, 4, 4, true)->point(0).setY(avgNumPartsBottom); // charm-light bookScatter2D(25, 4, 1, true)->point(0).setY(avgNumPartsCharm - avgNumPartsLight); // bottom-light bookScatter2D(25, 4, 2, true)->point(0).setY(avgNumPartsBottom - avgNumPartsLight); // phi // all avgNumPartsAll = _multPhi[0]/sumOfWeights(); bookScatter2D(24, 5, 1, true)->point(0).setY(avgNumPartsAll); // light avgNumPartsLight = _multPhi[1]/_SumOfudsWeights; bookScatter2D(24, 5, 2, true)->point(0).setY(avgNumPartsLight); // charm avgNumPartsCharm = _multPhi[2]/_SumOfcWeights; bookScatter2D(24, 5, 3, true)->point(0).setY(avgNumPartsCharm); // bottom avgNumPartsBottom = _multPhi[3]/_SumOfbWeights; bookScatter2D(24, 5, 4, true)->point(0).setY(avgNumPartsBottom); // charm-light bookScatter2D(25, 5, 1, true)->point(0).setY(avgNumPartsCharm - avgNumPartsLight); // bottom-light bookScatter2D(25, 5, 2, true)->point(0).setY(avgNumPartsBottom - avgNumPartsLight); // p // all avgNumPartsAll = _multProton[0]/sumOfWeights(); bookScatter2D(24, 6, 1, true)->point(0).setY(avgNumPartsAll); // light avgNumPartsLight = _multProton[1]/_SumOfudsWeights; bookScatter2D(24, 6, 2, true)->point(0).setY(avgNumPartsLight); // charm avgNumPartsCharm = _multProton[2]/_SumOfcWeights; bookScatter2D(24, 6, 3, true)->point(0).setY(avgNumPartsCharm); // bottom avgNumPartsBottom = _multProton[3]/_SumOfbWeights; bookScatter2D(24, 6, 4, true)->point(0).setY(avgNumPartsBottom); // charm-light bookScatter2D(25, 6, 1, true)->point(0).setY(avgNumPartsCharm - avgNumPartsLight); // bottom-light bookScatter2D(25, 6, 2, true)->point(0).setY(avgNumPartsBottom - avgNumPartsLight); // Lambda // all avgNumPartsAll = _multLambda[0]/sumOfWeights(); bookScatter2D(24, 7, 1, true)->point(0).setY(avgNumPartsAll); // light avgNumPartsLight = _multLambda[1]/_SumOfudsWeights; bookScatter2D(24, 7, 2, true)->point(0).setY(avgNumPartsLight); // charm avgNumPartsCharm = _multLambda[2]/_SumOfcWeights; bookScatter2D(24, 7, 3, true)->point(0).setY(avgNumPartsCharm); // bottom avgNumPartsBottom = _multLambda[3]/_SumOfbWeights; bookScatter2D(24, 7, 4, true)->point(0).setY(avgNumPartsBottom); // charm-light bookScatter2D(25, 7, 1, true)->point(0).setY(avgNumPartsCharm - avgNumPartsLight); // bottom-light bookScatter2D(25, 7, 2, true)->point(0).setY(avgNumPartsBottom - avgNumPartsLight); } //@} private: /// Store the weighted sums of numbers of charged / charged+neutral /// particles. Used to calculate average number of particles for the /// inclusive single particle distributions' normalisations. double _SumOfudsWeights, _SumOfcWeights, _SumOfbWeights; vector _multPiPlus, _multKPlus, _multK0, _multKStar0, _multPhi, _multProton, _multLambda; Histo1DPtr _h_XpPiPlusSig, _h_XpPiPlusN; Histo1DPtr _h_XpKPlusSig, _h_XpKPlusN; Histo1DPtr _h_XpProtonSig, _h_XpProtonN; Histo1DPtr _h_XpChargedN; Histo1DPtr _h_XpK0N, _h_XpLambdaN; Histo1DPtr _h_XpKStar0N, _h_XpPhiN; Histo1DPtr _h_XpPiPlusLight, _h_XpPiPlusCharm, _h_XpPiPlusBottom; Histo1DPtr _h_XpKPlusLight, _h_XpKPlusCharm, _h_XpKPlusBottom; Histo1DPtr _h_XpKStar0Light, _h_XpKStar0Charm, _h_XpKStar0Bottom; Histo1DPtr _h_XpProtonLight, _h_XpProtonCharm, _h_XpProtonBottom; Histo1DPtr _h_XpLambdaLight, _h_XpLambdaCharm, _h_XpLambdaBottom; Histo1DPtr _h_XpK0Light, _h_XpK0Charm, _h_XpK0Bottom; Histo1DPtr _h_XpPhiLight, _h_XpPhiCharm, _h_XpPhiBottom; Histo1DPtr _temp_XpChargedN1, _temp_XpChargedN2, _temp_XpChargedN3; Histo1DPtr _temp_XpKPlusCharm , _temp_XpKPlusLight; Histo1DPtr _temp_XpKStar0Charm, _temp_XpKStar0Light; Histo1DPtr _temp_XpProtonCharm, _temp_XpProtonLight; Histo1DPtr _h_RPiPlus, _h_RPiMinus; Histo1DPtr _h_RKS0, _h_RKSBar0; Histo1DPtr _h_RKPlus, _h_RKMinus; Histo1DPtr _h_RProton, _h_RPBar; Histo1DPtr _h_RLambda, _h_RLBar; Scatter2DPtr _s_Xp_PiPl_Ch, _s_Xp_KPl_Ch, _s_Xp_Pr_Ch; Scatter2DPtr _s_Xp_PiPlCh_PiPlLi, _s_Xp_PiPlBo_PiPlLi; Scatter2DPtr _s_Xp_KPlCh_KPlLi, _s_Xp_KPlBo_KPlLi; Scatter2DPtr _s_Xp_KS0Ch_KS0Li, _s_Xp_KS0Bo_KS0Li; Scatter2DPtr _s_Xp_PrCh_PrLi, _s_Xp_PrBo_PrLi; Scatter2DPtr _s_Xp_LaCh_LaLi, _s_Xp_LaBo_LaLi; Scatter2DPtr _s_Xp_K0Ch_K0Li, _s_Xp_K0Bo_K0Li; Scatter2DPtr _s_Xp_PhiCh_PhiLi, _s_Xp_PhiBo_PhiLi; Scatter2DPtr _s_PiM_PiP, _s_KSBar0_KS0, _s_KM_KP, _s_Pr_PBar, _s_Lam_LBar; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(SLD_1999_S3743934); } diff --git a/analyses/pluginLHCb/LHCB_2010_S8758301.cc b/analyses/pluginLHCb/LHCB_2010_S8758301.cc --- a/analyses/pluginLHCb/LHCB_2010_S8758301.cc +++ b/analyses/pluginLHCb/LHCB_2010_S8758301.cc @@ -1,341 +1,341 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" #include "Rivet/Math/Constants.hh" #include "Rivet/Math/Units.hh" #include "HepMC/GenEvent.h" #include "HepMC/GenParticle.h" #include "HepMC/GenVertex.h" #include "HepMC/SimpleVector.h" namespace Rivet { using namespace HepMC; using namespace std; // Lifetime cut: longest living ancestor ctau < 10^-11 [m] namespace { const double MAX_CTAU = 1.0E-11; // [m] const double MIN_PT = 0.0001; // [GeV/c] } class LHCB_2010_S8758301 : public Analysis { public: /// @name Constructors etc. //@{ /// Constructor LHCB_2010_S8758301() : Analysis("LHCB_2010_S8758301"), sumKs0_30(0.0), sumKs0_35(0.0), sumKs0_40(0.0), sumKs0_badnull(0), sumKs0_badlft(0), sumKs0_all(0), sumKs0_outup(0), sumKs0_outdwn(0), sum_low_pt_loss(0), sum_high_pt_loss(0) { } //@} /// @name Analysis methods //@{ /// Book histograms and initialise projections before the run void init() { MSG_DEBUG("Initializing analysis!"); fillMap(partLftMap); _h_K0s_pt_30 = bookHisto1D(1,1,1); _h_K0s_pt_35 = bookHisto1D(1,1,2); _h_K0s_pt_40 = bookHisto1D(1,1,3); _h_K0s_pt_y_30 = bookHisto1D(2,1,1); _h_K0s_pt_y_35 = bookHisto1D(2,1,2); _h_K0s_pt_y_40 = bookHisto1D(2,1,3); _h_K0s_pt_y_all = bookHisto1D(3,1,1); - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); } /// Perform the per-event analysis void analyze(const Event& event) { int id; double y, pT; const double weight = event.weight(); - const UnstableFinalState& ufs = apply(event, "UFS"); + const UnstableParticles& ufs = apply(event, "UFS"); double ancestor_lftime; foreach (const Particle& p, ufs.particles()) { id = p.pid(); if ((id != 310) && (id != -310)) continue; sumKs0_all ++; ancestor_lftime = 0.; const GenParticle* long_ancestor = getLongestLivedAncestor(p, ancestor_lftime); if ( !(long_ancestor) ) { sumKs0_badnull ++; continue; } if ( ancestor_lftime > MAX_CTAU ) { sumKs0_badlft ++; MSG_DEBUG("Ancestor " << long_ancestor->pdg_id() << ", ctau: " << ancestor_lftime << " [m]"); continue; } const FourMomentum& qmom = p.momentum(); y = 0.5 * log((qmom.E() + qmom.pz())/(qmom.E() - qmom.pz())); pT = sqrt((qmom.px() * qmom.px()) + (qmom.py() * qmom.py())); if (pT < MIN_PT) { sum_low_pt_loss ++; MSG_DEBUG("Small pT K^0_S: " << pT << " GeV/c."); } if (pT > 1.6) { sum_high_pt_loss ++; } if (y > 2.5 && y < 4.0) { _h_K0s_pt_y_all->fill(pT, weight); if (y > 2.5 && y < 3.0) { _h_K0s_pt_y_30->fill(pT, weight); _h_K0s_pt_30->fill(pT, weight); sumKs0_30 += weight; } else if (y > 3.0 && y < 3.5) { _h_K0s_pt_y_35->fill(pT, weight); _h_K0s_pt_35->fill(pT, weight); sumKs0_35 += weight; } else if (y > 3.5 && y < 4.0) { _h_K0s_pt_y_40->fill(pT, weight); _h_K0s_pt_40->fill(pT, weight); sumKs0_40 += weight; } } else if (y < 2.5) { sumKs0_outdwn ++; } else if (y > 4.0) { sumKs0_outup ++; } } } /// Normalise histograms etc., after the run void finalize() { MSG_DEBUG("Total number Ks0: " << sumKs0_all << endl << "Sum of weights: " << sumOfWeights() << endl << "Weight Ks0 (2.5 < y < 3.0): " << sumKs0_30 << endl << "Weight Ks0 (3.0 < y < 3.5): " << sumKs0_35 << endl << "Weight Ks0 (3.5 < y < 4.0): " << sumKs0_40 << endl << "Nb. unprompt Ks0 [null mother]: " << sumKs0_badnull << endl << "Nb. unprompt Ks0 [mother lifetime exceeded]: " << sumKs0_badlft << endl << "Nb. Ks0 (y > 4.0): " << sumKs0_outup << endl << "Nb. Ks0 (y < 2.5): " << sumKs0_outdwn << endl << "Nb. Ks0 (pT < " << (MIN_PT/MeV) << " MeV/c): " << sum_low_pt_loss << endl << "Nb. Ks0 (pT > 1.6 GeV/c): " << sum_high_pt_loss << endl << "Cross-section [mb]: " << crossSection()/millibarn << endl << "Nb. events: " << numEvents()); // Compute cross-section; multiply by bin width for correct scaling // cross-section given by Rivet in pb double xsection_factor = crossSection()/sumOfWeights(); // Multiply bin width for correct scaling, xsection in mub scale(_h_K0s_pt_30, 0.2*xsection_factor/microbarn); scale(_h_K0s_pt_35, 0.2*xsection_factor/microbarn); scale(_h_K0s_pt_40, 0.2*xsection_factor/microbarn); // Divide by dy (rapidity window width), xsection in mb scale(_h_K0s_pt_y_30, xsection_factor/0.5/millibarn); scale(_h_K0s_pt_y_35, xsection_factor/0.5/millibarn); scale(_h_K0s_pt_y_40, xsection_factor/0.5/millibarn); scale(_h_K0s_pt_y_all, xsection_factor/1.5/millibarn); } //@} private: /// Get particle lifetime from hardcoded data double getLifeTime(int pid) { double lft = -1.0; if (pid < 0) pid = - pid; // Correct Pythia6 PIDs for f0(980), f0(1370) mesons if (pid == 10331) pid = 30221; if (pid == 10221) pid = 9010221; map::iterator pPartLft = partLftMap.find(pid); // search stable particle list if (pPartLft == partLftMap.end()) { if (pid <= 100 || pid == 990) return 0.0; for (unsigned int i=0; i < sizeof(stablePDGIds)/sizeof(unsigned int); i++ ) { if (pid == stablePDGIds[i]) { lft = 0.0; break; } } } else { lft = (*pPartLft).second; } if (lft < 0.0) MSG_ERROR("Could not determine lifetime for particle with PID " << pid << "... This K_s^0 will be considered unprompt!"); return lft; } const GenParticle* getLongestLivedAncestor(const Particle& p, double& lifeTime) { const GenParticle* ret = NULL; lifeTime = 1.; if (p.genParticle() == NULL) return NULL; const GenParticle* pmother = p.genParticle(); double longest_ctau = 0.; double mother_ctau; int mother_pid, n_inparts; const GenVertex* ivertex = pmother->production_vertex(); while (ivertex) { n_inparts = ivertex->particles_in_size(); if (n_inparts < 1) {ret = NULL; break;} // error: should never happen! const GenVertex::particles_in_const_iterator iPart_invtx = ivertex->particles_in_const_begin(); pmother = (*iPart_invtx); // first mother particle mother_pid = pmother->pdg_id(); ivertex = pmother->production_vertex(); // get next vertex if ( (mother_pid == 2212) || (mother_pid <= 100) ) { if (ret == NULL) ret = pmother; continue; } mother_ctau = getLifeTime(mother_pid); if (mother_ctau < 0.) { ret= NULL; break; } // error:should never happen! if (mother_ctau > longest_ctau) { longest_ctau = mother_ctau; ret = pmother; } } if (ret) lifeTime = longest_ctau * c_light; return ret; } // Fill the PDG Id to Lifetime[seconds] map // Data was extract from LHCb Particle Table using ParticleSvc bool fillMap(map &m) { m[6] = 4.707703E-25; m[11] = 1.E+16; m[12] = 1.E+16; m[13] = 2.197019E-06; m[14] = 1.E+16; m[15] = 2.906E-13; m[16] = 1.E+16; m[22] = 1.E+16; m[23] = 2.637914E-25; m[24] = 3.075758E-25; m[25] = 9.4E-26; m[35] = 9.4E-26; m[36] = 9.4E-26; m[37] = 9.4E-26; m[84] = 3.335641E-13; m[85] = 1.290893E-12; m[111] = 8.4E-17; m[113] = 4.405704E-24; m[115] = 6.151516E-24; m[117] = 4.088275E-24; m[119] = 2.102914E-24; m[130] = 5.116E-08; m[150] = 1.525E-12; m[211] = 2.6033E-08; m[213] = 4.405704E-24; m[215] = 6.151516E-24; m[217] = 4.088275E-24; m[219] = 2.102914E-24; m[221] = 5.063171E-19; m[223] = 7.752794E-23; m[225] = 3.555982E-24; m[227] = 3.91793E-24; m[229] = 2.777267E-24; m[310] = 8.953E-11; m[313] = 1.308573E-23; m[315] = 6.038644E-24; m[317] = 4.139699E-24; m[319] = 3.324304E-24; m[321] = 1.238E-08; m[323] = 1.295693E-23; m[325] = 6.682357E-24; m[327] = 4.139699E-24; m[329] = 3.324304E-24; m[331] = 3.210791E-21; m[333] = 1.545099E-22; m[335] = 9.016605E-24; m[337] = 7.565657E-24; m[350] = 1.407125E-12; m[411] = 1.04E-12; m[413] = 6.856377E-21; m[415] = 1.778952E-23; m[421] = 4.101E-13; m[423] = 1.000003E-19; m[425] = 1.530726E-23; m[431] = 5.E-13; m[433] = 1.000003E-19; m[435] = 3.291061E-23; m[441] = 2.465214E-23; m[443] = 7.062363E-21; m[445] = 3.242425E-22; m[510] = 1.525E-12; m[511] = 1.525E-12; m[513] = 1.000019E-19; m[515] = 1.31E-23; m[521] = 1.638E-12; m[523] = 1.000019E-19; m[525] = 1.31E-23; m[530] = 1.536875E-12; m[531] = 1.472E-12; m[533] = 1.E-19; m[535] = 1.31E-23; m[541] = 4.5E-13; m[553] = 1.218911E-20; m[1112] = 4.539394E-24; m[1114] = 5.578069E-24; m[1116] = 1.994582E-24; m[1118] = 2.269697E-24; m[1212] = 4.539394E-24; m[1214] = 5.723584E-24; m[1216] = 1.994582E-24; m[1218] = 1.316424E-24; m[2112] = 8.857E+02; m[2114] = 5.578069E-24; m[2116] = 4.388081E-24; m[2118] = 2.269697E-24; m[2122] = 4.539394E-24; m[2124] = 5.723584E-24; m[2126] = 1.994582E-24; m[2128] = 1.316424E-24; m[2212] = 1.E+16; m[2214] = 5.578069E-24; m[2216] = 4.388081E-24; m[2218] = 2.269697E-24; m[2222] = 4.539394E-24; m[2224] = 5.578069E-24; m[2226] = 1.994582E-24; m[2228] = 2.269697E-24; m[3112] = 1.479E-10; m[3114] = 1.670589E-23; m[3116] = 5.485102E-24; m[3118] = 3.656734E-24; m[3122] = 2.631E-10; m[3124] = 4.219309E-23; m[3126] = 8.227653E-24; m[3128] = 3.291061E-24; m[3212] = 7.4E-20; m[3214] = 1.828367E-23; m[3216] = 5.485102E-24; m[3218] = 3.656734E-24; m[3222] = 8.018E-11; m[3224] = 1.838582E-23; m[3226] = 5.485102E-24; m[3228] = 3.656734E-24; m[3312] = 1.639E-10; m[3314] = 6.648608E-23; m[3322] = 2.9E-10; m[3324] = 7.233101E-23; m[3334] = 8.21E-11; m[4112] = 2.991874E-22; m[4114] = 4.088274E-23; m[4122] = 2.E-13; m[4132] = 1.12E-13; m[4212] = 3.999999E-22; m[4214] = 3.291061E-22; m[4222] = 2.951624E-22; m[4224] = 4.417531E-23; m[4232] = 4.42E-13; m[4332] = 6.9E-14; m[4412] = 3.335641E-13; m[4422] = 3.335641E-13; m[4432] = 3.335641E-13; m[5112] = 1.E-19; m[5122] = 1.38E-12; m[5132] = 1.42E-12; m[5142] = 1.290893E-12; m[5212] = 1.E-19; m[5222] = 1.E-19; m[5232] = 1.42E-12; m[5242] = 1.290893E-12; m[5312] = 1.E-19; m[5322] = 1.E-19; m[5332] = 1.55E-12; m[5342] = 1.290893E-12; m[5442] = 1.290893E-12; m[5512] = 1.290893E-12; m[5522] = 1.290893E-12; m[5532] = 1.290893E-12; m[5542] = 1.290893E-12; m[10111] = 2.48382E-24; m[10113] = 4.635297E-24; m[10115] = 2.54136E-24; m[10211] = 2.48382E-24; m[10213] = 4.635297E-24; m[10215] = 2.54136E-24; m[10223] = 1.828367E-24; m[10225] = 3.636531E-24; m[10311] = 2.437823E-24; m[10313] = 7.313469E-24; m[10315] = 3.538775E-24; m[10321] = 2.437823E-24; m[10323] = 7.313469E-24; m[10325] = 3.538775E-24; m[10331] = 4.804469E-24; m[10411] = 4.38E-24; m[10413] = 3.29E-23; m[10421] = 4.38E-24; m[10423] = 3.22653E-23; m[10431] = 6.5821E-22; m[10433] = 6.5821E-22; m[10441] = 6.453061E-23; m[10511] = 4.39E-24; m[10513] = 1.65E-23; m[10521] = 4.39E-24; m[10523] = 1.65E-23; m[10531] = 4.39E-24; m[10533] = 1.65E-23; m[11114] = 2.194041E-24; m[11116] = 1.828367E-24; m[11212] = 1.880606E-24; m[11216] = 1.828367E-24; m[12112] = 2.194041E-24; m[12114] = 2.194041E-24; m[12116] = 5.063171E-24; m[12126] = 1.828367E-24; m[12212] = 2.194041E-24; m[12214] = 2.194041E-24; m[12216] = 5.063171E-24; m[12224] = 2.194041E-24; m[12226] = 1.828367E-24; m[13112] = 6.582122E-24; m[13114] = 1.09702E-23; m[13116] = 5.485102E-24; m[13122] = 1.316424E-23; m[13124] = 1.09702E-23; m[13126] = 6.928549E-24; m[13212] = 6.582122E-24; m[13214] = 1.09702E-23; m[13216] = 5.485102E-24; m[13222] = 6.582122E-24; m[13224] = 1.09702E-23; m[13226] = 5.485102E-24; m[13312] = 4.135667E-22; m[13314] = 2.742551E-23; m[13324] = 2.742551E-23; m[14122] = 1.828367E-22; m[20022] = 1.E+16; m[20113] = 1.567172E-24; m[20213] = 1.567172E-24; m[20223] = 2.708692E-23; m[20313] = 3.782829E-24; m[20315] = 2.384827E-24; m[20323] = 3.782829E-24; m[20325] = 2.384827E-24; m[20333] = 1.198929E-23; m[20413] = 2.63E-24; m[20423] = 2.63E-24; m[20433] = 6.5821E-22; m[20443] = 7.395643E-22; m[20513] = 2.63E-24; m[20523] = 2.63E-24; m[20533] = 2.63E-24; m[21112] = 2.632849E-24; m[21114] = 3.291061E-24; m[21212] = 2.632849E-24; m[21214] = 6.582122E-24; m[22112] = 4.388081E-24; m[22114] = 3.291061E-24; m[22122] = 2.632849E-24; m[22124] = 6.582122E-24; m[22212] = 4.388081E-24; m[22214] = 3.291061E-24; m[22222] = 2.632849E-24; m[22224] = 3.291061E-24; m[23112] = 7.313469E-24; m[23114] = 2.991874E-24; m[23122] = 4.388081E-24; m[23124] = 6.582122E-24; m[23126] = 3.291061E-24; m[23212] = 7.313469E-24; m[23214] = 2.991874E-24; m[23222] = 7.313469E-24; m[23224] = 2.991874E-24; m[30113] = 2.632849E-24; m[30213] = 2.632849E-24; m[30221] = 1.880606E-24; m[30223] = 2.089563E-24; m[30313] = 2.056913E-24; m[30323] = 2.056913E-24; m[30443] = 2.419898E-23; m[31114] = 1.880606E-24; m[31214] = 3.291061E-24; m[32112] = 3.989164E-24; m[32114] = 1.880606E-24; m[32124] = 3.291061E-24; m[32212] = 3.989164E-24; m[32214] = 1.880606E-24; m[32224] = 1.880606E-24; m[33122] = 1.880606E-23; m[42112] = 6.582122E-24; m[42212] = 6.582122E-24; m[43122] = 2.194041E-24; m[53122] = 4.388081E-24; m[100111] = 1.645531E-24; m[100113] = 1.64553E-24; m[100211] = 1.645531E-24; m[100213] = 1.64553E-24; m[100221] = 1.196749E-23; m[100223] = 3.061452E-24; m[100313] = 2.837122E-24; m[100323] = 2.837122E-24; m[100331] = 4.459432E-25; m[100333] = 4.388081E-24; m[100441] = 4.701516E-23; m[100443] = 2.076379E-21; m[100553] = 2.056913E-20; m[200553] = 3.242425E-20; m[300553] = 3.210791E-23; m[9000111] = 8.776163E-24; m[9000211] = 8.776163E-24; m[9000443] = 8.227652E-24; m[9000553] = 5.983747E-24; m[9010111] = 3.164482E-24; m[9010211] = 3.164482E-24; m[9010221] = 9.403031E-24; m[9010443] = 8.438618E-24; m[9010553] = 8.3318E-24; m[9020221] = 8.093281E-23; m[9020443] = 1.061633E-23; m[9030221] = 6.038644E-24; m[9042413] = 2.07634E-21; m[9050225] = 1.394517E-24; m[9060225] = 3.291061E-24; m[9080225] = 4.388081E-24; m[9090225] = 2.056913E-24; m[9910445] = 2.07634E-21; m[9920443] = 2.07634E-21; return true; } /// @name Histograms //@{ Histo1DPtr _h_K0s_pt_y_30; // histogram for 2.5 < y < 3.0 (d2sigma) Histo1DPtr _h_K0s_pt_y_35; // histogram for 3.0 < y < 3.5 (d2sigma) Histo1DPtr _h_K0s_pt_y_40; // histogram for 3.5 < y < 4.0 (d2sigma) Histo1DPtr _h_K0s_pt_30; // histogram for 2.5 < y < 3.0 (sigma) Histo1DPtr _h_K0s_pt_35; // histogram for 3.0 < y < 3.5 (sigma) Histo1DPtr _h_K0s_pt_40; // histogram for 3.5 < y < 4.0 (sigma) Histo1DPtr _h_K0s_pt_y_all; // histogram for 2.5 < y < 4.0 (d2sigma) double sumKs0_30; // Sum of weights 2.5 < y < 3.0 double sumKs0_35; // Sum of weights 3.0 < y < 3.5 double sumKs0_40; // Sum of weights 3.5 < y < 4.0 // Various counters mainly for debugging and comparisons between different generators size_t sumKs0_badnull; // Nb of particles for which mother could not be identified size_t sumKs0_badlft; // Nb of mesons with long lived mothers size_t sumKs0_all; // Nb of all Ks0 generated size_t sumKs0_outup; // Nb of mesons with y > 4.0 size_t sumKs0_outdwn; // Nb of mesons with y < 2.5 size_t sum_low_pt_loss; // Nb of mesons with very low pT (indicates when units are mixed-up) size_t sum_high_pt_loss; // Nb of mesons with pT > 1.6 GeV/c // Map between PDG id and particle lifetimes in seconds std::map partLftMap; // Set of PDG Ids for stable particles (PDG Id <= 100 are considered stable) static const int stablePDGIds[205]; //@} }; // Actual initialization according to ISO C++ requirements const int LHCB_2010_S8758301::stablePDGIds[205] = { 311, 543, 545, 551, 555, 557, 1103, 2101, 2103, 2203, 3101, 3103, 3201, 3203, 3303, 4101, 4103, 4124, 4201, 4203, 4301, 4303, 4312, 4314, 4322, 4324, 4334, 4403, 4414, 4424, 4434, 4444, 5101, 5103, 5114, 5201, 5203, 5214, 5224, 5301, 5303, 5314, 5324, 5334, 5401, 5403, 5412, 5414, 5422, 5424, 5432, 5434, 5444, 5503, 5514, 5524, 5534, 5544, 5554, 10022, 10333, 10335, 10443, 10541, 10543, 10551, 10553, 10555, 11112, 12118, 12122, 12218, 12222, 13316, 13326, 20543, 20553, 20555, 23314, 23324, 30343, 30353, 30363, 30553, 33314, 33324, 41214, 42124, 52114, 52214, 100311, 100315, 100321, 100325, 100411, 100413, 100421, 100423, 100551, 100555, 100557, 110551, 110553, 110555, 120553, 120555, 130553, 200551, 200555, 210551, 210553, 220553, 1000001, 1000002, 1000003, 1000004, 1000005, 1000006, 1000011, 1000012, 1000013, 1000014, 1000015, 1000016, 1000021, 1000022, 1000023, 1000024, 1000025, 1000035, 1000037, 1000039, 2000001, 2000002, 2000003, 2000004, 2000005, 2000006, 2000011, 2000012, 2000013, 2000014, 2000015, 2000016, 3000111, 3000113, 3000211, 3000213, 3000221, 3000223, 3000331, 3100021, 3100111, 3100113, 3200111, 3200113, 3300113, 3400113, 4000001, 4000002, 4000011, 4000012, 5000039, 9000221, 9900012, 9900014, 9900016, 9900023, 9900024, 9900041, 9900042}; // Hook for the plugin system DECLARE_RIVET_PLUGIN(LHCB_2010_S8758301); } diff --git a/analyses/pluginLHCb/LHCB_2011_I917009.cc b/analyses/pluginLHCb/LHCB_2011_I917009.cc --- a/analyses/pluginLHCb/LHCB_2011_I917009.cc +++ b/analyses/pluginLHCb/LHCB_2011_I917009.cc @@ -1,323 +1,323 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { class LHCB_2011_I917009 : public Analysis { public: /// @name Constructors etc. //@{ /// Constructor LHCB_2011_I917009() : Analysis("LHCB_2011_I917009"), rap_beam(0.0), pt_min(0.0), pt1_edge(0.65), pt2_edge(1.0), pt3_edge(2.5), rap_min(2.), rap_max(0.0), dsShift(0) { } //@} public: /// @name Analysis methods //@{ /// Book histograms and initialise projections before the run void init() { int y_nbins = 4; fillMap(partLftMap); if (fuzzyEquals(sqrtS(), 0.9*TeV)) { rap_beam = 6.87; rap_max = 4.; pt_min = 0.25; } else if (fuzzyEquals(sqrtS(), 7*TeV)) { rap_beam = 8.92; rap_max = 4.5; pt_min = 0.15; y_nbins = 5; dsShift = 8; } else { MSG_ERROR("Incompatible beam energy!"); } // Create the sets of temporary histograms that will be used to make the ratios in the finalize() for (size_t i = 0; i < 12; ++i) _tmphistos[i] = YODA::Histo1D(y_nbins, rap_min, rap_max); for (size_t i = 12; i < 15; ++i) _tmphistos[i] = YODA::Histo1D(refData(dsShift+5, 1, 1)); for (size_t i = 15; i < 18; ++i) _tmphistos[i] = YODA::Histo1D(y_nbins, rap_beam - rap_max, rap_beam - rap_min); - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); } /// Perform the per-event analysis void analyze(const Event& event) { const double weight = event.weight(); - const UnstableFinalState& ufs = apply(event, "UFS"); + const UnstableParticles& ufs = apply(event, "UFS"); double ancestor_lftsum = 0.0; double y, pT; int id; int partIdx = -1; foreach (const Particle& p, ufs.particles()) { id = p.pid(); // continue if particle not a K0s nor (anti-)Lambda if ( (id == 310) || (id == -310) ) { partIdx = 2; } else if ( id == 3122 ) { partIdx = 1; } else if ( id == -3122 ) { partIdx = 0; } else { continue; } ancestor_lftsum = getMotherLifeTimeSum(p); // Lifetime cut: ctau sum of all particle ancestors < 10^-9 m according to the paper (see eq. 5) const double MAX_CTAU = 1.0E-9; // [m] if ( (ancestor_lftsum < 0.0) || (ancestor_lftsum > MAX_CTAU) ) continue; const FourMomentum& qmom = p.momentum(); y = log((qmom.E() + qmom.pz())/(qmom.E() - qmom.pz()))/2.; // skip this particle if it has too high or too low rapidity (extremely rare cases when E = +- pz) if ( std::isnan(y) || std::isinf(y) ) continue; y = fabs(y); if (!inRange(y, rap_min, rap_max)) continue; pT = sqrt((qmom.px() * qmom.px()) + (qmom.py() * qmom.py())); if (!inRange(pT, pt_min, pt3_edge)) continue; // Filling corresponding temporary histograms for pT intervals if (inRange(pT, pt_min, pt1_edge)) _tmphistos[partIdx*3].fill(y, weight); if (inRange(pT, pt1_edge, pt2_edge)) _tmphistos[partIdx*3+1].fill(y, weight); if (inRange(pT, pt2_edge, pt3_edge)) _tmphistos[partIdx*3+2].fill(y, weight); // Fill histo in rapidity for whole pT interval _tmphistos[partIdx+9].fill(y, weight); // Fill histo in pT for whole rapidity interval _tmphistos[partIdx+12].fill(pT, weight); // Fill histo in rapidity loss for whole pT interval _tmphistos[partIdx+15].fill(rap_beam - y, weight); } } // Generate the ratio histograms void finalize() { int dsId = dsShift + 1; for (size_t j = 0; j < 3; ++j) { /// @todo Compactify to two one-liners Scatter2DPtr s1 = bookScatter2D(dsId, 1, j+1); divide(_tmphistos[j], _tmphistos[3+j], s1); Scatter2DPtr s2 = bookScatter2D(dsId+1, 1, j+1); divide(_tmphistos[j], _tmphistos[6+j], s2); } dsId += 2; for (size_t j = 3; j < 6; ++j) { /// @todo Compactify to two one-liners Scatter2DPtr s1 = bookScatter2D(dsId, 1, 1); divide(_tmphistos[3*j], _tmphistos[3*j+1], s1); dsId += 1; Scatter2DPtr s2 = bookScatter2D(dsId, 1, 1); divide(_tmphistos[3*j], _tmphistos[3*j+2], s2); dsId += 1; } } //@} private: // Get particle lifetime from hardcoded data double getLifeTime(int pid) { double lft = -1.0; if (pid < 0) pid = - pid; // Correct Pythia6 PIDs for f0(980), f0(1370) mesons if (pid == 10331) pid = 30221; if (pid == 10221) pid = 9010221; map::iterator pPartLft = partLftMap.find(pid); // search stable particle list if (pPartLft == partLftMap.end()) { if (pid <= 100) return 0.0; for (size_t i=0; i < sizeof(stablePDGIds)/sizeof(unsigned int); i++) { if (pid == stablePDGIds[i]) { lft = 0.0; break; } } } else { lft = (*pPartLft).second; } if (lft < 0.0 && PID::isHadron(pid)) { MSG_ERROR("Could not determine lifetime for particle with PID " << pid << "... This V^0 will be considered unprompt!"); } return lft; } // Data members like post-cuts event weight counters go here const double getMotherLifeTimeSum(const Particle& p) { if (p.genParticle() == NULL) return -1.; double lftSum = 0.; double plft = 0.; const GenParticle* part = p.genParticle(); const GenVertex* ivtx = part->production_vertex(); while (ivtx) { if (ivtx->particles_in_size() < 1) { lftSum = -1.; break; }; const GenVertex::particles_in_const_iterator iPart_invtx = ivtx->particles_in_const_begin(); part = (*iPart_invtx); if ( !(part) ) { lftSum = -1.; break; }; ivtx = part->production_vertex(); if ( (part->pdg_id() == 2212) || !(ivtx) ) break; //reached beam plft = getLifeTime(part->pdg_id()); if (plft < 0.) { lftSum = -1.; break; }; lftSum += plft; }; return (lftSum * c_light); } /// @name Private variables //@{ // The rapidity of the beam according to the selected beam energy double rap_beam; // The edges of the intervals of transverse momentum double pt_min, pt1_edge, pt2_edge, pt3_edge; // The limits of the rapidity window double rap_min; double rap_max; // Indicates which set of histograms will be output to yoda file (according to beam energy) int dsShift; // Map between PDG id and particle lifetimes in seconds std::map partLftMap; // Set of PDG Ids for stable particles (PDG Id <= 100 are considered stable) static const int stablePDGIds[205]; //@} /// @name Helper histograms //@{ /// Histograms are defined in the following order: anti-Lambda, Lambda and K0s. /// First 3 suites of 3 histograms correspond to each particle in bins of y for the 3 pT intervals. (9 histos) /// Next 3 histograms contain the particles in y bins for the whole pT interval (3 histos) /// Next 3 histograms contain the particles in y_loss bins for the whole pT interval (3 histos) /// Last 3 histograms contain the particles in pT bins for the whole rapidity (y) interval (3 histos) YODA::Histo1D _tmphistos[18]; //@} // Fill the PDG Id to Lifetime[seconds] map // Data was extracted from LHCb Particle Table through LHCb::ParticlePropertySvc bool fillMap(map& m) { m[6] = 4.707703E-25; m[11] = 1.E+16; m[12] = 1.E+16; m[13] = 2.197019E-06; m[14] = 1.E+16; m[15] = 2.906E-13; m[16] = 1.E+16; m[22] = 1.E+16; m[23] = 2.637914E-25; m[24] = 3.075758E-25; m[25] = 9.4E-26; m[35] = 9.4E-26; m[36] = 9.4E-26; m[37] = 9.4E-26; m[84] = 3.335641E-13; m[85] = 1.290893E-12; m[111] = 8.4E-17; m[113] = 4.405704E-24; m[115] = 6.151516E-24; m[117] = 4.088275E-24; m[119] = 2.102914E-24; m[130] = 5.116E-08; m[150] = 1.525E-12; m[211] = 2.6033E-08; m[213] = 4.405704E-24; m[215] = 6.151516E-24; m[217] = 4.088275E-24; m[219] = 2.102914E-24; m[221] = 5.063171E-19; m[223] = 7.752794E-23; m[225] = 3.555982E-24; m[227] = 3.91793E-24; m[229] = 2.777267E-24; m[310] = 8.953E-11; m[313] = 1.308573E-23; m[315] = 6.038644E-24; m[317] = 4.139699E-24; m[319] = 3.324304E-24; m[321] = 1.238E-08; m[323] = 1.295693E-23; m[325] = 6.682357E-24; m[327] = 4.139699E-24; m[329] = 3.324304E-24; m[331] = 3.210791E-21; m[333] = 1.545099E-22; m[335] = 9.016605E-24; m[337] = 7.565657E-24; m[350] = 1.407125E-12; m[411] = 1.04E-12; m[413] = 6.856377E-21; m[415] = 1.778952E-23; m[421] = 4.101E-13; m[423] = 1.000003E-19; m[425] = 1.530726E-23; m[431] = 5.E-13; m[433] = 1.000003E-19; m[435] = 3.291061E-23; m[441] = 2.465214E-23; m[443] = 7.062363E-21; m[445] = 3.242425E-22; m[510] = 1.525E-12; m[511] = 1.525E-12; m[513] = 1.000019E-19; m[515] = 1.31E-23; m[521] = 1.638E-12; m[523] = 1.000019E-19; m[525] = 1.31E-23; m[530] = 1.536875E-12; m[531] = 1.472E-12; m[533] = 1.E-19; m[535] = 1.31E-23; m[541] = 4.5E-13; m[553] = 1.218911E-20; m[1112] = 4.539394E-24; m[1114] = 5.578069E-24; m[1116] = 1.994582E-24; m[1118] = 2.269697E-24; m[1212] = 4.539394E-24; m[1214] = 5.723584E-24; m[1216] = 1.994582E-24; m[1218] = 1.316424E-24; m[2112] = 8.857E+02; m[2114] = 5.578069E-24; m[2116] = 4.388081E-24; m[2118] = 2.269697E-24; m[2122] = 4.539394E-24; m[2124] = 5.723584E-24; m[2126] = 1.994582E-24; m[2128] = 1.316424E-24; m[2212] = 1.E+16; m[2214] = 5.578069E-24; m[2216] = 4.388081E-24; m[2218] = 2.269697E-24; m[2222] = 4.539394E-24; m[2224] = 5.578069E-24; m[2226] = 1.994582E-24; m[2228] = 2.269697E-24; m[3112] = 1.479E-10; m[3114] = 1.670589E-23; m[3116] = 5.485102E-24; m[3118] = 3.656734E-24; m[3122] = 2.631E-10; m[3124] = 4.219309E-23; m[3126] = 8.227653E-24; m[3128] = 3.291061E-24; m[3212] = 7.4E-20; m[3214] = 1.828367E-23; m[3216] = 5.485102E-24; m[3218] = 3.656734E-24; m[3222] = 8.018E-11; m[3224] = 1.838582E-23; m[3226] = 5.485102E-24; m[3228] = 3.656734E-24; m[3312] = 1.639E-10; m[3314] = 6.648608E-23; m[3322] = 2.9E-10; m[3324] = 7.233101E-23; m[3334] = 8.21E-11; m[4112] = 2.991874E-22; m[4114] = 4.088274E-23; m[4122] = 2.E-13; m[4132] = 1.12E-13; m[4212] = 3.999999E-22; m[4214] = 3.291061E-22; m[4222] = 2.951624E-22; m[4224] = 4.417531E-23; m[4232] = 4.42E-13; m[4332] = 6.9E-14; m[4412] = 3.335641E-13; m[4422] = 3.335641E-13; m[4432] = 3.335641E-13; m[5112] = 1.E-19; m[5122] = 1.38E-12; m[5132] = 1.42E-12; m[5142] = 1.290893E-12; m[5212] = 1.E-19; m[5222] = 1.E-19; m[5232] = 1.42E-12; m[5242] = 1.290893E-12; m[5312] = 1.E-19; m[5322] = 1.E-19; m[5332] = 1.55E-12; m[5342] = 1.290893E-12; m[5442] = 1.290893E-12; m[5512] = 1.290893E-12; m[5522] = 1.290893E-12; m[5532] = 1.290893E-12; m[5542] = 1.290893E-12; m[10111] = 2.48382E-24; m[10113] = 4.635297E-24; m[10115] = 2.54136E-24; m[10211] = 2.48382E-24; m[10213] = 4.635297E-24; m[10215] = 2.54136E-24; m[10223] = 1.828367E-24; m[10225] = 3.636531E-24; m[10311] = 2.437823E-24; m[10313] = 7.313469E-24; m[10315] = 3.538775E-24; m[10321] = 2.437823E-24; m[10323] = 7.313469E-24; m[10325] = 3.538775E-24; m[10331] = 4.804469E-24; m[10411] = 4.38E-24; m[10413] = 3.29E-23; m[10421] = 4.38E-24; m[10423] = 3.22653E-23; m[10431] = 6.5821E-22; m[10433] = 6.5821E-22; m[10441] = 6.453061E-23; m[10511] = 4.39E-24; m[10513] = 1.65E-23; m[10521] = 4.39E-24; m[10523] = 1.65E-23; m[10531] = 4.39E-24; m[10533] = 1.65E-23; m[11114] = 2.194041E-24; m[11116] = 1.828367E-24; m[11212] = 1.880606E-24; m[11216] = 1.828367E-24; m[12112] = 2.194041E-24; m[12114] = 2.194041E-24; m[12116] = 5.063171E-24; m[12126] = 1.828367E-24; m[12212] = 2.194041E-24; m[12214] = 2.194041E-24; m[12216] = 5.063171E-24; m[12224] = 2.194041E-24; m[12226] = 1.828367E-24; m[13112] = 6.582122E-24; m[13114] = 1.09702E-23; m[13116] = 5.485102E-24; m[13122] = 1.316424E-23; m[13124] = 1.09702E-23; m[13126] = 6.928549E-24; m[13212] = 6.582122E-24; m[13214] = 1.09702E-23; m[13216] = 5.485102E-24; m[13222] = 6.582122E-24; m[13224] = 1.09702E-23; m[13226] = 5.485102E-24; m[13314] = 2.742551E-23; m[13324] = 2.742551E-23; m[14122] = 1.828367E-22; m[20022] = 1.E+16; m[20113] = 1.567172E-24; m[20213] = 1.567172E-24; m[20223] = 2.708692E-23; m[20313] = 3.782829E-24; m[20315] = 2.384827E-24; m[20323] = 3.782829E-24; m[20325] = 2.384827E-24; m[20333] = 1.198929E-23; m[20413] = 2.63E-24; m[20423] = 2.63E-24; m[20433] = 6.5821E-22; m[20443] = 7.395643E-22; m[20513] = 2.63E-24; m[20523] = 2.63E-24; m[20533] = 2.63E-24; m[21112] = 2.632849E-24; m[21114] = 3.291061E-24; m[21212] = 2.632849E-24; m[21214] = 6.582122E-24; m[22112] = 4.388081E-24; m[22114] = 3.291061E-24; m[22122] = 2.632849E-24; m[22124] = 6.582122E-24; m[22212] = 4.388081E-24; m[22214] = 3.291061E-24; m[22222] = 2.632849E-24; m[22224] = 3.291061E-24; m[23112] = 7.313469E-24; m[23114] = 2.991874E-24; m[23122] = 4.388081E-24; m[23124] = 6.582122E-24; m[23126] = 3.291061E-24; m[23212] = 7.313469E-24; m[23214] = 2.991874E-24; m[23222] = 7.313469E-24; m[23224] = 2.991874E-24; m[30113] = 2.632849E-24; m[30213] = 2.632849E-24; m[30221] = 1.880606E-24; m[30223] = 2.089563E-24; m[30313] = 2.056913E-24; m[30323] = 2.056913E-24; m[30443] = 2.419898E-23; m[31114] = 1.880606E-24; m[31214] = 3.291061E-24; m[32112] = 3.989164E-24; m[32114] = 1.880606E-24; m[32124] = 3.291061E-24; m[32212] = 3.989164E-24; m[32214] = 1.880606E-24; m[32224] = 1.880606E-24; m[33122] = 1.880606E-23; m[42112] = 6.582122E-24; m[42212] = 6.582122E-24; m[43122] = 2.194041E-24; m[53122] = 4.388081E-24; m[100111] = 1.645531E-24; m[100113] = 1.64553E-24; m[100211] = 1.645531E-24; m[100213] = 1.64553E-24; m[100221] = 1.196749E-23; m[100223] = 3.061452E-24; m[100313] = 2.837122E-24; m[100323] = 2.837122E-24; m[100331] = 4.459432E-25; m[100333] = 4.388081E-24; m[100441] = 4.701516E-23; m[100443] = 2.076379E-21; m[100553] = 2.056913E-20; m[200553] = 3.242425E-20; m[300553] = 3.210791E-23; m[9000111] = 8.776163E-24; m[9000211] = 8.776163E-24; m[9000443] = 8.227652E-24; m[9000553] = 5.983747E-24; m[9010111] = 3.164482E-24; m[9010211] = 3.164482E-24; m[9010221] = 9.403031E-24; m[9010443] = 8.438618E-24; m[9010553] = 8.3318E-24; m[9020443] = 1.061633E-23; m[9030221] = 6.038644E-24; m[9042413] = 2.07634E-21; m[9050225] = 1.394517E-24; m[9060225] = 3.291061E-24; m[9080225] = 4.388081E-24; m[9090225] = 2.056913E-24; m[9910445] = 2.07634E-21; m[9920443] = 2.07634E-21; return true; } }; const int LHCB_2011_I917009::stablePDGIds[205] = { 311, 543, 545, 551, 555, 557, 1103, 2101, 2103, 2203, 3101, 3103, 3201, 3203, 3303, 4101, 4103, 4124, 4201, 4203, 4301, 4303, 4312, 4314, 4322, 4324, 4334, 4403, 4414, 4424, 4434, 4444, 5101, 5103, 5114, 5201, 5203, 5214, 5224, 5301, 5303, 5314, 5324, 5334, 5401, 5403, 5412, 5414, 5422, 5424, 5432, 5434, 5444, 5503, 5514, 5524, 5534, 5544, 5554, 10022, 10333, 10335, 10443, 10541, 10543, 10551, 10553, 10555, 11112, 12118, 12122, 12218, 12222, 13316, 13326, 20543, 20553, 20555, 23314, 23324, 30343, 30353, 30363, 30553, 33314, 33324, 41214, 42124, 52114, 52214, 100311, 100315, 100321, 100325, 100411, 100413, 100421, 100423, 100551, 100555, 100557, 110551, 110553, 110555, 120553, 120555, 130553, 200551, 200555, 210551, 210553, 220553, 1000001, 1000002, 1000003, 1000004, 1000005, 1000006, 1000011, 1000012, 1000013, 1000014, 1000015, 1000016, 1000021, 1000022, 1000023, 1000024, 1000025, 1000035, 1000037, 1000039, 2000001, 2000002, 2000003, 2000004, 2000005, 2000006, 2000011, 2000012, 2000013, 2000014, 2000015, 2000016, 3000111, 3000113, 3000211, 3000213, 3000221, 3000223, 3000331, 3100021, 3100111, 3100113, 3200111, 3200113, 3300113, 3400113, 4000001, 4000002, 4000011, 4000012, 5000039, 9000221, 9900012, 9900014, 9900016, 9900023, 9900024, 9900041, 9900042 }; // Hook for the plugin system DECLARE_RIVET_PLUGIN(LHCB_2011_I917009); } diff --git a/analyses/pluginLHCb/LHCB_2011_I919315.cc b/analyses/pluginLHCb/LHCB_2011_I919315.cc --- a/analyses/pluginLHCb/LHCB_2011_I919315.cc +++ b/analyses/pluginLHCb/LHCB_2011_I919315.cc @@ -1,96 +1,96 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Tools/BinnedHistogram.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { class LHCB_2011_I919315 : public Analysis { public: /// @name Constructors etc. //@{ /// Constructor LHCB_2011_I919315() : Analysis("LHCB_2011_I919315") { } //@} public: /// @name Analysis methods //@{ /// Book histograms and initialise projections before the run void init() { - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); _h_Phi_pT_y.addHistogram( 2.44, 2.62, bookHisto1D(2, 1, 1)); _h_Phi_pT_y.addHistogram( 2.62, 2.80, bookHisto1D(2, 1, 2)); _h_Phi_pT_y.addHistogram( 2.80, 2.98, bookHisto1D(3, 1, 1)); _h_Phi_pT_y.addHistogram( 2.98, 3.16, bookHisto1D(3, 1, 2)); _h_Phi_pT_y.addHistogram( 3.16, 3.34, bookHisto1D(4, 1, 1)); _h_Phi_pT_y.addHistogram( 3.34, 3.52, bookHisto1D(4, 1, 2)); _h_Phi_pT_y.addHistogram( 3.52, 3.70, bookHisto1D(5, 1, 1)); _h_Phi_pT_y.addHistogram( 3.70, 3.88, bookHisto1D(5, 1, 2)); _h_Phi_pT_y.addHistogram( 3.88, 4.06, bookHisto1D(6, 1, 1)); _h_Phi_pT = bookHisto1D(7, 1, 1); _h_Phi_y = bookHisto1D(8, 1, 1); } /// Perform the per-event analysis void analyze (const Event& event) { const double weight = event.weight(); - const UnstableFinalState& ufs = apply (event, "UFS"); + const UnstableParticles& ufs = apply (event, "UFS"); foreach (const Particle& p, ufs.particles()) { const PdgId id = p.abspid(); if (id == 333) { // id 333 = phi-meson double y = p.rapidity(); double pT = p.perp(); if (pT < 0.6*GeV || pT > 5.0*GeV || y < 2.44 || y > 4.06) { continue; } _h_Phi_y->fill (y, weight); _h_Phi_pT->fill (pT/MeV, weight); _h_Phi_pT_y.fill(y, pT/GeV, weight); } } } /// Normalise histograms etc., after the run void finalize() { double scale_factor = crossSectionPerEvent()/microbarn; scale (_h_Phi_y, scale_factor); scale (_h_Phi_pT, scale_factor); _h_Phi_pT_y.scale(scale_factor/1000., this); } //@} private: /// @name Histograms //@{ Histo1DPtr _h_Phi_y; Histo1DPtr _h_Phi_pT; BinnedHistogram _h_Phi_pT_y; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(LHCB_2011_I919315); } //@} diff --git a/analyses/pluginLHCb/LHCB_2013_I1218996.cc b/analyses/pluginLHCb/LHCB_2013_I1218996.cc --- a/analyses/pluginLHCb/LHCB_2013_I1218996.cc +++ b/analyses/pluginLHCb/LHCB_2013_I1218996.cc @@ -1,138 +1,138 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Tools/BinnedHistogram.hh" #include "Rivet/Projections/FinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// LHCb prompt charm hadron pT and rapidity spectra class LHCB_2013_I1218996 : public Analysis { public: /// @name Constructors etc. //@{ /// Constructor LHCB_2013_I1218996() : Analysis("LHCB_2013_I1218996") { } //@} /// @name Analysis methods //@{ /// Book histograms and initialise projections before the run void init() { /// Initialise and register projections - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); /// Book histograms _h_pdg411_Dplus_pT_y.addHistogram( 2.0, 2.5, bookHisto1D(3, 1, 1)); _h_pdg411_Dplus_pT_y.addHistogram( 2.5, 3.0, bookHisto1D(3, 1, 2)); _h_pdg411_Dplus_pT_y.addHistogram( 3.0, 3.5, bookHisto1D(3, 1, 3)); _h_pdg411_Dplus_pT_y.addHistogram( 3.5, 4.0, bookHisto1D(3, 1, 4)); _h_pdg411_Dplus_pT_y.addHistogram( 4.0, 4.5, bookHisto1D(3, 1, 5)); _h_pdg421_Dzero_pT_y.addHistogram( 2.0, 2.5, bookHisto1D(2, 1, 1)); _h_pdg421_Dzero_pT_y.addHistogram( 2.5, 3.0, bookHisto1D(2, 1, 2)); _h_pdg421_Dzero_pT_y.addHistogram( 3.0, 3.5, bookHisto1D(2, 1, 3)); _h_pdg421_Dzero_pT_y.addHistogram( 3.5, 4.0, bookHisto1D(2, 1, 4)); _h_pdg421_Dzero_pT_y.addHistogram( 4.0, 4.5, bookHisto1D(2, 1, 5)); _h_pdg431_Dsplus_pT_y.addHistogram( 2.0, 2.5, bookHisto1D(5, 1, 1)); _h_pdg431_Dsplus_pT_y.addHistogram( 2.5, 3.0, bookHisto1D(5, 1, 2)); _h_pdg431_Dsplus_pT_y.addHistogram( 3.0, 3.5, bookHisto1D(5, 1, 3)); _h_pdg431_Dsplus_pT_y.addHistogram( 3.5, 4.0, bookHisto1D(5, 1, 4)); _h_pdg431_Dsplus_pT_y.addHistogram( 4.0, 4.5, bookHisto1D(5, 1, 5)); _h_pdg413_Dstarplus_pT_y.addHistogram( 2.0, 2.5, bookHisto1D(4, 1, 1)); _h_pdg413_Dstarplus_pT_y.addHistogram( 2.5, 3.0, bookHisto1D(4, 1, 2)); _h_pdg413_Dstarplus_pT_y.addHistogram( 3.0, 3.5, bookHisto1D(4, 1, 3)); _h_pdg413_Dstarplus_pT_y.addHistogram( 3.5, 4.0, bookHisto1D(4, 1, 4)); _h_pdg413_Dstarplus_pT_y.addHistogram( 4.0, 4.5, bookHisto1D(4, 1, 5)); _h_pdg4122_Lambdac_pT = bookHisto1D(1, 1, 1); } /// Perform the per-event analysis void analyze(const Event& event) { const double weight = event.weight(); /// @todo Use PrimaryHadrons to avoid double counting and automatically remove the contributions from unstable? - const UnstableFinalState &ufs = apply (event, "UFS"); + const UnstableParticles &ufs = apply (event, "UFS"); foreach (const Particle& p, ufs.particles() ) { // We're only interested in charm hadrons if (!p.isHadron() || !p.hasCharm()) continue; // Kinematic acceptance const double y = p.absrap(); ///< Double analysis efficiency with a "two-sided LHCb" const double pT = p.pT(); // Fiducial acceptance of the measurements if (pT > 8.0*GeV || y < 2.0 || y > 4.5) continue; /// Experimental selection removes non-prompt charm hadrons: we ignore those from b decays if (p.fromBottom()) continue; switch (p.abspid()) { case 411: _h_pdg411_Dplus_pT_y.fill(y, pT/GeV, weight); break; case 421: _h_pdg421_Dzero_pT_y.fill(y, pT/GeV, weight); break; case 431: _h_pdg431_Dsplus_pT_y.fill(y, pT/GeV, weight); break; case 413: _h_pdg413_Dstarplus_pT_y.fill(y, pT/GeV, weight); break; case 4122: _h_pdg4122_Lambdac_pT->fill(pT/GeV, weight); break; } } } /// Normalise histograms etc., after the run void finalize() { const double scale_factor = 0.5 * crossSection()/microbarn / sumOfWeights(); /// Avoid the implicit division by the bin width in the BinnedHistogram::scale method. foreach (Histo1DPtr h, _h_pdg411_Dplus_pT_y.getHistograms()) h->scaleW(scale_factor); foreach (Histo1DPtr h, _h_pdg421_Dzero_pT_y.getHistograms()) h->scaleW(scale_factor); foreach (Histo1DPtr h, _h_pdg431_Dsplus_pT_y.getHistograms()) h->scaleW(scale_factor); foreach (Histo1DPtr h, _h_pdg413_Dstarplus_pT_y.getHistograms()) h->scaleW(scale_factor); _h_pdg4122_Lambdac_pT->scaleW(scale_factor); } //@} private: /// @name Histograms //@{ BinnedHistogram _h_pdg411_Dplus_pT_y; BinnedHistogram _h_pdg421_Dzero_pT_y; BinnedHistogram _h_pdg431_Dsplus_pT_y; BinnedHistogram _h_pdg413_Dstarplus_pT_y; Histo1DPtr _h_pdg4122_Lambdac_pT; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(LHCB_2013_I1218996); } diff --git a/analyses/pluginLHCf/LHCF_2012_I1115479.cc b/analyses/pluginLHCf/LHCF_2012_I1115479.cc --- a/analyses/pluginLHCf/LHCF_2012_I1115479.cc +++ b/analyses/pluginLHCf/LHCF_2012_I1115479.cc @@ -1,65 +1,65 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" #include "Rivet/Tools/BinnedHistogram.hh" namespace Rivet { class LHCF_2012_I1115479 : public Analysis { public: LHCF_2012_I1115479() : Analysis("LHCF_2012_I1115479") { } public: void init() { - declare(UnstableFinalState(),"UFS"); + declare(UnstableParticles(),"UFS"); _binnedHistos_y_pT.addHistogram( 8.9, 9.0, bookHisto1D(1, 1, 1)); _binnedHistos_y_pT.addHistogram( 9.0, 9.2, bookHisto1D(2, 1, 1)); _binnedHistos_y_pT.addHistogram( 9.2, 9.4, bookHisto1D(3, 1, 1)); _binnedHistos_y_pT.addHistogram( 9.4, 9.6, bookHisto1D(4, 1, 1)); _binnedHistos_y_pT.addHistogram( 9.6, 10.0, bookHisto1D(5, 1, 1)); _binnedHistos_y_pT.addHistogram(10.0, 11.0, bookHisto1D(6, 1, 1)); } void analyze(const Event& event) { - const UnstableFinalState& ufs = apply(event, "UFS"); + const UnstableParticles& ufs = apply(event, "UFS"); const double weight = event.weight(); const double dphi = TWOPI; foreach (const Particle& p, ufs.particles()) { if (p.pid() == 111) { double pT = p.pT(); double y = p.rapidity(); if (pT > 0.6*GeV) continue; const double scaled_weight = weight/(dphi*pT/GeV); _binnedHistos_y_pT.fill(y, pT/GeV, scaled_weight); } } } void finalize() { _binnedHistos_y_pT.scale( 1./sumOfWeights() , this); } private: BinnedHistogram _binnedHistos_y_pT; }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(LHCF_2012_I1115479); } diff --git a/analyses/pluginLHCf/LHCF_2016_I1385877.cc b/analyses/pluginLHCf/LHCF_2016_I1385877.cc --- a/analyses/pluginLHCf/LHCF_2016_I1385877.cc +++ b/analyses/pluginLHCf/LHCF_2016_I1385877.cc @@ -1,230 +1,230 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/Beam.hh" #include "Rivet/Tools/BinnedHistogram.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief Add a short analysis description here class LHCF_2016_I1385877 : public Analysis { public: /// Constructor DEFAULT_RIVET_ANALYSIS_CTOR(LHCF_2016_I1385877); //In case of some models there can be very small value pT but greater than 0. //In order to avoid unphysical behavior in the first bin a cutoff is needed //If you are sure the model does not have this problem you can set pt_cutoff to 0. const double pt_cutoff = 0.01; /// @name Analysis methods //@{ /// Book histograms and initialise projections before the run void init() { // Initialise and register projections - addProjection(UnstableFinalState(), "UFS"); + addProjection(UnstableParticles(), "UFS"); addProjection(Beam(), "Beam"); // calculate beam rapidity const Particle bm1 = beams().first; const Particle bm2 = beams().second; _beam_rap_1 = bm1.rap(); _beam_rap_2 = bm2.rap(); MSG_INFO("Beam 1 : momentum " << bm1.pz() << " PID " << bm1.pid() << " rapidity " << bm1.rap() ); MSG_INFO("Beam 2 : momentum " << bm2.pz() << " PID " << bm2.pid() << " rapidity " << bm2.rap() ); const double _sqrts = sqrtS(); MSG_INFO("CM energy: " << _sqrts ); _beam_rap = _beam_rap_1; if(bm1.pid()==2212 && bm2.pid()==2212) { //p-p _pp_Pb = true; if( fuzzyEquals( _sqrts/GeV, 7000., 1E-3) ) { _p_pi0_rap_apT = bookProfile1D(1, 1, 2); _h_pi0_rap_pT.addHistogram( 8.8, 9.0, bookHisto1D(2, 1, 2)); _h_pi0_rap_pT.addHistogram( 9.0, 9.2, bookHisto1D(3, 1, 2)); _h_pi0_rap_pT.addHistogram( 9.2, 9.4, bookHisto1D(4, 1, 2)); _h_pi0_rap_pT.addHistogram( 9.4, 9.6, bookHisto1D(5, 1, 2)); _h_pi0_rap_pT.addHistogram( 9.6, 9.8, bookHisto1D(6, 1, 2)); _h_pi0_rap_pT.addHistogram( 9.8, 10.0, bookHisto1D(7, 1, 2)); _h_pi0_rap_pT.addHistogram( 10.0, 10.2, bookHisto1D(8, 1, 2)); _h_pi0_rap_pT.addHistogram( 10.2, 10.4, bookHisto1D(9, 1, 2)); _h_pi0_rap_pT.addHistogram( 10.4, 10.6, bookHisto1D(10, 1, 2)); _h_pi0_rap_pT.addHistogram( 10.6, 10.8, bookHisto1D(11, 1, 2)); _h_pi0_pT_pZ.addHistogram( 0.0, 0.2, bookHisto1D(12, 1, 2)); _h_pi0_pT_pZ.addHistogram( 0.2, 0.4, bookHisto1D(13, 1, 2)); _h_pi0_pT_pZ.addHistogram( 0.4, 0.6, bookHisto1D(14, 1, 2)); _h_pi0_pT_pZ.addHistogram( 0.6, 0.8, bookHisto1D(15, 1, 2)); _h_pi0_pT_pZ.addHistogram( 0.8, 1.0, bookHisto1D(16, 1, 2)); _h_pi0_rap = bookHisto1D(21, 1, 2); _p_pi0_raploss_apT = bookProfile1D(22, 1, 2); _h_pi0_raploss = bookHisto1D(23, 1, 2); } else if(fuzzyEquals( _sqrts/GeV, 2760., 1E-3) ){ _p_pi0_rap_apT = bookProfile1D(1, 1, 1); _h_pi0_rap_pT.addHistogram( 8.8, 9.0, bookHisto1D(2, 1, 1)); _h_pi0_rap_pT.addHistogram( 9.0, 9.2, bookHisto1D(3, 1, 1)); _h_pi0_rap_pT.addHistogram( 9.2, 9.4, bookHisto1D(4, 1, 1)); _h_pi0_rap_pT.addHistogram( 9.4, 9.6, bookHisto1D(5, 1, 1)); _h_pi0_rap_pT.addHistogram( 9.6, 9.8, bookHisto1D(6, 1, 1)); _h_pi0_pT_pZ.addHistogram( 0.0, 0.2, bookHisto1D(12, 1, 1)); _h_pi0_pT_pZ.addHistogram( 0.2, 0.4, bookHisto1D(13, 1, 1)); _h_pi0_rap = bookHisto1D(21, 1, 1); _p_pi0_raploss_apT = bookProfile1D(22, 1, 1); _h_pi0_raploss = bookHisto1D(23, 1, 1); }else{ MSG_INFO("p-p collisions : energy out of range!"); } } else if (bm1.pid()==2212 && bm2.pid()==1000822080){ //p-Pb _pp_Pb = false; if( fuzzyEquals( _sqrts/sqrt(208.)/GeV, 5020., 1E-3) ) { _p_pi0_rap_apT = bookProfile1D(1, 1, 3); _h_pi0_rap_pT.addHistogram( 8.8, 9.0, bookHisto1D(2, 1, 3)); _h_pi0_rap_pT.addHistogram( 9.0, 9.2, bookHisto1D(3, 1, 3)); _h_pi0_rap_pT.addHistogram( 9.2, 9.4, bookHisto1D(4, 1, 3)); _h_pi0_rap_pT.addHistogram( 9.4, 9.6, bookHisto1D(5, 1, 3)); _h_pi0_rap_pT.addHistogram( 9.6, 9.8, bookHisto1D(6, 1, 3)); _h_pi0_rap_pT.addHistogram( 9.8, 10.0, bookHisto1D(7, 1, 3)); _h_pi0_rap_pT.addHistogram( 10.0, 10.2, bookHisto1D(8, 1, 3)); _h_pi0_rap_pT.addHistogram( 10.2, 10.4, bookHisto1D(9, 1, 3)); _h_pi0_rap_pT.addHistogram( 10.4, 10.6, bookHisto1D(10, 1, 3)); _h_pi0_rap_pT.addHistogram( 10.6, 10.8, bookHisto1D(11, 1, 3)); _h_pi0_pT_pZ.addHistogram( 0.0, 0.2, bookHisto1D(12, 1, 3)); _h_pi0_pT_pZ.addHistogram( 0.2, 0.4, bookHisto1D(13, 1, 3)); _h_pi0_pT_pZ.addHistogram( 0.4, 0.6, bookHisto1D(14, 1, 3)); _h_pi0_pT_pZ.addHistogram( 0.6, 0.8, bookHisto1D(15, 1, 3)); _h_pi0_pT_pZ.addHistogram( 0.8, 1.0, bookHisto1D(16, 1, 3)); //_h_pi0_rap = bookHisto1D(21, 1, 3); _p_pi0_raploss_apT = bookProfile1D(22, 1, 3); //_h_pi0_raploss = bookHisto1D(23, 1, 3); }else{ MSG_INFO("p-Pb collisions : energy out of range!"); } } else { MSG_INFO("Beam PDGID out of range!"); } _nevt = 0.; } /// Perform the per-event analysis void analyze(const Event& event) { _nevt = _nevt + 1.; - const UnstableFinalState &ufs = applyProjection (event, "UFS"); + const UnstableParticles &ufs = applyProjection (event, "UFS"); Particles ufs_particles = ufs.particles(); for (Particle& p: ufs_particles ) { // select neutral pion if(p.abspid() != 111) continue; if(p.pz()/GeV<0.) continue; if(p.pT()/GeVfill( rap , pT_MeV , 1.0 ); _h_pi0_rap_pT.fill( rap, pT , 1.0 / pT ); _h_pi0_pT_pZ.fill( pT, pZ , en / pT); _h_pi0_rap->fill( rap, 1.0 ); _p_pi0_raploss_apT->fill( raploss , pT_MeV , 1.0 ); _h_pi0_raploss->fill( raploss, 1.0 ); } else {//pPb collisions const double pZ = p.pz()/GeV; const double pT = p.pT()/GeV; const double pT_MeV = p.pT()/MeV; const double en = p.E()/GeV; const double rap = p.rap(); const double raploss = _beam_rap_1 - p.rap(); //mitsuka-like _p_pi0_rap_apT->fill( rap , pT_MeV , 1.0 ); _h_pi0_rap_pT.fill( rap, pT , 1.0 / pT ); _h_pi0_pT_pZ.fill( pT, pZ , en / pT); //_h_pi0_rap->fill( rap, 1.0 ); _p_pi0_raploss_apT->fill( raploss , pT_MeV , 1.0 ); //_h_pi0_raploss->fill( raploss, 1.0 ); } } } /// Normalise histograms etc., after the run void finalize() { const double inv_scale_factor = 1. / _nevt / (2.*PI); const double pt_bin_width = 0.2; for (Histo1DPtr h: _h_pi0_pT_pZ.getHistograms()){ if(h->path() == "/LHCF_2016_I1385877/d12-x01-y01" || h->path() == "/LHCF_2016_I1385877/d12-x01-y02" || h->path() == "/LHCF_2016_I1385877/d12-x01-y03") h->scaleW( inv_scale_factor / (pt_bin_width-pt_cutoff) ); else h->scaleW( inv_scale_factor / pt_bin_width ); } const double scale_factor = 1. / _nevt / (2.*PI); const double rap_bin_width = 0.2; for (Histo1DPtr h: _h_pi0_rap_pT.getHistograms()) { const int cutoff_bin = h->binIndexAt(pt_cutoff); if(cutoff_bin>=0) { // for(unsigned int ibin=0; ibinnumBins(); ++ibin) // cout << ibin << " " << h->bin(ibin).area() << endl; const double cutoff_wdt = h->bin(cutoff_bin).xMax()-h->bin(cutoff_bin).xMin(); h->bin(cutoff_bin).scaleW((cutoff_wdt)/(cutoff_wdt-pt_cutoff)); // for(unsigned int ibin=0; ibinnumBins(); ++ibin) // cout << ibin << " " << h->bin(ibin).area() << endl; } h->scaleW( scale_factor / rap_bin_width ); } if(_pp_Pb) { scale( _h_pi0_rap , 1. / _nevt ); scale( _h_pi0_raploss , 1. / _nevt ); } } //@} private: /// @name Histograms //@{ bool _pp_Pb; double _nevt; double _beam_rap; double _beam_rap_1; double _beam_rap_2; BinnedHistogram _h_pi0_pT_pZ; BinnedHistogram _h_pi0_rap_pT; Profile1DPtr _p_pi0_rap_apT; Histo1DPtr _h_pi0_rap; Profile1DPtr _p_pi0_raploss_apT; Histo1DPtr _h_pi0_raploss; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(LHCF_2016_I1385877); } diff --git a/analyses/pluginMC/MC_DIS_Check.cc b/analyses/pluginMC/MC_DIS_Check.cc new file mode 100644 --- /dev/null +++ b/analyses/pluginMC/MC_DIS_Check.cc @@ -0,0 +1,82 @@ +// -*- C++ -*- +#include "Rivet/Analysis.hh" +#include "Rivet/Projections/FinalState.hh" +#include "Rivet/Projections/FastJets.hh" +#include "Rivet/Projections/DISKinematics.hh" + +namespace Rivet { + + + /// @brief A simple analysis to illustrate how to use the + /// DISKinematics projection together with different options. + class MC_DIS_Check : public Analysis { + public: + + /// Constructor + DEFAULT_RIVET_ANALYSIS_CTOR(MC_DIS_Check); + + + /// @name Analysis methods + //@{ + + /// Book histograms and initialise projections before the run + void init() { + + // Initialise and register projections. Note that the definition + // of the scattered lepton can be influenced by sepcifying + // options as declared in the .info file. + DISLepton lepton(options()); + declare(lepton, "Lepton"); + declare(DISKinematics(lepton), "Kinematics"); + + // Book histograms + + _hist_Q2 = bookHisto1D("Q2",logspace(100,0.1, 1000.0)); + _hist_y = bookHisto1D("y",100,0.,1.); + _hist_x = bookHisto1D("xBj",logspace(100,0.00001, 1.0)); + + } + + + /// Perform the per-event analysis + void analyze(const Event& event) { + // Get the DIS kinematics + const DISKinematics& dk = apply(event, "Kinematics"); + if ( dk.failed() ) return; + double x = dk.x(); + double y = dk.y(); + double Q2 = dk.Q2(); + // Weight of the event + const double weight = event.weight(); + _hist_Q2->fill(Q2,weight); + _hist_y->fill(y,weight); + _hist_x->fill(x,weight); + + /// @todo Do the event by event analysis here + + } + + + /// Normalise histograms etc., after the run + void finalize() { + + normalize(_hist_Q2); // normalize to unity + normalize(_hist_y); // normalize to unity + + } + + //@} + + + /// The histograms. + Histo1DPtr _hist_Q2, _hist_y, _hist_x; + + + }; + + + // The hook for the plugin system + DECLARE_RIVET_PLUGIN(MC_DIS_Check); + + +} diff --git a/analyses/pluginMC/MC_DIS_Check.info b/analyses/pluginMC/MC_DIS_Check.info new file mode 100644 --- /dev/null +++ b/analyses/pluginMC/MC_DIS_Check.info @@ -0,0 +1,27 @@ +Name: MC_DIS_Check + +Summary: A simple analysis using the DISKinematics projection. + +Collider: HERA + +Status: UNVALIDATED +Reentrant: True + +Authors: + - Hannes Jung + - Leif Lönnblad + +Options: + - LMode=prompt,any,dressed + - LSort=ENERGY,ETA,ET + - DressDR=# + - IsolDR=# + - Undress=# + +Beams: [[p+, e-], [p+, e+]] + +Description: + A simple analysis to illustrate how to use the DISKinematics + projection together with different options, and to histogram the + obtained x, y and Q2 variables. + diff --git a/analyses/pluginMC/MC_DIS_Check.plot b/analyses/pluginMC/MC_DIS_Check.plot new file mode 100644 --- /dev/null +++ b/analyses/pluginMC/MC_DIS_Check.plot @@ -0,0 +1,11 @@ +BEGIN PLOT /MC_DIS_Check/Q2 +LogX=1 +END PLOT + +BEGIN PLOT /MC_DIS_Check/xBj +LogX=1 +END PLOT + +BEGIN PLOT /MC_DIS_Check/y +END PLOT + diff --git a/analyses/pluginMC/MC_HFJETS.cc b/analyses/pluginMC/MC_HFJETS.cc --- a/analyses/pluginMC/MC_HFJETS.cc +++ b/analyses/pluginMC/MC_HFJETS.cc @@ -1,151 +1,151 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/FastJets.hh" #include "Rivet/Projections/FinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" #include "Rivet/Projections/PrimaryHadrons.hh" #include "Rivet/Projections/HeavyHadrons.hh" namespace Rivet { class MC_HFJETS : public Analysis { public: /// Constructor MC_HFJETS() : Analysis("MC_HFJETS") { } public: /// @name Analysis methods //@{ /// Book histograms and initialise projections before the run void init() { FastJets fj(FinalState(-5, 5), FastJets::ANTIKT, 0.6); fj.useInvisibles(); declare(fj, "Jets"); declare(HeavyHadrons(Cuts::abseta < 5 && Cuts::pT > 500*MeV), "BCHadrons"); _h_ptCJetLead = bookHisto1D("ptCJetLead", linspace(5, 0, 20, false) + logspace(25, 20, 200)); _h_ptCHadrLead = bookHisto1D("ptCHadrLead", linspace(5, 0, 10, false) + logspace(25, 10, 200)); _h_ptFracC = bookHisto1D("ptfracC", 50, 0, 1.5); _h_eFracC = bookHisto1D("efracC", 50, 0, 1.5); _h_ptBJetLead = bookHisto1D("ptBJetLead", linspace(5, 0, 20, false) + logspace(25, 20, 200)); _h_ptBHadrLead = bookHisto1D("ptBHadrLead", linspace(5, 0, 10, false) + logspace(25, 10, 200)); _h_ptFracB = bookHisto1D("ptfracB", 50, 0, 1.5); _h_eFracB = bookHisto1D("efracB", 50, 0, 1.5); } /// Perform the per-event analysis void analyze(const Event& event) { const double weight = event.weight(); // Get jets and heavy hadrons const Jets& jets = apply(event, "Jets").jetsByPt(); const Particles bhadrons = sortByPt(apply(event, "BCHadrons").bHadrons()); const Particles chadrons = sortByPt(apply(event, "BCHadrons").cHadrons()); MSG_DEBUG("# b hadrons = " << bhadrons.size() << ", # c hadrons = " << chadrons.size()); // Max HF hadron--jet axis dR to be regarded as a jet tag const double MAX_DR = 0.3; // Tag the leading b and c jets with a deltaR < 0.3 match // b-tagged jet are excluded from also being considered as c-tagged /// @todo Do this again with the ghost match? MSG_DEBUG("Getting b/c-tags"); bool gotLeadingB = false, gotLeadingC = false;; foreach (const Jet& j, jets) { if (!gotLeadingB) { FourMomentum leadBJet, leadBHadr; double dRmin = MAX_DR; foreach (const Particle& b, bhadrons) { const double dRcand = min(dRmin, deltaR(j, b)); if (dRcand < dRmin) { dRmin = dRcand; leadBJet = j.momentum(); leadBHadr = b.momentum(); MSG_DEBUG("New closest b-hadron jet tag candidate: dR = " << dRmin << " for jet pT = " << j.pT()/GeV << " GeV, " << " b hadron pT = " << b.pT()/GeV << " GeV, PID = " << b.pid()); } } if (dRmin < MAX_DR) { // A jet has been tagged, so fill the histos and break the loop _h_ptBJetLead->fill(leadBJet.pT()/GeV, weight); _h_ptBHadrLead->fill(leadBHadr.pT()/GeV, weight); _h_ptFracB->fill(leadBHadr.pT() / leadBJet.pT(), weight); _h_eFracB->fill(leadBHadr.E() / leadBJet.E(), weight); gotLeadingB = true; continue; // escape this loop iteration so the same jet isn't c-tagged } } if (!gotLeadingC) { FourMomentum leadCJet, leadCHadr; double dRmin = MAX_DR; foreach (const Particle& c, chadrons) { const double dRcand = min(dRmin, deltaR(j, c)); if (dRcand < dRmin) { dRmin = dRcand; leadCJet = j.momentum(); leadCHadr = c.momentum(); MSG_DEBUG("New closest c-hadron jet tag candidate: dR = " << dRmin << " for jet pT = " << j.pT()/GeV << " GeV, " << " c hadron pT = " << c.pT()/GeV << " GeV, PID = " << c.pid()); } } if (dRmin < MAX_DR) { // A jet has been tagged, so fill the histos and break the loop _h_ptCJetLead->fill(leadCJet.pT()/GeV, weight); _h_ptCHadrLead->fill(leadCHadr.pT()/GeV, weight); _h_ptFracC->fill(leadCHadr.pT() / leadCJet.pT(), weight); _h_eFracC->fill(leadCHadr.E() / leadCJet.E(), weight); gotLeadingB = true; } } // If we've found both a leading b and a leading c jet, break the loop over jets if (gotLeadingB && gotLeadingC) break; } } /// Normalise histograms etc., after the run void finalize() { normalize(_h_ptCJetLead); normalize(_h_ptCHadrLead); normalize(_h_ptFracC); normalize(_h_eFracC); normalize(_h_ptBJetLead); normalize(_h_ptBHadrLead); normalize(_h_ptFracB); normalize(_h_eFracB); } //@} private: /// @name Histograms //@{ Histo1DPtr _h_ptCJetLead, _h_ptCHadrLead, _h_ptFracC, _h_eFracC; Histo1DPtr _h_ptBJetLead, _h_ptBHadrLead, _h_ptFracB, _h_eFracB; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(MC_HFJETS); } diff --git a/analyses/pluginMC/MC_IDENTIFIED.cc b/analyses/pluginMC/MC_IDENTIFIED.cc --- a/analyses/pluginMC/MC_IDENTIFIED.cc +++ b/analyses/pluginMC/MC_IDENTIFIED.cc @@ -1,104 +1,104 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/FinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// Generic analysis looking at various distributions of final state particles /// @todo Rename as MC_HADRONS class MC_IDENTIFIED : public Analysis { public: /// Constructor MC_IDENTIFIED() : Analysis("MC_IDENTIFIED") { } public: /// @name Analysis methods //@{ /// Book histograms and initialise projections before the run void init() { // Projections const FinalState cnfs(Cuts::abseta < 5.0 && Cuts::pT > 500*MeV); declare(cnfs, "FS"); - declare(UnstableFinalState(Cuts::abseta < 5.0 && Cuts::pT > 500*MeV), "UFS"); + declare(UnstableParticles(Cuts::abseta < 5.0 && Cuts::pT > 500*MeV), "UFS"); // Histograms // @todo Choose E/pT ranged based on input energies... can't do anything about kin. cuts, though _histStablePIDs = bookHisto1D("MultsStablePIDs", 3335, -0.5, 3334.5); _histDecayedPIDs = bookHisto1D("MultsDecayedPIDs", 3335, -0.5, 3334.5); _histAllPIDs = bookHisto1D("MultsAllPIDs", 3335, -0.5, 3334.5); _histEtaPi = bookHisto1D("EtaPi", 25, 0, 5); _histEtaK = bookHisto1D("EtaK", 25, 0, 5); _histEtaLambda = bookHisto1D("EtaLambda", 25, 0, 5); } /// Perform the per-event analysis void analyze(const Event& event) { const double weight = event.weight(); // Unphysical (debug) plotting of all PIDs in the event, physical or otherwise foreach (const GenParticle* gp, particles(event.genEvent())) { _histAllPIDs->fill(abs(gp->pdg_id()), weight); } // Charged + neutral final state PIDs const FinalState& cnfs = apply(event, "FS"); foreach (const Particle& p, cnfs.particles()) { _histStablePIDs->fill(p.abspid(), weight); } // Unstable PIDs and identified particle eta spectra - const UnstableFinalState& ufs = apply(event, "UFS"); + const UnstableParticles& ufs = apply(event, "UFS"); foreach (const Particle& p, ufs.particles()) { _histDecayedPIDs->fill(p.pid(), weight); const double eta_abs = p.abseta(); const PdgId pid = p.abspid(); //if (PID::isMeson(pid) && PID::hasStrange()) { if (pid == 211 || pid == 111) _histEtaPi->fill(eta_abs, weight); else if (pid == 321 || pid == 130 || pid == 310) _histEtaK->fill(eta_abs, weight); else if (pid == 3122) _histEtaLambda->fill(eta_abs, weight); } } /// Finalize void finalize() { scale(_histStablePIDs, 1/sumOfWeights()); scale(_histDecayedPIDs, 1/sumOfWeights()); scale(_histAllPIDs, 1/sumOfWeights()); scale(_histEtaPi, 1/sumOfWeights()); scale(_histEtaK, 1/sumOfWeights()); scale(_histEtaLambda, 1/sumOfWeights()); } //@} private: /// @name Histograms //@{ Histo1DPtr _histStablePIDs, _histDecayedPIDs, _histAllPIDs; Histo1DPtr _histEtaPi, _histEtaK, _histEtaLambda; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(MC_IDENTIFIED); } diff --git a/analyses/pluginMC/MC_VH2BB.cc b/analyses/pluginMC/MC_VH2BB.cc --- a/analyses/pluginMC/MC_VH2BB.cc +++ b/analyses/pluginMC/MC_VH2BB.cc @@ -1,262 +1,262 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/ZFinder.hh" #include "Rivet/Projections/WFinder.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" #include "Rivet/Projections/FastJets.hh" #include "Rivet/Math/LorentzTrans.hh" namespace Rivet { class MC_VH2BB : public Analysis { public: /// @name Constructors etc. //@{ /// Constructor MC_VH2BB() : Analysis("MC_VH2BB") { } //@} /// @name Analysis methods //@{ /// Book histograms and initialise projections before the run void init() { FinalState fs; Cut cut = Cuts::abseta < 3.5 && Cuts::pT > 25*GeV; ZFinder zeefinder(fs, cut, PID::ELECTRON, 65*GeV, 115*GeV, 0.2); declare(zeefinder, "ZeeFinder"); ZFinder zmmfinder(fs, cut, PID::MUON, 65*GeV, 115*GeV, 0.2); declare(zmmfinder, "ZmmFinder"); WFinder wefinder(fs, cut, PID::ELECTRON, 60*GeV, 100*GeV, 25*GeV, 0.2); declare(wefinder, "WeFinder"); WFinder wmfinder(fs, cut, PID::MUON, 60*GeV, 100*GeV, 25*GeV, 0.2); declare(wmfinder, "WmFinder"); declare(fs, "FinalState"); declare(FastJets(fs, FastJets::ANTIKT, 0.4), "AntiKT04"); declare(FastJets(fs, FastJets::ANTIKT, 0.5), "AntiKT05"); declare(FastJets(fs, FastJets::ANTIKT, 0.6), "AntiKT06"); /// Book histograms _h_jet_bb_Delta_eta = bookHisto1D("jet_bb_Delta_eta", 50, 0, 4); _h_jet_bb_Delta_phi = bookHisto1D("jet_bb_Delta_phi", 50, 0, M_PI); _h_jet_bb_Delta_pT = bookHisto1D("jet_bb_Delta_pT", 50,0, 500); _h_jet_bb_Delta_R = bookHisto1D("jet_bb_Delta_R", 50, 0, 5); _h_jet_b_jet_eta = bookHisto1D("jet_b_jet_eta", 50, -4, 4); _h_jet_b_jet_multiplicity = bookHisto1D("jet_b_jet_multiplicity", 11, -0.5, 10.5); _h_jet_b_jet_phi = bookHisto1D("jet_b_jet_phi", 50, 0, 2.*M_PI); _h_jet_b_jet_pT = bookHisto1D("jet_b_jet_pT", 50, 0, 500); _h_jet_H_eta_using_bb = bookHisto1D("jet_H_eta_using_bb", 50, -4, 4); _h_jet_H_mass_using_bb = bookHisto1D("jet_H_mass_using_bb", 50, 50, 200); _h_jet_H_phi_using_bb = bookHisto1D("jet_H_phi_using_bb", 50, 0, 2.*M_PI); _h_jet_H_pT_using_bb = bookHisto1D("jet_H_pT_using_bb", 50, 0, 500); _h_jet_eta = bookHisto1D("jet_eta", 50, -4, 4); _h_jet_multiplicity = bookHisto1D("jet_multiplicity", 11, -0.5, 10.5); _h_jet_phi = bookHisto1D("jet_phi", 50, 0, 2.*M_PI); _h_jet_pT = bookHisto1D("jet_pT", 50, 0, 500); _h_jet_VBbb_Delta_eta = bookHisto1D("jet_VBbb_Delta_eta", 50, 0, 4); _h_jet_VBbb_Delta_phi = bookHisto1D("jet_VBbb_Delta_phi", 50, 0, M_PI); _h_jet_VBbb_Delta_pT = bookHisto1D("jet_VBbb_Delta_pT", 50, 0, 500); _h_jet_VBbb_Delta_R = bookHisto1D("jet_VBbb_Delta_R", 50, 0, 8); _h_VB_eta = bookHisto1D("VB_eta", 50, -4, 4); _h_VB_mass = bookHisto1D("VB_mass", 50, 60, 110); _h_Z_multiplicity = bookHisto1D("Z_multiplicity", 11, -0.5, 10.5); _h_W_multiplicity = bookHisto1D("W_multiplicity", 11, -0.5, 10.5); _h_VB_phi = bookHisto1D("VB_phi", 50, 0, 2.*M_PI); _h_VB_pT = bookHisto1D("VB_pT", 50, 0, 500); _h_jet_bVB_angle_Hframe = bookHisto1D("jet_bVB_angle_Hframe", 50, 0, M_PI); _h_jet_bVB_cosangle_Hframe = bookHisto1D("jet_bVB_cosangle_Hframe", 50, -1, 1); _h_jet_bb_angle_Hframe = bookHisto1D("jet_bb_angle_Hframe", 50, 0, M_PI); _h_jet_bb_cosangle_Hframe = bookHisto1D("jet_bb_cosangle_Hframe", 50, -1, 1); } /// Perform the per-event analysis void analyze(const Event& event) { const double weight = event.weight(); const double JETPTCUT = 30*GeV; const ZFinder& zeefinder = apply(event, "ZeeFinder"); const ZFinder& zmmfinder = apply(event, "ZmmFinder"); const WFinder& wefinder = apply(event, "WeFinder"); const WFinder& wmfinder = apply(event, "WmFinder"); const Particles vectorBosons = zeefinder.bosons() + zmmfinder.bosons() + wefinder.bosons() + wmfinder.bosons(); _h_Z_multiplicity->fill(zeefinder.bosons().size() + zmmfinder.bosons().size(), weight); _h_W_multiplicity->fill(wefinder.bosons().size() + wmfinder.bosons().size(), weight); const Jets jets = apply(event, "AntiKT04").jetsByPt(JETPTCUT); _h_jet_multiplicity->fill(jets.size(), weight); // Identify the b-jets Jets bjets; foreach (const Jet& jet, jets) { const double jetEta = jet.eta(); const double jetPhi = jet.phi(); const double jetPt = jet.pT(); _h_jet_eta->fill(jetEta, weight); _h_jet_phi->fill(jetPhi, weight); _h_jet_pT->fill(jetPt/GeV, weight); if (jet.bTagged() && jet.pT() > JETPTCUT) { bjets.push_back(jet); _h_jet_b_jet_eta->fill( jetEta , weight ); _h_jet_b_jet_phi->fill( jetPhi , weight ); _h_jet_b_jet_pT->fill( jetPt , weight ); } } _h_jet_b_jet_multiplicity->fill(bjets.size(), weight); // Plot vector boson properties foreach (const Particle& v, vectorBosons) { _h_VB_phi->fill(v.phi(), weight); _h_VB_pT->fill(v.pT(), weight); _h_VB_eta->fill(v.eta(), weight); _h_VB_mass->fill(v.mass(), weight); } // rest of analysis requires at least 1 b jets if(bjets.empty()) vetoEvent; // Construct Higgs candidates from pairs of b-jets for (size_t i = 0; i < bjets.size()-1; ++i) { for (size_t j = i+1; j < bjets.size(); ++j) { const Jet& jet1 = bjets[i]; const Jet& jet2 = bjets[j]; const double deltaEtaJJ = fabs(jet1.eta() - jet2.eta()); const double deltaPhiJJ = deltaPhi(jet1.momentum(), jet2.momentum()); const double deltaRJJ = deltaR(jet1.momentum(), jet2.momentum()); const double deltaPtJJ = fabs(jet1.pT() - jet2.pT()); _h_jet_bb_Delta_eta->fill(deltaEtaJJ, weight); _h_jet_bb_Delta_phi->fill(deltaPhiJJ, weight); _h_jet_bb_Delta_pT->fill(deltaPtJJ, weight); _h_jet_bb_Delta_R->fill(deltaRJJ, weight); const FourMomentum phiggs = jet1.momentum() + jet2.momentum(); _h_jet_H_eta_using_bb->fill(phiggs.eta(), weight); _h_jet_H_mass_using_bb->fill(phiggs.mass(), weight); _h_jet_H_phi_using_bb->fill(phiggs.phi(), weight); _h_jet_H_pT_using_bb->fill(phiggs.pT(), weight); foreach (const Particle& v, vectorBosons) { const double deltaEtaVH = fabs(phiggs.eta() - v.eta()); const double deltaPhiVH = deltaPhi(phiggs, v.momentum()); const double deltaRVH = deltaR(phiggs, v.momentum()); const double deltaPtVH = fabs(phiggs.pT() - v.pT()); _h_jet_VBbb_Delta_eta->fill(deltaEtaVH, weight); _h_jet_VBbb_Delta_phi->fill(deltaPhiVH, weight); _h_jet_VBbb_Delta_pT->fill(deltaPtVH, weight); _h_jet_VBbb_Delta_R->fill(deltaRVH, weight); // Calculate boost angles const vector angles = boostAngles(jet1.momentum(), jet2.momentum(), v.momentum()); _h_jet_bVB_angle_Hframe->fill(angles[0], weight); _h_jet_bb_angle_Hframe->fill(angles[1], weight); _h_jet_bVB_cosangle_Hframe->fill(cos(angles[0]), weight); _h_jet_bb_cosangle_Hframe->fill(cos(angles[1]), weight); } } } } /// Normalise histograms etc., after the run void finalize() { scale(_h_jet_bb_Delta_eta, crossSection()/sumOfWeights()); scale(_h_jet_bb_Delta_phi, crossSection()/sumOfWeights()); scale(_h_jet_bb_Delta_pT, crossSection()/sumOfWeights()); scale(_h_jet_bb_Delta_R, crossSection()/sumOfWeights()); scale(_h_jet_b_jet_eta, crossSection()/sumOfWeights()); scale(_h_jet_b_jet_multiplicity, crossSection()/sumOfWeights()); scale(_h_jet_b_jet_phi, crossSection()/sumOfWeights()); scale(_h_jet_b_jet_pT, crossSection()/sumOfWeights()); scale(_h_jet_H_eta_using_bb, crossSection()/sumOfWeights()); scale(_h_jet_H_mass_using_bb, crossSection()/sumOfWeights()); scale(_h_jet_H_phi_using_bb, crossSection()/sumOfWeights()); scale(_h_jet_H_pT_using_bb, crossSection()/sumOfWeights()); scale(_h_jet_eta, crossSection()/sumOfWeights()); scale(_h_jet_multiplicity, crossSection()/sumOfWeights()); scale(_h_jet_phi, crossSection()/sumOfWeights()); scale(_h_jet_pT, crossSection()/sumOfWeights()); scale(_h_jet_VBbb_Delta_eta, crossSection()/sumOfWeights()); scale(_h_jet_VBbb_Delta_phi, crossSection()/sumOfWeights()); scale(_h_jet_VBbb_Delta_pT, crossSection()/sumOfWeights()); scale(_h_jet_VBbb_Delta_R, crossSection()/sumOfWeights()); scale(_h_VB_eta, crossSection()/sumOfWeights()); scale(_h_VB_mass, crossSection()/sumOfWeights()); scale(_h_Z_multiplicity, crossSection()/sumOfWeights()); scale(_h_W_multiplicity, crossSection()/sumOfWeights()); scale(_h_VB_phi, crossSection()/sumOfWeights()); scale(_h_VB_pT, crossSection()/sumOfWeights()); scale(_h_jet_bVB_angle_Hframe, crossSection()/sumOfWeights()); scale(_h_jet_bb_angle_Hframe, crossSection()/sumOfWeights()); scale(_h_jet_bVB_cosangle_Hframe, crossSection()/sumOfWeights()); scale(_h_jet_bb_cosangle_Hframe, crossSection()/sumOfWeights()); } /// This should take in the four-momenta of two b's (jets/hadrons) and a vector boson, for the process VB*->VBH with H->bb /// It should return the smallest angle between the virtual vector boson and one of the b's, in the rest frame of the Higgs boson. /// It should also return (as the second element of the vector) the angle between the b's, in the rest frame of the Higgs boson. vector boostAngles(const FourMomentum& b1, const FourMomentum& b2, const FourMomentum& vb) { const FourMomentum higgsMomentum = b1 + b2; const FourMomentum virtualVBMomentum = higgsMomentum + vb; const LorentzTransform lt = LorentzTransform::mkFrameTransformFromBeta(higgsMomentum.betaVec()); const FourMomentum virtualVBMomentumBOOSTED = lt.transform(virtualVBMomentum); const FourMomentum b1BOOSTED = lt.transform(b1); const FourMomentum b2BOOSTED = lt.transform(b2); const double angle1 = b1BOOSTED.angle(virtualVBMomentumBOOSTED); const double angle2 = b2BOOSTED.angle(virtualVBMomentumBOOSTED); const double anglebb = b1BOOSTED.angle(b2BOOSTED); vector rtn; rtn.push_back(angle1 < angle2 ? angle1 : angle2); rtn.push_back(anglebb); return rtn; } //@} private: /// @name Histograms //@{ Histo1DPtr _h_Z_multiplicity, _h_W_multiplicity; Histo1DPtr _h_jet_bb_Delta_eta, _h_jet_bb_Delta_phi, _h_jet_bb_Delta_pT, _h_jet_bb_Delta_R; Histo1DPtr _h_jet_b_jet_eta, _h_jet_b_jet_multiplicity, _h_jet_b_jet_phi, _h_jet_b_jet_pT; Histo1DPtr _h_jet_H_eta_using_bb, _h_jet_H_mass_using_bb, _h_jet_H_phi_using_bb, _h_jet_H_pT_using_bb; Histo1DPtr _h_jet_eta, _h_jet_multiplicity, _h_jet_phi, _h_jet_pT; Histo1DPtr _h_jet_VBbb_Delta_eta, _h_jet_VBbb_Delta_phi, _h_jet_VBbb_Delta_pT, _h_jet_VBbb_Delta_R; Histo1DPtr _h_VB_eta, _h_VB_mass, _h_VB_phi, _h_VB_pT; Histo1DPtr _h_jet_bVB_angle_Hframe, _h_jet_bb_angle_Hframe, _h_jet_bVB_cosangle_Hframe, _h_jet_bb_cosangle_Hframe; //Histo1DPtr _h_jet_cuts_bb_deltaR_v_HpT; //@} }; // This global object acts as a hook for the plugin system DECLARE_RIVET_PLUGIN(MC_VH2BB); } diff --git a/analyses/pluginMisc/ARGUS_1993_S2653028.cc b/analyses/pluginMisc/ARGUS_1993_S2653028.cc --- a/analyses/pluginMisc/ARGUS_1993_S2653028.cc +++ b/analyses/pluginMisc/ARGUS_1993_S2653028.cc @@ -1,177 +1,177 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief BELLE pi+/-, K+/- and proton/antiproton spectrum at Upsilon(4S) /// @author Peter Richardson class ARGUS_1993_S2653028 : public Analysis { public: ARGUS_1993_S2653028() : Analysis("ARGUS_1993_S2653028"), _weightSum(0.) { } void analyze(const Event& e) { const double weight = e.weight(); // Find the upsilons Particles upsilons; // First in unstable final state - const UnstableFinalState& ufs = apply(e, "UFS"); + const UnstableParticles& ufs = apply(e, "UFS"); foreach (const Particle& p, ufs.particles()) { if (p.pid() == 300553) upsilons.push_back(p); } // Then in whole event if that failed if (upsilons.empty()) { foreach (const GenParticle* p, particles(e.genEvent())) { if (p->pdg_id() != 300553) continue; const GenVertex* pv = p->production_vertex(); bool passed = true; if (pv) { foreach (const GenParticle* pp, particles_in(pv)) { if ( p->pdg_id() == pp->pdg_id() ) { passed = false; break; } } } if (passed) upsilons.push_back(Particle(*p)); } } // Find an upsilon foreach (const Particle& p, upsilons) { _weightSum += weight; vector pionsA,pionsB,protonsA,protonsB,kaons; // Find the decay products we want findDecayProducts(p.genParticle(), pionsA, pionsB, protonsA, protonsB, kaons); LorentzTransform cms_boost; if (p.p3().mod() > 1*MeV) cms_boost = LorentzTransform::mkFrameTransformFromBeta(p.momentum().betaVec()); for (size_t ix = 0; ix < pionsA.size(); ++ix) { FourMomentum ptemp(pionsA[ix]->momentum()); FourMomentum p2 = cms_boost.transform(ptemp); double pcm = cms_boost.transform(ptemp).vector3().mod(); _histPiA->fill(pcm,weight); } _multPiA->fill(10.58,double(pionsA.size())*weight); for (size_t ix = 0; ix < pionsB.size(); ++ix) { double pcm = cms_boost.transform(FourMomentum(pionsB[ix]->momentum())).vector3().mod(); _histPiB->fill(pcm,weight); } _multPiB->fill(10.58,double(pionsB.size())*weight); for (size_t ix = 0; ix < protonsA.size(); ++ix) { double pcm = cms_boost.transform(FourMomentum(protonsA[ix]->momentum())).vector3().mod(); _histpA->fill(pcm,weight); } _multpA->fill(10.58,double(protonsA.size())*weight); for (size_t ix = 0; ix < protonsB.size(); ++ix) { double pcm = cms_boost.transform(FourMomentum(protonsB[ix]->momentum())).vector3().mod(); _histpB->fill(pcm,weight); } _multpB->fill(10.58,double(protonsB.size())*weight); for (size_t ix = 0 ;ix < kaons.size(); ++ix) { double pcm = cms_boost.transform(FourMomentum(kaons[ix]->momentum())).vector3().mod(); _histKA->fill(pcm,weight); _histKB->fill(pcm,weight); } _multK->fill(10.58,double(kaons.size())*weight); } } void finalize() { if (_weightSum > 0.) { scale(_histPiA, 1./_weightSum); scale(_histPiB, 1./_weightSum); scale(_histKA , 1./_weightSum); scale(_histKB , 1./_weightSum); scale(_histpA , 1./_weightSum); scale(_histpB , 1./_weightSum); scale(_multPiA, 1./_weightSum); scale(_multPiB, 1./_weightSum); scale(_multK , 1./_weightSum); scale(_multpA , 1./_weightSum); scale(_multpB , 1./_weightSum); } } void init() { - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); // spectra _histPiA = bookHisto1D(1, 1, 1); _histPiB = bookHisto1D(2, 1, 1); _histKA = bookHisto1D(3, 1, 1); _histKB = bookHisto1D(6, 1, 1); _histpA = bookHisto1D(4, 1, 1); _histpB = bookHisto1D(5, 1, 1); // multiplicities _multPiA = bookHisto1D( 7, 1, 1); _multPiB = bookHisto1D( 8, 1, 1); _multK = bookHisto1D( 9, 1, 1); _multpA = bookHisto1D(10, 1, 1); _multpB = bookHisto1D(11, 1, 1); } // init private: //@{ /// Count of weights double _weightSum; /// Spectra Histo1DPtr _histPiA, _histPiB, _histKA, _histKB, _histpA, _histpB; /// Multiplicities Histo1DPtr _multPiA, _multPiB, _multK, _multpA, _multpB; //@} void findDecayProducts(const GenParticle* p, vector& pionsA, vector& pionsB, vector& protonsA, vector& protonsB, vector& kaons) { int parentId = p->pdg_id(); const GenVertex* dv = p->end_vertex(); /// @todo Use better looping for (GenVertex::particles_out_const_iterator pp = dv->particles_out_const_begin(); pp != dv->particles_out_const_end(); ++pp) { int id = abs((*pp)->pdg_id()); if (id == PID::PIPLUS) { if (parentId != PID::LAMBDA && parentId != PID::K0S) { pionsA.push_back(*pp); pionsB.push_back(*pp); } else pionsB.push_back(*pp); } else if (id == PID::PROTON) { if (parentId != PID::LAMBDA && parentId != PID::K0S) { protonsA.push_back(*pp); protonsB.push_back(*pp); } else protonsB.push_back(*pp); } else if (id == PID::KPLUS) { kaons.push_back(*pp); } else if ((*pp)->end_vertex()) findDecayProducts(*pp, pionsA, pionsB, protonsA, protonsB, kaons); } } }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(ARGUS_1993_S2653028); } diff --git a/analyses/pluginMisc/ARGUS_1993_S2669951.cc b/analyses/pluginMisc/ARGUS_1993_S2669951.cc --- a/analyses/pluginMisc/ARGUS_1993_S2669951.cc +++ b/analyses/pluginMisc/ARGUS_1993_S2669951.cc @@ -1,192 +1,192 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief Production of the $\eta'(958)$ and $f_0(980)$ in $e^+e^-$ annihilation in the Upsilon region /// @author Peter Richardson class ARGUS_1993_S2669951 : public Analysis { public: ARGUS_1993_S2669951() : Analysis("ARGUS_1993_S2669951"), _count_etaPrime_highZ(2, 0.), _count_etaPrime_allZ(3, 0.), _count_f0(3, 0.), _weightSum_cont(0.), _weightSum_Ups1(0.), _weightSum_Ups2(0.) { } void init() { - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); _hist_cont_f0 = bookHisto1D(2, 1, 1); _hist_Ups1_f0 = bookHisto1D(3, 1, 1); _hist_Ups2_f0 = bookHisto1D(4, 1, 1); } void analyze(const Event& e) { // Find the Upsilons among the unstables - const UnstableFinalState& ufs = apply(e, "UFS"); + const UnstableParticles& ufs = apply(e, "UFS"); Particles upsilons; // First in unstable final state foreach (const Particle& p, ufs.particles()) if (p.pid() == 553 || p.pid() == 100553) upsilons.push_back(p); // Then in whole event if fails if (upsilons.empty()) { /// @todo Replace HepMC digging with Particle::descendents etc. calls foreach (const GenParticle* p, Rivet::particles(e.genEvent())) { if ( p->pdg_id() != 553 && p->pdg_id() != 100553 ) continue; // Discard it if its parent has the same PDG ID code (avoid duplicates) const GenVertex* pv = p->production_vertex(); bool passed = true; if (pv) { foreach (const GenParticle* pp, particles_in(pv)) { if ( p->pdg_id() == pp->pdg_id() ) { passed = false; break; } } } if (passed) upsilons.push_back(Particle(*p)); } } // Finding done, now fill counters const double weight = e.weight(); if (upsilons.empty()) { // Continuum MSG_DEBUG("No Upsilons found => continuum event"); _weightSum_cont += weight; unsigned int nEtaA(0), nEtaB(0), nf0(0); foreach (const Particle& p, ufs.particles()) { const int id = p.abspid(); const double xp = 2.*p.E()/sqrtS(); const double beta = p.p3().mod() / p.E(); if (id == 9010221) { _hist_cont_f0->fill(xp, weight/beta); nf0 += 1; } else if (id == 331) { if (xp > 0.35) nEtaA += 1; nEtaB += 1; } } _count_f0[2] += nf0*weight; _count_etaPrime_highZ[1] += nEtaA*weight; _count_etaPrime_allZ[2] += nEtaB*weight; } else { // Upsilon(s) found MSG_DEBUG("Upsilons found => resonance event"); foreach (const Particle& ups, upsilons) { const int parentId = ups.pid(); ((parentId == 553) ? _weightSum_Ups1 : _weightSum_Ups2) += weight; Particles unstable; // Find the decay products we want findDecayProducts(ups.genParticle(), unstable); LorentzTransform cms_boost; if (ups.p3().mod() > 1*MeV) cms_boost = LorentzTransform::mkFrameTransformFromBeta(ups.momentum().betaVec()); const double mass = ups.mass(); unsigned int nEtaA(0), nEtaB(0), nf0(0); foreach(const Particle& p, unstable) { const int id = p.abspid(); const FourMomentum p2 = cms_boost.transform(p.momentum()); const double xp = 2.*p2.E()/mass; const double beta = p2.p3().mod()/p2.E(); if (id == 9010221) { //< ? ((parentId == 553) ? _hist_Ups1_f0 : _hist_Ups2_f0)->fill(xp, weight/beta); nf0 += 1; } else if (id == 331) { //< ? if (xp > 0.35) nEtaA += 1; nEtaB += 1; } } if (parentId == 553) { _count_f0[0] += nf0*weight; _count_etaPrime_highZ[0] += nEtaA*weight; _count_etaPrime_allZ[0] += nEtaB*weight; } else { _count_f0[1] += nf0*weight; _count_etaPrime_allZ[1] += nEtaB*weight; } } } } void finalize() { // High-Z eta' multiplicity Scatter2DPtr s111 = bookScatter2D(1, 1, 1, true); if (_weightSum_Ups1 > 0) // Point at 9.460 s111->point(0).setY(_count_etaPrime_highZ[0] / _weightSum_Ups1, 0); if (_weightSum_cont > 0) // Point at 9.905 s111->point(1).setY(_count_etaPrime_highZ[1] / _weightSum_cont, 0); // All-Z eta' multiplicity Scatter2DPtr s112 = bookScatter2D(1, 1, 2, true); if (_weightSum_Ups1 > 0) // Point at 9.460 s112->point(0).setY(_count_etaPrime_allZ[0] / _weightSum_Ups1, 0); if (_weightSum_cont > 0) // Point at 9.905 s112->point(1).setY(_count_etaPrime_allZ[2] / _weightSum_cont, 0); if (_weightSum_Ups2 > 0) // Point at 10.02 s112->point(2).setY(_count_etaPrime_allZ[1] / _weightSum_Ups2, 0); // f0 multiplicity Scatter2DPtr s511 = bookScatter2D(5, 1, 1, true); if (_weightSum_Ups1 > 0) // Point at 9.46 s511->point(0).setY(_count_f0[0] / _weightSum_Ups1, 0); if (_weightSum_Ups2 > 0) // Point at 10.02 s511->point(1).setY(_count_f0[1] / _weightSum_Ups2, 0); if (_weightSum_cont > 0) // Point at 10.45 s511->point(2).setY(_count_f0[2] / _weightSum_cont, 0); // Scale histos if (_weightSum_cont > 0.) scale(_hist_cont_f0, 1./_weightSum_cont); if (_weightSum_Ups1 > 0.) scale(_hist_Ups1_f0, 1./_weightSum_Ups1); if (_weightSum_Ups2 > 0.) scale(_hist_Ups2_f0, 1./_weightSum_Ups2); } private: /// @name Counters //@{ vector _count_etaPrime_highZ, _count_etaPrime_allZ, _count_f0; double _weightSum_cont,_weightSum_Ups1,_weightSum_Ups2; //@} /// Histos Histo1DPtr _hist_cont_f0, _hist_Ups1_f0, _hist_Ups2_f0; /// Recursively walk the HepMC tree to find decay products of @a p void findDecayProducts(const GenParticle* p, Particles& unstable) { const GenVertex* dv = p->end_vertex(); /// @todo Use better looping for (GenVertex::particles_out_const_iterator pp = dv->particles_out_const_begin(); pp != dv->particles_out_const_end(); ++pp) { const int id = abs((*pp)->pdg_id()); if (id == 331 || id == 9010221) unstable.push_back(Particle(*pp)); else if ((*pp)->end_vertex()) findDecayProducts(*pp, unstable); } } }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(ARGUS_1993_S2669951); } diff --git a/analyses/pluginMisc/ARGUS_1993_S2789213.cc b/analyses/pluginMisc/ARGUS_1993_S2789213.cc --- a/analyses/pluginMisc/ARGUS_1993_S2789213.cc +++ b/analyses/pluginMisc/ARGUS_1993_S2789213.cc @@ -1,256 +1,256 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief ARGUS vector meson production /// @author Peter Richardson class ARGUS_1993_S2789213 : public Analysis { public: ARGUS_1993_S2789213() : Analysis("ARGUS_1993_S2789213"), _weightSum_cont(0.),_weightSum_Ups1(0.),_weightSum_Ups4(0.) { } void init() { - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); _mult_cont_Omega = bookHisto1D( 1, 1, 1); _mult_cont_Rho0 = bookHisto1D( 1, 1, 2); _mult_cont_KStar0 = bookHisto1D( 1, 1, 3); _mult_cont_KStarPlus = bookHisto1D( 1, 1, 4); _mult_cont_Phi = bookHisto1D( 1, 1, 5); _mult_Ups1_Omega = bookHisto1D( 2, 1, 1); _mult_Ups1_Rho0 = bookHisto1D( 2, 1, 2); _mult_Ups1_KStar0 = bookHisto1D( 2, 1, 3); _mult_Ups1_KStarPlus = bookHisto1D( 2, 1, 4); _mult_Ups1_Phi = bookHisto1D( 2, 1, 5); _mult_Ups4_Omega = bookHisto1D( 3, 1, 1); _mult_Ups4_Rho0 = bookHisto1D( 3, 1, 2); _mult_Ups4_KStar0 = bookHisto1D( 3, 1, 3); _mult_Ups4_KStarPlus = bookHisto1D( 3, 1, 4); _mult_Ups4_Phi = bookHisto1D( 3, 1, 5); _hist_cont_KStarPlus = bookHisto1D( 4, 1, 1); _hist_Ups1_KStarPlus = bookHisto1D( 5, 1, 1); _hist_Ups4_KStarPlus = bookHisto1D( 6, 1, 1); _hist_cont_KStar0 = bookHisto1D( 7, 1, 1); _hist_Ups1_KStar0 = bookHisto1D( 8, 1, 1); _hist_Ups4_KStar0 = bookHisto1D( 9, 1, 1); _hist_cont_Rho0 = bookHisto1D(10, 1, 1); _hist_Ups1_Rho0 = bookHisto1D(11, 1, 1); _hist_Ups4_Rho0 = bookHisto1D(12, 1, 1); _hist_cont_Omega = bookHisto1D(13, 1, 1); _hist_Ups1_Omega = bookHisto1D(14, 1, 1); } void analyze(const Event& e) { const double weight = e.weight(); // Find the upsilons Particles upsilons; // First in unstable final state - const UnstableFinalState& ufs = apply(e, "UFS"); + const UnstableParticles& ufs = apply(e, "UFS"); foreach (const Particle& p, ufs.particles()) if (p.pid() == 300553 || p.pid() == 553) upsilons.push_back(p); // Then in whole event if that failed if (upsilons.empty()) { foreach (const GenParticle* p, Rivet::particles(e.genEvent())) { if (p->pdg_id() != 300553 && p->pdg_id() != 553) continue; const GenVertex* pv = p->production_vertex(); bool passed = true; if (pv) { foreach (const GenParticle* pp, particles_in(pv)) { if ( p->pdg_id() == pp->pdg_id() ) { passed = false; break; } } } if (passed) upsilons.push_back(Particle(*p)); } } if (upsilons.empty()) { // continuum _weightSum_cont += weight; unsigned int nOmega(0), nRho0(0), nKStar0(0), nKStarPlus(0), nPhi(0); foreach (const Particle& p, ufs.particles()) { int id = p.abspid(); double xp = 2.*p.E()/sqrtS(); double beta = p.p3().mod()/p.E(); if (id == 113) { _hist_cont_Rho0->fill(xp, weight/beta); ++nRho0; } else if (id == 313) { _hist_cont_KStar0->fill(xp, weight/beta); ++nKStar0; } else if (id == 223) { _hist_cont_Omega->fill(xp, weight/beta); ++nOmega; } else if (id == 323) { _hist_cont_KStarPlus->fill(xp,weight/beta); ++nKStarPlus; } else if (id == 333) { ++nPhi; } } /// @todo Replace with Counters and fill one-point Scatters at the end _mult_cont_Omega ->fill(10.45, weight*nOmega ); _mult_cont_Rho0 ->fill(10.45, weight*nRho0 ); _mult_cont_KStar0 ->fill(10.45, weight*nKStar0 ); _mult_cont_KStarPlus->fill(10.45, weight*nKStarPlus); _mult_cont_Phi ->fill(10.45, weight*nPhi ); } else { // found an upsilon foreach (const Particle& ups, upsilons) { const int parentId = ups.pid(); (parentId == 553 ? _weightSum_Ups1 : _weightSum_Ups4) += weight; Particles unstable; // Find the decay products we want findDecayProducts(ups.genParticle(),unstable); /// @todo Update to new LT mk* functions LorentzTransform cms_boost; if (ups.p3().mod() > 0.001) cms_boost = LorentzTransform::mkFrameTransformFromBeta(ups.momentum().betaVec()); double mass = ups.mass(); unsigned int nOmega(0),nRho0(0),nKStar0(0),nKStarPlus(0),nPhi(0); foreach(const Particle & p , unstable) { int id = p.abspid(); FourMomentum p2 = cms_boost.transform(p.momentum()); double xp = 2.*p2.E()/mass; double beta = p2.p3().mod()/p2.E(); if (id == 113) { if (parentId == 553) _hist_Ups1_Rho0->fill(xp,weight/beta); else _hist_Ups4_Rho0->fill(xp,weight/beta); ++nRho0; } else if (id == 313) { if (parentId == 553) _hist_Ups1_KStar0->fill(xp,weight/beta); else _hist_Ups4_KStar0->fill(xp,weight/beta); ++nKStar0; } else if (id == 223) { if (parentId == 553) _hist_Ups1_Omega->fill(xp,weight/beta); ++nOmega; } else if (id == 323) { if (parentId == 553) _hist_Ups1_KStarPlus->fill(xp,weight/beta); else _hist_Ups4_KStarPlus->fill(xp,weight/beta); ++nKStarPlus; } else if (id == 333) { ++nPhi; } } if (parentId == 553) { _mult_Ups1_Omega ->fill(9.46,weight*nOmega ); _mult_Ups1_Rho0 ->fill(9.46,weight*nRho0 ); _mult_Ups1_KStar0 ->fill(9.46,weight*nKStar0 ); _mult_Ups1_KStarPlus->fill(9.46,weight*nKStarPlus); _mult_Ups1_Phi ->fill(9.46,weight*nPhi ); } else { _mult_Ups4_Omega ->fill(10.58,weight*nOmega ); _mult_Ups4_Rho0 ->fill(10.58,weight*nRho0 ); _mult_Ups4_KStar0 ->fill(10.58,weight*nKStar0 ); _mult_Ups4_KStarPlus->fill(10.58,weight*nKStarPlus); _mult_Ups4_Phi ->fill(10.58,weight*nPhi ); } } } } void finalize() { if (_weightSum_cont > 0.) { /// @todo Replace with Counters and fill one-point Scatters at the end scale(_mult_cont_Omega , 1./_weightSum_cont); scale(_mult_cont_Rho0 , 1./_weightSum_cont); scale(_mult_cont_KStar0 , 1./_weightSum_cont); scale(_mult_cont_KStarPlus, 1./_weightSum_cont); scale(_mult_cont_Phi , 1./_weightSum_cont); scale(_hist_cont_KStarPlus, 1./_weightSum_cont); scale(_hist_cont_KStar0 , 1./_weightSum_cont); scale(_hist_cont_Rho0 , 1./_weightSum_cont); scale(_hist_cont_Omega , 1./_weightSum_cont); } if (_weightSum_Ups1 > 0.) { /// @todo Replace with Counters and fill one-point Scatters at the end scale(_mult_Ups1_Omega , 1./_weightSum_Ups1); scale(_mult_Ups1_Rho0 , 1./_weightSum_Ups1); scale(_mult_Ups1_KStar0 , 1./_weightSum_Ups1); scale(_mult_Ups1_KStarPlus, 1./_weightSum_Ups1); scale(_mult_Ups1_Phi , 1./_weightSum_Ups1); scale(_hist_Ups1_KStarPlus, 1./_weightSum_Ups1); scale(_hist_Ups1_KStar0 , 1./_weightSum_Ups1); scale(_hist_Ups1_Rho0 , 1./_weightSum_Ups1); scale(_hist_Ups1_Omega , 1./_weightSum_Ups1); } if (_weightSum_Ups4 > 0.) { /// @todo Replace with Counters and fill one-point Scatters at the end scale(_mult_Ups4_Omega , 1./_weightSum_Ups4); scale(_mult_Ups4_Rho0 , 1./_weightSum_Ups4); scale(_mult_Ups4_KStar0 , 1./_weightSum_Ups4); scale(_mult_Ups4_KStarPlus, 1./_weightSum_Ups4); scale(_mult_Ups4_Phi , 1./_weightSum_Ups4); scale(_hist_Ups4_KStarPlus, 1./_weightSum_Ups4); scale(_hist_Ups4_KStar0 , 1./_weightSum_Ups4); scale(_hist_Ups4_Rho0 , 1./_weightSum_Ups4); } } private: //@{ Histo1DPtr _mult_cont_Omega, _mult_cont_Rho0, _mult_cont_KStar0, _mult_cont_KStarPlus, _mult_cont_Phi; Histo1DPtr _mult_Ups1_Omega, _mult_Ups1_Rho0, _mult_Ups1_KStar0, _mult_Ups1_KStarPlus, _mult_Ups1_Phi; Histo1DPtr _mult_Ups4_Omega, _mult_Ups4_Rho0, _mult_Ups4_KStar0, _mult_Ups4_KStarPlus, _mult_Ups4_Phi; Histo1DPtr _hist_cont_KStarPlus, _hist_Ups1_KStarPlus, _hist_Ups4_KStarPlus; Histo1DPtr _hist_cont_KStar0, _hist_Ups1_KStar0, _hist_Ups4_KStar0 ; Histo1DPtr _hist_cont_Rho0, _hist_Ups1_Rho0, _hist_Ups4_Rho0; Histo1DPtr _hist_cont_Omega, _hist_Ups1_Omega; double _weightSum_cont,_weightSum_Ups1,_weightSum_Ups4; //@} void findDecayProducts(const GenParticle* p, Particles& unstable) { const GenVertex* dv = p->end_vertex(); /// @todo Use better looping for (GenVertex::particles_out_const_iterator pp = dv->particles_out_const_begin(); pp != dv->particles_out_const_end(); ++pp) { int id = abs((*pp)->pdg_id()); if (id == 113 || id == 313 || id == 323 || id == 333 || id == 223 ) { unstable.push_back(Particle(*pp)); } else if ((*pp)->end_vertex()) findDecayProducts(*pp, unstable); } } }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(ARGUS_1993_S2789213); } diff --git a/analyses/pluginMisc/BABAR_2003_I593379.cc b/analyses/pluginMisc/BABAR_2003_I593379.cc --- a/analyses/pluginMisc/BABAR_2003_I593379.cc +++ b/analyses/pluginMisc/BABAR_2003_I593379.cc @@ -1,186 +1,186 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/Beam.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief Babar charmonium spectra /// @author Peter Richardson class BABAR_2003_I593379 : public Analysis { public: BABAR_2003_I593379() : Analysis("BABAR_2003_I593379"), _weightSum(0.) { } void analyze(const Event& e) { const double weight = e.weight(); // Find the charmonia Particles upsilons; // First in unstable final state - const UnstableFinalState& ufs = apply(e, "UFS"); + const UnstableParticles& ufs = apply(e, "UFS"); foreach (const Particle& p, ufs.particles()) if (p.pid() == 300553) upsilons.push_back(p); // Then in whole event if fails if (upsilons.empty()) { foreach (const GenParticle* p, Rivet::particles(e.genEvent())) { if (p->pdg_id() != 300553) continue; const GenVertex* pv = p->production_vertex(); bool passed = true; if (pv) { foreach (const GenParticle* pp, particles_in(pv)) { if ( p->pdg_id() == pp->pdg_id() ) { passed = false; break; } } } if (passed) upsilons.push_back(Particle(*p)); } } // Find upsilons foreach (const Particle& p, upsilons) { _weightSum += weight; // Find the charmonium resonances /// @todo Use Rivet::Particles vector allJpsi, primaryJpsi, Psiprime, all_chi_c1, all_chi_c2, primary_chi_c1, primary_chi_c2; findDecayProducts(p.genParticle(), allJpsi, primaryJpsi, Psiprime, all_chi_c1, all_chi_c2, primary_chi_c1, primary_chi_c2); const LorentzTransform cms_boost = LorentzTransform::mkFrameTransformFromBeta(p.mom().betaVec()); for (size_t i = 0; i < allJpsi.size(); i++) { const double pcm = cms_boost.transform(FourMomentum(allJpsi[i]->momentum())).p(); _hist_all_Jpsi->fill(pcm, weight); } _mult_JPsi->fill(10.58, weight*double(allJpsi.size())); for (size_t i = 0; i < primaryJpsi.size(); i++) { const double pcm = cms_boost.transform(FourMomentum(primaryJpsi[i]->momentum())).p(); _hist_primary_Jpsi->fill(pcm, weight); } _mult_JPsi_direct->fill(10.58, weight*double(primaryJpsi.size())); for (size_t i=0; imomentum())).p(); _hist_Psi_prime->fill(pcm, weight); } _mult_Psi2S->fill(10.58, weight*double(Psiprime.size())); for (size_t i = 0; i < all_chi_c1.size(); i++) { const double pcm = cms_boost.transform(FourMomentum(all_chi_c1[i]->momentum())).p(); _hist_chi_c1->fill(pcm, weight); } _mult_chi_c1->fill(10.58, weight*double(all_chi_c1.size())); _mult_chi_c1_direct->fill(10.58, weight*double(primary_chi_c1.size())); for (size_t i = 0; i < all_chi_c2.size(); i++) { const double pcm = cms_boost.transform(FourMomentum(all_chi_c2[i]->momentum())).p(); _hist_chi_c2->fill(pcm, weight); } _mult_chi_c2->fill(10.58, weight*double(all_chi_c2.size())); _mult_chi_c2_direct->fill(10.58, weight*double(primary_chi_c2.size())); } } // analyze void finalize() { scale(_hist_all_Jpsi , 0.5*0.1/_weightSum); scale(_hist_chi_c1 , 0.5*0.1/_weightSum); scale(_hist_chi_c2 , 0.5*0.1/_weightSum); scale(_hist_Psi_prime , 0.5*0.1/_weightSum); scale(_hist_primary_Jpsi , 0.5*0.1/_weightSum); scale(_mult_JPsi , 0.5*100./_weightSum); scale(_mult_JPsi_direct , 0.5*100./_weightSum); scale(_mult_chi_c1 , 0.5*100./_weightSum); scale(_mult_chi_c1_direct, 0.5*100./_weightSum); scale(_mult_chi_c2 , 0.5*100./_weightSum); scale(_mult_chi_c2_direct, 0.5*100./_weightSum); scale(_mult_Psi2S , 0.5*100./_weightSum); } // finalize void init() { - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); _mult_JPsi = bookHisto1D(1, 1, 1); _mult_JPsi_direct = bookHisto1D(1, 1, 2); _mult_chi_c1 = bookHisto1D(1, 1, 3); _mult_chi_c1_direct = bookHisto1D(1, 1, 4); _mult_chi_c2 = bookHisto1D(1, 1, 5); _mult_chi_c2_direct = bookHisto1D(1, 1, 6); _mult_Psi2S = bookHisto1D(1, 1, 7); _hist_all_Jpsi = bookHisto1D(6, 1, 1); _hist_chi_c1 = bookHisto1D(7, 1, 1); _hist_chi_c2 = bookHisto1D(7, 1, 2); _hist_Psi_prime = bookHisto1D(8, 1, 1); _hist_primary_Jpsi = bookHisto1D(10, 1, 1); } // init private: //@{ // count of weights double _weightSum; /// Histograms Histo1DPtr _hist_all_Jpsi; Histo1DPtr _hist_chi_c1; Histo1DPtr _hist_chi_c2; Histo1DPtr _hist_Psi_prime; Histo1DPtr _hist_primary_Jpsi; Histo1DPtr _mult_JPsi; Histo1DPtr _mult_JPsi_direct; Histo1DPtr _mult_chi_c1; Histo1DPtr _mult_chi_c1_direct; Histo1DPtr _mult_chi_c2; Histo1DPtr _mult_chi_c2_direct; Histo1DPtr _mult_Psi2S; //@} void findDecayProducts(const GenParticle* p, vector& allJpsi, vector& primaryJpsi, vector& Psiprime, vector& all_chi_c1, vector& all_chi_c2, vector& primary_chi_c1, vector& primary_chi_c2) { const GenVertex* dv = p->end_vertex(); bool isOnium = false; /// @todo Use better looping for (GenVertex::particles_in_const_iterator pp = dv->particles_in_const_begin() ; pp != dv->particles_in_const_end() ; ++pp) { int id = (*pp)->pdg_id(); id = id%1000; id -= id%10; id /= 10; if (id==44) isOnium = true; } /// @todo Use better looping for (GenVertex::particles_out_const_iterator pp = dv->particles_out_const_begin(); pp != dv->particles_out_const_end(); ++pp) { int id = (*pp)->pdg_id(); if (id==100443) { Psiprime.push_back(*pp); } else if (id==20443) { all_chi_c1.push_back(*pp); if (!isOnium) primary_chi_c1.push_back(*pp); } else if (id==445) { all_chi_c2.push_back(*pp); if (!isOnium) primary_chi_c2.push_back(*pp); } else if (id==443) { allJpsi.push_back(*pp); if (!isOnium) primaryJpsi.push_back(*pp); } if ((*pp)->end_vertex()) { findDecayProducts(*pp, allJpsi, primaryJpsi, Psiprime, all_chi_c1, all_chi_c2, primary_chi_c1, primary_chi_c2); } } } }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(BABAR_2003_I593379); } diff --git a/analyses/pluginMisc/BABAR_2005_S6181155.cc b/analyses/pluginMisc/BABAR_2005_S6181155.cc --- a/analyses/pluginMisc/BABAR_2005_S6181155.cc +++ b/analyses/pluginMisc/BABAR_2005_S6181155.cc @@ -1,145 +1,145 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/Beam.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief BABAR Xi_c baryons from fragmentation /// @author Peter Richardson class BABAR_2005_S6181155 : public Analysis { public: BABAR_2005_S6181155() : Analysis("BABAR_2005_S6181155") { } void init() { declare(Beam(), "Beams"); - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); _histOnResonanceA = bookHisto1D(1,1,1); _histOnResonanceB = bookHisto1D(2,1,1); _histOffResonance = bookHisto1D(2,1,2); _sigma = bookHisto1D(3,1,1); _histOnResonanceA_norm = bookHisto1D(4,1,1); _histOnResonanceB_norm = bookHisto1D(5,1,1); _histOffResonance_norm = bookHisto1D(5,1,2); } void analyze(const Event& e) { const double weight = e.weight(); // Loop through unstable FS particles and look for charmed mesons/baryons - const UnstableFinalState& ufs = apply(e, "UFS"); + const UnstableParticles& ufs = apply(e, "UFS"); const Beam beamproj = apply(e, "Beams"); const ParticlePair& beams = beamproj.beams(); const FourMomentum mom_tot = beams.first.momentum() + beams.second.momentum(); const LorentzTransform cms_boost = LorentzTransform::mkFrameTransformFromBeta(mom_tot.betaVec()); const double s = sqr(beamproj.sqrtS()); const bool onresonance = fuzzyEquals(beamproj.sqrtS()/GeV, 10.58, 2E-3); foreach (const Particle& p, ufs.particles()) { // 3-momentum in CMS frame const double mom = cms_boost.transform(p.momentum()).vector3().mod(); // Only looking at Xi_c^0 if (p.abspid() != 4132 ) continue; if (onresonance) { _histOnResonanceA_norm->fill(mom,weight); _histOnResonanceB_norm->fill(mom,weight); } else { _histOffResonance_norm->fill(mom,s/sqr(10.58)*weight); } MSG_DEBUG("mom = " << mom); // off-resonance cross section if (checkDecay(p.genParticle())) { if (onresonance) { _histOnResonanceA->fill(mom,weight); _histOnResonanceB->fill(mom,weight); } else { _histOffResonance->fill(mom,s/sqr(10.58)*weight); _sigma->fill(10.6,weight); } } } } void finalize() { scale(_histOnResonanceA, crossSection()/femtobarn/sumOfWeights()); scale(_histOnResonanceB, crossSection()/femtobarn/sumOfWeights()); scale(_histOffResonance, crossSection()/femtobarn/sumOfWeights()); scale(_sigma , crossSection()/femtobarn/sumOfWeights()); normalize(_histOnResonanceA_norm); normalize(_histOnResonanceB_norm); normalize(_histOffResonance_norm); } private: //@{ /// Histograms Histo1DPtr _histOnResonanceA; Histo1DPtr _histOnResonanceB; Histo1DPtr _histOffResonance; Histo1DPtr _sigma ; Histo1DPtr _histOnResonanceA_norm; Histo1DPtr _histOnResonanceB_norm; Histo1DPtr _histOffResonance_norm; //@} bool checkDecay(const GenParticle* p) { unsigned int nstable = 0, npip = 0, npim = 0; unsigned int nXim = 0, nXip = 0; findDecayProducts(p, nstable, npip, npim, nXip, nXim); int id = p->pdg_id(); // Xi_c if (id == 4132) { if (nstable == 2 && nXim == 1 && npip == 1) return true; } else if (id == -4132) { if (nstable == 2 && nXip == 1 && npim == 1) return true; } return false; } void findDecayProducts(const GenParticle* p, unsigned int& nstable, unsigned int& npip, unsigned int& npim, unsigned int& nXip, unsigned int& nXim) { const GenVertex* dv = p->end_vertex(); /// @todo Use better looping for (GenVertex::particles_out_const_iterator pp = dv->particles_out_const_begin(); pp != dv->particles_out_const_end(); ++pp) { int id = (*pp)->pdg_id(); if (id==3312) { ++nXim; ++nstable; } else if (id == -3312) { ++nXip; ++nstable; } else if(id == 111 || id == 221) { ++nstable; } else if ((*pp)->end_vertex()) { findDecayProducts(*pp, nstable, npip, npim, nXip, nXim); } else { if (id != 22) ++nstable; if (id == 211) ++npip; else if(id == -211) ++npim; } } } }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(BABAR_2005_S6181155); } diff --git a/analyses/pluginMisc/BABAR_2007_S6895344.cc b/analyses/pluginMisc/BABAR_2007_S6895344.cc --- a/analyses/pluginMisc/BABAR_2007_S6895344.cc +++ b/analyses/pluginMisc/BABAR_2007_S6895344.cc @@ -1,86 +1,86 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/Beam.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief BABAR Lambda_c from fragmentation /// @author Peter Richardson class BABAR_2007_S6895344 : public Analysis { public: BABAR_2007_S6895344() : Analysis("BABAR_2007_S6895344") { } void init() { declare(Beam(), "Beams"); - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); _histOff = bookHisto1D(1,1,1); _sigmaOff = bookHisto1D(2,1,1); _histOn = bookHisto1D(3,1,1); _sigmaOn = bookHisto1D(4,1,1); } void analyze(const Event& e) { const double weight = e.weight(); // Loop through unstable FS particles and look for charmed mesons/baryons - const UnstableFinalState& ufs = apply(e, "UFS"); + const UnstableParticles& ufs = apply(e, "UFS"); const Beam beamproj = apply(e, "Beams"); const ParticlePair& beams = beamproj.beams(); const FourMomentum mom_tot = beams.first.momentum() + beams.second.momentum(); const LorentzTransform cms_boost = LorentzTransform::mkFrameTransformFromBeta(mom_tot.betaVec()); const double s = sqr(beamproj.sqrtS()); const bool onresonance = fuzzyEquals(beamproj.sqrtS(), 10.58, 2E-3); // Particle masses from PDGlive (accessed online 16. Nov. 2009). foreach (const Particle& p, ufs.particles()) { // Only looking at Lambda_c if (p.abspid() != 4122) continue; MSG_DEBUG("Lambda_c found"); const double mH2 = 5.22780; // 2.28646^2 const double mom = FourMomentum(cms_boost.transform(p.momentum())).p(); const double xp = mom/sqrt(s/4.0 - mH2); if (onresonance) { _histOn ->fill(xp,weight); _sigmaOn ->fill(10.58, weight); } else { _histOff ->fill(xp,weight); _sigmaOff->fill(10.54, weight); } } } void finalize() { scale(_sigmaOn , 1./sumOfWeights()); scale(_sigmaOff, 1./sumOfWeights()); scale(_histOn , 1./sumOfWeights()); scale(_histOff , 1./sumOfWeights()); } private: //@{ // Histograms for the continuum cross sections Histo1DPtr _sigmaOn ; Histo1DPtr _sigmaOff; Histo1DPtr _histOn ; Histo1DPtr _histOff ; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(BABAR_2007_S6895344); } diff --git a/analyses/pluginMisc/BABAR_2007_S7266081.cc b/analyses/pluginMisc/BABAR_2007_S7266081.cc --- a/analyses/pluginMisc/BABAR_2007_S7266081.cc +++ b/analyses/pluginMisc/BABAR_2007_S7266081.cc @@ -1,174 +1,174 @@ // -*- C++ -*- #include #include "Rivet/Analysis.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief BABAR tau lepton to three charged hadrons /// @author Peter Richardson class BABAR_2007_S7266081 : public Analysis { public: BABAR_2007_S7266081() : Analysis("BABAR_2007_S7266081"), _weight_total(0), _weight_pipipi(0), _weight_Kpipi(0), _weight_KpiK(0), _weight_KKK(0) { } void init() { - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); _hist_pipipi_pipipi = bookHisto1D( 1, 1, 1); _hist_pipipi_pipi = bookHisto1D( 2, 1, 1); _hist_Kpipi_Kpipi = bookHisto1D( 3, 1, 1); _hist_Kpipi_Kpi = bookHisto1D( 4, 1, 1); _hist_Kpipi_pipi = bookHisto1D( 5, 1, 1); _hist_KpiK_KpiK = bookHisto1D( 6, 1, 1); _hist_KpiK_KK = bookHisto1D( 7, 1, 1); _hist_KpiK_piK = bookHisto1D( 8, 1, 1); _hist_KKK_KKK = bookHisto1D( 9, 1, 1); _hist_KKK_KK = bookHisto1D(10, 1, 1); } void analyze(const Event& e) { double weight = e.weight(); // Find the taus Particles taus; - foreach(const Particle& p, apply(e, "UFS").particles(Cuts::pid==PID::TAU)) { + foreach(const Particle& p, apply(e, "UFS").particles(Cuts::pid==PID::TAU)) { _weight_total += weight; Particles pip, pim, Kp, Km; unsigned int nstable = 0; // Find the decay products we want findDecayProducts(p, nstable, pip, pim, Kp, Km); if (p.pid() < 0) { swap(pip, pim); swap(Kp, Km ); } if (nstable != 4) continue; // pipipi if (pim.size() == 2 && pip.size() == 1) { _weight_pipipi += weight; _hist_pipipi_pipipi-> fill((pip[0].momentum()+pim[0].momentum()+pim[1].momentum()).mass(), weight); _hist_pipipi_pipi-> fill((pip[0].momentum()+pim[0].momentum()).mass(), weight); _hist_pipipi_pipi-> fill((pip[0].momentum()+pim[1].momentum()).mass(), weight); } else if (pim.size() == 1 && pip.size() == 1 && Km.size() == 1) { _weight_Kpipi += weight; _hist_Kpipi_Kpipi-> fill((pim[0].momentum()+pip[0].momentum()+Km[0].momentum()).mass(), weight); _hist_Kpipi_Kpi-> fill((pip[0].momentum()+Km[0].momentum()).mass(), weight); _hist_Kpipi_pipi-> fill((pim[0].momentum()+pip[0].momentum()).mass(), weight); } else if (Kp.size() == 1 && Km.size() == 1 && pim.size() == 1) { _weight_KpiK += weight; _hist_KpiK_KpiK-> fill((Kp[0].momentum()+Km[0].momentum()+pim[0].momentum()).mass(), weight); _hist_KpiK_KK-> fill((Kp[0].momentum()+Km[0].momentum()).mass(), weight); _hist_KpiK_piK-> fill((Kp[0].momentum()+pim[0].momentum()).mass(), weight); } else if (Kp.size() == 1 && Km.size() == 2) { _weight_KKK += weight; _hist_KKK_KKK-> fill((Kp[0].momentum()+Km[0].momentum()+Km[1].momentum()).mass(), weight); _hist_KKK_KK-> fill((Kp[0].momentum()+Km[0].momentum()).mass(), weight); _hist_KKK_KK-> fill((Kp[0].momentum()+Km[1].momentum()).mass(), weight); } } } void finalize() { if (_weight_pipipi > 0.) { scale(_hist_pipipi_pipipi, 1.0/_weight_pipipi); scale(_hist_pipipi_pipi , 0.5/_weight_pipipi); } if (_weight_Kpipi > 0.) { scale(_hist_Kpipi_Kpipi , 1.0/_weight_Kpipi); scale(_hist_Kpipi_Kpi , 1.0/_weight_Kpipi); scale(_hist_Kpipi_pipi , 1.0/_weight_Kpipi); } if (_weight_KpiK > 0.) { scale(_hist_KpiK_KpiK , 1.0/_weight_KpiK); scale(_hist_KpiK_KK , 1.0/_weight_KpiK); scale(_hist_KpiK_piK , 1.0/_weight_KpiK); } if (_weight_KKK > 0.) { scale(_hist_KKK_KKK , 1.0/_weight_KKK); scale(_hist_KKK_KK , 0.5/_weight_KKK); } /// @note Using autobooking for these scatters since their x values are not really obtainable from the MC data bookScatter2D(11, 1, 1, true)->point(0).setY(100*_weight_pipipi/_weight_total, 100*sqrt(_weight_pipipi)/_weight_total); bookScatter2D(12, 1, 1, true)->point(0).setY(100*_weight_Kpipi/_weight_total, 100*sqrt(_weight_Kpipi)/_weight_total); bookScatter2D(13, 1, 1, true)->point(0).setY(100*_weight_KpiK/_weight_total, 100*sqrt(_weight_KpiK)/_weight_total); bookScatter2D(14, 1, 1, true)->point(0).setY(100*_weight_KKK/_weight_total, 100*sqrt(_weight_KKK)/_weight_total); } private: //@{ // Histograms Histo1DPtr _hist_pipipi_pipipi, _hist_pipipi_pipi; Histo1DPtr _hist_Kpipi_Kpipi, _hist_Kpipi_Kpi, _hist_Kpipi_pipi; Histo1DPtr _hist_KpiK_KpiK, _hist_KpiK_KK, _hist_KpiK_piK; Histo1DPtr _hist_KKK_KKK, _hist_KKK_KK; // Weights counters double _weight_total, _weight_pipipi, _weight_Kpipi, _weight_KpiK, _weight_KKK; //@} void findDecayProducts(const Particle &mother, unsigned int & nstable, Particles& pip, Particles& pim, Particles& Kp, Particles& Km) { for (const Particle &p : mother.children()) { long id = p.pdgId(); if (id == PID::PI0 ) ++nstable; else if (id == PID::K0S) ++nstable; else if (id == PID::PIPLUS) { pip.push_back(p); ++nstable; } else if (id == PID::PIMINUS) { pim.push_back(p); ++nstable; } else if (id == PID::KPLUS) { Kp.push_back(p); ++nstable; } else if (id == PID::KMINUS) { Km.push_back(p); ++nstable; } else if (!p.children().empty()) { findDecayProducts(p, nstable, pip, pim, Kp, Km); } else ++nstable; } } }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(BABAR_2007_S7266081); } diff --git a/analyses/pluginMisc/BABAR_2013_I1116411.cc b/analyses/pluginMisc/BABAR_2013_I1116411.cc --- a/analyses/pluginMisc/BABAR_2013_I1116411.cc +++ b/analyses/pluginMisc/BABAR_2013_I1116411.cc @@ -1,84 +1,84 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief Add a short analysis description here class BABAR_2013_I1116411 : public Analysis { public: /// Constructor DEFAULT_RIVET_ANALYSIS_CTOR(BABAR_2013_I1116411); /// @name Analysis methods //@{ /// Book histograms and initialise projections before the run void init() { // Initialise and register projections - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); // Book histograms _h_q2 = bookHisto1D(1, 1, 1); } // Calculate the Q2 using mother and daughter charged lepton double q2(const Particle& B) { const Particle chlept = filter_select(B.children(), Cuts::pid==PID::POSITRON || Cuts::pid==PID::ANTIMUON)[0]; FourMomentum q = B.mom() - chlept.mom(); return q*q; } // Check for explicit decay into pdgids bool isSemileptonicDecay(const Particle& mother, vector ids) { // Trivial check to ignore any other decays but the one in question modulo photons const Particles children = mother.children(Cuts::pid!=PID::PHOTON); if (children.size()!=ids.size()) return false; // Check for the explicit decay return all(ids, [&](int i){return count(children, hasPID(i))==1;}); } /// Perform the per-event analysis void analyze(const Event& event) { // Get B+ Mesons - foreach(const Particle& p, apply(event, "UFS").particles(Cuts::pid==PID::BPLUS)) { + foreach(const Particle& p, apply(event, "UFS").particles(Cuts::pid==PID::BPLUS)) { if (isSemileptonicDecay(p, {PID::OMEGA, PID::POSITRON, PID::NU_E}) || isSemileptonicDecay(p, {PID::OMEGA, PID::ANTIMUON, PID::NU_MU})) { _h_q2->fill(q2(p), event.weight()); } } } /// Normalise histograms etc., after the run void finalize() { normalize(_h_q2, 1.21); // normalize to BF } //@} private: /// @name Histograms //@{ Histo1DPtr _h_q2; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(BABAR_2013_I1116411); } diff --git a/analyses/pluginMisc/BABAR_2015_I1334693.cc b/analyses/pluginMisc/BABAR_2015_I1334693.cc --- a/analyses/pluginMisc/BABAR_2015_I1334693.cc +++ b/analyses/pluginMisc/BABAR_2015_I1334693.cc @@ -1,83 +1,83 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief Add a short analysis description here class BABAR_2015_I1334693 : public Analysis { public: /// Constructor DEFAULT_RIVET_ANALYSIS_CTOR(BABAR_2015_I1334693); /// @name Analysis methods //@{ /// Book histograms and initialise projections before the run void init() { // Initialise and register projections - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); // Book histograms _h_q2 = bookHisto1D(1, 1, 1); } // Calculate the Q2 using mother and daugher meson double q2(const Particle& B, int mesonID) { FourMomentum q = B.mom() - filter_select(B.children(), Cuts::pid==mesonID)[0]; return q*q; } // Check for explicit decay into pdgids bool isSemileptonicDecay(const Particle& mother, vector ids) { // Trivial check to ignore any other decays but the one in question modulo photons const Particles children = mother.children(Cuts::pid!=PID::PHOTON); if (children.size()!=ids.size()) return false; // Check for the explicit decay return all(ids, [&](int i){return count(children, hasPID(i))==1;}); } /// Perform the per-event analysis void analyze(const Event& event) { // Loop over D0 mesons - foreach(const Particle& p, apply(event, "UFS").particles(Cuts::pid==PID::D0)) { + foreach(const Particle& p, apply(event, "UFS").particles(Cuts::pid==PID::D0)) { if (isSemileptonicDecay(p, {PID::PIMINUS, PID::POSITRON, PID::NU_E})) { _h_q2->fill(q2(p, PID::PIMINUS), event.weight()); } } } /// Normalise histograms etc., after the run void finalize() { normalize(_h_q2, 375.4); // normalize to data } //@} private: /// @name Histograms //@{ Histo1DPtr _h_q2; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(BABAR_2015_I1334693); } diff --git a/analyses/pluginMisc/BELLE_2001_S4598261.cc b/analyses/pluginMisc/BELLE_2001_S4598261.cc --- a/analyses/pluginMisc/BELLE_2001_S4598261.cc +++ b/analyses/pluginMisc/BELLE_2001_S4598261.cc @@ -1,106 +1,106 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/Beam.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief BELLE pi0 spectrum at Upsilon(4S) /// @author Peter Richardson class BELLE_2001_S4598261 : public Analysis { public: BELLE_2001_S4598261() : Analysis("BELLE_2001_S4598261"), _weightSum(0.) { } void init() { - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); _histdSigDp = bookHisto1D(1, 1, 1); // spectrum _histMult = bookHisto1D(2, 1, 1); // multiplicity } void analyze(const Event& e) { const double weight = e.weight(); // Find the upsilons Particles upsilons; // First in unstable final state - const UnstableFinalState& ufs = apply(e, "UFS"); + const UnstableParticles& ufs = apply(e, "UFS"); foreach (const Particle& p, ufs.particles()) if (p.pid()==300553) upsilons.push_back(p); // Then in whole event if fails if (upsilons.empty()) { foreach (const GenParticle* p, Rivet::particles(e.genEvent())) { if (p->pdg_id() != 300553) continue; const GenVertex* pv = p->production_vertex(); bool passed = true; if (pv) { /// @todo Use better looping for (GenVertex::particles_in_const_iterator pp = pv->particles_in_const_begin() ; pp != pv->particles_in_const_end() ; ++pp) { if ( p->pdg_id() == (*pp)->pdg_id() ) { passed = false; break; } } } if (passed) upsilons.push_back(Particle(p)); } } // Find upsilons foreach (const Particle& p, upsilons) { _weightSum += weight; // Find the neutral pions from the decay vector pions; findDecayProducts(p.genParticle(), pions); const LorentzTransform cms_boost = LorentzTransform::mkFrameTransformFromBeta(p.momentum().betaVec()); for (size_t ix=0; ixmomentum())).p(); _histdSigDp->fill(pcm,weight); } _histMult->fill(0., pions.size()*weight); } } void finalize() { scale(_histdSigDp, 1./_weightSum); scale(_histMult , 1./_weightSum); } private: //@{ // count of weights double _weightSum; /// Histograms Histo1DPtr _histdSigDp; Histo1DPtr _histMult; //@} void findDecayProducts(const GenParticle* p, vector& pions) { const GenVertex* dv = p->end_vertex(); /// @todo Use better looping for (GenVertex::particles_out_const_iterator pp = dv->particles_out_const_begin(); pp != dv->particles_out_const_end(); ++pp) { const int id = (*pp)->pdg_id(); if (id == 111) { pions.push_back(*pp); } else if ((*pp)->end_vertex()) findDecayProducts(*pp, pions); } } }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(BELLE_2001_S4598261); } diff --git a/analyses/pluginMisc/BELLE_2008_I786560.cc b/analyses/pluginMisc/BELLE_2008_I786560.cc --- a/analyses/pluginMisc/BELLE_2008_I786560.cc +++ b/analyses/pluginMisc/BELLE_2008_I786560.cc @@ -1,104 +1,104 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief BELLE tau lepton to pi pi /// @author Peter Richardson class BELLE_2008_I786560 : public Analysis { public: BELLE_2008_I786560() : Analysis("BELLE_2008_I786560"), _weight_total(0), _weight_pipi(0) { } void init() { - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); _hist_pipi = bookHisto1D( 1, 1, 1); } void analyze(const Event& e) { // Find the taus Particles taus; - const UnstableFinalState& ufs = apply(e, "UFS"); + const UnstableParticles& ufs = apply(e, "UFS"); foreach (const Particle& p, ufs.particles()) { if (p.abspid() != PID::TAU) continue; _weight_total += 1.; Particles pip, pim, pi0; unsigned int nstable = 0; // find the decay products we want findDecayProducts(p, nstable, pip, pim, pi0); if (p.pid() < 0) { swap(pip, pim); } if (nstable != 3) continue; // pipi if (pim.size() == 1 && pi0.size() == 1) { _weight_pipi += 1.; _hist_pipi->fill((pi0[0].momentum()+pim[0].momentum()).mass2(),1.); } } } void finalize() { if (_weight_pipi > 0.) scale(_hist_pipi, 1./_weight_pipi); } private: //@{ // Histograms Histo1DPtr _hist_pipi; // Weights counters double _weight_total, _weight_pipi; //@} void findDecayProducts(const Particle &mother, unsigned int & nstable, Particles& pip, Particles& pim, Particles& pi0) { for (const Particle &p : mother.children()) { long id = p.pdgId(); if (id == PID::PI0 ) { pi0.push_back(p); ++nstable; } else if (id == PID::K0S) ++nstable; else if (id == PID::PIPLUS) { pip.push_back(p); ++nstable; } else if (id == PID::PIMINUS) { pim.push_back(p); ++nstable; } else if (id == PID::KPLUS) { ++nstable; } else if (id == PID::KMINUS) { ++nstable; } else if (!p.children().empty()) { findDecayProducts(p, nstable, pip, pim, pi0); } else ++nstable; } } }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(BELLE_2008_I786560); } diff --git a/analyses/pluginMisc/BELLE_2011_I878990.cc b/analyses/pluginMisc/BELLE_2011_I878990.cc --- a/analyses/pluginMisc/BELLE_2011_I878990.cc +++ b/analyses/pluginMisc/BELLE_2011_I878990.cc @@ -1,82 +1,82 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief Add a short analysis description here class BELLE_2011_I878990 : public Analysis { public: /// Constructor DEFAULT_RIVET_ANALYSIS_CTOR(BELLE_2011_I878990); /// @name Analysis methods //@{ /// Book histograms and initialise projections before the run void init() { // Initialise and register projections - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); // Book histograms _h_q2 = bookHisto1D(1, 1, 1); } // Calculate the Q2 using mother and daugher meson double q2(const Particle& B, int mesonID) { FourMomentum q = B.mom() - filter_select(B.children(), Cuts::pid==mesonID)[0]; return q*q; } // Check for explicit decay into pdgids bool isSemileptonicDecay(const Particle& mother, vector ids) { // Trivial check to ignore any other decays but the one in question modulo photons const Particles children = mother.children(Cuts::pid!=PID::PHOTON); if (children.size()!=ids.size()) return false; // Check for the explicit decay return all(ids, [&](int i){return count(children, hasPID(i))==1;}); } /// Perform the per-event analysis void analyze(const Event& event) { // Loop over B0 mesons - foreach(const Particle& p, apply(event, "UFS").particles(Cuts::pid==PID::B0)) { + foreach(const Particle& p, apply(event, "UFS").particles(Cuts::pid==PID::B0)) { if (isSemileptonicDecay(p, {PID::PIMINUS, PID::POSITRON, PID::NU_E}) || isSemileptonicDecay(p, {PID::PIMINUS, PID::ANTIMUON, PID::NU_MU})) { _h_q2->fill(q2(p, PID::PIMINUS), event.weight()); } } } /// Normalise histograms etc., after the run void finalize() { normalize(_h_q2, 3000.86); // normalize to BF*dQ2 } //@} private: /// @name Histograms //@{ Histo1DPtr _h_q2; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(BELLE_2011_I878990); } diff --git a/analyses/pluginMisc/BELLE_2013_I1238273.cc b/analyses/pluginMisc/BELLE_2013_I1238273.cc --- a/analyses/pluginMisc/BELLE_2013_I1238273.cc +++ b/analyses/pluginMisc/BELLE_2013_I1238273.cc @@ -1,114 +1,114 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief Add a short analysis description here class BELLE_2013_I1238273 : public Analysis { public: /// Constructor DEFAULT_RIVET_ANALYSIS_CTOR(BELLE_2013_I1238273); /// @name Analysis methods //@{ /// Book histograms and initialise projections before the run void init() { // Initialise and register projections - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); // Book histograms _h_q2_B0bar_pi = bookHisto1D(1, 1, 1); _h_q2_B0bar_rho = bookHisto1D(3, 1, 1); _h_q2_Bminus_pi = bookHisto1D(2, 1, 1); _h_q2_Bminus_rho = bookHisto1D(4, 1, 1); _h_q2_Bminus_omega = bookHisto1D(5, 1, 1); } // Calculate the Q2 using mother and daugher meson double q2(const Particle& B, int mesonID) { FourMomentum q = B.mom() - filter_select(B.children(), Cuts::pid==mesonID)[0]; return q*q; } // Check for explicit decay into pdgids bool isSemileptonicDecay(const Particle& mother, vector ids) { // Trivial check to ignore any other decays but the one in question modulo photons const Particles children = mother.children(Cuts::pid!=PID::PHOTON); if (children.size()!=ids.size()) return false; // Check for the explicit decay return all(ids, [&](int i){return count(children, hasPID(i))==1;}); } /// Perform the per-event analysis void analyze(const Event& event) { // Loop over B0bar Mesons - foreach(const Particle& p, apply(event, "UFS").particles(Cuts::pid==PID::B0BAR)) { + foreach(const Particle& p, apply(event, "UFS").particles(Cuts::pid==PID::B0BAR)) { if (isSemileptonicDecay(p, {PID::PIPLUS, PID::ELECTRON, PID::NU_EBAR}) || isSemileptonicDecay(p, {PID::PIPLUS, PID::MUON, PID::NU_MUBAR})) { _h_q2_B0bar_pi->fill(q2(p, PID::PIPLUS), event.weight()); } if (isSemileptonicDecay(p, {PID::RHOPLUS, PID::ELECTRON, PID::NU_EBAR}) || isSemileptonicDecay(p, {PID::RHOPLUS, PID::MUON, PID::NU_MUBAR})) { _h_q2_B0bar_rho->fill(q2(p, PID::RHOPLUS), event.weight()); } } // Loop over B- Mesons - foreach(const Particle& p, apply(event, "UFS").particles(Cuts::pid==PID::BMINUS)) { + foreach(const Particle& p, apply(event, "UFS").particles(Cuts::pid==PID::BMINUS)) { if (isSemileptonicDecay(p, {PID::PI0, PID::ELECTRON, PID::NU_EBAR}) || isSemileptonicDecay(p, {PID::PI0, PID::MUON, PID::NU_MUBAR})) { _h_q2_Bminus_pi->fill(q2(p, PID::PI0), event.weight()); } if (isSemileptonicDecay(p, {PID::RHO0, PID::ELECTRON, PID::NU_EBAR}) || isSemileptonicDecay(p, {PID::RHO0, PID::MUON, PID::NU_MUBAR})) { _h_q2_Bminus_rho->fill(q2(p,PID::RHO0), event.weight()); } if (isSemileptonicDecay(p, {PID::OMEGA, PID::ELECTRON, PID::NU_EBAR}) || isSemileptonicDecay(p, {PID::OMEGA, PID::MUON, PID::NU_MUBAR})) { _h_q2_Bminus_omega->fill(q2(p, PID::OMEGA), event.weight()); } } } /// Normalise histograms etc., after the run void finalize() { normalize(_h_q2_B0bar_pi , 298.8); // normalize to BF*dQ2 normalize(_h_q2_B0bar_rho , 1304.8); // normalize to BF*dQ2 normalize(_h_q2_Bminus_pi , 324.8); // normalize to BF*dQ2 normalize(_h_q2_Bminus_rho , 367.0); // normalize to BF*dQ2 normalize(_h_q2_Bminus_omega, 793.1); // normalize to BF*dQ2 } //@} private: /// @name Histograms //@{ Histo1DPtr _h_q2_B0bar_pi ; Histo1DPtr _h_q2_B0bar_rho ; Histo1DPtr _h_q2_Bminus_pi ; Histo1DPtr _h_q2_Bminus_rho ; Histo1DPtr _h_q2_Bminus_omega; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(BELLE_2013_I1238273); } diff --git a/analyses/pluginMisc/BELLE_2015_I1397632.cc b/analyses/pluginMisc/BELLE_2015_I1397632.cc --- a/analyses/pluginMisc/BELLE_2015_I1397632.cc +++ b/analyses/pluginMisc/BELLE_2015_I1397632.cc @@ -1,98 +1,98 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief Add a short analysis description here class BELLE_2015_I1397632 : public Analysis { public: /// Constructor DEFAULT_RIVET_ANALYSIS_CTOR(BELLE_2015_I1397632); /// @name Analysis methods //@{ /// Book histograms and initialise projections before the run void init() { // Initialise and register projections - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); // Book histograms _h_B_Denu = bookHisto1D(1, 1, 1); _h_B_Dmunu = bookHisto1D(1, 1, 2); _h_B_Deplusnu = bookHisto1D(1, 1, 3); _h_B_Dmuplusnu = bookHisto1D(1, 1, 4); } // Check for explicit decay into pdgids bool isSemileptonicDecay(const Particle& mother, vector ids) { // Trivial check to ignore any other decays but the one in question modulo photons const Particles children = mother.children(Cuts::pid!=PID::PHOTON); if (children.size()!=ids.size()) return false; // Check for the explicit decay return all(ids, [&](int i){return count(children, hasPID(i))==1;}); } // Calculate the recoil w using mother and daugher meson double recoilW(const Particle& B, int mesonID) { // TODO why does that not work with const? Particle D = filter_select(B.children(), Cuts::pid==mesonID)[0]; FourMomentum q = B.mom() - D.mom(); return (B.mom()*B.mom() + D.mom()*D.mom() - q*q )/ (2. * sqrt(B.mom()*B.mom()) * sqrt(D.mom()*D.mom()) ); } /// Perform the per-event analysis void analyze(const Event& event) { // Get B0 Mesons - foreach(const Particle& p, apply(event, "UFS").particles(Cuts::pid==PID::B0)) { + foreach(const Particle& p, apply(event, "UFS").particles(Cuts::pid==PID::B0)) { if (isSemileptonicDecay(p, {PID::DMINUS,PID::POSITRON,PID::NU_E})) _h_B_Denu->fill( recoilW(p, PID::DMINUS), event.weight()); if (isSemileptonicDecay(p, {PID::DMINUS,PID::ANTIMUON,PID::NU_MU})) _h_B_Dmunu->fill(recoilW(p, PID::DMINUS), event.weight()); } // Get B+ Mesons - foreach(const Particle& p, apply(event, "UFS").particles(Cuts::pid==PID::BPLUS)) { + foreach(const Particle& p, apply(event, "UFS").particles(Cuts::pid==PID::BPLUS)) { if (isSemileptonicDecay(p, {PID::D0BAR,PID::POSITRON,PID::NU_E})) _h_B_Deplusnu->fill( recoilW(p, PID::D0BAR), event.weight()); if (isSemileptonicDecay(p, {PID::D0BAR,PID::ANTIMUON,PID::NU_MU})) _h_B_Dmuplusnu->fill(recoilW(p, PID::D0BAR), event.weight()); } } /// Normalise histograms etc., after the run void finalize() { normalize(_h_B_Denu); normalize(_h_B_Dmunu); normalize(_h_B_Deplusnu); normalize(_h_B_Dmuplusnu); } //@} private: /// @name Histograms //@{ Histo1DPtr _h_B_Denu; Histo1DPtr _h_B_Dmunu; Histo1DPtr _h_B_Deplusnu; Histo1DPtr _h_B_Dmuplusnu; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(BELLE_2015_I1397632); } diff --git a/analyses/pluginMisc/BELLE_2017_I1512299.cc b/analyses/pluginMisc/BELLE_2017_I1512299.cc --- a/analyses/pluginMisc/BELLE_2017_I1512299.cc +++ b/analyses/pluginMisc/BELLE_2017_I1512299.cc @@ -1,166 +1,166 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/FinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief Add a short analysis description here class BELLE_2017_I1512299 : public Analysis { public: /// Constructor DEFAULT_RIVET_ANALYSIS_CTOR(BELLE_2017_I1512299); /// @name Analysis methods //@{ /// Book histograms and initialise projections before the run void init() { // Initialise and register projections - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); // Book histograms _h_w = bookHisto1D(1, 1, 1); _h_costhv = bookHisto1D(2, 1, 1); _h_costhl = bookHisto1D(3, 1, 1); _h_chi = bookHisto1D(4, 1, 1); } /// Perform the per-event analysis bool analyzeDecay(Particle mother, vector ids) { // There is no point in looking for decays with less particles than to be analysed if (mother.children().size() == ids.size()) { bool decayfound = true; for (int id : ids) { if (!contains(mother, id)) decayfound = false; } return decayfound; } return false; } bool contains(Particle& mother, int id) { return any(mother.children(), HasPID(id)); } double recoilW(const Particle& mother) { FourMomentum lepton, neutrino, meson, q; foreach(const Particle& c, mother.children()) { if (c.isNeutrino()) neutrino=c.mom(); if (c.isLepton() &! c.isNeutrino()) lepton =c.mom(); if (c.isHadron()) meson=c.mom(); } q = lepton + neutrino; //no hadron before double mb2= mother.mom()*mother.mom(); double mD2 = meson*meson; return (mb2 + mD2 - q*q )/ (2. * sqrt(mb2) * sqrt(mD2) ); } /// Perform the per-event analysis void analyze(const Event& event) { FourMomentum pl, pnu, pB, pD, pDs, ppi; // Iterate of B0bar mesons - for(const Particle& p : apply(event, "UFS").particles(Cuts::pid==-511)) { + for(const Particle& p : apply(event, "UFS").particles(Cuts::pid==-511)) { pB = p.momentum(); // Find semileptonic decays if (analyzeDecay(p, {PID::DSTARPLUS,-12,11}) || analyzeDecay(p, {PID::DSTARPLUS,-14,13}) ) { _h_w->fill(recoilW(p), event.weight()); // Get the necessary momenta for the angles bool foundDdecay=false; for (const Particle c : p.children()) { if ( (c.pid() == PID::DSTARPLUS) && (analyzeDecay(c, {PID::PIPLUS, PID::D0}) || analyzeDecay(c, {PID::PI0, PID::DPLUS})) ) { foundDdecay=true; pDs = c.momentum(); for (const Particle dc : c.children()) { if (dc.hasCharm()) pD = dc.momentum(); else ppi = dc.momentum(); } } if (c.pid() == 11 || c.pid() == 13) pl = c.momentum(); if (c.pid() == -12 || c.pid() == -14) pnu = c.momentum(); } // This is the angle analysis if (foundDdecay) { // First boost all relevant momenta into the B-rest frame const LorentzTransform B_boost = LorentzTransform::mkFrameTransformFromBeta(pB.betaVec()); // Momenta in B rest frame: FourMomentum lv_brest_Dstar = B_boost.transform(pDs);//lab2brest(gp_Dstar.particle.p()); FourMomentum lv_brest_w = B_boost.transform(pB - pDs); //lab2brest(p_lv_w); FourMomentum lv_brest_D = B_boost.transform(pD); //lab2brest(gp_D.particle.p()); FourMomentum lv_brest_lep = B_boost.transform(pl); //lab2brest(gp_lep.p()); const LorentzTransform Ds_boost = LorentzTransform::mkFrameTransformFromBeta(pDs.betaVec()); FourMomentum lv_Dstarrest_D = Ds_boost.transform(lv_brest_D); const LorentzTransform W_boost = LorentzTransform::mkFrameTransformFromBeta((pB-pDs).betaVec()); FourMomentum lv_wrest_lep = W_boost.transform(lv_brest_lep); double cos_thetaV = cos(lv_brest_Dstar.p3().angle(lv_Dstarrest_D.p3())); _h_costhv->fill(cos_thetaV, event.weight()); double cos_thetaL = cos(lv_brest_w.p3().angle(lv_wrest_lep.p3())); _h_costhl->fill(cos_thetaL, event.weight()); Vector3 LTrans = lv_wrest_lep.p3() - cos_thetaL*lv_wrest_lep.p3().perp()*lv_brest_w.p3().unit(); Vector3 VTrans = lv_Dstarrest_D.p3() - cos_thetaV*lv_Dstarrest_D.p3().perp()*lv_brest_Dstar.p3().unit(); float chi = atan2(LTrans.cross(VTrans).dot(lv_brest_w.p3().unit()), LTrans.dot(VTrans)); if(chi < 0) chi += TWOPI; _h_chi->fill(chi, event.weight()); //const LorentzTransform W_boost = LorentzTransform::mkFrameTransformFromBeta((pl+pnu).betaVec()); //const LorentzTransform D_boost = LorentzTransform::mkFrameTransformFromBeta((pD+ppi).betaVec()); //FourMomentum pl_t = FourMomentum(W_boost.transform(pl)); //FourMomentum pD_t = FourMomentum(D_boost.transform(pD)); //double thetal = (pl+pnu).angle(pl_t); //double thetav = (pD+ppi).angle(pD_t); //_h_costhv->fill(cos(thetav), event.weight()); //_h_costhl->fill(cos(thetal), event.weight()); } } } } //else if (analyzeDecay(p, {413,-14,13}) ) { //_h_w->fill(recoilW(p), event.weight()); //} /// Normalise histograms etc., after the run void finalize() { double GAMMA_B0 = 4.32e-13; // Total width in GeV, calculated from mean life time of 1.52 pico seconds double BR_B0_DSPLUS_ELL_NU = 0.0495; // Branching fraction from the same paper for B0bar to D*+ ell nu double NORM = GAMMA_B0 * BR_B0_DSPLUS_ELL_NU; // Normalise histos to partial width normalize(_h_w, NORM); normalize(_h_costhv, NORM); normalize(_h_costhl, NORM); normalize(_h_chi, NORM); } //@} /// @name Histograms //@{ Histo1DPtr _h_w; Histo1DPtr _h_costhv; Histo1DPtr _h_costhl; Histo1DPtr _h_chi; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(BELLE_2017_I1512299); } diff --git a/analyses/pluginMisc/CLEO_2004_S5809304.cc b/analyses/pluginMisc/CLEO_2004_S5809304.cc --- a/analyses/pluginMisc/CLEO_2004_S5809304.cc +++ b/analyses/pluginMisc/CLEO_2004_S5809304.cc @@ -1,165 +1,165 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/Beam.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief CLEO charmed mesons and baryons from fragmentation /// @author Peter Richardson class CLEO_2004_S5809304 : public Analysis { public: DEFAULT_RIVET_ANALYSIS_CTOR(CLEO_2004_S5809304); void init() { declare(Beam(), "Beams"); - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); // continuum cross sections _sigmaDPlus = bookHisto1D(1,1,1); _sigmaD0A = bookHisto1D(1,1,2); _sigmaD0B = bookHisto1D(1,1,3); _sigmaDStarPlusA = bookHisto1D(1,1,4); _sigmaDStarPlusB = bookHisto1D(1,1,5); _sigmaDStar0A = bookHisto1D(1,1,6); _sigmaDStar0B = bookHisto1D(1,1,7); // histograms for continuum data _histXpDplus = bookHisto1D(2, 1, 1); _histXpD0A = bookHisto1D(3, 1, 1); _histXpD0B = bookHisto1D(4, 1, 1); _histXpDStarPlusA = bookHisto1D(5, 1, 1); _histXpDStarPlusB = bookHisto1D(6, 1, 1); _histXpDStar0A = bookHisto1D(7, 1, 1); _histXpDStar0B = bookHisto1D(8, 1, 1); _histXpTotal = bookHisto1D(9, 1, 1); } void analyze(const Event& e) { const double weight = e.weight(); // Loop through unstable FS particles and look for charmed mesons/baryons - const UnstableFinalState& ufs = apply(e, "UFS"); + const UnstableParticles& ufs = apply(e, "UFS"); const Beam beamproj = apply(e, "Beams"); const ParticlePair& beams = beamproj.beams(); const FourMomentum mom_tot = beams.first.momentum() + beams.second.momentum(); LorentzTransform cms_boost; if (mom_tot.p3().mod() > 1*MeV) cms_boost = LorentzTransform::mkFrameTransformFromBeta(mom_tot.betaVec()); const double s = sqr(beamproj.sqrtS()); // Particle masses from PDGlive (accessed online 16. Nov. 2009). for (const Particle& p : ufs.particles()) { double xp = 0.0; double mH2 = 0.0; // 3-momentum in CMS frame const double mom = cms_boost.transform(p.momentum()).vector3().mod(); const int pdgid = p.abspid(); MSG_DEBUG("pdgID = " << pdgid << " mom = " << mom); switch (pdgid) { case 421: MSG_DEBUG("D0 found"); mH2 = 3.47763; // 1.86484^2 xp = mom/sqrt(s/4.0 - mH2); _sigmaD0A->fill(10.6,weight); _sigmaD0B->fill(10.6,weight); _histXpD0A->fill(xp, weight); _histXpD0B->fill(xp, weight); _histXpTotal->fill(xp, weight); break; case 411: MSG_DEBUG("D+ found"); mH2 = 3.49547; // 1.86962^2 xp = mom/sqrt(s/4.0 - mH2); _sigmaDPlus->fill(10.6,weight); _histXpDplus->fill(xp, weight); _histXpTotal->fill(xp, weight); break; case 413: MSG_DEBUG("D*+ found"); mH2 = 4.04119; // 2.01027^2 xp = mom/sqrt(s/4.0 - mH2); _sigmaDStarPlusA->fill(10.6,weight); _sigmaDStarPlusB->fill(10.6,weight); _histXpDStarPlusA->fill(xp, weight); _histXpDStarPlusB->fill(xp, weight); _histXpTotal->fill(xp, weight); break; case 423: MSG_DEBUG("D*0 found"); mH2 = 4.02793; // 2.00697**2 xp = mom/sqrt(s/4.0 - mH2); _sigmaDStar0A->fill(10.6,weight); _sigmaDStar0B->fill(10.6,weight); _histXpDStar0A->fill(xp, weight); _histXpDStar0B->fill(xp, weight); _histXpTotal->fill(xp, weight); break; } } } void finalize() { scale(_sigmaDPlus , crossSection()/picobarn/sumOfWeights()); scale(_sigmaD0A , crossSection()/picobarn/sumOfWeights()); scale(_sigmaD0B , crossSection()/picobarn/sumOfWeights()); scale(_sigmaDStarPlusA, crossSection()/picobarn/sumOfWeights()); scale(_sigmaDStarPlusB, crossSection()/picobarn/sumOfWeights()); scale(_sigmaDStar0A , crossSection()/picobarn/sumOfWeights()); scale(_sigmaDStar0B , crossSection()/picobarn/sumOfWeights()); scale(_histXpDplus , crossSection()/picobarn/sumOfWeights()); scale(_histXpD0A , crossSection()/picobarn/sumOfWeights()); scale(_histXpD0B , crossSection()/picobarn/sumOfWeights()); scale(_histXpDStarPlusA, crossSection()/picobarn/sumOfWeights()); scale(_histXpDStarPlusB, crossSection()/picobarn/sumOfWeights()); scale(_histXpDStar0A , crossSection()/picobarn/sumOfWeights()); scale(_histXpDStar0B , crossSection()/picobarn/sumOfWeights()); scale(_histXpTotal , crossSection()/picobarn/sumOfWeights()/4.); } private: //@{ // Histograms for the continuum cross sections Histo1DPtr _sigmaDPlus ; Histo1DPtr _sigmaD0A ; Histo1DPtr _sigmaD0B ; Histo1DPtr _sigmaDStarPlusA; Histo1DPtr _sigmaDStarPlusB; Histo1DPtr _sigmaDStar0A ; Histo1DPtr _sigmaDStar0B ; // histograms for continuum data Histo1DPtr _histXpDplus ; Histo1DPtr _histXpD0A ; Histo1DPtr _histXpD0B ; Histo1DPtr _histXpDStarPlusA; Histo1DPtr _histXpDStarPlusB; Histo1DPtr _histXpDStar0A ; Histo1DPtr _histXpDStar0B ; Histo1DPtr _histXpTotal ; //@} }; DECLARE_RIVET_PLUGIN(CLEO_2004_S5809304); } diff --git a/analyses/pluginMisc/PDG_HADRON_MULTIPLICITIES.cc b/analyses/pluginMisc/PDG_HADRON_MULTIPLICITIES.cc --- a/analyses/pluginMisc/PDG_HADRON_MULTIPLICITIES.cc +++ b/analyses/pluginMisc/PDG_HADRON_MULTIPLICITIES.cc @@ -1,770 +1,770 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/ChargedFinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief Implementation of PDG hadron multiplicities /// @author Hendrik Hoeth class PDG_HADRON_MULTIPLICITIES : public Analysis { public: /// Constructor PDG_HADRON_MULTIPLICITIES() : Analysis("PDG_HADRON_MULTIPLICITIES") { } /// @name Analysis methods //@{ void analyze(const Event& e) { // First, veto on leptonic events by requiring at least 4 charged FS particles const FinalState& fs = apply(e, "FS"); const size_t numParticles = fs.particles().size(); // Even if we only generate hadronic events, we still need a cut on numCharged >= 2. if (numParticles < 2) { MSG_DEBUG("Failed leptonic event cut"); vetoEvent; } MSG_DEBUG("Passed leptonic event cut"); // Get event weight for histo filling const double weight = e.weight(); MSG_DEBUG("sqrt(s) = " << sqrtS()/GeV << " GeV"); // Final state of unstable particles to get particle spectra - const UnstableFinalState& ufs = apply(e, "UFS"); + const UnstableParticles& ufs = apply(e, "UFS"); if (sqrtS()/GeV >= 9.5 && sqrtS()/GeV <= 10.5) { foreach (const Particle& p, ufs.particles()) { const PdgId id = p.abspid(); switch (id) { case 211: _histMeanMultiPiPlus->fill(_histMeanMultiPiPlus->bin(0).xMid(), weight); break; case 111: _histMeanMultiPi0->fill(_histMeanMultiPi0->bin(0).xMid(), weight); break; case 321: _histMeanMultiKPlus->fill(_histMeanMultiKPlus->bin(0).xMid(), weight); break; case 130: case 310: _histMeanMultiK0->fill(_histMeanMultiK0->bin(0).xMid(), weight); break; case 221: _histMeanMultiEta->fill(_histMeanMultiEta->bin(0).xMid(), weight); break; case 331: _histMeanMultiEtaPrime->fill(_histMeanMultiEtaPrime->bin(0).xMid(), weight); break; case 411: _histMeanMultiDPlus->fill(_histMeanMultiDPlus->bin(0).xMid(), weight); break; case 421: _histMeanMultiD0->fill(_histMeanMultiD0->bin(0).xMid(), weight); break; case 431: _histMeanMultiDPlus_s->fill(_histMeanMultiDPlus_s->bin(0).xMid(), weight); break; case 9010221: _histMeanMultiF0_980->fill(_histMeanMultiF0_980->bin(0).xMid(), weight); break; case 113: _histMeanMultiRho770_0->fill(_histMeanMultiRho770_0->bin(0).xMid(), weight); break; case 223: _histMeanMultiOmega782->fill(_histMeanMultiOmega782->bin(0).xMid(), weight); break; case 323: _histMeanMultiKStar892Plus->fill(_histMeanMultiKStar892Plus->bin(0).xMid(), weight); break; case 313: _histMeanMultiKStar892_0->fill(_histMeanMultiKStar892_0->bin(0).xMid(), weight); break; case 333: _histMeanMultiPhi1020->fill(_histMeanMultiPhi1020->bin(0).xMid(), weight); break; case 413: _histMeanMultiDStar2010Plus->fill(_histMeanMultiDStar2010Plus->bin(0).xMid(), weight); break; case 423: _histMeanMultiDStar2007_0->fill(_histMeanMultiDStar2007_0->bin(0).xMid(), weight); break; case 433: _histMeanMultiDStar_s2112Plus->fill(_histMeanMultiDStar_s2112Plus->bin(0).xMid(), weight); break; case 443: _histMeanMultiJPsi1S->fill(_histMeanMultiJPsi1S->bin(0).xMid(), weight); break; case 225: _histMeanMultiF2_1270->fill(_histMeanMultiF2_1270->bin(0).xMid(), weight); break; case 2212: _histMeanMultiP->fill(_histMeanMultiP->bin(0).xMid(), weight); break; case 3122: _histMeanMultiLambda->fill(_histMeanMultiLambda->bin(0).xMid(), weight); break; case 3212: _histMeanMultiSigma0->fill(_histMeanMultiSigma0->bin(0).xMid(), weight); break; case 3312: _histMeanMultiXiMinus->fill(_histMeanMultiXiMinus->bin(0).xMid(), weight); break; case 2224: _histMeanMultiDelta1232PlusPlus->fill(_histMeanMultiDelta1232PlusPlus->bin(0).xMid(), weight); break; case 3114: _histMeanMultiSigma1385Minus->fill(_histMeanMultiSigma1385Minus->bin(0).xMid(), weight); _histMeanMultiSigma1385PlusMinus->fill(_histMeanMultiSigma1385PlusMinus->bin(0).xMid(), weight); break; case 3224: _histMeanMultiSigma1385Plus->fill(_histMeanMultiSigma1385Plus->bin(0).xMid(), weight); _histMeanMultiSigma1385PlusMinus->fill(_histMeanMultiSigma1385PlusMinus->bin(0).xMid(), weight); break; case 3324: _histMeanMultiXi1530_0->fill(_histMeanMultiXi1530_0->bin(0).xMid(), weight); break; case 3334: _histMeanMultiOmegaMinus->fill(_histMeanMultiOmegaMinus->bin(0).xMid(), weight); break; case 4122: _histMeanMultiLambda_c_Plus->fill(_histMeanMultiLambda_c_Plus->bin(0).xMid(), weight); break; case 4222: case 4112: _histMeanMultiSigma_c_PlusPlus_0->fill(_histMeanMultiSigma_c_PlusPlus_0->bin(0).xMid(), weight); break; case 3124: _histMeanMultiLambda1520->fill(_histMeanMultiLambda1520->bin(0).xMid(), weight); break; } } } if (sqrtS()/GeV >= 29 && sqrtS()/GeV <= 35) { foreach (const Particle& p, ufs.particles()) { const PdgId id = p.abspid(); switch (id) { case 211: _histMeanMultiPiPlus->fill(_histMeanMultiPiPlus->bin(0).xMid(), weight); break; case 111: _histMeanMultiPi0->fill(_histMeanMultiPi0->bin(0).xMid(), weight); break; case 321: _histMeanMultiKPlus->fill(_histMeanMultiKPlus->bin(0).xMid(), weight); break; case 130: case 310: _histMeanMultiK0->fill(_histMeanMultiK0->bin(0).xMid(), weight); break; case 221: _histMeanMultiEta->fill(_histMeanMultiEta->bin(0).xMid(), weight); break; case 331: _histMeanMultiEtaPrime->fill(_histMeanMultiEtaPrime->bin(0).xMid(), weight); break; case 411: _histMeanMultiDPlus->fill(_histMeanMultiDPlus->bin(0).xMid(), weight); break; case 421: _histMeanMultiD0->fill(_histMeanMultiD0->bin(0).xMid(), weight); break; case 431: _histMeanMultiDPlus_s->fill(_histMeanMultiDPlus_s->bin(0).xMid(), weight); break; case 9010221: _histMeanMultiF0_980->fill(_histMeanMultiF0_980->bin(0).xMid(), weight); break; case 113: _histMeanMultiRho770_0->fill(_histMeanMultiRho770_0->bin(0).xMid(), weight); break; case 323: _histMeanMultiKStar892Plus->fill(_histMeanMultiKStar892Plus->bin(0).xMid(), weight); break; case 313: _histMeanMultiKStar892_0->fill(_histMeanMultiKStar892_0->bin(0).xMid(), weight); break; case 333: _histMeanMultiPhi1020->fill(_histMeanMultiPhi1020->bin(0).xMid(), weight); break; case 413: _histMeanMultiDStar2010Plus->fill(_histMeanMultiDStar2010Plus->bin(0).xMid(), weight); break; case 423: _histMeanMultiDStar2007_0->fill(_histMeanMultiDStar2007_0->bin(0).xMid(), weight); break; case 225: _histMeanMultiF2_1270->fill(_histMeanMultiF2_1270->bin(0).xMid(), weight); break; case 325: _histMeanMultiK2Star1430Plus->fill(_histMeanMultiK2Star1430Plus->bin(0).xMid(), weight); break; case 315: _histMeanMultiK2Star1430_0->fill(_histMeanMultiK2Star1430_0->bin(0).xMid(), weight); break; case 2212: _histMeanMultiP->fill(_histMeanMultiP->bin(0).xMid(), weight); break; case 3122: _histMeanMultiLambda->fill(_histMeanMultiLambda->bin(0).xMid(), weight); break; case 3312: _histMeanMultiXiMinus->fill(_histMeanMultiXiMinus->bin(0).xMid(), weight); break; case 3114: _histMeanMultiSigma1385Minus->fill(_histMeanMultiSigma1385Minus->bin(0).xMid(), weight); _histMeanMultiSigma1385PlusMinus->fill(_histMeanMultiSigma1385PlusMinus->bin(0).xMid(), weight); break; case 3224: _histMeanMultiSigma1385Plus->fill(_histMeanMultiSigma1385Plus->bin(0).xMid(), weight); _histMeanMultiSigma1385PlusMinus->fill(_histMeanMultiSigma1385PlusMinus->bin(0).xMid(), weight); break; case 3334: _histMeanMultiOmegaMinus->fill(_histMeanMultiOmegaMinus->bin(0).xMid(), weight); break; case 4122: _histMeanMultiLambda_c_Plus->fill(_histMeanMultiLambda_c_Plus->bin(0).xMid(), weight); break; } } } if (sqrtS()/GeV >= 89.5 && sqrtS()/GeV <= 91.8) { foreach (const Particle& p, ufs.particles()) { const PdgId id = p.abspid(); switch (id) { case 211: _histMeanMultiPiPlus->fill(_histMeanMultiPiPlus->bin(0).xMid(), weight); break; case 111: _histMeanMultiPi0->fill(_histMeanMultiPi0->bin(0).xMid(), weight); break; case 321: _histMeanMultiKPlus->fill(_histMeanMultiKPlus->bin(0).xMid(), weight); break; case 130: case 310: _histMeanMultiK0->fill(_histMeanMultiK0->bin(0).xMid(), weight); break; case 221: _histMeanMultiEta->fill(_histMeanMultiEta->bin(0).xMid(), weight); break; case 331: _histMeanMultiEtaPrime->fill(_histMeanMultiEtaPrime->bin(0).xMid(), weight); break; case 411: _histMeanMultiDPlus->fill(_histMeanMultiDPlus->bin(0).xMid(), weight); break; case 421: _histMeanMultiD0->fill(_histMeanMultiD0->bin(0).xMid(), weight); break; case 431: _histMeanMultiDPlus_s->fill(_histMeanMultiDPlus_s->bin(0).xMid(), weight); break; case 511: _histMeanMultiBPlus_B0_d->fill(_histMeanMultiBPlus_B0_d->bin(0).xMid(), weight); break; case 521: _histMeanMultiBPlus_B0_d->fill(_histMeanMultiBPlus_B0_d->bin(0).xMid(), weight); _histMeanMultiBPlus_u->fill(_histMeanMultiBPlus_u->bin(0).xMid(), weight); break; case 531: _histMeanMultiB0_s->fill(_histMeanMultiB0_s->bin(0).xMid(), weight); break; case 9010221: _histMeanMultiF0_980->fill(_histMeanMultiF0_980->bin(0).xMid(), weight); break; case 9000211: _histMeanMultiA0_980Plus->fill(_histMeanMultiA0_980Plus->bin(0).xMid(), weight); break; case 113: _histMeanMultiRho770_0->fill(_histMeanMultiRho770_0->bin(0).xMid(), weight); break; case 213: _histMeanMultiRho770Plus->fill(_histMeanMultiRho770Plus->bin(0).xMid(), weight); break; case 223: _histMeanMultiOmega782->fill(_histMeanMultiOmega782->bin(0).xMid(), weight); break; case 323: _histMeanMultiKStar892Plus->fill(_histMeanMultiKStar892Plus->bin(0).xMid(), weight); break; case 313: _histMeanMultiKStar892_0->fill(_histMeanMultiKStar892_0->bin(0).xMid(), weight); break; case 333: _histMeanMultiPhi1020->fill(_histMeanMultiPhi1020->bin(0).xMid(), weight); break; case 413: _histMeanMultiDStar2010Plus->fill(_histMeanMultiDStar2010Plus->bin(0).xMid(), weight); break; case 433: _histMeanMultiDStar_s2112Plus->fill(_histMeanMultiDStar_s2112Plus->bin(0).xMid(), weight); break; case 513: case 523: case 533: _histMeanMultiBStar->fill(_histMeanMultiBStar->bin(0).xMid(), weight); break; case 443: _histMeanMultiJPsi1S->fill(_histMeanMultiJPsi1S->bin(0).xMid(), weight); break; case 100443: _histMeanMultiPsi2S->fill(_histMeanMultiPsi2S->bin(0).xMid(), weight); break; case 553: _histMeanMultiUpsilon1S->fill(_histMeanMultiUpsilon1S->bin(0).xMid(), weight); break; case 20223: _histMeanMultiF1_1285->fill(_histMeanMultiF1_1285->bin(0).xMid(), weight); break; case 20333: _histMeanMultiF1_1420->fill(_histMeanMultiF1_1420->bin(0).xMid(), weight); break; case 445: _histMeanMultiChi_c1_3510->fill(_histMeanMultiChi_c1_3510->bin(0).xMid(), weight); break; case 225: _histMeanMultiF2_1270->fill(_histMeanMultiF2_1270->bin(0).xMid(), weight); break; case 335: _histMeanMultiF2Prime1525->fill(_histMeanMultiF2Prime1525->bin(0).xMid(), weight); break; case 315: _histMeanMultiK2Star1430_0->fill(_histMeanMultiK2Star1430_0->bin(0).xMid(), weight); break; case 515: case 525: case 535: _histMeanMultiBStarStar->fill(_histMeanMultiBStarStar->bin(0).xMid(), weight); break; case 10433: case 20433: _histMeanMultiDs1Plus->fill(_histMeanMultiDs1Plus->bin(0).xMid(), weight); break; case 435: _histMeanMultiDs2Plus->fill(_histMeanMultiDs2Plus->bin(0).xMid(), weight); break; case 2212: _histMeanMultiP->fill(_histMeanMultiP->bin(0).xMid(), weight); break; case 3122: _histMeanMultiLambda->fill(_histMeanMultiLambda->bin(0).xMid(), weight); break; case 3212: _histMeanMultiSigma0->fill(_histMeanMultiSigma0->bin(0).xMid(), weight); break; case 3112: _histMeanMultiSigmaMinus->fill(_histMeanMultiSigmaMinus->bin(0).xMid(), weight); _histMeanMultiSigmaPlusMinus->fill(_histMeanMultiSigmaPlusMinus->bin(0).xMid(), weight); break; case 3222: _histMeanMultiSigmaPlus->fill(_histMeanMultiSigmaPlus->bin(0).xMid(), weight); _histMeanMultiSigmaPlusMinus->fill(_histMeanMultiSigmaPlusMinus->bin(0).xMid(), weight); break; case 3312: _histMeanMultiXiMinus->fill(_histMeanMultiXiMinus->bin(0).xMid(), weight); break; case 2224: _histMeanMultiDelta1232PlusPlus->fill(_histMeanMultiDelta1232PlusPlus->bin(0).xMid(), weight); break; case 3114: _histMeanMultiSigma1385Minus->fill(_histMeanMultiSigma1385Minus->bin(0).xMid(), weight); _histMeanMultiSigma1385PlusMinus->fill(_histMeanMultiSigma1385PlusMinus->bin(0).xMid(), weight); break; case 3224: _histMeanMultiSigma1385Plus->fill(_histMeanMultiSigma1385Plus->bin(0).xMid(), weight); _histMeanMultiSigma1385PlusMinus->fill(_histMeanMultiSigma1385PlusMinus->bin(0).xMid(), weight); break; case 3324: _histMeanMultiXi1530_0->fill(_histMeanMultiXi1530_0->bin(0).xMid(), weight); break; case 3334: _histMeanMultiOmegaMinus->fill(_histMeanMultiOmegaMinus->bin(0).xMid(), weight); break; case 4122: _histMeanMultiLambda_c_Plus->fill(_histMeanMultiLambda_c_Plus->bin(0).xMid(), weight); break; case 5122: _histMeanMultiLambda_b_0->fill(_histMeanMultiLambda_b_0->bin(0).xMid(), weight); break; case 3124: _histMeanMultiLambda1520->fill(_histMeanMultiLambda1520->bin(0).xMid(), weight); break; } } } if (sqrtS()/GeV >= 130 && sqrtS()/GeV <= 200) { foreach (const Particle& p, ufs.particles()) { const PdgId id = p.abspid(); switch (id) { case 211: _histMeanMultiPiPlus->fill(_histMeanMultiPiPlus->bin(0).xMid(), weight); break; case 321: _histMeanMultiKPlus->fill(_histMeanMultiKPlus->bin(0).xMid(), weight); break; case 130: case 310: _histMeanMultiK0->fill(_histMeanMultiK0->bin(0).xMid(), weight); break; case 2212: _histMeanMultiP->fill(_histMeanMultiP->bin(0).xMid(), weight); break; case 3122: _histMeanMultiLambda->fill(_histMeanMultiLambda->bin(0).xMid(), weight); break; } } } } void init() { declare(ChargedFinalState(), "FS"); - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); if (sqrtS()/GeV >= 9.5 && sqrtS()/GeV <= 10.5) { _histMeanMultiPiPlus = bookHisto1D( 1, 1, 1); _histMeanMultiPi0 = bookHisto1D( 2, 1, 1); _histMeanMultiKPlus = bookHisto1D( 3, 1, 1); _histMeanMultiK0 = bookHisto1D( 4, 1, 1); _histMeanMultiEta = bookHisto1D( 5, 1, 1); _histMeanMultiEtaPrime = bookHisto1D( 6, 1, 1); _histMeanMultiDPlus = bookHisto1D( 7, 1, 1); _histMeanMultiD0 = bookHisto1D( 8, 1, 1); _histMeanMultiDPlus_s = bookHisto1D( 9, 1, 1); _histMeanMultiF0_980 = bookHisto1D(13, 1, 1); _histMeanMultiRho770_0 = bookHisto1D(15, 1, 1); _histMeanMultiOmega782 = bookHisto1D(17, 1, 1); _histMeanMultiKStar892Plus = bookHisto1D(18, 1, 1); _histMeanMultiKStar892_0 = bookHisto1D(19, 1, 1); _histMeanMultiPhi1020 = bookHisto1D(20, 1, 1); _histMeanMultiDStar2010Plus = bookHisto1D(21, 1, 1); _histMeanMultiDStar2007_0 = bookHisto1D(22, 1, 1); _histMeanMultiDStar_s2112Plus = bookHisto1D(23, 1, 1); _histMeanMultiJPsi1S = bookHisto1D(25, 1, 1); _histMeanMultiF2_1270 = bookHisto1D(31, 1, 1); _histMeanMultiP = bookHisto1D(38, 1, 1); _histMeanMultiLambda = bookHisto1D(39, 1, 1); _histMeanMultiSigma0 = bookHisto1D(40, 1, 1); _histMeanMultiXiMinus = bookHisto1D(44, 1, 1); _histMeanMultiDelta1232PlusPlus = bookHisto1D(45, 1, 1); _histMeanMultiSigma1385Minus = bookHisto1D(46, 1, 1); _histMeanMultiSigma1385Plus = bookHisto1D(47, 1, 1); _histMeanMultiSigma1385PlusMinus = bookHisto1D(48, 1, 1); _histMeanMultiXi1530_0 = bookHisto1D(49, 1, 1); _histMeanMultiOmegaMinus = bookHisto1D(50, 1, 1); _histMeanMultiLambda_c_Plus = bookHisto1D(51, 1, 1); _histMeanMultiSigma_c_PlusPlus_0 = bookHisto1D(53, 1, 1); _histMeanMultiLambda1520 = bookHisto1D(54, 1, 1); } if (sqrtS()/GeV >= 29 && sqrtS()/GeV <= 35) { _histMeanMultiPiPlus = bookHisto1D( 1, 1, 2); _histMeanMultiPi0 = bookHisto1D( 2, 1, 2); _histMeanMultiKPlus = bookHisto1D( 3, 1, 2); _histMeanMultiK0 = bookHisto1D( 4, 1, 2); _histMeanMultiEta = bookHisto1D( 5, 1, 2); _histMeanMultiEtaPrime = bookHisto1D( 6, 1, 2); _histMeanMultiDPlus = bookHisto1D( 7, 1, 2); _histMeanMultiD0 = bookHisto1D( 8, 1, 2); _histMeanMultiDPlus_s = bookHisto1D( 9, 1, 2); _histMeanMultiF0_980 = bookHisto1D(13, 1, 2); _histMeanMultiRho770_0 = bookHisto1D(15, 1, 2); _histMeanMultiKStar892Plus = bookHisto1D(18, 1, 2); _histMeanMultiKStar892_0 = bookHisto1D(19, 1, 2); _histMeanMultiPhi1020 = bookHisto1D(20, 1, 2); _histMeanMultiDStar2010Plus = bookHisto1D(21, 1, 2); _histMeanMultiDStar2007_0 = bookHisto1D(22, 1, 2); _histMeanMultiF2_1270 = bookHisto1D(31, 1, 2); _histMeanMultiK2Star1430Plus = bookHisto1D(33, 1, 1); _histMeanMultiK2Star1430_0 = bookHisto1D(34, 1, 1); _histMeanMultiP = bookHisto1D(38, 1, 2); _histMeanMultiLambda = bookHisto1D(39, 1, 2); _histMeanMultiXiMinus = bookHisto1D(44, 1, 2); _histMeanMultiSigma1385Minus = bookHisto1D(46, 1, 2); _histMeanMultiSigma1385Plus = bookHisto1D(47, 1, 2); _histMeanMultiSigma1385PlusMinus = bookHisto1D(48, 1, 2); _histMeanMultiOmegaMinus = bookHisto1D(50, 1, 2); _histMeanMultiLambda_c_Plus = bookHisto1D(51, 1, 2); } if (sqrtS()/GeV >= 89.5 && sqrtS()/GeV <= 91.8) { _histMeanMultiPiPlus = bookHisto1D( 1, 1, 3); _histMeanMultiPi0 = bookHisto1D( 2, 1, 3); _histMeanMultiKPlus = bookHisto1D( 3, 1, 3); _histMeanMultiK0 = bookHisto1D( 4, 1, 3); _histMeanMultiEta = bookHisto1D( 5, 1, 3); _histMeanMultiEtaPrime = bookHisto1D( 6, 1, 3); _histMeanMultiDPlus = bookHisto1D( 7, 1, 3); _histMeanMultiD0 = bookHisto1D( 8, 1, 3); _histMeanMultiDPlus_s = bookHisto1D( 9, 1, 3); _histMeanMultiBPlus_B0_d = bookHisto1D(10, 1, 1); _histMeanMultiBPlus_u = bookHisto1D(11, 1, 1); _histMeanMultiB0_s = bookHisto1D(12, 1, 1); _histMeanMultiF0_980 = bookHisto1D(13, 1, 3); _histMeanMultiA0_980Plus = bookHisto1D(14, 1, 1); _histMeanMultiRho770_0 = bookHisto1D(15, 1, 3); _histMeanMultiRho770Plus = bookHisto1D(16, 1, 1); _histMeanMultiOmega782 = bookHisto1D(17, 1, 2); _histMeanMultiKStar892Plus = bookHisto1D(18, 1, 3); _histMeanMultiKStar892_0 = bookHisto1D(19, 1, 3); _histMeanMultiPhi1020 = bookHisto1D(20, 1, 3); _histMeanMultiDStar2010Plus = bookHisto1D(21, 1, 3); _histMeanMultiDStar_s2112Plus = bookHisto1D(23, 1, 2); _histMeanMultiBStar = bookHisto1D(24, 1, 1); _histMeanMultiJPsi1S = bookHisto1D(25, 1, 2); _histMeanMultiPsi2S = bookHisto1D(26, 1, 1); _histMeanMultiUpsilon1S = bookHisto1D(27, 1, 1); _histMeanMultiF1_1285 = bookHisto1D(28, 1, 1); _histMeanMultiF1_1420 = bookHisto1D(29, 1, 1); _histMeanMultiChi_c1_3510 = bookHisto1D(30, 1, 1); _histMeanMultiF2_1270 = bookHisto1D(31, 1, 3); _histMeanMultiF2Prime1525 = bookHisto1D(32, 1, 1); _histMeanMultiK2Star1430_0 = bookHisto1D(34, 1, 2); _histMeanMultiBStarStar = bookHisto1D(35, 1, 1); _histMeanMultiDs1Plus = bookHisto1D(36, 1, 1); _histMeanMultiDs2Plus = bookHisto1D(37, 1, 1); _histMeanMultiP = bookHisto1D(38, 1, 3); _histMeanMultiLambda = bookHisto1D(39, 1, 3); _histMeanMultiSigma0 = bookHisto1D(40, 1, 2); _histMeanMultiSigmaMinus = bookHisto1D(41, 1, 1); _histMeanMultiSigmaPlus = bookHisto1D(42, 1, 1); _histMeanMultiSigmaPlusMinus = bookHisto1D(43, 1, 1); _histMeanMultiXiMinus = bookHisto1D(44, 1, 3); _histMeanMultiDelta1232PlusPlus = bookHisto1D(45, 1, 2); _histMeanMultiSigma1385Minus = bookHisto1D(46, 1, 3); _histMeanMultiSigma1385Plus = bookHisto1D(47, 1, 3); _histMeanMultiSigma1385PlusMinus = bookHisto1D(48, 1, 3); _histMeanMultiXi1530_0 = bookHisto1D(49, 1, 2); _histMeanMultiOmegaMinus = bookHisto1D(50, 1, 3); _histMeanMultiLambda_c_Plus = bookHisto1D(51, 1, 3); _histMeanMultiLambda_b_0 = bookHisto1D(52, 1, 1); _histMeanMultiLambda1520 = bookHisto1D(54, 1, 2); } if (sqrtS()/GeV >= 130 && sqrtS()/GeV <= 200) { _histMeanMultiPiPlus = bookHisto1D( 1, 1, 4); _histMeanMultiKPlus = bookHisto1D( 3, 1, 4); _histMeanMultiK0 = bookHisto1D( 4, 1, 4); _histMeanMultiP = bookHisto1D(38, 1, 4); _histMeanMultiLambda = bookHisto1D(39, 1, 4); } } // Finalize void finalize() { if (sqrtS()/GeV >= 9.5 && sqrtS()/GeV <= 10.5) { scale(_histMeanMultiPiPlus , 1.0/sumOfWeights()); scale(_histMeanMultiPi0 , 1.0/sumOfWeights()); scale(_histMeanMultiKPlus , 1.0/sumOfWeights()); scale(_histMeanMultiK0 , 1.0/sumOfWeights()); scale(_histMeanMultiEta , 1.0/sumOfWeights()); scale(_histMeanMultiEtaPrime , 1.0/sumOfWeights()); scale(_histMeanMultiDPlus , 1.0/sumOfWeights()); scale(_histMeanMultiD0 , 1.0/sumOfWeights()); scale(_histMeanMultiDPlus_s , 1.0/sumOfWeights()); scale(_histMeanMultiF0_980 , 1.0/sumOfWeights()); scale(_histMeanMultiRho770_0 , 1.0/sumOfWeights()); scale(_histMeanMultiOmega782 , 1.0/sumOfWeights()); scale(_histMeanMultiKStar892Plus , 1.0/sumOfWeights()); scale(_histMeanMultiKStar892_0 , 1.0/sumOfWeights()); scale(_histMeanMultiPhi1020 , 1.0/sumOfWeights()); scale(_histMeanMultiDStar2010Plus , 1.0/sumOfWeights()); scale(_histMeanMultiDStar2007_0 , 1.0/sumOfWeights()); scale(_histMeanMultiDStar_s2112Plus , 1.0/sumOfWeights()); scale(_histMeanMultiJPsi1S , 1.0/sumOfWeights()); scale(_histMeanMultiF2_1270 , 1.0/sumOfWeights()); scale(_histMeanMultiP , 1.0/sumOfWeights()); scale(_histMeanMultiLambda , 1.0/sumOfWeights()); scale(_histMeanMultiSigma0 , 1.0/sumOfWeights()); scale(_histMeanMultiXiMinus , 1.0/sumOfWeights()); scale(_histMeanMultiDelta1232PlusPlus , 1.0/sumOfWeights()); scale(_histMeanMultiSigma1385Minus , 1.0/sumOfWeights()); scale(_histMeanMultiSigma1385Plus , 1.0/sumOfWeights()); scale(_histMeanMultiSigma1385PlusMinus, 1.0/sumOfWeights()); scale(_histMeanMultiXi1530_0 , 1.0/sumOfWeights()); scale(_histMeanMultiOmegaMinus , 1.0/sumOfWeights()); scale(_histMeanMultiLambda_c_Plus , 1.0/sumOfWeights()); scale(_histMeanMultiSigma_c_PlusPlus_0, 1.0/sumOfWeights()); scale(_histMeanMultiLambda1520 , 1.0/sumOfWeights()); } if (sqrtS()/GeV >= 29 && sqrtS()/GeV <= 35) { scale(_histMeanMultiPiPlus , 5.0/sumOfWeights()); scale(_histMeanMultiPi0 , 5.0/sumOfWeights()); scale(_histMeanMultiKPlus , 5.0/sumOfWeights()); scale(_histMeanMultiK0 , 5.0/sumOfWeights()); scale(_histMeanMultiEta , 5.0/sumOfWeights()); scale(_histMeanMultiEtaPrime , 5.0/sumOfWeights()); scale(_histMeanMultiDPlus , 5.0/sumOfWeights()); scale(_histMeanMultiD0 , 5.0/sumOfWeights()); scale(_histMeanMultiDPlus_s , 5.0/sumOfWeights()); scale(_histMeanMultiF0_980 , 5.0/sumOfWeights()); scale(_histMeanMultiRho770_0 , 5.0/sumOfWeights()); scale(_histMeanMultiKStar892Plus , 5.0/sumOfWeights()); scale(_histMeanMultiKStar892_0 , 5.0/sumOfWeights()); scale(_histMeanMultiPhi1020 , 5.0/sumOfWeights()); scale(_histMeanMultiDStar2010Plus , 5.0/sumOfWeights()); scale(_histMeanMultiDStar2007_0 , 5.0/sumOfWeights()); scale(_histMeanMultiF2_1270 , 5.0/sumOfWeights()); scale(_histMeanMultiK2Star1430Plus , 5.0/sumOfWeights()); scale(_histMeanMultiK2Star1430_0 , 5.0/sumOfWeights()); scale(_histMeanMultiP , 5.0/sumOfWeights()); scale(_histMeanMultiLambda , 5.0/sumOfWeights()); scale(_histMeanMultiXiMinus , 5.0/sumOfWeights()); scale(_histMeanMultiSigma1385Minus , 5.0/sumOfWeights()); scale(_histMeanMultiSigma1385Plus , 5.0/sumOfWeights()); scale(_histMeanMultiSigma1385PlusMinus, 5.0/sumOfWeights()); scale(_histMeanMultiOmegaMinus , 5.0/sumOfWeights()); scale(_histMeanMultiLambda_c_Plus , 5.0/sumOfWeights()); } if (sqrtS()/GeV >= 89.5 && sqrtS()/GeV <= 91.8) { scale(_histMeanMultiPiPlus , 1.0/sumOfWeights()); scale(_histMeanMultiPi0 , 1.0/sumOfWeights()); scale(_histMeanMultiKPlus , 1.0/sumOfWeights()); scale(_histMeanMultiK0 , 1.0/sumOfWeights()); scale(_histMeanMultiEta , 1.0/sumOfWeights()); scale(_histMeanMultiEtaPrime , 1.0/sumOfWeights()); scale(_histMeanMultiDPlus , 1.0/sumOfWeights()); scale(_histMeanMultiD0 , 1.0/sumOfWeights()); scale(_histMeanMultiDPlus_s , 1.0/sumOfWeights()); scale(_histMeanMultiBPlus_B0_d , 1.0/sumOfWeights()); scale(_histMeanMultiBPlus_u , 1.0/sumOfWeights()); scale(_histMeanMultiB0_s , 1.0/sumOfWeights()); scale(_histMeanMultiF0_980 , 1.0/sumOfWeights()); scale(_histMeanMultiA0_980Plus , 1.0/sumOfWeights()); scale(_histMeanMultiRho770_0 , 1.0/sumOfWeights()); scale(_histMeanMultiRho770Plus , 1.0/sumOfWeights()); scale(_histMeanMultiOmega782 , 1.0/sumOfWeights()); scale(_histMeanMultiKStar892Plus , 1.0/sumOfWeights()); scale(_histMeanMultiKStar892_0 , 1.0/sumOfWeights()); scale(_histMeanMultiPhi1020 , 1.0/sumOfWeights()); scale(_histMeanMultiDStar2010Plus , 1.0/sumOfWeights()); scale(_histMeanMultiDStar_s2112Plus , 1.0/sumOfWeights()); scale(_histMeanMultiBStar , 1.0/sumOfWeights()); scale(_histMeanMultiJPsi1S , 1.0/sumOfWeights()); scale(_histMeanMultiPsi2S , 1.0/sumOfWeights()); scale(_histMeanMultiUpsilon1S , 1.0/sumOfWeights()); scale(_histMeanMultiF1_1285 , 1.0/sumOfWeights()); scale(_histMeanMultiF1_1420 , 1.0/sumOfWeights()); scale(_histMeanMultiChi_c1_3510 , 1.0/sumOfWeights()); scale(_histMeanMultiF2_1270 , 1.0/sumOfWeights()); scale(_histMeanMultiF2Prime1525 , 1.0/sumOfWeights()); scale(_histMeanMultiK2Star1430_0 , 1.0/sumOfWeights()); scale(_histMeanMultiBStarStar , 1.0/sumOfWeights()); scale(_histMeanMultiDs1Plus , 1.0/sumOfWeights()); scale(_histMeanMultiDs2Plus , 1.0/sumOfWeights()); scale(_histMeanMultiP , 1.0/sumOfWeights()); scale(_histMeanMultiLambda , 1.0/sumOfWeights()); scale(_histMeanMultiSigma0 , 1.0/sumOfWeights()); scale(_histMeanMultiSigmaMinus , 1.0/sumOfWeights()); scale(_histMeanMultiSigmaPlus , 1.0/sumOfWeights()); scale(_histMeanMultiSigmaPlusMinus , 1.0/sumOfWeights()); scale(_histMeanMultiXiMinus , 1.0/sumOfWeights()); scale(_histMeanMultiDelta1232PlusPlus , 1.0/sumOfWeights()); scale(_histMeanMultiSigma1385Minus , 1.0/sumOfWeights()); scale(_histMeanMultiSigma1385Plus , 1.0/sumOfWeights()); scale(_histMeanMultiSigma1385PlusMinus, 1.0/sumOfWeights()); scale(_histMeanMultiXi1530_0 , 1.0/sumOfWeights()); scale(_histMeanMultiOmegaMinus , 1.0/sumOfWeights()); scale(_histMeanMultiLambda_c_Plus , 1.0/sumOfWeights()); scale(_histMeanMultiLambda_b_0 , 1.0/sumOfWeights()); scale(_histMeanMultiLambda1520 , 1.0/sumOfWeights()); } if (sqrtS()/GeV >= 130 && sqrtS()/GeV <= 200) { scale(_histMeanMultiPiPlus , 70.0/sumOfWeights()); scale(_histMeanMultiKPlus , 70.0/sumOfWeights()); scale(_histMeanMultiK0 , 70.0/sumOfWeights()); scale(_histMeanMultiP , 70.0/sumOfWeights()); scale(_histMeanMultiLambda , 70.0/sumOfWeights()); } } //@} private: Histo1DPtr _histMeanMultiPiPlus; Histo1DPtr _histMeanMultiPi0; Histo1DPtr _histMeanMultiKPlus; Histo1DPtr _histMeanMultiK0; Histo1DPtr _histMeanMultiEta; Histo1DPtr _histMeanMultiEtaPrime; Histo1DPtr _histMeanMultiDPlus; Histo1DPtr _histMeanMultiD0; Histo1DPtr _histMeanMultiDPlus_s; Histo1DPtr _histMeanMultiBPlus_B0_d; Histo1DPtr _histMeanMultiBPlus_u; Histo1DPtr _histMeanMultiB0_s; Histo1DPtr _histMeanMultiF0_980; Histo1DPtr _histMeanMultiA0_980Plus; Histo1DPtr _histMeanMultiRho770_0; Histo1DPtr _histMeanMultiRho770Plus; Histo1DPtr _histMeanMultiOmega782; Histo1DPtr _histMeanMultiKStar892Plus; Histo1DPtr _histMeanMultiKStar892_0; Histo1DPtr _histMeanMultiPhi1020; Histo1DPtr _histMeanMultiDStar2010Plus; Histo1DPtr _histMeanMultiDStar2007_0; Histo1DPtr _histMeanMultiDStar_s2112Plus; Histo1DPtr _histMeanMultiBStar; Histo1DPtr _histMeanMultiJPsi1S; Histo1DPtr _histMeanMultiPsi2S; Histo1DPtr _histMeanMultiUpsilon1S; Histo1DPtr _histMeanMultiF1_1285; Histo1DPtr _histMeanMultiF1_1420; Histo1DPtr _histMeanMultiChi_c1_3510; Histo1DPtr _histMeanMultiF2_1270; Histo1DPtr _histMeanMultiF2Prime1525; Histo1DPtr _histMeanMultiK2Star1430Plus; Histo1DPtr _histMeanMultiK2Star1430_0; Histo1DPtr _histMeanMultiBStarStar; Histo1DPtr _histMeanMultiDs1Plus; Histo1DPtr _histMeanMultiDs2Plus; Histo1DPtr _histMeanMultiP; Histo1DPtr _histMeanMultiLambda; Histo1DPtr _histMeanMultiSigma0; Histo1DPtr _histMeanMultiSigmaMinus; Histo1DPtr _histMeanMultiSigmaPlus; Histo1DPtr _histMeanMultiSigmaPlusMinus; Histo1DPtr _histMeanMultiXiMinus; Histo1DPtr _histMeanMultiDelta1232PlusPlus; Histo1DPtr _histMeanMultiSigma1385Minus; Histo1DPtr _histMeanMultiSigma1385Plus; Histo1DPtr _histMeanMultiSigma1385PlusMinus; Histo1DPtr _histMeanMultiXi1530_0; Histo1DPtr _histMeanMultiOmegaMinus; Histo1DPtr _histMeanMultiLambda_c_Plus; Histo1DPtr _histMeanMultiLambda_b_0; Histo1DPtr _histMeanMultiSigma_c_PlusPlus_0; Histo1DPtr _histMeanMultiLambda1520; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(PDG_HADRON_MULTIPLICITIES); } diff --git a/analyses/pluginMisc/PDG_HADRON_MULTIPLICITIES_RATIOS.cc b/analyses/pluginMisc/PDG_HADRON_MULTIPLICITIES_RATIOS.cc --- a/analyses/pluginMisc/PDG_HADRON_MULTIPLICITIES_RATIOS.cc +++ b/analyses/pluginMisc/PDG_HADRON_MULTIPLICITIES_RATIOS.cc @@ -1,764 +1,764 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/ChargedFinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief Implementation of PDG hadron multiplicities as ratios to \f$ \pi^\pm \f$ multiplicity /// @author Holger Schulz class PDG_HADRON_MULTIPLICITIES_RATIOS : public Analysis { public: /// Constructor PDG_HADRON_MULTIPLICITIES_RATIOS() : Analysis("PDG_HADRON_MULTIPLICITIES_RATIOS") { _weightedTotalNumPiPlus = 0; } /// @name Analysis methods //@{ void analyze(const Event& e) { // First, veto on leptonic events by requiring at least 4 charged FS particles const FinalState& fs = apply(e, "FS"); const size_t numParticles = fs.particles().size(); // Even if we only generate hadronic events, we still need a cut on numCharged >= 2. if (numParticles < 2) { MSG_DEBUG("Failed leptonic event cut"); vetoEvent; } MSG_DEBUG("Passed leptonic event cut"); // Get event weight for histo filling const double weight = e.weight(); MSG_DEBUG("sqrt(S) = " << sqrtS()/GeV << " GeV"); // Final state of unstable particles to get particle spectra - const UnstableFinalState& ufs = apply(e, "UFS"); + const UnstableParticles& ufs = apply(e, "UFS"); if (sqrtS()/GeV >= 9.5 && sqrtS()/GeV <= 10.5) { foreach (const Particle& p, ufs.particles()) { const PdgId id = p.abspid(); switch (id) { case 211: _weightedTotalNumPiPlus += weight; break; case 111: _histMeanMultiPi0->fill(_histMeanMultiPi0->bin(0).xMid(), weight); break; case 321: _histMeanMultiKPlus->fill(_histMeanMultiKPlus->bin(0).xMid(), weight); break; case 130: case 310: _histMeanMultiK0->fill(_histMeanMultiK0->bin(0).xMid(), weight); break; case 221: _histMeanMultiEta->fill(_histMeanMultiEta->bin(0).xMid(), weight); break; case 331: _histMeanMultiEtaPrime->fill(_histMeanMultiEtaPrime->bin(0).xMid(), weight); break; case 411: _histMeanMultiDPlus->fill(_histMeanMultiDPlus->bin(0).xMid(), weight); break; case 421: _histMeanMultiD0->fill(_histMeanMultiD0->bin(0).xMid(), weight); break; case 431: _histMeanMultiDPlus_s->fill(_histMeanMultiDPlus_s->bin(0).xMid(), weight); break; case 9010221: _histMeanMultiF0_980->fill(_histMeanMultiF0_980->bin(0).xMid(), weight); break; case 113: _histMeanMultiRho770_0->fill(_histMeanMultiRho770_0->bin(0).xMid(), weight); break; case 223: _histMeanMultiOmega782->fill(_histMeanMultiOmega782->bin(0).xMid(), weight); break; case 323: _histMeanMultiKStar892Plus->fill(_histMeanMultiKStar892Plus->bin(0).xMid(), weight); break; case 313: _histMeanMultiKStar892_0->fill(_histMeanMultiKStar892_0->bin(0).xMid(), weight); break; case 333: _histMeanMultiPhi1020->fill(_histMeanMultiPhi1020->bin(0).xMid(), weight); break; case 413: _histMeanMultiDStar2010Plus->fill(_histMeanMultiDStar2010Plus->bin(0).xMid(), weight); break; case 423: _histMeanMultiDStar2007_0->fill(_histMeanMultiDStar2007_0->bin(0).xMid(), weight); break; case 433: _histMeanMultiDStar_s2112Plus->fill(_histMeanMultiDStar_s2112Plus->bin(0).xMid(), weight); break; case 443: _histMeanMultiJPsi1S->fill(_histMeanMultiJPsi1S->bin(0).xMid(), weight); break; case 225: _histMeanMultiF2_1270->fill(_histMeanMultiF2_1270->bin(0).xMid(), weight); break; case 2212: _histMeanMultiP->fill(_histMeanMultiP->bin(0).xMid(), weight); break; case 3122: _histMeanMultiLambda->fill(_histMeanMultiLambda->bin(0).xMid(), weight); break; case 3212: _histMeanMultiSigma0->fill(_histMeanMultiSigma0->bin(0).xMid(), weight); break; case 3312: _histMeanMultiXiMinus->fill(_histMeanMultiXiMinus->bin(0).xMid(), weight); break; case 2224: _histMeanMultiDelta1232PlusPlus->fill(_histMeanMultiDelta1232PlusPlus->bin(0).xMid(), weight); break; case 3114: _histMeanMultiSigma1385Minus->fill(_histMeanMultiSigma1385Minus->bin(0).xMid(), weight); _histMeanMultiSigma1385PlusMinus->fill(_histMeanMultiSigma1385PlusMinus->bin(0).xMid(), weight); break; case 3224: _histMeanMultiSigma1385Plus->fill(_histMeanMultiSigma1385Plus->bin(0).xMid(), weight); _histMeanMultiSigma1385PlusMinus->fill(_histMeanMultiSigma1385PlusMinus->bin(0).xMid(), weight); break; case 3324: _histMeanMultiXi1530_0->fill(_histMeanMultiXi1530_0->bin(0).xMid(), weight); break; case 3334: _histMeanMultiOmegaMinus->fill(_histMeanMultiOmegaMinus->bin(0).xMid(), weight); break; case 4122: _histMeanMultiLambda_c_Plus->fill(_histMeanMultiLambda_c_Plus->bin(0).xMid(), weight); break; case 4222: case 4112: _histMeanMultiSigma_c_PlusPlus_0->fill(_histMeanMultiSigma_c_PlusPlus_0->bin(0).xMid(), weight); break; case 3124: _histMeanMultiLambda1520->fill(_histMeanMultiLambda1520->bin(0).xMid(), weight); break; } } } if (sqrtS()/GeV >= 29 && sqrtS()/GeV <= 35) { foreach (const Particle& p, ufs.particles()) { const PdgId id = p.abspid(); switch (id) { case 211: _weightedTotalNumPiPlus += weight; break; case 111: _histMeanMultiPi0->fill(_histMeanMultiPi0->bin(0).xMid(), weight); break; case 321: _histMeanMultiKPlus->fill(_histMeanMultiKPlus->bin(0).xMid(), weight); break; case 130: case 310: _histMeanMultiK0->fill(_histMeanMultiK0->bin(0).xMid(), weight); break; case 221: _histMeanMultiEta->fill(_histMeanMultiEta->bin(0).xMid(), weight); break; case 331: _histMeanMultiEtaPrime->fill(_histMeanMultiEtaPrime->bin(0).xMid(), weight); break; case 411: _histMeanMultiDPlus->fill(_histMeanMultiDPlus->bin(0).xMid(), weight); break; case 421: _histMeanMultiD0->fill(_histMeanMultiD0->bin(0).xMid(), weight); break; case 431: _histMeanMultiDPlus_s->fill(_histMeanMultiDPlus_s->bin(0).xMid(), weight); break; case 9010221: _histMeanMultiF0_980->fill(_histMeanMultiF0_980->bin(0).xMid(), weight); break; case 113: _histMeanMultiRho770_0->fill(_histMeanMultiRho770_0->bin(0).xMid(), weight); break; case 323: _histMeanMultiKStar892Plus->fill(_histMeanMultiKStar892Plus->bin(0).xMid(), weight); break; case 313: _histMeanMultiKStar892_0->fill(_histMeanMultiKStar892_0->bin(0).xMid(), weight); break; case 333: _histMeanMultiPhi1020->fill(_histMeanMultiPhi1020->bin(0).xMid(), weight); break; case 413: _histMeanMultiDStar2010Plus->fill(_histMeanMultiDStar2010Plus->bin(0).xMid(), weight); break; case 423: _histMeanMultiDStar2007_0->fill(_histMeanMultiDStar2007_0->bin(0).xMid(), weight); break; case 225: _histMeanMultiF2_1270->fill(_histMeanMultiF2_1270->bin(0).xMid(), weight); break; case 325: _histMeanMultiK2Star1430Plus->fill(_histMeanMultiK2Star1430Plus->bin(0).xMid(), weight); break; case 315: _histMeanMultiK2Star1430_0->fill(_histMeanMultiK2Star1430_0->bin(0).xMid(), weight); break; case 2212: _histMeanMultiP->fill(_histMeanMultiP->bin(0).xMid(), weight); break; case 3122: _histMeanMultiLambda->fill(_histMeanMultiLambda->bin(0).xMid(), weight); break; case 3312: _histMeanMultiXiMinus->fill(_histMeanMultiXiMinus->bin(0).xMid(), weight); break; case 3114: _histMeanMultiSigma1385Minus->fill(_histMeanMultiSigma1385Minus->bin(0).xMid(), weight); _histMeanMultiSigma1385PlusMinus->fill(_histMeanMultiSigma1385PlusMinus->bin(0).xMid(), weight); break; case 3224: _histMeanMultiSigma1385Plus->fill(_histMeanMultiSigma1385Plus->bin(0).xMid(), weight); _histMeanMultiSigma1385PlusMinus->fill(_histMeanMultiSigma1385PlusMinus->bin(0).xMid(), weight); break; case 3334: _histMeanMultiOmegaMinus->fill(_histMeanMultiOmegaMinus->bin(0).xMid(), weight); break; case 4122: _histMeanMultiLambda_c_Plus->fill(_histMeanMultiLambda_c_Plus->bin(0).xMid(), weight); break; } } } if (sqrtS()/GeV >= 89.5 && sqrtS()/GeV <= 91.8) { foreach (const Particle& p, ufs.particles()) { const PdgId id = p.abspid(); switch (id) { case 211: _weightedTotalNumPiPlus += weight; break; case 111: _histMeanMultiPi0->fill(_histMeanMultiPi0->bin(0).xMid(), weight); break; case 321: _histMeanMultiKPlus->fill(_histMeanMultiKPlus->bin(0).xMid(), weight); break; case 130: case 310: _histMeanMultiK0->fill(_histMeanMultiK0->bin(0).xMid(), weight); break; case 221: _histMeanMultiEta->fill(_histMeanMultiEta->bin(0).xMid(), weight); break; case 331: _histMeanMultiEtaPrime->fill(_histMeanMultiEtaPrime->bin(0).xMid(), weight); break; case 411: _histMeanMultiDPlus->fill(_histMeanMultiDPlus->bin(0).xMid(), weight); break; case 421: _histMeanMultiD0->fill(_histMeanMultiD0->bin(0).xMid(), weight); break; case 431: _histMeanMultiDPlus_s->fill(_histMeanMultiDPlus_s->bin(0).xMid(), weight); break; case 511: _histMeanMultiBPlus_B0_d->fill(_histMeanMultiBPlus_B0_d->bin(0).xMid(), weight); break; case 521: _histMeanMultiBPlus_B0_d->fill(_histMeanMultiBPlus_B0_d->bin(0).xMid(), weight); _histMeanMultiBPlus_u->fill(_histMeanMultiBPlus_u->bin(0).xMid(), weight); break; case 531: _histMeanMultiB0_s->fill(_histMeanMultiB0_s->bin(0).xMid(), weight); break; case 9010221: _histMeanMultiF0_980->fill(_histMeanMultiF0_980->bin(0).xMid(), weight); break; case 9000211: _histMeanMultiA0_980Plus->fill(_histMeanMultiA0_980Plus->bin(0).xMid(), weight); break; case 113: _histMeanMultiRho770_0->fill(_histMeanMultiRho770_0->bin(0).xMid(), weight); break; case 213: _histMeanMultiRho770Plus->fill(_histMeanMultiRho770Plus->bin(0).xMid(), weight); break; case 223: _histMeanMultiOmega782->fill(_histMeanMultiOmega782->bin(0).xMid(), weight); break; case 323: _histMeanMultiKStar892Plus->fill(_histMeanMultiKStar892Plus->bin(0).xMid(), weight); break; case 313: _histMeanMultiKStar892_0->fill(_histMeanMultiKStar892_0->bin(0).xMid(), weight); break; case 333: _histMeanMultiPhi1020->fill(_histMeanMultiPhi1020->bin(0).xMid(), weight); break; case 413: _histMeanMultiDStar2010Plus->fill(_histMeanMultiDStar2010Plus->bin(0).xMid(), weight); break; case 433: _histMeanMultiDStar_s2112Plus->fill(_histMeanMultiDStar_s2112Plus->bin(0).xMid(), weight); break; case 513: case 523: case 533: _histMeanMultiBStar->fill(_histMeanMultiBStar->bin(0).xMid(), weight); break; case 443: _histMeanMultiJPsi1S->fill(_histMeanMultiJPsi1S->bin(0).xMid(), weight); break; case 100443: _histMeanMultiPsi2S->fill(_histMeanMultiPsi2S->bin(0).xMid(), weight); break; case 553: _histMeanMultiUpsilon1S->fill(_histMeanMultiUpsilon1S->bin(0).xMid(), weight); break; case 20223: _histMeanMultiF1_1285->fill(_histMeanMultiF1_1285->bin(0).xMid(), weight); break; case 20333: _histMeanMultiF1_1420->fill(_histMeanMultiF1_1420->bin(0).xMid(), weight); break; case 445: _histMeanMultiChi_c1_3510->fill(_histMeanMultiChi_c1_3510->bin(0).xMid(), weight); break; case 225: _histMeanMultiF2_1270->fill(_histMeanMultiF2_1270->bin(0).xMid(), weight); break; case 335: _histMeanMultiF2Prime1525->fill(_histMeanMultiF2Prime1525->bin(0).xMid(), weight); break; case 315: _histMeanMultiK2Star1430_0->fill(_histMeanMultiK2Star1430_0->bin(0).xMid(), weight); break; case 515: case 525: case 535: _histMeanMultiBStarStar->fill(_histMeanMultiBStarStar->bin(0).xMid(), weight); break; case 10433: case 20433: _histMeanMultiDs1Plus->fill(_histMeanMultiDs1Plus->bin(0).xMid(), weight); break; case 435: _histMeanMultiDs2Plus->fill(_histMeanMultiDs2Plus->bin(0).xMid(), weight); break; case 2212: _histMeanMultiP->fill(_histMeanMultiP->bin(0).xMid(), weight); break; case 3122: _histMeanMultiLambda->fill(_histMeanMultiLambda->bin(0).xMid(), weight); break; case 3212: _histMeanMultiSigma0->fill(_histMeanMultiSigma0->bin(0).xMid(), weight); break; case 3112: _histMeanMultiSigmaMinus->fill(_histMeanMultiSigmaMinus->bin(0).xMid(), weight); _histMeanMultiSigmaPlusMinus->fill(_histMeanMultiSigmaPlusMinus->bin(0).xMid(), weight); break; case 3222: _histMeanMultiSigmaPlus->fill(_histMeanMultiSigmaPlus->bin(0).xMid(), weight); _histMeanMultiSigmaPlusMinus->fill(_histMeanMultiSigmaPlusMinus->bin(0).xMid(), weight); break; case 3312: _histMeanMultiXiMinus->fill(_histMeanMultiXiMinus->bin(0).xMid(), weight); break; case 2224: _histMeanMultiDelta1232PlusPlus->fill(_histMeanMultiDelta1232PlusPlus->bin(0).xMid(), weight); break; case 3114: _histMeanMultiSigma1385Minus->fill(_histMeanMultiSigma1385Minus->bin(0).xMid(), weight); _histMeanMultiSigma1385PlusMinus->fill(_histMeanMultiSigma1385PlusMinus->bin(0).xMid(), weight); break; case 3224: _histMeanMultiSigma1385Plus->fill(_histMeanMultiSigma1385Plus->bin(0).xMid(), weight); _histMeanMultiSigma1385PlusMinus->fill(_histMeanMultiSigma1385PlusMinus->bin(0).xMid(), weight); break; case 3324: _histMeanMultiXi1530_0->fill(_histMeanMultiXi1530_0->bin(0).xMid(), weight); break; case 3334: _histMeanMultiOmegaMinus->fill(_histMeanMultiOmegaMinus->bin(0).xMid(), weight); break; case 4122: _histMeanMultiLambda_c_Plus->fill(_histMeanMultiLambda_c_Plus->bin(0).xMid(), weight); break; case 5122: _histMeanMultiLambda_b_0->fill(_histMeanMultiLambda_b_0->bin(0).xMid(), weight); break; case 3124: _histMeanMultiLambda1520->fill(_histMeanMultiLambda1520->bin(0).xMid(), weight); break; } } } if (sqrtS()/GeV >= 130 && sqrtS()/GeV <= 200) { foreach (const Particle& p, ufs.particles()) { const PdgId id = p.abspid(); switch (id) { case 211: _weightedTotalNumPiPlus += weight; break; case 321: _histMeanMultiKPlus->fill(_histMeanMultiKPlus->bin(0).xMid(), weight); break; case 130: case 310: _histMeanMultiK0->fill(_histMeanMultiK0->bin(0).xMid(), weight); break; case 2212: _histMeanMultiP->fill(_histMeanMultiP->bin(0).xMid(), weight); break; case 3122: _histMeanMultiLambda->fill(_histMeanMultiLambda->bin(0).xMid(), weight); break; } } } } void init() { declare(ChargedFinalState(), "FS"); - declare(UnstableFinalState(), "UFS"); + declare(UnstableParticles(), "UFS"); if (sqrtS()/GeV >= 9.5 && sqrtS()/GeV <= 10.5) { _histMeanMultiPi0 = bookHisto1D( 2, 1, 1); _histMeanMultiKPlus = bookHisto1D( 3, 1, 1); _histMeanMultiK0 = bookHisto1D( 4, 1, 1); _histMeanMultiEta = bookHisto1D( 5, 1, 1); _histMeanMultiEtaPrime = bookHisto1D( 6, 1, 1); _histMeanMultiDPlus = bookHisto1D( 7, 1, 1); _histMeanMultiD0 = bookHisto1D( 8, 1, 1); _histMeanMultiDPlus_s = bookHisto1D( 9, 1, 1); _histMeanMultiF0_980 = bookHisto1D(13, 1, 1); _histMeanMultiRho770_0 = bookHisto1D(15, 1, 1); _histMeanMultiOmega782 = bookHisto1D(17, 1, 1); _histMeanMultiKStar892Plus = bookHisto1D(18, 1, 1); _histMeanMultiKStar892_0 = bookHisto1D(19, 1, 1); _histMeanMultiPhi1020 = bookHisto1D(20, 1, 1); _histMeanMultiDStar2010Plus = bookHisto1D(21, 1, 1); _histMeanMultiDStar2007_0 = bookHisto1D(22, 1, 1); _histMeanMultiDStar_s2112Plus = bookHisto1D(23, 1, 1); _histMeanMultiJPsi1S = bookHisto1D(25, 1, 1); _histMeanMultiF2_1270 = bookHisto1D(31, 1, 1); _histMeanMultiP = bookHisto1D(38, 1, 1); _histMeanMultiLambda = bookHisto1D(39, 1, 1); _histMeanMultiSigma0 = bookHisto1D(40, 1, 1); _histMeanMultiXiMinus = bookHisto1D(44, 1, 1); _histMeanMultiDelta1232PlusPlus = bookHisto1D(45, 1, 1); _histMeanMultiSigma1385Minus = bookHisto1D(46, 1, 1); _histMeanMultiSigma1385Plus = bookHisto1D(47, 1, 1); _histMeanMultiSigma1385PlusMinus = bookHisto1D(48, 1, 1); _histMeanMultiXi1530_0 = bookHisto1D(49, 1, 1); _histMeanMultiOmegaMinus = bookHisto1D(50, 1, 1); _histMeanMultiLambda_c_Plus = bookHisto1D(51, 1, 1); _histMeanMultiSigma_c_PlusPlus_0 = bookHisto1D(53, 1, 1); _histMeanMultiLambda1520 = bookHisto1D(54, 1, 1); } if (sqrtS()/GeV >= 29 && sqrtS()/GeV <= 35) { _histMeanMultiPi0 = bookHisto1D( 2, 1, 2); _histMeanMultiKPlus = bookHisto1D( 3, 1, 2); _histMeanMultiK0 = bookHisto1D( 4, 1, 2); _histMeanMultiEta = bookHisto1D( 5, 1, 2); _histMeanMultiEtaPrime = bookHisto1D( 6, 1, 2); _histMeanMultiDPlus = bookHisto1D( 7, 1, 2); _histMeanMultiD0 = bookHisto1D( 8, 1, 2); _histMeanMultiDPlus_s = bookHisto1D( 9, 1, 2); _histMeanMultiF0_980 = bookHisto1D(13, 1, 2); _histMeanMultiRho770_0 = bookHisto1D(15, 1, 2); _histMeanMultiKStar892Plus = bookHisto1D(18, 1, 2); _histMeanMultiKStar892_0 = bookHisto1D(19, 1, 2); _histMeanMultiPhi1020 = bookHisto1D(20, 1, 2); _histMeanMultiDStar2010Plus = bookHisto1D(21, 1, 2); _histMeanMultiDStar2007_0 = bookHisto1D(22, 1, 2); _histMeanMultiF2_1270 = bookHisto1D(31, 1, 2); _histMeanMultiK2Star1430Plus = bookHisto1D(33, 1, 1); _histMeanMultiK2Star1430_0 = bookHisto1D(34, 1, 1); _histMeanMultiP = bookHisto1D(38, 1, 2); _histMeanMultiLambda = bookHisto1D(39, 1, 2); _histMeanMultiXiMinus = bookHisto1D(44, 1, 2); _histMeanMultiSigma1385Minus = bookHisto1D(46, 1, 2); _histMeanMultiSigma1385Plus = bookHisto1D(47, 1, 2); _histMeanMultiSigma1385PlusMinus = bookHisto1D(48, 1, 2); _histMeanMultiOmegaMinus = bookHisto1D(50, 1, 2); _histMeanMultiLambda_c_Plus = bookHisto1D(51, 1, 2); } if (sqrtS()/GeV >= 89.5 && sqrtS()/GeV <= 91.8) { _histMeanMultiPi0 = bookHisto1D( 2, 1, 3); _histMeanMultiKPlus = bookHisto1D( 3, 1, 3); _histMeanMultiK0 = bookHisto1D( 4, 1, 3); _histMeanMultiEta = bookHisto1D( 5, 1, 3); _histMeanMultiEtaPrime = bookHisto1D( 6, 1, 3); _histMeanMultiDPlus = bookHisto1D( 7, 1, 3); _histMeanMultiD0 = bookHisto1D( 8, 1, 3); _histMeanMultiDPlus_s = bookHisto1D( 9, 1, 3); _histMeanMultiBPlus_B0_d = bookHisto1D(10, 1, 1); _histMeanMultiBPlus_u = bookHisto1D(11, 1, 1); _histMeanMultiB0_s = bookHisto1D(12, 1, 1); _histMeanMultiF0_980 = bookHisto1D(13, 1, 3); _histMeanMultiA0_980Plus = bookHisto1D(14, 1, 1); _histMeanMultiRho770_0 = bookHisto1D(15, 1, 3); _histMeanMultiRho770Plus = bookHisto1D(16, 1, 1); _histMeanMultiOmega782 = bookHisto1D(17, 1, 2); _histMeanMultiKStar892Plus = bookHisto1D(18, 1, 3); _histMeanMultiKStar892_0 = bookHisto1D(19, 1, 3); _histMeanMultiPhi1020 = bookHisto1D(20, 1, 3); _histMeanMultiDStar2010Plus = bookHisto1D(21, 1, 3); _histMeanMultiDStar_s2112Plus = bookHisto1D(23, 1, 2); _histMeanMultiBStar = bookHisto1D(24, 1, 1); _histMeanMultiJPsi1S = bookHisto1D(25, 1, 2); _histMeanMultiPsi2S = bookHisto1D(26, 1, 1); _histMeanMultiUpsilon1S = bookHisto1D(27, 1, 1); _histMeanMultiF1_1285 = bookHisto1D(28, 1, 1); _histMeanMultiF1_1420 = bookHisto1D(29, 1, 1); _histMeanMultiChi_c1_3510 = bookHisto1D(30, 1, 1); _histMeanMultiF2_1270 = bookHisto1D(31, 1, 3); _histMeanMultiF2Prime1525 = bookHisto1D(32, 1, 1); _histMeanMultiK2Star1430_0 = bookHisto1D(34, 1, 2); _histMeanMultiBStarStar = bookHisto1D(35, 1, 1); _histMeanMultiDs1Plus = bookHisto1D(36, 1, 1); _histMeanMultiDs2Plus = bookHisto1D(37, 1, 1); _histMeanMultiP = bookHisto1D(38, 1, 3); _histMeanMultiLambda = bookHisto1D(39, 1, 3); _histMeanMultiSigma0 = bookHisto1D(40, 1, 2); _histMeanMultiSigmaMinus = bookHisto1D(41, 1, 1); _histMeanMultiSigmaPlus = bookHisto1D(42, 1, 1); _histMeanMultiSigmaPlusMinus = bookHisto1D(43, 1, 1); _histMeanMultiXiMinus = bookHisto1D(44, 1, 3); _histMeanMultiDelta1232PlusPlus = bookHisto1D(45, 1, 2); _histMeanMultiSigma1385Minus = bookHisto1D(46, 1, 3); _histMeanMultiSigma1385Plus = bookHisto1D(47, 1, 3); _histMeanMultiSigma1385PlusMinus = bookHisto1D(48, 1, 3); _histMeanMultiXi1530_0 = bookHisto1D(49, 1, 2); _histMeanMultiOmegaMinus = bookHisto1D(50, 1, 3); _histMeanMultiLambda_c_Plus = bookHisto1D(51, 1, 3); _histMeanMultiLambda_b_0 = bookHisto1D(52, 1, 1); _histMeanMultiLambda1520 = bookHisto1D(54, 1, 2); } if (sqrtS()/GeV >= 130 && sqrtS()/GeV <= 200) { _histMeanMultiKPlus = bookHisto1D( 3, 1, 4); _histMeanMultiK0 = bookHisto1D( 4, 1, 4); _histMeanMultiP = bookHisto1D(38, 1, 4); _histMeanMultiLambda = bookHisto1D(39, 1, 4); } } // Finalize void finalize() { if (sqrtS()/GeV >= 9.5 && sqrtS()/GeV <= 10.5) { scale(_histMeanMultiPi0 , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiKPlus , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiK0 , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiEta , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiEtaPrime , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiDPlus , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiD0 , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiDPlus_s , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiF0_980 , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiRho770_0 , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiOmega782 , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiKStar892Plus , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiKStar892_0 , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiPhi1020 , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiDStar2010Plus , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiDStar2007_0 , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiDStar_s2112Plus , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiJPsi1S , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiF2_1270 , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiP , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiLambda , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiSigma0 , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiXiMinus , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiDelta1232PlusPlus , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiSigma1385Minus , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiSigma1385Plus , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiSigma1385PlusMinus, 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiXi1530_0 , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiOmegaMinus , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiLambda_c_Plus , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiSigma_c_PlusPlus_0, 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiLambda1520 , 1.0/_weightedTotalNumPiPlus); } if (sqrtS()/GeV >= 29 && sqrtS()/GeV <= 35) { scale(_histMeanMultiPi0 , 5.0/_weightedTotalNumPiPlus); scale(_histMeanMultiKPlus , 5.0/_weightedTotalNumPiPlus); scale(_histMeanMultiK0 , 5.0/_weightedTotalNumPiPlus); scale(_histMeanMultiEta , 5.0/_weightedTotalNumPiPlus); scale(_histMeanMultiEtaPrime , 5.0/_weightedTotalNumPiPlus); scale(_histMeanMultiDPlus , 5.0/_weightedTotalNumPiPlus); scale(_histMeanMultiD0 , 5.0/_weightedTotalNumPiPlus); scale(_histMeanMultiDPlus_s , 5.0/_weightedTotalNumPiPlus); scale(_histMeanMultiF0_980 , 5.0/_weightedTotalNumPiPlus); scale(_histMeanMultiRho770_0 , 5.0/_weightedTotalNumPiPlus); scale(_histMeanMultiKStar892Plus , 5.0/_weightedTotalNumPiPlus); scale(_histMeanMultiKStar892_0 , 5.0/_weightedTotalNumPiPlus); scale(_histMeanMultiPhi1020 , 5.0/_weightedTotalNumPiPlus); scale(_histMeanMultiDStar2010Plus , 5.0/_weightedTotalNumPiPlus); scale(_histMeanMultiDStar2007_0 , 5.0/_weightedTotalNumPiPlus); scale(_histMeanMultiF2_1270 , 5.0/_weightedTotalNumPiPlus); scale(_histMeanMultiK2Star1430Plus , 5.0/_weightedTotalNumPiPlus); scale(_histMeanMultiK2Star1430_0 , 5.0/_weightedTotalNumPiPlus); scale(_histMeanMultiP , 5.0/_weightedTotalNumPiPlus); scale(_histMeanMultiLambda , 5.0/_weightedTotalNumPiPlus); scale(_histMeanMultiXiMinus , 5.0/_weightedTotalNumPiPlus); scale(_histMeanMultiSigma1385Minus , 5.0/_weightedTotalNumPiPlus); scale(_histMeanMultiSigma1385Plus , 5.0/_weightedTotalNumPiPlus); scale(_histMeanMultiSigma1385PlusMinus, 5.0/_weightedTotalNumPiPlus); scale(_histMeanMultiOmegaMinus , 5.0/_weightedTotalNumPiPlus); scale(_histMeanMultiLambda_c_Plus , 5.0/_weightedTotalNumPiPlus); } if (sqrtS()/GeV >= 89.5 && sqrtS()/GeV <= 91.8) { scale(_histMeanMultiPi0 , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiKPlus , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiK0 , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiEta , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiEtaPrime , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiDPlus , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiD0 , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiDPlus_s , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiBPlus_B0_d , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiBPlus_u , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiB0_s , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiF0_980 , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiA0_980Plus , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiRho770_0 , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiRho770Plus , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiOmega782 , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiKStar892Plus , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiKStar892_0 , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiPhi1020 , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiDStar2010Plus , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiDStar_s2112Plus , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiBStar , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiJPsi1S , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiPsi2S , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiUpsilon1S , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiF1_1285 , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiF1_1420 , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiChi_c1_3510 , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiF2_1270 , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiF2Prime1525 , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiK2Star1430_0 , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiBStarStar , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiDs1Plus , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiDs2Plus , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiP , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiLambda , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiSigma0 , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiSigmaMinus , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiSigmaPlus , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiSigmaPlusMinus , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiXiMinus , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiDelta1232PlusPlus , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiSigma1385Minus , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiSigma1385Plus , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiSigma1385PlusMinus, 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiXi1530_0 , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiOmegaMinus , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiLambda_c_Plus , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiLambda_b_0 , 1.0/_weightedTotalNumPiPlus); scale(_histMeanMultiLambda1520 , 1.0/_weightedTotalNumPiPlus); } if (sqrtS()/GeV >= 130 && sqrtS()/GeV <= 200) { scale(_histMeanMultiKPlus , 70.0/_weightedTotalNumPiPlus); scale(_histMeanMultiK0 , 70.0/_weightedTotalNumPiPlus); scale(_histMeanMultiP , 70.0/_weightedTotalNumPiPlus); scale(_histMeanMultiLambda , 70.0/_weightedTotalNumPiPlus); } } //@} private: double _weightedTotalNumPiPlus; Histo1DPtr _histMeanMultiPi0; Histo1DPtr _histMeanMultiKPlus; Histo1DPtr _histMeanMultiK0; Histo1DPtr _histMeanMultiEta; Histo1DPtr _histMeanMultiEtaPrime; Histo1DPtr _histMeanMultiDPlus; Histo1DPtr _histMeanMultiD0; Histo1DPtr _histMeanMultiDPlus_s; Histo1DPtr _histMeanMultiBPlus_B0_d; Histo1DPtr _histMeanMultiBPlus_u; Histo1DPtr _histMeanMultiB0_s; Histo1DPtr _histMeanMultiF0_980; Histo1DPtr _histMeanMultiA0_980Plus; Histo1DPtr _histMeanMultiRho770_0; Histo1DPtr _histMeanMultiRho770Plus; Histo1DPtr _histMeanMultiOmega782; Histo1DPtr _histMeanMultiKStar892Plus; Histo1DPtr _histMeanMultiKStar892_0; Histo1DPtr _histMeanMultiPhi1020; Histo1DPtr _histMeanMultiDStar2010Plus; Histo1DPtr _histMeanMultiDStar2007_0; Histo1DPtr _histMeanMultiDStar_s2112Plus; Histo1DPtr _histMeanMultiBStar; Histo1DPtr _histMeanMultiJPsi1S; Histo1DPtr _histMeanMultiPsi2S; Histo1DPtr _histMeanMultiUpsilon1S; Histo1DPtr _histMeanMultiF1_1285; Histo1DPtr _histMeanMultiF1_1420; Histo1DPtr _histMeanMultiChi_c1_3510; Histo1DPtr _histMeanMultiF2_1270; Histo1DPtr _histMeanMultiF2Prime1525; Histo1DPtr _histMeanMultiK2Star1430Plus; Histo1DPtr _histMeanMultiK2Star1430_0; Histo1DPtr _histMeanMultiBStarStar; Histo1DPtr _histMeanMultiDs1Plus; Histo1DPtr _histMeanMultiDs2Plus; Histo1DPtr _histMeanMultiP; Histo1DPtr _histMeanMultiLambda; Histo1DPtr _histMeanMultiSigma0; Histo1DPtr _histMeanMultiSigmaMinus; Histo1DPtr _histMeanMultiSigmaPlus; Histo1DPtr _histMeanMultiSigmaPlusMinus; Histo1DPtr _histMeanMultiXiMinus; Histo1DPtr _histMeanMultiDelta1232PlusPlus; Histo1DPtr _histMeanMultiSigma1385Minus; Histo1DPtr _histMeanMultiSigma1385Plus; Histo1DPtr _histMeanMultiSigma1385PlusMinus; Histo1DPtr _histMeanMultiXi1530_0; Histo1DPtr _histMeanMultiOmegaMinus; Histo1DPtr _histMeanMultiLambda_c_Plus; Histo1DPtr _histMeanMultiLambda_b_0; Histo1DPtr _histMeanMultiSigma_c_PlusPlus_0; Histo1DPtr _histMeanMultiLambda1520; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(PDG_HADRON_MULTIPLICITIES_RATIOS); } diff --git a/analyses/pluginRHIC/BRAHMS_2004_I647076.cc b/analyses/pluginRHIC/BRAHMS_2004_I647076.cc --- a/analyses/pluginRHIC/BRAHMS_2004_I647076.cc +++ b/analyses/pluginRHIC/BRAHMS_2004_I647076.cc @@ -1,217 +1,217 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/SingleValueProjection.hh" #include "Rivet/Projections/ImpactParameterProjection.hh" #include "Rivet/Projections/FinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" #include "Rivet/Projections/ChargedFinalState.hh" namespace Rivet { /// @brief BRAHMS Centrality projection. class BRAHMSCentrality : public SingleValueProjection { public: // Constructor BRAHMSCentrality() : SingleValueProjection() { // Using here the BRAHMS reaction centrality from eg. 1602.01183, which // might not be correct. declare(ChargedFinalState(Cuts::pT > 0.1*GeV && Cuts::abseta < 2.2), "ChargedFinalState"); } // Destructor virtual ~BRAHMSCentrality() {} // Clone on the heap. DEFAULT_RIVET_PROJ_CLONE(BRAHMSCentrality); protected: // Do the projection. Count the number of charged particles in // the specified range. virtual void project(const Event& e) { clear(); set(apply (e, "ChargedFinalState").particles().size()); } // Compare to another projection. virtual int compare(const Projection& p) const { // This projection is only used for the analysis below. return UNDEFINED; } }; /// @brief Brahms centrality calibration analysis based on the // BrahmsCentrality projection. No data is given for this // analysis, so one MUST do a calibration run. class BRAHMS_2004_CENTRALITY : public Analysis { public: // Constructor BRAHMS_2004_CENTRALITY() : Analysis("BRAHMS_2004_CENTRALITY") {} // Initialize the analysis void init() { declare(BRAHMSCentrality(),"Centrality"); declare(ImpactParameterProjection(), "IMP"); // The central multiplicity. mult = bookHisto1D("mult",450,0,4500); // Safeguard against filling preloaded histograms. done = (mult->numEntries() > 0); // The impact parameter. imp = bookHisto1D("mult_IMP",100,0,20); } // Analyse a single event void analyze(const Event& event) { if (done) return; // Fill impact parameter. imp->fill(apply(event,"IMP")(), event.weight()); // Fill multiplicity. mult->fill(apply(event,"Centrality")(), event.weight()); } // Finalize the analysis void finalize() { // Normalize the distributions, safeguarding against // yoda normalization error. if(mult->numEntries() > 0) mult->normalize(); if(imp->numEntries() > 0) imp->normalize(); } private: // Histograms. Histo1DPtr mult; Histo1DPtr imp; // Flag to test if we have preloaded histograms. bool done; }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(BRAHMS_2004_CENTRALITY); /// @brief Brahms pT spectra for id particles (pi+, pi-, K+, K-) // in small bins of rapidity, 5% central collisions. // System: AuAu @ 200GeV/nn. class BRAHMS_2004_I647076 : public Analysis { public: /// Constructor DEFAULT_RIVET_ANALYSIS_CTOR(BRAHMS_2004_I647076); /// @name Analysis methods //@{ /// Book histograms and initialise projections before the run void init() { // Initialise and register projections // Centrality Projection. declareCentrality(BRAHMSCentrality(), "BRAHMS_2004_CENTRALITY","mult","BCEN"); // TODO: Feed down correction is unclear. declare(FinalState(Cuts::rap < 4 && Cuts::rap > -0.1 && Cuts::pT > 100*MeV), "FS"); // The measured rapidity intervals for pions. rapIntervalsPi = {{-0.1,0.},{0.,0.1},{0.4,0.6},{0.6,0.8},{0.8,1.0}, {1.0,1.2},{1.2,1.4},{2.1,2.3},{2.4,2.6},{3.0,3.1},{3.1,3.2},{3.2,3.3}, {3.3,3.4},{3.4,3.66}}; // The measured rapidity intervals for kaons. rapIntervalsK = {{-0.1,0.},{0.,0.1},{0.4,0.6},{0.6,0.8},{0.8,1.0}, {1.0,1.2},{2.0,2.2},{2.3,2.5},{2.9,3.0},{3.0,3.1},{3.1,3.2},{3.2,3.4}}; // Book histograms for (int i = 1, N = rapIntervalsPi.size(); i <= N; ++i) { piPlus.push_back(bookHisto1D(1, 1, i)); piMinus.push_back(bookHisto1D(1, 1, 14 + i)); } for (int i = 1, N = rapIntervalsK.size(); i <= N; ++i) { kPlus.push_back(bookHisto1D(2, 1, i)); kMinus.push_back(bookHisto1D(2, 1, 12 + i)); } // Counter for accepted sum of weights (centrality cut). centSow = bookCounter("centSow"); } /// Perform the per-event analysis void analyze(const Event& event) { const double w = event.weight(); // Reject all non-central events. The paper does not speak of // any other event trigger, which in any case should matter // little for central events. if(apply(event,"BCEN")() > 5.0) return; // Keep track of sum of weights. centSow->fill(w); const FinalState& fs = apply(event,"FS"); // Loop over particles. for (const auto& p : fs.particles()) { const double y = p.rapidity(); const double pT = p.pT(); const int id = p.pid(); // First pions. if (abs(id) == 211) { // Protect against decaying K0S and Lambda if (p.hasAncestor(310) || p.hasAncestor(-310) || p.hasAncestor(3122) || p.hasAncestor(3122)) continue; for (int i = 0, N = rapIntervalsPi.size(); i < N; ++i) { if (y > rapIntervalsPi[i].first && y <= rapIntervalsPi[i].second) { const double dy = rapIntervalsPi[i].second - rapIntervalsPi[i].first; const double nWeight = w / ( 2.*M_PI*pT*dy); if (id == 211) piPlus[i]->fill(pT, nWeight); else piMinus[i]->fill(pT, nWeight); break; } } } // Then kaons. else if (abs(id) == 321) { for (int i = 0, N = rapIntervalsK.size(); i < N; ++i) { if (y > rapIntervalsK[i].first && y <= rapIntervalsK[i].second) { const double dy = rapIntervalsK[i].second - rapIntervalsK[i].first; const double nWeight = w / ( 2.*M_PI*pT*dy); if (id == 321) kPlus[i]->fill(pT, nWeight); else kMinus[i]->fill(pT, nWeight); break; } } } } } /// Normalise histograms etc., after the run void finalize() { // Normalize all histograms to per-event yields. for (int i = 0, N = rapIntervalsPi.size(); i < N; ++i) { piPlus[i]->scaleW(1./centSow->sumW()); piMinus[i]->scaleW(1./centSow->sumW()); } for (int i = 0, N = rapIntervalsK.size(); i < N; ++i) { kPlus[i]->scaleW(1./centSow->sumW()); kMinus[i]->scaleW(1./centSow->sumW()); } } //@} // The rapidity intervals. vector > rapIntervalsPi; vector > rapIntervalsK; /// @name Histograms //@{ vector piPlus; vector piMinus; vector kPlus; vector kMinus; CounterPtr centSow; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(BRAHMS_2004_I647076); } diff --git a/analyses/pluginRHIC/STAR_2006_S6860818.cc b/analyses/pluginRHIC/STAR_2006_S6860818.cc --- a/analyses/pluginRHIC/STAR_2006_S6860818.cc +++ b/analyses/pluginRHIC/STAR_2006_S6860818.cc @@ -1,193 +1,193 @@ // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/ChargedFinalState.hh" #include "Rivet/Projections/IdentifiedFinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief STAR strange particle spectra in pp at 200 GeV class STAR_2006_S6860818 : public Analysis { public: /// Constructor STAR_2006_S6860818() : Analysis("STAR_2006_S6860818"), _sumWeightSelected(0.0) { for (size_t i = 0; i < 4; i++) { _nBaryon[i] = 0; _nAntiBaryon[i] = 0; _nWeightedBaryon[i] = 0.; _nWeightedAntiBaryon[i] = 0.; } } /// Book projections and histograms void init() { ChargedFinalState bbc1(Cuts::etaIn(-5.0, -3.5)); // beam-beam-counter trigger ChargedFinalState bbc2(Cuts::etaIn( 3.5, 5.0)); // beam-beam-counter trigger declare(bbc1, "BBC1"); declare(bbc2, "BBC2"); - UnstableFinalState ufs(Cuts::abseta < 2.5); + UnstableParticles ufs(Cuts::abseta < 2.5); declare(ufs, "UFS"); _h_pT_k0s = bookHisto1D(1, 1, 1); _h_pT_kminus = bookHisto1D(1, 2, 1); _h_pT_kplus = bookHisto1D(1, 3, 1); _h_pT_lambda = bookHisto1D(1, 4, 1); _h_pT_lambdabar = bookHisto1D(1, 5, 1); _h_pT_ximinus = bookHisto1D(1, 6, 1); _h_pT_xiplus = bookHisto1D(1, 7, 1); //_h_pT_omega = bookHisto1D(1, 8, 1); _h_antibaryon_baryon_ratio = bookScatter2D(2, 1, 1); _h_lambar_lam = bookScatter2D(2, 2, 1); _h_xiplus_ximinus = bookScatter2D(2, 3, 1); _h_pT_vs_mass = bookProfile1D(3, 1, 1); } /// Do the analysis void analyze(const Event& event) { const ChargedFinalState& bbc1 = apply(event, "BBC1"); const ChargedFinalState& bbc2 = apply(event, "BBC2"); if (bbc1.size()<1 || bbc2.size()<1) { MSG_DEBUG("Failed beam-beam-counter trigger"); vetoEvent; } const double weight = event.weight(); - const UnstableFinalState& ufs = apply(event, "UFS"); + const UnstableParticles& ufs = apply(event, "UFS"); foreach (const Particle& p, ufs.particles()) { if (p.absrap() < 0.5) { const PdgId pid = p.pid(); const double pT = p.pT() / GeV; switch (abs(pid)) { case PID::PIPLUS: if (pid < 0) _h_pT_vs_mass->fill(0.1396, pT, weight); break; case PID::PROTON: if (pid < 0) _h_pT_vs_mass->fill(0.9383, pT, weight); if (pT > 0.4) { pid > 0 ? _nBaryon[0]++ : _nAntiBaryon[0]++; pid > 0 ? _nWeightedBaryon[0]+=weight : _nWeightedAntiBaryon[0]+=weight; } break; case PID::K0S: if (pT > 0.2) { _h_pT_k0s->fill(pT, weight/pT); } _h_pT_vs_mass->fill(0.5056, pT, weight); break; case PID::K0L: _h_pT_vs_mass->fill(0.5056, pT, weight); break; case 113: // rho0(770) _h_pT_vs_mass->fill(0.7755, pT, weight); break; case 313: // K0*(892) _h_pT_vs_mass->fill(0.8960, pT, weight); break; case 333: // phi(1020) _h_pT_vs_mass->fill(1.0190, pT, weight); break; case 3214: // Sigma(1385) _h_pT_vs_mass->fill(1.3840, pT, weight); break; case 3124: // Lambda(1520) _h_pT_vs_mass->fill(1.5200, pT, weight); break; case PID::KPLUS: if (pid < 0) _h_pT_vs_mass->fill(0.4856, pT, weight); if (pT > 0.2) { pid > 0 ? _h_pT_kplus->fill(pT, weight/pT) : _h_pT_kminus->fill(pT, weight/pT); } break; case PID::LAMBDA: pid > 0 ? _h_pT_vs_mass->fill(1.1050, pT, weight) : _h_pT_vs_mass->fill(1.1250, pT, weight); if (pT > 0.3) { pid > 0 ? _h_pT_lambda->fill(pT, weight/pT) : _h_pT_lambdabar->fill(pT, weight/pT); pid > 0 ? _nBaryon[1]++ : _nAntiBaryon[1]++; pid > 0 ? _nWeightedBaryon[1]+=weight : _nWeightedAntiBaryon[1]+=weight; } break; case PID::XIMINUS: pid > 0 ? _h_pT_vs_mass->fill(1.3120, pT, weight) : _h_pT_vs_mass->fill(1.3320, pT, weight); if (pT > 0.5) { pid > 0 ? _h_pT_ximinus->fill(pT, weight/pT) : _h_pT_xiplus->fill(pT, weight/pT); pid > 0 ? _nBaryon[2]++ : _nAntiBaryon[2]++; pid > 0 ? _nWeightedBaryon[2]+=weight : _nWeightedAntiBaryon[2]+=weight; } break; case PID::OMEGAMINUS: _h_pT_vs_mass->fill(1.6720, pT, weight); if (pT > 0.5) { //_h_pT_omega->fill(pT, weight/pT); pid > 0 ? _nBaryon[3]++ : _nAntiBaryon[3]++; pid > 0 ? _nWeightedBaryon[3]+=weight : _nWeightedAntiBaryon[3]+=weight; } break; } } } _sumWeightSelected += event.weight(); } /// Finalize void finalize() { std::vector points; for (size_t i=0 ; i<4 ; i++) { if (_nWeightedBaryon[i]==0 || _nWeightedAntiBaryon[i]==0) { points.push_back(Point2D(i,0,0.5,0)); } else { double y = _nWeightedAntiBaryon[i]/_nWeightedBaryon[i]; double dy = sqrt( 1./_nAntiBaryon[i] + 1./_nBaryon[i] ); points.push_back(Point2D(i,y,0.5,y*dy)); } } _h_antibaryon_baryon_ratio->addPoints( points ); divide(_h_pT_lambdabar,_h_pT_lambda, _h_lambar_lam); divide(_h_pT_xiplus,_h_pT_ximinus, _h_xiplus_ximinus); scale(_h_pT_k0s, 1./(2*M_PI*_sumWeightSelected)); scale(_h_pT_kminus, 1./(2*M_PI*_sumWeightSelected)); scale(_h_pT_kplus, 1./(2*M_PI*_sumWeightSelected)); scale(_h_pT_lambda, 1./(2*M_PI*_sumWeightSelected)); scale(_h_pT_lambdabar, 1./(2*M_PI*_sumWeightSelected)); scale(_h_pT_ximinus, 1./(2*M_PI*_sumWeightSelected)); scale(_h_pT_xiplus, 1./(2*M_PI*_sumWeightSelected)); //scale(_h_pT_omega, 1./(2*M_PI*_sumWeightSelected)); MSG_DEBUG("sumOfWeights() = " << sumOfWeights()); MSG_DEBUG("_sumWeightSelected = " << _sumWeightSelected); } private: double _sumWeightSelected; int _nBaryon[4]; int _nAntiBaryon[4]; double _nWeightedBaryon[4]; double _nWeightedAntiBaryon[4]; Histo1DPtr _h_pT_k0s, _h_pT_kminus, _h_pT_kplus, _h_pT_lambda, _h_pT_lambdabar, _h_pT_ximinus, _h_pT_xiplus; //Histo1DPtr _h_pT_omega; Scatter2DPtr _h_antibaryon_baryon_ratio; Profile1DPtr _h_pT_vs_mass; Scatter2DPtr _h_lambar_lam; Scatter2DPtr _h_xiplus_ximinus; }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(STAR_2006_S6860818); } diff --git a/doc/get-marcxml-inspire b/doc/get-marcxml-inspire --- a/doc/get-marcxml-inspire +++ b/doc/get-marcxml-inspire @@ -1,16 +1,16 @@ #! /usr/bin/env bash -for EXPT in alice atlas cms lhcb star phenix cleo h1 zeus hermes babar belle opal delphi aleph l3 jade argus; do +for EXPT in alice atlas cms lhcb star phenix cleo h1 zeus hermes babar belle opal delphi aleph l3 jade sld argus compass; do for YEAR in $(seq 1980 $(date +"%Y")); do OUT=inspire-$EXPT-$YEAR.marc.xml if [[ -e $OUT ]]; then echo "$OUT exists: skipping $EXPT $YEAR download" else echo "Downloading $EXPT $YEAR Inspire record to $OUT" #URL="https://cds.cern.ch/search?ln=en&cc=${COLL}&op1=a&m1=a&p1=${YEAR}&f1=year&rg=200&jrec=1&of=xm" URL="https://inspirehep.net/search?ln=en&ln=en&p=find+cn+${EXPT}+and+ac+100%2B+and+de+${YEAR}&of=xm&action_search=Search&sf=earliestdate&so=d&rm=&rg=250&sc=0&ot=001,024,035,037,710,245" echo "$URL" wget "$URL" -O $OUT fi done done diff --git a/doc/inspire-compass-1980.json b/doc/inspire-compass-1980.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1980.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-compass-1980.marc.xml b/doc/inspire-compass-1980.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1980.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-compass-1981.json b/doc/inspire-compass-1981.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1981.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-compass-1981.marc.xml b/doc/inspire-compass-1981.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1981.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-compass-1982.json b/doc/inspire-compass-1982.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1982.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-compass-1982.marc.xml b/doc/inspire-compass-1982.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1982.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-compass-1983.json b/doc/inspire-compass-1983.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1983.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-compass-1983.marc.xml b/doc/inspire-compass-1983.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1983.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-compass-1984.json b/doc/inspire-compass-1984.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1984.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-compass-1984.marc.xml b/doc/inspire-compass-1984.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1984.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-compass-1985.json b/doc/inspire-compass-1985.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1985.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-compass-1985.marc.xml b/doc/inspire-compass-1985.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1985.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-compass-1986.json b/doc/inspire-compass-1986.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1986.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-compass-1986.marc.xml b/doc/inspire-compass-1986.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1986.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-compass-1987.json b/doc/inspire-compass-1987.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1987.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-compass-1987.marc.xml b/doc/inspire-compass-1987.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1987.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-compass-1988.json b/doc/inspire-compass-1988.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1988.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-compass-1988.marc.xml b/doc/inspire-compass-1988.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1988.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-compass-1989.json b/doc/inspire-compass-1989.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1989.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-compass-1989.marc.xml b/doc/inspire-compass-1989.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1989.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-compass-1990.json b/doc/inspire-compass-1990.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1990.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-compass-1990.marc.xml b/doc/inspire-compass-1990.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1990.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-compass-1991.json b/doc/inspire-compass-1991.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1991.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-compass-1991.marc.xml b/doc/inspire-compass-1991.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1991.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-compass-1992.json b/doc/inspire-compass-1992.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1992.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-compass-1992.marc.xml b/doc/inspire-compass-1992.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1992.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-compass-1993.json b/doc/inspire-compass-1993.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1993.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-compass-1993.marc.xml b/doc/inspire-compass-1993.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1993.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-compass-1994.json b/doc/inspire-compass-1994.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1994.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-compass-1994.marc.xml b/doc/inspire-compass-1994.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1994.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-compass-1995.json b/doc/inspire-compass-1995.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1995.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-compass-1995.marc.xml b/doc/inspire-compass-1995.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1995.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-compass-1996.json b/doc/inspire-compass-1996.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1996.json @@ -0,0 +1,1 @@ +{"416782": ["COMPASS: A Proposal for a Common Muon and Proton Apparatus for Structure and Spectroscopy", "COMPASS", null, "298433", null, null, null, ["CERN-SPSLC-96-14", "CERN-SPSLC-P-297"]]} \ No newline at end of file diff --git a/doc/inspire-compass-1996.marc.xml b/doc/inspire-compass-1996.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1996.marc.xml @@ -0,0 +1,32 @@ + + + + + 416782 + + D96-16652 + DESY + + + Baum:1996yv + SPIRESTeX + + + 298433 + CDS + + + CERN-SPSLC-96-14 + + + CERN-SPSLC-P-297 + + + COMPASS: A Proposal for a Common Muon and Proton Apparatus for Structure and Spectroscopy + + + COMPASS + + + + \ No newline at end of file diff --git a/doc/inspire-compass-1997.json b/doc/inspire-compass-1997.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1997.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-compass-1997.marc.xml b/doc/inspire-compass-1997.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1997.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-compass-1998.json b/doc/inspire-compass-1998.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1998.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-compass-1998.marc.xml b/doc/inspire-compass-1998.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1998.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-compass-1999.json b/doc/inspire-compass-1999.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1999.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-compass-1999.marc.xml b/doc/inspire-compass-1999.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-1999.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-compass-2000.json b/doc/inspire-compass-2000.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2000.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-compass-2000.marc.xml b/doc/inspire-compass-2000.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2000.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-compass-2001.json b/doc/inspire-compass-2001.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2001.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-compass-2001.marc.xml b/doc/inspire-compass-2001.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2001.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-compass-2002.json b/doc/inspire-compass-2002.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2002.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-compass-2002.marc.xml b/doc/inspire-compass-2002.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2002.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-compass-2003.json b/doc/inspire-compass-2003.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2003.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-compass-2003.marc.xml b/doc/inspire-compass-2003.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2003.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-compass-2004.json b/doc/inspire-compass-2004.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2004.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-compass-2004.marc.xml b/doc/inspire-compass-2004.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2004.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-compass-2005.json b/doc/inspire-compass-2005.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2005.json @@ -0,0 +1,1 @@ +{"677550": ["First measurement of the transverse spin asymmetries of the deuteron in semi-inclusive deep inelastic scattering", "COMPASS", "10.1103/PhysRevLett.94.202002", "825244", "hep-ex/0503002", "ins677550", null, ["hep-ex/0503002", "CERN-PH-EP-2005-003", "DAPNIA-05-17"]], "697590": ["Gluon polarization in the nucleon from quasi-real photoproduction of high-p(T) hadron pairs", "COMPASS", "10.1016/j.physletb.2005.11.049", "906021", "hep-ex/0511028", null, null, ["hep-ex/0511028", "CERN-PH-EP-2005-049", "DAPNIA-05-297"]], "675838": ["Measurement of the spin structure of the deuteron in the DIS region", "COMPASS", "10.1016/j.physletb.2005.03.025", "819107", "hep-ex/0501073", "ins675838", null, ["hep-ex/0501073", "CERN-PH-EP-2005-001", "DAPNIA-05-11"]], "678751": ["Search for the Phi(1860) pentaquark at COMPASS", "COMPASS", "10.1140/epjc/s2005-02281-2", "828557", "hep-ex/0503033", null, null, ["hep-ex/0503033", "DAPNIA-05-29", "CERN-PH-EP-2005-009"]]} \ No newline at end of file diff --git a/doc/inspire-compass-2005.marc.xml b/doc/inspire-compass-2005.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2005.marc.xml @@ -0,0 +1,189 @@ + + + + + 697590 + + DOI + 10.1016/j.physletb.2005.11.049 + + + oai:arXiv.org:hep-ex/0511028 + oai:arXiv.org:hep-ex/0511028 + arXiv + + + D06-04817 + DESY + + + Ageev:2005pq + SPIRESTeX + + + CDS + 906021 + + + 2006PhLB..633...25C + ADS + + + hep-ex/0511028 + arXiv + hep-ex + + + CERN-PH-EP-2005-049 + + + DAPNIA-05-297 + + + Gluon polarization in the nucleon from quasi-real photoproduction of high-p(T) hadron pairs + + + COMPASS + + + + 678751 + + 10.1140/epjc/s2005-02281-2 + DOI + + + oai:arXiv.org:hep-ex/0503033 + oai:arXiv.org:hep-ex/0503033 + arXiv + + + D05-08274 + DESY + + + Ageev:2005ud + SPIRESTeX + + + CDS + 828557 + + + hep-ex/0503033 + arXiv + hep-ex + + + DAPNIA-05-29 + + + CERN-PH-EP-2005-009 + + + Search for the Phi(1860) pentaquark at COMPASS + + + COMPASS + + + + 677550 + + 10.1103/PhysRevLett.94.202002 + DOI + + + oai:arXiv.org:hep-ex/0503002 + oai:arXiv.org:hep-ex/0503002 + arXiv + + + D05-06738 + DESY + + + Alexakhin:2005iw + SPIRESTeX + + + CDS + 825244 + + + 2005PhRvL..94t2002A + ADS + + + ins677550 + HEPDATA + + + hep-ex/0503002 + arXiv + hep-ex + + + CERN-PH-EP-2005-003 + + + DAPNIA-05-17 + + + First measurement of the transverse spin asymmetries of the deuteron in semi-inclusive deep inelastic scattering + + + COMPASS + + + + 675838 + + 10.1016/j.physletb.2005.03.025 + DOI + + + oai:arXiv.org:hep-ex/0501073 + oai:arXiv.org:hep-ex/0501073 + arXiv + + + D05-05328 + DESY + + + Ageev:2005gh + SPIRESTeX + + + CDS + 819107 + + + 2005PhLB..612..154C + ADS + + + ins675838 + HEPDATA + + + hep-ex/0501073 + arXiv + hep-ex + + + CERN-PH-EP-2005-001 + + + DAPNIA-05-11 + + + Measurement of the spin structure of the deuteron in the DIS region + + + COMPASS + + + + \ No newline at end of file diff --git a/doc/inspire-compass-2006.json b/doc/inspire-compass-2006.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2006.json @@ -0,0 +1,1 @@ +{"726688": ["The Deuteron Spin-dependent Structure Function g1(d) and its First Moment", "COMPASS", "10.1016/j.physletb.2006.12.076", "984659", "hep-ex/0609038", "ins726688", null, ["hep-ex/0609038", "DAPNIA-06-234", "CERN-PH-EP-2006-029"]], "729695": ["A New measurement of the Collins and Sivers asymmetries on a transversely polarised deuteron target", "COMPASS", "10.1016/j.nuclphysb.2006.10.027", "990859", "hep-ex/0610068", "ins729695", null, ["DAPNIA-06-341", "CERN-PH-EP-2006-031", "hep-ex/0610068", "CERN-PH-EP_2006-031"]]} \ No newline at end of file diff --git a/doc/inspire-compass-2006.marc.xml b/doc/inspire-compass-2006.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2006.marc.xml @@ -0,0 +1,96 @@ + + + + + 726688 + + DOI + 10.1016/j.physletb.2006.12.076 + + + oai:arXiv.org:hep-ex/0609038 + arXiv + + + Alexakhin:2006oza + INSPIRETeX + + + CDS + 984659 + + + 2007PhLB..647....8C + ADS + + + ins726688 + HEPDATA + + + arXiv + hep-ex/0609038 + hep-ex + + + DAPNIA-06-234 + + + CERN-PH-EP-2006-029 + + + The Deuteron Spin-dependent Structure Function g1(d) and its First Moment + + + COMPASS + + + + 729695 + + DOI + 10.1016/j.nuclphysb.2006.10.027 + + + DESY + D07-01384 + + + SPIRESTeX + Ageev:2006da + + + arXiv + oai:arXiv.org:hep-ex/0610068 + + + CDS + 990859 + + + ins729695 + HEPDATA + + + DAPNIA-06-341 + + + CERN-PH-EP-2006-031 + + + arXiv + hep-ex/0610068 + hep-ex + + + CERN-PH-EP_2006-031 + + + A New measurement of the Collins and Sivers asymmetries on a transversely polarised deuteron target + + + COMPASS + + + + \ No newline at end of file diff --git a/doc/inspire-compass-2007.json b/doc/inspire-compass-2007.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2007.json @@ -0,0 +1,1 @@ +{"748623": ["Double spin asymmetry in exclusive rho0 muoproduction at COMPASS", "COMPASS", "10.1140/epjc/s10052-007-0376-6", "1030207", "0704.1863", null, null, ["CERN-PH-EP-2007-009"]], "747655": ["The COMPASS experiment at CERN", "COMPASS", "10.1016/j.nima.2007.03.026", "1028264", "hep-ex/0703049", null, null, ["hep-ex/0703049", "CERN-PH-EP-2007-001"]], "756797": ["The Polarised Valence Quark Distribution from semi-inclusive DIS", "COMPASS", "10.1016/j.physletb.2007.12.056", "1048824", "0707.4077", null, null, ["CERN-PH-EP-2007-024"]], "742118": ["Spin asymmetry A1(d) and the spin-dependent structure function g1(d) of the deuteron at low values of x and Q**2", "Compass", "10.1016/j.physletb.2007.02.034", "1009470", "hep-ex/0701014", "ins742118", null, ["hep-ex/0701014", "DAPNIA-07-18", "CERN-PH-EP-2006-040"]]} \ No newline at end of file diff --git a/doc/inspire-compass-2007.marc.xml b/doc/inspire-compass-2007.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2007.marc.xml @@ -0,0 +1,180 @@ + + + + + 756797 + + 10.1016/j.physletb.2007.12.056 + DOI + + + oai:arXiv.org:0707.4077 + oai:arXiv.org:0707.4077 + arXiv + + + D07-07824 + DESY + + + Alekseev:2007vi + SPIRESTeX + + + CDS + 1048824 + + + 2008PhLB..660..458C + ADS + + + arXiv:0707.4077 + arXiv + hep-ex + + + CERN-PH-EP-2007-024 + + + The Polarised Valence Quark Distribution from semi-inclusive DIS + + + COMPASS + + + + 748623 + + DOI + 10.1140/epjc/s10052-007-0376-6 + + + oai:arXiv.org:0704.1863 + oai:arXiv.org:0704.1863 + arXiv + + + D07-06882 + DESY + + + Alexakhin:2007mw + SPIRESTeX + + + CDS + 1030207 + + + 2007EPJC...52..255A + ADS + + + arXiv:0704.1863 + arXiv + hep-ex + + + CERN-PH-EP-2007-009 + + + Double spin asymmetry in exclusive rho0 muoproduction at COMPASS + + + COMPASS + + + + 742118 + + DOI + 10.1016/j.physletb.2007.02.034 + + + arXiv + oai:arXiv.org:hep-ex/0701014 + oai:arXiv.org:hep-ex/0701014 + + + DESY + D07-05682 + + + SPIRESTeX + Ageev:2007du + + + CDS + 1009470 + + + 2007PhLB..647..330C + ADS + + + ins742118 + HEPDATA + + + arXiv + hep-ex/0701014 + hep-ex + + + DAPNIA-07-18 + + + CERN-PH-EP-2006-040 + + + Spin asymmetry A1(d) and the spin-dependent structure function g1(d) of the deuteron at low values of x and Q**2 + + + Compass + + + + 747655 + + DOI + 10.1016/j.nima.2007.03.026 + + + arXiv + oai:arXiv.org:hep-ex/0703049 + oai:arXiv.org:hep-ex/0703049 + + + DESY + D07-06007 + + + SPIRESTeX + Abbon:2007pq + + + CDS + 1028264 + + + ADS + 2007NIMPA.577..455A + + + arXiv + hep-ex/0703049 + hep-ex + + + CERN-PH-EP-2007-001 + + + The COMPASS experiment at CERN + + + COMPASS + + + + \ No newline at end of file diff --git a/doc/inspire-compass-2008.json b/doc/inspire-compass-2008.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2008.json @@ -0,0 +1,1 @@ +{"779473": ["Collins and Sivers asymmetries for pions and kaons in muon-deuteron DIS", "COMPASS", "10.1016/j.physletb.2009.01.060", "1089356", "0802.2160", "ins779473", null, ["IRFU-08-15", "CERN-PH-EP-2008-002"]], "779857": ["Direct Measurement of the Gluon Polarisation in the Nucleon via Charmed Meson Production", "COMPASS", null, "1090440", "0802.3023", null, null, ["IRFU-08-14", "CERN-PH-EP-2008-003"]]} \ No newline at end of file diff --git a/doc/inspire-compass-2008.marc.xml b/doc/inspire-compass-2008.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2008.marc.xml @@ -0,0 +1,91 @@ + + + + + 779857 + + oai:arXiv.org:0802.3023 + oai:arXiv.org:0802.3023 + arXiv + + + D08-11206 + DESY + + + Alekseev:2008cz + SPIRESTeX + + + CDS + 1090440 + + + COMPASS + + + arXiv:0802.3023 + arXiv + hep-ex + + + IRFU-08-14 + + + CERN-PH-EP-2008-003 + + + Direct Measurement of the Gluon Polarisation in the Nucleon via Charmed Meson Production + + + + 779473 + + DOI + 10.1016/j.physletb.2009.01.060 + + + arXiv + oai:arXiv.org:0802.2160 + oai:arXiv.org:0802.2160 + + + DESY + D08-11192 + + + SPIRESTeX + Alekseev:2008aa + + + CDS + 1089356 + + + 2009PhLB..673..127C + ADS + + + ins779473 + HEPDATA + + + arXiv + arXiv:0802.2160 + hep-ex + + + IRFU-08-15 + + + CERN-PH-EP-2008-002 + + + Collins and Sivers asymmetries for pions and kaons in muon-deuteron DIS + + + COMPASS + + + + \ No newline at end of file diff --git a/doc/inspire-compass-2009.json b/doc/inspire-compass-2009.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2009.json @@ -0,0 +1,1 @@ +{"835613": ["Observation of a J**PC = 1-+ exotic resonance in diffractive dissociation of 190-GeV/c pi- into pi- pi- pi+", "COMPASS", "10.1103/PhysRevLett.104.241803", "1216286", "0910.5842", null, null, ["CERN-PH-EP-2009-018"]], "820721": ["Flavour Separation of Helicity Distributions from Deep Inelastic Muon-Deuteron Scattering", "COMPASS", "10.1016/j.physletb.2009.08.065", "1182104", "0905.2828", "ins820721", null, ["CERN-PH-EP-2009-008"]], "818414": ["Gluon polarisation in the nucleon and longitudinal double spin asymmetries from open charm muoproduction", "COMPASS", "10.1016/j.physletb.2009.04.059", "1173518", "0904.3209", null, null, []], "824774": ["Measurement of the Longitudinal Spin Transfer to Lambda and Anti-Lambda Hyperons in Polarised Muon DIS", "COMPASS", "10.1140/epjc/s10052-009-1143-7", "1187754", "0907.0388", "ins824774", null, ["CERN-PH-EP-2009-011"]]} \ No newline at end of file diff --git a/doc/inspire-compass-2009.marc.xml b/doc/inspire-compass-2009.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2009.marc.xml @@ -0,0 +1,176 @@ + + + + + 835613 + + DOI + 10.1103/PhysRevLett.104.241803 + + + DESY + D10-07492 + + + SPIRESTeX + Alekseev:2009aa + + + CDS + 1216286 + + + arXiv + oai:arXiv.org:0910.5842 + + + 2010PhRvL.104x1803A + ADS + + + CERN-PH-EP-2009-018 + + + arXiv + arXiv:0910.5842 + hep-ex + + + Observation of a J**PC = 1-+ exotic resonance in diffractive dissociation of 190-GeV/c pi- into pi- pi- pi+ + + + COMPASS + + + + 824774 + + DOI + 10.1140/epjc/s10052-009-1143-7 + + + arXiv + oai:arXiv.org:0907.0388 + oai:arXiv.org:0907.0388 + + + DESY + D09-09482 + + + SPIRESTeX + Alekseev:2009ab + + + CDS + 1187754 + + + 2009EPJC...64..171A + ADS + + + ins824774 + HEPDATA + + + arXiv + arXiv:0907.0388 + hep-ex + + + CERN-PH-EP-2009-011 + + + Measurement of the Longitudinal Spin Transfer to Lambda and Anti-Lambda Hyperons in Polarised Muon DIS + + + COMPASS + + + + 820721 + + DOI + 10.1016/j.physletb.2009.08.065 + + + DESY + D09-07604 + + + SPIRESTeX + Alekseev:2009ac + + + CDS + 1182104 + + + arXiv + oai:arXiv.org:0905.2828 + + + 2009PhLB..680..217C + ADS + + + ins820721 + HEPDATA + + + CERN-PH-EP-2009-008 + + + arXiv + arXiv:0905.2828 + hep-ex + + + Flavour Separation of Helicity Distributions from Deep Inelastic Muon-Deuteron Scattering + + + COMPASS + + + + 818414 + + DOI + 10.1016/j.physletb.2009.04.059 + + + oai:arXiv.org:0904.3209 + oai:arXiv.org:0904.3209 + arXiv + + + D09-07697 + DESY + + + Alekseev:2009ad + SPIRESTeX + + + CDS + 1173518 + + + 2009PhLB..676...31C + ADS + + + arXiv:0904.3209 + arXiv + hep-ex + + + Gluon polarisation in the nucleon and longitudinal double spin asymmetries from open charm muoproduction + + + COMPASS + + + + \ No newline at end of file diff --git a/doc/inspire-compass-2010.json b/doc/inspire-compass-2010.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2010.json @@ -0,0 +1,1 @@ +{"862410": ["Quark helicity distributions from longitudinal spin asymmetries in muon-proton and muon-deuteron scattering", "COMPASS", "10.1016/j.physletb.2010.08.034", "1280458", "1007.4061", null, null, ["CERN-PH-EP-2010-023"]], "856645": ["Measurement of the Collins and Sivers asymmetries on transversely polarised protons", "COMPASS", "10.1016/j.physletb.2010.08.001", "1268916", "1005.5609", "ins856645", null, ["CERN-PH-EP-2010-013"]], "1127460": ["COMPASS-II Proposal", "COMPASS", null, "1265628", null, null, null, ["SPSC-P-340", "CERN-SPSC-2010-014"]], "861046": ["Azimuthal asymmetries of charged hadrons produced by high-energy muons scattered off longitudinally polarised deuterons", "COMPASS", "10.1140/epjc/s10052-010-1461-9", "1276776", "1007.1562", null, null, ["CERN-PH-EP-2010-018"]], "843494": ["The Spin-dependent Structure Function of the Proton g_1^p and a Test of the Bjorken Sum Rule", "COMPASS", "10.1016/j.physletb.2010.05.069", "1236008", "1001.4654", "ins843494", null, ["CERN-PH-EP-2010-001"]]} \ No newline at end of file diff --git a/doc/inspire-compass-2010.marc.xml b/doc/inspire-compass-2010.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2010.marc.xml @@ -0,0 +1,201 @@ + + + + + 862410 + + DOI + 10.1016/j.physletb.2010.08.034 + + + D10-12494 + DESY + + + Alekseev:2010ub + SPIRESTeX + + + arXiv + oai:arXiv.org:1007.4061 + + + CDS + 1280458 + + + 2010PhLB..693..227A + ADS + + + CERN-PH-EP-2010-023 + + + arXiv + arXiv:1007.4061 + hep-ex + + + Quark helicity distributions from longitudinal spin asymmetries in muon-proton and muon-deuteron scattering + + + COMPASS + + + + 861046 + + DOI + 10.1140/epjc/s10052-010-1461-9 + + + arXiv + oai:arXiv.org:1007.1562 + oai:arXiv.org:1007.1562 + + + DESY + D10-12552 + + + SPIRESTeX + Alekseev:2010dm + + + CDS + 1276776 + + + 2010EPJC...70...39A + ADS + + + arXiv + arXiv:1007.1562 + hep-ex + + + CERN-PH-EP-2010-018 + + + Azimuthal asymmetries of charged hadrons produced by high-energy muons scattered off longitudinally polarised deuterons + + + COMPASS + + + + 856645 + + DOI + 10.1016/j.physletb.2010.08.001 + + + DESY + D10-08560 + + + SPIRESTeX + Alekseev:2010rw + + + CDS + 1268916 + + + arXiv + oai:arXiv.org:1005.5609 + + + 2010PhLB..692..240A + ADS + + + ins856645 + HEPDATA + + + CERN-PH-EP-2010-013 + + + arXiv + arXiv:1005.5609 + hep-ex + + + Measurement of the Collins and Sivers asymmetries on transversely polarised protons + + + COMPASS + + + + 1127460 + + INSPIRETeX + Gautheron:2010wva + + + CDS + 1265628 + + + SPSC-P-340 + + + CERN-SPSC-2010-014 + + + COMPASS-II Proposal + + + COMPASS + + + + 843494 + + DOI + 10.1016/j.physletb.2010.05.069 + + + DESY + D10-01474 + + + SPIRESTeX + Alekseev:2010hc + + + CDS + 1236008 + + + arXiv + oai:arXiv.org:1001.4654 + + + 2010PhLB..690..466A + ADS + + + ins843494 + HEPDATA + + + CERN-PH-EP-2010-001 + + + arXiv + arXiv:1001.4654 + hep-ex + + + The Spin-dependent Structure Function of the Proton g_1^p and a Test of the Bjorken Sum Rule + + + COMPASS + + + + \ No newline at end of file diff --git a/doc/inspire-compass-2011.json b/doc/inspire-compass-2011.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2011.json @@ -0,0 +1,1 @@ +{"955170": ["First Measurement of Chiral Dynamics in \\pi^- \\gamma -> \\pi^- \\pi^- \\pi^+", "COMPASS", "10.1103/PhysRevLett.108.192001", "1390456", "1111.5954", null, null, ["CERN-PH-EP-2011-176"]]} \ No newline at end of file diff --git a/doc/inspire-compass-2011.marc.xml b/doc/inspire-compass-2011.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2011.marc.xml @@ -0,0 +1,46 @@ + + + + + 955170 + + DOI + 10.1103/PhysRevLett.108.192001 + + + D12-00522 + DESY + + + Adolph:2011it + SPIRESTeX + + + CDS + 1390456 + + + arXiv + oai:arXiv.org:1111.5954 + + + 2012PhRvL.108s2001A + ADS + + + CERN-PH-EP-2011-176 + + + arXiv + arXiv:1111.5954 + hep-ex + + + First Measurement of Chiral Dynamics in \pi^- \gamma -> \pi^- \pi^- \pi^+ + + + COMPASS + + + + \ No newline at end of file diff --git a/doc/inspire-compass-2012.json b/doc/inspire-compass-2012.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2012.json @@ -0,0 +1,1 @@ +{"1115720": ["Experimental investigation of transverse spin asymmetries in muon-p SIDIS processes: Collins asymmetries", "COMPASS", "10.1016/j.physletb.2012.09.055", "1449459", "1205.5121", "ins1115720", null, ["CERN-PH-EP-2012-146"]], "1115721": ["II \u2013 Experimental investigation of transverse spin asymmetries in \u03bc -p SIDIS processes: Sivers asymmetries", "COMPASS", "10.1016/j.physletb.2012.09.056", "1449460", "1205.5122", "ins1115721", null, ["CERN-PH-EP-2012-147"]], "1204782": ["Leading and Next-to-Leading Order Gluon Polarization in the Nucleon and Longitudinal Double Spin Asymmetries from Open Charm Muoproduction", "COMPASS", "10.1103/PhysRevD.87.052018", "1495359", "1211.6849", null, null, ["CERN-PH-EP-2012-350"]], "1089665": ["Leading order determination of the gluon polarisation from DIS events with high-$p_T$ hadron pairs", "COMPASS", "10.1016/j.physletb.2012.11.056", "1417853", "1202.4064", null, null, ["CERN-PH-EP-2012-010"]], "1121705": ["Measurement of the cross section for high-pT hadron production in the scattering of 160-GeV/c muons off nucleons", "COMPASS", "10.1103/PhysRevD.88.091101", "1458567", "1207.2022", null, null, ["CERN-PH-EP-2012-189"]], "1199003": ["D* and D Meson Production in Muon Nucleon Interactions at 160 GeV/c", "COMPASS", "10.1140/epjc/s10052-012-2253-1", "1492033", "1211.1575", null, null, ["CERN-PH-EP-2012-339"]], "1090927": ["Transverse spin effects in hadron-pair production from semi-inclusive deep inelastic scattering", "COMPASS", "10.1016/j.physletb.2012.05.015", "1425094", "1202.6150", "ins1090927", null, ["CERN-PH-EP-2012-053"]], "1122967": ["Exclusive rho^0 muoproduction on transversely polarised protons and deuterons", "COMPASS", "10.1016/j.nuclphysb.2012.07.025", "1462053", "1207.4301", null, null, ["CERN-PH-EP-2012-208"]]} \ No newline at end of file diff --git a/doc/inspire-compass-2012.marc.xml b/doc/inspire-compass-2012.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2012.marc.xml @@ -0,0 +1,330 @@ + + + + + 1204782 + + DOI + 10.1103/PhysRevD.87.052018 + + + SPIRESTeX + Adolph:2012ca + + + DESY + DA13-01345 + + + arXiv + oai:arXiv.org:1211.6849 + + + CDS + 1495359 + + + CERN-PH-EP-2012-350 + + + arXiv + arXiv:1211.6849 + hep-ex + + + COMPASS + + + Leading and Next-to-Leading Order Gluon Polarization in the Nucleon and Longitudinal Double Spin Asymmetries from Open Charm Muoproduction + + + + 1199003 + + DOI + 10.1140/epjc/s10052-012-2253-1 + + + SPIRESTeX + Adolph:2012uz + + + CDS + 1492033 + + + arXiv + oai:arXiv.org:1211.1575 + + + ADS + 2012EPJC...72.2253A + + + CERN-PH-EP-2012-339 + + + arXiv + arXiv:1211.1575 + hep-ex + + + D* and D Meson Production in Muon Nucleon Interactions at 160 GeV/c + + + COMPASS + + + + 1122967 + + DOI + 10.1016/j.nuclphysb.2012.07.025 + + + DESY + D12-12478 + + + SPIRESTeX + Adolph:2012ht + + + CDS + 1462053 + + + arXiv + oai:arXiv.org:1207.4301 + + + CERN-PH-EP-2012-208 + + + arXiv + arXiv:1207.4301 + hep-ex + + + Exclusive rho^0 muoproduction on transversely polarised protons and deuterons + + + COMPASS + + + + 1121705 + + DOI + 10.1103/PhysRevD.88.091101 + + + DESY + D12-10491 + + + SPIRESTeX + Adolph:2012nm + + + CDS + 1458567 + + + arXiv + oai:arXiv.org:1207.2022 + + + CERN-PH-EP-2012-189 + + + arXiv + arXiv:1207.2022 + hep-ex + + + Measurement of the cross section for high-pT hadron production in the scattering of 160-GeV/c muons off nucleons + + + COMPASS + + + + 1115721 + + DOI + 10.1016/j.physletb.2012.09.056 + + + DESY + D12-11598 + + + SPIRESTeX + Adolph:2012sp + + + CDS + 1449460 + + + arXiv + oai:arXiv.org:1205.5122 + + + 2012PhLB..717..383T + ADS + + + ins1115721 + HEPDATA + + + CERN-PH-EP-2012-147 + + + arXiv + arXiv:1205.5122 + hep-ex + + + II – Experimental investigation of transverse spin asymmetries in μ -p SIDIS processes: Sivers asymmetries + + + COMPASS + + + + 1115720 + + DOI + 10.1016/j.physletb.2012.09.055 + + + DESY + D12-11609 + + + SPIRESTeX + Adolph:2012sn + + + CDS + 1449459 + + + arXiv + oai:arXiv.org:1205.5121 + + + 2012PhLB..717..376T + ADS + + + ins1115720 + HEPDATA + + + CERN-PH-EP-2012-146 + + + arXiv + arXiv:1205.5121 + hep-ex + + + Experimental investigation of transverse spin asymmetries in muon-p SIDIS processes: Collins asymmetries + + + COMPASS + + + + 1090927 + + 10.1016/j.physletb.2012.05.015 + DOI + + + oai:arXiv.org:1202.6150 + oai:arXiv.org:1202.6150 + arXiv + + + D12-03712 + DESY + + + Adolph:2012nw + SPIRESTeX + + + CDS + 1425094 + + + 2012PhLB..713...10A + ADS + + + ins1090927 + HEPDATA + + + arXiv:1202.6150 + arXiv + hep-ex + + + CERN-PH-EP-2012-053 + + + Transverse spin effects in hadron-pair production from semi-inclusive deep inelastic scattering + + + COMPASS + + + + 1089665 + + DOI + 10.1016/j.physletb.2012.11.056 + + + D12-03005 + DESY + + + Adolph:2012vj + SPIRESTeX + + + CDS + 1417853 + + + arXiv + oai:arXiv.org:1202.4064 + + + 2013PhLB..718..922A + ADS + + + CERN-PH-EP-2012-010 + + + arXiv + arXiv:1202.4064 + hep-ex + + + Leading order determination of the gluon polarisation from DIS events with high-$p_T$ hadron pairs + + + COMPASS + + + + \ No newline at end of file diff --git a/doc/inspire-compass-2013.json b/doc/inspire-compass-2013.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2013.json @@ -0,0 +1,1 @@ +{"1226812": ["Study of $\\Sigma(1385)$ and $\\Xi(1321)$ hyperon and antihyperon production in deep inelastic muon scattering", "COMPASS", "10.1140/epjc/s10052-013-2581-9", "1532099", "1304.0952", null, null, ["CERN-PH-EP-2013-052"]], "1236358": ["Hadron Transverse Momentum Distributions in Muon Deep Inelastic Scattering at 160 GeV/$c$", "COMPASS", "10.1140/epjc/s10052-013-2531-6", "1552503", "1305.7317", "ins1236358", null, ["CERN-PH-EP-2013-091"]], "1257385": ["Transverse target spin asymmetries in exclusive $\\rho^0$ muoproduction", "COMPASS", "10.1016/j.physletb.2014.02.005", "1604430", "1310.1454", "ins1257385", null, ["CERN-PH-EP-2013-191"]]} \ No newline at end of file diff --git a/doc/inspire-compass-2013.marc.xml b/doc/inspire-compass-2013.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2013.marc.xml @@ -0,0 +1,143 @@ + + + + + 1257385 + + DOI + 10.1016/j.physletb.2014.02.005 + + + INSPIRETeX + Adolph:2013zaa + + + DESY + DA13-kp48d + + + CDS + 1604430 + + + arXiv + oai:arXiv.org:1310.1454 + + + 2014PhLB..731...19A + ADS + + + ins1257385 + HEPDATA + + + CERN-PH-EP-2013-191 + + + arXiv + arXiv:1310.1454 + hep-ex + + + Transverse target spin asymmetries in exclusive $\rho^0$ muoproduction + arXiv + + + COMPASS + + + + 1236358 + + DOI + 10.1140/epjc/s10052-013-2531-6 + + + DOI + bibmatch + 10.1140/epjc/s10052-014-3255-y + + + INSPIRETeX + Adolph:2013stb + + + DESY + DA13-kp31a + + + arXiv + oai:arXiv.org:1305.7317 + + + CDS + 1552503 + + + 2013EPJC...73.2531A + ADS + + + ins1236358 + HEPDATA + + + arXiv + arXiv:1305.7317 + hep-ex + + + CERN-PH-EP-2013-091 + + + arXiv + Hadron Transverse Momentum Distributions in Muon Deep Inelastic Scattering at 160 GeV/$c$ + + + COMPASS + + + + 1226812 + + DOI + 10.1140/epjc/s10052-013-2581-9 + + + INSPIRETeX + Adolph:2013dhv + + + DESY + D13-kj22a + + + CDS + 1532099 + + + arXiv + oai:arXiv.org:1304.0952 + + + ADS + 2013EPJC...73.2581A + + + CERN-PH-EP-2013-052 + + + arXiv + arXiv:1304.0952 + hep-ex + + + Study of $\Sigma(1385)$ and $\Xi(1321)$ hyperon and antihyperon production in deep inelastic muon scattering + + + COMPASS + + + + \ No newline at end of file diff --git a/doc/inspire-compass-2014.json b/doc/inspire-compass-2014.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2014.json @@ -0,0 +1,1 @@ +{"1320774": ["The COMPASS Setup for Physics with Hadron Beams", "COMPASS", "10.1016/j.nima.2015.01.035", "1950827", "1410.1797", null, null, ["CERN-PH-EP-2014-247"]], "1307417": ["Search for exclusive photoproduction of Z$_c^{\\pm}$(3900) at COMPASS", "COMPASS", "10.1016/j.physletb.2015.01.042", "1743884", "1407.6186", null, null, ["CERN-PH-EP-2014-180"]], "1278730": ["Measurement of azimuthal hadron asymmetries in semi-inclusive deep inelastic scattering off unpolarised nucleons", "COMPASS", "10.1016/j.nuclphysb.2014.07.019", "1641948", "1401.6284", "ins1278730", null, ["CERN-PH-EP-2014-009"]], "1311491": ["Collins and Sivers asymmetries in muonproduction of pions and kaons off transversely polarised protons", "COMPASS", "10.1016/j.physletb.2015.03.056", "1750692", "1408.4405", null, null, ["CERN-PH-EP-2014-213"]], "1285361": ["Measurement of radiative widths of $a_2(1320)$ and $\\pi_2(1670)$", "COMPASS", "10.1140/epja/i2014-14079-8", "1666128", "1403.2644", null, null, ["CERN-PH-EP-2014-041"]], "1279598": ["A high-statistics measurement of transverse spin effects in dihadron production from muon\u2013proton semi-inclusive deep-inelastic scattering", "COMPASS", "10.1016/j.physletb.2014.06.080", "1644777", "1401.7873", null, null, ["CERN-PH-EP-2014-013"]], "1311486": ["Odd and even partial waves of $\u03b7\u03c0^\u2212$ and $\u03b7\u2032\u03c0^\u2212$ in $\u03c0^\u2212p \u2192 \u03b7^{(\u2032)}\u03c0^\u2212p$ at 191 GeV/c", "COMPASS", "10.1016/j.physletb.2014.11.058", "1747555", "1408.4286", null, null, ["CERN-PH-EP-2014-204"]], "1298026": ["Measurement of the charged-pion polarizability", "COMPASS", "10.1103/PhysRevLett.114.062002", "1702252", "1405.6377", null, null, ["CERN-PH-EP-2014-109"]], "1298025": ["Spin alignment and violation of the OZI rule in exclusive $\\omega$ and $\\phi$ production in pp collisions", "COMPASS", "10.1016/j.nuclphysb.2014.07.020", "1700255", "1405.6376", "ins1298025", null, ["CERN-PH-EP-2014-096"]]} \ No newline at end of file diff --git a/doc/inspire-compass-2014.marc.xml b/doc/inspire-compass-2014.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2014.marc.xml @@ -0,0 +1,383 @@ + + + + + 1320774 + + DOI + bibmatch + 10.1016/j.nima.2015.01.035 + + + INSPIRETeX + Abbon:2014aex + + + DESY + D14-kj42b + + + CDS + 1950827 + + + arXiv + oai:arXiv.org:1410.1797 + + + ADS + 2015NIMPA.779...69A + + + CERN-PH-EP-2014-247 + + + arXiv + arXiv:1410.1797 + physics.ins-det + + + arXiv + The COMPASS Setup for Physics with Hadron Beams + + + COMPASS + + + + 1311491 + + DOI + bibmatch + 10.1016/j.physletb.2015.03.056 + + + INSPIRETeX + Adolph:2014zba + + + DESY + D14-kj49a + + + CDS + 1750692 + + + arXiv + oai:arXiv.org:1408.4405 + + + ADS + 2015PhLB..744..250A + + + OSTI + 1188713 + + + CERN-PH-EP-2014-213 + + + arXiv + arXiv:1408.4405 + hep-ex + + + Collins and Sivers asymmetries in muonproduction of pions and kaons off transversely polarised protons + + + COMPASS + + + + 1311486 + + DOI + bibmatch + 10.1016/j.physletb.2014.11.058 + + + INSPIRETeX + Adolph:2014rpp + + + CDS + 1747555 + + + arXiv + oai:arXiv.org:1408.4286 + + + 2015PhLB..740..303A + ADS + + + CERN-PH-EP-2014-204 + + + arXiv + arXiv:1408.4286 + hep-ex + + + Odd and even partial waves of $ηπ^−$ and $η′π^−$ in $π^−p → η^{(′)}π^−p$ at 191 GeV/c + + + COMPASS + + + + 1307417 + + DOI + bibmatch + 10.1016/j.physletb.2015.01.042 + + + INSPIRETeX + Adolph:2014hba + + + DESY + D14-kj45a + + + CDS + 1743884 + + + arXiv + oai:arXiv.org:1407.6186 + + + ADS + 2015PhLB..742..330A + + + CERN-PH-EP-2014-180 + + + arXiv + arXiv:1407.6186 + hep-ex + + + arXiv + Search for exclusive photoproduction of Z$_c^{\pm}$(3900) at COMPASS + + + COMPASS + + + + 1298026 + + DOI + 10.1103/PhysRevLett.114.062002 + + + INSPIRETeX + Adolph:2014kgj + + + DESY + D14-kj39a + + + CDS + 1702252 + + + arXiv + oai:arXiv.org:1405.6377 + + + ADS + 2015PhRvL.114f2002A + + + CERN-PH-EP-2014-109 + + + arXiv + arXiv:1405.6377 + hep-ex + + + Measurement of the charged-pion polarizability + + + COMPASS + + + + 1298025 + + DOI + 10.1016/j.nuclphysb.2014.07.020 + + + INSPIRETeX + Adolph:2014lvj + + + DESY + D14-kj39a + + + CDS + 1700255 + + + arXiv + oai:arXiv.org:1405.6376 + + + ins1298025 + HEPDATA + + + CERN-PH-EP-2014-096 + + + arXiv + arXiv:1405.6376 + hep-ex + + + Spin alignment and violation of the OZI rule in exclusive $\omega$ and $\phi$ production in pp collisions + arXiv + + + COMPASS + + + + 1285361 + + DOI + 10.1140/epja/i2014-14079-8 + + + INSPIRETeX + Adolph:2014mup + + + DESY + D14-kj16b + + + CDS + 1666128 + + + arXiv + oai:arXiv.org:1403.2644 + + + 2014EPJA...50...79A + ADS + + + CERN-PH-EP-2014-041 + + + arXiv + arXiv:1403.2644 + hep-ex + + + Measurement of radiative widths of $a_2(1320)$ and $\pi_2(1670)$ + arXiv + + + COMPASS + + + + 1279598 + + DOI + 10.1016/j.physletb.2014.06.080 + + + INSPIRETeX + Adolph:2014fjw + + + DESY + D14-kj12a + + + CDS + 1644777 + + + arXiv + oai:arXiv.org:1401.7873 + + + 2014PhLB..736..124A + ADS + + + CERN-PH-EP-2014-013 + + + arXiv + arXiv:1401.7873 + hep-ex + + + A high-statistics measurement of transverse spin effects in dihadron production from muon–proton semi-inclusive deep-inelastic scattering + + + COMPASS + + + + 1278730 + + DOI + 10.1016/j.nuclphysb.2014.07.019 + + + INSPIRETeX + Adolph:2014pwc + + + DESY + DA14-kp08c + + + CDS + 1641948 + + + arXiv + oai:arXiv.org:1401.6284 + + + ins1278730 + HEPDATA + + + CERN-PH-EP-2014-009 + + + arXiv + arXiv:1401.6284 + hep-ex + + + Measurement of azimuthal hadron asymmetries in semi-inclusive deep inelastic scattering off unpolarised nucleons + arXiv + + + COMPASS + + + + \ No newline at end of file diff --git a/doc/inspire-compass-2015.json b/doc/inspire-compass-2015.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2015.json @@ -0,0 +1,1 @@ +{"1391643": ["Resonance Production and $\\pi\\pi$ S-wave in $\\pi^- + p \\rightarrow \\pi^- \\pi^- \\pi^+ + p_{recoil}$ at 190 GeV$/c$", "COMPASS", "10.1103/PhysRevD.95.032004", "2047484", "1509.00992", null, null, ["CERN-PH-EP-2015-233"]], "1340854": ["Observation of a New Narrow Axial-Vector Meson $a_1$(1420)", "COMPASS", "10.1103/PhysRevLett.115.082001", "1982453", "1501.05732", null, null, ["CERN-PH-EP-2015-015"]], "1385314": ["Interplay among transversity induced asymmetries in hadron leptoproduction", "COMPASS", "10.1016/j.physletb.2015.12.042", "2038930", "1507.07593", null, null, ["CERN-PH-EP-2015-199"]], "1393061": ["Longitudinal double spin asymmetries in single hadron quasi-real photoproduction at high $p_T$", "COMPASS", "10.1016/j.physletb.2015.12.035", "2052089", "1509.03526", null, null, ["CERN-PH-EP-2015-245"]], "1409917": ["Leading-order determination of the gluon polarisation from semi-inclusive deep inelastic scattering data", "COMPASS", "10.1140/epjc/s10052-017-4716-x", "2115610", "1512.05053", null, null, ["CERN-PH-EP-2015-328"]], "1357198": ["The spin structure function $g_1^{\\rm p}$ of the proton and a test of the Bjorken sum rule", "COMPASS", "10.1016/j.physletb.2015.11.064", "2004412", "1503.08935", "ins1357198", null, ["CERN-PH-EP-2015-085"]]} \ No newline at end of file diff --git a/doc/inspire-compass-2015.marc.xml b/doc/inspire-compass-2015.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2015.marc.xml @@ -0,0 +1,251 @@ + + + + + 1409917 + + DOI + bibmatch + 10.1140/epjc/s10052-017-4716-x + + + INSPIRETeX + Adolph:2015cvj + + + CDS + 2115610 + + + DESY + D16-kj01b + + + arXiv + oai:arXiv.org:1512.05053 + + + hal-01582579 + HAL + + + CERN-PH-EP-2015-328 + + + arXiv + arXiv:1512.05053 + hep-ex + + + arXiv + Leading-order determination of the gluon polarisation from semi-inclusive deep inelastic scattering data + + + COMPASS + + + + 1393061 + + DOI + bibmatch + 10.1016/j.physletb.2015.12.035 + + + INSPIRETeX + Adolph:2015hta + + + CDS + 2052089 + + + arXiv + oai:arXiv.org:1509.03526 + + + DESY + D16-kj13e + + + CERN-PH-EP-2015-245 + + + arXiv + arXiv:1509.03526 + hep-ex + + + Elsevier + Longitudinal double spin asymmetries in single hadron quasi-real photoproduction at high $p_T$ + + + COMPASS + + + + 1391643 + + DOI + 10.1103/PhysRevD.95.032004 + + + INSPIRETeX + Adolph:2015tqa + + + CDS + 2047484 + + + DESY + D16-kj32z + + + arXiv + oai:arXiv.org:1509.00992 + + + hal-01582840 + HAL + + + CERN-PH-EP-2015-233 + + + arXiv + arXiv:1509.00992 + hep-ex + + + APS + Resonance Production and $\pi\pi$ S-wave in $\pi^- + p \rightarrow \pi^- \pi^- \pi^+ + p_{recoil}$ at 190 GeV$/c$ + + + COMPASS + + + + 1385314 + + DOI + 10.1016/j.physletb.2015.12.042 + + + INSPIRETeX + Adolph:2015zwe + + + CDS + 2038930 + + + arXiv + oai:arXiv.org:1507.07593 + + + DESY + D17-kj01a + + + CERN-PH-EP-2015-199 + + + arXiv + arXiv:1507.07593 + hep-ex + + + arXiv + Interplay among transversity induced asymmetries in hadron leptoproduction + + + COMPASS + + + + 1357198 + + DOI + bibmatch + 10.1016/j.physletb.2015.11.064 + + + INSPIRETeX + Adolph:2015saz + + + DESY + D15-kj15b + + + CDS + 2004412 + + + arXiv + oai:arXiv.org:1503.08935 + + + ADS + 2016PhLB..753...18A + + + ins1357198 + HEPDATA + + + CERN-PH-EP-2015-085 + + + arXiv + arXiv:1503.08935 + hep-ex + + + Elsevier + The spin structure function $g_1^{\rm p}$ of the proton and a test of the Bjorken sum rule + + + COMPASS + + + + 1340854 + + DOI + 10.1103/PhysRevLett.115.082001 + + + INSPIRETeX + Adolph:2015pws + + + CDS + 1982453 + + + DESY + d15-kj05c + + + arXiv + oai:arXiv.org:1501.05732 + + + CERN-PH-EP-2015-015 + + + arXiv + arXiv:1501.05732 + hep-ex + + + Observation of a New Narrow Axial-Vector Meson $a_1$(1420) + + + COMPASS + + + + \ No newline at end of file diff --git a/doc/inspire-compass-2016.json b/doc/inspire-compass-2016.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2016.json @@ -0,0 +1,1 @@ +{"1469063": ["Exclusive $\\omega$ meson muoproduction on transversely polarised protons", "COMPASS", "10.1016/j.nuclphysb.2016.12.015", "2160545", "1606.03725", null, null, ["CERN-EP-2016-157"]], "1487432": ["Azimuthal asymmetries of charged hadrons produced in high-energy muon scattering off longitudinally polarised deuterons", "COMPASS", "10.1140/epjc/s10052-018-6379-7", "2217387", "1609.06062", null, null, ["CERN-EP-2016-245"]], "1501480": ["Final COMPASS results on the deuteron spin-dependent structure function $g_1^{\\rm d}$ and the Bjorken sum rule", "COMPASS", "10.1016/j.physletb.2017.03.018", "2238302", "1612.00620", "ins1501480", null, ["CERN-EP-2016-299"]], "1483098": ["Multiplicities of charged kaons from deep-inelastic muon scattering off an isoscalar target", "COMPASS", "10.1016/j.physletb.2017.01.053", "2210278", "1608.06760", "ins1483098", null, ["CERN-EP-2016-206"]], "1444985": ["Multiplicities of charged pions and charged hadrons from deep-inelastic scattering of muons off an isoscalar target", "COMPASS", "10.1016/j.physletb.2016.09.042", "2145658", "1604.02695", "ins1444985", null, ["CERN-EP-2016-095"]], "1487909": ["Sivers asymmetry extracted in SIDIS at the hard scales of the Drell\u2013Yan process at COMPASS", "COMPASS", "10.1016/j.physletb.2017.04.042", "2218151", "1609.07374", null, null, ["CERN-EP-2016-250", "CERN-EP-2016--250"]]} \ No newline at end of file diff --git a/doc/inspire-compass-2016.marc.xml b/doc/inspire-compass-2016.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2016.marc.xml @@ -0,0 +1,297 @@ + + + + + 1501480 + + DOI + 10.1016/j.physletb.2017.03.018 + + + INSPIRETeX + Adolph:2016myg + + + CDS + 2238302 + + + DESY + D16-kj50l + + + arXiv + oai:arXiv.org:1612.00620 + + + 2017PhLB..769...34A + ADS + + + ins1501480 + HEPDATA + + + hal-01582866 + HAL + + + CERN-EP-2016-299 + + + arXiv + arXiv:1612.00620 + hep-ex + + + Elsevier + Final COMPASS results on the deuteron spin-dependent structure function $g_1^{\rm d}$ and the Bjorken sum rule + + + COMPASS + + + + 1487909 + + DOI + 10.1016/j.physletb.2017.04.042 + + + INSPIRETeX + Adolph:2016dvl + + + CDS + 2218151 + + + DESY + D16-kj39y + + + 2017PhLB..770..138A + ADS + + + arXiv + oai:arXiv.org:1609.07374 + + + hal-01554653 + HAL + + + CERN-EP-2016-250 + + + CERN-EP-2016--250 + + + arXiv + arXiv:1609.07374 + hep-ex + + + Elsevier + Sivers asymmetry extracted in SIDIS at the hard scales of the Drell–Yan process at COMPASS + + + COMPASS + + + + 1487432 + + DOI + bibmatch + 10.1140/epjc/s10052-018-6379-7 + + + INSPIRETeX + Adolph:2016vou + + + arXiv + oai:arXiv.org:1609.06062 + + + CDS + 2217387 + + + DESY + D16-kj39x + + + hal-01937185 + HAL + + + 2018EPJC...78..952A + ADS + + + CERN-EP-2016-245 + + + arXiv + arXiv:1609.06062 + hep-ex + + + arXiv + Azimuthal asymmetries of charged hadrons produced in high-energy muon scattering off longitudinally polarised deuterons + + + COMPASS + + + + 1483098 + + DOI + 10.1016/j.physletb.2017.01.053 + + + INSPIRETeX + Adolph:2016bwc + + + CDS + 2210278 + + + DESY + D16-kj35z + + + arXiv + oai:arXiv.org:1608.06760 + + + 2017PhLB..767..133A + ADS + + + ins1483098 + HEPDATA + + + CERN-EP-2016-206 + + + arXiv + arXiv:1608.06760 + hep-ex + + + CERN-EP-2016--206 + + + arXiv + Multiplicities of charged kaons from deep-inelastic muon scattering off an isoscalar target + + + COMPASS + + + + 1469063 + + DOI + bibmatch + 10.1016/j.nuclphysb.2016.12.015 + + + DOI + 10.1016/j.nuclphysb.2016.12.015 + + + INSPIRETeX + Adolph:2016ehf + + + CDS + 2160545 + + + DESY + D16-kj25i + + + arXiv + oai:arXiv.org:1606.03725 + + + hal-01582674 + HAL + + + CERN-EP-2016-157 + + + arXiv + arXiv:1606.03725 + hep-ex + + + Elsevier + Exclusive $\omega$ meson muoproduction on transversely polarised protons + + + COMPASS + + + + 1444985 + + DOI + 10.1016/j.physletb.2016.09.042 + + + INSPIRETeX + Adolph:2016bga + + + CDS + 2145658 + + + DESY + D16-kj18a + + + arXiv + oai:arXiv.org:1604.02695 + + + 2017PhLB..764....1A + ADS + + + ins1444985 + HEPDATA + + + hal-01582575 + HAL + + + CERN-EP-2016-095 + + + arXiv + arXiv:1604.02695 + hep-ex + + + Elsevier + Multiplicities of charged pions and charged hadrons from deep-inelastic scattering of muons off an isoscalar target + + + COMPASS + + + + \ No newline at end of file diff --git a/doc/inspire-compass-2017.json b/doc/inspire-compass-2017.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2017.json @@ -0,0 +1,1 @@ +{"1508480": ["First measurement of the Sivers asymmetry for gluons using SIDIS data", "COMPASS", "10.1016/j.physletb.2017.07.018", "2240191", "1701.02453", null, null, ["CERN-EP-2017-003"]], "1608884": ["Search for muoproduction of $X (3872)$ at COMPASS and indication of a new state $\\widetilde{X}(3872)$", "COMPASS", "10.1016/j.physletb.2018.07.008", "2273255", "1707.01796", null, null, ["CERN-EP-2017-165"]], "1609260": ["New analysis of $\\eta\\pi$ tensor resonances measured at the COMPASS experiment", "JPAC", "10.1016/j.physletb.2018.01.017", "2273608", "1707.02848", null, null, ["CERN-EP-2017-169", "JLAB-THY-17-2468"]], "1589290": ["First measurement of transverse-spin-dependent azimuthal asymmetries in the Drell-Yan process", "COMPASS", "10.1103/PhysRevLett.119.112002", "2257741", "1704.00488", null, null, ["CERN-EP-2017-059"]], "1624692": ["Transverse-momentum-dependent Multiplicities of Charged Hadrons in Muon-Deuteron Deep Inelastic Scattering", "COMPASS", "10.1103/PhysRevD.97.032006", "2284825", "1709.07374", null, null, ["CERN-EP-2017-253"]], "1628410": ["Longitudinal double-spin asymmetry $A_1^{\\rm p}$ and spin-dependent structure function $g_1^{\\rm p}$ of the proton at small values of $x$ and $Q^2$", "COMPASS", "10.1016/j.physletb.2018.03.044", "2286138", "1710.01014", null, null, ["CERN-EP-2017-263"]]} \ No newline at end of file diff --git a/doc/inspire-compass-2017.marc.xml b/doc/inspire-compass-2017.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2017.marc.xml @@ -0,0 +1,299 @@ + + + + + 1628410 + + DOI + 10.1016/j.physletb.2018.03.044 + + + 10.1016/j.physletb.2018.03.044 + DOI + bibmatch + + + INSPIRETeX + Aghasyan:2017vck + + + CDS + 2286138 + + + DESY + D17-kj41n + + + hal-01782011 + HAL + + + arXiv + oai:arXiv.org:1710.01014 + + + 2018PhLB..781..464A + ADS + + + CERN-EP-2017-263 + + + arXiv + arXiv:1710.01014 + hep-ex + + + Longitudinal double-spin asymmetry $A_1^{\rm p}$ and spin-dependent structure function $g_1^{\rm p}$ of the proton at small values of $x$ and $Q^2$ + arXiv + + + COMPASS + + + + 1624692 + + DOI + 10.1103/PhysRevD.97.032006 + + + DOI + bibmatch + 10.1103/PhysRevD.97.032006 + + + INSPIRETeX + Aghasyan:2017ctw + + + CDS + 2284825 + + + DESY + D17-kj40c + + + hal-01707629 + HAL + + + arXiv + oai:arXiv.org:1709.07374 + + + CERN-EP-2017-253 + + + arXiv + arXiv:1709.07374 + hep-ex + + + Transverse-momentum-dependent Multiplicities of Charged Hadrons in Muon-Deuteron Deep Inelastic Scattering + arXiv + + + COMPASS + + + + 1609260 + + DOI + 10.1016/j.physletb.2018.01.017 + + + INSPIRETeX + Jackura:2017amb + + + CDS + 2273608 + + + DESY + D17-kj29m + + + arXiv + oai:arXiv.org:1707.02848 + + + hal-01757858 + HAL + + + 2018PhLB..779..464J + ADS + + + CERN-EP-2017-169 + + + JLAB-THY-17-2468 + + + arXiv + arXiv:1707.02848 + hep-ph + + + Elsevier + New analysis of $\eta\pi$ tensor resonances measured at the COMPASS experiment + + + JPAC + + + COMPASS + + + + 1608884 + + DOI + Elsevier + 10.1016/j.physletb.2018.07.008 + + + INSPIRETeX + Aghasyan:2018vuq + + + INSPIRETeX + Aghasyan:2017utv + + + arXiv + oai:arXiv.org:1707.01796 + + + CDS + 2273255 + + + DESY + D17-kj28m + + + HAL + hal-01861905 + + + DESY + D18-kj31i + + + CERN-EP-2017-165 + + + arXiv + arXiv:1707.01796 + hep-ex + + + Elsevier + Search for muoproduction of $X (3872)$ at COMPASS and indication of a new state $\widetilde{X}(3872)$ + + + COMPASS + + + + 1589290 + + DOI + 10.1103/PhysRevLett.119.112002 + + + INSPIRETeX + Aghasyan:2017jop + + + CDS + 2257741 + + + DESY + D17-kj14o + + + arXiv + oai:arXiv.org:1704.00488 + + + hal-01645533 + HAL + + + CERN-EP-2017-059 + + + arXiv + arXiv:1704.00488 + hep-ex + + + arXiv + First measurement of transverse-spin-dependent azimuthal asymmetries in the Drell-Yan process + + + COMPASS + + + + 1508480 + + DOI + bibmatch + 10.1016/j.physletb.2017.07.018 + + + DOI + 10.1016/j.physletb.2017.07.018 + + + INSPIRETeX + Adolph:2017pgv + + + CDS + 2240191 + + + DESY + D17-kj34k + + + arXiv + oai:arXiv.org:1701.02453 + + + ADS + 2017PhLB..772..854A + + + HAL + hal-01582696 + + + CERN-EP-2017-003 + + + arXiv + arXiv:1701.02453 + hep-ex + + + Elsevier + First measurement of the Sivers asymmetry for gluons using SIDIS data + + + COMPASS + + + + \ No newline at end of file diff --git a/doc/inspire-compass-2018.json b/doc/inspire-compass-2018.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2018.json @@ -0,0 +1,1 @@ +{"1655631": ["Light isovector resonances in $\\pi^- p \\to \\pi^-\\pi^-\\pi^+ p$ at 190 GeV/${\\it c}$", "COMPASS", "10.1103/PhysRevD.98.092003", "2304555", "1802.05913", "ins1655631", null, ["CERN-EP-2018-021"]], "1652831": ["K$^\u2212$ over K$^+$ multiplicity ratio for kaons produced in DIS with a large fraction of the virtual-photon energy", "COMPASS", "10.1016/j.physletb.2018.09.052", "2302337", "1802.00584", null, null, ["CERN-EP-2018-012"]], "1693303": ["Measurement of $P_T$-weighted Sivers asymmetries in leptoproduction of hadrons", "COMPASS", "10.1016/j.nuclphysb.2018.12.024", "2636927", "1809.02936", null, null, ["CERN-EP-2018-242"]], "1653939": ["Transverse Extension of Partons in the Proton probed by Deeply Virtual Compton Scattering", "COMPASS", null, "2303399", "1802.02739", null, null, ["CERN-EP-2018-016"]]} \ No newline at end of file diff --git a/doc/inspire-compass-2018.marc.xml b/doc/inspire-compass-2018.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2018.marc.xml @@ -0,0 +1,191 @@ + + + + + 1693303 + + DOI + bibmatch + 10.1016/j.nuclphysb.2018.12.024 + + + INSPIRETeX + Alexeev:2018zvl + + + arXiv + oai:arXiv.org:1809.02936 + + + CDS + 2636927 + + + HAL + hal-01880826 + + + DESY + D18-kj39e + + + arXiv + arXiv:1809.02936 + hep-ex + + + arXiv:reportnumber + CERN-EP-2018-242 + + + Elsevier + Measurement of $P_T$-weighted Sivers asymmetries in leptoproduction of hadrons + + + COMPASS + + + + 1655631 + + DOI + 10.1103/PhysRevD.98.092003 + + + DOI + arXiv + 10.1103/PhysRevD.98.092003 + publication + + + INSPIRETeX + Akhunzyanov:2018pnr + + + INSPIRETeX + Akhunzyanov:2018lqa + + + arXiv + oai:arXiv.org:1802.05913 + + + DESY + D18-kj09k + + + HEPDATA + ins1655631 + + + HAL + hal-01724852 + + + CDS + 2304555 + + + arXiv + arXiv:1802.05913 + hep-ex + + + arXiv:reportnumber + CERN-EP-2018-021 + + + APS + Light isovector resonances in $\pi^- p \to \pi^-\pi^-\pi^+ p$ at 190 GeV/${\it c}$ + + + COMPASS + + + + 1653939 + + INSPIRETeX + Akhunzyanov:2018nut + + + arXiv + oai:arXiv.org:1802.02739 + + + CDS + 2303399 + + + hal-01714262 + HAL + + + DESY + D18-kj08b + + + CERN-EP-2018-016 + + + arXiv + arXiv:1802.02739 + hep-ex + + + arXiv + Transverse Extension of Partons in the Proton probed by Deeply Virtual Compton Scattering + + + COMPASS + + + + 1652831 + + DOI + bibmatch + 10.1016/j.physletb.2018.09.052 + + + INSPIRETeX + Akhunzyanov:2018ysf + + + arXiv + oai:arXiv.org:1802.00584 + + + CDS + 2302337 + + + HAL + hal-01714709 + + + DESY + D18-kj07o + + + 2018PhLB..786..390A + ADS + + + CERN-EP-2018-012 + + + arXiv + arXiv:1802.00584 + hep-ex + + + Elsevier + K$^−$ over K$^+$ multiplicity ratio for kaons produced in DIS with a large fraction of the virtual-photon energy + + + COMPASS + + + + \ No newline at end of file diff --git a/doc/inspire-compass-2019.json b/doc/inspire-compass-2019.json new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2019.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-compass-2019.marc.xml b/doc/inspire-compass-2019.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-compass-2019.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-sld-1980.json b/doc/inspire-sld-1980.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1980.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-sld-1980.marc.xml b/doc/inspire-sld-1980.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1980.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-sld-1981.json b/doc/inspire-sld-1981.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1981.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-sld-1981.marc.xml b/doc/inspire-sld-1981.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1981.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-sld-1982.json b/doc/inspire-sld-1982.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1982.json @@ -0,0 +1,1 @@ +{"179973": ["SLD: LETTER OF INTENT", "SLD", null, null, null, null, null, ["SLAC-PROPOSAL-SLC-09", "SLC-LI-09"]]} \ No newline at end of file diff --git a/doc/inspire-sld-1982.marc.xml b/doc/inspire-sld-1982.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1982.marc.xml @@ -0,0 +1,24 @@ + + + + + 179973 + + Axen:1982mp + SPIRESTeX + + + SLD + + + SLAC-PROPOSAL-SLC-09 + + + SLC-LI-09 + + + SLD: LETTER OF INTENT + + + + \ No newline at end of file diff --git a/doc/inspire-sld-1983.json b/doc/inspire-sld-1983.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1983.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-sld-1983.marc.xml b/doc/inspire-sld-1983.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1983.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-sld-1984.json b/doc/inspire-sld-1984.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1984.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-sld-1984.marc.xml b/doc/inspire-sld-1984.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1984.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-sld-1985.json b/doc/inspire-sld-1985.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1985.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-sld-1985.marc.xml b/doc/inspire-sld-1985.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1985.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-sld-1986.json b/doc/inspire-sld-1986.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1986.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-sld-1986.marc.xml b/doc/inspire-sld-1986.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1986.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-sld-1987.json b/doc/inspire-sld-1987.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1987.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-sld-1987.marc.xml b/doc/inspire-sld-1987.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1987.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-sld-1988.json b/doc/inspire-sld-1988.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1988.json @@ -0,0 +1,1 @@ +{"266431": ["A Status Report on the Sld Data Acquisition System", "SLD", "10.1109/23.34395", null, null, null, null, ["SLAC-PUB-4786"]]} \ No newline at end of file diff --git a/doc/inspire-sld-1988.marc.xml b/doc/inspire-sld-1988.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1988.marc.xml @@ -0,0 +1,37 @@ + + + + + 266431 + + DOI + 10.1109/23.34395 + + + D89-05415 + DESY + + + D90-06205 + DESY + + + Breidenbach:1988te + SPIRESTeX + + + KEKSCAN + 89-01-041 + + + SLAC-PUB-4786 + + + A Status Report on the Sld Data Acquisition System + + + SLD + + + + \ No newline at end of file diff --git a/doc/inspire-sld-1989.json b/doc/inspire-sld-1989.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1989.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-sld-1989.marc.xml b/doc/inspire-sld-1989.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1989.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-sld-1990.json b/doc/inspire-sld-1990.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1990.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-sld-1990.marc.xml b/doc/inspire-sld-1990.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1990.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-sld-1991.json b/doc/inspire-sld-1991.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1991.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-sld-1991.marc.xml b/doc/inspire-sld-1991.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1991.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-sld-1992.json b/doc/inspire-sld-1992.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1992.json @@ -0,0 +1,1 @@ +{"342764": ["Measurements of spin sensitive quantities in hadronic decays of Z0 bosons produced in e+ e- annihilations", "SLD", null, null, null, null, null, ["SLAC-PUB-6004"]], "343018": ["First results from SLD with polarized electron beam at SLC", "SLD", null, null, null, null, null, ["SLAC-PUB-6027"]], "344556": ["A Preliminary measurement of R(b) = Gamma (Z0 ---> b anti-b) / Gamma (Z0 ---> hadrons) at SLD", "SLD", null, null, null, null, null, ["SLAC-PUB-5972", "LBL-34448"]], "340855": ["QCD studies of hadronic decays of Z$^0$ bosons by SLD", "SLD", "10.1063/1.43537", null, null, null, null, ["SLAC-PUB-5973"]], "334468": ["First QCD results from SLD", "SLD", null, null, null, null, null, ["SLAC-PUB-5802"]]} \ No newline at end of file diff --git a/doc/inspire-sld-1992.marc.xml b/doc/inspire-sld-1992.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1992.marc.xml @@ -0,0 +1,137 @@ + + + + + 343018 + + D93-07427 + DESY + + + D93-18394 + DESY + + + Fero:1992sj + SPIRESTeX + + + SLAC-PUB-6027 + + + First results from SLD with polarized electron beam at SLC + + + SLD + + + + 344556 + + D93-08501 + DESY + + + D94-05754 + DESY + + + Su:1992xu + SPIRESTeX + + + OSTI + 138663 + + + SLAC-PUB-5972 + + + LBL-34448 + + + A Preliminary measurement of R(b) = Gamma (Z0 ---> b anti-b) / Gamma (Z0 ---> hadrons) at SLD + + + SLD + + + + 342764 + + D93-06652 + DESY + + + Burrows:1992uq + SPIRESTeX + + + SLAC-PUB-6004 + + + Measurements of spin sensitive quantities in hadronic decays of Z0 bosons produced in e+ e- annihilations + + + SLD + + + + 340855 + + DOI + bibmatch + 10.1063/1.43537 + + + DESY + D93-03844 + + + DESY + D93-16813 + + + SPIRESTeX + Muller:1992nf + + + SLAC-PUB-5973 + + + QCD studies of hadronic decays of Z$^0$ bosons by SLD + + + SLD + + + + 334468 + + DESY + D92-11723 + + + DESY + D93-04583 + + + SPIRESTeX + Burrows:1992br + + + KEKSCAN + 92-07-433 + + + SLAC-PUB-5802 + + + First QCD results from SLD + + + SLD + + + + \ No newline at end of file diff --git a/doc/inspire-sld-1993.json b/doc/inspire-sld-1993.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1993.json @@ -0,0 +1,1 @@ +{"356912": ["A Measurement of alpha-s from jet rates at the Z0 resonance", "SLD", "10.1103/PhysRevLett.71.2528", null, null, "ins356912", null, ["SLAC-PUB-6133"]], "356288": ["First measurement of the left-right asymmetry in Z boson production", "SLD", "10.1142/S0217732393003536", null, null, null, null, ["SLAC-PUB-6169"]], "359493": ["A Study of jet handedness at the Z0 resonance", "SLD", null, null, null, null, null, ["SLAC-PUB-6362"]], "360333": ["Measurement of the charged multiplicity of Z0 ---> b anti-b events", "SLD", "10.1103/PhysRevLett.72.3145", null, "hep-ex/9405004", null, null, ["SLAC-PUB-6372", "LBL-34732", "hep-ex/9405004"]], "356293": ["Studies of QCD B physics and jet handedness at SLD", "SLD", null, null, null, null, null, ["SLAC-PUB-6225"]], "352667": ["First measurement of the left-right cross-section asymmetry in Z boson production by e+ e- collisions", "SLD", "10.1103/PhysRevLett.70.2515", null, null, "ins352667", null, ["SLAC-PUB-6030"]], "358910": ["A Measurement of R(b) = Gamma (Z0 ---> b anti-b) / Gamma (Z0 ---> hadrons) at SLD", "SLD", null, null, null, null, null, ["SLAC-PUB-6292"]], "357406": ["SLD results from the study of polarized Z0 produced at the SLC", "SLD", null, null, null, null, null, ["SLAC-PUB-6285"]]} \ No newline at end of file diff --git a/doc/inspire-sld-1993.marc.xml b/doc/inspire-sld-1993.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1993.marc.xml @@ -0,0 +1,249 @@ + + + + + 360333 + + 10.1103/PhysRevLett.72.3145 + DOI + + + D94-03750 + DESY + + + D94-08089 + DESY + + + Abe:1993sw + SPIRESTeX + + + arXiv + oai:arXiv.org:hep-ex/9405004 + + + ADS + 1994PhRvL..72.3145A + + + OSTI + 7206795 + + + SLAC-PUB-6372 + + + LBL-34732 + + + arXiv + hep-ex/9405004 + hep-ex + + + Measurement of the charged multiplicity of Z0 ---> b anti-b events + + + SLD + + + + 359493 + + D94-00033 + DESY + + + D94-13226 + DESY + + + Masuda:1993cs + SPIRESTeX + + + SLAC-PUB-6362 + + + A Study of jet handedness at the Z0 resonance + + + SLD + + + + 358910 + + D94-01802 + DESY + + + Abe:1993yi + SPIRESTeX + + + SLAC-PUB-6292 + + + A Measurement of R(b) = Gamma (Z0 ---> b anti-b) / Gamma (Z0 ---> hadrons) at SLD + + + SLD + + + + 356293 + + DESY + D93-19401 + + + DESY + D94-07065 + + + SPIRESTeX + Burrows:1993kn + + + SLAC-PUB-6225 + + + Studies of QCD B physics and jet handedness at SLD + + + SLD + + + + 357406 + + D94-01758 + DESY + + + Piccolo:1993fd + SPIRESTeX + + + KEKSCAN + 93-12-178 + + + SLAC-PUB-6285 + + + SLD results from the study of polarized Z0 produced at the SLC + + + SLD + + + + 356912 + + DOI + 10.1103/PhysRevLett.71.2528 + + + DESY + D93-17610 + + + DESY + D94-02614 + + + SPIRESTeX + Abe:1993xe + + + KEKSCAN + 93-09-308 + + + ADS + 1993PhRvL..71.2528A + + + OSTI + 5948000 + + + ins356912 + HEPDATA + + + SLAC-PUB-6133 + + + A Measurement of alpha-s from jet rates at the Z0 resonance + + + SLD + + + + 356288 + + 10.1142/S0217732393003536 + DOI + + + D93-15963 + DESY + + + D93-19372 + DESY + + + Elia:1993ka + SPIRESTeX + + + SLAC-PUB-6169 + + + First measurement of the left-right asymmetry in Z boson production + + + SLD + + + + 352667 + + DOI + 10.1103/PhysRevLett.70.2515 + + + SPIRESTeX + Abe:1993sh + + + ADS + 1993PhRvL..70.2515A + + + OSTI + 6498548 + + + ins352667 + HEPDATA + + + SLAC-PUB-6030 + + + First measurement of the left-right cross-section asymmetry in Z boson production by e+ e- collisions + + + SLD + + + + \ No newline at end of file diff --git a/doc/inspire-sld-1994.json b/doc/inspire-sld-1994.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1994.json @@ -0,0 +1,1 @@ +{"377388": ["Measurement of alpha-s from hadronic event observables at the Z0 resonance", "SLD", null, null, null, null, null, ["SLAC-PUB-6549"]], "381998": ["A Measurement of the left-right, forward - backward asymmetry for charm quarks using D*+ and D+ mesons", "SLD", null, null, null, null, null, ["SLAC-PUB-6653"]], "378344": ["Measurement of A(b) from the left-right forward - backward asymmetry of b quark production in Z0 decays using a momentum weighted track charge technique", "SLD", "10.1103/PhysRevLett.74.2890", null, null, null, null, ["SLAC-PUB-6644", "LBL-36200"]], "378545": ["Measurement of alpha-s (M(Z)**2) from hadronic event observables at the Z0 resonance", "SLD", "10.1103/PhysRevD.51.962", null, "hep-ex/9501003", "ins378545", null, ["hep-ex/9501003", "SLAC-PUB-6641"]], "378342": ["Measurement of A(b) and A(c) from the left-right forward - backward asymmetry of leptons in hadronic events at the Z0 resonance", "SLD", "10.1103/PhysRevLett.74.2895", null, null, null, null, ["SLAC-PUB-6607"]], "378340": ["Measurement of the average lifetime of B hadrons at SLD", "SLD", null, null, null, null, null, ["SLAC-PUB-6595"]], "379692": ["Electroweak coupling measurements from polarized Bhabha scattering at SLD", "SLD", "10.1063/1.48892", null, null, null, null, ["SLAC-PUB-6699", "OREXP-94-6"]], "379696": ["Heavy quark physics at SLD (preliminary results)", "SLD", null, null, null, null, null, ["SLAC-PUB-6711", "SSI-1994-021"]], "373007": ["Precise measurement of the left-right cross-section asymmetry in Z boson production by e+ e- collisions", "SLD", "10.1103/PhysRevLett.73.25", null, "hep-ex/9404001", "ins373007", null, ["SLAC-PUB-6456", "hep-ex/9404001"]], "379691": ["A Preliminary measurement of the average B hadron lifetime", "SLD", null, null, null, null, null, ["SLAC-PUB-6668"]], "380425": ["A Study of K(s), Lambda and anti-Lambda production in hadronic Z0 decays", "SLD", null, null, null, null, null, ["SLAC-PUB-6601"]], "378339": ["A Preliminary, precise measurement of the average B hadron lifetime", "SLD", null, null, null, null, null, ["SLAC-PUB-6586"]], "379694": ["Precision standard model tests with polarized $e^+ e^-$ beams", "SLD", null, null, null, null, null, ["SLAC-PUB-6678"]], "373660": ["Measuring A(b) with polarized beams at SLC", "SLD", null, null, null, null, null, ["SLAC-PUB-6513"]], "376916": ["Polarized Bhabha scattering a precision measurement of the electron neutral current couplings", "SLD", "10.1103/PhysRevLett.74.2880", null, "hep-ex/9410009", "ins376916", null, ["SLAC-PUB-6605", "hep-ex/9410009"]], "377105": ["A Search for jet handedness in hadronic Z0 decays", "SLD", null, null, null, null, null, ["SLAC-PUB-6550"]], "373005": ["Measurement of alpha-s from energy-energy correlations at the Z0 resonance", "SLD", "10.1103/PhysRevD.50.5580", null, "hep-ex/9405006", "ins373005", null, ["hep-ex/9405006", "SLAC-PUB-6451"]], "378343": ["A Search for jet handedness in hadronic Z0 decays", "SLD", "10.1103/PhysRevLett.74.1512", null, "hep-ex/9501006", "ins378343", null, ["hep-ex/9501006", "SLAC-PUB-6643"]], "373403": ["Precise determination of the weak mixing angle from a measurement of A(LR) in e+ e- ---> Z0", "SLD", null, null, "hep-ex/9405011", null, null, ["SLAC-PUB-6493", "hep-ex/9405011"]], "382002": ["A Test of the flavor independence of strong interactions", "SLD", "10.1103/PhysRevD.53.R2271", null, "hep-ex/9501005", "ins382002", null, ["hep-ex/9501005", "SLAC-PUB-6687"]]} \ No newline at end of file diff --git a/doc/inspire-sld-1994.marc.xml b/doc/inspire-sld-1994.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1994.marc.xml @@ -0,0 +1,670 @@ + + + + + 382002 + + DOI + 10.1103/PhysRevD.53.R2271 + + + arXiv + oai:arXiv.org:hep-ex/9501005 + oai:arXiv.org:hep-ex/9501005 + + + DESY + D95-04915 + + + DESY + D96-09282 + + + SPIRESTeX + Abe:1994tb + + + ADS + 1996PhRvD..53.2271A + + + ins382002 + HEPDATA + + + arXiv + hep-ex/9501005 + hep-ex + + + SLAC-PUB-6687 + + + A Test of the flavor independence of strong interactions + + + SLD + + + + 379694 + + DESY + D95-01347 + + + DESY + D96-02987 + + + SPIRESTeX + Fero:1994wm + + + SLAC-PUB-6678 + + + Precision standard model tests with polarized $e^+ e^-$ beams + + + SLD + + + + 376916 + + DOI + 10.1103/PhysRevLett.74.2880 + + + DESY + D94-17586 + + + DESY + D95-10032 + + + SPIRESTeX + Abe:1994sh + + + arXiv + oai:arXiv.org:hep-ex/9410009 + + + ADS + 1995PhRvL..74.2880A + + + OSTI + 46389 + + + ins376916 + HEPDATA + + + SLAC-PUB-6605 + + + arXiv + hep-ex/9410009 + hep-ex + + + Polarized Bhabha scattering a precision measurement of the electron neutral current couplings + + + SLD + + + + 381998 + + D95-03615 + DESY + + + D96-05542 + DESY + + + King:1994sx + SPIRESTeX + + + SLAC-PUB-6653 + + + A Measurement of the left-right, forward - backward asymmetry for charm quarks using D*+ and D+ mesons + + + SLD + + + + 379692 + + DOI + bibmatch + 10.1063/1.48892 + + + DESY + D95-01345 + + + DESY + D96-13201 + + + SPIRESTeX + Pitts:1994wj + + + OSTI + 254155 + + + SLAC-PUB-6699 + + + OREXP-94-6 + + + Electroweak coupling measurements from polarized Bhabha scattering at SLD + + + SLD + + + + 379691 + + D95-01391 + DESY + + + D95-10078 + DESY + + + Manly:1994wh + SPIRESTeX + + + SLAC-PUB-6668 + + + A Preliminary measurement of the average B hadron lifetime + + + SLD + + + + 378545 + + DOI + 10.1103/PhysRevD.51.962 + + + arXiv + oai:arXiv.org:hep-ex/9501003 + oai:arXiv.org:hep-ex/9501003 + + + DESY + D95-00730 + + + DESY + D95-18700 + + + SPIRESTeX + Abe:1994mf + + + ADS + 1995PhRvD..51..962A + + + OSTI + 6580048 + + + HEPDATA + ins378545 + + + arXiv + hep-ex/9501003 + hep-ex + + + SLAC-PUB-6641 + + + Measurement of alpha-s (M(Z)**2) from hadronic event observables at the Z0 resonance + + + SLD + + + + 378344 + + DOI + 10.1103/PhysRevLett.74.2890 + + + DESY + D95-00736 + + + DESY + D95-10095 + + + SPIRESTeX + Abe:1994bm + + + ADS + 1995PhRvL..74.2890A + + + OSTI + 46391 + + + SLAC-PUB-6644 + + + LBL-36200 + + + Measurement of A(b) from the left-right forward - backward asymmetry of b quark production in Z0 decays using a momentum weighted track charge technique + + + SLD + + + + 378340 + + D95-00739 + DESY + + + D96-05572 + DESY + + + Punkar:1994bh + SPIRESTeX + + + SLAC-PUB-6595 + + + Measurement of the average lifetime of B hadrons at SLD + + + SLD + + + + 380425 + + D95-05861 + DESY + + + D96-05631 + DESY + + + Baird:1994gm + SPIRESTeX + + + SLAC-PUB-6601 + + + A Study of K(s), Lambda and anti-Lambda production in hadronic Z0 decays + + + SLD + + + + 379696 + + D95-01369 + DESY + + + D96-17151 + DESY + + + Vella:1994wp + SPIRESTeX + + + SLAC-PUB-6711 + + + SSI-1994-021 + + + Heavy quark physics at SLD (preliminary results) + + + SLD + + + + 378343 + + DOI + 10.1103/PhysRevLett.74.1512 + + + arXiv + oai:arXiv.org:hep-ex/9501006 + oai:arXiv.org:hep-ex/9501006 + + + DESY + D95-00720 + + + DESY + D95-10010 + + + SPIRESTeX + Abe:1994bk + + + ADS + 1995PhRvL..74.1512A + + + OSTI + 6587756 + + + ins378343 + HEPDATA + + + arXiv + hep-ex/9501006 + hep-ex + + + SLAC-PUB-6643 + + + A Search for jet handedness in hadronic Z0 decays + + + SLD + + + + 378342 + + DOI + 10.1103/PhysRevLett.74.2895 + + + DESY + D95-00737 + + + DESY + D95-10096 + + + SPIRESTeX + Abe:1994bj + + + ADS + 1995PhRvL..74.2895A + + + OSTI + 46392 + + + SLAC-PUB-6607 + + + Measurement of A(b) and A(c) from the left-right forward - backward asymmetry of leptons in hadronic events at the Z0 resonance + + + SLD + + + + 378339 + + D95-00738 + DESY + + + Abe:1994bg + SPIRESTeX + + + SLAC-PUB-6586 + + + A Preliminary, precise measurement of the average B hadron lifetime + + + SLD + + + + 377388 + + Abe:1994kw + SPIRESTeX + + + SLAC-PUB-6549 + + + Measurement of alpha-s from hadronic event observables at the Z0 resonance + + + SLD + + + + 377105 + + Abe:1994gy + SPIRESTeX + + + SLAC-PUB-6550 + + + A Search for jet handedness in hadronic Z0 decays + + + SLD + + + + 373660 + + DESY + D94-12265 + + + DESY + D95-08599 + + + SPIRESTeX + Abe:1994tv + + + SLAC-PUB-6513 + + + Measuring A(b) with polarized beams at SLC + + + SLD + + + + 373403 + + DESY + D94-09575 + + + DESY + D95-08557 + + + SPIRESTeX + Woods:1994au + + + arXiv + oai:arXiv.org:hep-ex/9405011 + + + SLAC-PUB-6493 + + + arXiv + hep-ex/9405011 + hep-ex + + + SLD + + + Precise determination of the weak mixing angle from a measurement of A(LR) in e+ e- ---> Z0 + + + + 373007 + + DOI + 10.1103/PhysRevLett.73.25 + + + DESY + D94-08076 + + + DESY + D94-13242 + + + SPIRESTeX + Abe:1994wx + + + arXiv + oai:arXiv.org:hep-ex/9404001 + + + 1994PhRvL..73...25A + ADS + + + OSTI + 7080435 + + + ins373007 + HEPDATA + + + SLAC-PUB-6456 + + + arXiv + hep-ex/9404001 + hep-ex + + + Precise measurement of the left-right cross-section asymmetry in Z boson production by e+ e- collisions + + + SLD + + + + 373005 + + DOI + 10.1103/PhysRevD.50.5580 + + + arXiv + oai:arXiv.org:hep-ex/9405006 + oai:arXiv.org:hep-ex/9405006 + + + DESY + D94-09577 + + + DESY + D95-01340 + + + CERNKEY + 0181364 + + + SPIRESTeX + Abe:1994wv + + + ADS + 1994PhRvD..50.5580A + + + OSTI + 6924223 + + + ins373005 + HEPDATA + + + arXiv + hep-ex/9405006 + hep-ex + + + SLAC-PUB-6451 + + + Measurement of alpha-s from energy-energy correlations at the Z0 resonance + + + SLD + + + + \ No newline at end of file diff --git a/doc/inspire-sld-1995.json b/doc/inspire-sld-1995.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1995.json @@ -0,0 +1,1 @@ +{"398190": ["The Production of pi+-, K+-, p, K0 and Lambda0 in hadronic Z0 decays", "SLD", null, null, null, null, null, ["SLAC-PUB-6933", "SLAC-PUB-95-6933"]], "400920": ["First measurement of the t odd correlation between the Z0 spin and the three jet plane orientation in polarized Z0 decays to three jets", "SLD", "10.1103/PhysRevLett.75.4173", null, "hep-ex/9510005", "ins400920", null, ["SLAC-PUB-6969", "SLAC-PUB-95-6969", "hep-ex/9510005"]], "405739": ["First study of rapidity gaps in e+ e- annihilation", "SLD", "10.1103/PhysRevLett.76.4886", null, "hep-ex/9607008", null, null, ["SLAC-PUB-7076", "hep-ex/9607008"]], "406560": ["A Study of rapidity gaps in e+ e- ---> Z0 events", "SLD", null, null, null, null, null, ["SLAC-PUB-6925"]], "406556": ["An Improved limit on jet handedness in Z0 decays", "SLD", null, null, null, null, null, ["SLAC-PUB-6921"]], "406557": ["A Study of the orientation and energy partition of three jet events in hadronic Z0 decays", "SLD", null, null, null, null, null, ["SLAC-PUB-6922"]], "398189": ["Measurement of alpha-s from hadronic event observables at the Z0 resonance", "SLD", null, null, null, null, null, ["SLAC-PUB-6932", "SLAC-PUB-95-6932"]], "404272": ["Measurement of the left-right forward - backward asymmetry for charm quarks with D*+ and D+ mesons", "SLD", "10.1103/PhysRevLett.75.3609", null, null, "ins404272", null, ["SLAC-PUB-6681", "SLAC-PUB-95-6681"]], "406558": ["First measurement of the triple product correlation in polarized Z0 decays to three jets", "SLD", null, null, null, null, null, ["SLAC-PUB-6923"]], "401598": ["Production of charm and beauty in e+ e- with polarized electron beam", "SLD", null, null, null, null, null, ["SLAC-PUB-7000", "SLAC-PUB-95-7000"]], "394980": ["Measurements of R(b) with impact parameters and displaced vertices", "SLD", "10.1103/PhysRevD.53.1023", null, null, null, null, ["SLAC-PUB-6569", "SLAC-PUB-95-6569"]], "404166": ["Preliminary measurements of B0 and B+ lifetimes at SLD", "SLD", null, null, null, null, null, ["SLAC-PUB-6972", "SLAC-PUB-95-6972"]], "39718": ["Comparison of a new calculation of energy-energy correlations with e+ e- ---> hadrons data at the Z0 resonance", "SLD", "10.1103/PhysRevD.52.4240", null, null, "ins39718", null, ["SLAC-PUB-6739", "SLAC-PUB-95-6739"]], "406555": ["Production of pi+-, K+-, p, K0 and Lambda0 in hadronic Z0 decays", "SLD", null, null, null, null, null, ["SLAC-PUB-6920"]], "398301": ["Measurement of the polarized forward - backward asymmetry of Z0 ---> b anti-b using a lifetime tag and momentum weighted track charge", "SLD", null, null, null, "ins398301", null, ["SLAC-PUB-6979", "SLAC-PUB-95-6979"]], "406559": ["Measurement of the charged multiplicities of b, c and light quark events from Z0 decays", "SLD", null, null, null, null, null, ["SLAC-PUB-6924"]], "395955": ["Measurement of the tau lifetime at SLD", "SLD", "10.1103/PhysRevD.52.4828", null, "hep-ex/9506004", null, null, ["SLAC-PUB-6767", "SLAC-PUB-95-6767", "hep-ex/9506004"]], "406561": ["Factorial and cumulant moments in e+ e- ---> hadrons at the Z0 resonance", "SLD", null, null, null, null, null, ["SLAC-PUB-6926"]], "401106": ["Measurement of the average $B$ hadron lifetime in $Z^0$ decays using reconstructed vertices", "SLD", "10.1103/PhysRevLett.75.3624", null, "hep-ex/9511005", null, null, ["SLAC-PUB-6976", "SLAC-PUB-95-6976", "hep-ex/9511005"]]} \ No newline at end of file diff --git a/doc/inspire-sld-1995.marc.xml b/doc/inspire-sld-1995.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1995.marc.xml @@ -0,0 +1,546 @@ + + + + + 404272 + + DOI + 10.1103/PhysRevLett.75.3609 + + + DESY + D96-03617 + + + SPIRESTeX + Abe:1995yh + + + ADS + 1995PhRvL..75.3609A + + + OSTI + 135451 + + + ins404272 + HEPDATA + + + SLAC-PUB-6681 + + + SLAC-PUB-95-6681 + + + Measurement of the left-right forward - backward asymmetry for charm quarks with D*+ and D+ mesons + + + SLD + + + + 400920 + + DOI + 10.1103/PhysRevLett.75.4173 + + + DESY + D95-20863 + + + DESY + D96-01092 + + + SPIRESTeX + Abe:1995ge + + + arXiv + oai:arXiv.org:hep-ex/9510005 + + + ADS + 1995PhRvL..75.4173A + + + OSTI + 151410 + + + ins400920 + HEPDATA + + + SLAC-PUB-6969 + + + SLAC-PUB-95-6969 + + + arXiv + hep-ex/9510005 + hep-ex + + + First measurement of the t odd correlation between the Z0 spin and the three jet plane orientation in polarized Z0 decays to three jets + + + SLD + + + + 401598 + + D96-06781 + DESY + + + D97-05402 + DESY + + + Su:1995tt + SPIRESTeX + + + SLAC-PUB-7000 + + + SLAC-PUB-95-7000 + + + Production of charm and beauty in e+ e- with polarized electron beam + + + SLD + + + + 401106 + + 10.1103/PhysRevLett.75.3624 + DOI + + + D96-02028 + DESY + + + D96-03620 + DESY + + + Abe:1995rm + SPIRESTeX + + + arXiv + oai:arXiv.org:hep-ex/9511005 + + + 1995PhRvL..75.3624A + ADS + + + OSTI + 135453 + + + SLAC-PUB-6976 + + + SLAC-PUB-95-6976 + + + arXiv + hep-ex/9511005 + hep-ex + + + Measurement of the average $B$ hadron lifetime in $Z^0$ decays using reconstructed vertices + + + SLD + + + + 398301 + + SPIRESTeX + Abe:1995ft + + + ins398301 + HEPDATA + + + SLAC-PUB-6979 + + + SLAC-PUB-95-6979 + + + Measurement of the polarized forward - backward asymmetry of Z0 ---> b anti-b using a lifetime tag and momentum weighted track charge + + + SLD + + + + 398190 + + DESY + D01-05271 + + + SPIRESTeX + Baird:1995ar + + + SLAC-PUB-6933 + + + SLAC-PUB-95-6933 + + + The Production of pi+-, K+-, p, K0 and Lambda0 in hadronic Z0 decays + + + SLD + + + + 398189 + + DESY + D96-11912 + + + SPIRESTeX + Baird:1995aq + + + SLAC-PUB-6932 + + + SLAC-PUB-95-6932 + + + Measurement of alpha-s from hadronic event observables at the Z0 resonance + + + SLD + + + + 404166 + + DESY + D96-07870 + + + SPIRESTeX + Abe:1995ns + + + SLAC-PUB-6972 + + + SLAC-PUB-95-6972 + + + Preliminary measurements of B0 and B+ lifetimes at SLD + + + SLD + + + + 406560 + + SPIRESTeX + Abe:1995wm + + + SLAC-PUB-6925 + + + A Study of rapidity gaps in e+ e- ---> Z0 events + + + SLD + + + + 406558 + + SPIRESTeX + Abe:1995wj + + + SLAC-PUB-6923 + + + First measurement of the triple product correlation in polarized Z0 decays to three jets + + + SLD + + + + 406557 + + SPIRESTeX + Abe:1995wi + + + SLAC-PUB-6922 + + + A Study of the orientation and energy partition of three jet events in hadronic Z0 decays + + + SLD + + + + 406556 + + SPIRESTeX + Abe:1995wh + + + SLAC-PUB-6921 + + + An Improved limit on jet handedness in Z0 decays + + + SLD + + + + 406555 + + SPIRESTeX + Abe:1995wg + + + SLAC-PUB-6920 + + + Production of pi+-, K+-, p, K0 and Lambda0 in hadronic Z0 decays + + + SLD + + + + 406561 + + SPIRESTeX + Abe:1995wn + + + SLAC-PUB-6926 + + + Factorial and cumulant moments in e+ e- ---> hadrons at the Z0 resonance + + + SLD + + + + 406559 + + SPIRESTeX + Abe:1995wk + + + SLAC-PUB-6924 + + + Measurement of the charged multiplicities of b, c and light quark events from Z0 decays + + + SLD + + + + 394980 + + 10.1103/PhysRevD.53.1023 + DOI + + + D95-20036 + DESY + + + D96-11490 + DESY + + + Abe:1995iq + SPIRESTeX + + + ADS + 1996PhRvD..53.1023A + + + SLAC-PUB-6569 + + + SLAC-PUB-95-6569 + + + Measurements of R(b) with impact parameters and displaced vertices + + + SLD + + + + 395955 + + 10.1103/PhysRevD.52.4828 + DOI + + + D95-13104 + DESY + + + D96-02685 + DESY + + + Abe:1995yj + SPIRESTeX + + + arXiv + oai:arXiv.org:hep-ex/9506004 + + + OSTI + 124262 + + + SLAC-PUB-6767 + + + SLAC-PUB-95-6767 + + + arXiv + hep-ex/9506004 + hep-ex + + + Measurement of the tau lifetime at SLD + + + SLD + + + + 39718 + + DOI + 10.1103/PhysRevD.52.4240 + + + DESY + D95-10980 + + + DESY + D96-00284 + + + SPIRESTeX + Abe:1995gq + + + ADS + 1995PhRvD..52.4240A + + + OSTI + 251122 + + + ins39718 + HEPDATA + + + SLAC-PUB-6739 + + + SLAC-PUB-95-6739 + + + Comparison of a new calculation of energy-energy correlations with e+ e- ---> hadrons data at the Z0 resonance + + + SLD + + + + 405739 + + DOI + 10.1103/PhysRevLett.76.4886 + + + DESY + D96-15808 + + + DESY + D96-20752 + + + CERNKEY + 0229098 + + + SPIRESTeX + Abe:1995nt + + + KEKSCAN + 96-06-150 + + + arXiv + oai:arXiv.org:hep-ex/9607008 + + + ADS + 1996PhRvL..76.4886A + + + SLAC-PUB-7076 + + + arXiv + hep-ex/9607008 + hep-ex + + + SLD + + + First study of rapidity gaps in e+ e- annihilation + + + + \ No newline at end of file diff --git a/doc/inspire-sld-1996.json b/doc/inspire-sld-1996.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1996.json @@ -0,0 +1,1 @@ +{"422172": ["Measurement of the charged multiplicities in b, c and light quark events from Z0 decays", "SLD", "10.1016/0370-2693(96)01025-8", null, "hep-ex/9608008", "ins422172", ["SLD_1996_S3398250"], ["hep-ex/9608008", "SLAC-PUB-7172"]], "422170": ["A Preliminary measurement of the b quark fragmentation function in hadronic Z0 decays", "SLD", null, null, null, null, null, ["SLAC-PUB-7198"]], "426122": ["An improved measurement of the left-right $Z^0$ cross-section asymmetry", "SLD", "10.1103/PhysRevLett.78.2075", null, "hep-ex/9611011", "ins426122", null, ["hep-ex/9611011", "SLAC-PUB-7291"]], "425928": ["Updated measurement of the tau lifetime at SLD", "SLD", null, null, null, null, null, ["SLAC-PUB-7213"]], "425929": ["Preliminary measurement of time dependent B(d)0 - anti-B(d)0 mixing using topology and charge selected semileptonic B decays", "SLD", null, null, null, null, null, ["SLAC-PUB-7229"]], "421009": ["A Study of the orientation and energy partition of three jet events in hadronic Z0 decays", "SLD", "10.1103/PhysRevD.55.2533", null, "hep-ex/9608016", null, null, ["hep-ex/9608016", "SLAC-PUB-7099"]], "429039": ["Measurement of the Z0 - lepton coupling asymmetries A(lepton)", "SLD", null, null, null, null, null, ["SLAC-PUB-7234", "ICHEP-96-PA07-063"]], "428484": ["Measurement of the $B^{+}$ and $B^0$ lifetimes using topological vertexing", "SLD", null, null, "hep-ex/9702002", null, null, ["hep-ex/9702002", "SLAC-PUB-7266"]], "422168": ["Preliminary measurement of the charged multiplicities in b, c and light quark events from Z0 decays", "SLD", null, null, null, null, null, ["SLAC-PUB-7196"]], "415576": ["Factorial and cumulant moments in e+ e- ---> hadrons at the Z0 resonance", "SLD", "10.1016/0370-2693(96)00046-9", null, "hep-ex/9601010", "ins415576", null, ["SLAC-PUB-7027", "SLAC-PUB-95-7027", "hep-ex/9601010"]], "422169": ["Preliminary measurement of leading particle effects in hadronic Z0 decays", "SLD", null, null, null, null, null, ["SLAC-PUB-7197"]], "423941": ["First measurement of the left-right charge asymmetry in hadronic Z boson decays and a new determination of sin**2 theta(W)(eff)", "SLD", "10.1103/PhysRevLett.78.17", null, "hep-ex/9609019", null, null, ["hep-ex/9609019", "SLAC-PUB-7069", "SLAC-PUB-96-7069", "COLO-HEP-367"]], "429856": ["Preliminary measurement of D* / D production and D* spin alignment at the Z0 resonance", "SLD", null, null, null, null, null, ["SLAC-PUB-7200"]], "422171": ["Preliminary measurements of production of pi+-, K+-, p, K0 and Lambda0 in hadronic Z0 decays", "SLD", null, null, null, null, null, ["SLAC-PUB-7199"]], "419256": ["Tau Lorentz structure with polarization at SLD", "SLD", null, null, null, null, null, ["SLAC-PUB-7216", "ICHEP-96-PA07-065", "ICHEP-96-PA07-066"]], "422652": ["Measurement of A(b) and A(c) at the Z0 resonance using a lepton tag", "SLD", null, null, null, null, null, ["SLAC-PUB-7233", "ICHEP-96-PA10-026"]]} \ No newline at end of file diff --git a/doc/inspire-sld-1996.marc.xml b/doc/inspire-sld-1996.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1996.marc.xml @@ -0,0 +1,449 @@ + + + + + 428484 + + arXiv + oai:arXiv.org:hep-ex/9702002 + oai:arXiv.org:hep-ex/9702002 + + + DESY + D97-07040 + + + SPIRESTeX + Abe:1996gb + + + KEKSCAN + 97-04-109 + + + arXiv + hep-ex/9702002 + hep-ex + + + SLAC-PUB-7266 + + + Measurement of the $B^{+}$ and $B^0$ lifetimes using topological vertexing + + + SLD + + + + 426122 + + DOI + 10.1103/PhysRevLett.78.2075 + + + arXiv + oai:arXiv.org:hep-ex/9611011 + oai:arXiv.org:hep-ex/9611011 + + + DESY + D97-01655 + + + SPIRESTeX + Abe:1996nj + + + KEKSCAN + 97-02-184 + + + ADS + 1997PhRvL..78.2075A + + + ins426122 + HEPDATA + + + arXiv + hep-ex/9611011 + hep-ex + + + SLAC-PUB-7291 + + + An improved measurement of the left-right $Z^0$ cross-section asymmetry + + + SLD + + + + 423941 + + DOI + 10.1103/PhysRevLett.78.17 + + + arXiv + oai:arXiv.org:hep-ex/9609019 + oai:arXiv.org:hep-ex/9609019 + + + DESY + D97-00432 + + + CERNKEY + 0234214 + + + SPIRESTeX + Abe:1996ef + + + KEKSCAN + 98-05-008 + + + 1997PhRvL..78...17A + ADS + + + arXiv + hep-ex/9609019 + hep-ex + + + SLAC-PUB-7069 + + + SLAC-PUB-96-7069 + + + COLO-HEP-367 + + + First measurement of the left-right charge asymmetry in hadronic Z boson decays and a new determination of sin**2 theta(W)(eff) + + + SLD + + + + 429039 + + SPIRESTeX + Abe:1996rm + + + SLAC-PUB-7234 + + + ICHEP-96-PA07-063 + + + Measurement of the Z0 - lepton coupling asymmetries A(lepton) + + + SLD + + + + 425929 + + SPIRESTeX + Abe:1996ya + + + SLAC-PUB-7229 + + + Preliminary measurement of time dependent B(d)0 - anti-B(d)0 mixing using topology and charge selected semileptonic B decays + + + SLD + + + + 425928 + + DESY + D97-07699 + + + SPIRESTeX + Abe:1996xz + + + KEKSCAN + 97-01-073 + + + SLAC-PUB-7213 + + + Updated measurement of the tau lifetime at SLD + + + SLD + + + + 422652 + + SPIRESTeX + Abe:1996yk + + + SLAC-PUB-7233 + + + ICHEP-96-PA10-026 + + + Measurement of A(b) and A(c) at the Z0 resonance using a lepton tag + + + SLD + + + + 419256 + + SPIRESTeX + Abe:1996as + + + SLAC-PUB-7216 + + + ICHEP-96-PA07-065 + + + ICHEP-96-PA07-066 + + + Tau Lorentz structure with polarization at SLD + + + SLD + + + + 429856 + + SPIRESTeX + Abe:1996yy + + + SLAC-PUB-7200 + + + Preliminary measurement of D* / D production and D* spin alignment at the Z0 resonance + + + SLD + + + + 422172 + + DOI + 10.1016/0370-2693(96)01025-8 + + + arXiv + oai:arXiv.org:hep-ex/9608008 + oai:arXiv.org:hep-ex/9608008 + + + DESY + D96-19327 + + + SPIRESTeX + Abe:1996zi + + + ADS + 1996PhLB..386..475A + + + ins422172 + HEPDATA + + + arXiv + hep-ex/9608008 + hep-ex + + + SLAC-PUB-7172 + + + Measurement of the charged multiplicities in b, c and light quark events from Z0 decays + + + SLD + + + + 422171 + + SPIRESTeX + Abe:1996zh + + + SLAC-PUB-7199 + + + Preliminary measurements of production of pi+-, K+-, p, K0 and Lambda0 in hadronic Z0 decays + + + SLD + + + + 422170 + + SPIRESTeX + Abe:1996zg + + + SLAC-PUB-7198 + + + A Preliminary measurement of the b quark fragmentation function in hadronic Z0 decays + + + SLD + + + + 422169 + + SPIRESTeX + Abe:1996zf + + + SLAC-PUB-7197 + + + Preliminary measurement of leading particle effects in hadronic Z0 decays + + + SLD + + + + 422168 + + SPIRESTeX + Abe:1996ze + + + SLAC-PUB-7196 + + + Preliminary measurement of the charged multiplicities in b, c and light quark events from Z0 decays + + + SLD + + + + 421009 + + DOI + 10.1103/PhysRevD.55.2533 + + + arXiv + oai:arXiv.org:hep-ex/9608016 + oai:arXiv.org:hep-ex/9608016 + + + DESY + D96-22575 + + + SPIRESTeX + Abe:1996tb + + + KEKSCAN + 96-10-080 + + + ADS + 1997PhRvD..55.2533A + + + arXiv + hep-ex/9608016 + hep-ex + + + SLAC-PUB-7099 + + + A Study of the orientation and energy partition of three jet events in hadronic Z0 decays + + + SLD + + + + 415576 + + DOI + 10.1016/0370-2693(96)00046-9 + + + DESY + D96-05766 + + + DESY + D96-08079 + + + SPIRESTeX + Abe:1996vs + + + arXiv + oai:arXiv.org:hep-ex/9601010 + + + ADS + 1996PhLB..371..149A + + + HEPDATA + ins415576 + + + SLAC-PUB-7027 + + + SLAC-PUB-95-7027 + + + arXiv + hep-ex/9601010 + hep-ex + + + Factorial and cumulant moments in e+ e- ---> hadrons at the Z0 resonance + + + SLD + + + + \ No newline at end of file diff --git a/doc/inspire-sld-1997.json b/doc/inspire-sld-1997.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1997.json @@ -0,0 +1,1 @@ +{"445191": ["Measurement of the B hadron energy distribution in Z0 decays", "SLD", "10.1103/PhysRevD.56.5310", null, "hep-ex/9707011", "ins445191", null, ["SLAC-PUB-7489", "hep-ex/9707011"]], "452796": ["Search for CP violation and b ---> sg in inclusive B decays", "SLD", null, null, "hep-ex/9712031", null, null, ["hep-ex/9712031", "SLAC-PUB-7682"]], "440596": ["Measurement of the polarized forward backward asymmetry of Z0 ---> b anti-b using a mass tag and momentum weighted track charge", "SLD", null, null, null, null, null, ["SLAC-PUB-7629"]], "452927": ["Tests of QCD using Z0 ---> b anti-b g events", "SLD", null, null, null, null, null, ["SLAC-PUB-7670"]], "440040": ["Measurement of the $B^{+}$ and $B^0$ lifetimes from semileptonic decays", "SLD", null, null, "hep-ex/9702001", null, null, ["hep-ex/9702001", "SLAC-PUB-7117"]], "440436": ["Measurement of leading particle effects in decays of Z0 bosons into light flavors", "SLD", "10.1103/PhysRevLett.78.3442", null, "hep-ex/9702009", null, null, ["hep-ex/9702009", "SLAC-PUB-7395"]], "451935": ["Measurement of A(b) from left right forward backward asymmetry in Z0 decays using charged kaon tagging", "SLD", null, null, null, null, null, ["SLAC-PUB-7630"]], "445647": ["A Preliminary improved test of the flavor independence of strong interactions", "SLD", null, null, null, null, null, ["SLAC-PUB-7573"]], "445646": ["A Preliminary study of the structure of b anti-b g events using Z0 decays", "SLD", null, null, null, null, null, ["SLAC-PUB-7572"]], "445645": ["Production of pi+-, K+-, K0, K*0, phi, p and Lambda0 in hadronic Z0 decays", "SLD", null, null, null, null, null, ["SLAC-PUB-7571"]], "445644": ["Symmetry tests in polarized Z0 decays to b anti-b g", "SLD", null, null, null, null, null, ["SLAC-PUB-7570"]], "445648": ["Preliminary measurement of prompt D+- and D*+- meson production and D*+- spin alignment in hadronic Z0 decays", "SLD", null, null, null, null, null, ["SLAC-PUB-7574"]], "439997": ["Measurement of the tau-neutrino helicity and the Michel parameters in polarized e+ e- collisions", "SLD", "10.1103/PhysRevLett.78.4691", null, "hep-ex/9701020", null, null, ["hep-ex/9701020", "SLAC-PUB-7333"]], "449704": ["Measurement of the $B^{+}$ and $B^0$ lifetimes using topological reconstruction of inclusive and semileptonic decays", "SLD", "10.1103/PhysRevLett.79.590", null, null, null, null, ["SLAC-PUB-7674"]], "450154": ["A Preliminary inclusive measurement of A(c) using the SLD detectors", "SLD", null, null, null, null, null, ["SLAC-PUB-7595"]], "450686": ["Direct measurement of A(b) and A(c) at the Z0 pole using a lepton tag", "SLD", null, null, null, null, null, ["SLAC-PUB-7637"]], "446881": ["A Preliminary measurement of R(b) using the upgrade SLD vertex detector", "SLD", null, null, null, null, null, ["SLAC-PUB-7585"]], "442260": ["Direct measurement of leptonic coupling asymmetries with polarized Zs", "SLD", "10.1103/PhysRevLett.79.804", null, "hep-ex/9704012", "ins442260", null, ["hep-ex/9704012", "SLAC-PUB-7418"]], "449925": ["A Preliminary measurement of R(c) using the SLD detector", "SLD", null, null, null, null, null, ["SLAC-PUB-7594"]], "449679": ["Measurement of the B+ and B0 lifetimes using topological vertexing at SLD", "SLD", null, null, null, null, null, ["SLAC-PUB-7635", "EPS-127-PA05"]], "449928": ["Properties of the b anti-b g vertex", "SLD", "10.1016/S0920-5632(97)01095-5", null, null, null, null, ["SLAC-PUB-7669"]], "448507": ["QCD Studies at SLD: Identified hadron production in jets of different flavors", "SLD", "10.1016/S0920-5632(97)01027-X", null, null, null, null, ["SLAC-PUB-7639"]], "447268": ["A Measurement of R(b) using a vertex mass tag", "SLD", "10.1103/PhysRevLett.80.660", null, "hep-ex/9708015", null, null, ["SLAC-PUB-7481", "hep-ex/9708015"]]} \ No newline at end of file diff --git a/doc/inspire-sld-1997.marc.xml b/doc/inspire-sld-1997.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1997.marc.xml @@ -0,0 +1,609 @@ + + + + + 452927 + + DESY + D99-00308 + + + SPIRESTeX + Abe:1997fc + + + SLAC-PUB-7670 + + + Tests of QCD using Z0 ---> b anti-b g events + + + SLD + + + + 452796 + + oai:arXiv.org:hep-ex/9712031 + oai:arXiv.org:hep-ex/9712031 + arXiv + + + D98-03977 + DESY + + + Daoudi:1997zn + SPIRESTeX + + + KEKSCAN + 98-02-168 + + + hep-ex/9712031 + arXiv + hep-ex + + + SLAC-PUB-7682 + + + Search for CP violation and b ---> sg in inclusive B decays + + + SLD + + + + 449928 + + 10.1016/S0920-5632(97)01095-5 + DOI + + + Plano:1997jd + SPIRESTeX + + + ADS + 1998NuPhS..64..392P + + + SLAC-PUB-7669 + + + Properties of the b anti-b g vertex + + + SLD + + + + 448507 + + DOI + 10.1016/S0920-5632(97)01027-X + + + DESY + D98-00973 + + + SPIRESTeX + Kalelkar:1997qq + + + ADS + 1998NuPhS..64...12K + + + SLAC-PUB-7639 + + + QCD Studies at SLD: Identified hadron production in jets of different flavors + + + SLD + + + + 447268 + + DOI + 10.1103/PhysRevLett.80.660 + + + DESY + D97-18705 + + + SPIRESTeX + Abe:1997sb + + + arXiv + oai:arXiv.org:hep-ex/9708015 + + + 1998PhRvL..80..660A + ADS + + + SLAC-PUB-7481 + + + arXiv + hep-ex/9708015 + hep-ex + + + A Measurement of R(b) using a vertex mass tag + + + SLD + + + + 451935 + + SPIRESTeX + Abe:1997eg + + + KEKSCAN + 97-12-070 + + + SLAC-PUB-7630 + + + Measurement of A(b) from left right forward backward asymmetry in Z0 decays using charged kaon tagging + + + SLD + + + + 450686 + + SPIRESTeX + Abe:1997vw + + + SLAC-PUB-7637 + + + Direct measurement of A(b) and A(c) at the Z0 pole using a lepton tag + + + SLD + + + + 450154 + + SPIRESTeX + Abe:1997vh + + + SLAC-PUB-7595 + + + A Preliminary inclusive measurement of A(c) using the SLD detectors + + + SLD + + + + 449925 + + SPIRESTeX + Abe:1997ix + + + SLAC-PUB-7594 + + + A Preliminary measurement of R(c) using the SLD detector + + + SLD + + + + 449679 + + SPIRESTeX + Abe:1997xr + + + SLAC-PUB-7635 + + + EPS-127-PA05 + + + Measurement of the B+ and B0 lifetimes using topological vertexing at SLD + + + SLD + + + + 446881 + + SPIRESTeX + Abe:1997yn + + + KEKSCAN + 97-12-116 + + + SLAC-PUB-7585 + + + A Preliminary measurement of R(b) using the upgrade SLD vertex detector + + + SLD + + + + 440596 + + SPIRESTeX + Abe:1997am + + + SLAC-PUB-7629 + + + Measurement of the polarized forward backward asymmetry of Z0 ---> b anti-b using a mass tag and momentum weighted track charge + + + SLD + + + + 445648 + + DESY + D99-03866 + + + SPIRESTeX + Abe:1997ng + + + SLAC-PUB-7574 + + + Preliminary measurement of prompt D+- and D*+- meson production and D*+- spin alignment in hadronic Z0 decays + + + SLD + + + + 445647 + + DESY + D99-00311 + + + SPIRESTeX + Abe:1997nf + + + SLAC-PUB-7573 + + + A Preliminary improved test of the flavor independence of strong interactions + + + SLD + + + + 445646 + + DESY + D99-00310 + + + SPIRESTeX + Abe:1997ne + + + SLAC-PUB-7572 + + + A Preliminary study of the structure of b anti-b g events using Z0 decays + + + SLD + + + + 445645 + + DESY + D99-03187 + + + SPIRESTeX + Abe:1997nd + + + SLAC-PUB-7571 + + + Production of pi+-, K+-, K0, K*0, phi, p and Lambda0 in hadronic Z0 decays + + + SLD + + + + 445644 + + DESY + D99-00309 + + + SPIRESTeX + Abe:1997nc + + + SLAC-PUB-7570 + + + Symmetry tests in polarized Z0 decays to b anti-b g + + + SLD + + + + 445191 + + DOI + 10.1103/PhysRevD.56.5310 + + + DESY + D97-13919 + + + SPIRESTeX + Abe:1997ixa + + + KEKSCAN + 97-08-343 + + + arXiv + oai:arXiv.org:hep-ex/9707011 + + + ADS + 1997PhRvD..56.5310A + + + ins445191 + HEPDATA + + + SLAC-PUB-7489 + + + arXiv + hep-ex/9707011 + hep-ex + + + Measurement of the B hadron energy distribution in Z0 decays + + + SLD + + + + 442260 + + DOI + 10.1103/PhysRevLett.79.804 + + + arXiv + oai:arXiv.org:hep-ex/9704012 + oai:arXiv.org:hep-ex/9704012 + + + DESY + D97-10211 + + + SPIRESTeX + Abe:1997xm + + + KEKSCAN + 97-06-071 + + + ADS + 1997PhRvL..79..804A + + + ins442260 + HEPDATA + + + arXiv + hep-ex/9704012 + hep-ex + + + SLAC-PUB-7418 + + + Direct measurement of leptonic coupling asymmetries with polarized Zs + + + SLD + + + + 439997 + + DOI + 10.1103/PhysRevLett.78.4691 + + + arXiv + oai:arXiv.org:hep-ex/9701020 + oai:arXiv.org:hep-ex/9701020 + + + DESY + D97-06737 + + + SPIRESTeX + Abe:1997dy + + + KEKSCAN + 97-04-148 + + + 1997PhRvL..78.4691A + ADS + + + arXiv + hep-ex/9701020 + hep-ex + + + SLAC-PUB-7333 + + + Measurement of the tau-neutrino helicity and the Michel parameters in polarized e+ e- collisions + + + SLD + + + + 449704 + + DOI + 10.1103/PhysRevLett.79.590 + + + DESY + D98-01778 + + + SPIRESTeX + Abe:1997ys + + + SLAC-PUB-7674 + + + Measurement of the $B^{+}$ and $B^0$ lifetimes using topological reconstruction of inclusive and semileptonic decays + + + SLD + + + + 440436 + + 10.1103/PhysRevLett.78.3442 + DOI + + + 10.1103/PhysRevLett.79.959 + erratum + DOI + + + arXiv + oai:arXiv.org:hep-ex/9702009 + oai:arXiv.org:hep-ex/9702009 + + + DESY + D97-07043 + + + SPIRESTeX + Abe:1997yna + + + KEKSCAN + 97-04-153 + + + ADS + 1997PhRvL..78.3442A + + + arXiv + hep-ex/9702009 + hep-ex + + + SLAC-PUB-7395 + + + Measurement of leading particle effects in decays of Z0 bosons into light flavors + + + SLD + + + + 440040 + + arXiv + oai:arXiv.org:hep-ex/9702001 + oai:arXiv.org:hep-ex/9702001 + + + DESY + D97-06738 + + + SPIRESTeX + Abe:1997gc + + + KEKSCAN + 97-04-107 + + + arXiv + hep-ex/9702001 + hep-ex + + + SLAC-PUB-7117 + + + Measurement of the $B^{+}$ and $B^0$ lifetimes from semileptonic decays + + + SLD + + + + \ No newline at end of file diff --git a/doc/inspire-sld-1998.json b/doc/inspire-sld-1998.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1998.json @@ -0,0 +1,1 @@ +{"482462": ["Physics results from SLD using the CRID", "SLD", "10.1016/S0168-9002(99)00339-3", null, "hep-ex/9901032", null, null, ["hep-ex/9901032", "SLAC-PUB-8046"]], "478068": ["Identified hadron production and light quark fragmentation in Z0 decays", "SLD", "10.1016/S0920-5632(99)00124-3", null, "hep-ex/9810034", null, null, ["hep-ex/9810034", "SLAC-PUB-7974"]], "473588": ["An Improved direct measurement of leptonic coupling asymmetries with polarized Z0's", "SLD", null, null, null, null, null, ["SLAC-PUB-7878", "ICHEP-PA01-362"]], "469925": ["Production of pi+, K+, K0, K*0, phi, p and Lambda0 in hadronic Z0 decays", "SLD", "10.1103/PhysRevD.59.052001", null, "hep-ex/9805029", "ins469925", ["SLD_1999_S3743934"], ["SLAC-PUB-7766", "hep-ex/9805029"]], "474071": ["Measurement of the $B^{+}$ and $B^0$ lifetimes using topological vertexing at SLD", "SLD", null, null, null, null, null, ["SLAC-PUB-7868", "ICHEP-PA08-180"]], "484833": ["Direct measurement of A(b) in Z0 decays using charged kaon tagging", "SLD", "10.1103/PhysRevLett.83.1902", null, null, null, null, ["SLAC-PUB-7959"]], "469102": ["A Direct measurement of parity violation in the coupling of Z0 bosons to b quarks using a mass tag and momentum weighted track charge", "SLD", "10.1103/PhysRevLett.81.942", null, null, null, null, ["SLAC-PUB-7794"]], "474247": ["A Preliminary improved measurement of the B hadron energy distribution in Z0 decays", "SLD", null, null, null, null, null, ["SLAC-PUB-7826"]], "474245": ["A Preliminary direct measurement of the parity violating coupling of the Z0 to strange quarks, A(s)", "SLD", null, null, null, null, null, ["SLAC-PUB-7825"]], "474244": ["A Study of correlations between identified charged hadrons in hadronic Z0 decays", "SLD", null, null, null, null, null, ["SLAC-PUB-7824"]], "474243": ["Symmetry tests in polarized Z0 decays to b anti-b g", "SLD", null, null, null, null, null, ["SLAC-PUB-7823"]], "474241": ["A Preliminary study of the structure of b anti-b g events using Z0 decays", "SLD", null, null, null, null, null, ["SLAC-PUB-7822"]], "477372": ["QCD tests using b anti-b g events and a new measurement of the B hadron energy distribution", "SLD", "10.1016/S0920-5632(99)00178-4", null, "hep-ex/9810010", null, null, ["hep-ex/9810010", "SLAC-PUB-7940"]], "473758": ["Measurement of A(b) at the Z0 resonance using a jet charged technique", "SLD", null, null, null, null, null, ["SLAC-PUB-7886", "ICHEP-PA01-179"]], "470140": ["An Improved test of the flavor independence of strong interactions", "SLD", "10.1103/PhysRevD.59.012002", null, "hep-ex/9805023", null, null, ["hep-ex/9805023", "SLAC-PUB-7660"]], "483184": ["Heavy flavor fragmentation and decay at SLD", "SLD", null, null, null, null, null, ["SLAC-PUB-7966"]], "473591": ["An Improved inclusive measurement of A(c) using the SLD detector", "SLD", null, null, null, null, null, ["SLAC-PUB-7879"]], "473718": ["A Measurement of R(c) using the SLD detector", "SLD", null, null, null, null, null, ["SLAC-PUB-7880"]], "474070": ["Time dependent B0(s) - anti-B0(s) mixing using inclusive and semileptonic B decays at SLD", "SLD", null, null, null, null, null, ["SLAC-PUB-7885", "ICHEP-PA08-181"]], "473944": ["Inclusive search for b ---> sg", "SLD", null, null, null, null, null, ["SLAC-PUB-7896", "ICHEP-PA07-183"]], "475040": ["Heavy quark mass effects and improved tests of the flavor independence of strong interactions", "SLD", null, null, "hep-ex/9808017", null, null, ["hep-ex/9808017", "SLAC-PUB-7914", "OUNP-98-06"]], "477681": ["Charmless and double charm B decays at SLD", "SLD", null, null, "hep-ex/9810027", null, null, ["hep-ex/9810027", "SLAC-PUB-7941"]]} \ No newline at end of file diff --git a/doc/inspire-sld-1998.marc.xml b/doc/inspire-sld-1998.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1998.marc.xml @@ -0,0 +1,592 @@ + + + + + 484833 + + DOI + 10.1103/PhysRevLett.83.1902 + + + D99-12652 + DESY + + + Abe:1998mz + SPIRESTeX + + + SLAC-PUB-7959 + + + Direct measurement of A(b) in Z0 decays using charged kaon tagging + + + SLD + + + + 482462 + + DOI + 10.1016/S0168-9002(99)00339-3 + + + arXiv + oai:arXiv.org:hep-ex/9901032 + oai:arXiv.org:hep-ex/9901032 + + + DESY + D99-05508 + + + SPIRESTeX + Muller:1998gt + + + ADS + 1999NIMPA.433..314M + + + arXiv + hep-ex/9901032 + hep-ex + + + SLAC-PUB-8046 + + + Physics results from SLD using the CRID + + + SLD + + + + 478068 + + 10.1016/S0920-5632(99)00124-3 + DOI + + + oai:arXiv.org:hep-ex/9810034 + oai:arXiv.org:hep-ex/9810034 + arXiv + + + D98-20980 + DESY + + + Kalelkar:1998px + SPIRESTeX + + + ADS + 1999NuPhS..74....7K + + + hep-ex/9810034 + arXiv + hep-ex + + + SLAC-PUB-7974 + + + Identified hadron production and light quark fragmentation in Z0 decays + + + SLD + + + + 477681 + + oai:arXiv.org:hep-ex/9810027 + oai:arXiv.org:hep-ex/9810027 + arXiv + + + D98-20984 + DESY + + + Daoudi:1998bd + SPIRESTeX + + + KEKSCAN + 98-11-041 + + + hep-ex/9810027 + arXiv + hep-ex + + + SLAC-PUB-7941 + + + Charmless and double charm B decays at SLD + + + SLD + + + + 477372 + + SLD + + + hep-ex/9810010 + arXiv + hep-ex + + + SLAC-PUB-7940 + + + QCD tests using b anti-b g events and a new measurement of the B hadron energy distribution + + + 10.1016/S0920-5632(99)00178-4 + DOI + + + oai:arXiv.org:hep-ex/9810010 + oai:arXiv.org:hep-ex/9810010 + arXiv + + + D98-21303 + DESY + + + Muller:1998hu + SPIRESTeX + + + ADS + 1999NuPhS..74..276B + + + + 475040 + + oai:arXiv.org:hep-ex/9808017 + oai:arXiv.org:hep-ex/9808017 + arXiv + + + D98-18482 + DESY + + + Burrows:1998kk + SPIRESTeX + + + KEKSCAN + 98-10-001 + + + hep-ex/9808017 + arXiv + hep-ex + + + SLAC-PUB-7914 + + + OUNP-98-06 + + + Heavy quark mass effects and improved tests of the flavor independence of strong interactions + + + SLD + + + + 474071 + + DESY + D99-00292 + + + SPIRESTeX + Abe:1998xr + + + SLAC-PUB-7868 + + + ICHEP-PA08-180 + + + Measurement of the $B^{+}$ and $B^0$ lifetimes using topological vertexing at SLD + + + SLD + + + + 474070 + + DESY + D99-00291 + + + SPIRESTeX + Abe:1998xq + + + SLAC-PUB-7885 + + + ICHEP-PA08-181 + + + Time dependent B0(s) - anti-B0(s) mixing using inclusive and semileptonic B decays at SLD + + + SLD + + + + 473588 + + SPIRESTeX + Abe:1998qw + + + SLAC-PUB-7878 + + + ICHEP-PA01-362 + + + An Improved direct measurement of leptonic coupling asymmetries with polarized Z0's + + + SLD + + + + 473944 + + DESY + D99-03190 + + + SPIRESTeX + Abe:1998rr + + + SLAC-PUB-7896 + + + ICHEP-PA07-183 + + + Inclusive search for b ---> sg + + + SLD + + + + 473758 + + DESY + D98-21507 + + + SPIRESTeX + Abe:1998ha + + + SLAC-PUB-7886 + + + ICHEP-PA01-179 + + + Measurement of A(b) at the Z0 resonance using a jet charged technique + + + SLD + + + + 473718 + + DESY + D99-00290 + + + SPIRESTeX + Abe:1998ez + + + SLAC-PUB-7880 + + + A Measurement of R(c) using the SLD detector + + + SLD + + + + 473591 + + DESY + D99-00293 + + + SPIRESTeX + Abe:1998se + + + SLAC-PUB-7879 + + + An Improved inclusive measurement of A(c) using the SLD detector + + + SLD + + + + 474247 + + DESY + D99-01015 + + + SPIRESTeX + Abe:1998es + + + SLAC-PUB-7826 + + + A Preliminary improved measurement of the B hadron energy distribution in Z0 decays + + + SLD + + + + 474245 + + DESY + D99-00294 + + + SPIRESTeX + Abe:1998eq + + + SLAC-PUB-7825 + + + A Preliminary direct measurement of the parity violating coupling of the Z0 to strange quarks, A(s) + + + SLD + + + + 474244 + + DESY + D99-01014 + + + SPIRESTeX + Abe:1998ep + + + SLAC-PUB-7824 + + + A Study of correlations between identified charged hadrons in hadronic Z0 decays + + + SLD + + + + 474243 + + DESY + D99-00296 + + + SPIRESTeX + Abe:1998en + + + SLAC-PUB-7823 + + + Symmetry tests in polarized Z0 decays to b anti-b g + + + SLD + + + + 474241 + + DESY + D99-00295 + + + SPIRESTeX + Abe:1998ek + + + SLAC-PUB-7822 + + + A Preliminary study of the structure of b anti-b g events using Z0 decays + + + SLD + + + + 470140 + + DOI + 10.1103/PhysRevD.59.012002 + + + arXiv + oai:arXiv.org:hep-ex/9805023 + oai:arXiv.org:hep-ex/9805023 + + + DESY + D98-11340 + + + SPIRESTeX + Abe:1998kr + + + KEKSCAN + 98-06-131 + + + ADS + 1999PhRvD..59a2002A + + + arXiv + hep-ex/9805023 + hep-ex + + + SLAC-PUB-7660 + + + An Improved test of the flavor independence of strong interactions + + + SLD + + + + 469102 + + DOI + 10.1103/PhysRevLett.81.942 + + + DESY + D98-12574 + + + SPIRESTeX + Abe:1998wk + + + KEKSCAN + 98-05-138 + + + SLAC-PUB-7794 + + + A Direct measurement of parity violation in the coupling of Z0 bosons to b quarks using a mass tag and momentum weighted track charge + + + SLD + + + + 469925 + + DOI + 10.1103/PhysRevD.59.052001 + + + DESY + D98-11334 + + + SPIRESTeX + Abe:1998zs + + + KEKSCAN + 98-06-104 + + + arXiv + oai:arXiv.org:hep-ex/9805029 + + + ins469925 + HEPDATA + + + SLAC-PUB-7766 + + + arXiv + hep-ex/9805029 + hep-ex + + + Production of pi+, K+, K0, K*0, phi, p and Lambda0 in hadronic Z0 decays + + + SLD + + + + 483184 + + SPIRESTeX + Plano:1998ic + + + SLAC-PUB-7966 + + + Heavy flavor fragmentation and decay at SLD + + + SLD + + + + \ No newline at end of file diff --git a/doc/inspire-sld-1999.json b/doc/inspire-sld-1999.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1999.json @@ -0,0 +1,1 @@ +{"504120": ["Direct measurement of A(b) using charged kaons at the SLD detector", "SLD", null, null, "hep-ex/9907066", null, null, ["hep-ex/9907066", "SLAC-PUB-8200"]], "504736": ["Combined SLD measurement of A(b) at the Z0 resonance using various techniques", "SLD", null, null, "hep-ex/9907063", null, null, ["hep-ex/9907063", "SLAC-PUB-8211"]], "512427": ["Precise measurement of the b quark fragmentation function in Z0 boson decays", "SLD", "10.1103/PhysRevLett.84.4300", null, "hep-ex/9912058", "ins512427", null, ["hep-ex/9912058", "SLAC-PUB-8316"]], "503909": ["Measurement of the probability for gluon splitting into b anti-b in Z0 decays", "SLD", null, null, "hep-ex/9908028", null, null, ["hep-ex/9908028", "SLAC-PUB-8157"]], "510213": ["Searches for anomalous effects in the b anti-b g coupling", "SLD", null, null, "hep-ex/9911020", null, null, ["hep-ex/9911020", "SLAC-PUB-8302", "OUNP-99-14"]], "508478": ["QCD with SLD", "SLD", null, null, "hep-ex/9910023", null, null, ["hep-ex/9910023", "SLAC-PUB-8271"]], "500779": ["An Improved measurement of the b quark fragmentation function in Z0 decays", "SLD", null, null, "hep-ex/9905054", null, null, ["hep-ex/9905054", "SLAC-PUB-8075"]], "500457": ["Measurement of Z0 to heavy quark couplings at SLD", "SLD", null, null, "hep-ex/9905040", null, null, ["hep-ex/9905040", "SLAC-PUB-8162"]], "502360": ["Direct measurement of A(b) and A(c) at the Z0 pole using a lepton tag", "SLD", "10.1103/PhysRevLett.83.3384", null, null, null, null, ["SLAC-PUB-7798"]], "502361": ["Measurements of Z0 electroweak couplings at SLD", "SLD", null, null, null, null, null, ["SLAC-PUB-8175"]], "498726": ["Light quark fragmentation and a measurement of $A_s$ at the SLD", "SLD", null, null, null, null, null, ["SLAC-PUB-8133"]], "503988": ["A Study of correlations between identified charged hadronic Z0 decays", "SLD", null, null, "hep-ex/9908035", null, null, ["SLAC-PUB-8160", "hep-ex/9908035"]], "496238": ["First study of the structure of e+ e- ---> b anti-b g events and limits on the anomalous chromomagnetic coupling of the b quark", "SLD", "10.1103/PhysRevD.60.092002", null, "hep-ex/9903004", null, null, ["hep-ex/9903004", "SLAC-PUB-7920"]], "496237": ["A Preliminary direct measurement of the parity violating coupling of the Z0 to strange quarks, A(s)", "SLD", null, null, "hep-ex/9903003", null, null, ["hep-ex/9903003", "SLAC-PUB-8066"]], "503753": ["Study of the structure of e+ e- ---> b anti-b g events and improved limits on the anomalous chromomagnetic coupling of the b quark", "SLD", null, null, "hep-ex/9908027", null, null, ["hep-ex/9908027", "SLAC-PUB-8155"]], "504118": ["Direct measurement of A(c) using inclusive charm tagging at the SLD detector", "SLD", null, null, "hep-ex/9907065", null, null, ["hep-ex/9907065", "SLAC-PUB-8199"]], "503754": ["Symmetry tests in polarized Z0 decays to b anti-b g", "SLD", "10.1063/1.1384082", null, "hep-ex/9908031", null, null, ["hep-ex/9908031", "SLAC-PUB-8156"]], "503676": ["A Preliminary direct measurement of the parity violating coupling of the Z0 to strange quarks, A(s)", "SLD", null, null, "hep-ex/9908038", null, null, ["hep-ex/9908038", "SLAC-PUB-8154"]], "504117": ["Measurement of A(c) with charmed mesons at SLD", "SLD", null, null, "hep-ex/9907039", null, null, ["hep-ex/9907039", "SLAC-PUB-8195"]], "504116": ["Direct measurement of the neutral weak dipole moments of the tau lepton", "SLD", null, null, null, null, null, ["SLAC-PUB-8163"]], "507923": ["Hadron production in quark and anti-quark jets", "SLD", null, null, null, null, null, ["SLAC-PUB-8257"]], "504583": ["Measurement of the $B^{+}$ and $B^0$ lifetimes using topological vertexing at SLD", "SLD", null, null, "hep-ex/9907051", null, null, ["SLAC-PUB-8206", "hep-ex/9907051"]], "509034": ["Search for charmless hadronic decays of B mesons with the SLD detector", "SLD", "10.1103/PhysRevD.62.071101", null, "hep-ex/9910050", null, null, ["SLAC-PUB-8280", "SCIPP-99-45", "hep-ex/9910050"]], "507359": ["Time dependent B0(s) - anti-B0(s) mixing using inclusive and semileptonic B decays at SLD", "SLD", null, null, null, null, null, ["SLAC-PUB-8225"]], "504987": ["An Improved direct measurement of leptonic coupling asymmetries with polarized Z0s", "SLD", null, null, "hep-ex/9908006", null, null, ["hep-ex/9908006", "SLAC-PUB-8213"]], "500782": ["A Preliminary measurement of the gluon splitting rate into b anti-b pairs in hadronic Z0 decays", "SLD", null, null, "hep-ex/9905057", null, null, ["hep-ex/9905057", "SLAC-PUB-8169"]], "503554": ["Measurement of the b quark fragmentation function in Z0 decays", "SLD", null, null, "hep-ex/9908032", null, null, ["SLAC-PUB-8153", "hep-ex/9908032"]], "503910": ["Production of charged pi+-, K+- and p / anti-p in hadronic Z0 decays", "SLD", null, null, "hep-ex/9908033", null, null, ["SLAC-PUB-8159", "hep-ex/9908033"]], "497051": ["B decay studies at SLD", "SLD", null, null, "hep-ex/9903061", null, null, ["hep-ex/9903061", "SLAC-PUB-8076"]], "504294": ["New measurement of A(b) at the Z0 resonance using a vertex charge technique", "SLD", null, null, "hep-ex/9907050", null, null, ["hep-ex/9907050", "SLAC-PUB-8201"]], "500546": ["Tests of QCD using Heavy Flavors in $Z^0$ Decays at SLD", "SLD", null, null, "hep-ex/9905058", null, null, ["hep-ex/9905058", "SLAC-PUB-8150"]], "507820": ["Recent tests of QCD at SLD", "SLD", "10.1016/S0920-5632(00)00533-8", null, null, null, null, ["hep-ex/9909049", "SLAC-PUB-8259"]]} \ No newline at end of file diff --git a/doc/inspire-sld-1999.marc.xml b/doc/inspire-sld-1999.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-1999.marc.xml @@ -0,0 +1,946 @@ + + + + + 512427 + + DOI + 10.1103/PhysRevLett.84.4300 + + + arXiv + oai:arXiv.org:hep-ex/9912058 + oai:arXiv.org:hep-ex/9912058 + + + DESY + D00-05692 + + + SPIRESTeX + Abe:1999ki + + + ADS + 2000PhRvL..84.4300A + + + ins512427 + HEPDATA + + + arXiv + hep-ex/9912058 + hep-ex + + + SLAC-PUB-8316 + + + Precise measurement of the b quark fragmentation function in Z0 boson decays + + + SLD + + + + 509034 + + DOI + 10.1103/PhysRevD.62.071101 + + + D00-00479 + DESY + + + Abe:1999ze + SPIRESTeX + + + arXiv + oai:arXiv.org:hep-ex/9910050 + + + SLAC-PUB-8280 + + + SCIPP-99-45 + + + arXiv + hep-ex/9910050 + hep-ex + + + Search for charmless hadronic decays of B mesons with the SLD detector + + + SLD + + + + 508478 + + oai:arXiv.org:hep-ex/9910023 + oai:arXiv.org:hep-ex/9910023 + arXiv + + + D00-00296 + DESY + + + Abe:1999ad + SPIRESTeX + + + hep-ex/9910023 + arXiv + hep-ex + + + SLAC-PUB-8271 + + + QCD with SLD + + + SLD + + + + 510213 + + oai:arXiv.org:hep-ex/9911020 + oai:arXiv.org:hep-ex/9911020 + arXiv + + + D00-02590 + DESY + + + Abe:1999wp + SPIRESTeX + + + hep-ex/9911020 + arXiv + hep-ex + + + SLAC-PUB-8302 + + + OUNP-99-14 + + + Searches for anomalous effects in the b anti-b g coupling + + + SLD + + + + 507923 + + D99-17926 + DESY + + + Muller:1999cy + SPIRESTeX + + + SLAC-PUB-8257 + + + Hadron production in quark and anti-quark jets + + + SLD + + + + 507820 + + DOI + 10.1016/S0920-5632(00)00533-8 + + + arXiv + oai:arXiv.org:hep-ex/9909049 + + + DESY + D99-16770 + + + SPIRESTeX + Muller:1999yg + + + ADS + 2000NuPhS..86....7M + + + arXiv + hep-ex/9909049 + hep-ex + + + SLAC-PUB-8259 + + + Recent tests of QCD at SLD + + + SLD + + + + 504987 + + oai:arXiv.org:hep-ex/9908006 + oai:arXiv.org:hep-ex/9908006 + arXiv + + + D99-15445 + DESY + + + Abe:1999wj + SPIRESTeX + + + hep-ex/9908006 + arXiv + hep-ex + + + SLAC-PUB-8213 + + + An Improved direct measurement of leptonic coupling asymmetries with polarized Z0s + + + SLD + + + + 507359 + + SPIRESTeX + Abe:1999yk + + + SLAC-PUB-8225 + + + Time dependent B0(s) - anti-B0(s) mixing using inclusive and semileptonic B decays at SLD + + + SLD + + + + 504736 + + arXiv + oai:arXiv.org:hep-ex/9907063 + oai:arXiv.org:hep-ex/9907063 + + + DESY + D99-15005 + + + SPIRESTeX + Abe:1999gp + + + arXiv + hep-ex/9907063 + hep-ex + + + SLAC-PUB-8211 + + + Combined SLD measurement of A(b) at the Z0 resonance using various techniques + + + SLD + + + + 504583 + + DESY + D99-15018 + + + SPIRESTeX + Abe:1999yj + + + arXiv + oai:arXiv.org:hep-ex/9907051 + + + SLAC-PUB-8206 + + + arXiv + hep-ex/9907051 + hep-ex + + + Measurement of the $B^{+}$ and $B^0$ lifetimes using topological vertexing at SLD + + + SLD + + + + 504294 + + oai:arXiv.org:hep-ex/9907050 + oai:arXiv.org:hep-ex/9907050 + arXiv + + + D99-15017 + DESY + + + Abe:1999af + SPIRESTeX + + + hep-ex/9907050 + arXiv + hep-ex + + + SLAC-PUB-8201 + + + New measurement of A(b) at the Z0 resonance using a vertex charge technique + + + SLD + + + + 504120 + + oai:arXiv.org:hep-ex/9907066 + oai:arXiv.org:hep-ex/9907066 + arXiv + + + D99-14706 + DESY + + + Abe:1999rd + SPIRESTeX + + + hep-ex/9907066 + arXiv + hep-ex + + + SLAC-PUB-8200 + + + Direct measurement of A(b) using charged kaons at the SLD detector + + + SLD + + + + 504118 + + oai:arXiv.org:hep-ex/9907065 + oai:arXiv.org:hep-ex/9907065 + arXiv + + + D99-14707 + DESY + + + Abe:1999rb + SPIRESTeX + + + hep-ex/9907065 + arXiv + hep-ex + + + SLAC-PUB-8199 + + + Direct measurement of A(c) using inclusive charm tagging at the SLD detector + + + SLD + + + + 504117 + + oai:arXiv.org:hep-ex/9907039 + oai:arXiv.org:hep-ex/9907039 + arXiv + + + D99-14531 + DESY + + + Abe:1999ra + SPIRESTeX + + + hep-ex/9907039 + arXiv + hep-ex + + + SLAC-PUB-8195 + + + Measurement of A(c) with charmed mesons at SLD + + + SLD + + + + 504116 + + D99-15403 + DESY + + + Abe:1999qz + SPIRESTeX + + + SLAC-PUB-8163 + + + Direct measurement of the neutral weak dipole moments of the tau lepton + + + SLD + + + + 503988 + + D99-14708 + DESY + + + Abe:1999yka + SPIRESTeX + + + arXiv + oai:arXiv.org:hep-ex/9908035 + + + SLAC-PUB-8160 + + + arXiv + hep-ex/9908035 + hep-ex + + + A Study of correlations between identified charged hadronic Z0 decays + + + SLD + + + + 503910 + + D99-14709 + DESY + + + Abe:1999qh + SPIRESTeX + + + arXiv + oai:arXiv.org:hep-ex/9908033 + + + SLAC-PUB-8159 + + + arXiv + hep-ex/9908033 + hep-ex + + + Production of charged pi+-, K+- and p / anti-p in hadronic Z0 decays + + + SLD + + + + 503909 + + oai:arXiv.org:hep-ex/9908028 + oai:arXiv.org:hep-ex/9908028 + arXiv + + + D99-14710 + DESY + + + Abe:1999qg + SPIRESTeX + + + hep-ex/9908028 + arXiv + hep-ex + + + SLAC-PUB-8157 + + + Measurement of the probability for gluon splitting into b anti-b in Z0 decays + + + SLD + + + + 503754 + + 10.1063/1.1384082 + DOI + bibmatch + + + oai:arXiv.org:hep-ex/9908031 + oai:arXiv.org:hep-ex/9908031 + arXiv + + + D99-14705 + DESY + + + Abe:1999qc + SPIRESTeX + + + hep-ex/9908031 + arXiv + hep-ex + + + SLAC-PUB-8156 + + + Symmetry tests in polarized Z0 decays to b anti-b g + + + SLD + + + + 503753 + + oai:arXiv.org:hep-ex/9908027 + oai:arXiv.org:hep-ex/9908027 + arXiv + + + D99-14698 + DESY + + + Abe:1999qb + SPIRESTeX + + + hep-ex/9908027 + arXiv + hep-ex + + + SLAC-PUB-8155 + + + Study of the structure of e+ e- ---> b anti-b g events and improved limits on the anomalous chromomagnetic coupling of the b quark + + + SLD + + + + 503676 + + oai:arXiv.org:hep-ex/9908038 + oai:arXiv.org:hep-ex/9908038 + arXiv + + + D99-14697 + DESY + + + Abe:1999kv + SPIRESTeX + + + hep-ex/9908038 + arXiv + hep-ex + + + SLAC-PUB-8154 + + + A Preliminary direct measurement of the parity violating coupling of the Z0 to strange quarks, A(s) + + + SLD + + + + 503554 + + D99-14699 + DESY + + + Abe:1999fi + SPIRESTeX + + + arXiv + oai:arXiv.org:hep-ex/9908032 + + + SLAC-PUB-8153 + + + arXiv + hep-ex/9908032 + hep-ex + + + Measurement of the b quark fragmentation function in Z0 decays + + + SLD + + + + 500782 + + oai:arXiv.org:hep-ex/9905057 + oai:arXiv.org:hep-ex/9905057 + arXiv + + + D99-11456 + DESY + + + Abe:1999vw + SPIRESTeX + + + hep-ex/9905057 + arXiv + hep-ex + + + SLAC-PUB-8169 + + + A Preliminary measurement of the gluon splitting rate into b anti-b pairs in hadronic Z0 decays + + + SLD + + + + 500779 + + oai:arXiv.org:hep-ex/9905054 + oai:arXiv.org:hep-ex/9905054 + arXiv + + + D99-11454 + DESY + + + Dong:1999vt + SPIRESTeX + + + hep-ex/9905054 + arXiv + hep-ex + + + SLAC-PUB-8075 + + + An Improved measurement of the b quark fragmentation function in Z0 decays + + + SLD + + + + 500546 + + arXiv + oai:arXiv.org:hep-ex/9905058 + oai:arXiv.org:hep-ex/9905058 + + + DESY + D99-11457 + + + SPIRESTeX + Dong:1999cy + + + arXiv + hep-ex/9905058 + hep-ex + + + SLAC-PUB-8150 + + + Tests of QCD using Heavy Flavors in $Z^0$ Decays at SLD + + + SLD + + + + 500457 + + oai:arXiv.org:hep-ex/9905040 + oai:arXiv.org:hep-ex/9905040 + arXiv + + + D99-10864 + DESY + + + Iwasaki:1999uj + SPIRESTeX + + + hep-ex/9905040 + arXiv + hep-ex + + + SLAC-PUB-8162 + + + Measurement of Z0 to heavy quark couplings at SLD + + + SLD + + + + 502361 + + D99-12643 + DESY + + + Mancinelli:1999hc + SPIRESTeX + + + SLAC-PUB-8175 + + + Measurements of Z0 electroweak couplings at SLD + + + SLD + + + + 502360 + + DOI + 10.1103/PhysRevLett.83.3384 + + + D99-12628 + DESY + + + Abe:1999hb + SPIRESTeX + + + ADS + 1999PhRvL..83.3384A + + + SLAC-PUB-7798 + + + Direct measurement of A(b) and A(c) at the Z0 pole using a lepton tag + + + SLD + + + + 498726 + + DESY + D99-08442 + + + SPIRESTeX + Staengle:1999ei + + + SLAC-PUB-8133 + + + Light quark fragmentation and a measurement of $A_s$ at the SLD + + + SLD + + + + 497051 + + oai:arXiv.org:hep-ex/9903061 + oai:arXiv.org:hep-ex/9903061 + arXiv + + + D99-08613 + DESY + + + Convery:1999du + SPIRESTeX + + + hep-ex/9903061 + arXiv + hep-ex + + + SLAC-PUB-8076 + + + B decay studies at SLD + + + SLD + + + + 496238 + + DOI + 10.1103/PhysRevD.60.092002 + + + oai:arXiv.org:hep-ex/9903004 + oai:arXiv.org:hep-ex/9903004 + arXiv + + + D99-08120 + DESY + + + Abe:1999pz + SPIRESTeX + + + ADS + 1999PhRvD..60i2002A + + + hep-ex/9903004 + arXiv + hep-ex + + + SLAC-PUB-7920 + + + First study of the structure of e+ e- ---> b anti-b g events and limits on the anomalous chromomagnetic coupling of the b quark + + + SLD + + + + 496237 + + arXiv + oai:arXiv.org:hep-ex/9903003 + oai:arXiv.org:hep-ex/9903003 + + + DESY + D99-08118 + + + SPIRESTeX + Staengle:1999py + + + arXiv + hep-ex/9903003 + hep-ex + + + SLAC-PUB-8066 + + + A Preliminary direct measurement of the parity violating coupling of the Z0 to strange quarks, A(s) + + + SLD + + + + \ No newline at end of file diff --git a/doc/inspire-sld-2000.json b/doc/inspire-sld-2000.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2000.json @@ -0,0 +1,1 @@ +{"533573": ["Measurement of A(c) with charmed mesons at SLD", "SLD", "10.1103/PhysRevD.63.032005", null, "hep-ex/0009035", "ins533573", null, ["hep-ex/0009035", "SLAC-PUB-8447"]], "534735": ["An Improved direct measurement of leptonic coupling asymmetries with polarized Z bosons", "SLD", "10.1103/PhysRevLett.86.1162", null, "hep-ex/0010015", "ins534735", null, ["hep-ex/0010015", "SLAC-PUB-8618"]], "531741": ["Direct measurement of A(b) using charged vertices", "SLD", null, null, null, null, null, ["SLAC-PUB-8542"]], "539873": ["Production of pi+-, K+-, p and anti-p in quark, anti-quark and gluon jets", "SLD", null, null, null, null, null, ["SLAC-PUB-8687"]], "526728": ["Measurements of Z0 electroweak couplings at SLD", "SLD", null, null, "hep-ex/0005001", null, null, ["hep-ex/0005001", "SLAC-PUB-8444"]], "533716": ["Improved measurement of the probability for gluon splitting into b anti-b in Z0 decays", "SLD", null, null, null, null, null, ["SLAC-PUB-8506"]], "534383": ["Direct measurement of A(b) at the Z0 pole using a lepton tag", "SLD", null, null, "hep-ex/0009064", null, null, ["SLAC-PUB-8516", "hep-ex/0009064"]], "533257": ["A Study of the structure of e+ e- b anti-b g events and improved limits on the anomalous chromomagnetic coupling of the b quark", "SLD", null, null, null, null, null, ["SLAC-PUB-8505"]], "536484": ["B(s) mixing at SLD", "SLD", "10.1142/S0217751X01007613", null, "hep-ex/0011040", null, null, ["hep-ex/0011040", "SLAC-PUB-8701"]], "534253": ["Production of charged pi+-, K+- and p / anti-p in hadronic Z0 decays", "SLD", null, null, null, null, null, ["SLAC-PUB-8507"]], "534817": ["Electroweak measurements with heavy quarks at SLD", "SLD", "10.1016/S0920-5632(00)01075-6", null, null, null, null, ["SLAC-PUB-8637"]], "538925": ["Time dependent B0(s) - anti-B0(s) mixing using inclusive and semileptonic B decays at SLD", "SLD", null, null, "hep-ex/0012043", null, null, ["hep-ex/0012043", "SLAC-PUB-8568"]], "534434": ["Measurements of parity violation parameters at SLD", "SLD", null, null, "hep-ex/0010003", null, null, ["hep-ex/0010003", "SLAC-PUB-8644"]], "530860": ["First symmetry tests in polarized Z0 decays to b anti-b g", "SLD", "10.1103/PhysRevLett.86.962", null, "hep-ex/0007051", null, null, ["hep-ex/0007051", "SLAC-PUB-8503"]], "536814": ["Time dependent B0(s) - anti-B0(s) oscillations using exclusively reconstructed D+(s) decays at SLD", "SLD", null, null, "hep-ex/0011041", null, null, ["SLAC-PUB-8598", "hep-ex/0011041"]], "533148": ["Improved measurement of the b quark fragmentation function in Z0 decays", "SLD", null, null, null, null, null, ["SLAC-PUB-8504"]], "526448": ["A High precision measurement of the left-right Z boson cross-section asymmetry", "SLD", "10.1103/PhysRevLett.84.5945", null, "hep-ex/0004026", "ins526448", null, ["SLAC-PUB-8401", "hep-ex/0004026"]], "536071": ["Studies of hadronic decays of Z0 bosons at SLD", "SLD", null, null, "hep-ex/0011002", null, null, ["hep-ex/0011002", "SLAC-PUB-8658", "OUNP-2000-04"]], "531656": ["Light quark fragmentation in polarized Z0 decays at SLD", "SLD", "10.1016/S0920-5632(01)01103-3", null, "hep-ex/0008032", null, null, ["hep-ex/0008032", "SLAC-PUB-8553"]], "537718": ["Z quark coupling measurements at SLD", "SLD", null, null, null, null, null, ["SLAC-PUB-8721"]], "528730": ["First direct measurement of the parity violating coupling of the Z0 to the s quark", "SLD", "10.1103/PhysRevLett.85.5059", null, "hep-ex/0006019", "ins528730", null, ["SLAC-PUB-8408", "hep-ex/0006019"]]} \ No newline at end of file diff --git a/doc/inspire-sld-2000.marc.xml b/doc/inspire-sld-2000.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2000.marc.xml @@ -0,0 +1,627 @@ + + + + + 536484 + + DOI + bibcheck + 10.1142/S0217751X01007613 + + + arXiv + oai:arXiv.org:hep-ex/0011040 + oai:arXiv.org:hep-ex/0011040 + + + DESY + D01-08695 + + + SPIRESTeX + Lin:2000vv + + + ADS + 2001IJMPA..16S.616L + + + arXiv + hep-ex/0011040 + hep-ex + + + SLAC-PUB-8701 + + + B(s) mixing at SLD + + + SLD + + + + 537718 + + DESY + D02-14185 + + + SPIRESTeX + Wright:2000kv + + + SLAC-PUB-8721 + + + Z quark coupling measurements at SLD + + + SLD + + + + 534817 + + DOI + 10.1016/S0920-5632(00)01075-6 + + + DESY + D01-02434 + + + SPIRESTeX + Abe:2000mt + + + ADS + 2001NuPhS..93..126B + + + SLAC-PUB-8637 + + + Electroweak measurements with heavy quarks at SLD + + + SLD + + + + 534735 + + DOI + 10.1103/PhysRevLett.86.1162 + + + arXiv + oai:arXiv.org:hep-ex/0010015 + oai:arXiv.org:hep-ex/0010015 + + + DESY + D01-07391 + + + CERNKEY + 2221255 + + + SPIRESTeX + Abe:2000hk + + + 2001PhRvL..86.1162A + ADS + + + ins534735 + HEPDATA + + + arXiv + hep-ex/0010015 + hep-ex + + + SLAC-PUB-8618 + + + An Improved direct measurement of leptonic coupling asymmetries with polarized Z bosons + + + SLD + + + + 534434 + + oai:arXiv.org:hep-ex/0010003 + oai:arXiv.org:hep-ex/0010003 + arXiv + + + D01-07419 + DESY + + + Iwasaki:2000ue + SPIRESTeX + + + hep-ex/0010003 + arXiv + hep-ex + + + SLAC-PUB-8644 + + + Measurements of parity violation parameters at SLD + + + SLD + + + + 536071 + + arXiv + oai:arXiv.org:hep-ex/0011002 + oai:arXiv.org:hep-ex/0011002 + + + DESY + D01-08685 + + + SPIRESTeX + Burrows:2000bm + + + arXiv + hep-ex/0011002 + hep-ex + + + SLAC-PUB-8658 + + + OUNP-2000-04 + + + Studies of hadronic decays of Z0 bosons at SLD + + + SLD + + + + 533573 + + DOI + 10.1103/PhysRevD.63.032005 + + + arXiv + oai:arXiv.org:hep-ex/0009035 + oai:arXiv.org:hep-ex/0009035 + + + DESY + D01-04467 + + + CERNKEY + 2212080 + + + SPIRESTeX + Abe:2000ak + + + ins533573 + HEPDATA + + + arXiv + hep-ex/0009035 + hep-ex + + + SLAC-PUB-8447 + + + Measurement of A(c) with charmed mesons at SLD + + + SLD + + + + 531656 + + 10.1016/S0920-5632(01)01103-3 + DOI + + + oai:arXiv.org:hep-ex/0008032 + oai:arXiv.org:hep-ex/0008032 + arXiv + + + D01-03128 + DESY + + + Kalelkar:2000ig + SPIRESTeX + + + ADS + 2001NuPhS..96...31K + + + hep-ex/0008032 + arXiv + hep-ex + + + SLAC-PUB-8553 + + + Light quark fragmentation in polarized Z0 decays at SLD + + + SLD + + + + 539873 + + D01-09075 + DESY + + + Kang:2000bs + SPIRESTeX + + + SLAC-PUB-8687 + + + Production of pi+-, K+-, p and anti-p in quark, anti-quark and gluon jets + + + SLD + + + + 538925 + + oai:arXiv.org:hep-ex/0012043 + oai:arXiv.org:hep-ex/0012043 + arXiv + + + D01-10150 + DESY + + + Abe:2000gp + SPIRESTeX + + + hep-ex/0012043 + arXiv + hep-ex + + + SLAC-PUB-8568 + + + Time dependent B0(s) - anti-B0(s) mixing using inclusive and semileptonic B decays at SLD + + + SLD + + + + 536814 + + D01-06421 + DESY + + + Abe:2000kc + SPIRESTeX + + + arXiv + oai:arXiv.org:hep-ex/0011041 + + + SLAC-PUB-8598 + + + arXiv + hep-ex/0011041 + hep-ex + + + SLD + + + Time dependent B0(s) - anti-B0(s) oscillations using exclusively reconstructed D+(s) decays at SLD + + + + 530860 + + DOI + 10.1103/PhysRevLett.86.962 + + + oai:arXiv.org:hep-ex/0007051 + oai:arXiv.org:hep-ex/0007051 + arXiv + + + D01-00481 + DESY + + + Abe:2000ki + SPIRESTeX + + + ADS + 2001PhRvL..86..962A + + + hep-ex/0007051 + arXiv + hep-ex + + + SLAC-PUB-8503 + + + First symmetry tests in polarized Z0 decays to b anti-b g + + + SLD + + + + 534383 + + D01-06857 + DESY + + + Abe:2000rw + SPIRESTeX + + + arXiv + oai:arXiv.org:hep-ex/0009064 + + + SLAC-PUB-8516 + + + arXiv + hep-ex/0009064 + hep-ex + + + SLD + + + Direct measurement of A(b) at the Z0 pole using a lepton tag + + + + 534253 + + SPIRESTeX + Abe:2000jz + + + SLAC-PUB-8507 + + + Production of charged pi+-, K+- and p / anti-p in hadronic Z0 decays + + + SLD + + + + 533716 + + SPIRESTeX + Abe:2000gs + + + SLAC-PUB-8506 + + + Improved measurement of the probability for gluon splitting into b anti-b in Z0 decays + + + SLD + + + + 533257 + + SPIRESTeX + Abe:2000km + + + SLAC-PUB-8505 + + + A Study of the structure of e+ e- b anti-b g events and improved limits on the anomalous chromomagnetic coupling of the b quark + + + SLD + + + + 533148 + + DESY + D01-00682 + + + SPIRESTeX + Abe:2000fx + + + SLAC-PUB-8504 + + + Improved measurement of the b quark fragmentation function in Z0 decays + + + SLD + + + + 531741 + + DESY + D00-10310 + + + SPIRESTeX + Abe:2000my + + + SLAC-PUB-8542 + + + Direct measurement of A(b) using charged vertices + + + SLD + + + + 528730 + + DOI + 10.1103/PhysRevLett.85.5059 + + + DESY + D00-10208 + + + SPIRESTeX + Abe:2000uc + + + arXiv + oai:arXiv.org:hep-ex/0006019 + + + 2000PhRvL..85.5059A + ADS + + + ins528730 + HEPDATA + + + SLAC-PUB-8408 + + + arXiv + hep-ex/0006019 + hep-ex + + + First direct measurement of the parity violating coupling of the Z0 to the s quark + + + SLD + + + + 526728 + + oai:arXiv.org:hep-ex/0005001 + oai:arXiv.org:hep-ex/0005001 + arXiv + + + D00-09164 + DESY + + + Abe:2000ey + SPIRESTeX + + + hep-ex/0005001 + arXiv + hep-ex + + + SLAC-PUB-8444 + + + Measurements of Z0 electroweak couplings at SLD + + + SLD + + + + 526448 + + DOI + 10.1103/PhysRevLett.84.5945 + + + DESY + D00-09170 + + + SPIRESTeX + Abe:2000dq + + + arXiv + oai:arXiv.org:hep-ex/0004026 + + + ADS + 2000PhRvL..84.5945A + + + ins526448 + HEPDATA + + + SLAC-PUB-8401 + + + arXiv + hep-ex/0004026 + hep-ex + + + A High precision measurement of the left-right Z boson cross-section asymmetry + + + SLD + + + + \ No newline at end of file diff --git a/doc/inspire-sld-2001.json b/doc/inspire-sld-2001.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2001.json @@ -0,0 +1,1 @@ +{"556589": ["Production of $\\pi^{\u00b1}, K^{\u00b1}$, p and $\\bar{p}$ in quark, anti-quark and gluon jets", "SLD", "10.1142/S0217751X01006553", null, null, null, null, ["hep-ex/0105037", "SLAC-PUB-8860"]], "563707": ["Production of charged pi+-, K+- and p / anti-p in hadronic Z0 decays", "SLD", null, null, null, null, null, ["SLAC-PUB-8899"]], "563708": ["Measurement of the b quark fragmentation function in Z0 decays and first measurement of B - anti-B energy correlations", "SLD", null, null, null, null, null, ["SLAC-PUB-8892"]], "567155": ["Fragmentation and hadronization in e+ e- collisions", "SLD", "10.22323/1.007.0028", null, null, null, null, ["SLAC-PUB-9051"]], "552756": ["Improved measurement of the probability for gluon splitting into b anti-b in Z0 decays", "SLD", "10.1016/S0370-2693(01)00367-7", null, "hep-ex/0102002", "ins552756", null, ["hep-ex/0102002", "SLAC-PUB-8737"]], "567400": ["Recent tests of QCD at SLD", "SLD", null, null, null, null, null, ["SLAC-PUB-8792"]], "563771": ["An Improved study of the structure of e+ e- ---> b anti-b g events and limits on the anomalous chromomagnetic coupling of the b quark", "SLD", null, null, null, null, null, ["SLAC-PUB-8891"]], "565973": ["Improved direct measurement of A(b) and A(c) at the Z0 pole using a lepton tag", "SLD", "10.1103/PhysRevLett.88.151801", null, "hep-ex/0111035", null, null, ["hep-ex/0111035", "SLAC-PUB-8951", "SCIPP-01-38"]]} \ No newline at end of file diff --git a/doc/inspire-sld-2001.marc.xml b/doc/inspire-sld-2001.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2001.marc.xml @@ -0,0 +1,226 @@ + + + + + 565973 + + DOI + 10.1103/PhysRevLett.88.151801 + + + oai:arXiv.org:hep-ex/0111035 + oai:arXiv.org:hep-ex/0111035 + arXiv + + + D02-00141 + DESY + + + 2282928 + CERNKEY + + + Abe:2001dr + SPIRESTeX + + + 2002PhRvL..88o1801A + ADS + + + hep-ex/0111035 + arXiv + hep-ex + + + SLAC-PUB-8951 + + + SCIPP-01-38 + + + Improved direct measurement of A(b) and A(c) at the Z0 pole using a lepton tag + + + SLD + + + + 567155 + + 10.22323/1.007.0028 + DOI + + + D02-14276 + DESY + + + Muller:2001wv + SPIRESTeX + + + SLAC-PUB-9051 + + + Fragmentation and hadronization in e+ e- collisions + + + SLD + + + + 563771 + + D01-17991 + DESY + + + Abe:2001vwa + SPIRESTeX + + + SLAC-PUB-8891 + + + An Improved study of the structure of e+ e- ---> b anti-b g events and limits on the anomalous chromomagnetic coupling of the b quark + + + SLD + + + + 563708 + + D01-17992 + DESY + + + Abe:2001sq + SPIRESTeX + + + SLAC-PUB-8892 + + + Measurement of the b quark fragmentation function in Z0 decays and first measurement of B - anti-B energy correlations + + + SLD + + + + 563707 + + D01-19401 + DESY + + + Abe:2001sp + SPIRESTeX + + + SLAC-PUB-8899 + + + Production of charged pi+-, K+- and p / anti-p in hadronic Z0 decays + + + SLD + + + + 556589 + + DOI + ADS + 10.1142/S0217751X01006553 + + + INSPIRETeX + Kang:2001hja + + + ADS + 2001IJMPA..16S.226K + + + arXiv + hep-ex/0105037 + hep-ex + + + SLAC-PUB-8860 + + + Production of $\pi^{±}, K^{±}$, p and $\bar{p}$ in quark, anti-quark and gluon jets + + + SLD + + + + 567400 + + DESY + D02-00499 + + + SPIRESTeX + Muller:2001ug + + + SLAC-PUB-8792 + + + Recent tests of QCD at SLD + + + SLD + + + + 552756 + + DOI + 10.1016/S0370-2693(01)00367-7 + + + arXiv + oai:arXiv.org:hep-ex/0102002 + oai:arXiv.org:hep-ex/0102002 + + + DESY + D01-13564 + + + SPIRESTeX + Abe:2001csa + + + ADS + 2001PhLB..507...61A + + + ins552756 + HEPDATA + + + arXiv + hep-ex/0102002 + hep-ex + + + SLAC-PUB-8737 + + + Improved measurement of the probability for gluon splitting into b anti-b in Z0 decays + + + SLD + + + + \ No newline at end of file diff --git a/doc/inspire-sld-2002.json b/doc/inspire-sld-2002.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2002.json @@ -0,0 +1,1 @@ +{"595993": ["Measurement of the double inclusive b anti-b quark fragmentation function in Z0 decays and first measurement of angle dependent B - anti-B energy correlations", "SLD", null, null, null, null, null, ["SLAC-PUB-9289"]], "582951": ["Measurement of the b quark fragmentation function in Z0 decays", "SLD", "10.1103/PhysRevD.66.079905", null, "hep-ex/0202031", "ins582951", ["SLD_2002_S4869273"], ["SLAC-PUB-9087", "hep-ex/0202031"]], "587018": ["An Improved study of the structure of e+ e- ---> b anti-b g events and limits on the anomalous chromomagnetic coupling of the b quark", "SLD", "10.1103/PhysRevD.66.052001", null, "hep-ex/0205066", null, null, ["hep-ex/0205066", "SLAC-PUB-9206"]], "594091": ["Search for time dependent B0(s) - anti-B0(s) oscillations using a vertex charge dipole technique", "SLD", "10.1103/PhysRevD.67.012006", null, "hep-ex/0209002", null, null, ["hep-ex/0209002", "SLAC-PUB-9285"]], "593729": ["Improved direct measurement of the parity violation parameter A(b) using a mass tag and momentum weighted track charge", "SLD", "10.1103/PhysRevLett.90.141804", null, "hep-ex/0208044", null, null, ["hep-ex/0208044", "SLAC-PUB-9188", "SCIPP-02-18"]], "606925": ["Production of charged pi+-, K+- and p / anti-p in hadronic Z0 decays", "SLD", null, null, null, null, null, ["SLAC-PUB-9287"]], "590927": ["A Search for time dependent B0(s) - anti-B0(s) oscillations using exclusively reconstructed D+-(s) mesons", "SLD", "10.1103/PhysRevD.66.032009", null, "hep-ex/0207048", null, null, ["SLAC-PUB-9286", "hep-ex/0207048"]], "606922": ["A Study of correlations between identified charged hadrons in hadronic Z0 decays", "SLD", null, null, null, null, null, ["SLAC-PUB-9288"]]} \ No newline at end of file diff --git a/doc/inspire-sld-2002.marc.xml b/doc/inspire-sld-2002.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2002.marc.xml @@ -0,0 +1,256 @@ + + + + + 594091 + + DOI + 10.1103/PhysRevD.67.012006 + + + oai:arXiv.org:hep-ex/0209002 + oai:arXiv.org:hep-ex/0209002 + arXiv + + + D02-21175 + DESY + + + 2337235 + CERNKEY + + + Abe:2002ua + SPIRESTeX + + + hep-ex/0209002 + arXiv + hep-ex + + + SLAC-PUB-9285 + + + Search for time dependent B0(s) - anti-B0(s) oscillations using a vertex charge dipole technique + + + SLD + + + + 593729 + + DOI + 10.1103/PhysRevLett.90.141804 + + + oai:arXiv.org:hep-ex/0208044 + oai:arXiv.org:hep-ex/0208044 + arXiv + + + D02-21203 + DESY + + + 2336632 + CERNKEY + + + Abe:2002fs + SPIRESTeX + + + 2003PhRvL..90n1804A + ADS + + + hep-ex/0208044 + arXiv + hep-ex + + + SLAC-PUB-9188 + + + SCIPP-02-18 + + + Improved direct measurement of the parity violation parameter A(b) using a mass tag and momentum weighted track charge + + + SLD + + + + 590927 + + DOI + 10.1103/PhysRevD.66.032009 + + + D02-18048 + DESY + + + Abe:2002wfa + SPIRESTeX + + + arXiv + oai:arXiv.org:hep-ex/0207048 + + + SLAC-PUB-9286 + + + arXiv + hep-ex/0207048 + hep-ex + + + A Search for time dependent B0(s) - anti-B0(s) oscillations using exclusively reconstructed D+-(s) mesons + + + SLD + + + + 606925 + + Abe:2002wf + SPIRESTeX + + + SLAC-PUB-9287 + + + Production of charged pi+-, K+- and p / anti-p in hadronic Z0 decays + + + SLD + + + + 606922 + + Abe:2002wb + SPIRESTeX + + + SLAC-PUB-9288 + + + A Study of correlations between identified charged hadrons in hadronic Z0 decays + + + SLD + + + + 595993 + + D02-21875 + DESY + + + Abe:2002iwa + SPIRESTeX + + + SLAC-PUB-9289 + + + Measurement of the double inclusive b anti-b quark fragmentation function in Z0 decays and first measurement of angle dependent B - anti-B energy correlations + + + SLD + + + + 587018 + + DOI + 10.1103/PhysRevD.66.052001 + + + oai:arXiv.org:hep-ex/0205066 + oai:arXiv.org:hep-ex/0205066 + arXiv + + + D02-14606 + DESY + + + Abe:2002gt + SPIRESTeX + + + ADS + 2002PhRvD..66e2001A + + + hep-ex/0205066 + arXiv + hep-ex + + + SLAC-PUB-9206 + + + An Improved study of the structure of e+ e- ---> b anti-b g events and limits on the anomalous chromomagnetic coupling of the b quark + + + SLD + + + + 582951 + + DOI + 10.1103/PhysRevD.66.079905 + + + DOI + 10.1103/PhysRevD.65.092006 + + + DESY + D02-12634 + + + SPIRESTeX + Abe:2002iq + + + arXiv + oai:arXiv.org:hep-ex/0202031 + + + ADS + 2002PhRvD..65i2006A + + + ins582951 + HEPDATA + + + SLAC-PUB-9087 + + + arXiv + hep-ex/0202031 + hep-ex + + + Measurement of the b quark fragmentation function in Z0 decays + + + SLD + + + + \ No newline at end of file diff --git a/doc/inspire-sld-2003.json b/doc/inspire-sld-2003.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2003.json @@ -0,0 +1,1 @@ +{"628567": ["First measurement of the double inclusive B / anti-B hadron energy distribution in e+ e- annihilations, and of angle dependent moments of the B and anti-B energies", "SLD", "10.1016/j.physletb.2003.10.057", null, "hep-ex/0309058", null, null, ["hep-ex/0309058", "SLAC-PUB-9966"]], "630327": ["Production of pi+, pi-, K+, K-, p and anti-p in light (uds), c and b jets from Z0 decays", "SLD", "10.1103/PhysRevD.69.072003", null, "hep-ex/0310017", "ins630327", ["SLD_2004_S5693039"], ["SLAC-PUB-9949", "hep-ex/0310017"]]} \ No newline at end of file diff --git a/doc/inspire-sld-2003.marc.xml b/doc/inspire-sld-2003.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2003.marc.xml @@ -0,0 +1,80 @@ + + + + + 630327 + + DOI + 10.1103/PhysRevD.69.072003 + + + DESY + D04-01591 + + + SPIRESTeX + Abe:2003iy + + + arXiv + oai:arXiv.org:hep-ex/0310017 + + + ins630327 + HEPDATA + + + SLAC-PUB-9949 + + + arXiv + hep-ex/0310017 + hep-ex + + + Production of pi+, pi-, K+, K-, p and anti-p in light (uds), c and b jets from Z0 decays + + + SLD + + + + 628567 + + DOI + 10.1016/j.physletb.2003.10.057 + + + oai:arXiv.org:hep-ex/0309058 + oai:arXiv.org:hep-ex/0309058 + arXiv + + + D04-01514 + DESY + + + Abe:2003gv + SPIRESTeX + + + ADS + 2004PhLB..578...45A + + + hep-ex/0309058 + arXiv + hep-ex + + + SLAC-PUB-9966 + + + First measurement of the double inclusive B / anti-B hadron energy distribution in e+ e- annihilations, and of angle dependent moments of the B and anti-B energies + + + SLD + + + + \ No newline at end of file diff --git a/doc/inspire-sld-2004.json b/doc/inspire-sld-2004.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2004.json @@ -0,0 +1,1 @@ +{"662030": ["Direct measurements of A(b) and A(c) using vertex/kaon charge tags at SLD", "SLD", "10.1103/PhysRevLett.94.091801", null, "hep-ex/0410042", null, null, ["hep-ex/0410042", "SLAC-PUB-10774"]]} \ No newline at end of file diff --git a/doc/inspire-sld-2004.marc.xml b/doc/inspire-sld-2004.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2004.marc.xml @@ -0,0 +1,43 @@ + + + + + 662030 + + DOI + 10.1103/PhysRevLett.94.091801 + + + oai:arXiv.org:hep-ex/0410042 + oai:arXiv.org:hep-ex/0410042 + arXiv + + + D05-01846 + DESY + + + Abe:2004hx + SPIRESTeX + + + 2005PhRvL..94i1801A + ADS + + + hep-ex/0410042 + arXiv + hep-ex + + + SLAC-PUB-10774 + + + Direct measurements of A(b) and A(c) using vertex/kaon charge tags at SLD + + + SLD + + + + \ No newline at end of file diff --git a/doc/inspire-sld-2005.json b/doc/inspire-sld-2005.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2005.json @@ -0,0 +1,1 @@ +{"691576": ["Precision electroweak measurements on the $Z$ resonance", "ALEPH", "10.1016/j.physrep.2005.12.006", "892831", "hep-ex/0509008", null, null, ["hep-ex/0509008", "SLAC-R-774"]], "677624": ["Measurement of the branching ratio of the Z0 into heavy quarks", "SLD", "10.1103/PhysRevD.71.112004", null, "hep-ex/0503005", null, null, ["hep-ex/0503005", "SLAC-PUB-9941"]]} \ No newline at end of file diff --git a/doc/inspire-sld-2005.marc.xml b/doc/inspire-sld-2005.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2005.marc.xml @@ -0,0 +1,102 @@ + + + + + 691576 + + DOI + 10.1016/j.physrep.2005.12.006 + + + arXiv + oai:arXiv.org:hep-ex/0509008 + oai:arXiv.org:hep-ex/0509008 + + + DESY + D06-02159 + + + SPIRESTeX + ALEPH:2005ab + + + CDS + 892831 + + + in2p3-00025230 + HAL + + + arXiv + hep-ex/0509008 + hep-ex + + + SLAC-R-774 + + + Precision electroweak measurements on the $Z$ resonance + + + ALEPH + + + DELPHI + + + L3 + + + OPAL + + + SLD + + + LEP Electroweak Working Group + + + SLD Electroweak Group + + + SLD Heavy Flavour Group + + + + 677624 + + DOI + 10.1103/PhysRevD.71.112004 + + + oai:arXiv.org:hep-ex/0503005 + oai:arXiv.org:hep-ex/0503005 + arXiv + + + D05-06735 + DESY + + + Abe:2005nqa + SPIRESTeX + + + hep-ex/0503005 + arXiv + hep-ex + + + SLAC-PUB-9941 + + + Measurement of the branching ratio of the Z0 into heavy quarks + + + SLD + + + + \ No newline at end of file diff --git a/doc/inspire-sld-2006.json b/doc/inspire-sld-2006.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2006.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-sld-2006.marc.xml b/doc/inspire-sld-2006.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2006.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-sld-2007.json b/doc/inspire-sld-2007.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2007.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-sld-2007.marc.xml b/doc/inspire-sld-2007.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2007.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-sld-2008.json b/doc/inspire-sld-2008.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2008.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-sld-2008.marc.xml b/doc/inspire-sld-2008.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2008.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-sld-2009.json b/doc/inspire-sld-2009.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2009.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-sld-2009.marc.xml b/doc/inspire-sld-2009.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2009.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-sld-2010.json b/doc/inspire-sld-2010.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2010.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-sld-2010.marc.xml b/doc/inspire-sld-2010.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2010.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-sld-2011.json b/doc/inspire-sld-2011.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2011.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-sld-2011.marc.xml b/doc/inspire-sld-2011.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2011.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-sld-2012.json b/doc/inspire-sld-2012.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2012.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-sld-2012.marc.xml b/doc/inspire-sld-2012.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2012.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-sld-2013.json b/doc/inspire-sld-2013.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2013.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-sld-2013.marc.xml b/doc/inspire-sld-2013.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2013.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-sld-2014.json b/doc/inspire-sld-2014.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2014.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-sld-2014.marc.xml b/doc/inspire-sld-2014.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2014.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-sld-2015.json b/doc/inspire-sld-2015.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2015.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-sld-2015.marc.xml b/doc/inspire-sld-2015.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2015.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-sld-2016.json b/doc/inspire-sld-2016.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2016.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-sld-2016.marc.xml b/doc/inspire-sld-2016.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2016.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-sld-2017.json b/doc/inspire-sld-2017.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2017.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-sld-2017.marc.xml b/doc/inspire-sld-2017.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2017.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-sld-2018.json b/doc/inspire-sld-2018.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2018.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-sld-2018.marc.xml b/doc/inspire-sld-2018.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2018.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/inspire-sld-2019.json b/doc/inspire-sld-2019.json new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2019.json @@ -0,0 +1,1 @@ +{} \ No newline at end of file diff --git a/doc/inspire-sld-2019.marc.xml b/doc/inspire-sld-2019.marc.xml new file mode 100644 --- /dev/null +++ b/doc/inspire-sld-2019.marc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/mk-coverage-html b/doc/mk-coverage-html --- a/doc/mk-coverage-html +++ b/doc/mk-coverage-html @@ -1,403 +1,403 @@ #! /usr/bin/env python from __future__ import division, print_function """\ %prog [ ...] TODO: - do Rivet lookup in this script, not the JSON-maker - get and write year of publication in table """ import argparse ap = argparse.ArgumentParser(usage=__doc__) ap.add_argument("JSONFILES", metavar="file", nargs="+", help="JSON Inspire xref file to read") ap.add_argument("-r", "--ranking", dest="RANKFILES", metavar="file", action="append", default=[], help="lists of Inspire IDs to exclude, suppress, and highlight") ap.add_argument("-R", "--reverse", dest="REVERSE", action="store_true", default=False, help="show list *reverse* ordered in Inspire ID") ap.add_argument("-s", "--only-searches", dest="ONLYSEARCHES", action="store_true", default=False, help="only show search analyses") ap.add_argument("-S", "--no-searches", dest="NOSEARCHES", action="store_true", default=False, help="exclude search analyses") ap.add_argument("-i", "--only-heavyion", dest="ONLYHEAVYION", action="store_true", default=False, help="only show heavy ion analyses") ap.add_argument("-I", "--no-heavyion", dest="NOHEAVYION", action="store_true", default=False, help="exclude heavy ion analyses") ap.add_argument("-o", "--outfile", dest="OUTFILE", default=None, help="output HTML filename") ap.add_argument("--basename", dest="BASENAME", default="rivet-coverage", help="the base name for output files [default=%(default)s]") ap.add_argument("--update-ranking", dest="UPDATERANK", action="store_true", default=False, help="update the per-experiment ranking files") ap.add_argument("-v", "--verbose", dest="VERBOSE", action="store_true", default=False, help="print debug info to the terminal") args = ap.parse_args() import datetime now = datetime.datetime.now() ## Experiment (grouping) names and regex patterns import re -EXPTS = ["ALICE", "ATLAS", "CMS", "LHCb", "B-factories", "HERA", "Other"] -EXPT_PATTS = ["ALICE", "ATLAS", "CMS", "LHCb", "BABAR|BELLE", "H1|ZEUS"] +EXPTS = ["ALICE", "ATLAS", "CMS", "LHCb", "B-factories", "HERA", "LEP", "Other"] +EXPT_PATTS = ["ALICE", "ATLAS", "CMS", "LHCb", "BABAR|BELLE", "H1|ZEUS", "ALEPH|DELPHI|L3|OPAL|SLD"] EXPT_REOBJS = [re.compile(patt, re.I) for patt in EXPT_PATTS] ## Add the rivet Python module build dir(s) to the Python module path, then import import os, sys pybuild = os.path.abspath(os.path.join(os.getcwd(), "..", "pyext", "build")) pydirs = [os.path.join(pybuild, d) for d in os.listdir(pybuild) if re.match(r"lib\..*-.*-%d\.%d" % (sys.version_info[0], sys.version_info[1]), d)] sys.path = pydirs + sys.path import rivet ## Add info file locations from glob import glob dirpatt = os.path.join(os.getcwd(), "..", "analyses", "plugin*") for d in glob(dirpatt): #print(d) rivet.addAnalysisDataPath(os.path.abspath(d)) ## Rivet analyses to cross-reference ranas = {} for aname in rivet.AnalysisLoader.analysisNames(): ana = rivet.AnalysisLoader.getAnalysis(aname) # TODO: all anas *should* have an Inspire ID... try: # print(aname, ":", ana.inspireId(), ":") ranas.setdefault(int(ana.inspireId()), []).append(ana.name()) except: pass ## Read data from JSON files records = {} import json for jsonfile in args.JSONFILES: with open(jsonfile) as jf: recs = json.load(jf) if args.VERBOSE: print("Reading {} records from {}".format(len(recs), jsonfile)) records.update(recs) records = {int(k) : v for k, v in records.items()} if args.VERBOSE: print("Read total of {} records".format(len(records))) ## Read Inspire IDs from ranking files blacklist, greylist, hotlist = [], [], [] assigned = {} for rankfilestr in args.RANKFILES: for rankfile in rankfilestr.split(" "): with open(rankfile) as rf: if args.VERBOSE: print("Reading rankings from {}".format(rankfile)) for line in rf: line = line.strip() if not line or line.startswith("#"): continue tokens = line.split() ins = int(tokens[0]) code = tokens[1] if code == "X": blacklist.append(ins) elif code == "?": greylist.append(ins) elif code == "!": hotlist.append(ins) # Detect an optional assigned email address last = tokens[-1] if "@" in last: if last.startswith("<") and last.endswith(">"): last = last[1:-1] assigned[ins] = last ## Add rankings/tags to the record for ins, rec in records.items(): ## Sanitise title and experiment rec[0] = (rec[0] or "[NO TITLE]").replace("\n", " ") rec[1] = (rec[1] or "UNKNOWN").upper().split()[0].strip() ## Ranking code = "default" if ins in ranas: code = "rivet" elif ins in greylist: code = "grey" elif ins in blacklist: code = "black" elif ins in hotlist: code = "hot" ## Tags import re title = rec[0] or "" if "search" in title.lower(): code += " search" if any(re.search(x, title) is not None for x in ["Pb", "Xe", "Au", "U+U", "gold", "lead[ ,$]", "heavy[- ]ion"]): code += " heavyion" rm = False rm |= args.ONLYSEARCHES and not "search" in code rm |= args.NOSEARCHES and "search" in code rm |= args.ONLYHEAVYION and not "heavyion" in code rm |= args.NOHEAVYION and "heavyion" in code if rm: del records[ins] else: rec.append(code) ## Group and count records by experiment (and update rank file if requested) ex_records = {} ex_ntots, ex_ndefaults, ex_nurgents, ex_nwanteds, ex_ntargets, ex_nrivets = {}, {}, {}, {}, {}, {} for iex, ex in enumerate(EXPTS): ## Name matching if ex != "Other": ex_records[ex] = {ins : rec for ins, rec in records.items() if EXPT_REOBJS[iex].match(rec[1])} else: ex_records[ex] = {ins : rec for ins, rec in records.items() if not any(reobj.match(rec[1]) for reobj in EXPT_REOBJS)} ## Count matches ex_ntots[ex] = len(ex_records[ex]) ex_nrivets[ex] = len([ins for ins, rec in ex_records[ex].items() if "rivet" in rec[-1]]) ex_ndefaults[ex] = len([ins for ins, rec in ex_records[ex].items() if "default" in rec[-1]]) ex_nurgents[ex] = len([ins for ins, rec in ex_records[ex].items() if "hot" in rec[-1]]) ex_nwanteds[ex] = ex_ndefaults[ex] + ex_nurgents[ex] ex_ntargets[ex] = ex_nwanteds[ex] + ex_nrivets[ex] if args.VERBOSE: print(ex, "#urgent/#wanted =", ex_nurgents[ex], "/", ex_nwanteds[ex]) if args.UPDATERANK: if args.ONLYSEARCHES or args.NOSEARCHES or args.ONLYHEAVYION or args.NOHEAVYION: print("Won't update rank lists while search/HI/experiment filtering is enabled") sys.exit(1) rfname = "{}-{}.rank".format(args.BASENAME, ex.lower()) print("Writing updated rank file to {}".format(rfname)) syms = { "default" : ".", "rivet" : ".", "grey" : "?", "black" : "X", "hot" : "!" } with open(rfname, "w") as rf: for ins, rec in sorted(ex_records[ex].items()): rankcode = rec[-1].split()[0] # line = u"{} {} {}\n".format(ins.encode("UTF-8"), syms[code], rec[3].encode("UTF-8")) line = u"{} {} {}".format(ins, syms[rankcode], rec[0]) # print(assigned.get(ins)) if ins in assigned: #print(ins, rec[0], assigned[ins]) line += " <{}>".format(assigned[ins]) line += "\n" rf.write(line.encode("UTF-8")) ntot = len(records) nrivet = len([ins for ins, rec in records.items() if "rivet" in rec[-1]]) ndefault = len([ins for ins, rec in records.items() if "default" in rec[-1]]) nurgent = len([ins for ins, rec in records.items() if "hot" in rec[-1]]) nwanted = ndefault + nurgent ntarget = nwanted + nrivet ## Register filter strings excls = [] if args.ONLYSEARCHES: excls.append("searches only") if args.NOSEARCHES: excls.append("no searches") if args.ONLYHEAVYION: excls.append("heavy ion only") if args.NOHEAVYION: excls.append("no heavy ion") ## Web page rendering import html OUT = html.HTML("html") title = "Rivet analysis coverage" exclstr = " ({})".format(", ".join(excls)) if excls else "" title += exclstr head = OUT.head(newlines=True) head.meta(charset="utf-8") head.title(title) head.link("", rel="stylesheet", href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css") head.script("MathJax.Hub.Config({ tex2jax: {inlineMath: [['$','$']]} });", type="text/x-mathjax-config") head.script("", type="text/javascript", src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/MathJax.js?config=TeX-MML-AM_CHTML", async="async") head.script("", type="text/javascript", src="https://code.jquery.com/jquery-3.3.1.js", integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60=", crossorigin="anonymous") head.script("", type="text/javascript", src="https://code.jquery.com/ui/1.12.1/jquery-ui.js", integrity="sha256-T0Vest3yCU7pafRw9r+settMBX6JkKN06dqBnpQ8d30=", crossorigin="anonymous") head.script(""" $(document).ready( function(){ $("#blacktoggle").click( function(){ var b = $("#blacktoggle"); var t = b.text(); b.text(t.indexOf("Show") != -1 ? t.replace("Show", "Hide") : t.replace("Hide", "Show") ); $(".black").toggle(100); }); $("#greytoggle").click( function(){ var b = $("#greytoggle"); var t = b.text(); b.text(t.indexOf("Show") != -1 ? t.replace("Show", "Hide") : t.replace("Hide", "Show") ); $(".grey").toggle(100); }); $("#tabs").tabs(); }); """) style = head.style(newlines="True") style += "html { font-family: sans; font-size: large; color: #333; }" style += "body { padding: 2em; }" style += "table { margin: 2em 0 2em 0; border: 0; border-collapse: collapse; text-align: left; }" style += "table.list { border-top: 3px solid black; border-bottom: 3px solid black; }" style += "table.list thead { border-bottom: 1px solid #333; }" style += "table.key { border: 1px solid #333; margin: 0; }" style += "td { padding: 15px; }" style += "tr.ana { border-top: 1px solid #ccc; }" style += "tr.ana td { padding-bottom: 1em; padding-top: 1em; }" style += "a { color: #339; }" style += "button { margin: 1em; }" # style += ".row { margin: 1em 0 3em 0; }" # style += ".row:after { content: ''; display: table; clear: both; }" # style += ".col { float: left; width: 50%; }" style += "button { border: none; margin: 0 1em 1em 0; border-radius: 1ex; color: #333; background: #ddf; padding: 1ex; }" style += "button:hover { background: #cce; }" style += "button:active { color: white; }" style += "#tabs { border: 0; }" style += ".rivet { background: #cfc; }" style += ".hot { background: #fbb; }" style += ".default { background: #fee; }" style += ".grey { color: #666; background: #ddd; font-size: normal; display: none; }" style += ".grey a { color: #669; }" style += ".black { color: #eee; background: #333; display: none; }" style += ".black a { color: #99c; }" style += ".hot.assigned { background: repeating-linear-gradient(135deg, #fbb, #fbb 10px, #bd7 10px, #bd7 20px); }" style += ".default.assigned { background: repeating-linear-gradient(135deg, #fee, #fee 10px, #de9 10px, #de9 20px); }" style += ".grey.assigned { background: repeating-linear-gradient(135deg, #ddd, #ddd 10px, #dfd 10px, #dfd 20px); }" body = OUT.html.body(newlines=True) body.h1(title) body.p().b("Rivet analyses exist for {}/{} papers = {:.0f}%. {} priority analyses required.".format(nrivet, ntarget, 100*nrivet/ntarget, nurgent)) body.p("Total number of Inspire papers scanned = {}, at {}".format(ntot, now.strftime("%Y-%m-%d"))) body.p("Breakdown by identified experiment (in development):") t = body.table(klass="list") th = t.thead(newlines=True) r = th.tr(klass="thead") r.td().b("Key") for ex in EXPTS: r.td().b(ex) # tb = t.tbody(newlines=True) r = tb.tr(klass="default") r.td().b("Rivet wanted (total):") for ex in EXPTS: r.td("{}".format(ex_nwanteds[ex])) # r = tb.tr(klass="hot") r.td().b("Rivet REALLY wanted:") for ex in EXPTS: r.td("{}".format(ex_nurgents[ex])) r = tb.tr(klass="rivet") # r.td().b("Rivet provided:") for ex in EXPTS: # txt = "{}".format(ex_nrivets[ex]) # if ex_ntargets[ex]: # txt += " / {:d} = {:.0f}%".format(ex_ntargets[ex], 100*ex_nrivets[ex]/ex_ntargets[ex]) # r.td(txt) b = r.td().b("{}".format(ex_nrivets[ex])) if ex_ntargets[ex]: b.span("/{:d} = ".format(ex_ntargets[ex]), style="color: #777") b += "{:.0f}%".format(100*ex_nrivets[ex]/ex_ntargets[ex]) body.button("Show greylist", id="greytoggle") body.button("Show blacklist", id="blacktoggle") #body.input(klass="search", placeholder="Search") #body.button("Sort by name", klass="sort", data-sort="name") tabs = body.div(id="tabs") u = tabs.ul() for ex in EXPTS: u.li().a(ex, href="#{}expt".format(ex.lower())) for ex in EXPTS: d = tabs.div(id="{}expt".format(ex.lower())) t = d.table(klass="list").tbody(newlines=True) for i, (ins, rec) in enumerate(sorted(ex_records[ex].items(), reverse=args.REVERSE)): expt = rec[1] code = rec[-1] if ins in assigned: code += " assigned" if expt: code += " {}expt".format(expt.lower()) cell = t.tr(klass=code+" ana", newlines=True).td(newlines=False) # Title summ = u"" summ += u"{}: {}".format(expt, rec[0]) cell.span().b(summ) ## Inspire ID and report numbers p = cell.p() p.span("Inspire ID: {} ".format(ins)) if rec[4]: p.span("arXiv ID: {} ".format(rec[4])) if rec[7]: p.span(u" Report IDs: " + u", ".join(rec[7])) ## Links p = cell.span("Links: ") ## Inspire p.a("Inspire", href="http://inspirehep.net/record/{}".format(ins)) # Inspire p += " " ## DOI if rec[2]: p.a("DOI/journal", href="http://dx.doi.org/{}".format(rec[2])) p += " " ## CDS if rec[3]: p.a("CDS", href="https://cds.cern.ch/record/{}".format(rec[3])) p += " " ## arXiv if rec[4]: p.a("arXiv", href="https://arxiv.org/abs/{}".format(rec[4])) p += " " ## HepData if rec[5]: p.a("HepData", href="https://hepdata.net/record/{}".format(rec[5])) p += " " ## Rivet if ins in ranas: anas = u", ".join(ranas[ins]) p += " " p.a(anas, href="https://rivet.hepforge.org/analyses/{}.html".format(ranas[ins][0])) ## In-progress/assignment if ins in assigned: p += " " p.a("IN PROGRESS: assigned to {}".format(assigned[ins]), href="mailto:{}".format(assigned[ins])) ## Time-created footer body.p("Generated at {}".format(now.strftime("%c"))) body.p("Generated from JSON files extracted from Inspire ({} papers in total):".format(ntot)) body.p(", ".join(args.JSONFILES), style="font-family: monospace; font-size: smaller") ## Write out outfile = args.OUTFILE if not outfile: outfile = args.BASENAME exclparts = [e.replace(" ", "") for e in excls] if exclparts: outfile += "-" + "-".join(exclparts) if not outfile.endswith(".html"): outfile += ".html" print("Writing output to {} {}".format(outfile, exclstr)) with open(outfile, "wb") as hf: a = unicode(OUT) hf.write(a.encode("UTF-8")) diff --git a/doc/rivet-coverage-hera.rank b/doc/rivet-coverage-hera.rank --- a/doc/rivet-coverage-hera.rank +++ b/doc/rivet-coverage-hera.rank @@ -1,501 +1,501 @@ 218022 X ZEUS, A DETECTOR FOR HERA: LETTER OF INTENT 222773 X Letter of intent for an experiment at HERA: H1 Collaboration 229042 X THE ZEUS DETECTOR: TECHNICAL PROPOSAL 339275 . A Measurement of sigma(tot) (gamma p) at s**(1/2) = 210-GeV 339388 X Observation of hard scattering in photoproduction at HERA 340136 X Hard scattering in gamma p interactions 340891 . Total photoproduction cross-section measurement at HERA energies 340931 . Measurement of the hadronic final state in deep inelastic scattering at HERA 340934 X Observation of deep inelastic scattering at low x 342063 X Initial study of deep inelastic scattering with ZEUS at HERA 353281 ? Search for leptoquarks with the ZEUS detector 353406 ? A Search for leptoquarks, leptogluons and excited leptons in H1 at HERA 353462 X Observation of two jet production in deep inelastic scattering at HERA 353998 X Results from pion calibration runs for the H1 liquid argon calorimeter and comparisons with simulations 355326 . Hadronic energy distributions in deep inelastic electron - proton scattering 355574 ? Search for excited electrons using the ZEUS detector 355921 X The H1 liquid argon calorimeter system 356445 . Observation of events with a large rapidity gap in deep inelastic scattering at HERA 356741 . Measurement of inclusive jet cross-sections in photoproduction at HERA 356907 X The H1 detector at HERA 357414 X Measurement of the proton structure function F2 in e p scattering at HERA 357797 X Measurement of the proton structure function F2 (x, Q**2) in the low x region at HERA 359105 . A Measurement of multi - jet rates in deep inelastic scattering at HERA 360235 X Scaling violations of the proton structure function f2 at small x 360338 X Observation of direct processes in photoproduction at HERA 371597 ? First measurement of the charged current cross-section at HERA 372256 . Inclusive charged particle cross-sections in photoproduction at HERA 372260 . Measurement of total and partial photon proton cross-sections at 180-GeV center-of-mass energy 372350 . Energy flow and charged particle spectrum in deep inelastic scattering at HERA 373037 X Observation of jet production in deep inelastic scattering with a large rapidity gap at HERA 375000 . Comparison of energy flows in deep inelastic scattering events with and without a large rapidity gap 375557 . Deep inelastic scattering events with a large rapidity gap at HERA 375999 X Measurement of the proton structure function F2 from the 1993 HERA data 376099 ? A Search for heavy leptons at HERA 376566 . Photoproduction of J / psi mesons at HERA 376921 ? A Search for leptoquarks and squarks at HERA 378836 ? A Search for excited fermions in electron - proton collisions at HERA 378838 . Inclusive jet differential cross-sections in photoproduction at HERA 379633 X Extraction of the gluon density of the proton at small x 380162 . Observation of hard processes in rapidity gap events in gamma p interactions at HERA 380248 . Observation of hard scattering in photoproduction events with a large rapidity gap at HERA 380480 . Search for leptoquarks in e p collisions at s**(1/2) = 296-GeV 380481 . Observation of vector meson production in electron proton DIS at HERA 380482 . Properties and cross-section of diffractive events produced in deep inelastic e p scattering at HERA 380483 X First measurements with the ZEUS leading proton spectrometer 380484 . Study of neutral strange particle production in deep inelastic scattering at HERA 380485 . Initial study of leading neutrons in e p collisions at HERA 380486 . Observation of photoproduction of Phi mesons at HERA 380487 . Measurement of the elastic rho0 photoproduction cross-section at HERA 380488 . Measurement of two jet cross-sections in photoproduction at HERA 380489 . Multi - jet production in deep inelastic e p scattering at HERA 380490 . Two jet production in deep inelastic scattering neutral current events at HERA and search for a resolved photon contribution 380496 . Observation of D* production in e p collisions at HERA 380497 . Cross-section measurement of the process e p ---> e p J / psi at HERA 380945 . Determination of the strong coupling constant from jet rates in deep inelastic scattering 382261 . Observation of an e+ p ---> mu+ X event with high transverse momenta at HERA 385728 . Search for leptoquarks in e p collisions at s**(1/2) = 296-GeV 392037 . Inclusive transverse momentum distributions of charged particles in diffractive and nondiffractive photoproduction at HERA 392038 . Study of the photon remnant in resolved photoproduction at HERA 392386 . Measurement of multiplicity and momentum spectra in the current fragmentation region of the Breit frame at HERA 392566 . Study of D*+- (2010) production in e p collisions at HERA 392678 . Jet production in high Q**2 deep inelastic e p scattering at HERA 392680 X A Measurement of the proton structure function f2 (x, Q**2) 392980 . Dijet cross-sections in photoproduction at HERA 393286 . First measurement of the deep inelastic structure of proton diffraction 393526 . Experimental study of hard photon radiation processes at HERA 393907 . Measurement of the cross-section for the reaction $\gamma p \to J/\psi p$ with the ZEUS detector at HERA 393918 . Measurement of charged and neutral current e- p deep inelastic scattering cross-sections at high Q**2 394176 . Inclusive parton cross-sections in photoproduction and photon structure 394404 . Leptoquarks and compositeness scales from a contact interaction analysis of deep inelastic e+- p scattering at HERA 394793 . A Study of the fragmentation of quarks in e- p collisions at HERA 395196 . Neutral strange particle production in deep inelastic scattering at HERA 395199 ? Measurement of the diffractive structure function in deep elastic scattering at HERA 395643 X A Direct determination of the gluon density in the proton at low x 395814 X The Gluon density of the proton at low x from a QCD analysis of F2 395960 . Measurement of the $e^{+}$ and $e^{-}$ induced charged current cross-sections at HERA 396314 . Diffractive hard photoproduction at HERA and evidence for the gluon content of the pomeron 396365 . Transverse energy and forward jet production in the low x regime at HERA 396893 . Exclusive $\rho^0$ production in deep inelastic electron - proton scattering at HERA 397423 . Measurement of elastic $\rho^0$ photoproduction at HERA 398259 . Comparison of deep inelastic scattering with photoproduction interactions at HERA 399015 . Measurement of the total photon-proton cross-section and its decomposition at 200-GeV center-of-mass energy 400436 . Measurement of alpha-s from jet rates in deep inelastic scattering at HERA 401305 . Measurement of the proton structure function F2 at low x and low q**2 at HERA 401492 . Rapidity gaps between jets in photoproduction at HERA 402646 . Inclusive charged particle distributions in deep inelastic scattering events at HERA 402890 . Jets and energy flow in photon - proton collisions at HERA 403048 . A Search for leptoquarks at HERA 415281 . Elastic photoproduction of rho0 mesons at HERA 415642 . Measurement of elastic $\phi$ photoproduction at HERA 415706 . Energy flow in the hadronic final state of diffractive and nondiffractive deep inelastic scattering at HERA 415942 . Measurement of the diffractive cross-section in deep inelastic scattering 416228 . Elastic electroproduction of $\rho^0$ and $J/\psi$ mesons at large Q$^2$ at HERA 416819 . A Measurement and QCD analysis of the proton structure function f2 (x, q**2) at HERA 416868 . Elastic and inelastic photoproduction of $J/\psi$ mesons at HERA 417155 . Measurement of the q**2 dependence of the charged and neutral current cross-sections in e+- p scattering at HERA 417960 . Photoproduction of D*+- mesons in electron - proton collisions at HERA 417985 ? A Search for squarks of Rp violating SUSY at HERA 418041 . Measurement of the reaction gamma* p --> phi p in deep inelastic e+ p scattering at HERA 418356 ? A Search for selectrons and squarks at HERA 418926 . Dijet angular distributions in direct and resolved photoproduction at HERA 419261 . Observation of events with an energetic forward neutron in deep inelastic scattering at HERA 420053 . Study of charged current $e p$ interactions at $Q^{2}$ > $200-Gev^{2}$ with the ZEUS detector at HERA 420332 X Measurement of the F2 structure function in deep inelastic e+ p scattering using 1994 data from the ZEUS detector at HERA 421030 . Strangeness production in deep inelastic positron - proton scattering at HERA 421105 . Inclusive D0 and D*+- production in deep inelastic e p scattering at HERA 422159 . Measurement of elastic omega photoproduction at HERA 422230 . Charged particle multiplicities in deep inelastic scattering at HERA 422595 . Search for lepton flavor violation in $e p$ collisions at 300-GeV center-of-mass energy 423078 . Study of elastic $\rho^0$ photoproduction at HERA using the ZEUS leading proton spectrometer 423350 . Search for excited fermions with the H1 detector 424463 . Measurement of charged particle transverse momentum spectra in deep inelastic scattering 425598 . Scale influence on the energy dependence of photon - proton cross-sections 426362 . Determination of the longitudinal proton structure function F(L) (x, Q**2) at low x 428367 X The H1 detector at HERA 429800 X The Tracking, calorimeter and muon detectors of the H1 experiment at HERA 440126 . Diffraction dissociation in photoproduction at HERA 440536 ? Comparison of ZEUS data with standard model predictions for $e^{+} p \to e^{+} X$ scattering at high x and $Q^{2}$ 440537 . Observation of events at very high $Q^{2}$ in $e p$ collisions at HERA 441088 . Differential cross-sections of D*+- photoproduction in e p collisions at HERA 441392 X A Measurement of the proton structure function f2 (x, q**2) at low x and low q**2 at HERA 442287 . Study of photon dissociation in diffractive photoproduction at HERA 442537 . Measurement of elastic $J/\psi$ photoproduction at HERA 442752 . Bose-Einstein correlations in deep inelastic e p scattering at HERA 443293 . Proton dissociative $\rho$ and elastic $\phi$ electroproduction at HERA 443582 . Photoproduction of K0 and Lambda at HERA and a comparison with deep inelastic scattering 443753 ! Measurement of event shape variables in deep inelastic e p scattering 443964 . D* production in deep inelastic scattering at HERA 445116 . Evolution of e p fragmentation and multiplicity distributions in the Breit frame 445305 . A Search for excited fermions in $e^{+} p$ collisions at HERA 445553 . Measurement of the proton structure function F2 and sigma-tot (gamma* p) at low q**2 and very low x at HERA 446830 . Measurement of inelastic $J/\psi$ photoproduction at HERA 447204 . Observation of isolated high E($t$) photons in photoproduction at HERA 447269 . Inclusive measurement of diffractive deep inelastic ep scattering 448035 . Measurement of the inclusive dijet cross-section in photoproduction and determination of an effective parton distribution in the photon 448449 . Low Q**2 jet production at HERA and virtual photon structure 448663 . Measurement of the diffractive structure function F2(D(4)) at HERA 449345 . Measurement of jet shapes in photoproduction at HERA 449531 . Observation of scaling violations in scaled momentum distributions at HERA 450085 . Dijet cross-sections in photoproduction at HERA 450130 . Event shape analysis of deep inelastic scattering events with a large rapidity gap at HERA 451036 . Thrust jet analysis of deep inelastic large rapidity gap events 451266 . Photoproduction of psi (2S) mesons at HERA 451528 . Charged particles and neutral kaons in photoproduced jets at HERA 452353 . Elastic and proton dissociative $\rho^0$ photoproduction at HERA 452355 . Measurement of the t distribution in diffractive photoproduction at HERA 467101 . High E($T$) inclusive jet cross-sections in photoproduction at HERA 468748 . Hadron production in diffractive deep inelastic scattering 468803 . Measurement of jet shapes in high $Q^{2}$ deep inelastic scattering at HERA 469495 . Multiplicity structure of the hadronic final state in diffractive deep inelastic scattering at HERA 469534 . Diffractive dijet cross-sections in photoproduction at HERA 470499 . Forward jet production in deep inelastic scattering at HERA 471479 X The Electronics of the H1 lead / scintillating fiber calorimeters 471583 . Observation of events with an isolated high-energy lepton and missing transverse momentum at HERA 472079 . Search for selectron and squark production in $e^{+} p$ collisions at HERA 472304 . Differential (2+1) jet event rates and determination of alpha(s) in deep inelastic scattering at HERA 472305 . Dijet event rates in deep inelastic scattering at HERA 472962 . Measurement of inclusive D*+- and associated dijet cross-sections in photoproduction at HERA 473108 . Measurement of the diffractive cross-section in deep inelastic scattering using ZEUS 1994 data 473521 . Multijet event rates in deep inelastic scattering and determination of the strong coupling constant 473522 . Measurement of elastic Upsilon photoproduction at HERA 474949 . Diffractive dijet production at HERA 475083 . Exclusive electroproduction of $\rho^0$ and $J/\psi$ mesons at HERA 475922 X ZEUS results on the measurement and phenomenology of F(2) at low x and low Q**2 476801 . Forward jet and particle production at HERA 477556 . Charged particle cross-sections in photoproduction and extraction of the gluon density in the photon 478182 . Measurement of three jet distributions in photoproduction at HERA 478983 . Measurement of leading proton and neutron production in deep inelastic scattering at HERA 481112 . Measurement of D* meson cross-sections at HERA and determination of the gluon density in the proton using NLO QCD 481113 . Measurement of dijet cross-sections at low Q**2 and the extraction of an effective parton density for the virtual photon 482053 . Measurement of internal jet structure in dijet production in deep inelastic scattering at HERA 495311 . Elastic electroproduction of rho mesons at HERA 496430 . Charmonium production in deep inelastic scattering at HERA 497218 . Measurement of multiplicity and momentum spectra in the current and target regions of the Breit frame in deep inelastic scattering at HERA 500267 . Measurement of high $Q^{2}$ neutral current $e^{+} p$ deep inelastic scattering cross-sections at HERA 500419 . Search for contact interactions in deep inelastic $e^{+} p \to e^{+} X$ scattering at HERA 500491 . Measurement of Dijet photoproduction at high transverse energies at HERA 500633 . Angular and current target correlations in deep inelastic scattering at HERA 503019 . A Search for leptoquark bosons and lepton flavor violation in $e^{+} p$ collisions at HERA 503434 . Measurement of high Q**2 charged current e+ p deep inelastic scattering cross-sections at HERA 503787 . W production and the search for events with an isolated high-energy lepton and missing transverse momentum at HERA 503947 . Measurements of transverse energy flow in deep inelastic scattering at HERA 504022 . Forward pi0 meson production at HERA 505056 . Measurement of D*+- production and the charm contribution to F(2) in deep inelastic scattering at HERA 505172 . Measurement of the spin density matrix elements in exclusive electroproduction of rho0 mesons at HERA 506029 . Measurement of neutral and charged current cross-sections in positron proton collisions at large momentum transfer 507230 . Measurement of open beauty production at HERA 508770 . Measurement of diffractive photoproduction of vector mesons at large momentum transfer at HERA 508906 . Measurement of the E**2(T,jet) / Q**2 dependence of forward jet production at HERA 508908 . Measurement of inclusive prompt photon photoproduction at HERA 512347 X Investigation of power corrections to event shape variables measured in deep inelastic scattering 523610 . The Q**2 dependence of dijet cross-sections in gamma p interactions at HERA 523922 . Search for resonances decaying to $e +$ jet in $e^{+} p$ interactions at HERA 524524 . Search for compositeness, leptoquarks and large extra dimensions in $e q$ contact interactions at HERA 524764 . Measurement of dijet cross-sections in photoproduction and photon structure 524911 . Measurement of azimuthal asymmetries in deep inelastic scattering 524912 . Measurement of inclusive D+-(s) photoproduction at HERA 525022 . Elastic photoproduction of J / psi and Upsilon mesons at HERA 526887 . Measurement of elastic electroproduction of phi mesons at HERA 527095 . Measurement of the proton structure function F(2) at very low Q**2 at HERA 528588 . Measurement of exclusive omega electroproduction at HERA 528728 . Inclusive photoproduction of neutral pions in the photon hemisphere at HERA 530500 ? A Search for excited fermions at HERA 534265 . Search for resonance decays to an anti-neutrino plus jet in e+ p scattering at DESY HERA 534736 . Dijet production in charged and neutral current e+ p interactions at high Q**2 534829 . Measurement of dijet cross-sections for events with a leading neutron in photoproduction at HERA 535481 . Measurement and QCD analysis of jet cross-sections in deep inelastic positron - proton collisions at s**(1/2) of 300-GeV 537299 . Measurement of open beauty production in photoproduction at HERA 539087 . Diffractive jet production in deep inelastic $e^{+} p$ collisions at HERA 539088 . Measurement of neutral and charged current cross-sections in electron - proton collisions at high $Q^{2}$ 539089 . Deep inelastic inclusive e p scattering at low x and a determination of alpha(s) 553352 . Measurement of dijet production in neutral current deep inelastic scattering at high Q**2 and determination of alpha(s) 553604 . Searches at HERA for squarks in R-parity violating supersymmetry 554878 . Study of the effective transverse momentum of partons in the proton using prompt photons in photoproduction at HERA 555612 . Multiplicity moments in deep inelastic scattering at HERA 557597 . Measurement of the neutral current cross-section and F(2) structure function for deep inelastic e + p scattering at HERA 558634 . Photoproduction with a leading proton at HERA 558699 . Three Jet production in deep inelastic scattering at HERA 559415 . Three jet production in diffractive deep inelastic scattering at HERA 559416 . Measurement of deeply virtual Compton scattering at HERA 559915 . A Search for leptoquark bosons in e- p collisions at HERA 560352 . Properties of hadronic final states in diffractive deep inelastic ep scattering at HERA 561805 . On the rise of the proton structure function F(2) towards low x 561885 . Measurement of D*+- meson production and F2(c) in deep inelastic scattering at HERA 562188 . D*+- meson production in deep inelastic diffractive interactions at HERA 562837 . Searches for excited fermions in $e p$ collisions at HERA 563003 . Dijet production in neutral current deep inelastic scattering at HERA 564569 . Search for excited neutrinos at HERA 565358 . Measurement of dijet electroproduction at small jet separation 568665 . Dijet photoproduction at HERA and the structure of the photon 568806 . High mass dijet cross-sections in photoproduction at HERA 569270 . Measurement of the photon proton total cross-section at a center-of-mass energy of 209-GeV at HERA 581378 . Search for lepton flavor violation in $e^{+} p$ collisions at HERA 581409 . Measurement of dijet cross-sections in photoproduction at HERA 582237 . Exclusive photoproduction of J / psi mesons at HERA 583863 . Energy flow and rapidity gaps between jets in photoproduction at HERA 584099 . A Measurement of the t dependence of the helicity structure of diffractive rho meson electroproduction at HERA 584714 . Measurement of the Q**2 and energy dependence of diffractive interactions at HERA 586977 . Inelastic photoproduction of $J/\psi$ mesons at HERA 586978 . Inelastic leptoproduction of $J/\psi$ mesons at HERA 587158 . Leading neutron production in e+ p collisions at HERA 587160 . Search for QCD instanton induced processes in deep inelastic scattering at HERA 587202 . Measurement of proton dissociative diffractive photoproduction of vector mesons at large momentum transfer at HERA 587371 . Measurement of high Q$^2$ charged current cross-sections in e$^-$p deep inelastic scattering at HERA 587754 . Diffractive photoproduction of psi(2S) mesons at HERA 588104 . Measurement of diffractive production of D*+-(2010) mesons in deep inelastic scattering at HERA 588263 . Measurement of inclusive jet cross-sections in deep inelastic ep scattering at HERA 589474 . Search for odderon induced contributions to exclusive pi0 photoproduction at HERA 590618 . Search for excited electrons at HERA 593048 X A ZEUS next-to-leading-order QCD analysis of data on deep inelastic scattering 593409 . Inclusive jet cross-sections in the Breit frame in neutral current deep inelastic scattering at HERA and determination of alpha(s) 593481 . Measurement of high Q**2 e- p neutral current cross-sections at HERA and the extraction of xF(3) 599368 . Leading proton production in e+ p collisions at HERA 600814 . Study of the azimuthal asymmetry of jets in neutral current deep inelastic scattering at HERA 601166 . Measurements of inelastic J / psi and psi-prime photoproduction at HERA 601697 . Observation of the strange sea in the proton via inclusive phi meson production in neutral current deep inelastic scattering at HERA 602252 . Measurement of event shapes in deep inelastic scattering at HERA 604485 . Measurement of subjet multiplicities in neutral current deep inelastic scattering at HERA and determination of alpha(s) 605584 . Scaling violations and determination of alpha(s) from jet production in gamma p interactions at HERA 611894 . Isolated electrons and muons in events with missing transverse momentum at HERA 613066 . Search for single top production in ep collisions at HERA 613625 . Dijet angular distributions in photoproduction of charm at HERA 613857 . Measurement of inclusive jet cross-sections in photoproduction at HERA 616311 . Measurement and QCD analysis of neutral and charged current cross-sections at HERA 616445 . A Search for resonance decays to lepton + jet at HERA and limits on leptoquarks 618585 . Search for new physics in $e^\pm q$ contact interactions at HERA 618776 . Measurement of deeply virtual Compton scattering at HERA 620283 . Diffractive photoproduction of $J/\psi$ mesons with large momentum transfer at HERA 620434 . Jet production in charged current deep inelastic e+ p scattering at HERA 622880 . Multielectron production at high transverse momenta in ep collisions at HERA 623557 . Measurement of high Q**2 charged current cross-sections in e+ p deep inelastic scattering at HERA 624128 . Measurement of the open charm contribution to the diffractive proton structure function 624868 . Observation of K0(s) K0(s) resonances in deep inelastic scattering at HERA 626816 . Measurement of D*+- production in deep inelastic e+- p scattering at HERA 630329 . Inclusive dijet production at low Bjorken x in deep inelastic scattering 630625 . Search for single top quark production in ep collisions at HERA 632638 . Muon pair production in ep collisions at HERA 632835 . Isolated tau leptons in events with large missing transverse momentum at HERA 632942 . Bose-Einstein correlations in one and two-dimensions in deep inelastic scattering 635791 . Search for QCD instanton induced events in deep inelastic ep scattering at HERA 635847 . Search for single-top production in e p collisions at HERA. (Addendum) 636222 . Beauty photoproduction measured using decays into muons in dijet events in e p collisions at s**(1/2) = 318-GeV 636641 . High Q**2 neutral current cross-sections in e+ p deep inelastic scattering at s**(1/2) = 318-GeV 636690 . Search for contact interactions, large extra dimensions and finite quark radius in e p collisions at HERA 642523 . Measurement of dijet production at low Q**2 at HERA 642709 . Photoproduction of D*+- mesons associated with a leading neutron 644282 . Observation of isolated high E(T) photons in deep inelastic scattering 646141 . Evidence for a narrow anti-charmed baryon state 646447 ? Search for squark production in R parity violating supersymmetry at HERA 647286 . Evidence for a narrow baryonic state decaying to K0(S) p and K0(S) anti-p in deep inelastic scattering at HERA 647349 . Measurement of anti-deuteron photoproduction and a search for heavy stable charged particles at HERA 647488 . Study of the pion trajectory in the photoproduction of leading neutrons at HERA 647777 . Exclusive electroproduction of J/psi mesons at HERA 647847 . Forward $\pi^0$ production and associated transverse energy flow in deep-inelastic scattering at HERA 649041 . The Dependence of dijet production on photon virtuality in ep collisions at HERA 650732 . Substructure dependence of jet cross sections at HERA and determination of alpha(s) 650875 . Measurement of beauty production in deep inelastic scattering at HERA 650876 . Search for bosonic stop decays in R-parity violating supersymmetry in e+ p collisions at HERA 652164 . Measurement of the proton structure function F(2) at low Q**2 in QED Compton scattering at HERA 654175 . Measurement of prompt photon cross sections in photoproduction at HERA 655798 . Dissociation of virtual photons in events with a leading proton at HERA 656427 . A General search for new phenomena in ep scattering at HERA 657925 . Inclusive production of D+, D0, D+(s) and D*+ mesons in deep inelastic scattering at HERA 659021 . Search for a narrow charmed baryonic state decaying to D*+- p-+ in ep collisions at HERA 664364 . Measurement of F2($c \bar{c}$) and F2($b \bar{b}$) at high $Q^{2}$ using the H1 vertex detector at HERA 668595 . Search for light gravitinos in events with photons and missing transverse momentum at HERA 668684 . A Direct search for stable magnetic monopoles produced in positron-proton collisions at HERA 669251 . Measurement of dijet cross sections in ep interactions with a leading neutron at HERA 675372 . Study of deep inelastic inclusive and diffractive scattering with the ZEUS forward plug calorimeter 675755 . Search for pentaquarks decaying to Xi-pi in deep inelastic scattering at HERA 675756 ? Search for lepton-flavor violation at HERA 676091 . Multijet production in neutral current deep inelastic scattering at HERA and determination of alpha(s) 676166 . Measurement of beauty production at HERA using events with muons and jets 676876 . Forward jet production in deep inelastic ep scattering and low-x parton dynamics at HERA 678876 . Measurement of charm and beauty photoproduction at HERA using D* mu correlations 679257 . An NLO QCD analysis of inclusive cross-section and jet-production data from the zeus experiment 679957 . Exclusive electroproduction of phi mesons at HERA 682022 . Measurement of inelastic $J/\psi$ production in deep inelastic scattering at HERA 682849 . Measurement of deeply virtual compton scattering at HERA 685461 . Search for leptoquark bosons in ep collisions at HERA 687624 . A Determination of electroweak parameters at HERA 687625 X Measurement of F(2)**c anti-c and F(2)**b anti-b at low Q*2 and x using the H1 vertex detector at HERA 687943 . Inclusive jet cross sections and dijet correlations in D*+- photoproduction at HERA 689412 . Measurement of charm fragmentation ratios and fractions in photoproduction at HERA 690939 . Forward jet production in deep inelastic scattering at HERA 694372 . Elastic J/psi production at HERA 699835 . Measurement of event shape variables in deep-inelastic scattering at HERA 701216 . First measurement of charged current cross sections at HERA with longitudinally polarised positrons 710347 . Measurement of high-Q**2 deep inelastic scattering cross sections with a longitudinally polarised positron beam at HERA 711847 . Photoproduction of dijets with high transverse momenta at HERA 712738 . Diffractive photoproduction of rho mesons with large momentum transfer at HERA 714247 ? Tau lepton production in ep collisions at HERA 714319 . Search for doubly-charged Higgs boson production at HERA 714503 . Event shapes in deep inelastic scattering at HERA 715532 . Search for a narrow baryonic resonance decaying to K0(s)p or K0(s)anti-p in deep inelastic scattering at HERA 716144 ! Measurement of charm and beauty dijet cross-sections in photoproduction at HERA using the H1 vertex detector 718189 . Diffractive deep-inelastic scattering with a leading proton at HERA 718190 . Measurement and QCD analysis of the diffractive deep-inelastic scattering cross-section at HERA 723329 . Measurement of neutral current cross sections at high Bjorken-x with the ZEUS detector at HERA 723507 . Measurement of prompt photons with associated jets in photoproduction at HERA 723915 . Inclusive D*+- Meson Cross Sections and D*+- Jet Correlations in Photoproduction at HERA 724050 . Inclusive-jet and dijet cross-sections in deep inelastic scattering at HERA 724240 . Measurement of azimuthal asymmetries in neutral current deep inelastic scattering at HERA 727065 . Measurement of open beauty production at HERA in the $D^{*}$ muon final state 729910 . Diffractive open charm production in deep-inelastic scattering and photoproduction at HERA 731188 . Search for stop production in R-parity-violating supersymmetry at HERA 733480 . Photoproduction of events with rapidity gaps between jets at HERA 734144 . Measurement of $K^0_{S}$, $\Lambda$, $\bar{\Lambda}$ production at HERA 736052 . Production of D*+- Mesons with Dijets in Deep-Inelastic Scattering at HERA 736199 . Jet-radius dependence of inclusive-jet cross-sections in deep inelastic scattering at HERA 744787 . Leading neutron energy and pT distributions in deep inelastic scattering and photoproduction at HERA 745058 . Measurement of D*+- meson production in e+- p scattering at low Q**2 745732 . Search for lepton flavour violation in ep collisions at HERA 746380 . Tests of QCD factorisation in the diffractive production of dijets in deep-inelastic scattering and photoproduction at HERA 747652 . Diffractive photoproduction of D*+-(2010) at HERA 749371 . Measurement of D mesons production in deep inelastic scattering at HERA 749391 . Search for baryonic resonances decaying to Xi pi in deep-inelastic scattering at HERA 750515 . Multijet production at low x(Bj) in deep inelastic scattering at HERA 751504 . Measurement of (anti)deuteron and (anti)proton production in DIS at HERA 753349 . Charged Particle Production in High Q**2 Deep-Inelastic Scattering at HERA 753376 . Bose-Einstein Correlations of Charged and Neutral Kaons in Deep Inelastic Scattering at HERA 753951 . Measurement of inclusive jet production in deep-inelastic scattering at high Q**2 and determination of the strong coupling 753991 . High-E(T) dijet photoproduction at HERA 756364 . Forward-jet production in deep inelastic ep scattering at HERA 756660 . Three- and four-jet final states in photoproduction at HERA 757973 . Dijet production in diffractive deep inelastic scattering at HERA 757991 . Exclusive rho0 production in deep inelastic scattering at HERA 759012 . Dijet Cross Sections and Parton Densities in Diffractive DIS at HERA 761990 . Measurement of deeply virtual Compton scattering and its t-dependence at HERA 763404 . Diffractive photoproduction of dijets in ep collisions at HERA 767896 . Three- and Four-jet Production at Low x at HERA 768933 ! Measurement of isolated photon production in deep-inelastic scattering at HERA 779349 . A Search for Excited Neutrinos in e- p Collisions at HERA 779854 . Deep inelastic inclusive and diffractive scattering at $Q^2$ values from 25 to 320 GeV$^2$ with the ZEUS forward plug calorimeter 780108 . Multi-jet cross-sections in charged current e+- p scattering at HERA 782120 . Energy dependence of the charged multiplicity in deep inelastic scattering at HERA 786161 . Measurement of the Proton Structure Function F(L)(x, Q**2) at Low x 786814 . Beauty photoproduction using decays into electrons at HERA 786884 . Search for Excited Electrons in ep Collisions at HERA 787335 . Inclusive K0(S)K0(S) resonance production in ep collisions at HERA 789056 . Multi-Lepton Production at High Transverse Momenta in ep Collisions at HERA 789895 . Search for events with an isolated lepton and missing transverse momentum and a measurement of W production at HERA 790200 . Production of excited charm and charm-strange mesons at HERA 792603 . Study of Charm Fragmentation into D*+- Mesons in Deep-Inelastic Scattering at HERA 793931 . Angular correlations in three-jet events in ep collisions at HERA 799783 . Measurement of Diffractive Scattering of Photons with Large Momentum Transfer at HERA 800763 . Measurement of beauty production from dimuon events at HERA 804915 . Deep inelastic scattering with leading protons or large rapidity gaps at HERA 805171 . Leading proton production in deep inelastic scattering at HERA 805219 . A Measurement of the Q**2, W and t dependences of deeply virtual Compton scattering at HERA 806518 . A General Search for New Phenomena at HERA 806692 . Measurement of the charm fragmentation function in D* photoproduction at HERA 806809 . Measurement of beauty photoproduction using decays into muons in dijet events at HERA 810046 . Strangeness Production at low Q**2 in Deep-Inelastic ep Scattering at HERA 810103 ! Subjet distributions in deep inelastic scattering at HERA 810112 . Measurement of D+- and D0 production in deep inelastic scattering using a lifetime tag at HERA 810120 . Measurement of charged current deep inelastic scattering cross sections with a longitudinally polarised electron beam at HERA 810285 . Inclusive Photoproduction of $\rho^0, K^{*0}$ and $\phi$ Mesons at HERA 810292 . Events with Isolated Leptons and Missing Transverse Momentum and Measurement of $W$ Production at HERA 811152 . Measurement of high-Q**2 neutral current deep inelastic e- p scattering cross sections with a longitudinally polarised electron beam at HERA 817368 . Measurement of the Inclusive ep Scattering Cross Section at Low Q^2 and x at HERA 817462 . Measurement of the Longitudinal Proton Structure Function at HERA 818502 . Search for Excited Quarks in ep Collisions at HERA 818528 . Scaled momentum distributions of charged particles in dijet photoproduction at HERA 818536 . Measurement of charm and beauty production in deep inelastic ep scattering from decays into muons at HERA 818546 . A Precision Measurement of the Inclusive ep Scattering Cross Section at HERA 818707 . Jet Production in ep Collisions at High Q**2 and Determination of alpha(s) 818710 . Search for Single Top Quark Production at HERA 822460 . Measurement of J/psi helicity distributions in inelastic photoproduction at HERA 822488 . Multi-lepton production at high transverse momentum at HERA 825811 . Measurement of the Charm and Beauty Structure Functions using the H1 Vertex Detector at HERA 825825 ! Observation of the Hadronic Final State Charge Asymmetry in High Q**2 Deep-Inelastic Scattering at HERA 826305 . Multi-Leptons with High Transverse Momentum at HERA 827347 . Deeply Virtual Compton Scattering and its Beam Charge Asymmetry in e+- Collisions at HERA 831440 . Measurement of dijet photoproduction for events with a leading neutron at HERA 831986 ! Measurement of isolated photon production in deep inelastic ep scattering 833339 . Measurement of J/psi photoproduction at large momentum transfer at HERA 835534 ! Prompt Photons in Photoproduction at HERA 835609 . Diffractive Electroproduction of rho and phi Mesons at HERA 835983 . Exclusive photoproduction of upsilon mesons at HERA 836096 . Events with an Isolated Lepton and Missing Transverse Momentum and Measurement of W Production at HERA 836107 . Combined Measurement and QCD Analysis of the Inclusive e+- p Scattering Cross Sections at HERA 837434 . Measurement of the D*+- Meson Production Cross Section and F(2)**(c c-bar), at High Q**2, in ep Scattering at HERA 837492 X A QCD analysis of ZEUS diffractive data 838435 . Jet Production in ep Collisions at Low Q**2 and Determination of alpha(s) 841764 . Measurement of Leading Neutron Production in Deep-Inelastic Scattering at HERA 844129 . Scaled momentum spectra in deep inelastic scattering at HERA 844299 . Inelastic Production of J/psi Mesons in Photoproduction and Deep Inelastic Scattering at HERA 848883 . Inclusive-jet cross sections in NC DIS at HERA and a comparison of the kT, anti-kT and SIScone jet algorithms 855232 . Measurement of beauty production in DIS and $F_2^{b\bar{b}}$ extraction at ZEUS 857109 . Diffractive Dijet Photoproduction in ep Collisions at HERA 860842 . Measurement of $D^+$ and $\Lambda_{c}^{+}$ production in deep inelastic scattering at HERA 865032 ! Measurement of Charm and Beauty Jets in Deep Inelastic Scattering at HERA 865819 . Measurement of high-$Q^2$ charged current deep inelastic scattering cross sections with a longitudinally polarised positron beam at HERA 875006 . Inclusive dijet cross sections in neutral current deep inelastic scattering at HERA 875888 . Measurement of the energy dependence of the total photon-proton cross section at HERA 878656 . Search for Squarks in R-parity Violating Supersymmetry in ep Collisions at HERA 882470 . Measurement of the Inclusive e{\pm}p Scattering Cross Section at High Inelasticity y and of the Structure Function $F_L$ 883710 . Study of tau-pair production at HERA 884735 . Measurement of beauty production in deep inelastic scattering at HERA using decays into electrons 894023 . Search for Lepton Flavour Violation at HERA 897420 . Measurement of heavy-quark jet photoproduction at HERA 912665 . Measurement of D^{*\pm} Meson Production and Determination of F_2^{ccbar} at low Q2 in Deep-Inelastic Scattering at HERA 916222 . Measurement of Photon Production in the Very Forward Direction in Deep-Inelastic Scattering at HERA 918292 . Search for Contact Interactions in e^{\pm}p Collisions at HERA 918972 . Measurement of the Diffractive Longitudinal Structure Function $F_L^D$ at HERA 919140 . Search for first generation leptoquarks in $ep$ collisions at HERA 944155 . Measurement of Dijet Production in Diffractive Deep-Inelastic Scattering with a Leading Proton at HERA 945298 . Measurement of the t dependence in exclusive photoproduction of $\Upsilon$(1S) mesons at HERA 945935 . Scaled momentum distributions for $K^0_S$ and $\Lambda/\bar{\Lambda}$ in DIS at HERA 946107 . Search for single-top production in $ep$ collisions at HERA 946655 . Measurement of the Azimuthal Correlation between the most Forward Jet and the Scattered Positron in Deep-Inelastic Scattering at HERA 946807 . Exclusive electroproduction of two pions at HERA 1092976 . Measurement of Inclusive and Dijet D* Meson Cross Sections in Photoproduction at HERA 1094384 . Inclusive Measurement of Diffractive Deep-Inelastic Scattering at HERA 1114313 . Determination of the Integrated Luminosity at HERA using Elastic QED Compton Events 1114316 . Measurement of Beauty and Charm Photoproduction using Semi-muonic Decays in Dijet Events at HERA 1115725 . Search for first-generation leptoquarks at HERA 1116258 ! Inclusive-jet photoproduction at HERA and determination of alphas 1117891 . Measurement of isolated photons accompanied by jets in deep inelastic $ep$ scattering 1118830 . Measurement of Beauty Photoproduction near Threshold using Di-electron Events with the H1 Detector at HERA 1120512 . Inclusive Deep Inelastic Scattering at High $Q^2$ with Longitudinally Polarised Lepton Beams at HERA 1123363 . Combined inclusive diffractive cross sections measured with forward proton spectrometers in deep inelastic $ep$ scattering at HERA 1180018 . Production of the excited charm mesons $D_1$ and $D^*_2$ at HERA 1183813 . Measurement of high-Q2 neutral current deep inelastic $e^+p$ scattering cross sections with a longitudinally polarized positron beam at HERA 1191900 . Production of $Z^0$ bosons in elastic and quasi-elastic $ep$ collisions at HERA 1198429 . Combination and QCD Analysis of Charm Production Cross Section Measurements in Deep-Inelastic ep Scattering at HERA 1204785 . Measurement of inelastic $J/\psi$ and $\psi^\prime$ photoproduction at HERA 1217865 ! Measurement of Charged Particle Spectra in Deep-Inelastic ep Scattering at HERA 1220382 . Measurement of $D^\pm$ production in deep inelastic $ep$ scattering with the ZEUS detector at HERA 1225526 . Measurement of $ D^{*\pm}$ production in deep inelastic scattering at HERA -1228913 . Elastic and Proton-Dissociative Photoproduction of J/psi Mesons at HERA +1228913 ! Elastic and Proton-Dissociative Photoproduction of J/psi Mesons at HERA 1239346 . Measurement of charm fragmentation fractions in photoproduction at HERA 1267651 . Photoproduction of Isolated Photons, Inclusively and with a Jet, at HERA 1269458 . Measurement of neutral current e$\pm$p cross sections at high Bjorken x with the ZEUS detector 1269731 . Measurement of inclusive $e p$ cross sections at high $Q^2$ at $\sqrt s =$ 225 and 252 GeV and of the longitudinal proton structure function $F_L$ at HERA 1288065 ! Measurement of Feynman-$x$ Spectra of Photons and Neutrons in the Very Forward Direction in Deep-Inelastic Scattering at HERA 1292476 . Deep inelastic cross-section measurements at large y with the ZEUS detector at HERA 1297225 . Measurement of $D^{\ast}$ photoproduction at three different centre-of-mass energies at HERA 1298276 . Measurement of beauty and charm production in deep inelastic scattering at HERA and measurement of the beauty-quark mass 1298390 . Further studies of the photoproduction of isolated photons with a jet at HERA 1301218 ! Measurement of multijet production in $ep$ collisions at high $Q^2$ and determination of the strong coupling $\alpha _s$ 1332186 . Measurement of Dijet Production in Diffractive Deep-Inelastic ep Scattering at HERA 1343110 . Diffractive Dijet Production with a Leading Proton in $ep$ Collisions at HERA 1353667 ! Combination of differential D$^{∗\pm}$ cross-section measurements in deep-inelastic ep scattering at HERA 1372086 . Production of exclusive dijets in diffractive deep inelastic scattering at HERA 1377206 . Combination of measurements of inclusive deep inelastic ${e^{\pm }p}$ scattering cross sections and QCD analysis of HERA data 1387751 . Exclusive $\rho ^0$ meson photoproduction with a leading neutron at HERA 1429661 . Search for QCD instanton-induced processes at HERA in the high- $\pmb {Q^2}$ domain 1437948 . Combined QCD and electroweak analysis of HERA data 1442358 . Limits on the effective quark radius from inclusive $ep$ scattering at HERA 1444882 . Search for a narrow baryonic state decaying to ${pK^0_S}$ and ${\bar{p}K^0_S}$ in deep inelastic scattering at HERA 1496981 ! Measurement of Jet Production Cross Sections in Deep-inelastic ep Scattering at HERA 1519830 . Measurement of $D^{*}$ production in diffractive deep inelastic scattering at HERA 1601508 . Studies of the diffractive photoproduction of isolated photons at HERA 1624691 . Determination of the strong coupling constant $\alpha_s(m_Z)$ in next-to-next-to-leading order QCD using H1 jet cross section measurements 1642730 . Further studies of isolated photon production with a jet in deep inelastic scattering at HERA 1649636 . Measurement of the cross-section ratio sigma_{psi(2S)}/sigma_{J/psi(1S)} in deep inelastic exclusive ep scattering at HERA 1665693 . Combination and QCD analysis of charm and beauty production cross-section measurements in deep inelastic $ep$ scattering at HERA 1676227 . Determination of electroweak parameters in polarised deep-inelastic scattering at HERA 1719174 . Limits on contact interactions and leptoquarks at HERA diff --git a/doc/rivet-coverage-lep.rank b/doc/rivet-coverage-lep.rank new file mode 100644 --- /dev/null +++ b/doc/rivet-coverage-lep.rank @@ -0,0 +1,1508 @@ +19342 X ALEPH: Technical Report 1983 +39718 . Comparison of a new calculation of energy-energy correlations with e+ e- ---> hadrons data at the Z0 resonance +179973 X SLD: LETTER OF INTENT +266431 X A Status Report on the Sld Data Acquisition System +282041 . A Determination of the Properties of the Neutral Intermediate Vector Boson $Z^0$ +282645 . Mass Limits for Scalar Muons, Scalar Electrons and Winos from e+ e- Collisions near S**(1/2) = 91 GeV +282821 . Measurement of the $Z^0$ Mass and Width with the OPAL Detector at LEP +282904 . Determination of the Number of Light Neutrino Species +282905 . Measurement of the Mass and Width of the $Z^0$ Particle from Multi - Hadronic Final States Produced in $e^{+} e^{-}$ Annihilations +283146 . Measurement of the Decay of the $\Z^0$ Into Lepton Pairs +283354 . Properties of Hadronic Events in e$^{+} $e$^{-}$ Annihilation at $S^{(1/2)}=91$-{GeV} +283355 . Determination of the Leptonic Branching Ratios of the $Z$ +283470 . Measurement of $g$(a) and $g(V$), the Neutral Current Coupling Constants to Leptons +283729 . Search for the Neutral Higgs Boson from Z0 Decay +283730 . Search for Supersymmetric Particles Using Acoplanar Charged Particle Pairs From $\Z^0$ Decays +283783 . A Study of Jet Production Rates and a Test of QCD on the Z0 Resonance +283784 . A Search for the Top and $b^\prime$ Quarks in Hadronic $\Z^0$ Decays +284406 . A Search for New Quarks and Leptons From $\Z^0$ Decay +284407 . Search for Excited Leptons in $\Z^0$ Decay +284409 . Search for Neutral Higgs Bosons From Supersymmetry in $Z$ Decays +284411 . A Precise Determination of the Number of Families With Light Neutrinos and of the $Z$ Boson Partial Widths +285181 . Mass Limits for a Standard Model Higgs Boson in $e^+ e^-$ Collisions at {LEP} +285182 . A SEARCH FOR NEW CHARGED HEAVY LEPTONS WITH THE OPAL DETECTOR AT LEP +285183 . A Search for Acoplanar Pairs of Leptons or Jets in $\Z^0$ Decays: Mass Limits on Supersymmetric Particles +286423 . Measurement of $\Z^0$ Decays to Hadrons and a Precise Determination of the Number of Neutrino Species +294474 . A Direct Search for New Charged Heavy Leptons at {LEP} +294521 . Search for the Neutral Higgs Boson From $\Z^0$ Decay in the Higgs Mass Range Between 11-{GeV} and 24-{GeV} +294576 . A MEASUREMENT OF THE Z0 LEPTONIC PARTIAL WIDTHS AND THE FORWARD - BACKWARD ASYMMETRY +294808 . A Combined Analysis of the Hadronic and Leptonic Decays of the $\Z^0$ +294809 . A Study of the Reaction $e^+ e^- \to \gamma \gamma$ at {LEP} +294894 . Study of Hadronic Decays of the $\Z^0$ Boson +294934 . ALEPH: A detector for electron-positron annnihilations at LEP +294982 . A Search for Pair Produced Charged Higgs Bosons in $\Z^0$ Decays +295040 . Measurement of $\Z^0 \to b \bar{b}$ Decay Properties +295102 . Search for Decays of the $\Z^0$ Into a Photon and a Pseudoscalar Meson +295407 . A Search for Technipions and Charged Higgs Bosons at {LEP} +295500 . Study of the Leptonic Decays of the $Z^0$ Boson +295501 . A Precise Measurement of the $Z$ Resonance Parameters Through Its Hadronic Decays +295503 . Search for Heavy Charged Scalars in $\Z^0$ Decays +295613 . A Measurement of Global Event Shape Distributions in the Hadronic Decays of the $\Z^0$ +295615 . Search for the $T$ and b$^\prime$ Quarks in Hadronic Decays of the Z$^0$ Boson +295617 . Search for Light Neutral Higgs Particles Produced in $\Z^0$ Decays +295622 . Search for Excited Leptons at {LEP} +296041 . Evidence for Final State Photons in Multi - Hadronic Decays of the $\Z^0$ +296185 . Heavy Flavor Production in $Z$ Decays +296294 . Search for Neutralino Production in Z Decays +296473 . Search for pair production of neutral Higgs bosons in Z0 decays +296525 . Search for a very light Higgs boson in Z decays +296526 . Limits on neutral heavy lepton production from Z0 decay +296997 . Search for scalar quarks in $Z^0$ decays +296998 . A Study of intermittency in hadronic Z0 decays +297139 . Analysis of Z0 couplings to charged leptons +297170 . Search for the neutral higgs boson in $Z^0$ decay +297171 . Mass limits for excited electrons and muons from Z0 decay +297172 . A Determination of electroweak parameters from Z0 ---> mu+ mu- (gamma) +297561 . A Study of angular correlations in 4-jet final states of hadronic Z0 decays +297562 . A Direct search for neutralino production at LEP +297564 . A Study of coherence of soft gluons in hadron jets +297697 . A Search for sleptons and gauginos in Z0 decays +297698 . A Comparison of jet production rates on the Z0 resonance to perturbative QCD +297895 . Searches for neutral Higgs bosons in e+ e- collisions at LEP +297910 . Searches for the standard Higgs boson +298078 . Determination of alpha-s from jet multiplicities measured on the Z0 resonance +298079 . A Precision measurement of the number of neutrino species +298080 . A Test of QCD based on four jet events from Z0 decays +298414 . Measurement of electroweak parameters from Z decays into Fermion pairs +298642 . The OPAL detector at LEP +298682 . Limits on a light Higgs boson in e+ e- collisions at LEP +298707 . A Measurement of energy correlations and a determination of alpha-s (M2 (Z0)) in e+ e- annihilations at s**(1/2) = 91-GeV +298839 . Search for excited neutrinos in Z decay +298840 . DELPHI results on the Z0 resonance parameters through its hadronic and leptonic decay modes +298841 . A Measurement of the partial width of the Z0 boson into b quark pairs +298843 . Test of QED in e+ e- ---> gamma gamma at LEP +298845 . Search for excited taus from Z0 decay +299248 . Search for the neutral Higgs bosons of the minimal supersymmetric standard model from Z0 decays +299250 . A Search for heavy charged and neutral leptons from Z0 decays +299253 . A Determination of electroweak parameters from Z0 decays into charged leptons +299393 . Search for pair produced stable singly charged heavy particles in Z0 decays +299521 . Charged multiplicity and rapidity distributions in Z0 hadronic decays +299781 . A Measurement of the $\Z^0$ Leptonic Partial Widths and the Vector and Axial Vector Coupling Constants. +299833 . A Study of the recombination scheme dependence of jet production rates and of alpha-s (m(Z0)) in hadronic Z0 decays +299835 . A Search for lepton flavor violation in Z0 decays +300161 . Energy-energy correlations in hadronic final states from Z0 decays +300162 . Measurement of the partial width of the decay of the Z0 into charm quark pairs +300179 . The DELPHI detector at LEP +300283 . Search for the minimal standard model Higgs boson in e+ e- collisions at LEP +300437 . Search for the charged Higgs boson in Z0 decay +300438 . Search for a low mass neutral Higgs boson in Z0 decay +300439 . Search for excited neutrinos from Z0 decays +301654 . Search for Higgs bosons using the Delphi detector +301656 . Search for nonstandard Z0 decays in two particle final states +301657 . Charged particle multiplicity distributions in Z0 hadronic decays +301659 . Experimental study of the triple gluon vertex +301661 . Measurement of the strong coupling constant alpha-s from global event shape variables of hadronic Z decays +301901 . A Measurement of the Z0 ---> b anti-b forward - backward asymmetry +301905 . A Measurement of B0 - anti-B0 mixing in Z0 decays +302586 . A Direct measurement of the Z0 invisible width by single photon counting +302587 . Measurement of the cross-sections of the reactions e+ e- ---> gamma gamma and e+ e- ---> gamma gamma gamma at LEP +302769 . Measurement of B - anti-B mixing at the Z +302770 . Measurement of the B hadron lifetime +302771 . Measurement of alpha-s from the structure of particle clusters produced in hadronic Z decays +302936 . Search for low mass Higgs bosons produced in Z0 decays +314056 . Searches for the standard Higgs boson produced in the reaction e+ e- ---> H0 Z* +314333 . A Model independent observation of the string effect using quark tagging at LEP +314407 . Measurement of the inclusive production of neutral pions and charged particles on the Z0 resonance +314410 . Measurements of Z0 ---> b anti-b decays and the semileptonic branching ratio Br (b ---> lepton X) +314418 . Measurement of electroweak parameters from hadronic and leptonic decays of the $Z^0$ +314476 . Measurement of charge asymmetry in hadronic Z decays +314601 . A Study of heavy flavor production using muons in hadronic Z0 decays +314619 . A Study of the reaction e+ e- ---> mu+ mu- around the Z0 pole +314631 . Intermittency in hadronic decays of the Z0 +314875 . Search for a new weakly interacting particle +315054 . Charged particle pair production associated with a lepton pair in Z decays: Indication of an excess in the tau channel +315060 . A Study of D*+- production in Z0 decays +315061 . A Search for scalar leptoquarks in Z0 decays +315269 . Measurement of the $Z^0$ line shape parameters and the electroweak couplings of charged leptons +315952 . Search for leptoquarks in Z0 decays +315953 . Search for narrow high mass resonances in radiative decays of the Z0 +315954 . A Test of QCD based on three jet events from Z0 decays +316148 . Measurement of the forward - backward asymmetry in Z ---> b anti-b and Z ---> c anti-c +316151 . A Study of K0(s) production in Z0 decays +316154 . A Measurement of the electroweak couplings of up and down type quarks using final state photons in hadronic z0 decays +316780 . Measurement of isolated photon production in hadronic Z decays +316781 . Measurement of the polarization of tau leptons produced in Z decays +316872 . A Direct observation of quark - gluon jet differences at LEP +317141 . Improved measurements of electroweak parameters from $Z$ decays into fermion pairs +317142 . Measurement of three jet distributions sensitive to the gluon spin in e+ e- annihilations at S**(1/2) = 91-GeV +317143 . Measurement of branching ratios and tau polarization from tau ---> e neutrino anti-neutrino , tau ---> mu neutrino anti-neutrino, and tau ---> pi (K) neutrino decays at LEP +317166 . Observation of J / psi production in multi - hadronic Z0 decays +317492 . Search for the neutral Higgs bosons of the MSSM and other two doublet models +317493 . Determination of $Z^0$ resonance parameters and couplings from its hadronic and leptonic decays +317507 . Search for excited charged leptons in Z0 decays +317508 . A Study of Bose-Einstein correlations in e+ e- annihilations at LEP +317781 . Decay mode independent search for a light Higgs boson and new scalars +317816 . Study of orientation of three jet events in Z0 hadronic decays using the DELPHI detector +317825 . The reaction e+ e- ---> gamma gamma (gamma) at Z0 energies +318142 . A Measurement of the lifetime of the tau lepton +318145 . An Investigation into intermittency +318149 . Production and decay of charmed mesons at the Z resonance +318230 . Decay properties of tau leptons measured at the Z0 resonance +318231 . Measurement of the lifetime of B hadrons and a determination of |V(cb)| +318981 . Measurement of the strong coupling constant alpha-s for bottom quarks at the Z0 resonance +318982 . Search for lepton flavor violation in Z0 decays +319519 . Searches for new particles in $Z$ decays using the ALEPH detector +319520 . Measurement of the charged particle multiplicity distribution in hadronic Z decays +319665 . Search for scalar leptoquarks from Z0 decays +319666 . A Search for neutral Higgs particles in Z0 decays +319667 . Measurement of the average lifetime of B hadrons +319668 . Measurement of the absolute luminosity with the ALEPH detector +319673 . Measurement of the tau lepton lifetime +319674 . A Measurement of photon radiation in lepton pair events from Z0 decays +321190 . A Study of charged particle multiplicities in hadronic decays of the Z0 +321191 . Measurement of the average B hadron lifetime in Z0 decays +321380 . A Study of Bose-Einstein correlations in e+ e- annihilation at 91-GeV +321409 . Study of final state photons in hadronic Z0 decay and limits on new phenomena +321656 . Measurement of B0 - anti-B0 mixing in hadronic Z0 decays +321657 . An Improved measurement of alpha-s (M (Z0)) using energy correlations with the OPAL detector at LEP +322027 . Properties of multi - hadronic events with a final state photon at s**(1/2) = M (Z0) +322198 . Measurement of tau branching ratios +322262 . Searches for heavy neutrinos from Z decays +322324 . Multiplicity dependence of mean transverse momentum in e+ e- annihilations at LEP energies +322380 . Search for free gluons in hadronic Z0 decays +322497 . A Measurement of sin**2 theta(W) from the charge asymmetry of hadronic events at the Z0 peak +322498 . A Measurement of the b anti-b forward backward asymmetry using the semileptonic decay into muons +322503 . Production of strange particles in the hadronic decays of the Z0 +322548 . Evidence for b baryons in Z decays +324035 . Charged particle multiplicity distributions in restricted rapidity intervals in Z0 hadronic decays. +324176 . A Direct determination of the number of light neutrino families from e+ e- ---> neutrino anti-neutrino gamma at LEP +324427 . Determination of alpha-s from energy-energy correlations measured on the Z0 resonance. +324428 . Search for the neutral Higgs boson. +332616 . Measurement of the tau lepton lifetime +332687 . Measurement of the Z0 branching fraction to b quark pairs using the boosted sphericity product +332851 . Test of CP invariance in e+ e- ---> Z0 ---> tau+ tau- and a limit on the weak dipole moment of the tau lepton +333079 . A Global determination of $\alpha^- s$ (M(z0) ) at LEP +333127 . Evidence for the triple gluon vertex from measurements of the QCD color factors in Z decay into four jets +333272 . Determination of alpha(s) in second order QCD from hadronic Z decays +333300 . Evidence for b flavored baryon production in Z0 decays at LEP +333330 . A measurement of electron production in hadronic Z0 decays and a determination of GAMMA (Z0 --> b anti-b) +333334 . Measurement of alpha-s in hadronic Z decays using all orders resummed predictions +334186 . A Test of higher order electroweak theory in Z0 decays to two leptons with an associated pair of charged particles +334322 . Search for a very light CP odd neutral Higgs boson of the MSSM +334323 . Measurement of B - anti-B mixing at the Z using a jet charge method +334468 . First QCD results from SLD +334473 . Measurement of the tau topological branching ratios at LEP +334575 . Measurement of the production rates of eta and eta-prime in hadronic Z decays +334577 . Properties of hadronic Z decays and test of QCD generators +334947 . A Study of the decays of tau leptons produced on the Z resonance at LEP +334948 . Charged particle multiplicity distributions for fixed number of jets in Z0 hadronic decays +334951 . Determination of alpha-s from hadronic event shapes measured on the Z0 resonance +334952 . Search for the neutral Higgs boson at LEP +334954 . Studies of hadronic event structure and comparisons with QCD models at the Z0 resonance +335147 . A Study of two particle momentum correlations in hadronic Z0 decays +335149 . Measurement of the partial width of the Z0 into b anti-b final states using their semileptonic decays +335153 . Bose-Einstein correlations in the hadronic decays of the Z0 +336178 . An Improved measurement of $B^0$ - $\bar{B}^0$ mixing in $Z^0$ decays +336180 . Measurement of inclusive eta production in hadronic decays of the Z0 +336183 . Observation of the semileptonic decays of B(s) and LAMBDA(b) hadrons at LEP +336768 . Evidence for $B_s^0$ meson production in $Z^0$ decays +336771 . A Measurement of strange baryon production in hadronic Z0 decays +336772 . Inclusive neutral vector meson production in hadronic Z0 decays +336774 . A Measurement of the forward - backward charge asymmetry in hadronic decays of the Z0 +336900 . A Test of quantum electrodynamics in the reaction e+ e- ---> gamma gamma (gamma) +336901 . Inclusive J production in Z0 decays +338067 . Updated measurement of the average B hadron lifetime +338069 . Multiplicity fluctuations in hadronic final states from the decay of the Z0 +339089 . Measurement of the e+ e- --> b anti-b and e+ e- --> c anti-c forward backward asymmetries at the Z0 resonance +339090 . Determination of the number of light neutrino species +339091 . Isolated hard photon emission in hadronic Z0 decays +339092 . A Measurement of tau polarization in Z0 decays +339093 . A Search for doubly charged Higgs production in Z0 decays +339094 . Evidence for the existence of the strange $b$ flavored meson $B_s^0$ in $Z^0$ decays +339967 . A Measurement of the b baryon lifetime +340583 . Measurements of mean lifetime and branching fractions of b hadrons decaying to J / psi +340855 ! QCD studies of hadronic decays of Z$^0$ bosons by SLD +340878 . Searches for nonminimal Higgs bosons in Z0 decays +340879 . Search for isosinglet neutral heavy leptons in Z0 decays +340880 . High mass photon pairs in lepton+ lepton- gamma gamma events at LEP +341237 . A Study of K0(s) K0(s) Bose-Einstein correlations in hadronic Z0 decays +341556 . Measurement of prompt photon production in hadronic Z decays +341557 . Search for CP violation in Z ---> tau tau +341560 . A Measurement of B meson production and lifetime using D lepton- events in Z0 decays +341561 . Classification of the hadronic decays of the Z0 into b and c quark pairs using a neural network +341573 . Search for nonminimal Higgs bosons in Z0 decays +341723 . Measurement of the b ---> tau- anti-tau-neutrino X branching ratio +341725 . A Precise measurement of the tau lepton lifetime +342764 . Measurements of spin sensitive quantities in hadronic decays of Z0 bosons produced in e+ e- annihilations +342766 . A Measurement of K*+- (892) production in hadronic Z0 decays +342768 . A Study of the electric charge distributions of quark and gluon jets in hadronic Z0 decays +342800 . Measurement of inclusive production of light meson resonances in hadronic decays of the Z0 +342801 . A Search for lepton flavor violation in Z0 decays +343018 . First results from SLD with polarized electron beam at SLC +343082 . QCD coherence studies using two particle azimuthal correlations +343083 . A Study of $B^0$ - $\bar{B}^0$ mixing using semileptonic decays of $B$ hadrons produced from $Z^0$ +343181 . Studies of strong and electroweak interactions using final state photon emission in hadronic Z0 decays +343700 . Search for particles with unexpected mass and charge in Z decays +344328 . Search for anomalous production of single photon events in e+ e- annihilations at the Z resonance +344329 . Determination of quark electroweak couplings from direct photon production in hadronic Z decays +344556 ? A Preliminary measurement of R(b) = Gamma (Z0 ---> b anti-b) / Gamma (Z0 ---> hadrons) at SLD +352667 . First measurement of the left-right cross-section asymmetry in Z boson production by e+ e- collisions +352696 . Precision measurements of the neutral current from hadron and lepton production at LEP +352789 . A Study of differences between quark and gluon jets using vertex tagging of quark jets +353460 . Evidence for chain - like production of strange baryon pairs in jets +353461 . Measurement of the B0 and B+ lifetimes +353690 . Measurement of the strong coupling constant using tau decays +353999 . A Measurement of the tau lifetime +354000 . Measurement of the tau lifetime +354144 . Measurement of the anti-B0 and B- meson lifetimes +354146 . Measurement of the tau polarization at the Z resonance +354187 . Measurement of gamma (Z0 ---> b anti-b) / gamma (z0 ---> hadrons) using leptons +354188 . A Determination of alpha-s (M (Z0)) at LEP using resummed QCD calculations +354295 . Results from the L3 experiment at LEP +354296 . A Search for the neutral Higgs boson at LEP +354297 . Search for contact interactions in the reactions $e^{+} e^{-} \to \ell^+ \ell^-$ and $e^{+} e^{-} \to \gamma \gamma$ +354298 . Update of electroweak parameters from $Z$ decays +354482 . Measurement of the triple gluon vertex from four - jet events at LEP +354483 . Measurement of lambda(b) production and lifetime in Z0 hadronic decays +354909 . Determination of alpha-s using the next-to-leading log approximation of QCD +355488 . Search for narrow vector resonances in the $Z$ mass range +355489 . Search for a $Z^\prime$ at the $Z$ resonance +355490 . Measurement of Gamma (b anti-b) / Gamma (had) from hadronic decays of the Z +355926 . Search for anomalous production of high mass photon pairs in e+ e- collisions at LEP +355935 . Determination of alpha-s for b quarks at the Z0 resonance +355937 . Determination of alpha-s from the scaling violation in the fragmentation functions in e+ e- annihilation +356097 . The Forward - backward asymmetry of e+ e- ---> b anti-b and e+ e- ---> c anti-c using leptons in hadronic Z0 decays +356098 . A Measurement of Gamma (Z0 ---> b anti-b) / Gamma (Z0 ---> hadrons) using an impact parameter technique +356099 . Search for massive, unstable photinos that violate R-parity +356100 . Measurement of the average b hadron lifetime in Z0 decays +356288 . First measurement of the left-right asymmetry in Z boson production +356293 . Studies of QCD B physics and jet handedness at SLD +356730 . Search for high mass photon pairs in e+ e- ---> f anti-f gamma gamma (f = e, mu, tau, neutrino, q) at LEP +356731 . An Experimental study of gamma gamma ---> hadrons at LEP +356732 . A Measurement of D meson production in Z0 hadronic decays +356733 . A Measurement of the mean lifetimes of charged and neutral B hadrons +356734 . Search for Z0 decays to two leptons and a charged particle - anti-particle pair +356912 . A Measurement of alpha-s from jet rates at the Z0 resonance +357406 . SLD results from the study of polarized Z0 produced at the SLC +357422 . Search for the Standard Model Higgs boson +357423 . Search for a nonminimal Higgs boson produced in the reaction $e^{+} e^{-} \to$ h $Z^{*}$ +357424 . Measurement of the b hadron lifetime with the dipole method +357742 . Measurement of the B(s)0 lifetime +357748 . Measurement of the $B^0$ - $\bar{B}^0$ mixing, Gamma (Z0 $\to b \bar{b}$) / Gamma (Z0 $\to$ hadrons) and semileptonic branching ratios for $b$ flavored hadrons in hadronic z0 decays +357751 . Observation of the time dependence of B(d)0 - anti-B(d)0 mixing +357822 . First measurement of the B(S) meson mass +357910 . Improved measurements of the neutral current from hadron and lepton production at LEP +357912 . A test of the flavor independence of the strong interaction for five flavors +357937 . A Precise measurement of Gamma ($Z \to b \bar{b}$) / Gamma ($Z \to$ hadrons) +357938 . Measurement of the ratio Gamma (b anti-b) / Gamma (hadron) using event shape variables +357941 . A Direct measurement of the invisible width of the Z from single photon counting +358413 . A Measurement of the average lifetime of b flavored baryons +358414 . A Study of muon pair production and evidence for tau pair production in photon-photon collisions at LEP +358416 . A Measurement of the forward - backward asymmetry of e+ e- ---> c anti-c and e+ e- ---> b anti-b at center-of-mass energies on and near the Z0 peak using D*+- mesons +358527 . Determination of the effective electroweak mixing angle from Z decay +358528 . Inclusive search for the charmless radiative decay of the b quark (b ---> s gamma) +358862 . Measurement of Gamma (Z0 ---> b anti-b) / Gamma (Z0 ---> hadrons) using impact parameters and leptons +358863 . Measurement of the photon structure function F2 (gamma) in the reaction e+ e- ---> e+ e- + hadrons at LEP +358910 . A Measurement of R(b) = Gamma (Z0 ---> b anti-b) / Gamma (Z0 ---> hadrons) at SLD +359401 . Studies of charged particle multiplicity in b quark events +359459 . Limits on the production of scalar leptoquarks from Z0 decays at LEP +359493 . A Study of jet handedness at the Z0 resonance +360333 . Measurement of the charged multiplicity of Z0 ---> b anti-b events +360334 . An S matrix analysis of the Z resonance +360335 . Search for lepton flavor violation in Z decays +360336 . Measurement of the average lifetime of b hadrons +360337 . Chi(c) production in hadronic Z decays +360342 . Multiplicity and transverse momentum correlations in multi - hadronic final states in e+ e- interactions at S**(1/2) = 91.2-GeV +360637 . Production rate and decay lifetime measurements of B(s)0 mesons at LEP using D(s) and phi mesons +360638 . Production of Lambda and Lambda anti-Lambda correlations in the hadronic decays of the Z0 +360639 . Correlation measurements in Z ---> tau+ tau- and the tau-neutrino helicity +363186 . Measurement of eta(c) production in untagged two photon collisions at LEP +363188 . A Study of four fermion processes at LEP +363280 . Production of charmed mesons in Z decays +363342 . Measurement of the $B_s^0$ lifetime +363343 . An Investigation of $B_d^0$ and $B_s^0$ oscillation +363727 . Measurement of the B0 - anti-B0 mixing using the average electric charge of hadron jets in Z0 decays +372141 . Invariant mass dependence of particle correlations in hadronic final states from the decay of the Z0 +372142 . Interference of neutral kaons in the hadronic decays of the Z0 +372143 . Study of hard scattering processes in multi - hadron production from gamma gamma collisions at LEP +372144 . Measurements of the line shape of the $Z^0$ and determination of electroweak parameters from its hadronic and leptonic decays +372770 . Measurement of the tau- ---> h- pi0 tau-neutrino and tau- ---> h- >= 2 pi0 tau-neutrino branching ratios +372771 . Measurement of the time dependence of B(d)0 <---> anti-B(d)0 mixing using a jet charge technique +372772 . Measurement of the production rates of charged hadrons in e+ e- annihilation at the Z0 +372997 . A Study of mean subjet multiplicities in two and three jet hadronic Z0 decays +372999 . Search for the minimal Standard Model Higgs boson +373000 . QCD studies using a cone based jet finding algorithm for $e^{+} e^{-}$ collisions at LEP +373005 . Measurement of alpha-s from energy-energy correlations at the Z0 resonance +373007 . Precise measurement of the left-right cross-section asymmetry in Z boson production by e+ e- collisions +373112 . A Measurement of the $B_s^0$ meson mass +373113 . A Precision measurement of the average lifetime of B hadrons +373114 . Improved measurements of cross-sections and asymmetries at the Z0 resonance +373116 . Measurement of the e+ e- ---> gamma gamma (gamma) cross-section at LEP energies +373119 . Heavy flavor production and decay with prompt leptons in the ALEPH detector +373120 . Heavy quark tagging with leptons in the ALEPH detector +373121 . $Z$ production cross-sections and lepton pair forward - backward asymmetries +373403 . Precise determination of the weak mixing angle from a measurement of A(LR) in e+ e- ---> Z0 +373660 . Measuring A(b) with polarized beams at SLC +373751 . One prong tau decays into charged kaons +373752 . K0 production in one prong tau decays +374451 . Search for the standard model Higgs boson in Z0 decays +374452 . Measurement of the $B^0$ - $\bar{B}^0$ mixing parameter in DELPHI +374696 . Measurement of cross-sections and leptonic forward - backward asymmetries at the z pole and determination of electroweak parameters +374698 . Measurement of inclusive production of neutral hadrons from Z decays +374700 . Measurement of the inclusive B ---> tau-neutrino X branching ratio +375060 . Production of K0 and Lambda in hadronic Z decays +375061 . A Measurement of A(b)(FB) in lifetime tagged heavy flavor Z decays +375479 . Observation of mono - jet events and tentative interpretation +375574 . Observation of exclusive decays of $B$ mesons at LEP +375575 . Search for a scalar top quark using the OPAL detector +375579 . Measurement of the time dependence of B(d)0 <---> anti-B(d)0 mixing using leptons and D*+- mesons +375599 . Measurement of Gamma (Z0 ---> b anti-b) / Gamma (Z0 ---> hadrons) using a double tagging method +375600 . Determination of an upper limit for the mass of the tau-neutrino at LEP +375601 . Measurements of the inclusive branching ratios of tau leptons to K0(s) and charged K* (892) +375621 . Search for Neutral Higgs Bosons in the Minimal Supersymmetric Extension of the Standard Model +375622 . Measurement of single photon production in e+ e- collisions near the Z0 resonance +375789 . Search for pair produced heavy scalars in Z0 decays +375790 . Charged kaon production in tau decays at LEP +375961 . Search for rare hadronic B decays +375963 . A Study of radiative muon pair events at $Z^0$ energies and limits on an additional $Z^\prime$ gauge boson +375965 . J / psi production in the hadronic decays of the Z +376541 . Measurement of the tau lepton polarization and its forward - backward asymmetry from Z0 decays +376916 . Polarized Bhabha scattering a precision measurement of the electron neutral current couplings +377105 . A Search for jet handedness in hadronic Z0 decays +377106 . Measurement of the B0 - anti-B0 mixing parameter and the Z ---> b anti-b forward - backward asymmetry +377273 . Updated measurement of the tau lifetime +377274 . A Measurement of the QCD color factor ratios C(A) / C(F) and T(F) / C(F) from angular correlations in four jet events +377388 . Measurement of alpha-s from hadronic event observables at the Z0 resonance +377392 . Measurement of the b ---> tau- anti-tau-neutrino X inclusive / exclusive branching ratios +377487 . Production characteristics of K0 and light meson resonances in hadronic decays of the Z0 +377489 . Measurement of the Gamma (b anti-b) / Gamma (hadron) branching ratio of the Z by double hemisphere tagging +377490 . Measurement of time dependent B(d)0 - anti-B(d)0 mixing +378295 X The L3 silicon microvertex detector +378339 ? A Preliminary, precise measurement of the average B hadron lifetime +378340 . Measurement of the average lifetime of B hadrons at SLD +378342 . Measurement of A(b) and A(c) from the left-right forward - backward asymmetry of leptons in hadronic events at the Z0 resonance +378343 . A Search for jet handedness in hadronic Z0 decays +378344 . Measurement of A(b) from the left-right forward - backward asymmetry of b quark production in Z0 decays using a momentum weighted track charge technique +378545 . Measurement of alpha-s (M(Z)**2) from hadronic event observables at the Z0 resonance +379212 . Determination of event shape distributions and alpha-s(b) from Z0 ---> b anti-b events at LEP +379691 ? A Preliminary measurement of the average B hadron lifetime +379692 . Electroweak coupling measurements from polarized Bhabha scattering at SLD +379694 . Precision standard model tests with polarized $e^+ e^-$ beams +379696 ? Heavy quark physics at SLD (preliminary results) +380423 . Measurement of the b ---> tau- anti-tau-neutrino X branching ratio and an upper limit on B- ---> tau- anti-tau-neutrino +380424 . Study of the four fermion final state at the Z resonance +380425 . A Study of K(s), Lambda and anti-Lambda production in hadronic Z0 decays +381044 . A Measurement of tau polarization at LEP +381046 . B* production in Z decays at LEP +381075 . Energy and particle flow in three jet and radiative two jet events from hadronic Z decays +381167 . A Test of CP invariance in Z0 ---> tau+ tau- using optimal observables +381617 . Performance of the ALEPH detector at LEP +381645 . Search for CP violation in the decay Z ---> tau+ tau- +381665 . A Study of D*+ pi- production in semileptonic B decay +381998 . A Measurement of the left-right, forward - backward asymmetry for charm quarks using D*+ and D+ mesons +382002 . A Test of the flavor independence of strong interactions +382035 . Measurement of the forward - backward asymmetry of e+ e- ---> Z ---> b anti-b using prompt leptons and a lifetime tag +382036 . First evidence of hard scattering processes in single tagged gamma gamma collisions +382038 . Measurement of exclusive branching fractions of hadronic one space prong tau decays +382058 . Study of the subjet structure of quark and gluon jets +382179 . Inclusive pi+-, K+- and (p, anti-p) differential cross-sections at the Z resonance +382181 . Measurement of the forward - backward asymmetry of charm and bottom quarks at the Z pole using D*+- mesons +382185 . Observations of pi - B charge - flavor correlations and resonant B pi and B K production +382187 . Search for anomalous Z --> gamma gamma gamma events at LEP +382207 . Michel parameters and tau-neutrino helicity from decay correlations in Z --> tau+ tau- +382208 . Observation of orbitally excited B mesons +382219 . A Measurement of the production of D*+- mesons on the Z0 resonance +382284 . Search for heavy neutral Higgs bosons in two doublet models +382285 . First measurement of the strange quark asymmetry at the Z0 peak +382382 . Measurement of energetic single photon production at LEP +392257 . Production of charged particles, K0(s), K+-, p and Lambda in Z --> b anti-b events and in the decay of b hadrons +392480 . A Study of charm meson production in semileptonic B decays +392529 . Measurement of the weak charged current structure in semileptonic b hadron decays at the Z peak +392530 . Measurement of Gamma ($b \bar{b}$) / Gamma (hadrons) using impact parameter measurements and lepton identification +392538 . Measurement of the leptonic branching ratios of the tau lepton +392864 . A Study of $B$ meson oscillations using dilepton events +392865 . An Upper limit for the tau-neutrino mass from tau --> 5 pi (pi0) tau-neutrino decays +392889 . Comparisons of the properties of final state photons in hadronic Z0 decays with predictions from matrix element calculations +392892 . Search for neutralinos in $Z$ decays +392978 . Search for supersymmetric particles with R-parity violation in $Z$ decays +393292 . Improved measurements of the $B^0$ and $B^{+}$ meson lifetimes +393293 . An Improved measurement of the $B_s^0$ lifetime +393413 . Improved tau polarization measurement +393414 . Measurement of the hadronic decay current in tau- --> pi- pi- pi+ tau-neutrino +393416 . Test of the flavor independence of alpha-s +393503 . The Production of neutral kaons in Z0 decays and their Bose-Einstein correlations +393504 . Search for heavy charged particles and for particles with anomalous charge in $e^{+} e^{-}$ collisions at LEP +393792 . Production of strange B baryons decaying into Xi-+ - lepton-+ pairs at LEP +393793 . Measurements of the tau polarization in Z0 decays +393953 . A Measurement of charged particle multiplicity in Z0 --> c anti-c and Z0 --> b anti-b events +393954 . Inclusive strange vector and tensor meson production in hadronic Z0 decays +394052 . Inclusive measurements of the K+- and p / anti-p production in hadronic Z0 decays +394354 . Tests of QED at LEP energies using e+ e- --> gamma gamma (gamma) and e+ e- --> lepton+ lepton- gamma gamma +394355 . A Search for lepton flavor violating Z0 decays +394716 . Strange baryon production in Z hadronic decays +394752 . Measurement of the D*+- cross-section in two photon collisions at LEP +394753 . The Forward - backward asymmetry for charm quarks at the Z pole +394959 . A Measurement of the forward - backward asymmetry of e+ e- --> b anti-b by applying a jet charge algorithm to lifetime tagged events +394960 . A Measurement of the Lambda(b)0 lifetime +394961 . Evidence for gluon interference in hadronic Z decays +394980 . Measurements of R(b) with impact parameters and displaced vertices +395025 . One prong tau decays with neutral kaons +395026 . B* production in Z decays +395029 . Lifetimes of charged and neutral B hadrons using event topology +395030 . A Measurement of $B^{+}$ and $B^0$ lifetimes using $\bar{D} \ell^+$ events +395032 . Lifetime and production rate of beauty baryons from Z decays +395371 . A Study of QCD structure constants and a measurement of alpha-s (M(Z0)) at LEP using event shape observables +395372 . Measurement of the tau- ---> h- h+ h- tau-neutrino and tau- ---> h- h+ h- >= 1 pi0 tau-neutrino branching ratios +395450 . Measurement of the longitudinal, transverse and asymmetry fragmentation functions at LEP +395451 . Measurement of the multiplicity of charm quark pairs from gluons in hadronic Z0 decays +395842 . Observation of short range three particle correlations in e+ e- annihilations at LEP energies +395955 . Measurement of the tau lifetime at SLD +396179 . A Model independent measurement of quark and gluon jet properties and differences +396397 . Investigation of the string effect using final state photons +396398 . Measurements of the $b$ baryon lifetime +396884 . A Measurement of the photon structure function F2(gamma) at an average Q**2 of 12-GeV**2/c**4 +396889 . Measurements of the charged particle multiplicity distribution in restricted rapidity intervals +396895 . Limit on B(s)0 oscillation using a jet charge method +397145 . Search for exclusive charmless B meson decays with the DELPHI detector at LEP +397391 . Study of prompt photon production in hadronic Z0 decays +397395 . Measurement of the average $b$ baryon lifetime and the product branching ratio f ($b \to Lambda_b$ ) x BR (Lambda($b$) $\to \Lambda \ell^-$ anti-neutrino $X^{)}$ +398189 . Measurement of alpha-s from hadronic event observables at the Z0 resonance +398190 . The Production of pi+-, K+-, p, K0 and Lambda0 in hadronic Z0 decays +398193 . First measurement of the quark to photon fragmentation function +398194 . Measurement of D(s)+ meson production in Z decays and of the anti-B(s)0 lifetime +398195 . Measurement of alpha-s from scaling violations in fragmentation functions in e+ e- annihilation +398301 . Measurement of the polarized forward - backward asymmetry of Z0 ---> b anti-b using a lifetime tag and momentum weighted track charge +398317 . Inclusive production of neutral vector mesons in hadronic Z decays +398319 . Measurement of the effective b quark fragmentation function at the Z resonance +398320 . Delta++ production in hadronic Z0 decays +398321 . A Measurement of the tau leptonic branching fractions +398322 . Upper limits on the branching ratios tau --> mu gamma and tau --> e gamma +398339 . A Measurement of the |V(cb)| from anti-B(0) --> D*+- lepton- anti-lepton-neutrino +398426 . Production of excited beauty states in Z decays +398498 . Study of the K(s)0 K(s)0 final state in two photon collisions +399737 . Measurement of Delta++ (1232) production in hadronic Z decays +399990 . A Comparison of $b$ and ($u d s^{)}$ quark jets to gluon jets +400001 . Search for neutral charmless B decays at LEP +400574 . Search for the decays B(d)0 --> gamma gamma and B(s)0 --> gamma gamma +400812 . A Study of b quark fragmentation into B0 and B+ mesons at LEP +400822 . Measurement of the $B_s$ 0 lifetime and production rate with $D_s - \ell^+$ combinations in $Z$ decays +400823 . Measurement of the tau lepton lifetime +400920 . First measurement of the t odd correlation between the Z0 spin and the three jet plane orientation in polarized Z0 decays to three jets +401100 . Measurement of inclusive pi0 production in hadronic Z0 decays +401102 . Tau leptonic branching ratios +401106 . Measurement of the average $B$ hadron lifetime in $Z^0$ decays using reconstructed vertices +401554 . A Precise measurement of the average $b$ hadron lifetime +401598 . Production of charm and beauty in e+ e- with polarized electron beam +401601 . Measurement of the tau- ---> e- anti-electron-neutrino tau-neutrino branching ratio +401603 . Tau hadronic branching ratios +401612 . Search for promptly produced heavy quarkonium states in hadronic Z decays +402178 . A Precise measurement of the tau lepton lifetime +402487 . $J/\psi$ and $\psi^\prime$ production in hadronic $Z^0$ decays +402488 . Test of the exponential decay law at short decay times using $\tau$ leptons +402895 . Measurement of Lambda(b) polarization in Z decays +403254 . Energy dependence of the differences between the quark and gluon jet fragmentation +404106 . Measurement of the heavy quark forward - backward asymmetries and average $B$ mixing using leptons in multi - hadronic events +404166 ? Preliminary measurements of B0 and B+ lifetimes at SLD +404272 . Measurement of the left-right forward - backward asymmetry for charm quarks with D*+ and D+ mesons +404562 . Quark and gluon jet properties in symmetric three jet events +404602 . Measurement of eta production in two and three jet events from hadronic Z decays at LEP +404603 . Search for excited leptons in e+ e annihilation at s**(1/2) = 130-GeV - 140-GeV +404604 . Measurement of hadron and lepton pair production at 130-GeV < $\sqrt{s}$ < 140-GeV at LEP +404605 . Search for a narrow resonance in Z0 decays into hadrons and isolated photons +404811 . Performance of the DELPHI detector +404814 . Search for charged Higgs bosons using the OPAL detector at LEP +404815 . Observation of Upsilon production in hadronic Z0 decays +404916 . Study of the structure of hadronic events and determination of alpha-s at s**(1/2) = 130-GeV and 136-GeV +405739 . First study of rapidity gaps in e+ e- annihilation +406555 . Production of pi+-, K+-, p, K0 and Lambda0 in hadronic Z0 decays +406556 . An Improved limit on jet handedness in Z0 decays +406557 . A Study of the orientation and energy partition of three jet events in hadronic Z0 decays +406558 . First measurement of the triple product correlation in polarized Z0 decays to three jets +406559 . Measurement of the charged multiplicities of b, c and light quark events from Z0 decays +406560 . A Study of rapidity gaps in e+ e- ---> Z0 events +406561 . Factorial and cumulant moments in e+ e- ---> hadrons at the Z0 resonance +415576 . Factorial and cumulant moments in e+ e- ---> hadrons at the Z0 resonance +415744 . Charged particle multiplicity in e+ e-interactions at s**(1/2) = 130-GeV +415745 . Measurement of Lambda polarization from Z decays +415746 . Search for new phenomena using single photon events in the DELPHI detector at LEP +415900 . Measurement of the B(d)0 oscillation frequency using kaons, leptons and jet charge +416097 . Updated precision measurement of the average lifetime of B hadrons +416098 . Production of SIGMA0 and OMEGA- in Z decays +416099 . Determination of |V(cb)| from the semileptonic decay B0 --> D*- lepton - neutrino +416100 . Improved measurement of the $\bar{B}^0$ and $B^{-}$ meson lifetimes +416101 . Search for supersymmetric particles in e+ e- collisions of center-of-mass energies of 130-GeV and 136-GeV +416137 . Determination of sin**2 theta(w)(eff) using jet charge measurements in hadronic Z decays +416141 . Search for exclusive decays of the LAMBDA(b) baryon and measurement of its mass +416142 . Measurement of the partial decay width R(b) sup(0) = GAMMA (b anti-b) / GAMMA(had) of the Z with the DELPHI detector at LEP +416351 . Improved measurement of the lifetime of the tau lepton +416353 . Topological search for the production of neutralinos and scalar particles +416354 . Search for chargino and neutralino production using the OPAL detector at s**(1/2) = 130-GEV - 136-GeV at LEP +416357 . Determination of the average lifetime of b baryons +416741 . First measurement of f2-prime (1525) production in Z0 hadronic decays +416744 . Measurement of muon pair production at 50-GeV < s**(1/2) < 86-GeV at LEP +416745 . Measurement of cross-sections and asymmetries in e+ e- collisions at 130-GeV - 140-GeV center-of-mass energy +417261 . Study of the B(s)0 anti-B(s)0 oscillation frequency using D(s)- lepton+ combinations in Z decays +417265 . Mean lifetime of the B(s)0 meson +417266 . Measurement of the mass of the Lambda(b) baryon +418003 . Search for supersymmetric particles at 130-GeV < $\sqrt{s}$ < 140-GeV at LEP +418006 . Upper limit on the tau-neutrino mass from tau --> 3 h tau-neutrino decays +418007 . QCD studies with e+ e- annihilation data at 130-GeV and 136-GeV +418010 . A Study of four fermion final states with high multiplicity at LEP +418011 . Measurements with photonic events in e+ e- collisions at center-of-mass energies of 130-GeV - 140-GeV +418087 . Search for unstable sequential neutral and charged heavy leptons in e+ e- annihilation at s**(1/2) = 130-GeV and 136-GeV +418329 . First study of the interference between initial and final state radiation at the Z resonance +418417 . Measurement of the Michel parameters and the average tau-neutrino helicity from tau decays in e+ e- ---> tau+ tau- +418418 . Kaon interference in the hadronic decays of the Z0 +418420 . A Study of single and multi - photon production in e+ e- collisions at center-of-mass energies of 130-GeV and 136-GeV +418421 . Four jet final state production in e+ e- collisions at center-of-mass energies of 130-GeV and 136-GeV +418663 . Search for new particles in hadronic events with isolated photons +418664 . Observation of multiple hard photon final states at s**(1/2) = 130-GeV - 140-GeV at LEP +418665 . Measurement of the branching ratios b --> e neutrino X, mu neutrino X, tau-neutrino X and neutrino X +418670 . A Study of charm hadron production in Z0 ---> c anti-c and Z0 ---> b anti-b decays at LEP +418937 . Search for anomalous production of single photons at $\sqrt{s}$ = 130-GeV and 136-GeV +418939 . Study of radiative leptonic events with hard photons and search for excited charged leptons at S**(1/2) = 130-GeV - 136-GeV +419256 . Tau Lorentz structure with polarization at SLD +419905 . Measurement of the b forward - backward asymmetry and mixing using high p(T) leptons +419908 . Prompt J / psi production in hadronic Z0 decays +419909 . A First measurement of the Lambda anti-Lambda and Lambda Lambda (anti-Lambda anti-Lambda) spin compositions in hadronic Z0 decays +419911 . Search for the lightest chargino at s**(1/2) = 130-GeV and 136-GeV in DELPHI +419912 . Search for high mass gamma gamma resonances in e+ e ---> lepton+ lepton- gamma gamma, neutrino anti-neutrino gamma gamma and q anti-q gamma gamma at LEP-1 +420342 . Mass limit for the standard model Higgs boson with the full LEP-1 ALEPH data sample +420343 . Measurement of the B(d)0 meson oscillation frequency +420345 . A Measurement of the $B_d^0$ oscillation frequency using leptons and $D^{*+-}$ mesons +420348 . Search for CP violation in the decay Z --> b anti-b g +420527 . Strange b baryon production and lifetime in Z decays +420528 . Measurement of inclusive K*0 (892), Phi (1020) and K(2)*0 (1430) production in hadronic Z decays +420645 . Mass limit for the lightest neutralino +420673 . Search for heavy lepton pair production in e+ e- collisions at center-of-mass energies of 130-GeV and 136-GeV +421009 . A Study of the orientation and energy partition of three jet events in hadronic Z0 decays +421545 . Study of rare b decays with the DELPHI detector at LEP +421546 . Studies of QCD in e+ e- ---> hadrons at E(cm) = 130-GeV and 136-GeV +421548 . Transverse momentum correlations in hadronic Z decays +421549 . Search for excited leptons at 130-GeV - 140-GeV +421550 . Four fermion production in e+ e- collisions at center-of-mass energies of 130-GeV and 136-GeV +421552 . Measurement of hadron and lepton pair production from $e^{+} e^{-}$ annihilation at center-of-mass energies of 130-GeV and 136-GeV +421560 . Search for charginos and neutralinos with R-parity violation at s**(1/2) = 130-GeV and 136-GeV +421561 . Production of orbitally excited charm mesons in semileptonic B decays +421562 . Search for neutral Higgs boson production through the process e+ e- --> Z* H0 +421815 . A Precise measurement of the tau polarization and its forward - backward asymmetry at LEP +421816 . Multiplicity dependence of Bose-Einstein correlations in hadronic Z0 decays +421817 . Search for unstable neutral and charged heavy leptons in e+ e- collisions at s**(1/2) = 130-GeV and 136-GeV +421818 . Search for excited leptons in e+ e- collisions at s**(1/2) = 130-GeV and 136-GeV +421976 . Searches for supersymmetric particles and anomalous four jet production at $\sqrt{s}$ = 130-GeV and 136-GeV at LEP +421977 . Sigma+, Sigma0 and Sigma- hyperon production in hadronic Z0 decays +421978 . Strange baryon production in hadronic Z0 decays +421984 . A Study of tau decays involving eta and omega mesons +421985 . Improved measurement of the B(d)0 - anti-B(d)0 oscillation frequency +421994 . Search for neutralinos, scalar leptons and scalar quarks in e+ e- interactions at s**(1/2) = 130-GeV and 136-GeV. +421995 . A Measurement of the charm and bottom forward - backward asymmetries using D mesons at LEP +421997 . Test of the four fermion contact interaction in e+ e- collisions at 130-GeV - 140-GeV +422168 ? Preliminary measurement of the charged multiplicities in b, c and light quark events from Z0 decays +422169 ? Preliminary measurement of leading particle effects in hadronic Z0 decays +422170 ? A Preliminary measurement of the b quark fragmentation function in hadronic Z0 decays +422171 ? Preliminary measurements of production of pi+-, K+-, p, K0 and Lambda0 in hadronic Z0 decays +422172 . Measurement of the charged multiplicities in b, c and light quark events from Z0 decays +422652 . Measurement of A(b) and A(c) at the Z0 resonance using a lepton tag +423034 . Observation of charmless hadronic b decays +423486 . Test of QCD analytic predictions for the multiplicity ratio between gluon and quark jets +423574 . Measurement of the branching fraction of the radiative decay tau- ---> mu- anti-muon-neutrino tau-neutrino gamma +423696 . Charm counting in b decays +423697 . Search for neutral Higgs bosons in $Z^0$ decays using the OPAL detector at LEP +423941 . First measurement of the left-right charge asymmetry in hadronic Z boson decays and a new determination of sin**2 theta(W)(eff) +424070 . Measurement of the lifetime of the tau lepton +424112 . Tuning and test of fragmentation models based on identified particles and precision event shape data +424628 . Search for lepton flavor number violating Z0 decays +424629 . Measurement of event shape and inclusive distributions at S**(1/2) = 130-GeV and 136-GeV +424630 . An Upper limit for Br (Z0 ---> g g g) from symmetric three jet Z0 hadronic decays +424635 . Inclusive jet production in photon-photon collisions at $\sqrt{s}$ = 130-GeV and 136-GeV +424636 . Search for chargino and neutralino production in $e^{+} e^{-}$ collisions at $\sqrt{s}$ = 161-GeV +424637 . Search for scalar top and scalar bottom quarks using the OPAL detector at LEP +425065 . A Measurement of the average bottom hadron lifetime +425066 . Search for excited leptons in e+ e- collisions at s**(1/2) = 161-GeV +425319 . Search for unstable neutral and charged heavy leptons in e+ e- collisions at S**(1/2) = 161-GeV +425320 . Measurement of the mass of the $W$ boson in $e^{+} e^{-}$ collisions at $S^{(1/2)}$ = 161-GeV +425867 . Search for exclusive $B$ decays to $J/\psi$ and $\eta$ or $\pi^0$ with the L3 detector +425868 . Search for neutral $B$ meson decays to two charged leptons +425928 . Updated measurement of the tau lifetime at SLD +425929 ? Preliminary measurement of time dependent B(d)0 - anti-B(d)0 mixing using topology and charge selected semileptonic B decays +425943 . Measurements of |V(cb)|, form-factors and branching fractions in the decays anti-B0 ---> D*+ lepton- anti-lepton-neutrino and anti-B0 ---> D+ lepton- anti-lepton-neutrino +426122 . An improved measurement of the left-right $Z^0$ cross-section asymmetry +426207 . Measurement of the QED longitudinal structure function of the photon using azimuthal correlations at LEP +426208 . Photonic events with large missing energy in e+ e- collisions at s**(1/2) = 161-GeV +426209 . Analysis of hadronic final states and the photon structure function F2 (gamma) in deep inelastic electron - photon scattering at LEP +426210 . Production of fermion pair events in e+ e- collisions at 161-GeV center-of-mass energy +426505 . Search for pair production of heavy objects in 4 jet events at s**(1/2) = 130-GeV - 136-GeV +426506 . A Precise measurement of the B(d)0 meson lifetime using a new technique +426799 . Search for the standard model Higgs boson in e+ e- collisions at s**(1/2) = 161-GeV +426800 . A Measurement of |V(cb)| using anti-B0 ---> D*+ lepton- anti-lepton-neutrino decays +427104 . An Improved measurement of R($b$) using a double tagging method +427105 . Search for excited leptons in e+ e- collisions at s**(1/2) = 161-GeV +427106 . Study of the weak charged hadronic current in b decays +427107 . Measurement of inclusive omega and eta-prime production in hadronic Z decays +427130 . Measurement of the semileptonic branching fraction of inclusive b baryon decays to Lambda +427131 . Inclusive production of neutral pions in hadronic Z decays +428072 . Studies of quantum chromodynamics with the ALEPH detector +428073 X The Forward muon detector of L3 +428162 . Search for the B(c) Meson +428163 . Search for neutral heavy leptons produced in Z decays +428178 . A Measurement of alpha-s from the scaling violation in e+ e- annihilation +428179 . Search for stable heavy charged particles in e+ e- collisions at s**(1/2) = 130-GeV to 136-GeV, 161-GeV and 172-GeV +428228 . Identified particles in quark and gluon jets +428274 . Search for charged scalar leptons using the OPAL detector at s**(1/2) = 161-GeV +428470 . Measurement of D(s)- ---> tau- anti-tau-neutrino and a new limit for B- ---> tau- anti-tau-neutrino +428484 . Measurement of the $B^{+}$ and $B^0$ lifetimes using topological vertexing +428492 . Search for CP violation in Z0 ---> tau+ tau- and an upper limit on the weak dipole moment of the tau lepton +428493 . B* production in Z0 decays +429039 . Measurement of the Z0 - lepton coupling asymmetries A(lepton) +429856 ? Preliminary measurement of D* / D production and D* spin alignment at the Z0 resonance +439797 . The Topology dependence of charged particle multiplicities in three jet events +439997 . Measurement of the tau-neutrino helicity and the Michel parameters in polarized e+ e- collisions +440040 . Measurement of the $B^{+}$ and $B^0$ lifetimes from semileptonic decays +440051 . A Measurement of the QCD color factors and a limit on the light gluino +440102 . Measurement of the triple gauge boson coupling $\alpha$ (w $\phi^{)}$ from $W^{+} W^{-}$ production in $e^{+} e^{-}$ collisions at $\sqrt{s}$ = 161-GeV +440103 . Study of phi (1020), D*+- and B* spin alignment in hadronic Z0 decays +440104 . Measurements of the b quark forward - backward asymmetry around the Z0 peak using jet charge and vertex charge +440217 . Measurement and interpretation of the $W$ pair cross-section in $e^{+} e^{-}$ interactions at 161-GeV +440218 . Study of the muon pair production at center-of-mass energies from 20-GeV to 136-GeV with the ALEPH detector +440407 . Search for excited leptons in e+ e- annihilation at s**(1/2) = 161-GeV +440408 . Pair production of $W$ bosons in $e^{+} e^{-}$ interactions at $\sqrt{s}$ = 161-GeV +440436 . Measurement of leading particle effects in decays of Z0 bosons into light flavors +440588 . Measurement of the spectral functions of vector current hadronic tau decays +440589 . Measurement of the tau lepton lifetime with the three-dimensional impact parameter method +440596 . Measurement of the polarized forward backward asymmetry of Z0 ---> b anti-b using a mass tag and momentum weighted track charge +440721 . QCD studies with e+ e- annihilation data at 161-GeV +440724 . A Measurement of R(b) using a lifetime mass tag +440725 . A Measurement of R(b) using mutually exclusive tags +441040 . A Measurement of the hadronic decay current and the tau-neutrino helicity in tau- ---> pi- pi- pi+ tau-neutrino +441187 . Measurement of the branching fraction for D0 ---> K- pi+ +441188 . Measurement of the $W$ mass in $e^{+} e^{-}$ collisions at production threshold +441189 . Rapidity correlations in Lambda baryon and proton production in hadronic Z0 decays +441373 . Search for the $B_c$ meson in hadronic $Z$ decays +441608 . Measurement of correlations between pions from different Ws in e+ e ---> W+ W- events +441927 . Production of Single $W$ Bosons at LEP +442224 . Measurement of the transverse spin correlation in Z --> tau+ tau- decays +442260 . Direct measurement of leptonic coupling asymmetries with polarized Zs +442600 . Production of P wave charm and charm - strange mesons in hadronic $Z^0$ decays +442601 . A Study of $B$ meson oscillations using hadronic $Z^0$ decays containing leptons +442880 . Measurement of the multiplicity of gluons splitting to bottom quark pairs in hadronic Z0 decays +443012 . A Study of the reaction e+ e- ---> mu+ mu- gamma (ISR) at LEP and search for new physics at annihilation energies near 80-GeV +443356 . Measurement of the transverse spin correlations in the decay Z ---> tau+ tau- +443562 . Measurement of $B_d^0$ - $\bar{B}_d$ 0 oscillations +443563 . QCD studies and determination of alpha-s in e+ e- collisions at s**(1/2) = 161-GeV and 172-GeV +443564 . Production of e, mu and tau pairs in untagged two photon collisions at LEP +443565 . Inclusive $J/\psi$, $\psi^\prime$ and chi($c$) production in hadronic $Z$ decays +443566 . Cross-section of hadron production in gamma gamma collisions at LEP +443568 . Search for scalar top and scalar bottom quarks at $\sqrt{s}$ = 170-GeV - 172-GeV in $e^{+} e^{-}$ collisions +443800 . An Upper limit on the branching ratio for tau decays into seven charged particles +443801 . K(s)0 and Lambda production in quark and gluon jets at LEP +443802 . Measurement of hadron and lepton pair production at 161-GeV < s**(1/2) < 172-GeV at LEP +443920 . Search for sleptons in e+ e- collisions at center-of-mass energies of 161-GeV and 172-GeV +444150 . Measurement of the spin density matrix for the rho0, K*0 (892) and phi produced in Z0 decays +444151 . Search for anomalous four jet events in e+ e- annihilation at s**(1/2) = 130-GeV to 172-GeV +444313 . Search for pair production of longlived heavy charged particles in e+ e- annihilation +444680 . Observation of charge ordering in particle production in hadronic Z0 decay +444980 . Three-prong $\tau$ decays with charged kaons +444981 . Search for the Standard Model Higgs boson in e+ e- collisions at s**(1/2) = 161-GeV, 170-GeV and 172-GeV +445190 . An Updated study of B meson oscillations using dilepton events +445191 . Measurement of the B hadron energy distribution in Z0 decays +445324 . Measurement of $W$ pair cross-sections in $e^{+} e^{-}$ interactions at $\sqrt{s}$ = 172-GeV and $W$ decay branching fractions +445325 . Resonance formation in the pi+ pi- pi0 final state in two photon collisions +445326 . Measurement of the branching fractions and forward - backward asymmetries of the Z0 into light quarks +445331 . Search for the neutral Higgs bosons of the MSSM in e+ e- collisions at s**(1/2) from 130-GeV to 172-GeV +445644 . Symmetry tests in polarized Z0 decays to b anti-b g +445645 . Production of pi+-, K+-, K0, K*0, phi, p and Lambda0 in hadronic Z0 decays +445646 ? A Preliminary study of the structure of b anti-b g events using Z0 decays +445647 ? A Preliminary improved test of the flavor independence of strong interactions +445648 ? Preliminary measurement of prompt D+- and D*+- meson production and D*+- spin alignment in hadronic Z0 decays +445998 . Study of hadronic events and measurements of alpha-s between 30-GeV and 91-GeV +445999 . Search for heavy neutral and charged leptons in e+ e- annihilation at s**(1/2) = 161-GeV and s**(1/2) = 172-GeV +446000 . Single and multiphoton events with missing energy in e+ e- collisions at 161-GeV < s**(1/2) < 172-GeV +446001 . Hard photon production at s**(1/2) = 161-GeV and 172-GeV at LEP +446002 . $\upsilon$ production in $Z$ decays +446590 . Search for new physics in energetic single photon production in $e^{+} e^{-}$ annihilation at the $Z$ resonance +446670 . Search for the standard model Higgs boson in e+ e- interactions at 161-GeV <= s**(1/2) <= 172-GeV +446671 . Search for chargino and neutralino production at $\sqrt{s}$ = 170-GeV and 172-GeV at LEP +446672 . Measurement of the quark to photon fragmentation function through the inclusive production of prompt photons in hadronic Z0 decays +446673 . Measurement of the Q**2 evolution of the photon structure function F2(gamma) +446719 . Searches for scalar top and scalar bottom quarks at LEP-2 +446783 . Missing mass spectra in hadronic events from e+ e- collisions at s**(1/2) = 161-GeV - 172-GeV and limits on invisible Higgs decay +446881 ? A Preliminary measurement of R(b) using the upgrade SLD vertex detector +446939 . Updated measurement of the tau lepton lifetime +446940 . Measurement of the W pair cross-section in e+ e- collisions at 172-GeV +447145 . Measurement of f(c ---> D*+ X), f(b ---> D*+ X) and Gamma (c anti-c) / Gamma (hadronic) using D*+- mesons +447146 . Spin alignment of leading K*(892)0 mesons in hadronic Z0 decays +447148 . Search for neutral and charged Higgs bosons in e+ e- collisions at s**(1/2) = 161-GeV and 172-GeV +447185 . A Measurement of the $B_s^0$ lifetime using reconstructed $D_s$ - mesons +447186 . Tests of the standard model and constraints on new physics from measurements of fermion pair production at 130-GeV to 172-GeV at LEP +447187 . Measurement of the photon structure function F(2)**gamma at low x +447188 . Polarization and forward - backward asymmetry of Lambda baryons in hadronic Z0 decays +447214 . Measurements of mass, width and gauge couplings of the $W$ boson at LEP +447268 . A Measurement of R(b) using a vertex mass tag +447353 . Search for R-parity breaking sneutrino exchange at LEP +447377 . Multiplicity distributions of gluon and quark jets and tests of QCD analytic predictions +447944 . Neutral current four fermion production in e+ e- interactions at 130-GeV <= s**(1/2) <= 172-GeV +447945 . Measurement of eta-prime (958) formation in two photon collisions at LEP-1 +448033 . Multiphoton final states in e+ e- collisions at s**(1/2) = 130-GeV - 172-GeV +448034 . Search for the standard model higgs boson in e+ e- collisions at s**(1/2) = 161-GeV - 172-GeV +448093 . Measurement of the $W$ boson mass and $W^{+} W^{-}$ production and decay properties in $e^{+} e^{-}$ collisions at $\sqrt{s}$ = 172-GeV +448153 . Search for charginos, neutralinos and gravitinos at LEP +448154 . Measurement of the $B$ baryon lifetime and branching fractions in $Z$ decays +448370 . Measurement of the quark and gluon fragmentation functions in Z0 hadronic decays +448436 . Measurement of the triple gluon vertex from double quark tagged four jet events +448507 ! QCD Studies at SLD: Identified hadron production in jets of different flavors +448664 . Search for a massive di-photon resonance at S**(1/2) = 91-GeV - 172-GeV +448725 . Measurement of triple gauge boson couplings from $W^{+} W^{-}$ production at $S^{(1/2)}$ = 172-GeV +448729 . Search for unstable heavy and excited leptons in e+ e- collisions at S**(1/2) = 170-GeV - 172-GeV +448977 . Search for B(s)0 anti-B(s)0 oscillations +449077 . Searches for supersymmetry in the photon(s) plus missing energy channels at s**(1/2) = 161-GeV and 172-GeV +449290 . Charged particle multiplicity in e+ e- ---> q anti-q events at 161-GeV and 172-GeV and from the decay of the W boson +449533 . Search for anomalous production of dilepton events with missing transverse momentum in e+ e- collisions at s**(1/2) = 161-GeV and 172-GeV +449592 . Search for charged Higgs bosons in e+ e- collisions at center-of-mass energies from 130-GeV to 172-GeV +449593 . Measurement of the average lifetime of $b$ hadrons in $Z$ decays +449594 . Search for scalar leptons, charginos and neutralinos in $e^{+} e^{-}$ collisions at $\sqrt{s}$ = 161-GeV to 172-GeV +449679 . Measurement of the B+ and B0 lifetimes using topological vertexing at SLD +449704 . Measurement of the $B^{+}$ and $B^0$ lifetimes using topological reconstruction of inclusive and semileptonic decays +449730 . Searches for charginos and neutralinos in $e^{+} e^{-}$ collisions at $\sqrt{s}$ = 161-GeV and 172-GeV +449925 ? A Preliminary measurement of R(c) using the SLD detector +449928 . Properties of the b anti-b g vertex +450154 ? A Preliminary inclusive measurement of A(c) using the SLD detectors +450686 . Direct measurement of A(b) and A(c) at the Z0 pole using a lepton tag +450757 . Search for anomalous production of photonic events with missing energy in e+ e- collisions at s**(1/2) = 130-GeV to 172-GeV +450758 . An Upper limit on the tau-neutrino mass from three-prong and five-prong tau decays +450872 . m(b) at M(Z) +451935 . Measurement of A(b) from left right forward backward asymmetry in Z0 decays using charged kaon tagging +452178 . Search for supersymmetry with a dominant R-parity violating L L anti-E coupling in e+ e- collisions at center-of-mass energies of 130-GeV to 172-GeV +452500 . Search for charged Higgs bosons in e+ e- collisions at S**(1/2) = 172-GeV +452796 . Search for CP violation and b ---> sg in inclusive B decays +452927 . Tests of QCD using Z0 ---> b anti-b g events +453111 . Measurement of the one prong hadronic tau branching ratios at LEP +453112 . A Measurement of the semileptonic branching ratio BR(b-baryon ---> p lepton anti-neutrino X) and a study of inclusive pi+-, K+-, (p,anti-p) production in Z decays +453113 . Four jet final state production in e+ e- collisions at center-of-mass energies ranging from 130-GeV to 184-GeV +453114 . Study of $B^0_{s}$ oscillations and lifetime using fully reconstructed $D_s$ - decays +453267 . Measurement of the W pair cross-section and of the W mass in e+ e- interactions at 172-GeV +453422 X The DELPHI Silicon Tracker at LEP-2 +453423 . Measurement of Trilinear Gauge Couplings in $e^{+} e^-$ Collisions at 161-GeV and 172-GeV +453562 . Measurements of the $B_s^0$ and $\Lambda_b^0$ lifetimes +453563 . Search for charged Higgs bosons in $e^{+} e^{-}$ collisions at $S^{(1/2)}$ = 130-GeV - 172-GeV +453756 . Measurement of the $W$ mass by direct reconstruction in $e^{+} e^{-}$ collisions at 172-GeV +453757 . Measurement of triple gauge boson couplings at 172-GeV +453758 . K0(S) production in tau decays +453761 . Local multiplicity fluctuations in hadronic Z decay +458432 . Searches for R-parity violating supersymmetry at LEP-2 +465983 . Search for the $B_c$ meson in hadronic $Z^0$ decays +466503 . Investigation of CP violation in $B^0 \to J/\psi K^0_{S}$ decays at LEP +466841 . Measurement of the inclusive charmless and double charm B branching ratios +466883 . Determination of the production rate of D*0 mesons and of the ratio V / (V+P) in Z0 ---> c anti-c decays +467092 . Production of f(0)(980), f(2)(1270) and phi(1020) in hadronic Z0 decay +467093 . Measurement of the spectral functions of axial - vector hadronic tau decays and determination of alpha(S)(M**2(tau)) +467224 . A Study of the hadronic resonance structure in the decay tau ---> 3 pi neutrino(tau) +467225 . Measurements of the structure of quark and gluon jets in hadronic Z decays +467226 . Resonant structure and flavor tagging in the B pi+- system using fully reconstructed B decays +467256 . Search for an excess in the production of four jet events from e+ e- collisions at S**(1/2) = 130-GeV - 184-GeV +467572 . Measurement of the weak dipole moments of the tau lepton +467577 . Angular multiplicity fluctuations in hadronic Z decays and comparison to QCD models and analytical calculations +467632 . Search for evidence of compositeness at LEP I +467821 . Measurement of the B0(d) - anti-B0(d) oscillation frequency +467927 . Investigation of the splitting of quark and gluon jets +467928 . Determination of the number of light neutrino species from single photon production at LEP +467929 . Measurement of tau polarization at LEP +467931 . First evidence for a charm radial excitation, D*-prime +468177 . Measurement of the charged particle multiplicity of weakly decaying B hadrons +468272 . Search for new physics phenomena in fermion pair production at LEP +468273 . Observation of doubly charmed B decays at LEP +468441 . A Search for neutral Higgs bosons in the MSSM and models with two scalar field doublets +468442 . An Upper limit on the anomalous magnetic moment of the tau lepton +468524 . Search for stable and longlived massive charged particles in e+ e- collisions at s**(1/2) = 130-GeV - 183-GeV +468671 . Determination of A-b(FB) using jet charge measurements in Z decays +468852 . Measurement of the fraction of hadronic Z decays into charm quark pairs +468854 . Measurement of the anomalous magnetic and electric dipole moments of the tau lepton +469102 . A Direct measurement of parity violation in the coupling of Z0 bosons to b quarks using a mass tag and momentum weighted track charge +469365 . A Measurement of the inclusive b ---> s gamma branching ratio +469368 . Search for the standard model Higgs boson in e+ e- interactions at S**(1/2) = 183-GeV +469925 . Production of pi+, K+, K0, K*0, phi, p and Lambda0 in hadronic Z0 decays +470140 . An Improved test of the flavor independence of strong interactions +470419 . Photon and light meson production in hadronic Z0 decays +470677 . Single photon and multiphoton production in $e^{+} e^{-}$ collisions at a center-of-mass energy of 183-GeV +470732 . Production of K0(S) and Lambda in quark and gluon jets from Z0 decay +470826 . Search for neutral Higgs bosons of the minimal supersymmetric standard model in $e^{+} e^{-}$ interactions at $\sqrt{s}$ = 130-GeV - 183-GeV +470997 . Photon structure functions and azimuthal correlations of lepton pairs in tagged gamma gamma collisions +471053 . Determination of |V(ub)| from the measurement of the inclusive charmless semileptonic branching ratio of b hadrons +471557 . Scalar quark searches in $e^{+} e^{-}$ collisions at $S^{(1/2)}$ = 181-GeV - 184-GeV +471558 . Search for sleptons in e+ e- collisions at center-of-mass energies up to 184-GeV +471655 . An Upper limit for the tau-neutrino mass from tau --> 5 pi+- tau-neutrino decays +472242 . Bose-Einstein correlations of three charged pions in hadronic Z0 decays +472637 . Measurements of flavor dependent fragmentation functions in Z0 --> q anti-q events +472638 . Measurement of tau branching ratios to five charged hadrons +472639 . Inclusive production of charged hadrons and K0(S) mesons in photon-photon collisions +472640 . Multiphoton production in e+ e- collisions at S**(1/2) = 183-GeV +472641 . Search for Higgs bosons and new particles decaying into two photons at S**(1/2) = 183-GeV +472642 . Study of anomalous $Z Z \gamma$ and $Z \gamma \gamma$ couplings at LEP +472643 . Measurement of the inclusive charmless semileptonic branching fraction of beauty hadrons and a determination of |V(ub)| at LEP +472644 . Study of the hadronic photon structure function F(2)**gamma at LEP +472645 . Production of single $W$ bosons in $e^{+} e^{-}$ interactions at 130-GeV <= $S^{(1/2)}$ <= 183-GeV and limits on anomalous $W W \gamma$ couplings +472952 . Measurement of the e+ e- ---> gamma gamma (gamma) cross-section at the LEP energies +472953 . Test of CP invariance in Z ---> mu+ mu- gamma decay +472954 . The Forward - backward asymmetry for charm quarks at the Z +472955 . Measurement of the strong coupling constant alpha(s) and the vector and axial vector spectral functions in hadronic tau decays +472956 . Measurement of the Michel parameters in leptonic tau decays +473409 . pi+-, K+-, p and anti-p production in Z0 ---> q anti-q, Z0 ---> b anti-b, Z0 ---> u anti-u, d anti-d, s anti-s +473410 . Measurement of radiative Bhabha and quasireal Compton scattering +473411 . A Measurement of the gluon splitting rate into b anti-b pairs in hadronic Z decays +473588 . An Improved direct measurement of leptonic coupling asymmetries with polarized Z0's +473591 . An Improved inclusive measurement of A(c) using the SLD detector +473699 . Tests of the standard model and constraints on new physics from measurements of fermion pair production at 183-GeV at LEP +473700 . Search for scalar top and scalar bottom quarks at $S^{(1/2)}$ = 183-GeV at LEP +473701 . Production of chi (c2) mesons in photon-photon collisions at LEP +473718 . A Measurement of R(c) using the SLD detector +473758 . Measurement of A(b) at the Z0 resonance using a jet charged technique +473944 . Inclusive search for b ---> sg +473948 . Search for B0(s) oscillations using inclusive lepton events +474009 . Dijet production in photon-photon collisions at $S^{(1/2)}$ (ee) = 161-GeV and 172-GeV +474010 . A Study of parton fragmentation in hadronic Z0 decays using Lambda anti-Lambda correlations +474011 . Study of D0 anti-D0 mixing and D0 doubly Cabibbo suppressed decays +474012 . Measurement of the average polarization of b baryons in hadronic Z0 decays +474013 . First measurement of Z / gamma* production in Compton scattering of quasireal photons +474070 ? Time dependent B0(s) - anti-B0(s) mixing using inclusive and semileptonic B decays at SLD +474071 . Measurement of the $B^{+}$ and $B^0$ lifetimes using topological vertexing at SLD +474241 ? A Preliminary study of the structure of b anti-b g events using Z0 decays +474243 . Symmetry tests in polarized Z0 decays to b anti-b g +474244 . A Study of correlations between identified charged hadrons in hadronic Z0 decays +474245 ? A Preliminary direct measurement of the parity violating coupling of the Z0 to strange quarks, A(s) +474247 ? A Preliminary improved measurement of the B hadron energy distribution in Z0 decays +474662 . Measurement of |V(cs)| using W decays at LEP-2 +474663 . Measurement of $W$ pair cross-sections in $e^{+} e^{-}$ interactions at $S^{(1/2)}$ = 183-GeV and $W$ decay branching fractions +474664 . Search for acoplanar lepton pair events in e+ e- collisions at S**(1/2) = 161-GeV, 172-GeV and 183-GeV +474665 . Measurement of the Michel parameters and the average tau-neutrino helicity from tau decays at LEP +474666 . Measurement of the longitudinal cross-section using the direction of the thrust axis in hadronic events at LEP +475040 . Heavy quark mass effects and improved tests of the flavor independence of strong interactions +476583 . Upper limit on the lifetime difference of shortlived and longlived $B^0_{s}$ mesons +476784 . Measurement of the effective weak mixing angle by jet charge asymmetry in hadronic decays of the Z boson +476785 . Searches for scalar top and scalar bottom quarks in e+ e- interactions at 161-GeV less than equal to S**(1/2) less than equal to 183-GeV +476786 . A Measurement of R(b) using a double tagging method +477045 . Search for chargino and neutralino production at S**(1/2) = 181-GeV - 184-GeV at LEP +477372 . QCD tests using b anti-b g events and a new measurement of the B hadron energy distribution +477517 . Measurement of the semileptonic branching ratio of charm hadrons produced in Z0 ---> c anti-c decays +477626 . Search for anomalous photonic events with missing energy in e+ e- collisions at S**(1/2) = 130-GeV, 136-GeV and 183-GeV +477681 . Charmless and double charm B decays at SLD +477802 . Search for scalar fermions and longlived scalar leptons at center-of-mass energies of 130-GeV to 172-GeV +477803 . Two particle angular correlations in e+ e- interactions compared with QCD predictions +477804 . Search for pair produced neutralinos in events with photons and missing energy from $e^{+} e^{-}$ collisions at $S^{(1/2)}$ = 130-GeV to 183-GeV +477805 . Search for the standard model Higgs boson at the LEP-2 collider near S**(1/2) = 183-GeV +477806 . Searches for the neutral Higgs bosons of the MSSM in $e^+e^-$ collisions at center-of-mass energies of 181-GeV to 184-GeV +477807 . Search for supersymmetry with a dominant R-parity violating LQ $\bar{D}$ coupling in $e^{+} e^{-}$ collisions at center-of-mass energies of 130-GeV to 172-GeV +477808 . QCD results from studies of hadronic events produced in e+ e- annihilations at S**(1/2) = 183-GeV +477809 . Search for charged Higgs bosons in e+ e- collisions at center-of-mass energies between 130-GeV and 183-GeV +477810 . Single and multiphoton events with missing energy in e+ e- collisions at S**(1/2) = 183-GeV +478068 . Identified hadron production and light quark fragmentation in Z0 decays +478185 . Measurement of the e+ e- --> Z ---> b anti-b forward - backward asymmetry and the B0 anti-B0 mixing parameter using prompt leptons +478903 . Search for composite and exotic fermions at LEP-2 +478904 . Search for lightest neutralino and stau pair production in light gravitino scenarios with stau NLSP +478905 . A Search for heavy stable and longlived squarks and sleptons in e+ e- collisions at energies from 130-GeV to 183-GeV +479051 . $W^{+} W^{-}$ production and triple gauge boson couplings at LEP energies up to 183-GeV +479052 . The Q**2 evolution of the hadronic photon structure function F(2)gamma at LEP +479332 . Search for Higgs bosons in $e^{+} e^{-}$ collisions at 183-GeV +479567 . Bose-Einstein correlations in $e^+e^- \to W^+W^-$ at 172-GeV and 183-GeV +480435 . Search for Leptoquarks and FCNC in $e^{+} e^{-}$ annihilations at $S^{(1/2)}$ = 183-GeV +480437 . Search for charginos, neutralinos and gravitinos in e$^+$ e$^-$ interactions at $\sqrt s$ = 183 GeV +480439 . Measurement of triple gauge W W gamma couplings at LEP-2 using photonic events +480847 . A Measurement of the tau- ---> e- anti-neutrino(e) neutrino(tau) branching ratio +480942 . A Measurement of the product branching ratio f(b ---> Lambda(b)) x BR(Lambda(b) ---> Lambda X) in Z0 decays +481162 . A Precise measurement of the partial decay width ratio R(b)**0 = Gamma(b anti-b) / Gamma(had) +481163 . Inclusive charm production in two photon collisions at LEP +481164 . chi(c2) formation in two photon collisions at LEP +481759 . Analysis of transverse momentum correlations in hadronic Z decays +481760 . Measurement of A(FB)(b anti-b) in hadronic Z decays using a jet charge technique +482054 . Search for baryon and lepton number violating Z0 decays +482170 . Measurement of the $B^{+}$ and $B^0$ lifetimes and search for CP($T$) violation using reconstructed secondary vertices +482314 . Color reconnection studies in e+ e- ---> W+ W- at S**(1/2) = 183-GeV +482345 . Measurement of the $W$ mass and width in $e^{+} e^{-}$ collisions at 183-GeV +482462 ? Physics results from SLD using the CRID +482477 . Study of neutral current four fermion and Z Z production in e+ e- collisions at S**(1/2) = 183-GeV +482478 . Measurement of the cross-section for the process gamma* gamma* ---> hadrons at LEP +482479 . Heavy quarkonium production in $Z$ decays +482521 . Searches for R-parity violating decays of gauginos at 183-GeV at LEP +482650 . Study of the four-jet anomaly observed at LEP center-of-mass energies of 130-GeV and 136-GeV +482816 . Measurement of inclusive rho0, f(0)(980), f(2)(1270), K*0(2)(1430) and f-prime(2)(1525) production in Z0 decays +483184 ! Heavy flavor fragmentation and decay at SLD +484833 . Direct measurement of A(b) in Z0 decays using charged kaon tagging +495313 . Intermittency and correlations in hadronic Z0 decays +495378 . Measurements of the QED structure of the photon +495411 . Search for charged Higgs bosons in $e^{+} e^{-}$ collisions at $S^{(1/2)}$ = 181-GeV - 184-GeV +495413 . Search for invisible Higgs boson decays in e+ e- collisions at center-of-mass energies up to 184-GeV +495414 . The Scale dependence of the hadron multiplicity in quark and gluon jets and a precise determination of C(A) / C(F) +495462 . Measurement and interpretation of fermion pair production at LEP energies from 130-GeV to 172-GeV +495463 . Search for neutral Higgs bosons in e+ e- collisions at S**(1/2) = 183-GeV +495464 . Measurement of the forward backward asymmetry of c and b quarks at the Z pole using reconstructed D mesons +495805 . Search for charginos and neutralinos in $e^{+} e^{-}$ collisions at center-of-mass energies near 183-GeV and constraints on the MSSM parameter space +495806 . Measurement of mass and width of the $W$ boson at LEP +496237 ? A Preliminary direct measurement of the parity violating coupling of the Z0 to strange quarks, A(s) +496238 . First study of the structure of e+ e- ---> b anti-b g events and limits on the anomalous chromomagnetic coupling of the b quark +496399 . Search for scalar leptons in e+ e- collisions at S**(1/2) = 183-GeV +496400 . Search for R-parity violating chargino and neutralino decays in e+ e- collisions up to S**(1/2) = 183-GeV +496586 . One prong tau decays with kaons +496587 . Study of tau decays involving kaons, spectral functions and determination of the strange quark mass +496755 . Experimental properties of gluon and quark jets from a point source +497051 . B decay studies at SLD +497105 . Measurement of W pair production in e+ e- collisions at 183-GeV +497256 . Search for charginos nearly mass - degenerate with the lightest neutralino +497260 . Measurement of the $W$ mass in $e^{+} e^{-}$ collisions at 183-GeV +497623 . Search for scalar top and scalar bottom quarks at S**(1/2) = 189-GeV at LEP +498072 . Study of fermion pair production in $e^{+} e^{-}$ collisions at 130-GeV to 183-GeV +498246 . Test of the flavor independence of alpha(s) using next-to-leading order calculations for heavy quarks +498282 . Measurement of the lifetime of $b$ - baryons +498297 . Search for R-parity violating decays of scalar fermions at LEP +498726 ! Light quark fragmentation and a measurement of $A_s$ at the SLD +499180 . Search for supersymmetry with R-parity violating L L anti-E couplings at S**(1/2) = 183-GeV +499181 . W pair production cross-section and W branching fractions in e+ e- interactions at 183-GeV +499182 . Measurements of the leptonic branching fractions of the tau +499183 . Energy dependence of event shapes and of alpha(s) at LEP-2 +499542 . Measurement of an elongation of the pion source in $Z$ decays +499917 . Measurement of the hadronic photon structure function at LEP-1 for (Q**2) values between 9.9-GeV**2 and 284-GeV**2 +500042 . Multiplicity fluctuations in one-dimensional and two-dimensional angular intervals compared with analytic QCD calculations +500457 . Measurement of Z0 to heavy quark couplings at SLD +500546 ! Tests of QCD using Heavy Flavors in $Z^0$ Decays at SLD +500779 . An Improved measurement of the b quark fragmentation function in Z0 decays +500782 ? A Preliminary measurement of the gluon splitting rate into b anti-b pairs in hadronic Z0 decays +501369 . Formation of the $eta_c$ in two photon collisions at LEP +501453 . Energy dependence of inclusive spectra in e+ e- annihilation +501454 . Search for the Higgs boson in events with isolated photons at LEP-2 +501455 . A Search for invisible Higgs bosons produced in e+ e- interactions at LEP-2 energies +501456 . Measurements of the trilinear gauge boson couplings W W V (V = gamma,Z) in e+ e- collisions at 183-GeV +501457 . Measurements of the Z partial decay width into c anti-c and multiplicity of charm quarks per b decay +501458 . Determination of P(c ---> D*+) and BR(c ---> lepton+) at LEP-1 +502360 . Direct measurement of A(b) and A(c) at the Z0 pole using a lepton tag +502361 . Measurements of Z0 electroweak couplings at SLD +502548 . Total hadronic cross-section of photon-photon interactions at LEP +502683 . Measurements of inclusive semileptonic branching fractions of b hadrons in Z0 decays +502747 . Search for heavy neutral and charged leptons in $e^{+} e^{-}$ annihilation at $S^{(1/2)}$ = 183-GeV and 189-GeV +502748 . Search for charged Higgs bosons at LEP-2 +502749 . Search for Standard Model Higgs boson in $e^{+} e^{-}$ interactions at $S^{(1/2)}$ = 189-GeV +502750 . A Study of spin alignment of rho(770)+- and omega(782) mesons in hadronic Z0 decays +503551 . A Study of single $W$ production in $e^{+} e^{-}$ collisions at $S^{(1/2)}$ = 161-GeV to 183-GeV +503554 . Measurement of the b quark fragmentation function in Z0 decays +503676 ? A Preliminary direct measurement of the parity violating coupling of the Z0 to strange quarks, A(s) +503753 . Study of the structure of e+ e- ---> b anti-b g events and improved limits on the anomalous chromomagnetic coupling of the b quark +503754 . Symmetry tests in polarized Z0 decays to b anti-b g +503909 . Measurement of the probability for gluon splitting into b anti-b in Z0 decays +503910 . Production of charged pi+-, K+- and p / anti-p in hadronic Z0 decays +503988 . A Study of correlations between identified charged hadronic Z0 decays +504104 . Measurement of the rate of b anti-b b anti-b events in hadronic Z decays and the extraction of the gluon splitting into b anti-b +504106 . Search for heavy isosinglet neutrinos in $e^{+} e^{-}$ annihilation at 130-GeV less than $S^{(1/2)}$ less than 189-GeV +504107 . Measurement of the mass of the W boson using direct reconstruction at S**(1/2) = 183-GeV +504116 . Direct measurement of the neutral weak dipole moments of the tau lepton +504117 . Measurement of A(c) with charmed mesons at SLD +504118 . Direct measurement of A(c) using inclusive charm tagging at the SLD detector +504120 . Direct measurement of A(b) using charged kaons at the SLD detector +504170 . Determination of the LEP center-of-mass energy from Z gamma events +504294 . New measurement of A(b) at the Z0 resonance using a vertex charge technique +504583 . Measurement of the $B^{+}$ and $B^0$ lifetimes using topological vertexing at SLD +504716 . Search for R-parity violating decays of supersymmetric particles in $e^{+} e^{-}$ collisions at center-of-mass energies near 183-GeV +504733 . Search for Higgs bosons and other massive states decaying into two photons in e+ e- collisions at 189-GeV +504734 . A Study of B0(S) meson oscillation using hadronic Z0 decays containing leptons +504736 . Combined SLD measurement of A(b) at the Z0 resonance using various techniques +504780 . Multiphoton production in e+ e- collisions at S**(1/2) = 189-GeV +504923 . Measurement of the production rate of charm quark pairs from gluons in hadronic Z0 decays +504924 . Search for neutral Higgs bosons in e+ e- collisions at S**(1/2) approximately equals 189-GeV +504987 . An Improved direct measurement of leptonic coupling asymmetries with polarized Z0s +504988 . Search for pair produced leptoquarks in $e^{+} e^{-}$ interactions at $S^{(1/2)}$ approximately = 183-GeV +504989 . Tests of the standard model and constraints on new physics from measurements of fermion pair production at 189-GeV at LEP +505110 . A Study of three prong tau decays with charged kaons +505281 . Measurement of inclusive $D^{*+-}$ production in two photon collisions at LEP +506060 . Measurement of the Z resonance parameters at LEP +506982 . Measurement of the spectroscopy of orbitally excited $B$ mesons at LEP +506983 . Search for low scale gravity effects in $e^{+} e^{-}$ collisions at LEP +507359 . Time dependent B0(s) - anti-B0(s) mixing using inclusive and semileptonic B decays at SLD +507422 . Study of charm production in Z decays +507531 . Inclusive production of pi0, eta, eta-prime (958), K0(S) and lambda in two jet and three jet events from hadronic Z decays +507735 . Search for an invisibly decaying Higgs boson in e+ e- collisions at 189-GeV +507736 . A Direct measurement of |V(cs)| in hadronic W decays using a charm tag +507737 . Measurement of R($b$) and Br($b \to$ lepton neutrino $X$) at LEP using double tag methods +507738 . Search for charged Higgs bosons in $e^{+} e^{-}$ collisions at $\sqrt{s}$ = 189-GeV +507739 . Study of $Z$ Boson Pair Production in $e^{+} e^{-}$ collisions at LEP at $S^{(1/2)}$ = 189-GeV +507820 ? Recent tests of QCD at SLD +507867 . Search for chargino pair production in scenarios with gravitino LSP and stau NLSP at S**(1/2) approximately equal to 183-GeV at LEP +507874 . Search for chargino and neutralino production at S**(1/2) = 189-GeV at LEP +507875 . Search for anomalous production of acoplanar di-lepton events in e+ e- collisions at S**(1/2) = 183-GeV and 189-GeV +507923 . Hadron production in quark and anti-quark jets +508076 . Search for scalar leptons in $e^{+} e^{-}$ collisions at $\sqrt{S}$ = 189-GeV +508077 . Search for charginos and neutralinos in $e^{+} e^{-}$ collisions at $\sqrt{S}$ = 189-GeV +508078 . Measurement of triple gauge boson couplings of the $W$ boson at LEP +508079 . Single and multiphoton events with missing energy in $e^{+} e^{-}$ collisions at $\sqrt{S}$ - 189-GeV +508408 . Searches for scalar quarks in $e^{+} e^{-}$ interactions at $\sqrt{S}$ = 189-GeV +508409 . Search for excited leptons at $\sqrt{S}$ = 189-GeV +508478 ? QCD with SLD +509034 ? Search for charmless hadronic decays of B mesons with the SLD detector +509037 ? Search for neutral Higgs bosons of the minimal supersymmetric standard model in $e^{+} e^{-}$ interactions at $\sqrt{S}$ = 189-GeV +509099 ? Search for extra dimensions in boson and fermion pair production in $e^{+} e^{-}$ interactions at LEP +509241 . Measurement of the e+ e- ---> Z Z production cross-section at center-of-mass energies of 183-GeV and 189-GeV +509391 . Precision luminosity for Z0 line shape measurements with a silicon tungsten calorimeter +509394 . Measurement of the $W^{+} W^{-} \gamma$ cross-section and first direct limits on anomalous electroweak quartic gauge couplings +509441 . Measurement of the strange quark forward backward asymmetry around the Z0 peak +509442 . Searches for sleptons and squarks in e+ e- collisions at 189-GeV +509581 . Direct observation of longitudinally polarized $W^\pm$ bosons +510061 . Measurement of the probability of gluon splitting into charmed quarks in hadronic $Z$ decays +510213 . Searches for anomalous effects in the b anti-b g coupling +510272 . Search for the glueball candidates f(0)(1500) and f(J)(1710) in gamma gamma collisions +510530 . Tau decays with neutral kaons +510531 . Inclusive production of D*+- mesons in photon-photon collisions at S**(1/2)(ee) = 183-GeV and 189-GeV and a first measurement of F**gamma(2,c) +511099 . Measurement of the gluon fragmentation function and a comparison of the scaling violation in gluon and quark jets +511443 . A Precise measurement of the tau polarization at LEP-1 +511452 . Upper limit for the decay $B^{-} \to \tau^{-}$ anti-neutrino ($\tau$) and measurement of the $b \to \tau$ anti-neutrino ($\tau$) $X$ branching ratio +511453 . Two-dimensional analysis of the Bose-Einstein correlations in e+ e- annihilation at the Z0 peak +512427 . Precise measurement of the b quark fragmentation function in Z0 boson decays +513270 . Bose-Einstein correlations in W pair decays +513272 . Search for gauge mediated SUSY breaking topologies at $S^{(1/2)}$ similar to 189-GeV +513319 . Fermi-Dirac Correlations in lambda pairs in hadronic Z decays +513336 . Leading particle production in light flavor jets +513338 . Search for unstable heavy and excited leptons at LEP 2 +513397 . Hard photon production and tests of QED at LEP +513475 . Search for new physics in rare B decays +513476 . QCD studies with e+ e- annihilation data at 172-GeV - 189-GeV +513607 . Measurements of R(b), A**b(FB), and A**c(FB) in e+ e- collisions at 130-GeV - 189-GeV +513614 . Lambda(b) polarization in Z0 decays at LEP +513615 . Measurement of the anti-B ---> D* pi lepton anti-neutrino(lepton) branching fraction +513676 . Measurement of hadron and lepton pair production at 130-GeV less than $\sqrt{S}$ less than 189-GeV at LEP +522656 . Consistent measurements of alpha(s) from precise oriented event shape distributions +523127 . Bose-Einstein correlations in K+- K+- pairs from Z0 decays into two hadronic jets +523920 . Measurement of the running of the fine structure constant +523921 . Measurement of the $e^{+} e^{-} \to Z \gamma \gamma$ cross-section and determination of quartic gauge boson couplings at LEP +523976 . Search for charginos with a small mass difference with the lightest supersymmetric particle at $\sqrt{S}$ = 189-GeV +524027 . Measurements of cross-sections and forward backward asymmetries at the $Z$ resonance and determination of electroweak parameters +524306 . Transverse and longitudinal Bose Einstein correlations in hadronic Z0 decays +524450 . Inclusive $\sigma^{+}$ and $\sigma^0$ production in hadronic $Z$ decays +524679 . Determination of |V(ub)| / |V(cb)| with DELPHI at LEP +524682 . Search for the neutral Higgs bosons of the standard model and the MSSM in e+ e- collisions at S**(1/2) = 189-GeV +524688 . Search for supersymmetric particles in scenarios with a gravitino LSP and stau NLSP +524693 . Hadronization properties of b quarks compared to light quarks in e$^+$ e$^-$ $\to \overline {qq}$ from 183-GeV to 200-GeV +524694 . Inclusive Sigma- and Lambda(1520) production in hadronic Z decays +524695 . Search for charginos in e+ e- interactions at S**(1/2) = 189-GeV +524696 . Identified charged particles in quark and gluon jets +524800 . Measurement of |V(cb)| using anti-B0 ---> D*+ lepton- anti-neutrino decays +524845 . Z boson pair production in e+ e- collisions at S**(1/2) = 183-GeV and 189-GeV +525025 . Measurement of the lifetime of the $\tau$ lepton +525384 . A Study of the decay width difference in the $B^0_{s} - \bar{B}^0_s$ system using $\phi \phi$ correlations +525764 . Measurement of the photon structure function at high $Q^{2}$ at LEP +525809 . Search for an invisibly decaying Higgs boson in $e^{+} e^{-}$ collisions at $\sqrt{S}$ = 183-GeV - 189-GeV +526164 . Charged and identified particles in the hadronic decay of W bosons and in e+ e- ---> q anti-q from 130-GeV to 200-GeV +526166 . Measurement of the $W$ mass and width in $e^{+} e^{-}$ collisions at 189-GeV +526222 . W pair production cross-section and W branching fractions in e+ e- interactions at 189-GeV +526223 . Searches for neutral Higgs bosons in e+ e- collisions around s**(1/2) = 189-GeV +526448 . A High precision measurement of the left-right Z boson cross-section asymmetry +526728 . Measurements of Z0 electroweak couplings at SLD +526776 . Photonic events with missing energy in e+ e- collisions at S**(1/2) = 189-GeV +526854 . A Measurement of the tau mass and the first CPT test with tau leptons +527337 . Measurements of the $b \bar{b}$ production cross-section and forward backward asymmetry at center-of-mass energies above the $Z$ pole at LEP +527338 . Search for anomalous $Z Z \gamma$ and $Z \gamma \gamma$ couplings in the process $e^{+} e^{-} \to Z \gamma$ at LEP +527492 . Measurement of W pair production in e+ e- collisions at 189-GeV +527605 . Cross-sections and leptonic forward backward asymmetries from the Z0 running of LEP +527692 . Search for manifestations of new physics in fermion pair production at LEP +527988 . QCD studies in $e^{+} e^{-}$ annihilation from 30-GeV to 189-GeV +528730 . First direct measurement of the parity violating coupling of the Z0 to the s quark +529575 . Production of single $W$ bosons at $\sqrt{S}$ = 189-GeV and measurement of $W W \gamma$ gauge couplings +529576 . Determination of $\gamma / Z$ interference in $e^{+} e^{-}$ annihilation at LEP +529847 . Measurement and interpretation of fermion-pair production at LEP energies of 183-GeV and 189-GeV +529850 . Update of the search for charginos nearly mass-degenerate with the lightest neutralino +529859 . Searches for prompt light gravitino signatures in e+ e- collisions at S**(1/2) = 189-GeV +529896 . First measurement of the inclusive branching ratio of b hadrons to phi mesons in Z0 decays +529897 . Search for trilinear neutral gauge boson couplings in $Z^-$ gamma production at $S^{(1/2)}$ = 189-GeV at LEP +529898 . Multiplicities of pi0, eta, K0 and of charged particles in quark and gluon jets +529899 . Measurement of the low x behavior of the photon structure function F(2)gamma +530069 . Search for gamma gamma decays of a Higgs boson produced in association with a fermion pair in e+ e- collisions at LEP +530544 . Two Higgs doublet model and model independent interpretation of neutral Higgs boson searches +530860 . First symmetry tests in polarized Z0 decays to b anti-b g +530949 . Search for a scalar top almost degenerate with the lightest neutralino in e+ e- collisions at s**(1/2) up to 202-GeV +530950 . Search for charged Higgs bosons in e+ e- collisions at energies up to S**(1/2) = 189-GeV +531457 . Search for a Higgs boson decaying into two photons in $e^{+} e^{-}$ interactions at $\sqrt{S}$ = 189-GeV +531468 . A Measurement of the b quark mass from hadronic Z decays +531507 . Measurement of the $\bar{B}^0$ and $B^{-}$ meson lifetimes +531568 . Rapidity-rank structure of p anti-p pairs in hadronic Z0 decays +531570 . Measurement of the $W^{+} W^{-} \gamma$ cross-section and direct limits on anomalous quartic gauge boson couplings at LEP +531571 . Search for anomalous couplings in the Higgs sector at LEP +531656 ! Light quark fragmentation in polarized Z0 decays at SLD +531668 . Measurement of Bose-Einstein correlations in $e^{+} e^{-} \to W^{+} W^{-}$ at $\sqrt{S}$ approximately = 189-GeV +531741 . Direct measurement of A(b) using charged vertices +531766 . Measurement of the $W$ pair production cross-section and $W$ decay branching fractions in $e^{+} e^{-}$ interactions at $\sqrt{S}$ = 189-GeV +531853 X Investigation of inclusive CP asymmetries in B0 decays +532903 . Search for charged Higgs bosons in $e^{+} e^{-}$ collisions at center center-of-mass energies up to 202-GeV +533108 . A Study of one prong tau decays with a charged kaon +533109 . Measurement of the mass and width of the $W$ boson in $e^{+} e^{-}$ collisions at 189-GeV +533110 . W+ W- production cross-section and W branching fractions in e+ e- collisions at 189-GeV +533111 . A Measurement of the rate of charm production in $W$ decays +533112 . Measurement of $W$ boson polarizations and CP violating triple gauge couplings from $W^{+} W^{-}$ production at LEP +533113 . Measurement of triple gauge boson couplings from $W^{+} W^{-}$ production at LEP energies up to 189-GeV +533148 . Improved measurement of the b quark fragmentation function in Z0 decays +533257 . A Study of the structure of e+ e- b anti-b g events and improved limits on the anomalous chromomagnetic coupling of the b quark +533360 . Search for single top production in e+ e- collisions at s**(1/2) = 189-GeV - 202-GeV +533573 . Measurement of A(c) with charmed mesons at SLD +533716 . Improved measurement of the probability for gluon splitting into b anti-b in Z0 decays +533961 . Study of the CP asymmetry of $B^0 \to J/\psi K^0_{S}$ decays in ALEPH +534253 . Production of charged pi+-, K+- and p / anti-p in hadronic Z0 decays +534257 . Determination of the e+ e- --> gamma gamma (gamma) cross-section at centre-of-mass energies ranging from 189-GeV to 202-GeV +534258 . Limits on the masses of supersymmetric particles at s**(1/2) = 189-GeV +534383 . Direct measurement of A(b) at the Z0 pole using a lepton tag +534434 ? Measurements of parity violation parameters at SLD +534435 . Study of $Z$ boson pair production in $e^{+} e^{-}$ interactions at $\sqrt{s}$ = 192-GeV - 202-GeV +534657 . Measurement of the $B^0$ lifetime and oscillation frequency using $\bar{B}^0 \to D^{*+} \ell^{-}$ anti-neutrino decays +534735 . An Improved direct measurement of leptonic coupling asymmetries with polarized Z bosons +534817 . Electroweak measurements with heavy quarks at SLD +534887 . Measurements of BR (b ---> tau- anti-nu(tau) X) and BR (b ---> tau- anti-nu(tau) D*+- X) and upper limits on BR (B- ---> tau- anti-nu(tau)) and BR (b---> s nu anti-nu) +535059 . Production rates of b anti-b quark pairs from gluons and b anti-b b anti-b events in hadronic Z0 decays +535061 . Investigation of the decay of orbitally excited B mesons and first measurement of the branching ratio BR(B*(J) ---> B*pi(X)) +535180 . Study of B0(S) anti-B0(S) oscillations and B0(S) lifetimes using hadronic decays of B0(S) mesons +535620 . Searches for neutral Higgs bosons in e+ e- collisions at center-of-mass energies from 192-GeV to 202-GeV +535683 . Search for the sgoldstino at s**(1/2) from 189-GeV to 202-GeV +536071 . Studies of hadronic decays of Z0 bosons at SLD +536138 . Search for R-parity violating decays of supersymmetric particles in $e^{+} e^{-}$ collisions at center-of-mass energies from 189-GeV to 202-GeV +536266 . Charged multiplicities in Z decays into u, d, and s quarks +536484 ? B(s) mixing at SLD +536690 . Light resonances in $K^0_{S} K^\pm \pi^\mp$ and $\eta \pi^{+} \pi^{-}$ final states in $\gamma \gamma$ collisions at LEP +536692 . $K^0_{S} K^0_{S}$ final state in two photon collisions and implications for glueballs +536814 ? Time dependent B0(s) - anti-B0(s) oscillations using exclusively reconstructed D+(s) decays at SLD +536816 . Higgs candidates in $e^{+} e^{-}$ interactions at $\sqrt{s}$ = 206.6-GeV +536864 . Search for R-parity violating decays of supersymmetric particles in $e^{+} e^{-}$ collisions at $\sqrt{s}$ = 189-GeV +536865 . A search for invisible Higgs bosons produced in e+ e- interactions up to s**(1/2) = 189-GeV +536902 . Observation of an excess in the search for the standard model Higgs boson at ALEPH +536904 . Search for supersymmetric particles in $e^{+} e^{-}$ collisions at $\sqrt{s}$ up to 202-GeV and mass limit for the lightest neutralino +537026 . A Study of $B_s$ meson oscillation using $D_s$ - lepton correlations +537232 . Search for excited leptons in $e^{+} e^{-}$ interactions at $\sqrt{s}$ = 192-GeV to 202-GeV +537234 . Measurements of the cross-sections for open charm and beauty production in $\gamma \gamma$ collisions at $\sqrt{s}$ = 189-GeV to 202-GeV +537718 . Z quark coupling measurements at SLD +537913 . Photon events with missing energy at s**(1/2) = 183-GeV to 189-GeV +538107 . Search for neutral Higgs bosons of the minimal supersymmetric standard model in $e^{+} e^{-}$ interactions at $\sqrt{s}$ = 192-GeV - 202-GeV +538108 . Precise determination of the Z resonance parameters at LEP: 'Zedometry' +538109 . Search for the standard model Higgs boson in $e^{+} e^{-}$ collisions at $\sqrt{s}$ up to 202-GeV +538925 . Time dependent B0(s) - anti-B0(s) mixing using inclusive and semileptonic B decays at SLD +539640 . Measurement of the Z Z cross-section in e+ e- interactions at 183-GeV - 189-GeV +539641 . Search for neutralino pair production at s**(1/2) = 189-GeV +539642 . Study of dimuon production in photon-photon collisions and measurement of QED photon structure functions at LEP +539860 . Search for the standard model Higgs boson in e+ e- collisions at s**(1/2) approximately = 192-GeV - 209-GeV +539873 . Production of pi+-, K+-, p and anti-p in quark, anti-quark and gluon jets +539946 . Measurement of the charm production cross-section in $\gamma \gamma$ collisions at LEP +540015 . Search for spontaneous R-parity violation at s**(1/2) = 183-GeV and 189-GeV +540208 . Search for sleptons in e+ e- collisions at s**(1/2) = 183-GeV to 189-GeV +540344 . Search for the standard model Higgs boson at LEP in the year 2000 +540660 . Search for SUSY with R-parity violating LL anti-E couplings at s**(1/2) = 189-GeV +540730 . Search for R-parity violation with a anti-U anti-D anti-D coupling at x**(1/2) = 189-GeV +540871 . Search for supersymmetric partners of top and bottom quarks at s**(1/2) = 189-GeV +540888 . Search for heavy stable and longlived particles in e+ e- collisions at s**(1/2) = 189-GeV +541614 . A Study of the Lorentz structure in tau decays +541615 . Measurement of the $B^0_{s}$ lifetime and study of $B^0_{s} - \bar{B}^0_s$ oscillations using $D_s \ell$ events +552446 . A Simultaneous measurement of the QCD color factors and the strong coupling +552447 . A Search for a narrow radial excitation of the D*+- meson +552756 . Improved measurement of the probability for gluon splitting into b anti-b in Z0 decays +552995 . Measurement of the $\tau$ branching fractions into leptons +552996 . Study of the $e^{+} e^{-} \to Z \gamma \gamma \to q \bar{q} \gamma \gamma$ process at LEP +552997 . Total cross-section in $\gamma \gamma$ collisions at LEP +553305 . Update of the search for supersymmetric particles in scenarios with gravitino LSP and sleptons NLSP +553351 . Measurement of trilinear gauge boson couplings WWV, (V = Z, gamma) in e+ e- collisions at 189-GeV +553945 . Measurement of the branching ratio for D(s)- ---> tau- anti-nu(tau) decays +554583 . Precision neutral current asymmetry parameter measurements from the tau polarization at LEP +555429 . Search for a fermiophobic Higgs at LEP-2 +555430 . Measurement of V(cb) from the decay process anti-B0 ---> D*+ lepton- anti-neutrino +555574 . Measurement of triple gauge boson couplings at LEP energies up to 189-GeV +555653 . Measurement of the tau polarization at LEP +555901 . Measurement of the mass and width of the $W$ boson in $e^{+} e^{-}$ collisions at $\sqrt{s}$ = 189-GeV +556589 . Production of $\pi^{±}, K^{±}$, p and $\bar{p}$ in quark, anti-quark and gluon jets +556769 . Determination of the b quark mass at the Z mass scale +556817 . A Measurement of the tau topological branching ratios +557178 . Measurement of the semileptonic b branching fractions and average b mixing parameter in Z decays +557820 . Search for single leptoquark and squark production in electron photon scattering at $\sqrt{s_{ee}}$ = 189-GeV at LEP +558327 . Study of the fragmentation of b quarks into B mesons at the Z peak +558372 . Measurement of the Michel parameters and the nu/tau helicity in tau lepton decays +559673 . Search for heavy isosinglet neutrino in $e^{+} e^{-}$ annihilation at LEP +559674 . Search for heavy neutral and charged leptons in $e^{+} e^{-}$ annihilation at LEP +559675 . Measurement of |V(ub)| using b hadron semileptonic decay +559836 . Measurement of A**b(FB) using inclusive b hadron decays +560306 . Angular analysis of the muon pair asymmetry at LEP I +560307 . Measurement of Z / gamma* production in Compton scattering of quasi-real photons +560354 . Standard model Higgs boson with the L3 experiment at LEP +560355 . Measurement of the topological branching fractions of the $\tau$ lepton at LEP +560550 . Single intermediate vector boson production in e+ e- collisions at s**(1/2) = 183-GeV and 189-GeV +560962 . Inclusive semileptonic branching ratios of b hadrons produced in Z decays +561580 . Measurement of the branching ratio for the process b ---> tau- anti-nu(tau) X +562543 . Search for lepton flavor violation in e+ e- collisions at s**(1/2) = 189-GeV - 209-GeV +563334 . Bose-Einstein correlations of neutral and charged pions in hadronic $Z$ decays +563335 . Inclusive $\pi^0$ and $K^0_{S}$ production in two photon collisions at LEP +563707 . Production of charged pi+-, K+- and p / anti-p in hadronic Z0 decays +563708 . Measurement of the b quark fragmentation function in Z0 decays and first measurement of B - anti-B energy correlations +563730 . Measurement of the hadronic cross-section for the scattering of two virtual photons at LEP +563771 . An Improved study of the structure of e+ e- ---> b anti-b g events and limits on the anomalous chromomagnetic coupling of the b quark +563782 . Search for single top quark production at LEP-2 +564486 . Search for technicolor with DELPHI +564487 . Search for charged Higgs bosons in e+ e- collisions at s**(1/2) = 189-GeV - 202-GeV +564765 . Genuine correlations of like - sign particles in hadronic Z0 decays +564820 . Search for R parity violating decays of supersymmetric particles in $e^{+} e^{-}$ collisions at LEP +565148 . Measurement of charged-particle multiplicity distributions and their $H_{q}$ moments in hadronic $Z$ decays at LEP +565149 . f(1)(1285) formation in two photon collisions at LEP +565438 . Search for Yukawa production of a light neutral Higgs boson at LEP +565440 . Double tag events in two photon collisions at LEP +565517 . Particle multiplicity of unbiased gluon jets from $e^{+} e^{-}$ three jet events +565973 . Improved direct measurement of A(b) and A(c) at the Z0 pole using a lepton tag +565988 . Study of the $W^{+} W^{-} \gamma$ process and limits on anomalous quartic gauge boson couplings at LEP +566837 . Search for doubly charged Higgs bosons with the OPAL detector at LEP +567155 . Fragmentation and hadronization in e+ e- collisions +567400 ? Recent tests of QCD at SLD +567914 . Production of D**(s) mesons in hadronic Z decays +567915 . Search for scalar leptons in e+ e- collisions at center-of-mass energies up to 209-GeV +568505 . Search for leptoquarks in electron photon scattering at s($e e) ^{(1/2)}$ up to 209-GeV at LEP +568553 . Searches for neutral Higgs bosons in e+ e- collisions from s**(1/2) = 191.6-GeV to 201.7-GeV +569165 . Inclusive production of the omega and eta mesons in Z decays, and the muonic branching ratio of the omega +569166 . Final results of the searches for neutral Higgs bosons in e+ e- collisions at s**(1/2) up to 209-GeV +570407 . Measurement of the forward backward asymmetry in Z --> b anti-b and Z --> c anti-c decays with leptons +570700 . Study of multiphoton final states and tests of QED in $e^{+} e^{-}$ collisions at $\sqrt{S}$ up to 209-GeV +581519 . Search for R-parity violating production of single sneutrinos in e+ e- collisions at s**(1/2) = 189-GeV to 209-GeV +581750 . Leptonic decays of the D(s) meson +582528 . Search for gamma gamma ---> eta(b) in e+ e- collisions at LEP-2 +582951 . Measurement of the b quark fragmentation function in Z0 decays +583115 . Measurement of the hadronic photon structure function F**gamma(2) at LEP-2 +583655 . Improved search for B(0)S anti-B(0)S oscillations +583971 . Search for a Higgs boson decaying into two photons at LEP +584019 . Search for charginos nearly mass degenerate with the lightest neutralino in e+ e- collisions at center-of-mass energies up to 209-GeV +584153 . Search for gauge mediated SUSY breaking topologies in $e^{+} e^{-}$ collisions at center-of-mass energies up to 209-GeV +584195 . Measurement of the mass of the W boson in e+ e- collisions using the fully leptonic channel +585621 . $\Lambda$ and $\Sigma^0$ pair production in two photon collisions at LEP +585623 . Inclusive $D^{*+-}$ production in two photon collisions at LEP +586044 . Search for scalar quarks in $e^{+} e^{-}$ collisions at $\sqrt{s}$ up to 209-GeV +586115 . Determination of $alpha_s$ from hadronic event shapes in $e^{+} e^{-}$ annihilation at 192-GeV <= $\sqrt{s}$ <= 208-GeV +586130 . Rapidity alignment and p(T) compensation of particle pairs in hadronic Z0 decays +586918 . A Flavor independent Higgs boson search in e+ e- collisions at s**(1/2) up to 209-GeV +587018 . An Improved study of the structure of e+ e- ---> b anti-b g events and limits on the anomalous chromomagnetic coupling of the b quark +587909 . Measurement of the charm structure function F2(c)(gamma) of the photon at LEP +587910 . Measurements of the strong coupling constant and the QCD color factors using four jet observables from hadronic Z decays +588105 . Decay mode independent searches for new scalar bosons with the OPAL detector at LEP +588301 . Single photon and multiphoton production in $e^{+} e^{-}$ collisions at $\sqrt{s}$ up to 209-GeV +588873 . The $e^{+} e^{-} \to Z \gamma \gamma \to q \bar{q} \gamma \gamma$ reaction at LEP and constraints on anomalous quartic gauge boson couplings +588874 . Measurement of genuine three particle Bose-Einstein correlations in hadronic $Z$ decay +589045 . Search for charged excited leptons in e+ e- collisions at s**(1/2) = 183-GeV to 209-GeV +589410 . Search for single top production in $e^{+} e^{-}$ collisions at $\sqrt{s}$ up to 209-GeV +590095 . Search for associated production of massive states decaying into two photons in $e^{+} e^{-}$ annihilations at $\sqrt{s}$ = 88-GeV to 209-GeV +590927 . A Search for time dependent B0(s) - anti-B0(s) oscillations using exclusively reconstructed D+-(s) mesons +591126 . Search for charged Higgs bosons in $e^{+} e^{-}$ collisions at energies up to $\sqrt{s}$ = 209-GeV +591226 . Absolute lower limits on the masses of selectrons and sneutrinos in the MSSM +591959 . Search for gamma gamma decays of a Higgs boson in e+ e- collisions at s**(1/2) up to 209-GeV +593545 . Search for neutral Higgs bosons of the minimal supersymmetric standard model in $e^{+} e^{-}$ interactions at $\sqrt{s}$ = 209-GeV +593729 . Improved direct measurement of the parity violation parameter A(b) using a mass tag and momentum weighted track charge +594091 . Search for time dependent B0(s) - anti-B0(s) oscillations using a vertex charge dipole technique +594588 . Production of single $W$ bosons at LEP and measurement of $W W \gamma$ gauge coupling parameters +594589 . Measurement of Bose-Einstein correlations in $e^{+} e^{-} \to W^{+} W^{-}$ events at LEP +594920 . Search for scalar top and scalar bottom quarks at LEP +595335 . Charged particle momentum spectra in e+ e- annihilation at s**(1/2) = 192-GeV to 209-GeV +595836 . Measurement of the cross-section for the process gamma gamma ---> p anti-p at s(e e)**(1/2) = 183-GeV to 189-GeV at LEP +595993 . Measurement of the double inclusive b anti-b quark fragmentation function in Z0 decays and first measurement of angle dependent B - anti-B energy correlations +596551 . Search for anomalous weak dipole moments of the tau lepton +596553 . Search for a low mass CP odd Higgs boson in e+ e- collisions with the OPAL detector at LEP-2 +598112 . Measurement of the b quark forward backward asymmetry around the Z0 peak using an inclusive tag +598373 . Search for the standard model Higgs boson with the OPAL detector at LEP +598949 . Search for supersymmetric particles with R parity violating decays in $e^{+} e^{-}$ collisions at $\sqrt{s}$ up to 209-GeV +598951 . Multiphoton production in e+ e- collisions at s**(1/2) = 181-GeV to 209-GeV +599181 . Inclusive analysis of the b quark fragmentation function in Z decays at LEP +599182 . Measurement of neutral current four fermion production at LEP-2 +599183 . Search for single top production at LEP +600094 . Search for nearly mass degenerate charginos and neutralinos at LEP +601225 . Charged particle multiplicities in heavy and light quark initiated events above the Z0 peak +603172 . A Measurement of the tau- ---> mu- anti-nu(mu) nu(tau) branching ratios +603214 . Search for B(s)0 - anti-B(s)0 oscillations and a measurement of B(d)0 - anti-B(d)0 oscillations using events with an inclusively reconstructed vertex +604733 . Search for an LSP gluino at LEP with the DELPHI detector +604734 . Search for doubly charged Higgs bosons at LEP-2 +605865 . A Measurement of semileptonic B decays to narrow orbitally excited charm mesons +605973 . Inclusive charged hadron production in two photon collisions at LEP +606066 . Measurement of W polarisation at LEP +606391 . Study of the $e^{+} e^{-} \to Z e^{+} e^{-}$ process at LEP +606568 . Search for supersymmetric particles in light gravitino scenarios and sleptons NLSP +606922 . A Study of correlations between identified charged hadrons in hadronic Z0 decays +606925 . Production of charged pi+-, K+- and p / anti-p in hadronic Z0 decays +606944 . Inclusive b decays to wrong sign charmed mesons +606945 . Search for resonant $\widetilde\nu$ production at $\sqrt{s}$ = 183 to 208 GeV +608565 X b tagging in DELPHI at LEP +611415 . Dijet production in photon-photon collisions at s(ee)**(1/2) from 189-GeV to 209-GeV +612223 . Measurement of the inclusive D*+- production in gamma gamma collisions at LEP +613711 . Bose-Einstein correlations of pi0 pairs from hadronic Z0 decays +614953 . Final results from DELPHI on the searches for SM and MSSM neutral Higgs bosons +615637 . Test of noncommutative QED in the process e+ e- ---> gamma gamma at LEP +615977 . Search for color reconnection effects in $e^{+} e^{-} \to W^{+} W^{-} \to$ hadrons through particle flow studies at LEP +618779 . Search for stable and longlived massive charged particles in e+ e- collisions at s**(1/2) = 130-GeV to 209-GeV +619015 . Search for pair produced leptoquarks in $e^{+} e^{-}$ interactions at $\sqrt{s}$ approximately = 189-GeV to 209-GeV +619462 . Search for stable hadronizing squarks and gluinos in e+ e- collisions up to s**(1/2) = 209-GeV +619533 . Measurement of isolated prompt photon production in photon photon collisions at s(ee)**(1/2) = 183 GeV - 209-GeV +619620 . Measurement of exclusive $\rho^0 \rho^0$ production in two photon collisions at high $Q^{2}$ at LEP +619958 . Study of hadronic final states from double tagged gamma gamma events at LEP +620250 . A Study of the energy evolution of event shape distributions and their means with the DELPHI detector at LEP +620387 . Search for excited leptons at LEP +620433 . $p\bar{p}$ pair production in two photon collisions at LEP +620566 . Tests of models of color reconnection and a search for glueballs using gluon jets with a rapidity gap +622724 . A measurement of the gluon splitting rate into c anti-c pairs in hadronic Z decays +622876 . Search for a Higgs boson decaying to weak boson pairs at LEP +623653 . Study of inclusive J / psi production in two photon collisions at LEP-2 with the DELPHI detector +623654 . ZZ production in e+ e- interactions at s**(1/2) = 183-GeV to 209-GeV +625095 . $Z$ boson pair production at LEP +626022 . Exclusive production of pion and kaon meson pairs in two photon collisions at LEP +626316 . A Study of charm production in beauty decays with the OPAL detector at LEP +626317 . Measurement of heavy quark forward backward asymmetries and average B mixing using leptons in hadronic Z decays +626318 . Search for the single production of doubly charged Higgs bosons and constraints on their couplings from Bhabha scattering +626732 . Measurement of charged current triple gauge boson couplings using $W$ pairs at LEP +627211 . A Study of $W^{+} W^{-} \gamma$ events at LEP +627212 . Search for anomalous production of dilepton events with missing transverse momentum in e+ e- collisions at s**(1/2) = 183-Gev to 209-GeV +628491 . Tests of the standard model and constraints on new physics from measurements of fermion pair production at 189-GeV to 209-GeV at LEP +628565 . Search for charged Higgs bosons at LEP +628566 . Measurement of inclusive f(1)(1285) and f(1)(1420) production in Z decays with the DELPHI detector +628567 . First measurement of the double inclusive B / anti-B hadron energy distribution in e+ e- annihilations, and of angle dependent moments of the B and anti-B energies +629157 . Search for doubly charged Higgs bosons at LEP +629858 . Search for scalar leptons and scalar quarks at LEP +630099 . Study of Z pair production and anomalous couplings in e+ e- collisions at s**(1/2) between 190-GeV and 209-GeV +630327 . Production of pi+, pi-, K+, K-, p and anti-p in light (uds), c and b jets from Z0 decays +631231 . Measurement of the hadronic photon structure function F2(gamma)(x, Q**2) in two-photon collisions at LEP +631361 . Experimental studies of unbiased gluon jets from $e^{+} e^{-}$ annihilations using the jet boost algorithm +631529 . Search for R parity violating decays of scalar fermions at LEP +632225 . The Eta(c)(2980) formation in two photon collisions at LEP energies +632226 . Measurement of the e+ e- ---> W+ W- gamma cross-section and limits on anomalous quartic gauge couplings with DELPHI +632227 . A Measurement of the branching fractions of the $b$ quark into charged and neutral $b$ hadrons +632738 . Searches for supersymmetric particles in e+ e- collisions up to 208-GeV and interpretation of the results within the MSSM +634946 . Search for color singlet and color reconnection effects in hadronic $Z$ decays at LEP +635448 . Flavor independent search for Higgs bosons decaying into hadronic final states in e+ e- collisions at LEP +635543 . Measurement of the partial widths of the Z into up and down type quarks +635790 . W boson polarization at LEP2 +635850 . Absolute mass lower limit for the lightest neutralino of the MSSM from e+ e- data at s**(1/2) up to 209-GeV +635851 . Measurement of the W pair production cross-section and W branching ratios in e+ e- collisions at s**(1/2) = 161-GeV to 209-GeV +636644 . Two-dimensional analysis of Bose-Einstein correlations in hadronic Z decays at LEP +636645 . Studies of QCD at e+ e- centre-of-mass energies between 91-GeV and 209-GeV +636842 . Searches for invisibly decaying Higgs bosons with the DELPHI detector at LEP +636843 . A Precise measurement of the $B^{+}$, $B^0$ and mean $b$ hadron lifetime with the DELPHI detector at LEP1 +636844 . Search for chargino and neutralino production at s**(1/2) = 192-GeV to 209 GeV at LEP +636939 . Measurement of the Z boson mass using e+ e- ---> Z gamma events at center of mass energies above the Z pole +636940 . Single photon and multiphoton events with missing energy in $e^{+} e^{-}$ collisions at LEP +636941 . Flavor independent search for neutral Higgs bosons at LEP +637287 . Inclusive lambda production in two photon collisions at LEP +637613 . Measurement of the Lambda0(b) decay form-factor +637614 . Measurement of the forward backward asymmetries of e+ e- ---> Z ---> b anti-b and e+ e- ---> Z -> c anti-c using prompt leptons +637615 . Search for SUSY in the AMSB scenario with the DELPHI detector +637639 . Search for charged Higgs bosons at LEP in general two Higgs doublet models +637640 . Search for $B^0_s$-$\overline{B^0_s}$ oscillations in DELPHI using high-$p_t$ leptons +637641 . Search for single top production via FCNC at LEP at $\sqrt{s}$ = 189-GeV to 208-GeV +638198 . Search for supersymmetric particles assuming R-parity nonconservation in e+ e- collisions at s**(1/2) = 192-GeV to 208-GeV +638199 . Study of tau-pair production in photon-photon collisions at LEP and limits on the anomalous electromagnetic moments of the tau lepton +638200 . Search for fermiophobic Higgs bosons in final states with photons at LEP 2 +638218 . Photon events with missing energy in e+ e- collisions at s**(1/2) = 130-GeV to 209-GeV +638858 . A Precise measurement of the tau lifetime +639484 . Study of spin and decay-plane correlations of $W$ bosons in the $e^{+} e^{-} \to W^{+} W^{-}$ process at LEP +639734 . Measurement of branching fractions of $\tau$ hadronic decays +640204 . A Measurement of the tau hadronic branching ratios +642852 . Measurement of |V(cb)| using the semileptonic decay anti-B0(d) ---> D*+ l- anti-nu(l) +644313 . Constraints on anomalous QGC's in e+ e- interactions from 183-GeV to 209-GeV +644374 . Constraints on anomalous quartic gauge boson couplings from nu anti-nu gamma gamma and q anti-q gamma gamma events at LEP-2 +645126 . Measurement of triple gauge boson couplings of the $W$ boson at LEP +645127 . Muon pair and tau pair production in two photon collisions at LEP +646971 . Search for anomalous couplings in the Higgs sector at LEP +647348 . Study of Bose-Einstein correlations in $e^+ e^- \to W^+ W^-$ events at LEP +648738 . Scaling violations of quark and gluon jet fragmentation functions in e+ e- annihilations at s**(1/2) = 91.2-GeV and 183-GeV to 209-GeV +651512 . Measurement of the strange spectral function in hadronic tau decays +651514 . The Measurement of alpha(s) from event shapes with the DELPHI detector at the highest LEP energies +652683 . Studies of hadronic event structure in $e^{+} e^{-}$ annihilation from 30-GeV to 209-GeV with the L3 detector +652767 . Search for neutral Higgs boson in CP-conserving and CP-violating MSSM scenarios +653296 . Measurement of W-pair production in e+ e- collisions at centre-of-mass energies from 183-GeV to 209-GeV +653297 . Measurement of the atmospheric muon spectrum from 20-GeV to 3000-GeV +653835 . Study of the $e^{+} e^{-} \to Z \gamma$ process at LEP and limits on triple neutral-gauge-boson couplings +654174 . Search for branons at LEP +654177 . Measurement of exclusive rho+ rho- production in high-Q**2 two-photon collisions at LEP +656640 . Multi-photon events with large missing energy in $e^+ e^-$ collisions at $\sqrt{s}$ = 192-GeV - 209-GeV +656811 . Single vector boson production in e+ e- collisions at centre-of-mass energies from 183-GeV to 209-GeV +656973 . Flavor independent h0A0 search and two Higgs doublet model interpretation of neutral Higgs boson searches at LEP +657367 . Determination of the LEP beam energy using radiative fermion-pair events +657983 . Search for pentaquark states in Z decays +658254 . Measurement of the cross section of W-boson pair production at LEP +660087 . Two-particle correlations in p p, anti-p anti-p and K0(S) K0(S) pairs from hadronic Z decays +660565 . Determination of the e+ e- ---> gamma gamma (gamma) cross-section at LEP 2 +661114 . Inclusive jet production in two-photon collisions at LEP +661247 . Searches for neutral higgs bosons in extended models +661780 . Measurement of R(b) in e+ e- collisions at 182-GeV to 209-GeV +661781 X Search for radions at LEP2 +662030 . Direct measurements of A(b) and A(c) using vertex/kaon charge tags at SLD +662724 . Measurement of the energy dependence of hadronic jet rates and the strong coupling alpha(s) from the four-jet rate with the DELPHI detector at LEP +662726 . Measurement of exclusive rho0 rho0 production in mid-virtuality two-photon interactions at LEP +662728 . Coherent soft particle production in Z decays into three jets +664766 . Bose-Einstein correlations in W-pair decays with an event-mixing technique +665729 . Determination of A**b(FB) at the Z pole using inclusive charge reconstruction and lifetime tagging +668596 . Search for an invisibly-decaying Higgs boson at LEP +669198 . Improved measurement of the triple gauge-boson couplings gamma W W and Z W W in e+ e- collisions +669402 . Measurement of event shape distributions and moments in e+ e- ---> hadrons at 91-GeV - 209-GeV and a determination of alpha(s) +671611 . Bose-Einstein correlations in W+ W- events at LEP2 +673252 . Search for excited leptons in e+ e- collisions at s**(1/2) = 189-GeV to 209-GeV +673292 . Flavour independent searches for hadronically decaying neutral Higgs bosons +677624 . Measurement of the branching ratio of the Z0 into heavy quarks +678858 . Measurement of the shadowing of high-energy cosmic rays by the Moon: A Search for TeV-energy antiprotons +679959 . Compton scattering of quasi-real virtual photons at LEP +680119 . Z-boson production with two unobserved, back-to-back, hard photons at LEP +680120 . Measurement of exclusive rho+ rho- production in mid-virtuality two-photon interactions and study of the gamma gamma* ---> rho rho process at LEP +681526 . Neutral-current four-fermion production in e+ e- interactions at LEP +683280 . Measurement of the running of the QED coupling in small-angle Bhabha scattering at LEP +686120 . Branching ratios and spectral functions of tau decays: Final ALEPH measurements and physics implications +687094 . Measurement of the cross section for open-beauty production in photon-photon collisions at LEP +687095 . Measurement of the photon structure function F(2)**gamma with the L3 detector at LEP +687100 . Determination of alpha(s) using jet rates at LEP with the OPAL detector +687101 . Searches for gauge-mediated supersymmetry breaking topologies in e+ e- collisions at LEP2 +687622 . Measurement of the running of the electromagnetic coupling at large momentum-transfer at LEP +691119 . Measurement of the mass and width of the $W$ boson +691121 . Colour reconnection in e+ e- ---> W+ W- at s**(1/2) = 189-GeV - 209-GeV +691576 . Precision electroweak measurements on the $Z$ resonance +694482 . Production of Xi0(c) and Xi(b) in Z decays and lifetime measurement of X(b) +694483 . Determination of heavy quark non-perturbative parameters from spectral moments in semileptonic B decays +694484 . Charged particle multiplicity in three-jet events and two-gluon systems +698663 . Measurement of the mass and the width of the $W$ boson at LEP +699726 . Measurement and interpretation of fermion-pair production at LEP energies above the Z resonance +702458 . Measurement of the Strong Coupling alpha(s) from four-jet observables in e+ e- annihilation +704268 . Study of double-tagged gamma gamma events at LEP II +704269 . Determination of the b quark mass at the M(Z) scale with the DELPHI detector at LEP +704275 . Measurement of hadron and lepton-pair production in e+ e- collisions at s**(1/2) = 192-GeV to 208-GeV at LEP +704823 . Evidence for an excess of soft photons in hadronic decays of Z0 +705123 . Single intermediate vector boson production in e+e- collisions at s**(1/2) = 183-GeV to 209-GeV +705125 . Analysis of the pi+ pi- pi+ pi- and pi+ pi0 pi- pi0 final states in quasi-real two-photon collisions at LEP +709902 . A Determination of the centre-of-mass energy at LEP2 using radiative 2-fermion events +711130 . Search for neutral MSSM Higgs bosons at LEP +713676 . QCD coherence and correlations of particles with restricted momenta in hadronic Z decays +714248 . Deuteron and anti-deuteron production in e+ e- collisions at the Z resonance +715094 ! Test of Colour Reconnection Models using Three-Jet Events in Hadronic Z Decays +715982 . Measurement of the $W$ boson mass and width in $e^{+} e^{-}$ collisions at LEP +716058 X The Solar flare of the 14th of July 2000 (L3+C detector results) +717202 . Search for Higgs bosons decaying to WW in e+ e- collisions at LEP +719387 . Masses, Lifetimes and Production Rates of Xi- and anti-Xi+ at LEP 1 +723227 X A search for flaring very-high-energy cosmic gamma-ray sources with the L3+C muon spectrometer +727171 . Fermion pair production in $e^{+} e^{-}$ collisions at 189-209-GeV and constraints on physics beyond the standard model +727262 . Study of inclusive strange-baryon production and search for pentaquarks in two-photon collisions at LEP +728678 . Study of Leading Hadrons in Gluon and Quark Fragmentation +729387 . Search for invisibly decaying Higgs bosons with large decay width using the OPAL detector at LEP +734955 . Inclusive production of charged hadrons in photon-photon collisions +737605 . Search for a fourth generation $b^\prime$-quark at LEP-II at $\sqrt{s}$ = 196-GeV - 209-GeV +737606 . Investigation of colour reconnection in WW events with the DELPHI detector at LEP-2 +749464 . Study of resonance formation in the mass region 1400-MeV to 1500-MeV through the reaction gamma gamma ---> K0(S) K+- pi-+ +753391 . Study of multi-muon bundles in cosmic ray showers detected with the DELPHI detector at LEP +753394 . Z gamma* production in e+e- interactions at s**(1/2) = 183 - 209-GeV +753526 . Study of triple-gauge-boson couplings ZZZ, ZZgamma and Zgamma gamma LEP +753710 . Measurement of the Cross Section for open b-Quark Production in Two-Photon Interactions at LEP +754316 . Inclusive Jet Production in Photon-Photon Collisions at s(ee)**(1/2) from 189 to 209-GeV +754788 . Search for invisibly decaying Higgs bosons in e+ e- ---> Z0 h0 production at s**(1/2) = 183-GeV - 209-GeV +754804 X Search for Dirac magnetic monopoles in e+e- collisions with the OPAL detector at LEP2 +757421 . Search for Pentaquarks in the Hadronic Decays of the Z Boson with the DELPHI Detector at LEP +757820 . Bose-Einstein study of position-momentum correlations of charged pions in hadronic Z0 decays +757918 . Measurement of the e+ e- ---> W+ W- cross section and W decay branching fractions at LEP +763352 . Measurement of the Tau Lepton Polarisation at LEP2 +773136 X Higgs boson searches in CP-conserving and CP-violating MSSM scenarios with the DELPHI detector +775920 . Observation of the Muon Inner Bremsstrahlung at LEP1 +775931 . Measurement of alpha(s) with Radiative Hadronic Events +777039 . Study of W boson polarisations and Triple Gauge boson Couplings in the reaction e+e- ---> W+W- at LEP 2 +781550 . Measurement of the Mass and Width of the $W$ Boson in $e^{+} e^{-}$ Collisions at $\sqrt{s}$ = 161-GeV - 209-GeV +784219 . Study of b-quark mass effects in multijet topologies with the DELPHI detector at LEP +792291 . Study of the solar anisotropy for cosmic ray primaries of about 200- GeV energy with the L3 + C muon detector +803872 . Search for Charged Higgs Bosons in $e^+e^-$ Collisions at $\sqrt{s} = 189-209$ GeV +806241 . Di-jet production in gamma gamma collisions at LEP2 +807486 . A Study of b anti-b Production in e+e- Collisions at s**(1/2) = 130-GeV - 207-GeV +807487 . Search for one large extra dimension with the DELPHI detector at LEP +824322 . Inclusive single-particle production in two-photon collisions at LEP II with the DELPHI detector +824816 . Measurement of Z-pair production in e+ e- collisions and constraints on anomalous neutral gauge couplings +825820 . Study of hadronic event shape in flavour tagged events in $e^+ e^-$ annihilation at < s**(1/2) > = 197-GeV +828084 . Correlations between Polarisation States of W Particles in the Reaction e- e+ ---> W- W+ at LEP2 Energies 189-GeV - 209-GeV +837083 . Sigma- - antihyperon correlations in Z(0) decay and investigation of the baryon production mechanism +845287 . Measurements of CP-conserving Trilinear Gauge Boson Couplings WWV (V = gamma,Z) in e+e- Collisions at LEP2 +846927 X Observation of a VHE cosmic-ray flare-signal with the L3+C muon spectrometer +847547 X Search for neutral Higgs bosons decaying into four taus at LEP2 +851373 . Study of the Dependence of Direct Soft Photon Production on the Jet Characteristics in Hadronic Z^0 Decays +883680 X Determination of $alpha_s$ using OPAL hadronic event shapes at $\sqrt{s}=91$ - 209 GeV and resummed NNLO calculations +890364 X Search for single top quark production via contact interactions at LEP2 +890503 . A study of the b-quark fragmentation function with the DELPHI detector at LEP I and an averaged distribution obtained at the Z Pole +901059 . Test of the \boldmath{$\tau$}-Model of Bose-Einstein Correlations and Reconstruction of the Source Function in Hadronic Z-boson Decay at LEP +1216295 X Search for Charged Higgs bosons: Combined Results Using LEP Data +1219330 . Electroweak Measurements in Electron-Positron Collisions at W-Boson-Pair Energies at LEP +1312293 . Studies of QCD in e+ e- ---> hadrons at E(cm) = 130-GeV and 136-GeV +1312299 . A Measurement of the $Z^{0}$ Invisible Width by Single-Photon Counting +1312311 . Measurement of the $Z^0$ Mass and Width with the OPAL Detector at LEP +1313438 . Measurement of the electron structure function F$\frac{e}{2}$ at LEP energies +1649622 . A Search for $\eta'_c$ Production in Photon-Photon Fusion at LEP +1659845 . Search for Supersymmetry with R-parity violating decays via \lambda couplings at sqrt(s) = 183 GeV diff --git a/doc/rivet-coverage-other.rank b/doc/rivet-coverage-other.rank --- a/doc/rivet-coverage-other.rank +++ b/doc/rivet-coverage-other.rank @@ -1,2362 +1,2427 @@ 19342 X ALEPH: Technical Report 1983 28223 . Determination of B(D(s)+ ---> phi pi+) via observations of D(s)+ ---> phi l+ neutrino 29006 . Study of D0 decays into final states with a pi0 or eta 29927 . Measurement of the inclusive B* cross-section above the Upsilon (4S) 30059 . Inclusive chi(2 p) production in upsilon (3s) decay 30428 . Inclusive and exclusive decays of B mesons to final states including charm and charmonium mesons 31222 . Observation of the decay xi(c)0 ---> omega- K+ 32611 . Shape studies of quark jets versus gluon jets at s**(1.2) = 10-GeV 32918 . Measurement of tau decays involving eta mesons 32919 X A Measurement of the tau lepton lifetime 34244 X A Measurement of the tau lepton mass 35358 . The $D \to \pi\pi$ branching fractions 35359 . Measurement of the ratio B (D+ ---> pi0 lepton+ neutrino) / B (D+ ---> anti-K0 lepton+ neutrino) 35360 . Observation of the charmed Baryon Sigma (c)+ and measurement of the isospin mass splittings of the Sigma(c) 35361 . Measurement of exclusive Lambda(c) decays with a Sigma+ in the final state 35362 . Measurement of the decay tau- ---> pi- pi+ pi- 2 pi0 tau-neutrino 36023 . Measurement of exclusive semileptonic decays of D mesons 36414 . Search for exclusive b ---> u transitions in hadronic decays of B mesons involving D(s)+ and D(s)*+ mesons 37303 . Precision measurement of the D(s)+* - D(s)+ mass difference 37565 . Exclusive hadronic B decays to charm and charmonium final states 37661 . A Measurement of the branching fraction $\mathcal{B} (\tau^- \to h^- \pi^0 \nu_{\tau})$ 40577 . Study of flavor tagged baryon production in B decay 191563 . A Precision Measurement of the $\Upsilon^\prime$ Meson Mass 282041 . A Determination of the Properties of the Neutral Intermediate Vector Boson $Z^0$ 282645 . Mass Limits for Scalar Muons, Scalar Electrons and Winos from e+ e- Collisions near S**(1/2) = 91 GeV 282821 . Measurement of the $Z^0$ Mass and Width with the OPAL Detector at LEP 282904 . Determination of the Number of Light Neutrino Species 282905 . Measurement of the Mass and Width of the $Z^0$ Particle from Multi - Hadronic Final States Produced in $e^{+} e^{-}$ Annihilations 283146 . Measurement of the Decay of the $\Z^0$ Into Lepton Pairs 283354 . Properties of Hadronic Events in e$^{+} $e$^{-}$ Annihilation at $S^{(1/2)}=91$-{GeV} 283355 . Determination of the Leptonic Branching Ratios of the $Z$ 283470 . Measurement of $g$(a) and $g(V$), the Neutral Current Coupling Constants to Leptons 283729 . Search for the Neutral Higgs Boson from Z0 Decay 283730 . Search for Supersymmetric Particles Using Acoplanar Charged Particle Pairs From $\Z^0$ Decays 283783 . A Study of Jet Production Rates and a Test of QCD on the Z0 Resonance 283784 . A Search for the Top and $b^\prime$ Quarks in Hadronic $\Z^0$ Decays 284406 . A Search for New Quarks and Leptons From $\Z^0$ Decay 284407 . Search for Excited Leptons in $\Z^0$ Decay 284409 . Search for Neutral Higgs Bosons From Supersymmetry in $Z$ Decays 284411 . A Precise Determination of the Number of Families With Light Neutrinos and of the $Z$ Boson Partial Widths 285181 . Mass Limits for a Standard Model Higgs Boson in $e^+ e^-$ Collisions at {LEP} 285182 . A SEARCH FOR NEW CHARGED HEAVY LEPTONS WITH THE OPAL DETECTOR AT LEP 285183 . A Search for Acoplanar Pairs of Leptons or Jets in $\Z^0$ Decays: Mass Limits on Supersymmetric Particles 286423 . Measurement of $\Z^0$ Decays to Hadrons and a Precise Determination of the Number of Neutrino Species 294474 . A Direct Search for New Charged Heavy Leptons at {LEP} 294521 . Search for the Neutral Higgs Boson From $\Z^0$ Decay in the Higgs Mass Range Between 11-{GeV} and 24-{GeV} 294576 . A MEASUREMENT OF THE Z0 LEPTONIC PARTIAL WIDTHS AND THE FORWARD - BACKWARD ASYMMETRY 294808 . A Combined Analysis of the Hadronic and Leptonic Decays of the $\Z^0$ 294809 . A Study of the Reaction $e^+ e^- \to \gamma \gamma$ at {LEP} 294894 . Study of Hadronic Decays of the $\Z^0$ Boson 294934 . ALEPH: A detector for electron-positron annnihilations at LEP 294982 . A Search for Pair Produced Charged Higgs Bosons in $\Z^0$ Decays 295040 . Measurement of $\Z^0 \to b \bar{b}$ Decay Properties 295102 . Search for Decays of the $\Z^0$ Into a Photon and a Pseudoscalar Meson 295407 . A Search for Technipions and Charged Higgs Bosons at {LEP} 295500 . Study of the Leptonic Decays of the $Z^0$ Boson 295501 . A Precise Measurement of the $Z$ Resonance Parameters Through Its Hadronic Decays 295503 . Search for Heavy Charged Scalars in $\Z^0$ Decays 295613 . A Measurement of Global Event Shape Distributions in the Hadronic Decays of the $\Z^0$ 295615 . Search for the $T$ and b$^\prime$ Quarks in Hadronic Decays of the Z$^0$ Boson 295617 . Search for Light Neutral Higgs Particles Produced in $\Z^0$ Decays 295622 . Search for Excited Leptons at {LEP} 296041 . Evidence for Final State Photons in Multi - Hadronic Decays of the $\Z^0$ 296185 . Heavy Flavor Production in $Z$ Decays 296294 . Search for Neutralino Production in Z Decays 296473 . Search for pair production of neutral Higgs bosons in Z0 decays 296525 . Search for a very light Higgs boson in Z decays 296526 . Limits on neutral heavy lepton production from Z0 decay 296722 . Study of the decays D0 ---> K anti-K, pi anti-pi 296997 . Search for scalar quarks in $Z^0$ decays 296998 . A Study of intermittency in hadronic Z0 decays 297139 . Analysis of Z0 couplings to charged leptons 297170 . Search for the neutral higgs boson in $Z^0$ decay 297171 . Mass limits for excited electrons and muons from Z0 decay 297172 . A Determination of electroweak parameters from Z0 ---> mu+ mu- (gamma) 297561 . A Study of angular correlations in 4-jet final states of hadronic Z0 decays 297562 . A Direct search for neutralino production at LEP 297564 . A Study of coherence of soft gluons in hadron jets 297697 . A Search for sleptons and gauginos in Z0 decays 297698 . A Comparison of jet production rates on the Z0 resonance to perturbative QCD 297895 . Searches for neutral Higgs bosons in e+ e- collisions at LEP 297902 . Exclusive and inclusive semileptonic decays of B mesons to D mesons 297910 . Searches for the standard Higgs boson 297934 . Study of K* production in tau decay 298078 . Determination of alpha-s from jet multiplicities measured on the Z0 resonance 298079 . A Precision measurement of the number of neutrino species 298080 . A Test of QCD based on four jet events from Z0 decays 298223 . Measurement of the Lambda(c) decay asymmetry parameter 298414 . Measurement of electroweak parameters from Z decays into Fermion pairs 298611 . Inclusive production of the charmed baryon Lambda(c) from e+ e- annihilations at s**(1/2) = 10.55-GeV 298642 . The OPAL detector at LEP 298682 . Limits on a light Higgs boson in e+ e- collisions at LEP 298707 . A Measurement of energy correlations and a determination of alpha-s (M2 (Z0)) in e+ e- annihilations at s**(1/2) = 91-GeV 298839 . Search for excited neutrinos in Z decay 298840 . DELPHI results on the Z0 resonance parameters through its hadronic and leptonic decay modes 298841 . A Measurement of the partial width of the Z0 boson into b quark pairs 298843 . Test of QED in e+ e- ---> gamma gamma at LEP 298845 . Search for excited taus from Z0 decay 299248 . Search for the neutral Higgs bosons of the minimal supersymmetric standard model from Z0 decays 299250 . A Search for heavy charged and neutral leptons from Z0 decays 299253 . A Determination of electroweak parameters from Z0 decays into charged leptons 299393 . Search for pair produced stable singly charged heavy particles in Z0 decays 299521 . Charged multiplicity and rapidity distributions in Z0 hadronic decays 299781 . A Measurement of the $\Z^0$ Leptonic Partial Widths and the Vector and Axial Vector Coupling Constants. 299833 . A Study of the recombination scheme dependence of jet production rates and of alpha-s (m(Z0)) in hadronic Z0 decays 299835 . A Search for lepton flavor violation in Z0 decays 300161 . Energy-energy correlations in hadronic final states from Z0 decays 300162 . Measurement of the partial width of the decay of the Z0 into charm quark pairs 300179 . The DELPHI detector at LEP 300283 . Search for the minimal standard model Higgs boson in e+ e- collisions at LEP 300437 . Search for the charged Higgs boson in Z0 decay 300438 . Search for a low mass neutral Higgs boson in Z0 decay 300439 . Search for excited neutrinos from Z0 decays 301654 . Search for Higgs bosons using the Delphi detector 301656 . Search for nonstandard Z0 decays in two particle final states 301657 . Charged particle multiplicity distributions in Z0 hadronic decays 301659 . Experimental study of the triple gluon vertex 301661 . Measurement of the strong coupling constant alpha-s from global event shape variables of hadronic Z decays 301901 . A Measurement of the Z0 ---> b anti-b forward - backward asymmetry 301905 . A Measurement of B0 - anti-B0 mixing in Z0 decays 302586 . A Direct measurement of the Z0 invisible width by single photon counting 302587 . Measurement of the cross-sections of the reactions e+ e- ---> gamma gamma and e+ e- ---> gamma gamma gamma at LEP 302769 . Measurement of B - anti-B mixing at the Z 302770 . Measurement of the B hadron lifetime 302771 . Measurement of alpha-s from the structure of particle clusters produced in hadronic Z decays 302936 . Search for low mass Higgs bosons produced in Z0 decays 314056 . Searches for the standard Higgs boson produced in the reaction e+ e- ---> H0 Z* 314060 . Study of continuum D*+ spin alignment 314333 . A Model independent observation of the string effect using quark tagging at LEP 314407 . Measurement of the inclusive production of neutral pions and charged particles on the Z0 resonance 314410 . Measurements of Z0 ---> b anti-b decays and the semileptonic branching ratio Br (b ---> lepton X) 314418 . Measurement of electroweak parameters from hadronic and leptonic decays of the $Z^0$ 314476 . Measurement of charge asymmetry in hadronic Z decays 314601 . A Study of heavy flavor production using muons in hadronic Z0 decays 314619 . A Study of the reaction e+ e- ---> mu+ mu- around the Z0 pole 314631 . Intermittency in hadronic decays of the Z0 314875 . Search for a new weakly interacting particle 315054 . Charged particle pair production associated with a lepton pair in Z decays: Indication of an excess in the tau channel 315060 . A Study of D*+- production in Z0 decays 315061 . A Search for scalar leptoquarks in Z0 decays 315181 . Measurement of baryon production in B meson decay 315182 . Unusual decay modes of D0 and D+ mesons 315269 . Measurement of the $Z^0$ line shape parameters and the electroweak couplings of charged leptons 315516 . Measurement of the ratio B (D0 ---> K*- e+ electron-neutrino) / B (D0 ---> K- e+ electron-neutrino) 315952 . Search for leptoquarks in Z0 decays 315953 . Search for narrow high mass resonances in radiative decays of the Z0 315954 . A Test of QCD based on three jet events from Z0 decays 316148 . Measurement of the forward - backward asymmetry in Z ---> b anti-b and Z ---> c anti-c 316151 . A Study of K0(s) production in Z0 decays 316154 . A Measurement of the electroweak couplings of up and down type quarks using final state photons in hadronic z0 decays 316780 . Measurement of isolated photon production in hadronic Z decays 316781 . Measurement of the polarization of tau leptons produced in Z decays 316872 . A Direct observation of quark - gluon jet differences at LEP 317141 . Improved measurements of electroweak parameters from $Z$ decays into fermion pairs 317142 . Measurement of three jet distributions sensitive to the gluon spin in e+ e- annihilations at S**(1/2) = 91-GeV 317143 . Measurement of branching ratios and tau polarization from tau ---> e neutrino anti-neutrino , tau ---> mu neutrino anti-neutrino, and tau ---> pi (K) neutrino decays at LEP 317166 . Observation of J / psi production in multi - hadronic Z0 decays 317492 . Search for the neutral Higgs bosons of the MSSM and other two doublet models 317493 . Determination of $Z^0$ resonance parameters and couplings from its hadronic and leptonic decays 317507 . Search for excited charged leptons in Z0 decays 317508 . A Study of Bose-Einstein correlations in e+ e- annihilations at LEP 317747 . Measurements of semileptonic branching fractions of B mesons at the Upsilon (4S) resonance 317781 . Decay mode independent search for a light Higgs boson and new scalars 317816 . Study of orientation of three jet events in Z0 hadronic decays using the DELPHI detector 317825 . The reaction e+ e- ---> gamma gamma (gamma) at Z0 energies 318142 . A Measurement of the lifetime of the tau lepton 318145 . An Investigation into intermittency 318149 . Production and decay of charmed mesons at the Z resonance 318230 . Decay properties of tau leptons measured at the Z0 resonance 318231 . Measurement of the lifetime of B hadrons and a determination of |V(cb)| 318981 . Measurement of the strong coupling constant alpha-s for bottom quarks at the Z0 resonance 318982 . Search for lepton flavor violation in Z0 decays 319519 . Searches for new particles in $Z$ decays using the ALEPH detector 319520 . Measurement of the charged particle multiplicity distribution in hadronic Z decays 319665 . Search for scalar leptoquarks from Z0 decays 319666 . A Search for neutral Higgs particles in Z0 decays 319667 . Measurement of the average lifetime of B hadrons 319668 . Measurement of the absolute luminosity with the ALEPH detector 319673 . Measurement of the tau lepton lifetime 319674 . A Measurement of photon radiation in lepton pair events from Z0 decays 319773 . Two-body D(s)+ decays to eta pi+, eta-prime pi+, eta rho+, eta-prime rho+, phi rho+ 321190 . A Study of charged particle multiplicities in hadronic decays of the Z0 321191 . Measurement of the average B hadron lifetime in Z0 decays 321348 . The Electronic branching ratio of the tau lepton 321380 . A Study of Bose-Einstein correlations in e+ e- annihilation at 91-GeV 321409 . Study of final state photons in hadronic Z0 decay and limits on new phenomena 321656 . Measurement of B0 - anti-B0 mixing in hadronic Z0 decays 321657 . An Improved measurement of alpha-s (M (Z0)) using energy correlations with the OPAL detector at LEP 321997 . The CLEO-II detector 322027 . Properties of multi - hadronic events with a final state photon at s**(1/2) = M (Z0) 322198 . Measurement of tau branching ratios 322262 . Searches for heavy neutrinos from Z decays 322324 . Multiplicity dependence of mean transverse momentum in e+ e- annihilations at LEP energies 322380 . Search for free gluons in hadronic Z0 decays 322483 . Electroweak parameters of the $Z^0$ resonance and the Standard Model: the LEP Collaborations 322497 . A Measurement of sin**2 theta(W) from the charge asymmetry of hadronic events at the Z0 peak 322498 . A Measurement of the b anti-b forward backward asymmetry using the semileptonic decay into muons 322503 . Production of strange particles in the hadronic decays of the Z0 322548 . Evidence for b baryons in Z decays 324035 . Charged particle multiplicity distributions in restricted rapidity intervals in Z0 hadronic decays. 324176 . A Direct determination of the number of light neutrino families from e+ e- ---> neutrino anti-neutrino gamma at LEP 324427 . Determination of alpha-s from energy-energy correlations measured on the Z0 resonance. 324428 . Search for the neutral Higgs boson. 332616 . Measurement of the tau lepton lifetime 332687 . Measurement of the Z0 branching fraction to b quark pairs using the boosted sphericity product 332851 . Test of CP invariance in e+ e- ---> Z0 ---> tau+ tau- and a limit on the weak dipole moment of the tau lepton 333079 . A Global determination of $\alpha^- s$ (M(z0) ) at LEP 333127 . Evidence for the triple gluon vertex from measurements of the QCD color factors in Z decay into four jets 333272 . Determination of alpha(s) in second order QCD from hadronic Z decays 333300 . Evidence for b flavored baryon production in Z0 decays at LEP 333330 . A measurement of electron production in hadronic Z0 decays and a determination of GAMMA (Z0 --> b anti-b) 333334 . Measurement of alpha-s in hadronic Z decays using all orders resummed predictions 334186 . A Test of higher order electroweak theory in Z0 decays to two leptons with an associated pair of charged particles 334322 . Search for a very light CP odd neutral Higgs boson of the MSSM 334323 . Measurement of B - anti-B mixing at the Z using a jet charge method 334473 . Measurement of the tau topological branching ratios at LEP 334575 . Measurement of the production rates of eta and eta-prime in hadronic Z decays 334577 . Properties of hadronic Z decays and test of QCD generators 334947 . A Study of the decays of tau leptons produced on the Z resonance at LEP 334948 . Charged particle multiplicity distributions for fixed number of jets in Z0 hadronic decays 334951 . Determination of alpha-s from hadronic event shapes measured on the Z0 resonance 334952 . Search for the neutral Higgs boson at LEP 334954 . Studies of hadronic event structure and comparisons with QCD models at the Z0 resonance 335147 . A Study of two particle momentum correlations in hadronic Z0 decays 335149 . Measurement of the partial width of the Z0 into b anti-b final states using their semileptonic decays 335153 . Bose-Einstein correlations in the hadronic decays of the Z0 335385 . Exclusive chi (2P) production in upsilon (3S) decay 336121 . D / s+ decays to eta pi+ and eta-prime' pi+. 336122 . D / s+ decays to eta rho+, eta-prime rho+, and Phi rho+. 336178 . An Improved measurement of $B^0$ - $\bar{B}^0$ mixing in $Z^0$ decays 336180 . Measurement of inclusive eta production in hadronic decays of the Z0 336183 . Observation of the semileptonic decays of B(s) and LAMBDA(b) hadrons at LEP 336313 . Isospin mass splittings from precision measurements of D* - D mass differences 336317 . Measurement of the D* (2010) branching fractions 336748 . Lepton asymmetry measurements in anti-B ---> D* l- anti-neutrino and implications for V-A and the form-factors 336768 . Evidence for $B_s^0$ meson production in $Z^0$ decays 336771 . A Measurement of strange baryon production in hadronic Z0 decays 336772 . Inclusive neutral vector meson production in hadronic Z0 decays 336774 . A Measurement of the forward - backward charge asymmetry in hadronic decays of the Z0 336900 . A Test of quantum electrodynamics in the reaction e+ e- ---> gamma gamma (gamma) 336901 . Inclusive J production in Z0 decays 338067 . Updated measurement of the average B hadron lifetime 338069 . Multiplicity fluctuations in hadronic final states from the decay of the Z0 339089 . Measurement of the e+ e- --> b anti-b and e+ e- --> c anti-c forward backward asymmetries at the Z0 resonance 339090 . Determination of the number of light neutrino species 339091 . Isolated hard photon emission in hadronic Z0 decays 339092 . A Measurement of tau polarization in Z0 decays 339093 . A Search for doubly charged Higgs production in Z0 decays 339094 . Evidence for the existence of the strange $b$ flavored meson $B_s^0$ in $Z^0$ decays 339967 . A Measurement of the b baryon lifetime 340583 . Measurements of mean lifetime and branching fractions of b hadrons decaying to J / psi 340878 . Searches for nonminimal Higgs bosons in Z0 decays 340879 . Search for isosinglet neutral heavy leptons in Z0 decays 340880 . High mass photon pairs in lepton+ lepton- gamma gamma events at LEP 341237 . A Study of K0(s) K0(s) Bose-Einstein correlations in hadronic Z0 decays 341556 . Measurement of prompt photon production in hadronic Z decays 341557 . Search for CP violation in Z ---> tau tau 341560 . A Measurement of B meson production and lifetime using D lepton- events in Z0 decays 341561 . Classification of the hadronic decays of the Z0 into b and c quark pairs using a neural network 341573 . Search for nonminimal Higgs bosons in Z0 decays 341723 . Measurement of the b ---> tau- anti-tau-neutrino X branching ratio 341725 . A Precise measurement of the tau lepton lifetime 342625 . Measurement of the tau lepton electronic branching fraction 342627 . Tau decays with one charged particle plus multiple pi0s 342628 . Study of D0 decays into anti-K0 and anti-K*0 342630 . A Search for tau- ---> gamma mu: A Test of lepton number conservation 342631 . A Search for exclusive b ---> u semileptonic decays of B mesons 342766 . A Measurement of K*+- (892) production in hadronic Z0 decays 342768 . A Study of the electric charge distributions of quark and gluon jets in hadronic Z0 decays 342800 . Measurement of inclusive production of light meson resonances in hadronic decays of the Z0 342801 . A Search for lepton flavor violation in Z0 decays 342978 . Tests of factorization with hadronic B meson decays 342980 . Search for color suppressed B meson decays 343082 . QCD coherence studies using two particle azimuthal correlations 343083 . A Study of $B^0$ - $\bar{B}^0$ mixing using semileptonic decays of $B$ hadrons produced from $Z^0$ 343181 . Studies of strong and electroweak interactions using final state photon emission in hadronic Z0 decays 343700 . Search for particles with unexpected mass and charge in Z decays 344328 . Search for anomalous production of single photon events in e+ e- annihilations at the Z resonance 344329 . Determination of quark electroweak couplings from direct photon production in hadronic Z decays 344940 . PHENIX experiment at RHIC 344944 . STAR: Conceptual design report for the Solenoidal Tracker at RHIC 346625 . PHENIX: Preliminary conceptual design report 352696 . Precision measurements of the neutral current from hadron and lepton production at LEP 352710 . Inclusive measurement of B mesons semileptonic branching fractions 352789 . A Study of differences between quark and gluon jets using vertex tagging of quark jets 352823 . Production and decay of the D(s1)+ (2536) 353222 . A Limit on the tau-neutrino mass 353460 . Evidence for chain - like production of strange baryon pairs in jets 353461 . Measurement of the B0 and B+ lifetimes 353690 . Measurement of the strong coupling constant using tau decays 353999 . A Measurement of the tau lifetime 354000 . Measurement of the tau lifetime 354144 . Measurement of the anti-B0 and B- meson lifetimes 354146 . Measurement of the tau polarization at the Z resonance 354187 . Measurement of gamma (Z0 ---> b anti-b) / gamma (z0 ---> hadrons) using leptons 354188 . A Determination of alpha-s (M (Z0)) at LEP using resummed QCD calculations 354226 . Two measurements of B0 anti-B0 mixing 354295 . Results from the L3 experiment at LEP 354296 . A Search for the neutral Higgs boson at LEP 354297 . Search for contact interactions in the reactions $e^{+} e^{-} \to \ell^+ \ell^-$ and $e^{+} e^{-} \to \gamma \gamma$ 354298 . Update of electroweak parameters from $Z$ decays 354481 . Study of the decays lambda(c)+ ---> xi0 K+, lambda(c)+ ---> sigma+ K+ K- and lambda(c)+ ---> xi- K+ pi+ 354482 . Measurement of the triple gluon vertex from four - jet events at LEP 354483 . Measurement of lambda(b) production and lifetime in Z0 hadronic decays 354909 . Determination of alpha-s using the next-to-leading log approximation of QCD 355095 . Evidence for penguins: First observation of B ---> K* (892) gamma 355488 . Search for narrow vector resonances in the $Z$ mass range 355489 . Search for a $Z^\prime$ at the $Z$ resonance 355490 . Measurement of Gamma (b anti-b) / Gamma (had) from hadronic decays of the Z 355926 . Search for anomalous production of high mass photon pairs in e+ e- collisions at LEP 355935 . Determination of alpha-s for b quarks at the Z0 resonance 355937 . Determination of alpha-s from the scaling violation in the fragmentation functions in e+ e- annihilation 356001 . Analysis of hadronic transitions in upsilon (3S) decays 356097 . The Forward - backward asymmetry of e+ e- ---> b anti-b and e+ e- ---> c anti-c using leptons in hadronic Z0 decays 356098 . A Measurement of Gamma (Z0 ---> b anti-b) / Gamma (Z0 ---> hadrons) using an impact parameter technique 356099 . Search for massive, unstable photinos that violate R-parity 356100 . Measurement of the average b hadron lifetime in Z0 decays 356730 . Search for high mass photon pairs in e+ e- ---> f anti-f gamma gamma (f = e, mu, tau, neutrino, q) at LEP 356731 . An Experimental study of gamma gamma ---> hadrons at LEP 356732 . A Measurement of D meson production in Z0 hadronic decays 356733 . A Measurement of the mean lifetimes of charged and neutral B hadrons 356734 . Search for Z0 decays to two leptons and a charged particle - anti-particle pair 357422 . Search for the Standard Model Higgs boson 357423 . Search for a nonminimal Higgs boson produced in the reaction $e^{+} e^{-} \to$ h $Z^{*}$ 357424 . Measurement of the b hadron lifetime with the dipole method 357602 . Observation of B0 decay to two charmless mesons 357603 . First measurement of Gamma (D(s)+ ---> mu+ neutrino) / gamma (D(s)+ ---> phi pi+) 357742 . Measurement of the B(s)0 lifetime 357748 . Measurement of the $B^0$ - $\bar{B}^0$ mixing, Gamma (Z0 $\to b \bar{b}$) / Gamma (Z0 $\to$ hadrons) and semileptonic branching ratios for $b$ flavored hadrons in hadronic z0 decays 357751 . Observation of the time dependence of B(d)0 - anti-B(d)0 mixing 357822 . First measurement of the B(S) meson mass 357910 . Improved measurements of the neutral current from hadron and lepton production at LEP 357912 . A test of the flavor independence of the strong interaction for five flavors 357937 . A Precise measurement of Gamma ($Z \to b \bar{b}$) / Gamma ($Z \to$ hadrons) 357938 . Measurement of the ratio Gamma (b anti-b) / Gamma (hadron) using event shape variables 357941 . A Direct measurement of the invisible width of the Z from single photon counting 358007 . Measurement of the absolute branching fraction for D0 ---> K- pi+ 358413 . A Measurement of the average lifetime of b flavored baryons 358414 . A Study of muon pair production and evidence for tau pair production in photon-photon collisions at LEP 358416 . A Measurement of the forward - backward asymmetry of e+ e- ---> c anti-c and e+ e- ---> b anti-b at center-of-mass energies on and near the Z0 peak using D*+- mesons 358509 . Measurement of charmless semileptonic decays of B mesons 358510 . Measurement of cross-section for gamma gamma ---> p anti-p 358527 . Determination of the effective electroweak mixing angle from Z decay 358528 . Inclusive search for the charmless radiative decay of the b quark (b ---> s gamma) 358862 . Measurement of Gamma (Z0 ---> b anti-b) / Gamma (Z0 ---> hadrons) using impact parameters and leptons 358863 . Measurement of the photon structure function F2 (gamma) in the reaction e+ e- ---> e+ e- + hadrons at LEP 359316 . Measurement of two photon production of the chi(c2) 359401 . Studies of charged particle multiplicity in b quark events 359459 . Limits on the production of scalar leptoquarks from Z0 decays at LEP 360334 . An S matrix analysis of the Z resonance 360335 . Search for lepton flavor violation in Z decays 360336 . Measurement of the average lifetime of b hadrons 360337 . Chi(c) production in hadronic Z decays 360342 . Multiplicity and transverse momentum correlations in multi - hadronic final states in e+ e- interactions at S**(1/2) = 91.2-GeV 360637 . Production rate and decay lifetime measurements of B(s)0 mesons at LEP using D(s) and phi mesons 360638 . Production of Lambda and Lambda anti-Lambda correlations in the hadronic decays of the Z0 360639 . Correlation measurements in Z ---> tau+ tau- and the tau-neutrino helicity 360703 . Observation of Lambda(c)+ decays to Lambda pi+ pi0, Sigma0 pi+, Sigma0 pi+ pi0, and Sigma0 pi- pi+ pi+ 360925 . Search for B0 decays to two charged leptons 361356 . Observation of inclusive B decays to the charmed baryons Sigma(c)++ and Sigma(c)0 361358 . Observation of D0 ---> K+ pi- 363186 . Measurement of eta(c) production in untagged two photon collisions at LEP 363188 . A Study of four fermion processes at LEP 363280 . Production of charmed mesons in Z decays 363342 . Measurement of the $B_s^0$ lifetime 363343 . An Investigation of $B_d^0$ and $B_s^0$ oscillation 363727 . Measurement of the B0 - anti-B0 mixing using the average electric charge of hadron jets in Z0 decays 371608 . Observation of a new charmed strange meson 371609 . Luminosity measurement with the CLEO-II detector 371610 . Measurement of the branching fraction for D+ ---> K- pi+ pi+ 371611 . Study of the decay lambda(c)+ ---> Lambda lepton+ lepton-neutrino 371612 . A Measurement of B (D(s)+ ---> phi lepton+ neutrino) / b (D(s)+ ---> phi pi+) 372141 . Invariant mass dependence of particle correlations in hadronic final states from the decay of the Z0 372142 . Interference of neutral kaons in the hadronic decays of the Z0 372143 . Study of hard scattering processes in multi - hadron production from gamma gamma collisions at LEP 372144 . Measurements of the line shape of the $Z^0$ and determination of electroweak parameters from its hadronic and leptonic decays 372230 . Two photon production of charged pion and kaon pairs 372231 . Measurement of Cabibbo suppressed decays of the tau lepton 372349 . Production and decay of D$_1$(2420)$^0$ and D$_2^*$(2460)$^0$ 372770 . Measurement of the tau- ---> h- pi0 tau-neutrino and tau- ---> h- >= 2 pi0 tau-neutrino branching ratios 372771 . Measurement of the time dependence of B(d)0 <---> anti-B(d)0 mixing using a jet charge technique 372772 . Measurement of the production rates of charged hadrons in e+ e- annihilation at the Z0 372997 . A Study of mean subjet multiplicities in two and three jet hadronic Z0 decays 372999 . Search for the minimal Standard Model Higgs boson 373000 . QCD studies using a cone based jet finding algorithm for $e^{+} e^{-}$ collisions at LEP 373112 . A Measurement of the $B_s^0$ meson mass 373113 . A Precision measurement of the average lifetime of B hadrons 373114 . Improved measurements of cross-sections and asymmetries at the Z0 resonance 373116 . Measurement of the e+ e- ---> gamma gamma (gamma) cross-section at LEP energies 373119 . Heavy flavor production and decay with prompt leptons in the ALEPH detector 373120 . Heavy quark tagging with leptons in the ALEPH detector 373121 . $Z$ production cross-sections and lepton pair forward - backward asymmetries 373188 . Study of the five charged pion decay of the tau lepton 373751 . One prong tau decays into charged kaons 373752 . K0 production in one prong tau decays 374340 . Semileptonic branching fractions of charged and neutral B mesons 374394 . Measurement of the anti-B ---> D* lepton anti-neutrino branching fractions and |V(cb)| 374451 . Search for the standard model Higgs boson in Z0 decays 374452 . Measurement of the $B^0$ - $\bar{B}^0$ mixing parameter in DELPHI 374696 . Measurement of cross-sections and leptonic forward - backward asymmetries at the z pole and determination of electroweak parameters 374698 . Measurement of inclusive production of neutral hadrons from Z decays 374700 . Measurement of the inclusive B ---> tau-neutrino X branching ratio 375060 . Production of K0 and Lambda in hadronic Z decays 375061 . A Measurement of A(b)(FB) in lifetime tagged heavy flavor Z decays 375479 . Observation of mono - jet events and tentative interpretation 375574 . Observation of exclusive decays of $B$ mesons at LEP 375575 . Search for a scalar top quark using the OPAL detector 375579 . Measurement of the time dependence of B(d)0 <---> anti-B(d)0 mixing using leptons and D*+- mesons 375599 . Measurement of Gamma (Z0 ---> b anti-b) / Gamma (Z0 ---> hadrons) using a double tagging method 375600 . Determination of an upper limit for the mass of the tau-neutrino at LEP 375601 . Measurements of the inclusive branching ratios of tau leptons to K0(s) and charged K* (892) 375621 . Search for Neutral Higgs Bosons in the Minimal Supersymmetric Extension of the Standard Model 375622 . Measurement of single photon production in e+ e- collisions near the Z0 resonance 375720 . First measurement of the inclusive rate for the radiative penguin decay $b \to s \gamma$ 375789 . Search for pair produced heavy scalars in Z0 decays 375790 . Charged kaon production in tau decays at LEP 375961 . Search for rare hadronic B decays 375963 . A Study of radiative muon pair events at $Z^0$ energies and limits on an additional $Z^\prime$ gauge boson 375965 . J / psi production in the hadronic decays of the Z 376525 . Upsilon (1s) ---> gamma + noninteracting particles 376541 . Measurement of the tau lepton polarization and its forward - backward asymmetry from Z0 decays 376812 . Search for exclusive charmless hadronic B decays 376814 . A Search for B ---> tau-neutrino 376816 . A Constraint on |V(td) / V(ts)| from B ---> rho (omega) gamma / B ---> K* gamma 376841 . The Inclusive decay B ---> eta X 376843 . Inclusive decays of $B$ mesons to charmonium 376848 . Evidence for exclusive B decays to final states containing a charmed baryon 376849 . Search for CP violation in D0 decay 376850 . Search for D0 ---> K+ pi- pi0 376851 . Measurement of the tau lepton lifetime 376852 . Pi- pi+ energy correlation in tau pair events 376855 . Observation of tau decays with two neutral kaons 376857 . A Study of jet production rates in the four flavor continuum and a test of QCD 376858 . Measurement of hadronic spectral moments in tau decays and a determination of alpha-s 376863 . Measurements of B ---> D(s)+ X decays 376874 . A Study of baryon production in B decay: Search for semileptonic decays of B mesons to charmed baryons and the first observation of Xi(c) production in B decay 376875 . Measurement of the form-factors for anti-B0 ---> D*+ lepton- anti-neutrino 376876 . Measurement of the branching ratio of B ---> X e neutrino with lepton tags 377106 . Measurement of the B0 - anti-B0 mixing parameter and the Z ---> b anti-b forward - backward asymmetry 377110 . Search for B ---> K lepton+ lepton- and B ---> K* lepton+ lepton- decays 377111 . Observation of D1+ (2430) and D2*+ (2470) 377112 . New decay modes of the Lambda(c)+ charm baryon 377113 . Measurement of the ratios B (D(s)+ ---> eta lepton+ neutrino) / B (D(s)+ ---> phi lepton+ neutrino) and B (D(s)+ ---> eta-prime lepton+ neutrino) / B (D(s)+ ---> phi lepton+ neutrino) 377114 . Form-factor ratio measurement in Lambda(c)+ ---> Lambda e+ electron-neutrino 377115 . Measurement of B (tau- ---> h- h+ h- (pi0) tau-neutrino) 377116 . Study of the decays tau- ---> K(s)0 h- (pi0) tau-neutrino 377117 . Measurement of B (tau- ---> tau-neutrino K- K0) and b (tau- ---> tau-neutrino K- K0 pi0) 377118 . Measurement of the branching ratio for Upsilon (1S) ---> tau+ tau- 377119 . Search for neutrinoless decays of the tau lepton 377120 . First observation of Xi(c)+ ---> Xi0 e+ electron-neutrino and a measurement of the Xi(c)+ / Xi(c)0 lifetime ratio 377121 . Measurement of the ratios of form-factors in the decay D(s)+ ---> phi e+ electron-neutrino 377122 . Observation of B ---> psi pi decays 377273 . Updated measurement of the tau lifetime 377274 . A Measurement of the QCD color factor ratios C(A) / C(F) and T(F) / C(F) from angular correlations in four jet events 377392 . Measurement of the b ---> tau- anti-tau-neutrino X inclusive / exclusive branching ratios 377393 . Measurement of the branching fraction for Upsilon (1S) ---> tau+ tau- 377487 . Production characteristics of K0 and light meson resonances in hadronic decays of the Z0 377489 . Measurement of the Gamma (b anti-b) / Gamma (hadron) branching ratio of the Z by double hemisphere tagging 377490 . Measurement of time dependent B(d)0 - anti-B(d)0 mixing 378295 X The L3 silicon microvertex detector 378319 . Observation of D1+ (2420) and D2*+ (2460) 379212 . Determination of event shape distributions and alpha-s(b) from Z0 ---> b anti-b events at LEP 380423 . Measurement of the b ---> tau- anti-tau-neutrino X branching ratio and an upper limit on B- ---> tau- anti-tau-neutrino 380424 . Study of the four fermion final state at the Z resonance 381044 . A Measurement of tau polarization at LEP 381046 . B* production in Z decays at LEP 381075 . Energy and particle flow in three jet and radiative two jet events from hadronic Z decays 381167 . A Test of CP invariance in Z0 ---> tau+ tau- using optimal observables 381617 . Performance of the ALEPH detector at LEP 381645 . Search for CP violation in the decay Z ---> tau+ tau- 381665 . A Study of D*+ pi- production in semileptonic B decay 381696 . Observation of excited baryon states decaying to Lambda(c)+ pi+ pi- 381699 . First measurement of the rate for the inclusive radiative penguin decay $b \to s \gamma$ 382035 . Measurement of the forward - backward asymmetry of e+ e- ---> Z ---> b anti-b using prompt leptons and a lifetime tag 382036 . First evidence of hard scattering processes in single tagged gamma gamma collisions 382038 . Measurement of exclusive branching fractions of hadronic one space prong tau decays 382058 . Study of the subjet structure of quark and gluon jets 382179 . Inclusive pi+-, K+- and (p, anti-p) differential cross-sections at the Z resonance 382181 . Measurement of the forward - backward asymmetry of charm and bottom quarks at the Z pole using D*+- mesons 382185 . Observations of pi - B charge - flavor correlations and resonant B pi and B K production 382187 . Search for anomalous Z --> gamma gamma gamma events at LEP 382207 . Michel parameters and tau-neutrino helicity from decay correlations in Z --> tau+ tau- 382208 . Observation of orbitally excited B mesons 382219 . A Measurement of the production of D*+- mesons on the Z0 resonance 382221 . Inclusive decays of $B$ mesons to charmonium 382284 . Search for heavy neutral Higgs bosons in two doublet models 382285 . First measurement of the strange quark asymmetry at the Z0 peak 382382 . Measurement of energetic single photon production at LEP 392228 . New decay modes of the Lambda(c)+ charm baryon 392257 . Production of charged particles, K0(s), K+-, p and Lambda in Z --> b anti-b events and in the decay of b hadrons 392342 . Form-factor ratio measurement in Lambda(c)+ ---> Lambda e+ electron-neutrino 392480 . A Study of charm meson production in semileptonic B decays 392529 . Measurement of the weak charged current structure in semileptonic b hadron decays at the Z peak 392530 . Measurement of Gamma ($b \bar{b}$) / Gamma (hadrons) using impact parameter measurements and lepton identification 392538 . Measurement of the leptonic branching ratios of the tau lepton 392704 . Measurement of the decay asymmetry parameters in Lambda(c)+ ---> Lambda pi+ and Lambda(c)+ ---> Sigma+ pi0 392864 . A Study of $B$ meson oscillations using dilepton events 392865 . An Upper limit for the tau-neutrino mass from tau --> 5 pi (pi0) tau-neutrino decays 392889 . Comparisons of the properties of final state photons in hadronic Z0 decays with predictions from matrix element calculations 392892 . Search for neutralinos in $Z$ decays 392978 . Search for supersymmetric particles with R-parity violation in $Z$ decays 393292 . Improved measurements of the $B^0$ and $B^{+}$ meson lifetimes 393293 . An Improved measurement of the $B_s^0$ lifetime 393413 . Improved tau polarization measurement 393414 . Measurement of the hadronic decay current in tau- --> pi- pi- pi+ tau-neutrino 393416 . Test of the flavor independence of alpha-s 393503 . The Production of neutral kaons in Z0 decays and their Bose-Einstein correlations 393504 . Search for heavy charged particles and for particles with anomalous charge in $e^{+} e^{-}$ collisions at LEP 393519 . A Study of jet production rates in the four flavor continuum and a test of QCD 393522 . Measurement of the ratio of branching fractions B (D0 ---> pi- e+ electron-neutrino) / B (D0 ---> K- e+ electron-neutrino) 393792 . Production of strange B baryons decaying into Xi-+ - lepton-+ pairs at LEP 393793 . Measurements of the tau polarization in Z0 decays 393953 . A Measurement of charged particle multiplicity in Z0 --> c anti-c and Z0 --> b anti-b events 393954 . Inclusive strange vector and tensor meson production in hadronic Z0 decays 394052 . Inclusive measurements of the K+- and p / anti-p production in hadronic Z0 decays 394246 . A Search for B ---> lepton anti-lepton-neutrino 394354 . Tests of QED at LEP energies using e+ e- --> gamma gamma (gamma) and e+ e- --> lepton+ lepton- gamma gamma 394355 . A Search for lepton flavor violating Z0 decays 394716 . Strange baryon production in Z hadronic decays 394752 . Measurement of the D*+- cross-section in two photon collisions at LEP 394753 . The Forward - backward asymmetry for charm quarks at the Z pole 394959 . A Measurement of the forward - backward asymmetry of e+ e- --> b anti-b by applying a jet charge algorithm to lifetime tagged events 394960 . A Measurement of the Lambda(b)0 lifetime 394961 . Evidence for gluon interference in hadronic Z decays 395025 . One prong tau decays with neutral kaons 395026 . B* production in Z decays 395029 . Lifetimes of charged and neutral B hadrons using event topology 395030 . A Measurement of $B^{+}$ and $B^0$ lifetimes using $\bar{D} \ell^+$ events 395032 . Lifetime and production rate of beauty baryons from Z decays 395371 . A Study of QCD structure constants and a measurement of alpha-s (M(Z0)) at LEP using event shape observables 395372 . Measurement of the tau- ---> h- h+ h- tau-neutrino and tau- ---> h- h+ h- >= 1 pi0 tau-neutrino branching ratios 395432 . Search for CP violation in D0 decay 395450 . Measurement of the longitudinal, transverse and asymmetry fragmentation functions at LEP 395451 . Measurement of the multiplicity of charm quark pairs from gluons in hadronic Z0 decays 395842 . Observation of short range three particle correlations in e+ e- annihilations at LEP energies 396179 . A Model independent measurement of quark and gluon jet properties and differences 396397 . Investigation of the string effect using final state photons 396398 . Measurements of the $b$ baryon lifetime 396711 . Measurement of alpha-s from tau decays 396884 . A Measurement of the photon structure function F2(gamma) at an average Q**2 of 12-GeV**2/c**4 396889 . Measurements of the charged particle multiplicity distribution in restricted rapidity intervals 396895 . Limit on B(s)0 oscillation using a jet charge method 397145 . Search for exclusive charmless B meson decays with the DELPHI detector at LEP 397391 . Study of prompt photon production in hadronic Z0 decays 397395 . Measurement of the average $b$ baryon lifetime and the product branching ratio f ($b \to Lambda_b$ ) x BR (Lambda($b$) $\to \Lambda \ell^-$ anti-neutrino $X^{)}$ 397664 . Search for exclusive charmless hadronic B decays 397665 . Observation of the Cabibbo suppressed charmed baryon decay lambda(c)+ ---> p phi 397770 . Observation of a narrow state decaying into Xi(c)+ pi- 397787 . Observation of the Xi(c)+ charmed baryon decays to Sigma+ K- pi+, Sigma+ anti-K*0, and Lambda K- pi+ pi+ 397788 . Observation of the isospin violating decay D(s)*+ ---> D(s)+ pi0 397789 . Measurements of the ratios B (D(s)+ ---> eta lepton+ neutrino) / B (D(s)+ ---> phi lepton+ neutrino) and B (D(s)+ ---> eta-prime lepton+ neutrino) / B (D(s)+ ---> phi lepton+ neutrino) 398193 . First measurement of the quark to photon fragmentation function 398194 . Measurement of D(s)+ meson production in Z decays and of the anti-B(s)0 lifetime 398195 . Measurement of alpha-s from scaling violations in fragmentation functions in e+ e- annihilation 398228 . The Inclusive decay B --- eta X 398317 . Inclusive production of neutral vector mesons in hadronic Z decays 398319 . Measurement of the effective b quark fragmentation function at the Z resonance 398320 . Delta++ production in hadronic Z0 decays 398321 . A Measurement of the tau leptonic branching fractions 398322 . Upper limits on the branching ratios tau --> mu gamma and tau --> e gamma 398339 . A Measurement of the |V(cb)| from anti-B(0) --> D*+- lepton- anti-lepton-neutrino 398426 . Production of excited beauty states in Z decays 398498 . Study of the K(s)0 K(s)0 final state in two photon collisions 399737 . Measurement of Delta++ (1232) production in hadronic Z decays 399990 . A Comparison of $b$ and ($u d s^{)}$ quark jets to gluon jets 400001 . Search for neutral charmless B decays at LEP 400574 . Search for the decays B(d)0 --> gamma gamma and B(s)0 --> gamma gamma 400623 . Measurements of the decays tau- ---> h- h+ h- tau-neutrino and tau- ---> h- h+ h- pi0 tau-neutrino 400812 . A Study of b quark fragmentation into B0 and B+ mesons at LEP 400822 . Measurement of the $B_s$ 0 lifetime and production rate with $D_s - \ell^+$ combinations in $Z$ decays 400823 . Measurement of the tau lepton lifetime 401100 . Measurement of inclusive pi0 production in hadronic Z0 decays 401102 . Tau leptonic branching ratios 401274 . Measurements of the B semileptonic branching fraction with lepton tags 401554 . A Precise measurement of the average $b$ hadron lifetime 401599 . Measurements of B ---> D(s)+ X decays 401601 . Measurement of the tau- ---> e- anti-electron-neutrino tau-neutrino branching ratio 401603 . Tau hadronic branching ratios 401612 . Search for promptly produced heavy quarkonium states in hadronic Z decays 401961 . Measurements of the inclusive semielectronic D0 branching fraction 402178 . A Precise measurement of the tau lepton lifetime 402487 . $J/\psi$ and $\psi^\prime$ production in hadronic $Z^0$ decays 402488 . Test of the exponential decay law at short decay times using $\tau$ leptons 402895 . Measurement of Lambda(b) polarization in Z decays 403254 . Energy dependence of the differences between the quark and gluon jet fragmentation 403296 . Tau decays into three charged leptons and two neutrinos 403297 . Measurement of the form-factors for anti-B0 ---> D*+ lepton- anti-neutrino 404106 . Measurement of the heavy quark forward - backward asymmetries and average $B$ mixing using leptons in multi - hadronic events 404273 . Study of B ---> psi rho 404562 . Quark and gluon jet properties in symmetric three jet events 404590 . Observation of new decay modes of the charmed strange baryon Xi(c)+ 404602 . Measurement of eta production in two and three jet events from hadronic Z decays at LEP 404603 . Search for excited leptons in e+ e annihilation at s**(1/2) = 130-GeV - 140-GeV 404604 . Measurement of hadron and lepton pair production at 130-GeV < $\sqrt{s}$ < 140-GeV at LEP 404605 . Search for a narrow resonance in Z0 decays into hadrons and isolated photons 404811 . Performance of the DELPHI detector 404814 . Search for charged Higgs bosons using the OPAL detector at LEP 404815 . Observation of Upsilon production in hadronic Z0 decays 404916 . Study of the structure of hadronic events and determination of alpha-s at s**(1/2) = 130-GeV and 136-GeV 415407 . Limits on flavor changing neutral currents in D0 meson decays 415408 . Decays of tau leptons to final states containing K(s)0 mesons 415409 . First observation of the decay tau- ---> K- eta tau-neutrino 415612 . Measurement of the branching fraction for D(s)- ---> phi pi- 415744 . Charged particle multiplicity in e+ e-interactions at s**(1/2) = 130-GeV 415745 . Measurement of Lambda polarization from Z decays 415746 . Search for new phenomena using single photon events in the DELPHI detector at LEP 415889 . Physics with ARGUS 415895 . A Measurement of B (D0 ---> K- pi+ pi0) / B (D0 ---> K- pi+) 415897 . Analysis of D0 ---> K anti-K X decays 415900 . Measurement of the B(d)0 oscillation frequency using kaons, leptons and jet charge 416097 . Updated precision measurement of the average lifetime of B hadrons 416098 . Production of SIGMA0 and OMEGA- in Z decays 416099 . Determination of |V(cb)| from the semileptonic decay B0 --> D*- lepton - neutrino 416100 . Improved measurement of the $\bar{B}^0$ and $B^{-}$ meson lifetimes 416101 . Search for supersymmetric particles in e+ e- collisions of center-of-mass energies of 130-GeV and 136-GeV 416137 . Determination of sin**2 theta(w)(eff) using jet charge measurements in hadronic Z decays 416141 . Search for exclusive decays of the LAMBDA(b) baryon and measurement of its mass 416142 . Measurement of the partial decay width R(b) sup(0) = GAMMA (b anti-b) / GAMMA(had) of the Z with the DELPHI detector at LEP 416351 . Improved measurement of the lifetime of the tau lepton 416353 . Topological search for the production of neutralinos and scalar particles 416354 . Search for chargino and neutralino production using the OPAL detector at s**(1/2) = 130-GEV - 136-GeV at LEP 416357 . Determination of the average lifetime of b baryons 416471 . Observation of an excited charmed baryon decaying into Xi(c)0 pi+ +416782 X COMPASS: A Proposal for a Common Muon and Proton Apparatus for Structure and Spectroscopy 416741 . First measurement of f2-prime (1525) production in Z0 hadronic decays 416744 . Measurement of muon pair production at 50-GeV < s**(1/2) < 86-GeV at LEP 416745 . Measurement of cross-sections and asymmetries in e+ e- collisions at 130-GeV - 140-GeV center-of-mass energy 417261 . Study of the B(s)0 anti-B(s)0 oscillation frequency using D(s)- lepton+ combinations in Z decays 417265 . Mean lifetime of the B(s)0 meson 417266 . Measurement of the mass of the Lambda(b) baryon 418003 . Search for supersymmetric particles at 130-GeV < $\sqrt{s}$ < 140-GeV at LEP 418006 . Upper limit on the tau-neutrino mass from tau --> 3 h tau-neutrino decays 418007 . QCD studies with e+ e- annihilation data at 130-GeV and 136-GeV 418010 . A Study of four fermion final states with high multiplicity at LEP 418011 . Measurements with photonic events in e+ e- collisions at center-of-mass energies of 130-GeV - 140-GeV 418087 . Search for unstable sequential neutral and charged heavy leptons in e+ e- annihilation at s**(1/2) = 130-GeV and 136-GeV 418329 . First study of the interference between initial and final state radiation at the Z resonance 418417 . Measurement of the Michel parameters and the average tau-neutrino helicity from tau decays in e+ e- ---> tau+ tau- 418418 . Kaon interference in the hadronic decays of the Z0 418420 . A Study of single and multi - photon production in e+ e- collisions at center-of-mass energies of 130-GeV and 136-GeV 418421 . Four jet final state production in e+ e- collisions at center-of-mass energies of 130-GeV and 136-GeV 418663 . Search for new particles in hadronic events with isolated photons 418664 . Observation of multiple hard photon final states at s**(1/2) = 130-GeV - 140-GeV at LEP 418665 . Measurement of the branching ratios b --> e neutrino X, mu neutrino X, tau-neutrino X and neutrino X 418670 . A Study of charm hadron production in Z0 ---> c anti-c and Z0 ---> b anti-b decays at LEP 418937 . Search for anomalous production of single photons at $\sqrt{s}$ = 130-GeV and 136-GeV 418939 . Study of radiative leptonic events with hard photons and search for excited charged leptons at S**(1/2) = 130-GeV - 136-GeV 419905 . Measurement of the b forward - backward asymmetry and mixing using high p(T) leptons 419908 . Prompt J / psi production in hadronic Z0 decays 419909 . A First measurement of the Lambda anti-Lambda and Lambda Lambda (anti-Lambda anti-Lambda) spin compositions in hadronic Z0 decays 419911 . Search for the lightest chargino at s**(1/2) = 130-GeV and 136-GeV in DELPHI 419912 . Search for high mass gamma gamma resonances in e+ e ---> lepton+ lepton- gamma gamma, neutrino anti-neutrino gamma gamma and q anti-q gamma gamma at LEP-1 420342 . Mass limit for the standard model Higgs boson with the full LEP-1 ALEPH data sample 420343 . Measurement of the B(d)0 meson oscillation frequency 420345 . A Measurement of the $B_d^0$ oscillation frequency using leptons and $D^{*+-}$ mesons 420348 . Search for CP violation in the decay Z --> b anti-b g 420527 . Strange b baryon production and lifetime in Z decays 420528 . Measurement of inclusive K*0 (892), Phi (1020) and K(2)*0 (1430) production in hadronic Z decays 420645 . Mass limit for the lightest neutralino 420673 . Search for heavy lepton pair production in e+ e- collisions at center-of-mass energies of 130-GeV and 136-GeV 420727 . Measurement of the tau lepton lifetime 420961 . Observation of exclusive B decays to final states containing a charmed baryon 420962 . First measurement of the B ---> pi lepton neutrino and B ---> rho (omega) lepton neutrino branching fractions 421545 . Study of rare b decays with the DELPHI detector at LEP 421546 . Studies of QCD in e+ e- ---> hadrons at E(cm) = 130-GeV and 136-GeV 421548 . Transverse momentum correlations in hadronic Z decays 421549 . Search for excited leptons at 130-GeV - 140-GeV 421550 . Four fermion production in e+ e- collisions at center-of-mass energies of 130-GeV and 136-GeV 421552 . Measurement of hadron and lepton pair production from $e^{+} e^{-}$ annihilation at center-of-mass energies of 130-GeV and 136-GeV 421560 . Search for charginos and neutralinos with R-parity violation at s**(1/2) = 130-GeV and 136-GeV 421561 . Production of orbitally excited charm mesons in semileptonic B decays 421562 . Search for neutral Higgs boson production through the process e+ e- --> Z* H0 421815 . A Precise measurement of the tau polarization and its forward - backward asymmetry at LEP 421816 . Multiplicity dependence of Bose-Einstein correlations in hadronic Z0 decays 421817 . Search for unstable neutral and charged heavy leptons in e+ e- collisions at s**(1/2) = 130-GeV and 136-GeV 421818 . Search for excited leptons in e+ e- collisions at s**(1/2) = 130-GeV and 136-GeV 421976 . Searches for supersymmetric particles and anomalous four jet production at $\sqrt{s}$ = 130-GeV and 136-GeV at LEP 421977 . Sigma+, Sigma0 and Sigma- hyperon production in hadronic Z0 decays 421978 . Strange baryon production in hadronic Z0 decays 421984 . A Study of tau decays involving eta and omega mesons 421985 . Improved measurement of the B(d)0 - anti-B(d)0 oscillation frequency 421994 . Search for neutralinos, scalar leptons and scalar quarks in e+ e- interactions at s**(1/2) = 130-GeV and 136-GeV. 421995 . A Measurement of the charm and bottom forward - backward asymmetries using D mesons at LEP 421997 . Test of the four fermion contact interaction in e+ e- collisions at 130-GeV - 140-GeV 423034 . Observation of charmless hadronic b decays 423486 . Test of QCD analytic predictions for the multiplicity ratio between gluon and quark jets 423574 . Measurement of the branching fraction of the radiative decay tau- ---> mu- anti-muon-neutrino tau-neutrino gamma 423696 . Charm counting in b decays 423697 . Search for neutral Higgs bosons in $Z^0$ decays using the OPAL detector at LEP 424070 . Measurement of the lifetime of the tau lepton 424112 . Tuning and test of fragmentation models based on identified particles and precision event shape data 424575 . Observation of two excited charmed baryons decaying into Lambda(c)+ pi+- 424628 . Search for lepton flavor number violating Z0 decays 424629 . Measurement of event shape and inclusive distributions at S**(1/2) = 130-GeV and 136-GeV 424630 . An Upper limit for Br (Z0 ---> g g g) from symmetric three jet Z0 hadronic decays 424635 . Inclusive jet production in photon-photon collisions at $\sqrt{s}$ = 130-GeV and 136-GeV 424636 . Search for chargino and neutralino production in $e^{+} e^{-}$ collisions at $\sqrt{s}$ = 161-GeV 424637 . Search for scalar top and scalar bottom quarks using the OPAL detector at LEP 425065 . A Measurement of the average bottom hadron lifetime 425066 . Search for excited leptons in e+ e- collisions at s**(1/2) = 161-GeV 425120 . A Search for nonresonant B+ ---> h+ h- h+ decays 425121 . Search for phi mesons in tau lepton decay 425319 . Search for unstable neutral and charged heavy leptons in e+ e- collisions at S**(1/2) = 161-GeV 425320 . Measurement of the mass of the $W$ boson in $e^{+} e^{-}$ collisions at $S^{(1/2)}$ = 161-GeV 425867 . Search for exclusive $B$ decays to $J/\psi$ and $\eta$ or $\pi^0$ with the L3 detector 425868 . Search for neutral $B$ meson decays to two charged leptons 425927 . Measurement of the direct photon spectrum in upsilon (1s) decays 425943 . Measurements of |V(cb)|, form-factors and branching fractions in the decays anti-B0 ---> D*+ lepton- anti-lepton-neutrino and anti-B0 ---> D+ lepton- anti-lepton-neutrino 426207 . Measurement of the QED longitudinal structure function of the photon using azimuthal correlations at LEP 426208 . Photonic events with large missing energy in e+ e- collisions at s**(1/2) = 161-GeV 426209 . Analysis of hadronic final states and the photon structure function F2 (gamma) in deep inelastic electron - photon scattering at LEP 426210 . Production of fermion pair events in e+ e- collisions at 161-GeV center-of-mass energy 426231 . Experimental test of lepton universality in tau decay 426233 . Search for neutrinoless tau decays: tau ---> e gamma and tau ---> mu gamma 426505 . Search for pair production of heavy objects in 4 jet events at s**(1/2) = 130-GeV - 136-GeV 426506 . A Precise measurement of the B(d)0 meson lifetime using a new technique 426799 . Search for the standard model Higgs boson in e+ e- collisions at s**(1/2) = 161-GeV 426800 . A Measurement of |V(cb)| using anti-B0 ---> D*+ lepton- anti-lepton-neutrino decays 427104 . An Improved measurement of R($b$) using a double tagging method 427105 . Search for excited leptons in e+ e- collisions at s**(1/2) = 161-GeV 427106 . Study of the weak charged hadronic current in b decays 427107 . Measurement of inclusive omega and eta-prime production in hadronic Z decays 427130 . Measurement of the semileptonic branching fraction of inclusive b baryon decays to Lambda 427131 . Inclusive production of neutral pions in hadronic Z decays 427323 . Search for B ---> mu anti-muon-neutrino gamma and B ---> e anti-electron-neutrino gamma 428072 . Studies of quantum chromodynamics with the ALEPH detector 428073 X The Forward muon detector of L3 428162 . Search for the B(c) Meson 428163 . Search for neutral heavy leptons produced in Z decays 428178 . A Measurement of alpha-s from the scaling violation in e+ e- annihilation 428179 . Search for stable heavy charged particles in e+ e- collisions at s**(1/2) = 130-GeV to 136-GeV, 161-GeV and 172-GeV 428228 . Identified particles in quark and gluon jets 428245 . A Measurement of the Michel parameters in leptonic decays of the tau 428274 . Search for charged scalar leptons using the OPAL detector at s**(1/2) = 161-GeV 428470 . Measurement of D(s)- ---> tau- anti-tau-neutrino and a new limit for B- ---> tau- anti-tau-neutrino 428492 . Search for CP violation in Z0 ---> tau+ tau- and an upper limit on the weak dipole moment of the tau lepton 428493 . B* production in Z0 decays 439530 . Study of gluon versus quark fragmentation in Upsilon --> g g gamma and e+ e- --> q anti-q gamma events at s**(1/2) = 10-GeV 439560 . Analyses of D+ --> K(S)0 K+ and D+ ---> K(S)0 pi+ 439745 . Lambda anti-lambda production in two photon interactions at CLEO 439746 . Tau-neutrino helicity from h+- energy correlations 439797 . The Topology dependence of charged particle multiplicities in three jet events 440051 . A Measurement of the QCD color factors and a limit on the light gluino 440102 . Measurement of the triple gauge boson coupling $\alpha$ (w $\phi^{)}$ from $W^{+} W^{-}$ production in $e^{+} e^{-}$ collisions at $\sqrt{s}$ = 161-GeV 440103 . Study of phi (1020), D*+- and B* spin alignment in hadronic Z0 decays 440104 . Measurements of the b quark forward - backward asymmetry around the Z0 peak using jet charge and vertex charge 440217 . Measurement and interpretation of the $W$ pair cross-section in $e^{+} e^{-}$ interactions at 161-GeV 440218 . Study of the muon pair production at center-of-mass energies from 20-GeV to 136-GeV with the ALEPH detector 440388 . Study of the B0 semileptonic decay spectrum at the Upsilon (4s) resonance 440407 . Search for excited leptons in e+ e- annihilation at s**(1/2) = 161-GeV 440408 . Pair production of $W$ bosons in $e^{+} e^{-}$ interactions at $\sqrt{s}$ = 161-GeV 440588 . Measurement of the spectral functions of vector current hadronic tau decays 440589 . Measurement of the tau lepton lifetime with the three-dimensional impact parameter method 440717 . Measurement of the decay amplitudes and branching fractions of $b \to J/\psi K^{*}$ and $b \to J/\psi K$ decays 440721 . QCD studies with e+ e- annihilation data at 161-GeV 440724 . A Measurement of R(b) using a lifetime mass tag 440725 . A Measurement of R(b) using mutually exclusive tags 440904 . Measurement of the neutron spin structure function g1(n) with a polarized He-3 internal target 440969 . The Inclusive decays B --> D X and B --> D* X 441040 . A Measurement of the hadronic decay current and the tau-neutrino helicity in tau- ---> pi- pi- pi+ tau-neutrino 441187 . Measurement of the branching fraction for D0 ---> K- pi+ 441188 . Measurement of the $W$ mass in $e^{+} e^{-}$ collisions at production threshold 441189 . Rapidity correlations in Lambda baryon and proton production in hadronic Z0 decays 441326 . Limit on the two photon production of the glueball candidate f(J) (2220) at CLEO 441373 . Search for the $B_c$ meson in hadronic $Z$ decays 441553 . Studies of the Cabibbo suppressed decays d+ ---> pi0 lepton+ neutrino and d+ ---> eta e+ electron-neutrino 441608 . Measurement of correlations between pions from different Ws in e+ e ---> W+ W- events 441927 . Production of Single $W$ Bosons at LEP 442224 . Measurement of the transverse spin correlation in Z --> tau+ tau- decays 442338 . Search for neutrinoless tau decays involving pi0 or eta mesons 442539 . Search for the Decays B0 ---> D*+ D*- 442600 . Production of P wave charm and charm - strange mesons in hadronic $Z^0$ decays 442601 . A Study of $B$ meson oscillations using hadronic $Z^0$ decays containing leptons 442880 . Measurement of the multiplicity of gluons splitting to bottom quark pairs in hadronic Z0 decays 442909 . Observation of the decay D(s)+ ---> omega pi+ 442910 . First observation of inclusive B decays to the charmed strange baryons Xi(c)0 and Xi(c)+ 443012 . A Study of the reaction e+ e- ---> mu+ mu- gamma (ISR) at LEP and search for new physics at annihilation energies near 80-GeV 443150 . Determination of the Michel parameters and the tau-neutrino helicity in tau decay 443356 . Measurement of the transverse spin correlations in the decay Z ---> tau+ tau- 443562 . Measurement of $B_d^0$ - $\bar{B}_d$ 0 oscillations 443563 . QCD studies and determination of alpha-s in e+ e- collisions at s**(1/2) = 161-GeV and 172-GeV 443564 . Production of e, mu and tau pairs in untagged two photon collisions at LEP 443565 . Inclusive $J/\psi$, $\psi^\prime$ and chi($c$) production in hadronic $Z$ decays 443566 . Cross-section of hadron production in gamma gamma collisions at LEP 443568 . Search for scalar top and scalar bottom quarks at $\sqrt{s}$ = 170-GeV - 172-GeV in $e^{+} e^{-}$ collisions 443704 . Measurement of the anti-B ---> D lepton anti-neutrino partial width and form-factor parameters 443800 . An Upper limit on the branching ratio for tau decays into seven charged particles 443801 . K(s)0 and Lambda production in quark and gluon jets at LEP 443802 . Measurement of hadron and lepton pair production at 161-GeV < s**(1/2) < 172-GeV at LEP 443827 . A New upper limit on the decay eta --> e+ e- 443920 . Search for sleptons in e+ e- collisions at center-of-mass energies of 161-GeV and 172-GeV 444150 . Measurement of the spin density matrix for the rho0, K*0 (892) and phi produced in Z0 decays 444151 . Search for anomalous four jet events in e+ e- annihilation at s**(1/2) = 130-GeV to 172-GeV 444313 . Search for pair production of longlived heavy charged particles in e+ e- annihilation 444680 . Observation of charge ordering in particle production in hadronic Z0 decay 444744 . A New measurement of b ---> D* pi branching fractions 444745 . First observation of tau ---> 3 pi eta tau-neutrino and tau ---> f1 pi tau-neutrino decays 444980 . Three-prong $\tau$ decays with charged kaons 444981 . Search for the Standard Model Higgs boson in e+ e- collisions at s**(1/2) = 161-GeV, 170-GeV and 172-GeV 445190 . An Updated study of B meson oscillations using dilepton events 445324 . Measurement of $W$ pair cross-sections in $e^{+} e^{-}$ interactions at $\sqrt{s}$ = 172-GeV and $W$ decay branching fractions 445325 . Resonance formation in the pi+ pi- pi0 final state in two photon collisions 445326 . Measurement of the branching fractions and forward - backward asymmetries of the Z0 into light quarks 445331 . Search for the neutral Higgs bosons of the MSSM in e+ e- collisions at s**(1/2) from 130-GeV to 172-GeV 445351 . A Measurement of the total cross-section for e+ e- ---> hadrons at s**(1/2) = 10.52-GeV 445600 . Study of the decay tau- --> 2 pi- pi+ 3 pi0 tau-neutrino 445685 . Search for the decay tau- ---> 4 pi- 3 pi+ (pi0) tau-neutrino 445998 . Study of hadronic events and measurements of alpha-s between 30-GeV and 91-GeV 445999 . Search for heavy neutral and charged leptons in e+ e- annihilation at s**(1/2) = 161-GeV and s**(1/2) = 172-GeV 446000 . Single and multiphoton events with missing energy in e+ e- collisions at 161-GeV < s**(1/2) < 172-GeV 446001 . Hard photon production at s**(1/2) = 161-GeV and 172-GeV at LEP 446002 . $\upsilon$ production in $Z$ decays 446031 . Measurements of the meson - photon transition form-factors of light pseudoscalar mesons at large momentum transfer 446590 . Search for new physics in energetic single photon production in $e^{+} e^{-}$ annihilation at the $Z$ resonance 446670 . Search for the standard model Higgs boson in e+ e- interactions at 161-GeV <= s**(1/2) <= 172-GeV 446671 . Search for chargino and neutralino production at $\sqrt{s}$ = 170-GeV and 172-GeV at LEP 446672 . Measurement of the quark to photon fragmentation function through the inclusive production of prompt photons in hadronic Z0 decays 446673 . Measurement of the Q**2 evolution of the photon structure function F2(gamma) 446719 . Searches for scalar top and scalar bottom quarks at LEP-2 446783 . Missing mass spectra in hadronic events from e+ e- collisions at s**(1/2) = 161-GeV - 172-GeV and limits on invisible Higgs decay 446939 . Updated measurement of the tau lepton lifetime 446940 . Measurement of the W pair cross-section in e+ e- collisions at 172-GeV 447145 . Measurement of f(c ---> D*+ X), f(b ---> D*+ X) and Gamma (c anti-c) / Gamma (hadronic) using D*+- mesons 447146 . Spin alignment of leading K*(892)0 mesons in hadronic Z0 decays 447148 . Search for neutral and charged Higgs bosons in e+ e- collisions at s**(1/2) = 161-GeV and 172-GeV 447185 . A Measurement of the $B_s^0$ lifetime using reconstructed $D_s$ - mesons 447186 . Tests of the standard model and constraints on new physics from measurements of fermion pair production at 130-GeV to 172-GeV at LEP 447187 . Measurement of the photon structure function F(2)**gamma at low x 447188 . Polarization and forward - backward asymmetry of Lambda baryons in hadronic Z0 decays 447214 . Measurements of mass, width and gauge couplings of the $W$ boson at LEP 447353 . Search for R-parity breaking sneutrino exchange at LEP 447377 . Multiplicity distributions of gluon and quark jets and tests of QCD analytic predictions 447559 . Search for color suppressed B hadronic decay processes with CLEO 447626 . Investigation of semileptonic B meson decay to P wave charm mesons 447944 . Neutral current four fermion production in e+ e- interactions at 130-GeV <= s**(1/2) <= 172-GeV 447945 . Measurement of eta-prime (958) formation in two photon collisions at LEP-1 448033 . Multiphoton final states in e+ e- collisions at s**(1/2) = 130-GeV - 172-GeV 448034 . Search for the standard model higgs boson in e+ e- collisions at s**(1/2) = 161-GeV - 172-GeV 448093 . Measurement of the $W$ boson mass and $W^{+} W^{-}$ production and decay properties in $e^{+} e^{-}$ collisions at $\sqrt{s}$ = 172-GeV 448153 . Search for charginos, neutralinos and gravitinos at LEP 448154 . Measurement of the $B$ baryon lifetime and branching fractions in $Z$ decays 448370 . Measurement of the quark and gluon fragmentation functions in Z0 hadronic decays 448436 . Measurement of the triple gluon vertex from double quark tagged four jet events 448664 . Search for a massive di-photon resonance at S**(1/2) = 91-GeV - 172-GeV 448725 . Measurement of triple gauge boson couplings from $W^{+} W^{-}$ production at $S^{(1/2)}$ = 172-GeV 448729 . Search for unstable heavy and excited leptons in e+ e- collisions at S**(1/2) = 170-GeV - 172-GeV 448977 . Search for B(s)0 anti-B(s)0 oscillations 449077 . Searches for supersymmetry in the photon(s) plus missing energy channels at s**(1/2) = 161-GeV and 172-GeV 449290 . Charged particle multiplicity in e+ e- ---> q anti-q events at 161-GeV and 172-GeV and from the decay of the W boson 449346 . Search for inclusive $b \to s \ell^+$ lepton- 449533 . Search for anomalous production of dilepton events with missing transverse momentum in e+ e- collisions at s**(1/2) = 161-GeV and 172-GeV 449592 . Search for charged Higgs bosons in e+ e- collisions at center-of-mass energies from 130-GeV to 172-GeV 449593 . Measurement of the average lifetime of $b$ hadrons in $Z$ decays 449594 . Search for scalar leptons, charginos and neutralinos in $e^{+} e^{-}$ collisions at $\sqrt{s}$ = 161-GeV to 172-GeV 449730 . Searches for charginos and neutralinos in $e^{+} e^{-}$ collisions at $\sqrt{s}$ = 161-GeV and 172-GeV 450214 . Flavor - specific inclusive B decays to charm 450757 . Search for anomalous production of photonic events with missing energy in e+ e- collisions at s**(1/2) = 130-GeV to 172-GeV 450758 . An Upper limit on the tau-neutrino mass from three-prong and five-prong tau decays 450872 . m(b) at M(Z) 451207 . Observation of exclusive two-body B decays to kaons and pions 451265 . Observation of the radiative decay D*+ ---> D+ gamma 451957 . Study of semileptonic decays of B mesons to charmed baryons 452028 . New limits for neutrinoless tau decays 452178 . Search for supersymmetry with a dominant R-parity violating L L anti-E coupling in e+ e- collisions at center-of-mass energies of 130-GeV to 172-GeV 452243 . Improved measurement of the pseudoscalar decay constant f(D(s)) 452500 . Search for charged Higgs bosons in e+ e- collisions at S**(1/2) = 172-GeV 452511 . Measurement of Branching ratio (D0 ---> K- pi+) using partial reconstruction of anti-B ---> D*+ X lepton- anti-neutrino 453111 . Measurement of the one prong hadronic tau branching ratios at LEP 453112 . A Measurement of the semileptonic branching ratio BR(b-baryon ---> p lepton anti-neutrino X) and a study of inclusive pi+-, K+-, (p,anti-p) production in Z decays 453113 . Four jet final state production in e+ e- collisions at center-of-mass energies ranging from 130-GeV to 184-GeV 453114 . Study of $B^0_{s}$ oscillations and lifetime using fully reconstructed $D_s$ - decays 453267 . Measurement of the W pair cross-section and of the W mass in e+ e- interactions at 172-GeV 453422 X The DELPHI Silicon Tracker at LEP-2 453423 . Measurement of Trilinear Gauge Couplings in $e^{+} e^-$ Collisions at 161-GeV and 172-GeV 453562 . Measurements of the $B_s^0$ and $\Lambda_b^0$ lifetimes 453563 . Search for charged Higgs bosons in $e^{+} e^{-}$ collisions at $S^{(1/2)}$ = 130-GeV - 172-GeV 453756 . Measurement of the $W$ mass by direct reconstruction in $e^{+} e^{-}$ collisions at 172-GeV 453757 . Measurement of triple gauge boson couplings at 172-GeV 453758 . K0(S) production in tau decays 453761 . Local multiplicity fluctuations in hadronic Z decay 458432 . Searches for R-parity violating supersymmetry at LEP-2 465947 . Measurement of the branching fractions of lambda(c)+ ---> p anti-K n (pion) 465971 . Search for the decay b ---> D(2536)+ X 465983 . Search for the $B_c$ meson in hadronic $Z^0$ decays 466173 . Measurement of the branching ratios for the decays of D+(s) to eta pi+, eta-prime pi+, eta rho+, and eta-prime rho+ 466208 . Two-body B meson decays to eta and eta-prime Observation of B ---> eta-prime K 466503 . Investigation of CP violation in $B^0 \to J/\psi K^0_{S}$ decays at LEP 466841 . Measurement of the inclusive charmless and double charm B branching ratios 466883 . Determination of the production rate of D*0 mesons and of the ratio V / (V+P) in Z0 ---> c anti-c decays 467092 . Production of f(0)(980), f(2)(1270) and phi(1020) in hadronic Z0 decay 467093 . Measurement of the spectral functions of axial - vector hadronic tau decays and determination of alpha(S)(M**2(tau)) 467224 . A Study of the hadronic resonance structure in the decay tau ---> 3 pi neutrino(tau) 467225 . Measurements of the structure of quark and gluon jets in hadronic Z decays 467226 . Resonant structure and flavor tagging in the B pi+- system using fully reconstructed B decays 467256 . Search for an excess in the production of four jet events from e+ e- collisions at S**(1/2) = 130-GeV - 184-GeV 467572 . Measurement of the weak dipole moments of the tau lepton 467577 . Angular multiplicity fluctuations in hadronic Z decays and comparison to QCD models and analytical calculations 467595 . Continuum charged D* spin alignment at S**(1/2) = 10.5-GeV 467596 . First observation of the Cabibbo suppressed decay B+ ---> anti-D0 K+ 467632 . Search for evidence of compositeness at LEP I 467642 . The Hadronic transitions Upsilon(2S) ---> Upsilon(1S) 467821 . Measurement of the B0(d) - anti-B0(d) oscillation frequency 467927 . Investigation of the splitting of quark and gluon jets 467928 . Determination of the number of light neutrino species from single photon production at LEP 467929 . Measurement of tau polarization at LEP 467931 . First evidence for a charm radial excitation, D*-prime 468097 . Measurement of the mass splittings between the b anti-b Chi(b,j)(1P) states 468177 . Measurement of the charged particle multiplicity of weakly decaying B hadrons 468272 . Search for new physics phenomena in fermion pair production at LEP 468273 . Observation of doubly charmed B decays at LEP 468378 . Observation of B+ ---> omega K+ and search for related B decay modes 468441 . A Search for neutral Higgs bosons in the MSSM and models with two scalar field doublets 468442 . An Upper limit on the anomalous magnetic moment of the tau lepton 468444 . Radiative decay modes of the D0 meson 468524 . Search for stable and longlived massive charged particles in e+ e- collisions at s**(1/2) = 130-GeV - 183-GeV 468671 . Determination of A-b(FB) using jet charge measurements in Z decays 468747 . A Limit on the mass of the neutrino(tau) 468852 . Measurement of the fraction of hadronic Z decays into charm quark pairs 468854 . Measurement of the anomalous magnetic and electric dipole moments of the tau lepton 468980 . The PHENIX experiment at RHIC 469365 . A Measurement of the inclusive b ---> s gamma branching ratio 469368 . Search for the standard model Higgs boson in e+ e- interactions at S**(1/2) = 183-GeV 469887 . Observation of high momentum eta-prime production in B decay 469981 . Spin physics with the PHENIX detector system 470419 . Photon and light meson production in hadronic Z0 decays 470677 . Single photon and multiphoton production in $e^{+} e^{-}$ collisions at a center-of-mass energy of 183-GeV 470732 . Production of K0(S) and Lambda in quark and gluon jets from Z0 decay 470826 . Search for neutral Higgs bosons of the minimal supersymmetric standard model in $e^{+} e^{-}$ interactions at $\sqrt{s}$ = 130-GeV - 183-GeV 470842 . First search for CP violation in tau lepton decay 470997 . Photon structure functions and azimuthal correlations of lepton pairs in tagged gamma gamma collisions 471053 . Determination of |V(ub)| from the measurement of the inclusive charmless semileptonic branching ratio of b hadrons 471065 . Further search for the two photon production of the glueball candidate f(J)(2220) 471502 . Beam induced nuclear depolarization in a gaseous polarized hydrogen target 471557 . Scalar quark searches in $e^{+} e^{-}$ collisions at $S^{(1/2)}$ = 181-GeV - 184-GeV 471558 . Search for sleptons in e+ e- collisions at center-of-mass energies up to 184-GeV 471582 . The HERMES spectrometer 471655 . An Upper limit for the tau-neutrino mass from tau --> 5 pi+- tau-neutrino decays 472242 . Bose-Einstein correlations of three charged pions in hadronic Z0 decays 472637 . Measurements of flavor dependent fragmentation functions in Z0 --> q anti-q events 472638 . Measurement of tau branching ratios to five charged hadrons 472639 . Inclusive production of charged hadrons and K0(S) mesons in photon-photon collisions 472640 . Multiphoton production in e+ e- collisions at S**(1/2) = 183-GeV 472641 . Search for Higgs bosons and new particles decaying into two photons at S**(1/2) = 183-GeV 472642 . Study of anomalous $Z Z \gamma$ and $Z \gamma \gamma$ couplings at LEP 472643 . Measurement of the inclusive charmless semileptonic branching fraction of beauty hadrons and a determination of |V(ub)| at LEP 472644 . Study of the hadronic photon structure function F(2)**gamma at LEP 472645 . Production of single $W$ bosons in $e^{+} e^{-}$ interactions at 130-GeV <= $S^{(1/2)}$ <= 183-GeV and limits on anomalous $W W \gamma$ couplings 472952 . Measurement of the e+ e- ---> gamma gamma (gamma) cross-section at the LEP energies 472953 . Test of CP invariance in Z ---> mu+ mu- gamma decay 472954 . The Forward - backward asymmetry for charm quarks at the Z 472955 . Measurement of the strong coupling constant alpha(s) and the vector and axial vector spectral functions in hadronic tau decays 472956 . Measurement of the Michel parameters in leptonic tau decays 473345 . The Flavor asymmetry of the light quark sea from semiinclusive deep inelastic scattering 473409 . pi+-, K+-, p and anti-p production in Z0 ---> q anti-q, Z0 ---> b anti-b, Z0 ---> u anti-u, d anti-d, s anti-s 473410 . Measurement of radiative Bhabha and quasireal Compton scattering 473411 . A Measurement of the gluon splitting rate into b anti-b pairs in hadronic Z decays 473421 . Measurement of the proton spin structure function g1(p) with a pure hydrogen target 473699 . Tests of the standard model and constraints on new physics from measurements of fermion pair production at 183-GeV at LEP 473700 . Search for scalar top and scalar bottom quarks at $S^{(1/2)}$ = 183-GeV at LEP 473701 . Production of chi (c2) mesons in photon-photon collisions at LEP 473948 . Search for B0(s) oscillations using inclusive lepton events 474009 . Dijet production in photon-photon collisions at $S^{(1/2)}$ (ee) = 161-GeV and 172-GeV 474010 . A Study of parton fragmentation in hadronic Z0 decays using Lambda anti-Lambda correlations 474011 . Study of D0 anti-D0 mixing and D0 doubly Cabibbo suppressed decays 474012 . Measurement of the average polarization of b baryons in hadronic Z0 decays 474013 . First measurement of Z / gamma* production in Compton scattering of quasireal photons 474025 . First observation of upsilon(1S) ---> gamma pi pi 474662 . Measurement of |V(cs)| using W decays at LEP-2 474663 . Measurement of $W$ pair cross-sections in $e^{+} e^{-}$ interactions at $S^{(1/2)}$ = 183-GeV and $W$ decay branching fractions 474664 . Search for acoplanar lepton pair events in e+ e- collisions at S**(1/2) = 161-GeV, 172-GeV and 183-GeV 474665 . Measurement of the Michel parameters and the average tau-neutrino helicity from tau decays at LEP 474666 . Measurement of the longitudinal cross-section using the direction of the thrust axis in hadronic events at LEP 474676 . Upsilon dipion transitions at energies near the upsilon(4S) 476321 . First observation of the decay tau- ---> K*- eta tau-neutrino 476388 . Determination of the deep inelastic contribution to the generalized Gerasimov-Drell-Hearn integral for the proton and neutron 476583 . Upper limit on the lifetime difference of shortlived and longlived $B^0_{s}$ mesons 476784 . Measurement of the effective weak mixing angle by jet charge asymmetry in hadronic decays of the Z boson 476785 . Searches for scalar top and scalar bottom quarks in e+ e- interactions at 161-GeV less than equal to S**(1/2) less than equal to 183-GeV 476786 . A Measurement of R(b) using a double tagging method 477045 . Search for chargino and neutralino production at S**(1/2) = 181-GeV - 184-GeV at LEP 477517 . Measurement of the semileptonic branching ratio of charm hadrons produced in Z0 ---> c anti-c decays 477626 . Search for anomalous photonic events with missing energy in e+ e- collisions at S**(1/2) = 130-GeV, 136-GeV and 183-GeV 477680 . Study of three prong hadronic tau decays with charged kaons 477802 . Search for scalar fermions and longlived scalar leptons at center-of-mass energies of 130-GeV to 172-GeV 477803 . Two particle angular correlations in e+ e- interactions compared with QCD predictions 477804 . Search for pair produced neutralinos in events with photons and missing energy from $e^{+} e^{-}$ collisions at $S^{(1/2)}$ = 130-GeV to 183-GeV 477805 . Search for the standard model Higgs boson at the LEP-2 collider near S**(1/2) = 183-GeV 477806 . Searches for the neutral Higgs bosons of the MSSM in $e^+e^-$ collisions at center-of-mass energies of 181-GeV to 184-GeV 477807 . Search for supersymmetry with a dominant R-parity violating LQ $\bar{D}$ coupling in $e^{+} e^{-}$ collisions at center-of-mass energies of 130-GeV to 172-GeV 477808 . QCD results from studies of hadronic events produced in e+ e- annihilations at S**(1/2) = 183-GeV 477809 . Search for charged Higgs bosons in e+ e- collisions at center-of-mass energies between 130-GeV and 183-GeV 477810 . Single and multiphoton events with missing energy in e+ e- collisions at S**(1/2) = 183-GeV 478185 . Measurement of the e+ e- --> Z ---> b anti-b forward - backward asymmetry and the B0 anti-B0 mixing parameter using prompt leptons 478217 . Observation of two narrow states decaying into xi+(c) gamma and xi0(c) gamma 478475 . Search for exclusive rare baryonic decays of B mesons 478903 . Search for composite and exotic fermions at LEP-2 478904 . Search for lightest neutralino and stau pair production in light gravitino scenarios with stau NLSP 478905 . A Search for heavy stable and longlived squarks and sleptons in e+ e- collisions at energies from 130-GeV to 183-GeV 478947 . Observation of a coherence length effect in exclusive rho0 electroproduction 479051 . $W^{+} W^{-}$ production and triple gauge boson couplings at LEP energies up to 183-GeV 479052 . The Q**2 evolution of the hadronic photon structure function F(2)gamma at LEP 479332 . Search for Higgs bosons in $e^{+} e^{-}$ collisions at 183-GeV 479334 . First observation of the decay B0 ---> D*+ D*- 479567 . Bose-Einstein correlations in $e^+e^- \to W^+W^-$ at 172-GeV and 183-GeV 479888 . Measurement of the B ---> D lepton neutrino branching fractions and form-factor 480435 . Search for Leptoquarks and FCNC in $e^{+} e^{-}$ annihilations at $S^{(1/2)}$ = 183-GeV 480437 . Search for charginos, neutralinos and gravitinos in e$^+$ e$^-$ interactions at $\sqrt s$ = 183 GeV 480439 . Measurement of triple gauge W W gamma couplings at LEP-2 using photonic events 480847 . A Measurement of the tau- ---> e- anti-neutrino(e) neutrino(tau) branching ratio 480942 . A Measurement of the product branching ratio f(b ---> Lambda(b)) x BR(Lambda(b) ---> Lambda X) in Z0 decays 481162 . A Precise measurement of the partial decay width ratio R(b)**0 = Gamma(b anti-b) / Gamma(had) 481163 . Inclusive charm production in two photon collisions at LEP 481164 . chi(c2) formation in two photon collisions at LEP 481759 . Analysis of transverse momentum correlations in hadronic Z decays 481760 . Measurement of A(FB)(b anti-b) in hadronic Z decays using a jet charge technique 482054 . Search for baryon and lepton number violating Z0 decays 482170 . Measurement of the $B^{+}$ and $B^0$ lifetimes and search for CP($T$) violation using reconstructed secondary vertices 482314 . Color reconnection studies in e+ e- ---> W+ W- at S**(1/2) = 183-GeV 482345 . Measurement of the $W$ mass and width in $e^{+} e^{-}$ collisions at 183-GeV 482477 . Study of neutral current four fermion and Z Z production in e+ e- collisions at S**(1/2) = 183-GeV 482478 . Measurement of the cross-section for the process gamma* gamma* ---> hadrons at LEP 482479 . Heavy quarkonium production in $Z$ decays 482521 . Searches for R-parity violating decays of gauginos at 183-GeV at LEP 482650 . Study of the four-jet anomaly observed at LEP center-of-mass energies of 130-GeV and 136-GeV 482816 . Measurement of inclusive rho0, f(0)(980), f(2)(1270), K*0(2)(1430) and f-prime(2)(1525) production in Z0 decays 494867 . Search for baryon and lepton number violating decays of the tau lepton 495087 . Measurement of charm meson lifetimes 495313 . Intermittency and correlations in hadronic Z0 decays 495314 . Hadronic structure in the decay tau- ---> tau-neutrino pi- pi0 pi0 and the sign of the tau-neutrino helicity 495378 . Measurements of the QED structure of the photon 495411 . Search for charged Higgs bosons in $e^{+} e^{-}$ collisions at $S^{(1/2)}$ = 181-GeV - 184-GeV 495413 . Search for invisible Higgs boson decays in e+ e- collisions at center-of-mass energies up to 184-GeV 495414 . The Scale dependence of the hadron multiplicity in quark and gluon jets and a precise determination of C(A) / C(F) 495462 . Measurement and interpretation of fermion pair production at LEP energies from 130-GeV to 172-GeV 495463 . Search for neutral Higgs bosons in e+ e- collisions at S**(1/2) = 183-GeV 495464 . Measurement of the forward backward asymmetry of c and b quarks at the Z pole using reconstructed D mesons 495805 . Search for charginos and neutralinos in $e^{+} e^{-}$ collisions at center-of-mass energies near 183-GeV and constraints on the MSSM parameter space 495806 . Measurement of mass and width of the $W$ boson at LEP 496399 . Search for scalar leptons in e+ e- collisions at S**(1/2) = 183-GeV 496400 . Search for R-parity violating chargino and neutralino decays in e+ e- collisions up to S**(1/2) = 183-GeV 496586 . One prong tau decays with kaons 496587 . Study of tau decays involving kaons, spectral functions and determination of the strange quark mass 496755 . Experimental properties of gluon and quark jets from a point source 497105 . Measurement of W pair production in e+ e- collisions at 183-GeV 497256 . Search for charginos nearly mass - degenerate with the lightest neutralino 497260 . Measurement of the $W$ mass in $e^{+} e^{-}$ collisions at 183-GeV 497623 . Search for scalar top and scalar bottom quarks at S**(1/2) = 189-GeV at LEP 498072 . Study of fermion pair production in $e^{+} e^{-}$ collisions at 130-GeV to 183-GeV 498246 . Test of the flavor independence of alpha(s) using next-to-leading order calculations for heavy quarks 498282 . Measurement of the lifetime of $b$ - baryons 498297 . Search for R-parity violating decays of scalar fermions at LEP 499180 . Search for supersymmetry with R-parity violating L L anti-E couplings at S**(1/2) = 183-GeV 499181 . W pair production cross-section and W branching fractions in e+ e- interactions at 183-GeV 499182 . Measurements of the leptonic branching fractions of the tau 499183 . Energy dependence of event shapes and of alpha(s) at LEP-2 499542 . Measurement of an elongation of the pion source in $Z$ decays 499917 . Measurement of the hadronic photon structure function at LEP-1 for (Q**2) values between 9.9-GeV**2 and 284-GeV**2 500042 . Multiplicity fluctuations in one-dimensional and two-dimensional angular intervals compared with analytic QCD calculations 500781 . Measurement of B ---> rho lepton neutrino decay and |V(ub)| 501369 . Formation of the $eta_c$ in two photon collisions at LEP 501417 . Evidence of new states decaying into Xi(c)* pi 501453 . Energy dependence of inclusive spectra in e+ e- annihilation 501454 . Search for the Higgs boson in events with isolated photons at LEP-2 501455 . A Search for invisible Higgs bosons produced in e+ e- interactions at LEP-2 energies 501456 . Measurements of the trilinear gauge boson couplings W W V (V = gamma,Z) in e+ e- collisions at 183-GeV 501457 . Measurements of the Z partial decay width into c anti-c and multiplicity of charm quarks per b decay 501458 . Determination of P(c ---> D*+) and BR(c ---> lepton+) at LEP-1 501487 . Limit on tau-neutrino mass from tau- ---> pi- pi+ pi- pi0 tau-neutrino 502312 . Flavor decomposition of the polarized quark distributions in the nucleon from inclusive and semiinclusive deep inelastic scattering 502548 . Total hadronic cross-section of photon-photon interactions at LEP 502683 . Measurements of inclusive semileptonic branching fractions of b hadrons in Z0 decays 502747 . Search for heavy neutral and charged leptons in $e^{+} e^{-}$ annihilation at $S^{(1/2)}$ = 183-GeV and 189-GeV 502748 . Search for charged Higgs bosons at LEP-2 502749 . Search for Standard Model Higgs boson in $e^{+} e^{-}$ interactions at $S^{(1/2)}$ = 189-GeV 502750 . A Study of spin alignment of rho(770)+- and omega(782) mesons in hadronic Z0 decays 503551 . A Study of single $W$ production in $e^{+} e^{-}$ collisions at $S^{(1/2)}$ = 161-GeV to 183-GeV 503784 . Measurement of the spin asymmetry in the photoproduction of pairs of high p(T) hadrons at HERMES 504104 . Measurement of the rate of b anti-b b anti-b events in hadronic Z decays and the extraction of the gluon splitting into b anti-b 504106 . Search for heavy isosinglet neutrinos in $e^{+} e^{-}$ annihilation at 130-GeV less than $S^{(1/2)}$ less than 189-GeV 504107 . Measurement of the mass of the W boson using direct reconstruction at S**(1/2) = 183-GeV 504170 . Determination of the LEP center-of-mass energy from Z gamma events 504325 . Rare decays of the eta-prime 504671 . Observation of radiative leptonic decay of the tau lepton 504672 . Charged track multiplicity in $B$ meson decay 504716 . Search for R-parity violating decays of supersymmetric particles in $e^{+} e^{-}$ collisions at center-of-mass energies near 183-GeV 504733 . Search for Higgs bosons and other massive states decaying into two photons in e+ e- collisions at 189-GeV 504734 . A Study of B0(S) meson oscillation using hadronic Z0 decays containing leptons 504780 . Multiphoton production in e+ e- collisions at S**(1/2) = 189-GeV 504923 . Measurement of the production rate of charm quark pairs from gluons in hadronic Z0 decays 504924 . Search for neutral Higgs bosons in e+ e- collisions at S**(1/2) approximately equals 189-GeV 504988 . Search for pair produced leptoquarks in $e^{+} e^{-}$ interactions at $S^{(1/2)}$ approximately = 183-GeV 504989 . Tests of the standard model and constraints on new physics from measurements of fermion pair production at 189-GeV at LEP 504990 . Observation of a broad L = 1 c anti-q state in B- ---> D*+ pi- pi- at CLEO 505110 . A Study of three prong tau decays with charged kaons 505111 . First observation of the decay B ---> J / psi phi K 505115 . Charmless hadronic B decays to exclusive final states with a K*, rho, omega, or phi meson 505116 . Two-body B meson decays to eta and eta-prime: Observation of B ---> eta K* 505168 . b ---> s gamma branching fraction and CP asymmetry 505170 . Resonant structure of tau ---> three pi pi0 neutrino(tau) and tau ---> omega pi neutrino(tau) decays 505171 . Update of the search for the neutrinoless decay tau ---> muon gamma 505173 . Measurement of charge asymmetries in charmless hadronic $B$ decay 505174 . Structure functions in the decay tau-+ ---> pi-+ pi0 pi0 neutrino(tau) 505219 . Study of charmless hadronic B decays into the final states K pi, pi pi, and K K, with the first observation of B ---> pi+ pi- and B ---> K0 pi0 505220 . Search for D0 - anti-D0 mixing 505281 . Measurement of inclusive $D^{*+-}$ production in two photon collisions at LEP 506060 . Measurement of the Z resonance parameters at LEP 506982 . Measurement of the spectroscopy of orbitally excited $B$ mesons at LEP 506983 . Search for low scale gravity effects in $e^{+} e^{-}$ collisions at LEP 507422 . Study of charm production in Z decays 507531 . Inclusive production of pi0, eta, eta-prime (958), K0(S) and lambda in two jet and three jet events from hadronic Z decays 507735 . Search for an invisibly decaying Higgs boson in e+ e- collisions at 189-GeV 507736 . A Direct measurement of |V(cs)| in hadronic W decays using a charm tag 507737 . Measurement of R($b$) and Br($b \to$ lepton neutrino $X$) at LEP using double tag methods 507738 . Search for charged Higgs bosons in $e^{+} e^{-}$ collisions at $\sqrt{s}$ = 189-GeV 507739 . Study of $Z$ Boson Pair Production in $e^{+} e^{-}$ collisions at LEP at $S^{(1/2)}$ = 189-GeV 507821 . Observation of radiative leptonic decay of the tau lepton 507867 . Search for chargino pair production in scenarios with gravitino LSP and stau NLSP at S**(1/2) approximately equal to 183-GeV at LEP 507874 . Search for chargino and neutralino production at S**(1/2) = 189-GeV at LEP 507875 . Search for anomalous production of acoplanar di-lepton events in e+ e- collisions at S**(1/2) = 183-GeV and 189-GeV 508076 . Search for scalar leptons in $e^{+} e^{-}$ collisions at $\sqrt{S}$ = 189-GeV 508077 . Search for charginos and neutralinos in $e^{+} e^{-}$ collisions at $\sqrt{S}$ = 189-GeV 508078 . Measurement of triple gauge boson couplings of the $W$ boson at LEP 508079 . Single and multiphoton events with missing energy in $e^{+} e^{-}$ collisions at $\sqrt{S}$ - 189-GeV 508408 . Searches for scalar quarks in $e^{+} e^{-}$ interactions at $\sqrt{S}$ = 189-GeV 508409 . Search for excited leptons at $\sqrt{S}$ = 189-GeV 508559 . The DIRC detector at BaBar 508944 . Hadronic structure in the decay tau- ---> pi- pi0 neutrino(tau) 509037 . Search for neutral Higgs bosons of the minimal supersymmetric standard model in $e^{+} e^{-}$ interactions at $\sqrt{S}$ = 189-GeV 509099 . Search for extra dimensions in boson and fermion pair production in $e^{+} e^{-}$ interactions at LEP 509175 . Update of the search for the neutrinoless decay tau ---> muon gamma 509241 . Measurement of the e+ e- ---> Z Z production cross-section at center-of-mass energies of 183-GeV and 189-GeV 509270 . Observation of a single spin azimuthal asymmetry in semiinclusive pion electro production 509391 . Precision luminosity for Z0 line shape measurements with a silicon tungsten calorimeter 509394 . Measurement of the $W^{+} W^{-} \gamma$ cross-section and first direct limits on anomalous electroweak quartic gauge couplings 509396 . Nuclear effects on R = $\sigma_L$ / $\sigma_T$ in deep inelastic scattering 509441 . Measurement of the strange quark forward backward asymmetry around the Z0 peak 509442 . Searches for sleptons and squarks in e+ e- collisions at 189-GeV 509581 . Direct observation of longitudinally polarized $W^\pm$ bosons 510061 . Measurement of the probability of gluon splitting into charmed quarks in hadronic $Z$ decays 510115 . Measurement of longitudinal spin transfer to Lambda hyperons in deep inelastic lepton scattering 510272 . Search for the glueball candidates f(0)(1500) and f(J)(1710) in gamma gamma collisions 510530 . Tau decays with neutral kaons 510531 . Inclusive production of D*+- mesons in photon-photon collisions at S**(1/2)(ee) = 183-GeV and 189-GeV and a first measurement of F**gamma(2,c) 511099 . Measurement of the gluon fragmentation function and a comparison of the scaling violation in gluon and quark jets 511443 . A Precise measurement of the tau polarization at LEP-1 511452 . Upper limit for the decay $B^{-} \to \tau^{-}$ anti-neutrino ($\tau$) and measurement of the $b \to \tau$ anti-neutrino ($\tau$) $X$ branching ratio 511453 . Two-dimensional analysis of the Bose-Einstein correlations in e+ e- annihilation at the Z0 peak 512426 . Study of exclusive radiative B meson decays 512428 . Two-body B meson decays to eta and eta-prime: Observation of B ---> eta K* 512778 . Search for the decay anti-B0 ---> D*0 gamma 513270 . Bose-Einstein correlations in W pair decays 513272 . Search for gauge mediated SUSY breaking topologies at $S^{(1/2)}$ similar to 189-GeV 513319 . Fermi-Dirac Correlations in lambda pairs in hadronic Z decays 513336 . Leading particle production in light flavor jets 513337 . QCD analyses and determinations of alpha(s) in e+ e- annihilation at energies between 35-GeV and 189-GeV 513338 . Search for unstable heavy and excited leptons at LEP 2 513379 . Search for D0 - anti-D0 mixing 513397 . Hard photon production and tests of QED at LEP 513475 . Search for new physics in rare B decays 513476 . QCD studies with e+ e- annihilation data at 172-GeV - 189-GeV 513607 . Measurements of R(b), A**b(FB), and A**c(FB) in e+ e- collisions at 130-GeV - 189-GeV 513614 . Lambda(b) polarization in Z0 decays at LEP 513615 . Measurement of the anti-B ---> D* pi lepton anti-neutrino(lepton) branching fraction 513676 . Measurement of hadron and lepton pair production at 130-GeV less than $\sqrt{S}$ less than 189-GeV at LEP 514804 X The STAR time projection chamber 522656 . Consistent measurements of alpha(s) from precise oriented event shape distributions 522755 . Measurement of charge asymmetries in charmless hadronic in b meson decays 522756 . Study of two-body B decays to kaons and pions: Observation of B ---> pi+ pi-, B ---> K+- pi0, and B ---> K0 pi0 decays 522777 . Measurement of the B0 and B+ meson masses from B0 ---> psi(psi-prime) K0(s) and B+ ---> psi(psi-prime) K+ decays 523127 . Bose-Einstein correlations in K+- K+- pairs from Z0 decays into two hadronic jets 523690 . Measurement of angular distributions and R = sigma(L) / sigma(T) in diffractive electroproduction of rho0 mesons 523920 . Measurement of the running of the fine structure constant 523921 . Measurement of the $e^{+} e^{-} \to Z \gamma \gamma$ cross-section and determination of quartic gauge boson couplings at LEP 523976 . Search for charginos with a small mass difference with the lightest supersymmetric particle at $\sqrt{S}$ = 189-GeV 524027 . Measurements of cross-sections and forward backward asymmetries at the $Z$ resonance and determination of electroweak parameters 524306 . Transverse and longitudinal Bose Einstein correlations in hadronic Z0 decays 524449 . Study of the decays $B^0 \to D^{*}$ + $D^{*-}$ 524450 . Inclusive $\sigma^{+}$ and $\sigma^0$ production in hadronic $Z$ decays 524526 . Search for CP violation in $B^\pm \to J/\psi K^\pm$ and $B^\pm \to \psi_{2S} K^\pm$ decays 524679 . Determination of |V(ub)| / |V(cb)| with DELPHI at LEP 524682 . Search for the neutral Higgs bosons of the standard model and the MSSM in e+ e- collisions at S**(1/2) = 189-GeV 524688 . Search for supersymmetric particles in scenarios with a gravitino LSP and stau NLSP 524693 . Hadronization properties of b quarks compared to light quarks in e$^+$ e$^-$ $\to \overline {qq}$ from 183-GeV to 200-GeV 524694 . Inclusive Sigma- and Lambda(1520) production in hadronic Z decays 524695 . Search for charginos in e+ e- interactions at S**(1/2) = 189-GeV 524696 . Identified charged particles in quark and gluon jets 524800 . Measurement of |V(cb)| using anti-B0 ---> D*+ lepton- anti-neutrino decays 524845 . Z boson pair production in e+ e- collisions at S**(1/2) = 183-GeV and 189-GeV 525025 . Measurement of the lifetime of the $\tau$ lepton 525384 . A Study of the decay width difference in the $B^0_{s} - \bar{B}^0_s$ system using $\phi \phi$ correlations 525697 . Measurement of B(Lambda+(c) ---> p K- pi+) 525698 . Resonance structure of tau- ---> K- pi+ pi- nu(tau) decays 525764 . Measurement of the photon structure function at high $Q^{2}$ at LEP 525809 . Search for an invisibly decaying Higgs boson in $e^{+} e^{-}$ collisions at $\sqrt{S}$ = 183-GeV - 189-GeV 526164 . Charged and identified particles in the hadronic decay of W bosons and in e+ e- ---> q anti-q from 130-GeV to 200-GeV 526166 . Measurement of the $W$ mass and width in $e^{+} e^{-}$ collisions at 189-GeV 526222 . W pair production cross-section and W branching fractions in e+ e- interactions at 189-GeV 526223 . Searches for neutral Higgs bosons in e+ e- collisions around s**(1/2) = 189-GeV 526550 . Exclusive leptoproduction of rho0 mesons from hydrogen at intermediate virtual photon energies 526554 . Measurements of charm fragmentation into D*+(s) and D+(s) in e+ e- annihilations at S**(1/2) = 10.5-GeV 526644 . Study of exclusive two-body $B^0$ meson decays to charmonium 526692 . Measurement of the product branching fraction b(c ---> theta(c) X) B(theta(c) ---> Lambda X) 526776 . Photonic events with missing energy in e+ e- collisions at S**(1/2) = 189-GeV 526854 . A Measurement of the tau mass and the first CPT test with tau leptons 526928 . Precise measurement of $B^0 \bar{B}^0$ mixing parameters at the $\Upsilon$(4S) 527337 . Measurements of the $b \bar{b}$ production cross-section and forward backward asymmetry at center-of-mass energies above the $Z$ pole at LEP 527338 . Search for anomalous $Z Z \gamma$ and $Z \gamma \gamma$ couplings in the process $e^{+} e^{-} \to Z \gamma$ at LEP 527492 . Measurement of W pair production in e+ e- collisions at 189-GeV 527605 . Cross-sections and leptonic forward backward asymmetries from the Z0 running of LEP 527692 . Search for manifestations of new physics in fermion pair production at LEP 527988 . QCD studies in $e^{+} e^{-}$ annihilation from 30-GeV to 189-GeV 528176 . Measurement of the relative branching fraction of upsilon(4S) to charged and neutral B meson pairs 528371 . Study of charmless hadronic B meson decays to pseudoscalar vector final states 528729 . B ---> D* pi+ pi- pi- pi0, D(*) omega pi- and the observation of a wide 1- omega pi- enhancement at 1418-MeV 529158 . Measurements of the mass, total width and two photon partial width of the eta(c) meson 529575 . Production of single $W$ bosons at $\sqrt{S}$ = 189-GeV and measurement of $W W \gamma$ gauge couplings 529576 . Determination of $\gamma / Z$ interference in $e^{+} e^{-}$ annihilation at LEP 529847 . Measurement and interpretation of fermion-pair production at LEP energies of 183-GeV and 189-GeV 529850 . Update of the search for charginos nearly mass-degenerate with the lightest neutralino 529857 . Study of B decays to charmonium states B ---> eta(c) K and B ---> chi(c0) K 529859 . Searches for prompt light gravitino signatures in e+ e- collisions at S**(1/2) = 189-GeV 529896 . First measurement of the inclusive branching ratio of b hadrons to phi mesons in Z0 decays 529897 . Search for trilinear neutral gauge boson couplings in $Z^-$ gamma production at $S^{(1/2)}$ = 189-GeV at LEP 529898 . Multiplicities of pi0, eta, K0 and of charged particles in quark and gluon jets 529899 . Measurement of the low x behavior of the photon structure function F(2)gamma 530069 . Search for gamma gamma decays of a Higgs boson produced in association with a fermion pair in e+ e- collisions at LEP 530544 . Two Higgs doublet model and model independent interpretation of neutral Higgs boson searches 530545 . First observation of the Sigma*+(c) baryon and a new measurement of the Sigma+(c) mass 530546 . Search for decays of $B^0$ mesons into pairs of leptons: $B^0 \to e^{+} e^{-}$, $B^0 \to$ muon+ muon- and $B^0 \to e^\pm$ muon-+ 530788 . Study of (chi(c1) ) and (chi(c2) ) meson production in $B$ meson decays 530789 . Observation of the Omega 0(c) charmed baryon at CLEO 530791 . Observation of new states decaying into Lambda(c)+ pi- pi+ 530792 . Evidence of new states decaying into Xi-prime(c) pi 530861 . Determination of the B ---> D* l nu decay width and |V(cb)| 530949 . Search for a scalar top almost degenerate with the lightest neutralino in e+ e- collisions at s**(1/2) up to 202-GeV 530950 . Search for charged Higgs bosons in e+ e- collisions at energies up to S**(1/2) = 189-GeV 530957 . A Search for B ---> tau nu 531457 . Search for a Higgs boson decaying into two photons in $e^{+} e^{-}$ interactions at $\sqrt{S}$ = 189-GeV 531468 . A Measurement of the b quark mass from hadronic Z decays 531470 . Measurements of B ---> D(*)(S)+ D+(*) branching fractions 531507 . Measurement of the $\bar{B}^0$ and $B^{-}$ meson lifetimes 531568 . Rapidity-rank structure of p anti-p pairs in hadronic Z0 decays 531570 . Measurement of the $W^{+} W^{-} \gamma$ cross-section and direct limits on anomalous quartic gauge boson couplings at LEP 531571 . Search for anomalous couplings in the Higgs sector at LEP 531668 . Measurement of Bose-Einstein correlations in $e^{+} e^{-} \to W^{+} W^{-}$ at $\sqrt{S}$ approximately = 189-GeV 531766 . Measurement of the $W$ pair production cross-section and $W$ decay branching fractions in $e^{+} e^{-}$ interactions at $\sqrt{S}$ = 189-GeV 531853 X Investigation of inclusive CP asymmetries in B0 decays 531949 . The Q**2 dependence of the generalized Gerasimov-Drell-Hearn integral for the proton 532734 . Observation of B --> K+- pi0 and B --> K0 pi0, and evidence for B --> pi+ pi- 532903 . Search for charged Higgs bosons in $e^{+} e^{-}$ collisions at center center-of-mass energies up to 202-GeV 532904 . First observation of the decays B0 ---> D*- p anti-p pi+ and B0 ---> D*-p anti-n 533108 . A Study of one prong tau decays with a charged kaon 533109 . Measurement of the mass and width of the $W$ boson in $e^{+} e^{-}$ collisions at 189-GeV 533110 . W+ W- production cross-section and W branching fractions in e+ e- collisions at 189-GeV 533111 . A Measurement of the rate of charm production in $W$ decays 533112 . Measurement of $W$ boson polarizations and CP violating triple gauge couplings from $W^{+} W^{-}$ production at LEP 533113 . Measurement of triple gauge boson couplings from $W^{+} W^{-}$ production at LEP energies up to 189-GeV 533360 . Search for single top production in e+ e- collisions at s**(1/2) = 189-GeV - 202-GeV 533414 . Elliptic flow in Au + Au collisions at (S(NN))**(1/2) = 130 GeV 533575 . Search for direct CP violation in cascade hyperon decay 533916 . Study of chi(c1) and chi(c2) meson production in $B$ meson decays 533961 . Study of the CP asymmetry of $B^0 \to J/\psi K^0_{S}$ decays in ALEPH 534257 . Determination of the e+ e- --> gamma gamma (gamma) cross-section at centre-of-mass energies ranging from 189-GeV to 202-GeV 534258 . Limits on the masses of supersymmetric particles at s**(1/2) = 189-GeV 534435 . Study of $Z$ boson pair production in $e^{+} e^{-}$ interactions at $\sqrt{s}$ = 192-GeV - 202-GeV 534657 . Measurement of the $B^0$ lifetime and oscillation frequency using $\bar{B}^0 \to D^{*+} \ell^{-}$ anti-neutrino decays 534887 . Measurements of BR (b ---> tau- anti-nu(tau) X) and BR (b ---> tau- anti-nu(tau) D*+- X) and upper limits on BR (B- ---> tau- anti-nu(tau)) and BR (b---> s nu anti-nu) 535016 . Study of tau decays to six pions and neutrino 535059 . Production rates of b anti-b quark pairs from gluons and b anti-b b anti-b events in hadronic Z0 decays 535061 . Investigation of the decay of orbitally excited B mesons and first measurement of the branching ratio BR(B*(J) ---> B*pi(X)) 535112 . Observation of the Omega0(c) charmed baryon at CLEO 535113 . Study of $B \to \psi_{2S} K$ and $B \to \psi_{2S}$ K*(892) decays 535180 . Study of B0(S) anti-B0(S) oscillations and B0(S) lifetimes using hadronic decays of B0(S) mesons 535290 . Search for a scalar bottom quark with mass 3.5-GeV - 4.5-GeV/c**2 535620 . Searches for neutral Higgs bosons in e+ e- collisions at center-of-mass energies from 192-GeV to 202-GeV 535683 . Search for the sgoldstino at s**(1/2) from 189-GeV to 202-GeV 535805 . Bounds on the CP asymmetry in $b \to s \gamma$ decays 535988 . Observation of new states decaying into Lambda+(c) pi- pi+ 536138 . Search for R-parity violating decays of supersymmetric particles in $e^{+} e^{-}$ collisions at center-of-mass energies from 189-GeV to 202-GeV 536266 . Charged multiplicities in Z decays into u, d, and s quarks 536690 . Light resonances in $K^0_{S} K^\pm \pi^\mp$ and $\eta \pi^{+} \pi^{-}$ final states in $\gamma \gamma$ collisions at LEP 536692 . $K^0_{S} K^0_{S}$ final state in two photon collisions and implications for glueballs 536816 . Higgs candidates in $e^{+} e^{-}$ interactions at $\sqrt{s}$ = 206.6-GeV 536864 . Search for R-parity violating decays of supersymmetric particles in $e^{+} e^{-}$ collisions at $\sqrt{s}$ = 189-GeV 536865 . A search for invisible Higgs bosons produced in e+ e- interactions up to s**(1/2) = 189-GeV 536902 . Observation of an excess in the search for the standard model Higgs boson at ALEPH 536904 . Search for supersymmetric particles in $e^{+} e^{-}$ collisions at $\sqrt{s}$ up to 202-GeV and mass limit for the lightest neutralino 536906 . Measurement of the Lambda+(c) lifetime 537026 . A Study of $B_s$ meson oscillation using $D_s$ - lepton correlations 537154 . Dalitz analysis of the decay D0 ---> K- pi+ pi0 537232 . Search for excited leptons in $e^{+} e^{-}$ interactions at $\sqrt{s}$ = 192-GeV to 202-GeV 537234 . Measurements of the cross-sections for open charm and beauty production in $\gamma \gamma$ collisions at $\sqrt{s}$ = 189-GeV to 202-GeV 537236 . A Measurement of the decay asymmetry parameters in Xi0(c) ---> Xi- pi+ 537913 . Photon events with missing energy at s**(1/2) = 183-GeV to 189-GeV 538107 . Search for neutral Higgs bosons of the minimal supersymmetric standard model in $e^{+} e^{-}$ interactions at $\sqrt{s}$ = 192-GeV - 202-GeV 538108 . Precise determination of the Z resonance parameters at LEP: 'Zedometry' 538109 . Search for the standard model Higgs boson in $e^{+} e^{-}$ collisions at $\sqrt{s}$ up to 202-GeV 538110 . Evidence of new states decaying into Xi-prime(c) pi 539006 . Hadron formation in deep inelastic positron scattering in a nuclear environment 539090 . Search for CP violation in $D^0 \to K^0_{S} \pi^0$ and $D^0 \to \pi^0 \pi^0$ and $D^0 \to K^0_{S} K^0_{S}$ decays 539140 . Centrality dependence of charged particle multiplicity in Au - Au collisions at S(NN)**(1/2) = 130-GeV 539640 . Measurement of the Z Z cross-section in e+ e- interactions at 183-GeV - 189-GeV 539641 . Search for neutralino pair production at s**(1/2) = 189-GeV 539642 . Study of dimuon production in photon-photon collisions and measurement of QED photon structure functions at LEP 539860 . Search for the standard model Higgs boson in e+ e- collisions at s**(1/2) approximately = 192-GeV - 209-GeV 539946 . Measurement of the charm production cross-section in $\gamma \gamma$ collisions at LEP 540015 . Search for spontaneous R-parity violation at s**(1/2) = 183-GeV and 189-GeV 540208 . Search for sleptons in e+ e- collisions at s**(1/2) = 183-GeV to 189-GeV 540344 . Search for the standard model Higgs boson at LEP in the year 2000 540660 . Search for SUSY with R-parity violating LL anti-E couplings at s**(1/2) = 189-GeV 540730 . Search for R-parity violation with a anti-U anti-D anti-D coupling at x**(1/2) = 189-GeV 540871 . Search for supersymmetric partners of top and bottom quarks at s**(1/2) = 189-GeV 540888 . Search for heavy stable and longlived particles in e+ e- collisions at s**(1/2) = 189-GeV 541614 . A Study of the Lorentz structure in tau decays 541615 . Measurement of the $B^0_{s}$ lifetime and study of $B^0_{s} - \bar{B}^0_s$ oscillations using $D_s \ell$ events 551926 . Bounds on the CP asymmetry in like sign dileptons from $B^0 \bar{B}^0$ meson decays 552245 . A Search for charmless B ---> V V decays 552270 . Observation of B ---> phi K and B ---> phi K* 552446 . A Simultaneous measurement of the QCD color factors and the strong coupling 552447 . A Search for a narrow radial excitation of the D*+- meson 552541 . Correlated Lambda+(c) anti-Lambda-(c) production in e+ e- annihilations at s**(1/2) = 10.5-GeV 552759 . Mixing and CP violation in the decay of neutral $D$ mesons at CLEO 552760 . First measurement of Gamma (D*+) 552995 . Measurement of the $\tau$ branching fractions into leptons 552996 . Study of the $e^{+} e^{-} \to Z \gamma \gamma \to q \bar{q} \gamma \gamma$ process at LEP 552997 . Total cross-section in $\gamma \gamma$ collisions at LEP 553236 . Double spin asymmetry in the cross-section for exclusive rho0 production in lepton - proton scattering 553305 . Update of the search for supersymmetric particles in scenarios with gravitino LSP and sleptons NLSP 553351 . Measurement of trilinear gauge boson couplings WWV, (V = Z, gamma) in e+ e- collisions at 189-GeV 553945 . Measurement of the branching ratio for D(s)- ---> tau- anti-nu(tau) decays 554175 . First observation of anti-B ---> D(*) rho-prime-, rho-prime- ---> omega pi- 554458 . Search for $B^0 \to \pi^0 \pi^0$ decay 554583 . Precision neutral current asymmetry parameter measurements from the tau polarization at LEP 554660 . Multiplicity of charged and neutral pions in deep inelastic scattering of 27.5-GeV positrons on hydrogen 554953 . Single spin azimuthal asymmetries in electroproduction of neutral pions in semiinclusive deep inelastic scattering 555068 . Search for CP violation in tau ---> pi pi0 nu(tau) decay 555429 . Search for a fermiophobic Higgs at LEP-2 555430 . Measurement of V(cb) from the decay process anti-B0 ---> D*+ lepton- anti-neutrino 555574 . Measurement of triple gauge boson couplings at LEP energies up to 189-GeV 555603 . Measurement of the mid-rapidity transverse energy distribution from s(NN)**(1/2) = 130-GeV Au + Au collisions at RHIC 555653 . Measurement of the tau polarization at LEP 555718 . Experimental investigation of the two photon widths of the chi(c0) and the chi(c2) mesons 555818 . Midrapidity anti-proton to proton ratio from Au + Au collisions at s(NN)**(1/2) = 130-GeV 555901 . Measurement of the mass and width of the $W$ boson in $e^{+} e^{-}$ collisions at $\sqrt{s}$ = 189-GeV 556050 . Rate measurement of D0 ---> K+ pi- pi0 and constraints on D0 - anti-D0 mixing 556769 . Determination of the b quark mass at the Z mass scale 556817 . A Measurement of the tau topological branching ratios 557084 . First observation of anti-B0 ---> D*0 pi+ pi+ pi- pi- decays 557178 . Measurement of the semileptonic b branching fractions and average b mixing parameter in Z decays 557534 . Search for the decay B+ ---> D*+ K0(S) 557690 X Overview of PHENIX results from the first RHIC run 557767 . Multiplicity distribution and spectra of negatively charged hadrons in Au+Au collisions at s(NN)**(1/2) = 130-GeV 557820 . Search for single leptoquark and squark production in electron photon scattering at $\sqrt{s_{ee}}$ = 189-GeV at LEP 557934 . Search for the familon via B+- ---> pi+- X0, B+- ---> K+- X0, and B0 ---> K0(S)X0 decays 558327 . Study of the fragmentation of b quarks into B mesons at the Z peak 558372 . Measurement of the Michel parameters and the nu/tau helicity in tau lepton decays 558407 . Improved upper limits on the FCNC decays $B \to K \ell^{+} \ell^{-}$ and $B \to$ K*(892) $\ell^{+} \ell^{-}$ 558570 . Measurement of the beam spin azimuthal asymmetry associated with deeply virtual Compton scattering 559609 . Identified particle elliptic flow in Au + Au collisions at s(NN)**(1/2) = 130-GeV 559673 . Search for heavy isosinglet neutrino in $e^{+} e^{-}$ annihilation at LEP 559674 . Search for heavy neutral and charged leptons in $e^{+} e^{-}$ annihilation at LEP 559675 . Measurement of |V(ub)| using b hadron semileptonic decay 559769 . Search for the decay Upsilon(1s) ---> gamma eta-prime 559836 . Measurement of A**b(FB) using inclusive b hadron decays 559861 . Pion interferometry of s(NN)**(1/2) = 130-GeV Au+Au collisions at RHIC 559968 . Measurement of the Xi(c)+ lifetime 560306 . Angular analysis of the muon pair asymmetry at LEP I 560307 . Measurement of Z / gamma* production in Compton scattering of quasi-real photons 560354 . Standard model Higgs boson with the L3 experiment at LEP 560355 . Measurement of the topological branching fractions of the $\tau$ lepton at LEP 560550 . Single intermediate vector boson production in e+ e- collisions at s**(1/2) = 183-GeV and 189-GeV 560962 . Inclusive semileptonic branching ratios of b hadrons produced in Z decays 561192 . First measurement of Gamma(D*+) 561371 X CLEO-c and CESR-c: A New frontier of weak and strong interactions 561380 . Evidence for the decay D0 ---> K* pi- pi+ pi- 561580 . Measurement of the branching ratio for the process b ---> tau- anti-nu(tau) X 561581 . Branching fraction and photon energy spectrum for $b \to s \gamma$ 561582 . Hadronic mass moments in inclusive semileptonic B meson decays 561876 . Anti-deuteron and anti-He-3 production in s(NN)**(1/2) = 130-GeV Au+Au collisions 561965 . First measurement of Gamma(D*+) and precision measurement of m(D*+) - m(D0) 562409 . Suppression of hadrons with large transverse momentum in central Au+Au collisions at $\sqrt{s_{NN}}$ = 130-GeV 562543 . Search for lepton flavor violation in e+ e- collisions at s**(1/2) = 189-GeV - 209-GeV 563334 . Bose-Einstein correlations of neutral and charged pions in hadronic $Z$ decays 563335 . Inclusive $\pi^0$ and $K^0_{S}$ production in two photon collisions at LEP 563730 . Measurement of the hadronic cross-section for the scattering of two virtual photons at LEP 563782 . Search for single top quark production at LEP-2 564369 . Measurement of inclusive anti-protons from Au+Au collisions at (s(NN))**(1/2) = 130-GeV 564486 . Search for technicolor with DELPHI 564487 . Search for charged Higgs bosons in e+ e- collisions at s**(1/2) = 189-GeV - 202-GeV 564765 . Genuine correlations of like - sign particles in hadronic Z0 decays 564819 . Observation of anti-B0 ---> D0 pi0 and anti-B0 ---> D*0 pi0 564820 . Search for R parity violating decays of supersymmetric particles in $e^{+} e^{-}$ collisions at LEP 564821 . Measurement of the Xi+(c) lifetime 565147 . Measurement of the masses and widths of the Sigma++(c) and Sigma0(c) charmed baryons 565148 . Measurement of charged-particle multiplicity distributions and their $H_{q}$ moments in hadronic $Z$ decays at LEP 565149 . f(1)(1285) formation in two photon collisions at LEP 565438 . Search for Yukawa production of a light neutral Higgs boson at LEP 565440 . Double tag events in two photon collisions at LEP 565517 . Particle multiplicity of unbiased gluon jets from $e^{+} e^{-}$ three jet events 565839 . Lifetime differences, direct CP violation and partial widths in D0 meson decays to K+ K- and pi+ pi- 565988 . Study of the $W^{+} W^{-} \gamma$ process and limits on anomalous quartic gauge boson couplings at LEP 566081 . First results from RHIC-PHENIX 566837 . Search for doubly charged Higgs bosons with the OPAL detector at LEP 567473 . Search for CP violation in tau ---> K pi tau-neutrino decays 567914 . Production of D**(s) mesons in hadronic Z decays 567915 . Search for scalar leptons in e+ e- collisions at center-of-mass energies up to 209-GeV 568382 . Single spin azimuthal asymmetry in exclusive electroproduction of pi+ mesons 568437 . Centrality dependence of pi+ / pi-, K+ / K-, p and anti-p production from s(NN)**(1/2) = 13-=GeV Au+Au collisions at RHIC 568505 . Search for leptoquarks in electron photon scattering at s($e e) ^{(1/2)}$ up to 209-GeV at LEP 568553 . Searches for neutral Higgs bosons in e+ e- collisions from s**(1/2) = 191.6-GeV to 201.7-GeV 568809 . Observation of exclusive anti-B ---> D(*) K*- decays 569165 . Inclusive production of the omega and eta mesons in Z decays, and the muonic branching ratio of the omega 569166 . Final results of the searches for neutral Higgs bosons in e+ e- collisions at s**(1/2) up to 209-GeV 570407 . Measurement of the forward backward asymmetry in Z --> b anti-b and Z --> c anti-c decays with leptons 570700 . Study of multiphoton final states and tests of QED in $e^{+} e^{-}$ collisions at $\sqrt{S}$ up to 209-GeV 581380 . Further experimental studies of two-body radiative Upsilon decays 581519 . Search for R-parity violating production of single sneutrinos in e+ e- collisions at s**(1/2) = 189-GeV to 209-GeV 581750 . Leptonic decays of the D(s) meson 581871 . Transverse mass dependence of two pion correlations in Au+Au collisions at S(NN)**(1/2) = 130-GeV 582528 . Search for gamma gamma ---> eta(b) in e+ e- collisions at LEP-2 582654 . Measurement of single electrons and implications for charm production in Au+Au collisions at s**(1/2)(NN) = 130-GeV 582690 . Improved measurement of |V(ub)| with inclusive semileptonic B decays 582991 . Measurement of the ratio of branching fractions of the Upsilon(4S) to charged and neutral B mesons 583115 . Measurement of the hadronic photon structure function F**gamma(2) at LEP-2 583655 . Improved search for B(0)S anti-B(0)S oscillations 583971 . Search for a Higgs boson decaying into two photons at LEP 584019 . Search for charginos nearly mass degenerate with the lightest neutralino in e+ e- collisions at center-of-mass energies up to 209-GeV 584055 X Results from the STAR experiment 584141 . Midrapidity Lambda and anti-Lambda production in Au + Au collisions at s(NN)**(1/2) = 130-GeV 584153 . Search for gauge mediated SUSY breaking topologies in $e^{+} e^{-}$ collisions at center-of-mass energies up to 209-GeV 584195 . Measurement of the mass of the W boson in e+ e- collisions using the fully leptonic channel 584267 . Measurement of the D+ ---> anti-K*0 l+ letpon-neutrino branching fraction 584269 X Improved measurement of |V(cb)| using anti-B ---> D* l nu decays 584417 . Net charge fluctuations in Au+Au interactions at s**(1/2) = 130-GeV 584452 . Event-by-event fluctuations in mean p(T) and mean e(T) in s(NN)**(1/2) = 130-GeV Au+Au collisions 584631 . Midrapidity phi production in Au + Au collisions at s N N = 130-GeV 585321 . Search for lepton flavor violating decays of $B$ mesons 585347 . Flow measurements via two particle azimuthal correlations in Au+Au collisions at s(NN)**(1/2) = 130-GeV 585370 . Anti-search for the glueball candidate f(J)(2220) in two -photon interactions 585561 . Measurement of the Lambda and anti-Lambda particles in Au+Au collisions at s(NN)**(1/2) = 130-GeV 585621 . $\Lambda$ and $\Sigma^0$ pair production in two photon collisions at LEP 585623 . Inclusive $D^{*+-}$ production in two photon collisions at LEP 586044 . Search for scalar quarks in $e^{+} e^{-}$ collisions at $\sqrt{s}$ up to 209-GeV 586115 . Determination of $alpha_s$ from hadronic event shapes in $e^{+} e^{-}$ annihilation at 192-GeV <= $\sqrt{s}$ <= 208-GeV 586130 . Rapidity alignment and p(T) compensation of particle pairs in hadronic Z0 decays 586918 . A Flavor independent Higgs boson search in e+ e- collisions at s**(1/2) up to 209-GeV 587154 . Azimuthal anisotropy of K0(S) and Lambda + anti-Lambda production at mid-rapidity from Au + Au collisions at S(NN)**(1/2) = 130-GeV 587235 . K*(892)0 production in relativistic heavy ion collisions at S(NN)**(1/2) = 130-GeV 587300 . Correlated inclusive Lambda anti-Lambda production in e+ e- annihilations at s**(1/2) approximately 10.5-GeV 587825 . Elliptic flow from two and four particle correlations in Au+Au collisions at s(NN)**(1/2) = 130-GeV 587909 . Measurement of the charm structure function F2(c)(gamma) of the photon at LEP 587910 . Measurements of the strong coupling constant and the QCD color factors using four jet observables from hadronic Z decays 588105 . Decay mode independent searches for new scalar bosons with the OPAL detector at LEP 588107 . Observation of B --> K0(S) pi+ pi- and evidence for B --> K*+- pi-+ 588142 . Coherent rho0 production in ultraperipheral heavy ion collisions 588226 . Azimuthal anisotropy and correlations in the hard scattering regime at RHIC 588301 . Single photon and multiphoton production in $e^{+} e^{-}$ collisions at $\sqrt{s}$ up to 209-GeV 588319 . Measurement of B(B- ---> D0 pi-) and B(anti-B0 ---> D+ pi-) and isospin analysis of B ---> D pi decays 588342 . Kaon production and kaon to pion ratio in Au+Au collisions at s(NN)**1/2 = 130-GeV 588808 . Centrality dependence of high $p_{T}$ hadron suppression in Au+Au collisions at $\sqrt{s}_{NN}$ = 130-GeV 588873 . The $e^{+} e^{-} \to Z \gamma \gamma \to q \bar{q} \gamma \gamma$ reaction at LEP and constraints on anomalous quartic gauge boson couplings 588874 . Measurement of genuine three particle Bose-Einstein correlations in hadronic $Z$ decay 589045 . Search for charged excited leptons in e+ e- collisions at s**(1/2) = 183-GeV to 209-GeV 589410 . Search for single top production in $e^{+} e^{-}$ collisions at $\sqrt{s}$ up to 209-GeV 590095 . Search for associated production of massive states decaying into two photons in $e^{+} e^{-}$ annihilations at $\sqrt{s}$ = 88-GeV to 209-GeV 590665 . Measurement of R = sigma(L) / sigma(T) in deep inelastic scattering on nuclei 590820 . Centrality dependence of the high p(T) charged hadron suppression in Au+Au collisions at s(NN)**(1/2) = 130-GeV 591126 . Search for charged Higgs bosons in $e^{+} e^{-}$ collisions at energies up to $\sqrt{s}$ = 209-GeV 591226 . Absolute lower limits on the masses of selectrons and sneutrinos in the MSSM 591227 . Search for eta(b)(1S) in inclusive radiative decays of the Upsilon(3S) 591230 . First observation of Upsilon (1D) states 591232 . Study of two photon transistions in CLEO-III Upsilon (3S) data 591234 . Preliminary results on |V(ub)| from inclusive semileptonic B decays with neutrino reconstruction 591237 . Dalitz analysis of D0 ---> K0(S) pi+ pi- 591320 . Observation of the decay Omega0(c) ---> Omega- e+ nu(e) 591959 . Search for gamma gamma decays of a Higgs boson in e+ e- collisions at s**(1/2) up to 209-GeV 592036 . Measurement of exclusive B decays to final states containing a charmed baryon 592717 . Search for neutrinoless tau decays involving the K0(S) meson 592779 . Strangeness in Au + Au collisions at s(NN)**(1/2) = 130-GeV observed with the STAR detector 593545 . Search for neutral Higgs bosons of the minimal supersymmetric standard model in $e^{+} e^{-}$ interactions at $\sqrt{s}$ = 209-GeV 594588 . Production of single $W$ bosons at LEP and measurement of $W W \gamma$ gauge coupling parameters 594589 . Measurement of Bose-Einstein correlations in $e^{+} e^{-} \to W^{+} W^{-}$ events at LEP 594689 . Evidence for quark hadron duality in the proton spin asymmetry A(1) 594839 . Measurement of the lepton energy in the decay anti-B ---> X l anti-nu and determination of the heavy quark expansion parameters 594920 . Search for scalar top and scalar bottom quarks at LEP 595335 . Charged particle momentum spectra in e+ e- annihilation at s**(1/2) = 192-GeV to 209-GeV 595836 . Measurement of the cross-section for the process gamma gamma ---> p anti-p at s(e e)**(1/2) = 183-GeV to 189-GeV at LEP 596551 . Search for anomalous weak dipole moments of the tau lepton 596553 . Search for a low mass CP odd Higgs boson in e+ e- collisions with the OPAL detector at LEP-2 597023 . The Q**2 dependence of nuclear transparency for exclusive rho0 production 598112 . Measurement of the b quark forward backward asymmetry around the Z0 peak using an inclusive tag 598373 . Search for the standard model Higgs boson with the OPAL detector at LEP 598949 . Search for supersymmetric particles with R parity violating decays in $e^{+} e^{-}$ collisions at $\sqrt{s}$ up to 209-GeV 598951 . Multiphoton production in e+ e- collisions at s**(1/2) = 181-GeV to 209-GeV 599181 . Inclusive analysis of the b quark fragmentation function in Z decays at LEP 599182 . Measurement of neutral current four fermion production at LEP-2 599183 . Search for single top production at LEP 599918 . Determination of the anti-B ---> D* l anti-nu decay width and |V(cb)| 600094 . Search for nearly mass degenerate charginos and neutralinos at LEP 600098 ? The Q**2 dependence of the generalized Gerasimov-Drell-Hearn integral for the deuteron, proton and neutron 600099 . First observation of the exclusive decays Lambda+(c) ---> Lambda pi+ pi+ pi- pi0 and Lambda+(c) ---> Lambda omega pi+ 600652 . Disappearance of back-to-back high $p_{T}$ hadron correlations in central Au+Au collisions at $\sqrt{s_{NN}}$ = 200-GeV 601225 . Charged particle multiplicities in heavy and light quark initiated events above the Z0 peak 601701 . Inclusive eta-prime production from the Upsilon(1S) 602867 . Strange anti-particle to particle ratios at mid-rapidity in s(NN)**(1/2) = 130-GeV Au+Au collisions 603172 . A Measurement of the tau- ---> mu- anti-nu(mu) nu(tau) branching ratios 603214 . Search for B(s)0 - anti-B(s)0 oscillations and a measurement of B(d)0 - anti-B(d)0 oscillations using events with an inclusively reconstructed vertex 604660 . Measurement of single spin azimuthal asymmetries in semiinclusive electroproduction of pions and kaons on a longitudinally polarized deuterium target 604733 . Search for an LSP gluino at LEP with the DELPHI detector 604734 . Search for doubly charged Higgs bosons at LEP-2 604800 . First search for the flavor changing neutral current decay D0 ---> gamma gamma 605177 . Measurement of lepton momentum moments in the decay anti-B ---> X l anti-nu and determination of heavy quark expansion parameters and |V(cb)| 605865 . A Measurement of semileptonic B decays to narrow orbitally excited charm mesons 605973 . Inclusive charged hadron production in two photon collisions at LEP 606066 . Measurement of W polarisation at LEP 606309 . Measurements of inclusive $B \to \psi$ production 606391 . Study of the $e^{+} e^{-} \to Z e^{+} e^{-}$ process at LEP 606568 . Search for supersymmetric particles in light gravitino scenarios and sleptons NLSP 606944 . Inclusive b decays to wrong sign charmed mesons 606945 . Search for resonant $\widetilde\nu$ production at $\sqrt{s}$ = 183 to 208 GeV 608096 X The STAR barrel electromagnetic calorimeter 608101 X STAR detector overview 608565 X b tagging in DELPHI at LEP 611415 . Dijet production in photon-photon collisions at s(ee)**(1/2) from 189-GeV to 209-GeV 611745 . Measurements of the branching fractions and helicity amplitudes in $B \to D^{*} \rho$ decays 612223 . Measurement of the inclusive D*+- production in gamma gamma collisions at LEP 612248 . Narrowing of the balance function with centrality in au + au collisions at (S(NN))**1/2 = 130-GeV 613068 . Double spin asymmetries in the cross-section of rho0 and phi production at intermediate-energies 613626 . Measurements of charmless hadronic two body B meson decays and the ratio B(B ---> D K) / B(B ---> D pi) 613711 . Bose-Einstein correlations of pi0 pairs from hadronic Z0 decays 613712 . Branching fractions of tau leptons decays to three charged hadrons 614784 . Study of the charmless inclusive B ---> eta-prime X decay 614953 . Final results from DELPHI on the searches for SM and MSSM neutral Higgs bosons 615637 . Test of noncommutative QED in the process e+ e- ---> gamma gamma at LEP 615977 . Search for color reconnection effects in $e^{+} e^{-} \to W^{+} W^{-} \to$ hadrons through particle flow studies at LEP 616620 . Search for B ---> anti-p e- anti-nu(e) X decay using a partial reconstruction method 616827 . Study of the q**2 dependence of B ---> pi l nu and B ---> rho (omega) l nu decay and extraction of |V(u b)| 617548 . Measurement of the charge asymmetry in B ---> K*(892)+- pi+- 617784 . Mid-rapidity neutral pion production in proton proton collisions at $\sqrt{s}$ = 200-GeV 617814 . Suppressed pi^0 production at large transverse momentum in central Au+ Au collisions at S(NN)**1/2 = 200 GeV 618097 . Search for baryons in the radiative penguin decay b ---> s gamma 618587 . Observation of a narrow resonance of mass 2.46-GeV/c**2 in the D*(s)+ pi0 final state, and confirmation of the D*(sJ)(2317) 618779 . Search for stable and longlived massive charged particles in e+ e- collisions at s**(1/2) = 130-GeV to 209-GeV 619015 . Search for pair produced leptoquarks in $e^{+} e^{-}$ interactions at $\sqrt{s}$ approximately = 189-GeV to 209-GeV 619061 . Elliptic flow of identified hadrons in Au+Au collisions at s(NN)**(1/2) = 200-GeV 619063 . Transverse momentum and collision energy dependence of high p(T) hadron suppression in Au+Au collisions at ultrarelativistic energies 619171 . Search for the standard model Higgs boson at LEP 619462 . Search for stable hadronizing squarks and gluinos in e+ e- collisions up to s**(1/2) = 209-GeV 619533 . Measurement of isolated prompt photon production in photon photon collisions at s(ee)**(1/2) = 183 GeV - 209-GeV 619620 . Measurement of exclusive $\rho^0 \rho^0$ production in two photon collisions at high $Q^{2}$ at LEP 619646 . J / psi production in Au Au collisions at s(NN)**(1/2) = 200-GeV at the Relativistic Heavy Ion Collider 619835 . Observation of a narrow resonance of mass 2.46-GeV/c**2 decaying to D*+(s) pi0 and confirmation of the D*(sJ)(2317) state 619958 . Study of hadronic final states from double tagged gamma gamma events at LEP 619987 . Scaling properties of proton and anti-proton production in s(NN)**(1/2) 200-GeV Au+Au collisions 620250 . A Study of the energy evolution of event shape distributions and their means with the DELPHI detector at LEP 620309 . Particle type dependence of azimuthal anisotropy and nuclear modification of particle production in Au + Au collisions at s(NN)**(1/2) = 200-GeV 620387 . Search for excited leptons at LEP 620433 . $p\bar{p}$ pair production in two photon collisions at LEP 620435 . Cabibbo suppressed decays of D+ ---> pi+ pi0, K+ anti-K0, K+ pi0 620500 . Heavy ion collisions at collider energies: Insights from PHENIX 620566 . Tests of models of color reconnection and a search for glueballs using gluon jets with a rapidity gap 621350 . Improved measurement of the form-factors and first search for CP violation in the decay of Lambda+(c) ---> Lambda e+ nu(e) 621391 . Absence of suppression in particle production at large transverse momentum in S(NN)**(1/2) = 200-GeV d + Au collisions 621394 . Evidence from d + Au measurements for final state suppression of high p(T) hadrons in Au+Au collisions at RHIC 621641 . Three pion HBT correlations in relativistic heavy ion collisions from the STAR experiment 621642 . Rapidity and centrality dependence of proton and anti-proton production from Au-197 + Au-197 collisions at (S(NN))**(1/2)) = 130-GeV 621966 . A Dalitz plot analysis of D0 ---> pi- pi+ pi0 decays in CLEO II.V 622312 . Observation of eta-prime(c) production in gamma gamma fusion at CLEO 622724 . A measurement of the gluon splitting rate into c anti-c pairs in hadronic Z decays 622876 . Search for a Higgs boson decaying to weak boson pairs at LEP 623000 . $J/\psi$ production from proton proton collisions at $\sqrt{s}$ = 200-GeV 623047 . Multiplicity fluctuations in Au+Au collisions at s(NN)**(1/2) = 130-GeV 623383 . Quark fragmentation to pi+-, pi0, K+-, p and anti-p in the nuclear environment 623413 . Single identified hadron spectra from s(NN)**(1/2) = 130-GeV Au+Au collisions 623464 . Observation of the hadronic transitions chi (b1,2) (2P) ---> omega Upsilon (1S) 623628 . Measurement of the charge asymmetry in B ---> K*(892)+- pi-+ 623653 . Study of inclusive J / psi production in two photon collisions at LEP-2 with the DELPHI detector 623654 . ZZ production in e+ e- interactions at s**(1/2) = 183-GeV to 209-GeV 624063 . Flavor decomposition of the sea quark helicity distributions in the nucleon from semiinclusive deep inelastic scattering 624448 . Measurement of the hadronic recoil mass moments in semileptonic B decay 624474 . Identified charged particle spectra and yields in Au+Au collisions at S(NN)**1/2 = 200-GeV 624475 . Rho0 production and possible modification in Au+Au and p+p collisions at S(NN)**1/2 = 200-GeV 624566 . Multistrange baryon production in Au-Au collisions at S(NN)**1/2 = 130 GeV 624731 . Pion kaon correlations in Au+Au collisions at s(NN)**1/2 = 130-GeV 625095 . $Z$ boson pair production at LEP 625472 . High $p_{T}$ charged hadron suppression in Au + Au collisions at $\sqrt{s}_{NN} = 200$ GeV 626022 . Exclusive production of pion and kaon meson pairs in two photon collisions at LEP 626316 . A Study of charm production in beauty decays with the OPAL detector at LEP 626317 . Measurement of heavy quark forward backward asymmetries and average B mixing using leptons in hadronic Z decays 626318 . Search for the single production of doubly charged Higgs bosons and constraints on their couplings from Bhabha scattering 626732 . Measurement of charged current triple gauge boson couplings using $W$ pairs at LEP 626905 . Event by event < p(t) > fluctuations in Au - Au collisions at s(NN)**(1/2) = 130-GeV 627211 . A Study of $W^{+} W^{-} \gamma$ events at LEP 627212 . Search for anomalous production of dilepton events with missing transverse momentum in e+ e- collisions at s**(1/2) = 183-Gev to 209-GeV 627327 . Measurement of the decay rate of Xi0(c) ---> pK- K- pi+ relative to Xi0(c) ---> Xi- pi+ 627886 X PHENIX detector overview 627888 X PHENIX central arm tracking detectors 627891 X PHENIX muon arms 627893 X PHENIX on-line systems 628232 . Pion, kaon, proton and anti-proton transverse momentum distributions from $p + p$ and $d +$ Au collisions at $\sqrt{s_{NN}} = 200$GeV 628491 . Tests of the standard model and constraints on new physics from measurements of fermion pair production at 189-GeV to 209-GeV at LEP 628565 . Search for charged Higgs bosons at LEP 628566 . Measurement of inclusive f(1)(1285) and f(1)(1420) production in Z decays with the DELPHI detector 628757 . Cabibbo suppressed decays of D+ ---> pi+ pi0, K+ anti-K0, K+ pi0 629157 . Search for doubly charged Higgs bosons at LEP 629858 . Search for scalar leptons and scalar quarks at LEP 630099 . Study of Z pair production and anomalous couplings in e+ e- collisions at s**(1/2) between 190-GeV and 209-GeV 630160 . Identified particle distributions in pp and Au+Au collisions at s(NN)**(1/2) = 200 GeV 630161 . Measurement of nonrandom event by event fluctuations of average transverse momentum in s(NN)**(1/2) = 200-GeV Au+Au and p+p collisions 631231 . Measurement of the hadronic photon structure function F2(gamma)(x, Q**2) in two-photon collisions at LEP 631361 . Experimental studies of unbiased gluon jets from $e^{+} e^{-}$ annihilations using the jet boost algorithm 631529 . Search for R parity violating decays of scalar fermions at LEP 631713 . Azimuthal anisotropy at RHIC: The First and fourth harmonics 631869 . Cross-sections and transverse single spin asymmetries in forward neutral pion production from proton collisions at s**(1/2) = 200- GeV 632225 . The Eta(c)(2980) formation in two photon collisions at LEP energies 632226 . Measurement of the e+ e- ---> W+ W- gamma cross-section and limits on anomalous quartic gauge couplings with DELPHI 632227 . A Measurement of the branching fractions of the $b$ quark into charged and neutral $b$ hadrons 632293 . Nuclear polarization of molecular hydrogen recombined on a non-metallic surface 632738 . Searches for supersymmetric particles in e+ e- collisions up to 208-GeV and interpretation of the results within the MSSM 633196 . Search for CP violation in D0 ---> K0(S) pi+ pi- 633679 . Observation of the hadronic transitions chi(b1,2)(2P) ---> omega upsilon(1S) 634946 . Search for color singlet and color reconnection effects in hadronic $Z$ decays at LEP 635102 . Azimuthally sensitive HBT in Au + Au collisions at s(NN)**(1/2) = 200-GeV 635448 . Flavor independent search for Higgs bosons decaying into hadronic final states in e+ e- collisions at LEP 635543 . Measurement of the partial widths of the Z into up and down type quarks 635665 . Evidence for a narrow |S| = 1 baryon state at a mass of 1528-MeV in quasireal photoproduction 635790 . W boson polarization at LEP2 635850 . Absolute mass lower limit for the lightest neutralino of the MSSM from e+ e- data at s**(1/2) up to 209-GeV 635851 . Measurement of the W pair production cross-section and W branching ratios in e+ e- collisions at s**(1/2) = 161-GeV to 209-GeV 636329 . Observation of eta-prime(c) production in gamma gamma fusion at CLEO 636644 . Two-dimensional analysis of Bose-Einstein correlations in hadronic Z decays at LEP 636645 . Studies of QCD at e+ e- centre-of-mass energies between 91-GeV and 209-GeV 636842 . Searches for invisibly decaying Higgs bosons with the DELPHI detector at LEP 636843 . A Precise measurement of the $B^{+}$, $B^0$ and mean $b$ hadron lifetime with the DELPHI detector at LEP1 636844 . Search for chargino and neutralino production at s**(1/2) = 192-GeV to 209 GeV at LEP 636939 . Measurement of the Z boson mass using e+ e- ---> Z gamma events at center of mass energies above the Z pole 636940 . Single photon and multiphoton events with missing energy in $e^{+} e^{-}$ collisions at LEP 636941 . Flavor independent search for neutral Higgs bosons at LEP 637287 . Inclusive lambda production in two photon collisions at LEP 637613 . Measurement of the Lambda0(b) decay form-factor 637614 . Measurement of the forward backward asymmetries of e+ e- ---> Z ---> b anti-b and e+ e- ---> Z -> c anti-c using prompt leptons 637615 . Search for SUSY in the AMSB scenario with the DELPHI detector 637639 . Search for charged Higgs bosons at LEP in general two Higgs doublet models 637640 . Search for $B^0_s$-$\overline{B^0_s}$ oscillations in DELPHI using high-$p_t$ leptons 637641 . Search for single top production via FCNC at LEP at $\sqrt{s}$ = 189-GeV to 208-GeV 638198 . Search for supersymmetric particles assuming R-parity nonconservation in e+ e- collisions at s**(1/2) = 192-GeV to 208-GeV 638199 . Study of tau-pair production in photon-photon collisions at LEP and limits on the anomalous electromagnetic moments of the tau lepton 638200 . Search for fermiophobic Higgs bosons in final states with photons at LEP 2 638218 . Photon events with missing energy in e+ e- collisions at s**(1/2) = 130-GeV to 209-GeV 638858 . A Precise measurement of the tau lifetime 639484 . Study of spin and decay-plane correlations of $W$ bosons in the $e^{+} e^{-} \to W^{+} W^{-}$ process at LEP 639734 . Measurement of branching fractions of $\tau$ hadronic decays 640204 . A Measurement of the tau hadronic branching ratios 642225 . Bose-Einstein correlations of charged pion pairs in Au + Au collisions at s(NN)**(1/2) = 200-GeV 642354 . Wess-Zumino current and the structure of the decay tau- ---> K- K+ pi- nu(tau) 642374 . Photon and neutral pion production in Au + Au collisions at s(NN)**(1/2) = 130-GeV 642852 . Measurement of |V(cb)| using the semileptonic decay anti-B0(d) ---> D*+ l- anti-nu(l) 643442 X An update from STAR - using strangeness to probe relativistic heavy ion collisions 644313 . Constraints on anomalous QGC's in e+ e- interactions from 183-GeV to 209-GeV 644374 . Constraints on anomalous quartic gauge boson couplings from nu anti-nu gamma gamma and q anti-q gamma gamma events at LEP-2 645126 . Measurement of triple gauge boson couplings of the $W$ boson at LEP 645127 . Muon pair and tau pair production in two photon collisions at LEP 645209 . Charm meson spectra in $e^{+} e^{-}$ annihilation at 10.5-GeV c.m.e. 646971 . Search for anomalous couplings in the Higgs sector at LEP 647287 . Moments of the B meson inclusive semileptonic decay rate using neutrino reconstruction 647288 . Measurement of the B-meson inclusive semileptonic branching fraction and electron energy moments 647348 . Study of Bose-Einstein correlations in $e^+ e^- \to W^+ W^-$ events at LEP 647869 . Production of e+ e- pairs accompanied by nuclear dissociation in ultra-peripheral heavy ion collision 648444 . First observation of a Upsilon(1D) state 648464 . Centrality and pseudorapidity dependence of charged hadron production at intermediate $p_{T}$ in Au + Au collisions at $\sqrt{s_{NN}}$ = 130-GeV 648738 . Scaling violations of quark and gluon jet fragmentation functions in e+ e- annihilations at s**(1/2) = 91.2-GeV and 183-GeV to 209-GeV 648739 . Double helicity asymmetry in inclusive mid-rapidity pi0 production for polarized p + p collisions at s**(1/2) = 200-GeV 649917 . First observation and Dalitz analysis of the D0 ---> K0(S) eta pi0 decay 651461 . phi meson production in Au + Au and p+p collisions at s(NN)**(1/2) = 200-GeV 651462 . Deuteron and antideuteron production in Au + Au collisions at s(NN)**(1/2) = 200-GeV 651512 . Measurement of the strange spectral function in hadronic tau decays 651514 . The Measurement of alpha(s) from event shapes with the DELPHI detector at the highest LEP energies 652683 . Studies of hadronic event structure in $e^{+} e^{-}$ annihilation from 30-GeV to 209-GeV with the L3 detector 652686 . Hard exclusive electroproduction of pi+ pi- pairs 652767 . Search for neutral Higgs boson in CP-conserving and CP-violating MSSM scenarios 653296 . Measurement of W-pair production in e+ e- collisions at centre-of-mass energies from 183-GeV to 209-GeV 653297 . Measurement of the atmospheric muon spectrum from 20-GeV to 3000-GeV 653486 . Hadronization geometry and charge-dependent number autocorrelations on axial momentum space in Au-Au collisions at s(NN)**(1/2) = 130-GeV 653628 . Transverse-momentum dependent modification of dynamic texture in central Au+Au collisions at s(NN)**(1/2) = 200-GeV 653797 . Measurements of transverse energy distributions in Au + Au collisions at s(NN)**(1/2) = 200-GeV 653835 . Study of the $e^{+} e^{-} \to Z \gamma$ process at LEP and limits on triple neutral-gauge-boson couplings 653868 . Open charm yields in d + Au collisions at s(NN)**(1/2) = 200-GeV 654174 . Search for branons at LEP 654177 . Measurement of exclusive rho+ rho- production in high-Q**2 two-photon collisions at LEP 654226 . Azimuthal anisotropy and correlations at large transverse momenta in p+p and Au+Au collisions at s(NN)**(1/2) = 200-GeV 654529 . Observation of 1-0- final states from psi(2S) decays and e+ e- annihilation 654639 . New measurements of $\upsilon_{1S}$ decays to charmonium final states 654756 . Quark helicity distributions in the nucleon for up, down, and strange quarks from semi-inclusive deep-inelastic scattering 654843 . Study of semileptonic charm decays D0 ---> pi- l+ nu and D0 ---> K- l+ nu 655799 . Measurement of the muonic branching fraction of the narrow upsilon resonances at CLEO 655971 . Search for the lepton-flavor-violating leptonic B decays B0 --> mu+- tau -+ and B0 --> e+- tau-+ 656015 . Single-spin asymmetries in semi-inclusive deep-inelastic scattering on a transversely polarized hydrogen target 656142 . Jet structure of baryon excess in Au + Au collisions at s(NN)**(1/2) = 200-GeV 656302 . Transverse momentum correlations and minijet dissipation in Au-Au collisions at s(NN)**(1/2)-GeV 656640 . Multi-photon events with large missing energy in $e^+ e^-$ collisions at $\sqrt{s}$ = 192-GeV - 209-GeV 656761 . Search for X(3872) in untagged gamma gamma fusion and initial state radiation production with CLEO III 656811 . Single vector boson production in e+ e- collisions at centre-of-mass energies from 183-GeV to 209-GeV 656873 . Hadronic branching fractions of D0 and D+, and sigma (e+e- ---> D anti-D) at E(cm) = 3.77-GeV 656883 . Measurement of B(D+ ---> mu+ nu) and the pseudoscalar decay constant f(D+)* 656887 X First CLEO-c results on exclusive D0 semileptonic decays 656934 . Pseudorapidity asymmetry and centrality dependence of charged hadron spectra in d + Au collisions at S(NN)**(1/2) = 200-GeV 656973 . Flavor independent h0A0 search and two Higgs doublet model interpretation of neutral Higgs boson searches at LEP 657367 . Determination of the LEP beam energy using radiative fermion-pair events 657450 . Photon transitions in psi(2S) decays to chi(cJ) (1P) and eta(c)(1S) 657983 . Search for pentaquark states in Z decays 658215 X The HERMES polarized hydrogen and deuterium gas target in the HERA electron storage ring 658254 . Measurement of the cross section of W-boson pair production at LEP 658670 . Measurement of the muonic branching fractions of the narrow Upsilon resonances 659749 . Systematic studies of the centrality and s(NN)**(1/2) dependence of the d E(T) / d eta and d (N(ch) / d eta in heavy ion collisions at mid-rapidity 660087 . Two-particle correlations in p p, anti-p anti-p and K0(S) K0(S) pairs from hadronic Z decays 660565 . Determination of the e+ e- ---> gamma gamma (gamma) cross-section at LEP 2 660611 . Centrality dependence of charm production from single electrons measurement in Au + Au collisions at s(NN)**(1/2) = 200-GeV 660793 . Azimuthal anisotropy in Au+Au collisions at s(NN)**(1/2) = 200-GeV 661031 . Formation of dense partonic matter in relativistic nucleus-nucleus collisions at RHIC: Experimental evaluation by the PHENIX collaboration 661114 . Inclusive jet production in two-photon collisions at LEP 661247 . Searches for neutral higgs bosons in extended models 661505 . Production of phi mesons at mid-rapidity in s(NN)**(1/2) = 200- GeV Au+Au collisions at RHIC 661780 . Measurement of R(b) in e+ e- collisions at 182-GeV to 209-GeV 661781 X Search for radions at LEP2 661925 . Search for X(3872) in gamma gamma fusion and ISR at CLEO 662724 . Measurement of the energy dependence of hadronic jet rates and the strong coupling alpha(s) from the four-jet rate with the DELPHI detector at LEP 662726 . Measurement of exclusive rho0 rho0 production in mid-virtuality two-photon interactions at LEP 662728 . Coherent soft particle production in Z decays into three jets 663098 . A New measurement of the masses and widths of the Sigma*++(c) and Sigma*0(c) charmed baryons 663650 . Minijet deformation and charge-independent angular correlations on momentum subspace (eta, phi) in Au-Au collisions at s(NN)**(1/2) = 130-GeV 664502 . Measuring B(D+ ---> mu+ nu) and the pseudoscalar decay constant f(D+) 664766 . Bose-Einstein correlations in W-pair decays with an event-mixing technique 664843 . Pion interferometry in Au+Au collisions at S(NN)**(1/2) = 200-GeV 664944 . Saturation of azimuthal anisotropy in Au + Au collisions at s(NN)**(1/2) 62-GeV to 200-GeV 665012 . Photon transitions in Upsilon(2S) and Upsilon(3S) decays 665223 . Search for e+ e- ---> Lambda0(b) anti-Lambda0(b) near threshold 665543 . Nuclear modification factors for hadrons at forward and backward rapidities in deuteron-gold collisions at s(NN)**(1/2) = 200-GeV 665729 . Determination of A**b(FB) at the Z pole using inclusive charge reconstruction and lifetime tagging 666578 . K(892)* resonance production in Au+Au and p+p collisions at s(NN)**(1/2) = 200-GeV at STAR 666724 . Search for an exotic S = -2, Q = -2 baryon resonance at a mass near 1862-MeV in quasi-real photoproduction 668268 . Improved measurement of the form-factors in the decay Lambda+(c) ---> Lambda e+ nu(e) 668596 . Search for an invisibly-decaying Higgs boson at LEP 669198 . Improved measurement of the triple gauge-boson couplings gamma W W and Z W W in e+ e- collisions 669402 . Measurement of event shape distributions and moments in e+ e- ---> hadrons at 91-GeV - 209-GeV and a determination of alpha(s) 671611 . Bose-Einstein correlations in W+ W- events at LEP2 673252 . Search for excited leptons in e+ e- collisions at s**(1/2) = 189-GeV to 209-GeV 673292 . Flavour independent searches for hadronically decaying neutral Higgs bosons 674679 X The Search for eta(1440) ---> K0(S) K+- pi-+ in two-photon fusion at CLEO 674863 . Experimental and theoretical challenges in the search for the quark gluon plasma: The STAR Collaboration's critical assessment of the evidence from RHIC collisions 675005 . Study of tau decays to four-hadron final states with kaons 675307 . Distributions of charged hadrons associated with high transverse momentum particles in pp and Au + Au collisions at s(NN)**(1/2) = 200-GeV +675838 . Measurement of the spin structure of the deuteron in the DIS region 676004 . Mid-rapidity direct-photon production in $p^+ p$ collisions at $\sqrt{s}$ = 200-GeV 676168 X Limits on neutral D mixing in semileptonic decays 676188 . Multiplicity and pseudorapidity distributions of photons in Au + Au collisions at s(NN)**(1/2) = 62.4-GeV 676189 . Measurement of single electron event anisotropy in Au+Au collisions at s(NN)**(1/2) = 200-GeV +677550 . First measurement of the transverse spin asymmetries of the deuteron in semi-inclusive deep inelastic scattering 678021 . Centrality dependence of direct photon production in s(NN)**(1/ 2) = 200-GeV Au + Au collisions 678470 . Measurement of the branching fractions for J/psi ---> l+ l- 678471 . Branching fractions for psi(2S) to J/psi transitions +678751 ? Search for the Phi(1860) pentaquark at COMPASS 678858 . Measurement of the shadowing of high-energy cosmic rays by the Moon: A Search for TeV-energy antiprotons 679053 . Search for D0 - anti-D0 mixing in the Dalitz plot analysis of D0 ---> K0(S) pi+ pi- 679349 . Searches for CP violation and pi pi S-wave in the Dalitz-Plot of D0 ---> pi+ pi- pi0 679506 . Measurement of absolute hadronic branching fractions of D mesons and e+ e- ---> D anti-D cross sections at E(cm) = 3773-MeV 679959 . Compton scattering of quasi-real virtual photons at LEP 680119 . Z-boson production with two unobserved, back-to-back, hard photons at LEP 680120 . Measurement of exclusive rho+ rho- production in mid-virtuality two-photon interactions and study of the gamma gamma* ---> rho rho process at LEP 681161 . Multi-strange baryon elliptic flow in Au + Au collisions at s(NN)**(1/2) = 200-GeV 681526 . Neutral-current four-fermion production in e+ e- interactions at LEP 681688 . Incident energy dependence of pt correlations at RHIC 682662 . Subleading-twist effects in single-spin asymmetries in semi-inclusive deep-inelastic scattering on a longitudinally polarized hydrogen target 682775 . Branching fraction measurements of psi(2S) decay to baryon-antibaryon final states 683280 . Measurement of the running of the QED coupling in small-angle Bhabha scattering at LEP 683281 . Observation of h(c))(P(1)-1) state of charmonium 683673 . Observation of thirteen new exclusive multi-body hadronic decays of the psi(2S) 684394 . First measurement of the tensor structure function b(1) of the deuteron 685818 . Absolute branching fraction measurements of exclusive D0 semileptonic decays 685819 . Absolute branching fraction measurements of exclusive D+ semileptonic decays 686120 . Branching ratios and spectral functions of tau decays: Final ALEPH measurements and physics implications 686510 . Dense-Medium Modifications to Jet-Induced Hadron Pair Distributions in Au+Au Collisions at s(NN)**(1/2) = 200-GeV 687094 . Measurement of the cross section for open-beauty production in photon-photon collisions at LEP 687095 . Measurement of the photon structure function F(2)**gamma with the L3 detector at LEP 687100 . Determination of alpha(s) using jet rates at LEP with the OPAL detector 687101 . Searches for gauge-mediated supersymmetry breaking topologies in e+ e- collisions at LEP2 687618 . Measurement of transverse single-spin asymmetries for mid-rapidity production of neutral pions and charged hadrons in polarized p+p collisions at s**(1/2) = 200-GeV 687622 . Measurement of the running of the electromagnetic coupling at large momentum-transfer at LEP 688457 . J/psi production and nuclear effects for d+Au and p+p collisions at s(NN)**(1/2) = 200-GeV 689416 X Observation of psi(3770) ---> pi pi J/psi and measurement of Gamma(ee) [psi(2S)] 689727 . Search for rare and forbidden decays D+ ---> h+- e-+ e+ 689883 . Single electrons from heavy flavor decays in p+p collisions at s**(1/2) = 200-GeV 690020 . Observation of the P(1)-1 state of charmonium 690050 . Measurement of identified pi0 and inclusive photon v(2) and implication to the direct photon production in s(NN)**1/2 = 200-GeV Au+Au collisions 690538 . First evidence and measurement of B(s)(*) anti-B(s)(*) production at the Upsilon(5S) 691029 . Improved measurement of B (D+ ---> mu+ nu) and the pseudoscalar decay constant f(D+) 691119 . Measurement of the mass and width of the $W$ boson 691121 . Colour reconnection in e+ e- ---> W+ W- at s**(1/2) = 189-GeV - 209-GeV 691576 . Precision electroweak measurements on the $Z$ resonance 691720 . Decay of the psi(3770) to light hadrons 692989 . First observation of psi(3770) ---> gamma chi(c1) ---> gamma gamma J/psi 693136 . Transverse-momentum p(t) correlations on (eta, phi) from mean-p(t) fluctuations in Au-Au collisions at s(NN)**1/2 = 200-GeV 693643 . Search for exclusive multi-body non-D anti-D decays at the psi(3770) 693873 . Precision measurements of the timelike electromagnetic form-factors of pion, kaon, and proton 694170 . Radiative decays of the upsilon(1S) to a pair of charged hadrons 694429 . Jet structure from dihadron correlations in d+Au collisions at s(NN)**(1/2) = 200-GeV 694482 . Production of Xi0(c) and Xi(b) in Z decays and lifetime measurement of X(b) 694483 . Determination of heavy quark non-perturbative parameters from spectral moments in semileptonic B decays 694484 . Charged particle multiplicity in three-jet events and two-gluon systems 694773 . Double hadron leptoproduction in the nuclear medium 694776 . Two photon width of chi(c2) 694869 . Observation of B*(s) anti-B*(s) production at the upsilon(5S) resonance 695305 . Nuclear modification of electron spectra and implications for heavy quark energy loss in Au+Au collisions at s(NN)**(1/2) - 200-GeV 695404 . Directed flow in Au+Au collisions at s(NN)**(1/2) = 62-GeV 696676 . Proton - lambda correlations in central Au+Au collisions at S(NN)**(1/2) = 200-GeV 697074 . Experimental study of chi(b)(2P) ---> pi pi chi(b)(1P) +697590 . Gluon polarization in the nucleon from quasi-real photoproduction of high-p(T) hadron pairs 697905 . Multiplicity and pseudorapidity distributions of charged particles and photons at forward pseudorapidity in Au + Au collisions at s(NN)**(1/2) = 62.4-GeV 698663 . Measurement of the mass and the width of the $W$ boson at LEP 698939 X Strangelet search at RHIC 699296 . Radiative decays of the Upsilon(1S) to gamma pi0 pi0, gamma eta eta and gamma pi0 eta 699726 . Measurement and interpretation of fermion-pair production at LEP energies above the Z resonance 700760 . Measurement of Gamma(ee)(J/psi), Gamma(tot)(J/psi), and Gamma(ee)[psi(2S)]/Gamma(ee)(J/psi) 700996 . Quarkonium production from d + Au to Au + Au collisions 700998 . Open charm production from d + Au collisions in STAR 700999 . Charm production in the STAR experiment at RHIC 701000 . Heavy flavor production in PHENIX 701003 . Recent high-p(T) results from STAR 701004 . Differential probes of medium-induced energy loss 701007 . Medium effects on high particle production measured with the PHENIX experiment 701008 . Can phi mesons give an answer to the baryon puzzle at RHIC? 701017 . Low mass dilepton production at RHIC energies 701099 . Di-electron widths of the Upsilon(1S,2S,3S) resonances 701217 . Measurement of the direct photon momentum spectrum in upsilon(1S), upsilon(2S), and upsilon(3S) decays 701316 . New measurements of Cabibbo-suppressed decays of D mesons in CLEO-c 702458 . Measurement of the Strong Coupling alpha(s) from four-jet observables in e+ e- annihilation 704268 . Study of double-tagged gamma gamma events at LEP II 704269 . Determination of the b quark mass at the M(Z) scale with the DELPHI detector at LEP 704275 . Measurement of hadron and lepton-pair production in e+ e- collisions at s**(1/2) = 192-GeV to 208-GeV at LEP 704823 . Evidence for an excess of soft photons in hadronic decays of Z0 705123 . Single intermediate vector boson production in e+e- collisions at s**(1/2) = 183-GeV to 209-GeV 705125 . Analysis of the pi+ pi- pi+ pi- and pi+ pi0 pi- pi0 final states in quasi-real two-photon collisions at LEP 708627 X Experimental limits on weak annihilation contributions to B ---> u l nu decay 709170 . Identified hadron spectra at large transverse momentum in p+p and d+Au collisions at s(NN)**(1/2) = 200-GeV 709321 . Common suppression pattern of eta and pi0 mesons at high transverse momentum in Au+Au collisions at S(NN)**(1/2) = 200-GeV 709461 . First measurements of the exclusive decays of the upsilon(5S) to B meson final states and improved B*(S) mass measurement 709575 . Measurements of identified particles at intermediate transverse momentum in the STAR experiment from Au + Au collisions at $\sqrt{s_{NN}}=200$ GeV 709644 . Improved measurement of double helicity asymmetry in inclusive midrapidity pi0 production for polarized p+p collisions at s**(1/2) = 200-GeV 709902 . A Determination of the centre-of-mass energy at LEP2 using radiative 2-fermion events 710186 . Forward neutral pion production in p+p and d+Au collisions at s(NN)**(1/2) = 200-GeV 710864 . Charmonium decays of Y(4260), psi(4160) and psi(4040) 711130 . Search for neutral MSSM Higgs bosons at LEP 711951 . Nuclear effects on hadron production in d = Au and p + p collisions at s(NN)**(1/2) = 200-GeV 712068 . Measurement of interference between electromagnetic and strong amplitudes in psi(2S) decays to two pseudoscalar mesons 712308 . Search for the non-D anti-D decay psi(3770) ---> K0(S) K0(L) 712584 . Azimuthal angle correlations for rapidity separated hadron pairs in d + Au Collisions at s(NN)**(1/2) = 200-GeV 713676 . QCD coherence and correlations of particles with restricted momenta in hadronic Z decays 714248 . Deuteron and anti-deuteron production in e+ e- collisions at the Z resonance 715094 ! Test of Colour Reconnection Models using Three-Jet Events in Hadronic Z Decays 715095 X An Investigation of D+ ---> tau+ nu 715096 X Absolute Branching Fraction Measurements for D+ and D0 Inclusive Semileptonic Decays 715470 . Direct observation of dijets in central Au+Au collisions at s(NN)**(1/2) = 200-GeV 715471 . Strange baryon resonance production in s(NN)**(1/2) = 200-GeV p+p and Au+Au collisions 715982 . Measurement of the $W$ boson mass and width in $e^{+} e^{-}$ collisions at LEP 716058 X The Solar flare of the 14th of July 2000 (L3+C detector results) 716897 ! Jet properties from dihadron correlations in $p^+ p$ collisions at $\sqrt{s}$ = 200-GeV 717029 . Observation of psi(3770) ---> gamma chi(c)0 717202 . Search for Higgs bosons decaying to WW in e+ e- collisions at LEP 717232 . The Energy dependence of $p_t$ angular correlations inferred from mean-p($t$) fluctuation scale dependence in heavy ion collisions at the SPS and RHIC 717721 . The Beam-charge azimuthal asymmetry and deeply virtual compton scattering 717744 . Evidence for a long-range component in the pion emission source in Au + Au collisions at s(NN)**(1/2) = 200-GeV 718231 . Identified baryon and meson distributions at large transverse momenta from Au+Au collisions at s(NN)**(1/2) = 200-GeV 718423 . Model independent measurement of form-factors in the decay D+ ---> K- pi+ e+ nu(e) 718755 . Scaling Properties of Hyperon Production in Au+Au Collisions at s**(1/2) = 200-GeV 719387 . Masses, Lifetimes and Production Rates of Xi- and anti-Xi+ at LEP 1 719683 . Measurement of interfering K*+ K- and K*- K+ amplitudes in the decay D0 ---> K+ K- pi0 719969 . The Multiplicity dependence of inclusive $p_t$ spectra from $p p$ collisions at $\sqrt{s}$ = 200-GeV 720775 . Longitudinal Spin Transfer to the Lambda Hyperon in Semi-Inclusive Deep-Inelastic Scattering 721060 . Delta phi Delta eta Correlations in Central Au+Au Collisions at s(NN)**(1/2) = 200-Gev 721275 . Transverse momentum and centrality dependence of high-$p_T$ non-photonic electron suppression in Au+Au collisions at $\sqrt{s_{NN}} = 200$\,GeV 721447 . First Observation of Upsilon(3S) ---> tau+ tau- and Tests of Lepton Universality in Upsilon Decays 722306 . Study of Particle Production in Quark vs. Gluon Fragmentation at s**(1/2) ~ 10-GeV 722308 . Measurement of Upper Limits for Upsilon ---> gamma + Resonance Decays 722420 . Improved Measurement of the Branching Fraction and Energy Spectrum of eta-prime from Upsilon(1S) Decays 722432 . Comparison of D ---> K0(L) pi and D ---> K0(S) pi decay rates 722433 X Dalitz analysis of D+ ---> pi+ pi- pi+ 722435 . $\chi_{cJ}$ Decays to $h^+h^-h^0$ 722519 . Measurement of D(s)+ ---> mu+ nu and the decay constant f(D(s)) 722520 . Branching fraction for the doubly-Cabibbo-suppressed decay D+ ---> K+ pi0 722523 . D0 anti-D0 Quantum Correlations, Mixing, and Strong Phases 722524 . Measurement of Absolute Hadronic Branching Fractions of D(s) Mesons 722525 . Measurement of B(Upsilon(5S) ---> B(*)(s) anti-B(*)(s)) Using phi Mesons 722757 . Strange particle production in p+p collisions at s**(1/2) = 200-GeV 723227 X A search for flaring very-high-energy cosmic gamma-ray sources with the L3+C muon spectrometer 723366 . Neutral kaon interferometry in Au+Au collisions at s(NN)**(1/2) = 200-GeV 723509 . Longitudinal double-spin asymmetry and cross section for inclusive jet production in polarized proton collisions at s**(1/2) = 200-GeV 723948 . Scaling properties of azimuthal anisotropy in Au+Au and Cu+Cu collisions at s(NN) = 200-GeV 725482 . Branching Fraction for the Doubly-Cabibbo-Suppressed Decay D+ ---> K+ pi0 725484 . Measurement of high-p(T) single electrons from heavy-flavor decays in p+p collisions at s**(1/2) = 200-GeV 726101 . Rapidity and species dependence of particle production at large transverse momentum for d+Au collisions at s(NN)**(1/2) = 200-GeV 726259 . Measurement of direct photon production in p + p collisions at s**(1/2) = 200-GeV 726260 . Measurement of Single Muons at Forward Rapidity in p+p Collisions at s**(1/2) = 200-GeV and Implications for Charm Production +726688 . The Deuteron Spin-dependent Structure Function g1(d) and its First Moment 726689 . Precise determination of the spin structure function g(1) of the proton, deuteron and neutron 727171 . Fermion pair production in $e^{+} e^{-}$ collisions at 189-209-GeV and constraints on physics beyond the standard model 727262 . Study of inclusive strange-baryon production and search for pentaquarks in two-photon collisions at LEP 728043 . Measurement of inclusive production of eta, eta-prime and phi mesons in D0, D+ and D(s)+ decays 728678 . Study of Leading Hadrons in Gluon and Quark Fragmentation 728679 . Improved Measurement of the Branching Fraction and Energy Spectrum of eta-prime from Upsilon(1S) Decays 728872 . Measurement of B(Upsilon(5S) ---> B(*)(s) anti-B(*)(s)) Using phi Mesons 729387 . Search for invisibly decaying Higgs bosons with large decay width using the OPAL detector at LEP +729695 . A New measurement of the Collins and Sivers asymmetries on a transversely polarised deuteron target 729950 . Centrality dependence of pi0 and eta production at large transverse momentum in s(NN)**(1/2) = 200-GeV d+Au collisions 731133 . High transverse momentum $\eta$ meson production in $p^+ p$, $d^+$ Au and Au+Au collisions at $S(NN) ^{(1/2)}$ = 200-GeV 731134 . A Detailed Study of High-p(T) Neutral Pion Suppression and Azimuthal Anisotropy in Au+Au Collisions at s(NN)**(1/2) = 200-GeV 731611 . $J/\psi$ production versus transverse momentum and rapidity in $p^+ p$ collisions at $\sqrt{s}$ = 200-GeV 731612 . Confirmation of the Y(4260) resonance production in ISR 731666 . Correlated Production of p and anti-p in Au+Au Collisions at s(NN)**(1/2) = 200-GeV 731668 . Energy Loss and Flow of Heavy Quarks in Au+Au Collisions at s(NN)**(1/2) = 200-GeV 731669 . System Size and Energy Dependence of Jet-Induced Hadron Pair Correlation Shapes in Cu+Cu and Au+Au Collisions at s(NN)**(1/2) = 200 and 62.4-GeV 731670 . $J/\psi$ Production vs Centrality, Transverse Momentum, and Rapidity in Au+Au Collisions at $\sqrt{s_{NN}} = 200$ GeV 732065 . $\chi_{cJ}$ Decays to $h^+h^-h^0$ 732097 . Production of omega mesons at Large Transverse Momenta in p + p and d + Au Collisions at s**(1/2)(NN) = 200-GeV 733995 . Anti-deuteron production in Upsilon(nS) decays and the nearby continuum 734955 . Inclusive production of charged hadrons in photon-photon collisions 735405 . Search for Invisible Decays of the Upsilon(1S) Resonance 735612 . Beam-Spin Asymmetries in the Azimuthal Distribution of Pion Electroproduction 737605 . Search for a fourth generation $b^\prime$-quark at LEP-II at $\sqrt{s}$ = 196-GeV - 209-GeV 737606 . Investigation of colour reconnection in WW events with the DELPHI detector at LEP-2 741917 . Mass, quark-number, and $\sqrt{s_{NN}}$ dependence of the second and fourth flow harmonics in ultra-relativistic nucleus-nucleus collisions +742118 . Spin asymmetry A1(d) and the spin-dependent structure function g1(d) of the deuteron at low values of x and Q**2 742120 . A Precision Determination of the D0 Mass 742598 . Search for psi(2S) ---> eta(c) pi+ pi- pi0 746166 . Charged particle distributions and nuclear modification at high rapidities in d + Au collisions at s(NN)**(1/2) = 200-GeV 746499 . Elliptic flow for phi mesons and (anti)deuterons in Au + Au collisions at s(NN)**(1/2) = 200-GeV 746872 . Partonic flow and phi-meson production in Au + Au collisions at s(NN)**(1/2) = 200-GeV 747272 . A Study of Exclusive Charmless Semileptonic B Decay and |V(ub)| 747273 . A Study of Exclusive Charmless Semileptonic B Decays and Extraction of $|V_{ub}|$ at CLEO 747299 . Energy dependence of pi+-, p and anti-p transverse momentum spectra for Au+Au collisions at s(NN)**(1/2) = 62.4 and 200-GeV +747655 X The COMPASS experiment at CERN 748511 . Measurement of $B(D_S^+) \to \ell^{+} \nu$ and the decay constant $f(D_S^+)$ 748517 . Measurement of the decay constant $f(D^+_S)$ using $D^+_{S} \to \ell^{+} \nu$ +748623 . Double spin asymmetry in exclusive rho0 muoproduction at COMPASS 749012 . Comparison of particle production in quark and gluon fragmentation at s**(1/2) ~ 10-GeV 749015 . Measurement of upper limits for Upsilon ---> gamma + R decays 749066 . Measurement of density correlations in pseudorapidity via charged particle multiplicity fluctuations in Au+Au collisions at s(NN)**(1/2) = 200-GeV 749128 . Search for radiative decays of Upsilon(1S) into eta and eta-prime 749182 . Transverse Polarization of Lambda and anti-Lambda Hyperons in Quasireal Photoproduction 749249 . Hadronization in semi-inclusive deep-inelastic scattering on nuclei 749394 . Inclusive cross-section and double helicity asymmetry for pi0 production in p + p collisions at s**(1/2) = 200-GeV: Implications for the polarized gluon distribution in the proton 749464 . Study of resonance formation in the mass region 1400-MeV to 1500-MeV through the reaction gamma gamma ---> K0(S) K+- pi-+ 749602 . Dalitz plot analysis of the D+ ---> pi- pi+ pi+ decay 750410 . Global polarization measurement in Au+Au collisions 750816 . Enhanced strange baryon production in Au + Au collisions compared to p + p at s(NN)**(1/2) = 200-GeV 751182 . Transverse momentum and centrality dependence of dihadron correlations in Au+Au collisions at s(NN) = 200-GeV: Jet-quenching and the response of partonic matter 751692 . Evidence for the decay D0 --> K- pi+ pi- e+ nu(e) 751885 . Measurement of transverse single-spin asymmetries for di-jet production in proton-proton collisions at s**(1/2) = 200-GeV 752244 . Forward Lambda production and nuclear stopping power in d + Au collisions at s(NN)**(1/2) = 200-GeV 753271 . Study of di-pion transitions among Upsilon(3S), Upsilon(2S), and Upsilon(1S) states 753391 . Study of multi-muon bundles in cosmic ray showers detected with the DELPHI detector at LEP 753394 . Z gamma* production in e+e- interactions at s**(1/2) = 183 - 209-GeV 753526 . Study of triple-gauge-boson couplings ZZZ, ZZgamma and Zgamma gamma LEP 753556 . Measurement of the Total Hadronic Cross Section in e+e- Annihilations below 10.56-GeV 753658 . Enhancement of the dielectron continuum in s(NN)**(1/2) = 200-geV Au+Au collisions 753710 . Measurement of the Cross Section for open b-Quark Production in Two-Photon Interactions at LEP 754316 . Inclusive Jet Production in Photon-Photon Collisions at s(ee)**(1/2) from 189 to 209-GeV 754622 . Cross-sections for hard exclusive electroproduction of pi+ mesons on a hydrogen target 754788 . Search for invisibly decaying Higgs bosons in e+ e- ---> Z0 h0 production at s**(1/2) = 183-GeV - 209-GeV 754804 X Search for Dirac magnetic monopoles in e+e- collisions with the OPAL detector at LEP2 755533 . Measurement of Prominent eta Decay Branching Fractions 755631 . Measurement of the eta-Meson Mass using psi(2S) ---> eta J/psi 756352 . Dalitz plot analysis of the D+ ---> K- pi+ pi+ decay +756797 . The Polarised Valence Quark Distribution from semi-inclusive DIS 757240 . Suppressed Decays of D(s)+ Mesons to Two Pseudoscalar Mesons 757421 . Search for Pentaquarks in the Hadronic Decays of the Z Boson with the DELPHI Detector at LEP 757820 . Bose-Einstein study of position-momentum correlations of charged pions in hadronic Z0 decays 757918 . Measurement of the e+ e- ---> W+ W- cross section and W decay branching fractions at LEP 758544 . Centrality dependence of charged hadron production in deuteron + gold and nucleon + gold collisions at s(NN)**(1/2) = 200-GeV 761696 . Measurement of absolute hadronic branching fractions of D mesons and e+ e- ---> D anti-D cross-sections at the psi(3770) 763352 . Measurement of the Tau Lepton Polarisation at LEP2 763822 . Longitudinal double-spin asymmetry for inclusive jet production in p+p collisions at s**(1/2) = 200-GeV 767218 . Comparison of D ---> K0(S) pi and D ---> K0(L) pi Decay Rates 768530 . Cold Nuclear Matter Effects on J/Psi as Constrained by Deuteron-Gold Measurements at s(NN)**(1/2) = 200-GeV 769770 . A Study of the decays D0 ---> pi- e+ nu(e), D0 ---> K- e+ nu(e), D+ ---> pi0 e+ nu(e), and D+ ---> anti-K0 e+ nu(e) 769777 . A Study of the semileptonic charm decays D0 --->pi- e+ nu(e), D+ ---> pi0 e+ nu(e), D0 ---> K- e+ nu(e), and D+ ---> anti-K0 e+ nu(e) 769930 . Measurement of the absolute branching fraction of D(s)+ ---> tau+ nu(tau) decay 770833 . Particle-species dependent modification of jet-induced correlations in Au+Au collisions at s(NN)**(1/2) = 200-GeV 771169 . $\rho^0$ photoproduction in ultraperipheral relativistic heavy ion collisions at $\sqrt{s_{NN}}$ = 200 GeV 771583 . Source breakup dynamics in Au+Au Collisions at s(NN)**(1/2) = 200-GeV via three-dimensional two-pion source imaging 773136 X Higgs boson searches in CP-conserving and CP-violating MSSM scenarios with the DELPHI detector 775920 . Observation of the Muon Inner Bremsstrahlung at LEP1 775931 . Measurement of alpha(s) with Radiative Hadronic Events 776512 . chi(c0) and chi(c2) Decays into eta eta, eta eta-prime, and eta-prime eta-prime Final States 776624 . J/psi Production in s(NN)**(1/2) = 200-GeV Cu+Cu Collisions 776722 . Hadronic resonance production in d+Au collisions at s(NN)**(1/2) = 200-GeV at RHIC 776805 . Absolute Measurement of Hadronic Branching Fractions of the D(s)+ Meson 777039 . Study of W boson polarisations and Triple Gauge boson Couplings in the reaction e+e- ---> W+W- at LEP 2 777211 . Quantitative Constraints on the Opacity of Hot Partonic Matter from Semi-Inclusive Single High Transverse Momentum Pion Suppression in Au+Au collisions at s(NN)**(1/2) = 200-GeV 777248 . Spin alignment measurements of the K*0(892) and phi (1020) vector mesons in heavy ion collisions at s(NN)**(1/2) = 200 GeV 777766 . Forward Neutral Pion Transverse Single Spin Asymmetries in p+p Collisions at s**(1/2) = 200-GeV 777917 . Measurement of Charm Production Cross Sections in e+e- Annihilation at Energies between 3.97 and 4.26-GeV 777954 . Centrality dependence of charged hadron and strange hadron elliptic flow from s(NN)**(1/2) = 200-GeV Au + Au collisions 778168 . Suppression pattern of neutral pions at high transverse momentum in Au + Au collisions at s(NN)**(1/2) = 200-GeV and constraints on medium transport coefficients 778396 . Dihadron azimuthal correlations in Au+Au collisions at s(NN)**(1/2) = 200-GeV 778403 . Onset of pi0 Suppression Studied in Cu+Cu Collisions at sNN=22.4, 62.4, and 200 GeV 778611 . Dilepton mass spectra in p+p collisions at s**(1/2) = 200-GeV and the contribution from open charm +779473 . Collins and Sivers asymmetries for pions and kaons in muon-deuteron DIS 779522 . Determination of the Strong Phase in $D^0 \to K^{+} \pi^{-}$ Using Quantum-Correlated Measurements 779525 . Determination of the $D^0 \to K^{+} \pi^{-}$ Relative Strong Phase Using Quantum-Correlated Measurements in $e^{+} e^{-} \to D^0 D^0$ bar at CLEO 779610 . Measurement of Azimuthal Asymmetries With Respect To Both Beam Charge and Transverse Target Polarization in Exclusive Electroproduction of Real Photons 779705 . Measurement of exclusive D meson decays to eta and eta-prime final states and SU(3) amplitude analysis +779857 . Direct Measurement of the Gluon Polarisation in the Nucleon via Charmed Meson Production 780363 . Dalitz plot analysis of the D+ ---> K- pi+ pi+ decay 780368 . Observation of D+ ---> eta e+ nu(e) 780807 . Absolute Branching Fractions of Cabibbo-Suppressed D ---> K anti-K Decays 780910 . First Observation of the Decay D(s)+ ---> p anti-n 781479 . Evidence for a Transverse Single-Spin Asymmetry in Leptoproduction of pi+pi- Pairs 781550 . Measurement of the Mass and Width of the $W$ Boson in $e^{+} e^{-}$ Collisions at $\sqrt{s}$ = 161-GeV - 209-GeV 781671 . Two-Photon Widths of the chi(cJ) States of Charmonium 781770 . Measurement of Parton Distributions of Strange Quarks in the Nucleon from Charged-Kaon Production in Deep-Inelastic Scattering on the Deuteron 784219 . Study of b-quark mass effects in multijet topologies with the DELPHI detector at LEP 784417 . Enhanced production of direct photons in Au+Au collisions at $\sqrt{s_{NN}}=200$ GeV and implications for the initial temperature 784516 . Branching Fractions for Transitions of psi(2S) to J/psi 784900 . J/psi and psi(2S) Radiative Decays to eta(c) 784947 . Charmed hadron production at low transverse momentum in Au+Au collisions at RHIC 785050 . Indications of Conical Emission of Charged Hadrons at RHIC 785509 . Charged hadron multiplicity fluctuations in Au+Au and Cu+Cu collisions from $\sqrt{s_{NN}}=22.5$ to 200 GeV 786911 . Precision Measurement of the Mass of the h(c)(P-1(1)) State of Charmonium 787103 . Inclusive Radiative J/psi Decays 787194 . Charge Independent(CI) and Charge Dependent(CD) correlations as a function of Centrality formed from Delta phi imum Delta eta Charged Pair Correlations in Minimum Bias Au+Au Collisions at s(NN)**(1/2) = 200-GeV 787282 . Observation of J/psi --> 3 gamma 787608 . First Observation of Exclusive chi(cJ) Decays to Two Charged and Two Neutral Hadrons 787786 . Measurement of exclusive baryon-antibaryon decays of chicJ mesons 788072 . Precision Measurement of B(D+ ---> mu+ nu) and the Pseudoscalar Decay Constant f(D+) 788313 . Measurement of the eta-prime-meson mass using J/psi ---> gamma eta-prime 788648 . Observation of Upsilon(2S) ---> eta Upsilon(1S) and search for related transitions 790315 . Search for Very Light CP-Odd Higgs Boson in Radiative Decays of Upsilon(S-1) 790350 . System-size independence of directed flow at the Relativistic Heavy-Ion Collider 790943 . Search for Lepton Flavor Violation in Upsilon Decays 791177 . Beam-Energy and System-Size Dependence of Dynamical Net Charge Fluctuations 791355 . Observation of chi(cJ) radiative decays to light vector mesons 791378 . Inclusive chi(bJ)(nP) Decays to D0 X 791716 . Search for CP Violation in the Dalitz-Plot Analysis of D+- ---> K+ K- pi+- 792291 . Study of the solar anisotropy for cosmic ray primaries of about 200- GeV energy with the L3 + C muon detector 792583 . Observation of chi(b)(1P(J),2P(J)) decays to light hadrons 793126 . Systematic Measurements of Identified Particle Spectra in $p p, d^+$ Au and Au+Au Collisions from STAR 795757 . Improved Measurement of Branching Fractions for pi pi Transitions among Upsilon(nS) States 796677 . Observation of eta-prime decays to pi+ pi- pi0 and pi+ pi- e+ e- 797805 . Measurements of phi meson production in relativistic heavy-ion collisions at RHIC 798465 . The Polarized gluon contribution to the proton spin from the double helicity asymmetry in inclusive pi0 production in polarized p + p collisions at s**(1/2) = 200-GeV 798469 . Inclusive cross section and double helicity asymmetry for pi^0 production in $p^+ p$ collisions at $\sqrt{s}=62.4$ GeV 800237 . Study of D0 ---> pi- e+ nu(e), D+ ---> pi0 e+ nu(e) , D0 --> K- e+ nu(e), and D+ ---> anti-K0 e+ nu(e) in Tagged Decays of the psi(3770) Resonance 800796 . Energy and system size dependence of phi meson production in Cu+Cu and Au+Au collisions 801599 . New Measurement of Exclusive Decays of the chi(c0) and CHI(C2) to Two-Meson Final States 803872 . Search for Charged Higgs Bosons in $e^+e^-$ Collisions at $\sqrt{s} = 189-209$ GeV 804391 . Observation of Two-source Interference in the Photoproduction Reaction Au Au ---> Au Au rho0 806241 . Di-jet production in gamma gamma collisions at LEP2 807486 . A Study of b anti-b Production in e+e- Collisions at s**(1/2) = 130-GeV - 207-GeV 807487 . Search for one large extra dimension with the DELPHI detector at LEP 810392 . Spin Density Matrix Elements in Exclusive rho0 Electroproduction on H-1 and H-2 Targets at 27.5-GeV Beam Energy 810426 . Measurement of D* Mesons in Jets from p+p Collisions at s**(1/2) = 200-GeV 810624 . Improved Measurement of Absolute Branching Fraction of D(s)+ ---> tau+ nu(tau) 810661 . Measurement of $B{D_s^+ \to \ell^+ \nu}$ and the Decay Constant $fD_s^+$ From 600 $/pb^{-1}$ of $e^\pm$ Annihilation Data Near 4170 MeV 810902 . K/pi Fluctuations at Relativistic Energies 814650 . Absolute Branching Fraction Measurements for Exclusive D(s) Semileptonic Decays 814937 . Pion Interferometry in Au+Au and Cu+Cu Collisions at RHIC 815075 . First model-independent determination of the relative strong phase between D0 and anti-D0 ---> K0(S) pi+ pi- and its impact on the CKM Angle gamma/phi(3) measurement 815217 . Photoproduction of J/psi and of high mass e+e- in ultra-peripheral Au+Au collisions at s**(1/2) = 200-GeV 815824 . Photon-Hadron Jet Correlations in p+p and Au+Au Collisions at s**(1/2) = 200-GeV 816469 . Measurement of Bottom versus Charm as a Function of Transverse Momentum with Electron-Hadron Correlations in $p^+ p$ Collisions at $\sqrt{s}=200$ GeV 816470 . Determination of the D0 ---> K- pi+ pi0 and D0 ---> K-pi+pi+pi- Coherence Factors and Average Strong-Phase Differences Using Quantum-Correlated Measurements 816475 . Kaon interferometric probes of space-time evolution in Au+Au collisions at s(NN)**(1/2) = 200-GeV 816486 . High-pT pi0 Production with Respect to the Reaction Plane in Au + Au Collisions at s(NN)**(1/2) = 200-GeV 817120 . J/psi production at high transverse momentum in p+p and Cu+Cu collisions at s(NN)**1/2 = 200GeV 817691 . System size dependence of associated yields in hadron-triggered jets +818414 . Gluon polarisation in the nucleon and longitudinal double spin asymmetries from open charm muoproduction 819318 . Growth of Long Range Forward-Backward Multiplicity Correlations with Centrality in Au+Au Collisions at s(NN)**(1/2) = 200-GeV 819672 . Systematic Studies of Elliptic Flow Measurements in Au+Au Collisions at s**(1/2) = 200-GeV +820721 . Flavour Separation of Helicity Distributions from Deep Inelastic Muon-Deuteron Scattering 822997 . Center of mass energy and system-size dependence of photon production at forward rapidity at RHIC 823107 . Transverse momentum broadening of hadrons produced in semi-inclusive deep-inelastic scattering on nuclei 823313 . Improved measurements of D meson semileptonic decays to pi and K mesons 823754 . Observation of the Naive-T-odd Sivers Effect in Deep-Inelastic Scattering 824279 . Exclusive rho0 electroproduction on transversely polarized protons 824322 . Inclusive single-particle production in two-photon collisions at LEP II with the DELPHI detector 824816 . Measurement of Z-pair production in e+ e- collisions and constraints on anomalous neutral gauge couplings +824774 . Measurement of the Longitudinal Spin Transfer to Lambda and Anti-Lambda Hyperons in Polarised Muon DIS 825794 . Single-spin azimuthal asymmetry in exclusive electroproduction of pi+ mesons on transversely polarized protons 825820 . Study of hadronic event shape in flavour tagged events in $e^+ e^-$ annihilation at < s**(1/2) > = 197-GeV 825863 . Neutral Pion Production in Au+Au Collisions at s(NN)**(1/2) = 200-GeV 827377 . Search for a Two-Photon Exchange Contribution to Inclusive Deep-Inelastic Scattering 828084 . Correlations between Polarisation States of W Particles in the Reaction e- e+ ---> W- W+ at LEP2 Energies 189-GeV - 209-GeV 830070 . Long range rapidity correlations and jet production in high energy nuclear collisions 830245 . Yields and elliptic flow of d(anti-d) and He-3(anti-He-3) in Au + Au collisions at s(NN)**(1/2) = 200- GeV 830676 . Observation of charge-dependent azimuthal correlations and possible local strong parity violation in heavy ion collisions 830686 . Azimuthal Charged-Particle Correlations and Possible Local Strong Parity Violation 831699 . Separation of contributions from deeply virtual Compton scattering and its interference with the Bethe-Heitler process in measurements on a hydrogen target 831944 . Identified particle production, azimuthal anisotropy, and interferometry measurements in Au+Au collisions at s(NN)**(1/2) = 9.2- GeV 833129 . Double-Helicity Dependence of Jet Properties from Dihadrons in Longitudinally Polarized $p+p$~Collisions at $\sqrt{s}$~=~200~GeV 833375 . Search for psi(2S) ---> gamma eta(c) (2S) via fully reconstructed eta(c)(2S) decays 833423 . Longitudinal Spin Transfer to Lambda and anti-Lambda Hyperons in Polarized Proton-Proton Collisions at s**(1/2) = 200-GeV +835613 . Observation of a J**PC = 1-+ exotic resonance in diffractive dissociation of 190-GeV/c pi- into pi- pi- pi+ 835694 . Nuclear-mass dependence of azimuthal beam-helicity and beam-charge asymmetries in deeply virtual Compton scattering 835697 . Measurement of azimuthal asymmetries associated with deeply virtual Compton scattering on an unpolarized deuterium target 836952 . Longitudinal double-spin asymmetry and cross section for inclusive neutral pion production at midrapidity in polarized proton collisions at $\sqrt{s}=200$ GeV 837075 . Spectra of identified high-$p_{T}$ $\pi^\pm$ and $p(\bar{p})$ in Cu$+$Cu collisions at $\sqrt{s_{NN}}=200$ GeV 837083 . Sigma- - antihyperon correlations in Z(0) decay and investigation of the baryon production mechanism 838580 . Detailed measurement of the $e^+ e^-$ pair continuum in $p+p$ and Au+Au collisions at $\sqrt{s_{NN}} = 200$ GeV and implications for direct photon production 838875 . Observation of pi+ pi- pi+ pi- Photoproduction in Ultra-Peripheral Heavy Ion Collisions at STAR 839470 . Studying Parton Energy Loss in Heavy-Ion Collisions via Direct-Photon and Charged-Particle Azimuthal Correlations 839540 . Transverse momentum dependence of J/psi polarization at midrapidity in p+p collisions at s**(1/2) = 200-GeV 840766 . Inclusive $\pi^0$, $\eta$, and direct photon production at high transverse momentum in $p+p$ and $d+$Au collisions at $\sqrt{s_{NN}}=200$ GeV 840812 . Three-particle coincidence of the long range pseudorapidity correlation in high energy nucleus-nucleus collisions 842959 . $\Upsilon$ cross section in $p+p$ collisions at $\sqrt(s) = 200$ GeV +843494 . The Spin-dependent Structure Function of the Proton g_1^p and a Test of the Bjorken Sum Rule 843985 . Charged and strange hadron elliptic flow in Cu+Cu collisions at $\sqrt{s_{NN}}$ = 62.4 and 200 GeV 844983 . Longitudinal scaling property of the charge balance function in Au + Au collisions at 200 GeV 845169 . Trends in Yield and Azimuthal Shape Modification in Dihadron Correlations in Relativistic Heavy Ion Collisions 845287 . Measurements of CP-conserving Trilinear Gauge Boson Couplings WWV (V = gamma,Z) in e+e- Collisions at LEP2 846228 . Leading-Order Determination of the Gluon Polarization from high-p(T) Hadron Electroproduction 846927 X Observation of a VHE cosmic-ray flare-signal with the L3+C muon spectrometer 847547 X Search for neutral Higgs bosons decaying into four taus at LEP2 848409 . Observation of an Antimatter Hypernucleus 850211 . Elliptic and hexadecapole flow of charged hadrons in Au+Au collisions at $\sqrt{s_{NN}}=200$ GeV 850490 . Exclusive Leptoproduction of Real Photons on a Longitudinally Polarised Hydrogen Target 850950 . Pion femtoscopy in $p^+ p$ collisions at $\sqrt{s}=200$ GeV 851373 . Study of the Dependence of Direct Soft Photon Production on the Jet Characteristics in Hadronic Z^0 Decays 851937 . Azimuthal di-hadron correlations in d+Au and Au+Au collisions at $\sqrt{s_{NN}}=200$ GeV from STAR 852260 X Nuclear modification factors of $\phi$ mesons in $d+$Au, Cu+Cu and Au+Au collisions at sqrt(S_NN) =200 GeV 853304 . Higher Moments of Net-proton Multiplicity Distributions at RHIC 854475 . Heavy Quark Production in $p+p$ and Energy Loss and Flow of Heavy Quarks in Au+Au Collisions at $\sqrt{s_{NN}}=200$ GeV 855102 . Measurement of neutral mesons in p+p collisions at $\sqrt(s)$= 200 GeV and scaling properties of hadron production 855746 . Balance Functions from Au$+$Au, $d+$Au, and $p+p$ Collisions at $\sqrt{s_{NN}}$ = 200 GeV 856259 . Transverse momentum dependence of meson suppression $\eta$ suppression in Au+Au collisions at $\sqrt{s_{NN}}$ = 200 GeV +856645 . Measurement of the Collins and Sivers asymmetries on transversely polarised protons 857187 . High $p_T$ direct photon and $\pi^0$ triggered azimuthal jet correlations and measurement of $k_T$ for isolated direct photons in $p+p$ collisions at $sqrt{s}=200$ GeV 857694 . $K^{*0}$ production in Cu+Cu and Au+Au collisions at $\sqrt{s_NN} = 62.4$ GeV and 200 GeV 858845 . Azimuthal anisotropy of neutral pion production in Au+Au collisions at $\sqrt(s_NN)$ = 200 GeV: Path-length dependence of jet quenching and the role of initial geometry 859154 . Effects of transversity in deep-inelastic scattering by polarized protons 860571 . Measurement of the Bottom contribution to non-photonic electron production in $p+p$ collisions at $\sqrt{s} $=200 GeV +861046 . Azimuthal asymmetries of charged hadrons produced by high-energy muons scattered off longitudinally polarised deuterons 861351 . An Experimental Exploration of the QCD Phase Diagram: The Search for the Critical Point and the Onset of De-confinement +862410 . Quark helicity distributions from longitudinal spin asymmetries in muon-proton and muon-deuteron scattering 865572 . Scaling properties at freeze-out in relativistic heavy ion collisions 866047 . Measurement of azimuthal asymmetries associated with deeply virtual Compton scattering on a longitudinally polarized deuterium target 866922 . Cross Section and Parity Violating Spin Asymmetries of $W^\pm$ Boson Production in Polarized $p+p$ Collisions at $\sqrt{s}=500$ GeV 866968 . Measurement of the parity-violating longitudinal single-spin asymmetry for $W^{\pm}$ boson production in polarized proton-proton collisions at $\sqrt{s} = 500-GeV$ 870912 . Event Structure and Double Helicity Asymmetry in Jet Production from Polarized $p+p$ Collisions at $\sqrt{s} = 200$~GeV 870935 . Measurement of Transverse Single-Spin Asymmetries for $J/\psi$ Production in Polarized $p+p$ Collisions at $\sqrt{s} = 200$ GeV 871225 . Cross section and double helicity asymmetry for $\eta$ mesons and their comparison to neutral pion production in p+p collisions at $sqrt(s)=200 GeV$ 871561 . Strange and Multi-strange Particle Production in Au+Au Collisions at $\sqrt{s_{NN}}$ = 62.4 GeV 871818 . Cold Nuclear Matter Effects on $J/\psi$ Yields as a Function of Rapidity and Nuclear Geometry in Deuteron-Gold Collisions at $\sqrt{s_{NN}}=200$ GeV 872067 . Measurements of Dihadron Correlations Relative to the Event Plane in Au+Au Collisions at $\sqrt{s_{NN}}=200$ GeV 872172 . Suppression of away-side jet fragments with respect to the reaction plane in Au+Au collisions at $\sqrt{s_{NN}}=200$ GeV 875728 . Azimuthal correlations of electrons from heavy-flavor decay with hadrons in $p^+ p$ and Au+Au collisions at $\sqrt{s_{NN}}=200$ GeV 881636 . Ratios of Helicity Amplitudes for Exclusive rho-0 Electroproduction 883680 X Determination of $alpha_s$ using OPAL hadronic event shapes at $\sqrt{s}=91$ - 209 GeV and resummed NNLO calculations 886590 . Identified charged hadron production in $p+p$ collisions at $\sqrt{s}=200$ and 62.4 GeV 889553 . Studies of di-jet survival and surface emission bias in Au+Au collisions via angular correlations with respect to back-to-back leading hadrons 889563 . High $p_{T}$ non-photonic electron production in $p+p$ collisions at $\sqrt{s} = 200$ GeV 890364 X Search for single top quark production via contact interactions at LEP2 890503 . A study of the b-quark fragmentation function with the DELPHI detector at LEP I and an averaged distribution obtained at the Z Pole 893021 . Observation of the antimatter helium-4 nucleus 894309 . Inclusive Measurements of Inelastic Electron and Positron Scattering from Unpolarized Hydrogen and Deuterium Targets 894560 . $J/\psi$ suppression at forward rapidity in Au+Au collisions at $\sqrt{s_{NN}}=200$ GeV 899065 . Ground and excited charmonium state production in $p+p$ collisions at $\sqrt{s}=200$ GeV 900308 . Production of $\omega$ mesons in $p+p$, d+Au, Cu+Cu, and Au+Au collisions at $\sqrt{s_NN}=200$ GeV 900703 . Measurements of Higher-Order Flow Harmonics in Au+Au Collisions at $\sqrt{s_{NN}} = 200$ GeV 900818 . Observation of direct-photon collective flow in $\sqrt{s_{NN}}=200$ GeV Au+Au collisions 901059 . Test of the \boldmath{$\tau$}-Model of Bose-Einstein Correlations and Reconstruction of the Source Function in Hadronic Z-boson Decay at LEP 901235 . Suppression of back-to-back hadron pairs at forward rapidity in $d+$Au Collisions at $\sqrt{s_{NN}}=200$ GeV 913712 . Measurement of double-spin asymmetries associated with deeply virtual Compton scattering on a transversely polarized hydrogen target 914546 . Evolution of the differential transverse momentum correlation function with centrality in Au$+$Au collisions at $\sqrt{s_{NN}} =$ 200 GeV 918779 . Strangeness Enhancement in Cu+Cu and Au+Au Collisions at $\sqrt{s_{NN}} = 200$ GeV 918944 . Multidimensional Study of Hadronization in Nuclei 919778 . $\rho^{0}$ Photoproduction in AuAu Collisions at $\sqrt{s_{NN}}$=62.4 GeV with STAR 927960 . Anomalous centrality evolution of two-particle angular correlations from Au-Au collisions at $\sqrt{s_{\rm NN}}$ = 62 and 200 GeV 929522 . Directed and elliptic flow of charged particles in Cu+Cu collisions at $\sqrt{s_{NN}} =$ 22.4 GeV 930463 . Identified hadron compositions in p+p and Au+Au collisions at high transverse momenta at $\sqrt{s_{_{NN}}} = 200$ GeV 943192 . System size and energy dependence of near-side di-hadron correlations 955160 . Energy and system-size dependence of two- and four-particle $v_2$ measurements in heavy-ion collisions at RHIC and their implications on flow fluctuations and nonflow +955170 . First Measurement of Chiral Dynamics in \pi^- \gamma -> \pi^- \pi^- \pi^+ 1081120 . Measurement of the $W \to e \nu$ and $Z/\gamma^* \to e^+e^-$ Production Cross Sections at Mid-rapidity in Proton-Proton Collisions at $\sqrt{s}$ = 500 GeV 1081744 . Directed Flow of Identified Particles in Au + Au Collisions at $\sqrt{s{_NN}} = 200$ GeV at RHIC 1082840 . Measurement of the virtual-photon asymmetry $A_2$ and the spin-structure function $g_2$ of the proton 1089402 . Cross sections and double-helicity asymmetries of midrapidity inclusive charged hadrons in $p+p$ collisions at $\sqrt{s}=62.4$ GeV +1089665 . Leading order determination of the gluon polarisation from DIS events with high-$p_T$ hadron pairs +1090927 . Transverse spin effects in hadron-pair production from semi-inclusive deep inelastic scattering 1093596 . Deviation from quark-number scaling of the anisotropy parameter $v_2$ of pions, kaons, and protons in Au+Au collisions at $\sqrt{s_{NN}} = 200$ GeV 1093827 X The Herschel Multi-tiered Extragalactic Survey: HerMES 1095241 . Beam-helicity and beam-charge asymmetries associated with deeply virtual Compton scattering on the unpolarised proton 1102910 . Nuclear-Modification Factor for Open-Heavy-Flavor Production at Forward Rapidity in Cu+Cu Collisions at $\sqrt{s_{NN}}=200$ GeV 1102930 . Transverse-Momentum Dependence of the $J/\psi$ Nuclear Modification in $d+$Au Collisions at $\sqrt{s_{NN}}=200$ GeV 1107625 . Evolution of $\pi^0$ suppression in Au+Au collisions from $\sqrt{s_{NN}} = 39$ to 200 GeV 1107765 . Di-electron spectrum at mid-rapidity in $p+p$ collisions at $\sqrt{s} = 200$ GeV 1111237 . Azimuthal distributions of charged hadrons, pions, and kaons produced in deep-inelastic scattering off unpolarized protons and deuterons 1111571 . Measurements of $D^{0}$ and $D^{*}$ Production in $p+p$ Collisions at $\sqrt{s} = 200$ GeV 1114529 . Longitudinal and transverse spin asymmetries for inclusive jet production at mid-rapidity in polarized $p+p$ collisions at $\sqrt{s}=200$ GeV +1115720 . Experimental investigation of transverse spin asymmetries in muon-p SIDIS processes: Collins asymmetries +1115721 . II – Experimental investigation of transverse spin asymmetries in μ -p SIDIS processes: Sivers asymmetries 1115828 . Direct-Photon Production in $p+p$ Collisions at $\sqrt{s}=200$ GeV at Midrapidity 1116179 . Measurement of Direct Photons in Au+Au Collisions at $\sqrt{s_{NN}} = 200$ GeV 1116643 . Transverse Single-Spin Asymmetry and Cross-Section for $\pi^0$ and $\eta$ Mesons at Large Feynman-$x$ in Polarized $p+p$ Collisions at $\sqrt{s}=200$ GeV 1117881 . Single Spin Asymmetry $A_N$ in Polarized Proton-Proton Elastic Scattering at $\sqrt{s}=200$ GeV 1119568 . Beam-helicity asymmetry arising from deeply virtual Compton scattering measured with kinematically complete event reconstruction 1119620 . Inclusive charged hadron elliptic flow in Au + Au collisions at $\sqrt{s_{NN}}$ = 7.7 - 39 GeV +1121705 . Measurement of the cross section for high-pT hadron production in the scattering of 160-GeV/c muons off nucleons +1122967 . Exclusive rho^0 muoproduction on transversely polarised protons and deuterons 1126017 . Direct photon production in $d+$Au collisions at $\sqrt{s_{NN}}=200$ GeV 1126162 . Cold-nuclear-matter effects on heavy-quark production in $d+$Au collisions at $\sqrt{s_{NN}}=200$ GeV 1127261 . $J/\psi$ suppression at forward rapidity in Au+Au collisions at $\sqrt{s_{NN}}=39$ and 62.4 GeV 1127262 . Neutral pion production with respect to centrality and reaction plane in Au$+$Au collisions at $\sqrt{s_{NN}}$=200 GeV +1127460 X COMPASS-II Proposal 1127499 . $J/\psi$ production at high transverse momenta in $p+p$ and Au+Au collisions at $\sqrt{s_{NN}} = 200$ GeV 1185576 . Double Spin Asymmetry of Electrons from Heavy Flavor Decays in $p+p$ Collisions at $\sqrt{s}=200$ GeV 1185577 . Inclusive cross section and single transverse spin asymmetry for very forward neutron production in polarized p+p collisions at s=200  GeV +1199003 . D* and D Meson Production in Muon Nucleon Interactions at 160 GeV/c 1203021 . $\upsilon(1S+2S+3S)$ production in $d+$Au and $p+p$ collisions at $\sqrt{s_{NN}}=200$ GeV and cold-nuclear matter effects +1204782 . Leading and Next-to-Leading Order Gluon Polarization in the Nucleon and Longitudinal Double Spin Asymmetries from Open Charm Muoproduction 1206352 . Experimental studies of di-jets in Au + Au collisions using angular correlations with respect to back-to-back leading hadrons 1207322 . Measurement of $J/\psi$ Azimuthal Anisotropy in Au+Au Collisions at $\sqrt{s_{NN}}$ = 200 GeV 1207323 . Medium modification of jet fragmentation in Au + Au collisions at $\sqrt{s_{NN}}= 200$ GeV measured in direct photon-hadron correlations 1208547 . Multiplicities of charged pions and kaons from semi-inclusive deep-inelastic scattering by the proton and the deuteron 1210062 . Third Harmonic Flow of Charged Particles in Au+Au Collisions at sqrtsNN = 200 GeV 1210463 . Observation of an Energy-Dependent Difference in Elliptic Flow between Particles and Antiparticles in Relativistic Heavy Ion Collisions 1210464 . Elliptic flow of identified hadrons in Au+Au collisions at $\sqrt{s_{NN}}=$ 7.7-62.4 GeV 1216295 X Search for Charged Higgs bosons: Combined Results Using LEP Data 1216565 . System-size dependence of transverse momentum correlations at $\sqrt{s_{NN}}=62.4$ and 200 GeV at the BNL Relativistic Heavy Ion Collider 1219133 . Freeze-out dynamics via charged kaon femtoscopy in $\sqrt{{s}_{NN}}$ = 200 GeV central Au + Au collisions 1219330 . Electroweak Measurements in Electron-Positron Collisions at W-Boson-Pair Energies at LEP 1219828 . Fluctuations of charge separation perpendicular to the event plane and local parity violation in $\sqrt{s_{NN}}=200$ GeV Au+Au collisions at the BNL Relativistic Heavy Ion Collider 1221099 . Jet-Hadron Correlations in $\sqrt{s_{NN}} = 200$ GeV $p+p$ and Central $Au+Au$ Collisions 1222542 . Measurement of charge multiplicity asymmetry correlations in high-energy nucleus-nucleus collisions at $\sqrt{{s}_{NN}} =$ 200 GeV 1222874 . Quadrupole Anisotropy in Dihadron Azimuthal Correlations in Central $d$$+$Au Collisions at $\sqrt{s_{_{NN}}}$=200 GeV +1226812 . Study of $\Sigma(1385)$ and $\Xi(1321)$ hyperon and antihyperon production in deep inelastic muon scattering 1227971 . Spectra and ratios of identified particles in Au+Au and $d$+Au collisions at $\sqrt{s_{NN}}=200$ GeV 1235307 . Nuclear Modification of $ψ′, χ_c$, and J/ψ Production in d+Au Collisions at $\sqrt{s_{NN}}$=200  GeV +1236358 . Hadron Transverse Momentum Distributions in Muon Deep Inelastic Scattering at 160 GeV/$c$ 1253360 . Neutral pion cross section and spin asymmetries at intermediate pseudorapidity in polarized proton collisions at < math display="inline" > < mrow > < msqrt > < mrow > < mi > s < /mi > < /mrow > < /msqrt > < mo $\ge$ < /mo > < mn > 200 < /mn > < mtext >   < /mtext > < mtext >   < /mtext > < mi > GeV < /mi > < /mrow > < /math > 1254476 . Azimuthal anisotropy of $\pi^0$ and $\eta$ mesons in Au + Au collisions at $\sqrt{{s}_{NN}} =$ 200 GeV 1255072 . Energy Dependence of Moments of Net-proton Multiplicity Distributions at RHIC 1256626 . Cold-Nuclear-Matter Effects on Heavy-Quark Production at Forward and Backward Rapidity in d+Au Collisions at $\sqrt{s_{NN}}=200$  GeV +1257385 . Transverse target spin asymmetries in exclusive $\rho^0$ muoproduction 1258446 . $J/\psi$ production at low $p_T$ in Au + Au and Cu + Cu collisions at $\sqrt{s_{NN}}=200$ GeV with the STAR detector 1261055 . Centrality categorization for R_{p(d)+A} in high-energy collisions 1261274 . Transverse target single-spin asymmetry in inclusive electroproduction of charged pions and kaons 1261275 . Beam-helicity asymmetry in associated electroproduction of real photons $ep \to e\gamma\pi N$ in the $\Delta$-resonance region 1262739 . System-size dependence of open-heavy-flavor production in nucleus-nucleus collisions at $\sqrt{s_{_{NN}}}$=200 GeV 1263517 . Heavy-flavor electron-muon correlations in $p$$+$$p$ and $d$+Au collisions at $\sqrt{s_{_{NN}}}$ = 200 GeV 1263695 . J/ψ polarization in p+p collisions at $\sqrt{s}$ = 200 GeV in STAR 1268155 . Measurement of transverse-single-spin asymmetries for midrapidity and forward-rapidity production of hadrons in polarized p+p collisions at $\sqrt{s}=$200 and 62.4 GeV 1269346 . Suppression of $\Upsilon$ production in d+Au and Au+Au collisions at $\sqrt{s_{NN}}$=200 GeV 1273625 . Transverse-energy distributions at midrapidity in p+p , d+Au , and Au+Au collisions at $\sqrt{s_{NN}}=62.4–200$ GeV and implications for particle-production models 1275332 . Reevaluation of the parton distribution of strange quarks in the nucleon 1275614 . Dielectron Mass Spectra from Au+Au Collisions at $\sqrt{s_{\rm NN}}$ = 200 GeV 1277069 . Beam-Energy Dependence of the Directed Flow of Protons, Antiprotons, and Pions in Au+Au Collisions +1278730 . Measurement of azimuthal hadron asymmetries in semi-inclusive deep inelastic scattering off unpolarised nucleons +1279598 . A high-statistics measurement of transverse spin effects in dihadron production from muon–proton semi-inclusive deep-inelastic scattering 1279634 . Azimuthal-angle dependence of charged-pion-interferometry measurements with respect to second- and third-order event planes in Au$+$Au collisions at $\sqrt{s_{_{NN}}}=200$ GeV 1280344 X Concept for an Electron Ion Collider (EIC) detector built around the BaBar solenoid 1280557 . Beam energy dependence of moments of the net-charge multiplicity distributions in Au+Au collisions at RHIC 1280745 . Dielectron azimuthal anisotropy at mid-rapidity in Au + Au collisions at $\sqrt{s_{_{NN}}} = 200$ GeV 1282448 . Inclusive double-helicity asymmetries in neutral-pion and eta-meson production in $\vec{p}+\vec{p}$ collisions at $\sqrt{s}=200$ GeV +1285361 . Measurement of radiative widths of $a_2(1320)$ and $\pi_2(1670)$ 1286656 . Beam-energy-dependent two-pion interferometry and the freeze-out eccentricity of pions measured in heavy ion collisions at the STAR detector 1288534 . Event-plane-dependent dihadron correlations with harmonic $v_n$ subtraction in Au + Au collisions at $\sqrt{s_{NN}}=200$ GeV 1288917 . Beam-energy dependence of charge separation along the magnetic field in Au+Au collisions at RHIC 1288921 . Nuclear matter effects on $J/\psi$ production in asymmetric Cu+Au collisions at $\sqrt{s_{_{NN}}}$ = 200 GeV 1289084 . Measurement of $\Upsilon(1S+2S+3S)$ production in $p+p$ and Au$+$Au collisions at $\sqrt{s_{_{NN}}}=200$ GeV 1291396 . Comparison of the space-time extent of the emission source in $d$$+$Au and Au$+$Au collisions at $\sqrt{s_{{NN}}}=200$ GeV 1292132 . Observation of $D^0$ Meson Nuclear Modifications in Au+Au Collisions at $\sqrt{s_{NN}}=200$  GeV 1292792 . Measurement of longitudinal spin asymmetries for weak boson production in polarized proton-proton collisions at RHIC 1293053 . Measurement of long-range angular correlation and quadrupole anisotropy of pions and (anti)protons in central $d$$+$Au collisions at $\sqrt{s_{_{NN}}}$=200 GeV 1296108 . Heavy-quark production and elliptic flow in Au$+$Au collisions at $\sqrt{s_{_{NN}}}=62.4$ GeV 1296111 . Measurement of $K_S^0$ and $K^{*0}$ in $p+p$, $d+Au$, and $Cu+Cu$ collisions at $\sqrt{s_{_{NN}}}=200$ GeV 1296308 . Centrality dependence of low-momentum direct-photon production in Au$+$Au collisions at $\sqrt{s_{_{NN}}}=200$ GeV 1296835 . Low-mass vector-meson production at forward rapidity in $p$$+$$p$ collisions at $\sqrt{s}=200$ GeV 1296859 . Cross section for $b\bar{b}$ production via dielectrons in d$+$Au collisions at $\sqrt{s_{_{NN}}}=200$ GeV 1297229 . Precision Measurement of the Longitudinal Double-spin Asymmetry for Inclusive Jet Production in Polarized Proton Collisions at $\sqrt{s}=200$ GeV 1298024 . Elliptic flow of electrons from heavy-flavor hadron decays in Au + Au collisions at $\sqrt{s_{\rm NN}} = $ 200, 62.4, and 39 GeV +1298025 . Spin alignment and violation of the OZI rule in exclusive $\omega$ and $\phi$ production in pp collisions +1298026 . Measurement of the charged-pion polarizability 1300355 . Transverse polarization of $\Lambda$ hyperons from quasireal photoproduction on nuclei 1300542 . Cross section and transverse single-spin asymmetry of $\eta$ mesons in $p^{\uparrow}+p$ collisions at $\sqrt{s}=200$ GeV at forward rapidity +1307417 . Search for exclusive photoproduction of Z$_c^{\pm}$(3900) at COMPASS +1311486 . Odd and even partial waves of $ηπ^−$ and $η′π^−$ in $π^−p → η^{(′)}π^−p$ at 191 GeV/c +1311491 . Collins and Sivers asymmetries in muonproduction of pions and kaons off transversely polarised protons 1311513 . $\Lambda\Lambda$ Correlation Function in Au+Au collisions at $\sqrt{s_{NN}}=$ 200 GeV 1311834 . Charged-to-neutral correlation at forward rapidity in Au+Au collisions at $\sqrt{s_{NN}}$=200 GeV 1312293 . Studies of QCD in e+ e- ---> hadrons at E(cm) = 130-GeV and 136-GeV 1312299 . A Measurement of the $Z^{0}$ Invisible Width by Single-Photon Counting 1312311 . Measurement of the $Z^0$ Mass and Width with the OPAL Detector at LEP 1313438 . Measurement of the electron structure function F$\frac{e}{2}$ at LEP energies 1313628 . Search for dark photons from neutral meson decays in $p + p$ and $d$ + Au collisions at $\sqrt{s_{NN}} =$ 200 GeV 1315330 . Charged-pion cross sections and double-helicity asymmetries in polarized p+p collisions at $\sqrt{s}$=200  GeV 1315466 . Isolation of Flow and Nonflow Correlations by Two- and Four-Particle Cumulant Measurements of Azimuthal Harmonics in $\sqrt{s_{_{\rm NN}}} =$ 200 GeV Au+Au Collisions +1320774 X The COMPASS Setup for Physics with Hadron Beams 1321413 . Beam-energy and system-size dependence of the space-time extent of the pion emission source produced in heavy ion collisions 1322126 . Di-hadron correlations with identified leading hadrons in 200 GeV Au + Au and d + Au collisions at STAR 1322965 . Energy Dependence of $K/\pi$, $p/\pi$, and $K/p$ Fluctuations in Au+Au Collisions from $\rm \sqrt{s_{NN}}$ = 7.7 to 200 GeV 1332239 . Measurement of the higher-order anisotropic flow coefficients for identified hadrons in Au$+$Au collisions at $\sqrt{s_{_{NN}}}$ = 200 GeV 1332240 . Systematic Study of Azimuthal Anisotropy in Cu$+$Cu and Au$+$Au Collisions at $\sqrt{s_{_{NN}}} = 62.4$ and 200 GeV 1335413 X Pentaquark $\Theta^+$ search at HERMES 1335765 . Effect of event selection on jetlike correlation measurement in $d$+Au collisions at $\sqrt{s_{\rm{NN}}}=200$ GeV 1340691 . Energy dependence of acceptance-corrected dielectron excess mass spectrum at mid-rapidity in Au$+$Au collisions at $\sqrt{s_{NN}} =$ 19.6 and 200 GeV +1340854 . Observation of a New Narrow Axial-Vector Meson $a_1$(1420) 1341090 . An Upgrade Proposal from the PHENIX Collaboration 1346551 . Long-range pseudorapidity dihadron correlations in $d$+Au collisions at $\sqrt{s_{\rm NN}}=200$ GeV 1352818 . The $\phi (1020)\rightarrow e^{+}e^{-}$ meson decay measured with the STAR experiment in Au+Au collisions at $\sqrt{s_{_{NN}}}$ = 200 GeV +1357198 . The spin structure function $g_1^{\rm p}$ of the proton and a test of the Bjorken sum rule 1357596 . Observation of Transverse Spin-Dependent Azimuthal Correlations of Charged Pion Pairs in $p^\uparrow+p$ at $\sqrt{s}=200$ GeV 1357992 . Measurements of Dielectron Production in Au$+$Au Collisions at $\sqrt{s_{\rm NN}}$ = 200 GeV from the STAR Experiment 1358666 . Observation of charge asymmetry dependence of pion elliptic flow and the possible chiral magnetic wave in heavy-ion collisions 1362210 . Systematic study of charged-pion and kaon femtoscopy in Au + Au collisions at $\sqrt{s_{_{NN}}}$=200 GeV 1365091 . Measurement of parity-violating spin asymmetries in W$^{\pm}$ production at midrapidity in longitudinally polarized $p$$+$$p$ collisions 1369344 . Bose–Einstein correlations in hadron-pairs from lepto-production on nuclei ranging from hydrogen to xenon 1373553 . Azimuthal anisotropy in U$+$U and Au$+$Au collisions at RHIC 1378002 . Probing parton dynamics of QCD matter with $\Omega$ and $\phi$ production 1378005 . Measurement of higher cumulants of net-charge multiplicity distributions in Au$+$Au collisions at $\sqrt{s_{_{NN}}}=7.7-200$ GeV 1379995 . $\phi$ meson production in $d$$+$Au collisions at $\sqrt{s_{_{NN}}}=200$ GeV 1382600 . Beam-energy dependence of charge balance functions from Au + Au collisions at energies available at the BNL Relativistic Heavy Ion Collider 1383879 . Centrality and transverse momentum dependence of elliptic flow of multistrange hadrons and $\phi$ meson in Au+Au collisions at $\sqrt{s_{NN}}$ = 200 GeV 1384274 . Measurements of elliptic and triangular flow in high-multiplicity $^{3}$He$+$Au collisions at $\sqrt{s_{_{NN}}}=200$ GeV 1385105 . Measurement of Interaction between Antiprotons +1385314 . Interplay among transversity induced asymmetries in hadron leptoproduction +1391643 . Resonance Production and $\pi\pi$ S-wave in $\pi^- + p \rightarrow \pi^- \pi^- \pi^+ + p_{recoil}$ at 190 GeV$/c$ +1393061 . Longitudinal double spin asymmetries in single hadron quasi-real photoproduction at high $p_T$ 1393528 . Centrality-dependent modification of jet-production rates in deuteron-gold collisions at $\sqrt{s_{NN}}$=200 GeV 1393529 . Single electron yields from semileptonic charm and bottom hadron decays in Au$+$Au collisions at $\sqrt{s_{NN}}=200$ GeV 1393530 . Dielectron production in Au$+$Au collisions at $\sqrt{s_{NN}}$=200 GeV 1393789 . Forward $J/\psi$ production in U$+$U collisions at $\sqrt{s_{NN}}$=193 GeV 1394228 . $\phi$ meson production in the forward/backward rapidity region in Cu$+$Au collisions at $\sqrt{s_{NN}}=200$ GeV 1394433 . Transverse energy production and charged-particle multiplicity at midrapidity in various systems from $\sqrt{s_{NN}}=7.7$ to 200 GeV 1394434 . Scaling properties of fractional momentum loss of high-$p_T$ hadrons in nucleus-nucleus collisions at $\sqrt{s_{_{NN}}}$ from 62.4 GeV to 2.76 TeV 1394895 . Azimuthally anisotropic emission of low-momentum direct photons in Au$+$Au collisions at $\sqrt{s_{_{NN}}}=200$ GeV 1394897 . Measurements of directed, elliptic, and triangular flow in Cu$+$Au collisions at $\sqrt{s_{_{NN}}}=200$ GeV 1395151 . Centrality dependence of identified particle elliptic flow in relativistic heavy ion collisions at $\sqrt{s_{NN}}$=7.7–62.4 GeV 1396712 . Inclusive cross section and double-helicity asymmetry for $\pi^{0}$ production at midrapidity in $p$$+$$p$ collisions at $\sqrt{s}=510$ GeV 1405433 . Measurement of the transverse single-spin asymmetry in $p^\uparrow+p \to W^{\pm}/Z^0$ at RHIC +1409917 . Leading-order determination of the gluon polarisation from semi-inclusive deep inelastic scattering data 1414638 . Beam Energy Dependence of the Third Harmonic of Azimuthal Correlations in Au+Au Collisions at RHIC 1416992 . Measurement of elliptic flow of light nuclei at $\sqrt{s_{NN}}=$ 200, 62.4, 39, 27, 19.6, 11.5, and 7.7 GeV at the BNL Relativistic Heavy Ion Collider 1420183 . $\rm{J}/\psi$ production at low transverse momentum in p+p and d+Au collisions at $\sqrt{s_{NN}}$ = 200 GeV 1429700 . Near-side azimuthal and pseudorapidity correlations using neutral strange baryons and mesons in d+Au, Cu+Cu and Au+Au collisions at $\sqrt{s_{NN}}$ = 200 GeV 1442357 . Jet-like Correlations with Direct-Photon and Neutral-Pion Triggers at $\sqrt{s_{_{NN}}} = 200$ GeV +1444985 . Multiplicities of charged pions and charged hadrons from deep-inelastic scattering of muons off an isoscalar target 1467456 . Measurements of double-helicity asymmetries in inclusive $J/\psi$ production in longitudinally polarized $p+p$ collisions at $\sqrt{s}=510$ GeV +1469063 . Exclusive $\omega$ meson muoproduction on transversely polarised protons 1474129 . Direct virtual photon production in Au+Au collisions at $\sqrt{s_{NN}}$ = 200 GeV 1478040 . Energy dependence of $J/\psi$ production in Au+Au collisions at $\sqrt{s_{NN}} =$ 39, 62.4 and 200 GeV 1481225 . Charge-dependent directed flow in Cu+Au collisions at $\sqrt{s_{_{NN}}}$ = 200 GeV 1482939 . $\Upsilon$ production in U + U collisions at $\sqrt{{s}_{NN}}=$ 193 GeV measured with the STAR experiment +1483098 . Multiplicities of charged kaons from deep-inelastic muon scattering off an isoscalar target 1486427 . Dijet imbalance measurements in $Au+Au$ and $pp$ collisions at $\sqrt{s_{NN}} = 200$  GeV at STAR 1486678 . Nonperturbative-transverse-momentum effects and evolution in dihadron and direct photon-hadron angular correlations in $p$$+$$p$ collisions at $\sqrt{s}$=510 GeV +1487432 . Azimuthal asymmetries of charged hadrons produced in high-energy muon scattering off longitudinally polarised deuterons 1487575 . Measurement of the relative yields of $\psi(2S)$ to $\psi(1S)$ mesons produced at forward and backward rapidity in $p$$+$$p$, $p$$+$Al, $p$$+$Au, and $^{3}$He$+$Au collisions at $\sqrt{s_{_{NN}}}=200$ GeV +1487909 . Sivers asymmetry extracted in SIDIS at the hard scales of the Drell–Yan process at COMPASS 1493842 . Measurement of the cross section and longitudinal double-spin asymmetry for di-jet production in polarized $pp$ collisions at $\sqrt{s}$ = 200 GeV +1501480 . Final COMPASS results on the deuteron spin-dependent structure function $g_1^{\rm d}$ and the Bjorken sum rule 1505176 . Angular decay coefficients of $J/\psi$ mesons at forward rapidity from $p+p$ collisions at $\sqrt{s}=510$ GeV 1507891 . Measurements of $B \rightarrow J/\psi$ at forward rapidity in $p$+$p$ collisions at $\sqrt{s}=510$ GeV +1508480 . First measurement of the Sivers asymmetry for gluons using SIDIS data 1510298 . Measurement of $D^0$ Azimuthal Anisotropy at Midrapidity in Au+Au Collisions at $\sqrt{s_{NN}}$=200  GeV 1510300 . Harmonic decomposition of three-particle azimuthal correlations at RHIC 1510301 . Constraining the initial conditions and temperature dependent transport with three-particle correlations in Au+Au collisions 1510474 . Global $\Lambda$ hyperon polarization in nuclear collisions: evidence for the most vortical fluid 1510593 . Bulk Properties of the Medium Produced in Relativistic Heavy-Ion Collisions from the Beam Energy Scan Program 1512115 . Measurements of jet quenching with semi-inclusive hadron+jet distributions in Au+Au collisions at $\sqrt{s_{NN}}$ = 200 GeV 1512140 . Measurements of $e^+e^-$ pairs from open heavy flavor in $p$+$p$ and $d$+$A$ collisions at $\sqrt{s_{NN}}=200$ GeV 1512141 . $B$-meson production at forward and backward rapidity in $p+p$ and Cu + Au collisions at $\sqrt{s_{_{NN}}}=200$ GeV 1515028 . Coherent diffractive photoproduction of ρ0 mesons on gold nuclei at 200 GeV/nucleon-pair at the Relativistic Heavy Ion Collider 1519828 . Cross section and transverse single-spin asymmetry of muons from open heavy-flavor decays in polarized $p$+$p$ collisions at $\sqrt{s}=200$ GeV 1520869 . Nuclear Dependence of the Transverse-Single-Spin Asymmetry for Forward Neutron Production in Polarized $p+A$ Collisions at $\sqrt{{s}_{NN}}=200\text{ }\text{ }\mathrm{GeV}$ +1589290 . First measurement of transverse-spin-dependent azimuthal asymmetries in the Drell-Yan process +1608884 . Search for muoproduction of $X (3872)$ at COMPASS and indication of a new state $\widetilde{X}(3872)$ 1609067 . Beam Energy Dependence of Jet-Quenching Effects in Au+Au Collisions at $\sqrt{s_{_{ \mathrm{NN}}}}$ = 7.7, 11.5, 14.5, 19.6, 27, 39, and 62.4 GeV +1609260 . New analysis of $\eta\pi$ tensor resonances measured at the COMPASS experiment 1610655 . Measurements of Multiparticle Correlations in $d+\mathrm{Au}$ Collisions at 200, 62.4, 39, and 19.6 GeV and $p+\mathrm{Au}$ Collisions at 200 GeV and Implications for Collective Behavior 1618141 . Measurements of azimuthal anisotropy and charged-particle multiplicity in $d$$+$Au collisions at $\sqrt{s_{_{NN}}}=$200, 62.4, 39, and 19.6 GeV 1618345 . Azimuthal transverse single-spin asymmetries of inclusive jets and charged pions within jets from polarized-proton collisions at $\sqrt{s} = 500$ GeV 1618747 . Beam-Energy Dependence of Directed Flow of $\Lambda$, $\bar{\Lambda}$, $K^\pm$, $K^0_s$ and $\phi$ in Au+Au Collisions 1621460 . Collision Energy Dependence of Moments of Net-Kaon Multiplicity Distributions at RHIC 1624209 . Lévy-stable two-pion Bose-Einstein correlations in $\sqrt{s_{NN}}=200$ GeV Au$+$Au collisions +1624692 . Transverse-momentum-dependent Multiplicities of Charged Hadrons in Muon-Deuteron Deep Inelastic Scattering 1628155 . Measurement of the $^3_{\Lambda}$H lifetime in Au+Au collisions at the BNL Relativistic Heavy Ion Collider +1628410 . Longitudinal double-spin asymmetry $A_1^{\rm p}$ and spin-dependent structure function $g_1^{\rm p}$ of the proton at small values of $x$ and $Q^2$ 1628651 . Measurement of $\phi$-meson production at forward rapidity in $p+p$ collisions at $\sqrt{s}=510\text{ }\text{ }\mathrm{GeV}$ and its energy dependence from $\sqrt{s}=200\text{ }\text{ }\mathrm{GeV}$ to 7 TeV 1630825 . Multi-messenger Observations of a Binary Neutron Star Merger 1632759 . Measurements of mass-dependent azimuthal anisotropy in central $p$$+$Au, $d$$+$Au, and $^3$He$+$Au collisions at $\sqrt{s_{_{NN}}}=200$ GeV 1632938 . Transverse spin-dependent azimuthal correlations of charged pion pairs measured in p$^\uparrow$+p collisions at $\sqrt{s}$ = 500 GeV 1638373 . Measurement of emission angle anisotropy via long-range angular correlations with high $p_T$ hadrons in $d$$+$Au and $p$$+$$p$ collisions at $\sqrt{s_{_{NN}}}=200$ GeV 1641113 . Azimuthal anisotropy in Cu$+$Au collisions at $\sqrt{s_{_{NN}}}$ = 200 GeV 1649168 . First Evidence and Measurement of $B_s^{(*)} barB_s^{(*)}$ Production at the $\Upsilon(5S)$ 1649622 . A Search for $\eta'_c$ Production in Photon-Photon Fusion at LEP 1650066 . Measurement of $\sigma(e^+e^- \to \psi(3770) \to hadrons)$ at $E_{c.m.}$ = 3773 MeV +1652831 . K$^−$ over K$^+$ multiplicity ratio for kaons produced in DIS with a large fraction of the virtual-photon energy +1653939 . Transverse Extension of Partons in the Proton probed by Deeply Virtual Compton Scattering +1655631 . Light isovector resonances in $\pi^- p \to \pi^-\pi^-\pi^+ p$ at 190 GeV/${\it c}$ 1658594 . Measurement of two-particle correlations with respect to second- and third-order event planes in Au$+$Au collisions at $\sqrt{s_{_{NN}}}=200$ GeV 1659845 . Search for Supersymmetry with R-parity violating decays via \lambda couplings at sqrt(s) = 183 GeV 1662057 . Correlation Measurements Between Flow Harmonics in Au+Au Collisions at RHIC 1667398 . Cross section and longitudinal single-spin asymmetry $A_L$ for forward $W^{\pm}\rightarrow\mu^{\pm}\nu$ production in polarized $p$$+$$p$ collisions at $\sqrt{s}=510$ GeV 1669807 . Beam energy dependence of rapidity-even dipolar flow in Au+Au collisions 1670164 . Multi-particle azimuthal correlations for extracting event-by-event elliptic and triangular flow in Au$+$Au collisions at $\sqrt{s_{_{NN}}}=200$ GeV 1671782 . Single-spin asymmetry of $J/\psi$ production in $p$$+$$p$, $p$$+$Al, and $p$$+$Au collisions with transversely polarized proton beams at $\sqrt{s_{_{NN}}}=200$ GeV 1672014 . Nonperturbative transverse-momentum-dependent effects in dihadron and direct photon-hadron angular correlations in $p+p$ collisions at $\sqrt{s}=200$ GeV 1672015 . Measurements of $\mu\mu$ pairs from open heavy flavor and Drell-Yan in $p+p$ collisions at $\sqrt{s}=200$ GeV 1672133 . Creating small circular, elliptical, and triangular droplets of quark-gluon plasma 1672453 . $J/\psi$ production cross section and its dependence on charged-particle multiplicity in $p+p$ collisions at $\sqrt{s}$ = 200 GeV 1672473 . Low-momentum direct photon measurement in Cu$+$Cu collisions at $\sqrt{s_{_{NN}}}=200$ GeV 1672476 . Beam-energy and centrality dependence of direct-photon emission from ultra-relativistic heavy-ion collisions 1672481 . Correlations of $\mu\mu$, $e\mu$, and $ee$ pairs in $p$+$p$ collisions at $\sqrt{s}=200$ GeV and implications for $c\bar{c}$ and $b\bar{b}$ production mechanisms 1672785 . Global polarization of $\Lambda$ hyperons in Au+Au collisions at $\sqrt{s_{_{NN}}}$ = 200 GeV 1672859 . Production of $\pi^0$ and $\eta$ mesons in Cu$+$Au collisions at $\sqrt{s_{_{NN}}}$=200 GeV 1674714 . Longitudinal double-spin asymmetries for dijet production at intermediate pseudorapidity in polarized $pp$ collisions at $\sqrt{s}=$ 200  GeV 1674826 . Longitudinal Double-Spin Asymmetries for $\pi^{0}$s in the Forward Direction for 510 GeV Polarized $pp$ Collisions 1676541 . Low-$p_T$ $e^{+}e^{-}$ pair production in Au$+$Au collisions at $\sqrt{s_{NN}}$ = 200 GeV and U$+$U collisions at $\sqrt{s_{NN}}$ = 193 GeV at STAR 1684475 . Pseudorapidity Dependence of Particle Production and Elliptic Flow in Asymmetric Nuclear Collisions of $p$$+$Al, $p$$+$Au, $d$$+$Au, and $^{3}$He$+$Au at $\sqrt{s_{_{NN}}}=200$ GeV 1685527 . The Proton-$\Omega$ correlation function in Au+Au collisions at $\sqrt{s_{NN}}$=200 GeV 1691152 . Improved measurement of the longitudinal spin transfer to $\Lambda$ and $\bar \Lambda$ hyperons in polarized proton-proton collisions at $\sqrt s$ = 200 GeV 1691271 . Transverse spin transfer to $\Lambda$ and $\bar{\Lambda}$ hyperons in polarized proton-proton collisions at $\sqrt{s}=200\,\mathrm{GeV}$ +1693303 . Measurement of $P_T$-weighted Sivers asymmetries in leptoproduction of hadrons 1695272 . Nonperturbative transverse momentum broadening in dihadron angular correlations in $\sqrt{s_{NN}}=200$ GeV proton-nucleus collisions 1700232 . Measurements of Dielectron Production in Au$+$Au Collisions at $\sqrt{s_{NN}}$= 27, 39, and 62.4 GeV from the STAR Experiment 1712047 . Collision Energy Dependence of $p_{\rm t}$ Correlations in Au+Au Collisions at RHIC 1716552 . Azimuthal harmonics in small and large collision systems at RHIC top energies 1716636 . Measurement of charm and bottom production from semileptonic hadron decays in $p$$+$$p$ collisions at $\sqrt{s_{NN}}=200$ GeV diff --git a/include/Rivet/Analysis.hh b/include/Rivet/Analysis.hh --- a/include/Rivet/Analysis.hh +++ b/include/Rivet/Analysis.hh @@ -1,1239 +1,1244 @@ // -*- C++ -*- #ifndef RIVET_Analysis_HH #define RIVET_Analysis_HH #include "Rivet/Config/RivetCommon.hh" #include "Rivet/AnalysisInfo.hh" #include "Rivet/Event.hh" #include "Rivet/Projection.hh" #include "Rivet/ProjectionApplier.hh" #include "Rivet/ProjectionHandler.hh" #include "Rivet/AnalysisLoader.hh" #include "Rivet/Tools/Cuts.hh" #include "Rivet/Tools/Logging.hh" #include "Rivet/Tools/ParticleUtils.hh" #include "Rivet/Tools/BinnedHistogram.hh" #include "Rivet/Tools/RivetMT2.hh" #include "Rivet/Tools/RivetYODA.hh" #include "Rivet/Tools/Percentile.hh" #include "Rivet/Projections/CentralityProjection.hh" /// @def vetoEvent /// Preprocessor define for vetoing events, including the log message and return. #define vetoEvent \ do { MSG_DEBUG("Vetoing event on line " << __LINE__ << " of " << __FILE__); return; } while(0) namespace Rivet { // Forward declaration class AnalysisHandler; /// @brief This is the base class of all analysis classes in Rivet. /// /// There are /// three virtual functions which should be implemented in base classes: /// /// void init() is called by Rivet before a run is started. Here the /// analysis class should book necessary histograms. The needed /// projections should probably rather be constructed in the /// constructor. /// /// void analyze(const Event&) is called once for each event. Here the /// analysis class should apply the necessary Projections and fill the /// histograms. /// /// void finalize() is called after a run is finished. Here the analysis /// class should do whatever manipulations are necessary on the /// histograms. Writing the histograms to a file is, however, done by /// the Rivet class. class Analysis : public ProjectionApplier { /// The AnalysisHandler is a friend. friend class AnalysisHandler; public: /// @name Standard constructors and destructors. //@{ // /// The default constructor. // Analysis(); /// Constructor Analysis(const std::string& name); /// The destructor. virtual ~Analysis() {} //@} public: /// @name Main analysis methods //@{ /// 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. virtual void init() { } /// Analyze one event. A concrete class should here apply the /// necessary projections on the \a event and fill the relevant /// histograms. An overridden function must make sure it first calls /// the base class function. virtual void analyze(const Event& event) = 0; /// 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. virtual void finalize() { } //@} public: /// @name Metadata /// Metadata is used for querying from the command line and also for /// building web pages and the analysis pages in the Rivet manual. //@{ /// Get the actual AnalysisInfo object in which all this metadata is stored. const AnalysisInfo& info() const { assert(_info && "No AnalysisInfo object :O"); return *_info; } /// @brief 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. If options has been set for this instance, a /// corresponding string is appended at the end. virtual std::string name() const { return ( (info().name().empty()) ? _defaultname : info().name() ) + _optstring; } // get name of reference data file, which could be different from plugin name virtual std::string getRefDataName() const { return (info().getRefDataName().empty()) ? _defaultname : info().getRefDataName(); } // set name of reference data file, which could be different from plugin name virtual void setRefDataName(const std::string& ref_data="") { info().setRefDataName(!ref_data.empty() ? ref_data : name()); } /// Get the Inspire ID code for this analysis. virtual std::string inspireId() const { return info().inspireId(); } /// Get the SPIRES ID code for this analysis (~deprecated). virtual std::string spiresId() const { return info().spiresId(); } /// @brief Names & emails of paper/analysis authors. /// /// Names and email of authors in 'NAME \' format. The first /// name in the list should be the primary contact person. virtual std::vector authors() const { return info().authors(); } /// @brief Get a short description of the analysis. /// /// Short (one sentence) description used as an index entry. /// Use @a description() to provide full descriptive paragraphs /// of analysis details. virtual std::string summary() const { return info().summary(); } /// @brief 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. virtual std::string description() const { return info().description(); } /// @brief 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) virtual std::string runInfo() const { return info().runInfo(); } /// Experiment which performed and published this analysis. virtual std::string experiment() const { return info().experiment(); } /// Collider on which the experiment ran. virtual std::string collider() const { return info().collider(); } /// When the original experimental analysis was published. virtual std::string year() const { return info().year(); } /// The luminosity in inverse femtobarn virtual std::string luminosityfb() const { return info().luminosityfb(); } /// Journal, and preprint references. virtual std::vector references() const { return info().references(); } /// BibTeX citation key for this article. virtual std::string bibKey() const { return info().bibKey(); } /// BibTeX citation entry for this article. virtual std::string bibTeX() const { return info().bibTeX(); } /// Whether this analysis is trusted (in any way!) virtual std::string status() const { return (info().status().empty()) ? "UNVALIDATED" : info().status(); } /// Any work to be done on this analysis. virtual std::vector todos() const { return info().todos(); } /// Return the allowed pairs of incoming beams required by this analysis. virtual const std::vector& requiredBeams() const { return info().beams(); } /// Declare the allowed pairs of incoming beams required by this analysis. virtual Analysis& setRequiredBeams(const std::vector& requiredBeams) { info().setBeams(requiredBeams); return *this; } /// Sets of valid beam energy pairs, in GeV virtual const std::vector >& requiredEnergies() const { return info().energies(); } /// Get vector of analysis keywords virtual const std::vector & keywords() const { return info().keywords(); } /// Declare the list of valid beam energy pairs, in GeV virtual Analysis& setRequiredEnergies(const std::vector >& requiredEnergies) { info().setEnergies(requiredEnergies); return *this; } /// Return true if this analysis needs to know the process cross-section. /// @todo Remove this and require HepMC >= 2.06 bool needsCrossSection() const { return info().needsCrossSection(); } /// Declare whether this analysis needs to know the process cross-section from the generator. /// @todo Remove this and require HepMC >= 2.06 Analysis& setNeedsCrossSection(bool needed=true) { info().setNeedsCrossSection(needed); return *this; } //@} /// @name Internal metadata modifying methods //@{ /// Get the actual AnalysisInfo object in which all this metadata is stored (non-const). AnalysisInfo& info() { assert(_info && "No AnalysisInfo object :O"); return *_info; } //@} /// @name Run conditions //@{ /// Incoming beams for this run const ParticlePair& beams() const; /// Incoming beam IDs for this run const PdgIdPair beamIds() const; /// Centre of mass energy for this run double sqrtS() const; /// Check if we are running rivet-merge. bool merging() const { return sqrtS() <= 0.0; } //@} /// @name Analysis / beam compatibility testing /// @todo Replace with beamsCompatible() with no args (calling beams() function internally) /// @todo Add beamsMatch() methods with same (shared-code?) tolerance as in beamsCompatible() //@{ /// Check if analysis is compatible with the provided beam particle IDs and energies bool isCompatible(const ParticlePair& beams) const; /// Check if analysis is compatible with the provided beam particle IDs and energies bool isCompatible(PdgId beam1, PdgId beam2, double e1, double e2) const; /// Check if analysis is compatible with the provided beam particle IDs and energies bool isCompatible(const PdgIdPair& beams, const std::pair& energies) const; //@} /// Set the cross section from the generator Analysis& setCrossSection(double xs); //, double xserr=0.0); /// Access the controlling AnalysisHandler object. AnalysisHandler& handler() const { return *_analysishandler; } protected: /// Get a Log object based on the name() property of the calling analysis object. Log& getLog() const; /// Get the process cross-section in pb. Throws if this hasn't been set. double crossSection() const; /// Get the process cross-section per generated event in pb. Throws if this /// hasn't been set. double crossSectionPerEvent() const; /// @brief Get the number of events seen (via the analysis handler). /// /// @note Use in the finalize phase only. size_t numEvents() const; /// @brief Get the sum of event weights seen (via the analysis handler). /// /// @note Use in the finalize phase only. double sumW() const; /// Alias double sumOfWeights() const { return sumW(); } /// @brief Get the sum of squared event weights seen (via the analysis handler). /// /// @note Use in the finalize phase only. double sumW2() const; protected: /// @name Histogram paths //@{ /// Get the canonical histogram "directory" path for this analysis. const std::string histoDir() const; /// Get the canonical histogram path for the named histogram in this analysis. const std::string histoPath(const std::string& hname) const; /// Get the canonical histogram path for the numbered histogram in this analysis. const std::string histoPath(unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId) const; /// Get the internal histogram name for given d, x and y (cf. HepData) const std::string mkAxisCode(unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId) const; /// Alias /// @deprecated Prefer the "mk" form, consistent with other "making function" names const std::string makeAxisCode(unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId) const { return mkAxisCode(datasetId, xAxisId, yAxisId); } //@} /// @name Histogram reference data //@{ /// Get reference data for a named histo /// @todo SFINAE to ensure that the type inherits from YODA::AnalysisObject? template const T& refData(const string& hname) const { _cacheRefData(); MSG_TRACE("Using histo bin edges for " << name() << ":" << hname); if (!_refdata[hname]) { MSG_ERROR("Can't find reference histogram " << hname); throw Exception("Reference data " + hname + " not found."); } return dynamic_cast(*_refdata[hname]); } /// Get reference data for a numbered histo /// @todo SFINAE to ensure that the type inherits from YODA::AnalysisObject? template const T& refData(unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId) const { const string hname = makeAxisCode(datasetId, xAxisId, yAxisId); return refData(hname); } //@} /// @name Counter booking //@{ /// Book a counter. CounterPtr bookCounter(const std::string& name, const std::string& title=""); // const std::string& valtitle="" /// Book a counter, using a path generated from the dataset and axis ID codes /// /// The paper, dataset and x/y-axis IDs will be used to build the histo name in the HepData standard way. CounterPtr bookCounter(unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId, const std::string& title=""); // const std::string& valtitle="" //@} /// @name 1D histogram booking //@{ /// Book a 1D histogram with @a nbins uniformly distributed across the range @a lower - @a upper . Histo1DPtr bookHisto1D(const std::string& name, size_t nbins, double lower, double upper, const std::string& title="", const std::string& xtitle="", const std::string& ytitle=""); /// Book a 1D histogram with non-uniform bins defined by the vector of bin edges @a binedges . Histo1DPtr bookHisto1D(const std::string& name, const std::vector& binedges, const std::string& title="", const std::string& xtitle="", const std::string& ytitle=""); /// Book a 1D histogram with non-uniform bins defined by the vector of bin edges @a binedges . Histo1DPtr bookHisto1D(const std::string& name, const std::initializer_list& binedges, const std::string& title="", const std::string& xtitle="", const std::string& ytitle=""); /// Book a 1D histogram with binning from a reference scatter. Histo1DPtr bookHisto1D(const std::string& name, const Scatter2D& refscatter, const std::string& title="", const std::string& xtitle="", const std::string& ytitle=""); /// Book a 1D histogram, using the binnings in the reference data histogram. Histo1DPtr bookHisto1D(const std::string& name, const std::string& title="", const std::string& xtitle="", const std::string& ytitle=""); /// Book a 1D histogram, using the binnings in the reference data histogram. /// /// The paper, dataset and x/y-axis IDs will be used to build the histo name in the HepData standard way. Histo1DPtr bookHisto1D(unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId, const std::string& title="", const std::string& xtitle="", const std::string& ytitle=""); //@} /// @name 2D histogram booking //@{ /// Book a 2D histogram with @a nxbins and @a nybins uniformly /// distributed across the ranges @a xlower - @a xupper and @a /// ylower - @a yupper respectively along the x- and y-axis. Histo2DPtr bookHisto2D(const std::string& name, size_t nxbins, double xlower, double xupper, size_t nybins, double ylower, double yupper, const std::string& title="", const std::string& xtitle="", const std::string& ytitle="", const std::string& ztitle=""); /// Book a 2D histogram with non-uniform bins defined by the /// vectors of bin edges @a xbinedges and @a ybinedges. Histo2DPtr bookHisto2D(const std::string& name, const std::vector& xbinedges, const std::vector& ybinedges, const std::string& title="", const std::string& xtitle="", const std::string& ytitle="", const std::string& ztitle=""); /// Book a 2D histogram with non-uniform bins defined by the /// vectors of bin edges @a xbinedges and @a ybinedges. Histo2DPtr bookHisto2D(const std::string& name, const std::initializer_list& xbinedges, const std::initializer_list& ybinedges, const std::string& title="", const std::string& xtitle="", const std::string& ytitle="", const std::string& ztitle=""); /// Book a 2D histogram with binning from a reference scatter. Histo2DPtr bookHisto2D(const std::string& name, const Scatter3D& refscatter, const std::string& title="", const std::string& xtitle="", const std::string& ytitle="", const std::string& ztitle=""); /// Book a 2D histogram, using the binnings in the reference data histogram. Histo2DPtr bookHisto2D(const std::string& name, const std::string& title="", const std::string& xtitle="", const std::string& ytitle="", const std::string& ztitle=""); /// Book a 2D histogram, using the binnings in the reference data histogram. /// /// The paper, dataset and x/y-axis IDs will be used to build the histo name in the HepData standard way. Histo2DPtr bookHisto2D(unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId, const std::string& title="", const std::string& xtitle="", const std::string& ytitle="", const std::string& ztitle=""); //@} /// @name 1D profile histogram booking //@{ /// Book a 1D profile histogram with @a nbins uniformly distributed across the range @a lower - @a upper . Profile1DPtr bookProfile1D(const std::string& name, size_t nbins, double lower, double upper, const std::string& title="", const std::string& xtitle="", const std::string& ytitle=""); /// Book a 1D profile histogram with non-uniform bins defined by the vector of bin edges @a binedges . Profile1DPtr bookProfile1D(const std::string& name, const std::vector& binedges, const std::string& title="", const std::string& xtitle="", const std::string& ytitle=""); /// Book a 1D profile histogram with non-uniform bins defined by the vector of bin edges @a binedges . Profile1DPtr bookProfile1D(const std::string& name, const std::initializer_list& binedges, const std::string& title="", const std::string& xtitle="", const std::string& ytitle=""); /// Book a 1D profile histogram with binning from a reference scatter. Profile1DPtr bookProfile1D(const std::string& name, const Scatter2D& refscatter, const std::string& title="", const std::string& xtitle="", const std::string& ytitle=""); /// Book a 1D profile histogram, using the binnings in the reference data histogram. Profile1DPtr bookProfile1D(const std::string& name, const std::string& title="", const std::string& xtitle="", const std::string& ytitle=""); /// Book a 1D profile histogram, using the binnings in the reference data histogram. /// /// The paper, dataset and x/y-axis IDs will be used to build the histo name in the HepData standard way. Profile1DPtr bookProfile1D(unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId, const std::string& title="", const std::string& xtitle="", const std::string& ytitle=""); //@} /// @name 2D profile histogram booking //@{ /// Book a 2D profile histogram with @a nxbins and @a nybins uniformly /// distributed across the ranges @a xlower - @a xupper and @a ylower - @a /// yupper respectively along the x- and y-axis. Profile2DPtr bookProfile2D(const std::string& name, size_t nxbins, double xlower, double xupper, size_t nybins, double ylower, double yupper, const std::string& title="", const std::string& xtitle="", const std::string& ytitle="", const std::string& ztitle=""); /// Book a 2D profile histogram with non-uniform bins defined by the vectorx /// of bin edges @a xbinedges and @a ybinedges. Profile2DPtr bookProfile2D(const std::string& name, const std::vector& xbinedges, const std::vector& ybinedges, const std::string& title="", const std::string& xtitle="", const std::string& ytitle="", const std::string& ztitle=""); /// Book a 2D profile histogram with non-uniform bins defined by the vectorx /// of bin edges @a xbinedges and @a ybinedges. Profile2DPtr bookProfile2D(const std::string& name, const std::initializer_list& xbinedges, const std::initializer_list& ybinedges, const std::string& title="", const std::string& xtitle="", const std::string& ytitle="", const std::string& ztitle=""); /// Book a 2D profile histogram with binning from a reference scatter. Profile2DPtr bookProfile2D(const std::string& name, const Scatter3D& refscatter, const std::string& title="", const std::string& xtitle="", const std::string& ytitle="", const std::string& ztitle=""); /// Book a 2D profile histogram, using the binnings in the reference data histogram. Profile2DPtr bookProfile2D(const std::string& name, const std::string& title="", const std::string& xtitle="", const std::string& ytitle="", const std::string& ztitle=""); /// Book a 2D profile histogram, using the binnings in the reference data histogram. /// /// The paper, dataset and x/y-axis IDs will be used to build the histo name in the HepData standard way. Profile2DPtr bookProfile2D(unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId, const std::string& title="", const std::string& xtitle="", const std::string& ytitle="", const std::string& ztitle=""); //@} /// @name 2D scatter booking //@{ /// @brief Book a 2-dimensional data point set with the given name. /// /// @note Unlike histogram booking, scatter booking by default makes no /// attempt to use reference data to pre-fill the data object. If you want /// this, which is sometimes useful e.g. when the x-position is not really /// meaningful and can't be extracted from the data, then set the @a /// copy_pts parameter to true. This creates points to match the reference /// data's x values and errors, but with the y values and errors zeroed... /// assuming that there is a reference histo with the same name: if there /// isn't, an exception will be thrown. Scatter2DPtr bookScatter2D(const std::string& name, bool copy_pts=false, const std::string& title="", const std::string& xtitle="", const std::string& ytitle=""); /// @brief Book a 2-dimensional data point set, using the binnings in the reference data histogram. /// /// The paper, dataset and x/y-axis IDs will be used to build the histo name in the HepData standard way. /// /// @note Unlike histogram booking, scatter booking by default makes no /// attempt to use reference data to pre-fill the data object. If you want /// this, which is sometimes useful e.g. when the x-position is not really /// meaningful and can't be extracted from the data, then set the @a /// copy_pts parameter to true. This creates points to match the reference /// data's x values and errors, but with the y values and errors zeroed. Scatter2DPtr bookScatter2D(unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId, bool copy_pts=false, const std::string& title="", const std::string& xtitle="", const std::string& ytitle=""); /// @brief Book a 2-dimensional data point set with equally spaced x-points in a range. /// /// The y values and errors will be set to 0. Scatter2DPtr bookScatter2D(const std::string& name, size_t npts, double lower, double upper, const std::string& title="", const std::string& xtitle="", const std::string& ytitle=""); /// @brief Book a 2-dimensional data point set based on provided contiguous "bin edges". /// /// The y values and errors will be set to 0. Scatter2DPtr bookScatter2D(const std::string& hname, const std::vector& binedges, const std::string& title, const std::string& xtitle, const std::string& ytitle); /// Book a 2-dimensional data point set with x-points from an existing scatter and a new path. Scatter2DPtr bookScatter2D(const Scatter2DPtr scPtr, const std::string& path, const std::string& title = "", const std::string& xtitle = "", const std::string& ytitle = "" ); //@} public: /// @name accessing options for this Analysis instance. //@{ + /// Return the map of all options given to this analysis. + const std::map & options() { + return _options; + } + /// Get an option for this analysis instance as a string. std::string getOption(std::string optname) { if ( _options.find(optname) != _options.end() ) return _options.find(optname)->second; return ""; } /// Get an option for this analysis instance converted to a /// specific type (given by the specified @a def value). template T getOption(std::string optname, T def) { if (_options.find(optname) == _options.end()) return def; std::stringstream ss; ss << _options.find(optname)->second; T ret; ss >> ret; return ret; } //@} /// @brief Book a CentralityProjection /// /// Using a SingleValueProjection, @a proj, giving the value of an /// experimental observable to be used as a centrality estimator, /// book a CentralityProjection based on the experimentally /// measured pecentiles of this observable (as given by the /// reference data for the @a calHistName histogram in the @a /// calAnaName analysis. If a preloaded file with the output of a /// run using the @a calAnaName analysis contains a valid /// generated @a calHistName histogram, it will be used as an /// optional percentile binning. Also if this preloaded file /// contains a histogram with the name @a calHistName with an /// appended "_IMP" This histogram will be used to add an optional /// centrality percentile based on the generated impact /// parameter. If @increasing is true, a low (high) value of @proj /// is assumed to correspond to a more peripheral (central) event. const CentralityProjection& declareCentrality(const SingleValueProjection &proj, string calAnaName, string calHistName, const string projName, bool increasing = false); /// @brief Book a Pecentile wrapper around AnalysisObjects. /// /// Based on a previously registered CentralityProjection named @a /// projName book one AnalysisObject for each @a centralityBin and /// name them according to the corresponding code in the @a ref /// vector. template Percentile bookPercentile(string projName, vector > centralityBins, vector > ref) { typedef typename ReferenceTraits::RefT RefT; Percentile pctl(this, projName); const int nCent = centralityBins.size(); for (int iCent = 0; iCent < nCent; ++iCent) { const string axisCode = makeAxisCode(std::get<0>(ref[iCent]), std::get<1>(ref[iCent]), std::get<2>(ref[iCent])); const RefT & refscatter = refData(axisCode); shared_ptr ao = addOrGetCompatAO(make_shared(refscatter, histoPath(axisCode))); CounterPtr cnt = addOrGetCompatAO(make_shared(histoPath("TMP/COUNTER/" + axisCode))); pctl.add(ao, cnt, centralityBins[iCent]); } return pctl; } /// @brief Book Pecentile wrappers around AnalysisObjects. /// /// Based on a previously registered CentralityProjection named @a /// projName book one (or several) AnalysisObject(s) named /// according to @a ref where the x-axis will be filled according /// to the percentile output(s) of the @projName. template PercentileXaxis bookPercentileXaxis(string projName, tuple ref) { typedef typename ReferenceTraits::RefT RefT; PercentileXaxis pctl(this, projName); const string axisCode = makeAxisCode(std::get<0>(ref), std::get<1>(ref), std::get<2>(ref)); const RefT & refscatter = refData(axisCode); shared_ptr ao = addOrGetCompatAO(make_shared(refscatter, histoPath(axisCode))); pctl.add(proj, ao, make_shared()); return pctl; } /// @name Analysis object manipulation /// @todo Should really be protected: only public to keep BinnedHistogram happy for now... //@{ /// Multiplicatively scale the given counter, @a cnt, by factor @s factor. void scale(CounterPtr cnt, double factor); /// Multiplicatively scale the given counters, @a cnts, by factor @s factor. /// @note Constness intentional, if weird, to allow passing rvalue refs of smart ptrs (argh) /// @todo Use SFINAE for a generic iterable of CounterPtrs void scale(const std::vector& cnts, double factor) { for (auto& c : cnts) scale(c, factor); } /// @todo YUCK! template void scale(const CounterPtr (&cnts)[array_size], double factor) { // for (size_t i = 0; i < std::extent::value; ++i) scale(cnts[i], factor); for (auto& c : cnts) scale(c, factor); } /// Normalize the given histogram, @a histo, to area = @a norm. void normalize(Histo1DPtr histo, double norm=1.0, bool includeoverflows=true); /// Normalize the given histograms, @a histos, to area = @a norm. /// @note Constness intentional, if weird, to allow passing rvalue refs of smart ptrs (argh) /// @todo Use SFINAE for a generic iterable of Histo1DPtrs void normalize(const std::vector& histos, double norm=1.0, bool includeoverflows=true) { for (auto& h : histos) normalize(h, norm, includeoverflows); } /// @todo YUCK! template void normalize(const Histo1DPtr (&histos)[array_size], double norm=1.0, bool includeoverflows=true) { for (auto& h : histos) normalize(h, norm, includeoverflows); } /// Multiplicatively scale the given histogram, @a histo, by factor @s factor. void scale(Histo1DPtr histo, double factor); /// Multiplicatively scale the given histograms, @a histos, by factor @s factor. /// @note Constness intentional, if weird, to allow passing rvalue refs of smart ptrs (argh) /// @todo Use SFINAE for a generic iterable of Histo1DPtrs void scale(const std::vector& histos, double factor) { for (auto& h : histos) scale(h, factor); } /// @todo YUCK! template void scale(const Histo1DPtr (&histos)[array_size], double factor) { for (auto& h : histos) scale(h, factor); } /// Normalize the given histogram, @a histo, to area = @a norm. void normalize(Histo2DPtr histo, double norm=1.0, bool includeoverflows=true); /// Normalize the given histograms, @a histos, to area = @a norm. /// @note Constness intentional, if weird, to allow passing rvalue refs of smart ptrs (argh) /// @todo Use SFINAE for a generic iterable of Histo2DPtrs void normalize(const std::vector& histos, double norm=1.0, bool includeoverflows=true) { for (auto& h : histos) normalize(h, norm, includeoverflows); } /// @todo YUCK! template void normalize(const Histo2DPtr (&histos)[array_size], double norm=1.0, bool includeoverflows=true) { for (auto& h : histos) normalize(h, norm, includeoverflows); } /// Multiplicatively scale the given histogram, @a histo, by factor @s factor. void scale(Histo2DPtr histo, double factor); /// Multiplicatively scale the given histograms, @a histos, by factor @s factor. /// @note Constness intentional, if weird, to allow passing rvalue refs of smart ptrs (argh) /// @todo Use SFINAE for a generic iterable of Histo2DPtrs void scale(const std::vector& histos, double factor) { for (auto& h : histos) scale(h, factor); } /// @todo YUCK! template void scale(const Histo2DPtr (&histos)[array_size], double factor) { for (auto& h : histos) scale(h, factor); } /// Helper for counter division. /// /// @note Assigns to the (already registered) output scatter, @a s. Preserves the path information of the target. void divide(CounterPtr c1, CounterPtr c2, Scatter1DPtr s) const; /// Helper for histogram division with raw YODA objects. /// /// @note Assigns to the (already registered) output scatter, @a s. Preserves the path information of the target. void divide(const YODA::Counter& c1, const YODA::Counter& c2, Scatter1DPtr s) const; /// Helper for histogram division. /// /// @note Assigns to the (already registered) output scatter, @a s. Preserves the path information of the target. void divide(Histo1DPtr h1, Histo1DPtr h2, Scatter2DPtr s) const; /// Helper for histogram division with raw YODA objects. /// /// @note Assigns to the (already registered) output scatter, @a s. Preserves the path information of the target. void divide(const YODA::Histo1D& h1, const YODA::Histo1D& h2, Scatter2DPtr s) const; /// Helper for profile histogram division. /// /// @note Assigns to the (already registered) output scatter, @a s. Preserves the path information of the target. void divide(Profile1DPtr p1, Profile1DPtr p2, Scatter2DPtr s) const; /// Helper for profile histogram division with raw YODA objects. /// /// @note Assigns to the (already registered) output scatter, @a s. Preserves the path information of the target. void divide(const YODA::Profile1D& p1, const YODA::Profile1D& p2, Scatter2DPtr s) const; /// Helper for 2D histogram division. /// /// @note Assigns to the (already registered) output scatter, @a s. Preserves the path information of the target. void divide(Histo2DPtr h1, Histo2DPtr h2, Scatter3DPtr s) const; /// Helper for 2D histogram division with raw YODA objects. /// /// @note Assigns to the (already registered) output scatter, @a s. Preserves the path information of the target. void divide(const YODA::Histo2D& h1, const YODA::Histo2D& h2, Scatter3DPtr s) const; /// Helper for 2D profile histogram division. /// /// @note Assigns to the (already registered) output scatter, @a s. Preserves the path information of the target. void divide(Profile2DPtr p1, Profile2DPtr p2, Scatter3DPtr s) const; /// Helper for 2D profile histogram division with raw YODA objects /// /// @note Assigns to the (already registered) output scatter, @a s. Preserves the path information of the target. void divide(const YODA::Profile2D& p1, const YODA::Profile2D& p2, Scatter3DPtr s) const; /// Helper for histogram efficiency calculation. /// /// @note Assigns to the (already registered) output scatter, @a s. Preserves the path information of the target. void efficiency(Histo1DPtr h1, Histo1DPtr h2, Scatter2DPtr s) const; /// Helper for histogram efficiency calculation. /// /// @note Assigns to the (already registered) output scatter, @a s. Preserves the path information of the target. void efficiency(const YODA::Histo1D& h1, const YODA::Histo1D& h2, Scatter2DPtr s) const; /// Helper for histogram asymmetry calculation. /// /// @note Assigns to the (already registered) output scatter, @a s. Preserves the path information of the target. void asymm(Histo1DPtr h1, Histo1DPtr h2, Scatter2DPtr s) const; /// Helper for histogram asymmetry calculation. /// /// @note Assigns to the (already registered) output scatter, @a s. Preserves the path information of the target. void asymm(const YODA::Histo1D& h1, const YODA::Histo1D& h2, Scatter2DPtr s) const; /// Helper for converting a differential histo to an integral one. /// /// @note Assigns to the (already registered) output scatter, @a s. Preserves the path information of the target. void integrate(Histo1DPtr h, Scatter2DPtr s) const; /// Helper for converting a differential histo to an integral one. /// /// @note Assigns to the (already registered) output scatter, @a s. Preserves the path information of the target. void integrate(const Histo1D& h, Scatter2DPtr s) const; //@} public: /// List of registered analysis data objects const vector& analysisObjects() const { return _analysisobjects; } protected: /// @name Data object registration, retrieval, and removal //@{ /// Register a data object in the histogram system void addAnalysisObject(AnalysisObjectPtr ao); /// Register a data object in the system and return its pointer, /// or, if an object of the same path is already there, check if it /// is compatible (eg. same type and same binning) and return that /// object instead. Emits a warning if an incompatible object with /// the same name is found and replcaces that with the given data /// object. template std::shared_ptr addOrGetCompatAO(std::shared_ptr aonew) { foreach (const AnalysisObjectPtr& ao, analysisObjects()) { if ( ao->path() == aonew->path() ) { std::shared_ptr aoold = dynamic_pointer_cast(ao); if ( aoold && bookingCompatible(aonew, aoold) ) { MSG_TRACE("Bound pre-existing data object " << aonew->path() << " for " << name()); return aoold; } else { MSG_WARNING("Found incompatible pre-existing data object with same path " << aonew->path() << " for " << name()); } } } MSG_TRACE("Registered " << aonew->annotation("Type") << " " << aonew->path() << " for " << name()); addAnalysisObject(aonew); return aonew; } /// Get a data object from the histogram system template const std::shared_ptr getAnalysisObject(const std::string& name) const { foreach (const AnalysisObjectPtr& ao, analysisObjects()) { if (ao->path() == histoPath(name)) return dynamic_pointer_cast(ao); } throw LookupError("Data object " + histoPath(name) + " not found"); } /// Get a data object from the histogram system (non-const) template std::shared_ptr getAnalysisObject(const std::string& name) { foreach (const AnalysisObjectPtr& ao, analysisObjects()) { if (ao->path() == histoPath(name)) return dynamic_pointer_cast(ao); } throw LookupError("Data object " + histoPath(name) + " not found"); } /// Unregister a data object from the histogram system (by name) void removeAnalysisObject(const std::string& path); /// Unregister a data object from the histogram system (by pointer) void removeAnalysisObject(AnalysisObjectPtr ao); /// Get all data object from the AnalysisHandler. vector getAllData(bool includeorphans) const; /// Get a data object from another analysis (e.g. preloaded /// calibration histogram). /// Get a data object from the histogram system (non-const) template std::shared_ptr getAnalysisObject(const std::string & ananame, const std::string& name) { std::string path = "/" + ananame + "/" + name; for ( AnalysisObjectPtr ao : getAllData(true) ) { if ( ao->path() == path ) return dynamic_pointer_cast(ao); } return std::shared_ptr(); } /// Get a named Histo1D object from the histogram system const Histo1DPtr getHisto1D(const std::string& name) const { return getAnalysisObject(name); } /// Get a named Histo1D object from the histogram system (non-const) Histo1DPtr getHisto1D(const std::string& name) { return getAnalysisObject(name); } /// Get a Histo1D object from the histogram system by axis ID codes (non-const) const Histo1DPtr getHisto1D(unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId) const { return getAnalysisObject(makeAxisCode(datasetId, xAxisId, yAxisId)); } /// Get a Histo1D object from the histogram system by axis ID codes (non-const) Histo1DPtr getHisto1D(unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId) { return getAnalysisObject(makeAxisCode(datasetId, xAxisId, yAxisId)); } /// Get a named Histo2D object from the histogram system const Histo2DPtr getHisto2D(const std::string& name) const { return getAnalysisObject(name); } /// Get a named Histo2D object from the histogram system (non-const) Histo2DPtr getHisto2D(const std::string& name) { return getAnalysisObject(name); } /// Get a Histo2D object from the histogram system by axis ID codes (non-const) const Histo2DPtr getHisto2D(unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId) const { return getAnalysisObject(makeAxisCode(datasetId, xAxisId, yAxisId)); } /// Get a Histo2D object from the histogram system by axis ID codes (non-const) Histo2DPtr getHisto2D(unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId) { return getAnalysisObject(makeAxisCode(datasetId, xAxisId, yAxisId)); } /// Get a named Profile1D object from the histogram system const Profile1DPtr getProfile1D(const std::string& name) const { return getAnalysisObject(name); } /// Get a named Profile1D object from the histogram system (non-const) Profile1DPtr getProfile1D(const std::string& name) { return getAnalysisObject(name); } /// Get a Profile1D object from the histogram system by axis ID codes (non-const) const Profile1DPtr getProfile1D(unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId) const { return getAnalysisObject(makeAxisCode(datasetId, xAxisId, yAxisId)); } /// Get a Profile1D object from the histogram system by axis ID codes (non-const) Profile1DPtr getProfile1D(unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId) { return getAnalysisObject(makeAxisCode(datasetId, xAxisId, yAxisId)); } /// Get a named Profile2D object from the histogram system const Profile2DPtr getProfile2D(const std::string& name) const { return getAnalysisObject(name); } /// Get a named Profile2D object from the histogram system (non-const) Profile2DPtr getProfile2D(const std::string& name) { return getAnalysisObject(name); } /// Get a Profile2D object from the histogram system by axis ID codes (non-const) const Profile2DPtr getProfile2D(unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId) const { return getAnalysisObject(makeAxisCode(datasetId, xAxisId, yAxisId)); } /// Get a Profile2D object from the histogram system by axis ID codes (non-const) Profile2DPtr getProfile2D(unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId) { return getAnalysisObject(makeAxisCode(datasetId, xAxisId, yAxisId)); } /// Get a named Scatter2D object from the histogram system const Scatter2DPtr getScatter2D(const std::string& name) const { return getAnalysisObject(name); } /// Get a named Scatter2D object from the histogram system (non-const) Scatter2DPtr getScatter2D(const std::string& name) { return getAnalysisObject(name); } /// Get a Scatter2D object from the histogram system by axis ID codes (non-const) const Scatter2DPtr getScatter2D(unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId) const { return getAnalysisObject(makeAxisCode(datasetId, xAxisId, yAxisId)); } /// Get a Scatter2D object from the histogram system by axis ID codes (non-const) Scatter2DPtr getScatter2D(unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId) { return getAnalysisObject(makeAxisCode(datasetId, xAxisId, yAxisId)); } //@} private: /// Name passed to constructor (used to find .info analysis data file, and as a fallback) string _defaultname; /// Pointer to analysis metadata object unique_ptr _info; /// Storage of all plot objects /// @todo Make this a map for fast lookup by path? vector _analysisobjects; /// @name Cross-section variables //@{ double _crossSection; bool _gotCrossSection; //@} /// The controlling AnalysisHandler object. AnalysisHandler* _analysishandler; /// Collection of cached refdata to speed up many autobookings: the /// reference data file should only be read once. mutable std::map _refdata; - /// Options the (this instance of) the analysis - map _options; + /// Options the (this instance of) the analysis + map _options; /// The string of options. string _optstring; private: /// @name Utility functions //@{ /// Get the reference data for this paper and cache it. void _cacheRefData() const; //@} /// The assignment operator is private and must never be called. /// In fact, it should not even be implemented. Analysis& operator=(const Analysis&); }; } // Include definition of analysis plugin system so that analyses automatically see it when including Analysis.hh #include "Rivet/AnalysisBuilder.hh" /// @def DECLARE_RIVET_PLUGIN /// Preprocessor define to prettify the global-object plugin hook mechanism. #define DECLARE_RIVET_PLUGIN(clsname) Rivet::AnalysisBuilder plugin_ ## clsname /// @def DECLARE_ALIASED_RIVET_PLUGIN /// Preprocessor define to prettify the global-object plugin hook mechanism, with an extra alias name for this analysis. // #define DECLARE_ALIASED_RIVET_PLUGIN(clsname, alias) Rivet::AnalysisBuilder plugin_ ## clsname ## ( ## #alias ## ) #define DECLARE_ALIASED_RIVET_PLUGIN(clsname, alias) DECLARE_RIVET_PLUGIN(clsname)( #alias ) /// @def DEFAULT_RIVET_ANALYSIS_CONSTRUCTOR /// Preprocessor define to prettify the manky constructor with name string argument #define DEFAULT_RIVET_ANALYSIS_CONSTRUCTOR(clsname) clsname() : Analysis(# clsname) {} /// @def DEFAULT_RIVET_ANALYSIS_CTOR /// Slight abbreviation for DEFAULT_RIVET_ANALYSIS_CONSTRUCTOR #define DEFAULT_RIVET_ANALYSIS_CTOR(clsname) DEFAULT_RIVET_ANALYSIS_CONSTRUCTOR(clsname) #endif diff --git a/include/Rivet/Event.hh b/include/Rivet/Event.hh --- a/include/Rivet/Event.hh +++ b/include/Rivet/Event.hh @@ -1,193 +1,194 @@ // -*- C++ -*- #ifndef RIVET_Event_HH #define RIVET_Event_HH #include "Rivet/Config/RivetCommon.hh" #include "Rivet/Particle.hh" #include "Rivet/Projection.hh" namespace Rivet { /// Rivet wrapper for HepMC event and Projection references. /// /// Event is a concrete class representing an generated event in Rivet. It is /// constructed given a HepMC::GenEvent, a pointer to which is kept by the /// Event object throughout its lifetime. The user must therefore make sure /// that the corresponding HepMC::GenEvent will persist at least as long as /// the Event object. /// /// In addition to the HepMC::GenEvent object the Event also keeps track of /// all Projection objects which have been applied to the Event so far. class Event { public: /// @name Constructors and destructors. //@{ /// Constructor from a HepMC GenEvent pointer Event(const GenEvent* ge) : _genevent_original(ge), _genevent(*ge) { assert(ge); _init(*ge); } /// Constructor from a HepMC GenEvent reference /// @deprecated HepMC uses pointers, so we should talk to HepMC via pointers Event(const GenEvent& ge) : _genevent_original(&ge), _genevent(ge) { _init(ge); } /// Copy constructor Event(const Event& e) : _genevent_original(e._genevent_original), _genevent(e._genevent) { } //@} /// @name Major event properties //@{ /// The generated event obtained from an external event generator const GenEvent* genEvent() const { return &_genevent; } /// @brief The generation weight associated with the event /// /// @todo This needs to be revisited when we finally add the mechanism to /// support NLO counter-events and weight vectors. double weight() const; /// Get the beam particles ParticlePair beams() const; /// Get the beam centre-of-mass energy double sqrtS() const; /// Get the beam centre-of-mass energy per nucleon double asqrtS() const; /// Get the generator centrality (impact-parameter quantile in [0,1]; or -1 if undefined (usual for non-HI generators)) double centrality() const; // /// Get the boost to the beam centre-of-mass // Vector3 beamCMSBoost() const; // /// Get the boost to the beam centre-of-mass // LorentzTransform beamCMSTransform(); //@} /// @name Access to event particles //@{ /// All the raw GenEvent particles, wrapped in Rivet::Particle objects const Particles& allParticles() const; /// @brief All the raw GenEvent particles, wrapped in Rivet::Particle objects, but with a Cut applied /// /// @note Due to the cut, this returns by value, i.e. involves an expensive copy inline Particles allParticles(const Cut& c) const { return filter_select(allParticles(), c); } /// @brief All the raw GenEvent particles, wrapped in Rivet::Particle objects, but with a selection function applied /// /// @note Due to the cut, this returns by value, i.e. involves an expensive copy template inline Particles allParticles(const FN& f) const { return filter_select(allParticles(), f); } //@} /// @name Projection running //@{ /// @brief Add a projection @a p to this Event. /// /// If an equivalent Projection has been applied before, the /// Projection::project(const Event&) of @a p is not called and a reference /// to the previous equivalent projection is returned. If no previous /// Projection was found, the Projection::project(const Event&) of @a p is /// called and a reference to @a p is returned. template const PROJ& applyProjection(PROJ& p) const { Log& log = Log::getLog("Rivet.Event"); static bool docaching = getEnvParam("RIVET_CACHE_PROJECTIONS", true); if (docaching) { log << Log::TRACE << "Applying projection " << &p << " (" << p.name() << ") -> comparing to projections " << _projections << endl; // First search for this projection *or an equivalent* in the already-executed list const Projection* cpp(&p); std::set::const_iterator old = _projections.find(cpp); if (old != _projections.end()) { log << Log::TRACE << "Equivalent projection found -> returning already-run projection " << *old << endl; const Projection& pRef = **old; return pcast(pRef); } log << Log::TRACE << "No equivalent projection in the already-run list -> projecting now" << endl; } else { log << Log::TRACE << "Applying projection " << &p << " (" << p.name() << ") WITHOUT projection caching & comparison" << endl; } // If this one hasn't been run yet on this event, run it and add to the list Projection* pp = const_cast(&p); + pp->_isValid = true; pp->project(*this); if (docaching) _projections.insert(pp); return p; } /// @brief Add a projection @a p to this Event by pointer. template const PROJ& applyProjection(PROJ* pp) const { if (!pp) throw Error("Event::applyProjection(PROJ*): Projection pointer is null."); return applyProjection(*pp); } //@} private: /// @brief Actual (shared) implementation of the constructors from GenEvents void _init(const GenEvent& ge); // /// @brief Convert the GenEvent to use conventional alignment // /// // /// For example, FHerwig only produces DIS events in the unconventional // /// hadron-lepton orientation and has to be corrected for DIS analysis // /// portability. // void _geNormAlignment(); /// @brief The generated event, as obtained from an external generator. /// /// This is the original GenEvent. In practise the version seen by users /// will often/always be a modified one. /// /// @todo Provide access to this via an Event::originalGenEvent() method? If requested... const GenEvent* _genevent_original; /// @brief The GenEvent used by Rivet analysis projections etc. /// /// This version may be rotated to a "normal" alignment, have /// generator-specific particles stripped out, etc. If an analysis is /// affected by these modifications, it is probably an unphysical analysis! /// /// Stored as a non-pointer since it may get overwritten, and memory for /// copying and cleanup is neater this way. /// @todo Change needed for HepMC3? mutable GenEvent _genevent; /// All the GenEvent particles, wrapped as Rivet::Particles /// @note To be populated lazily, hence mutability mutable Particles _particles; /// The set of Projection objects applied so far mutable std::set _projections; }; } #endif diff --git a/include/Rivet/Makefile.am b/include/Rivet/Makefile.am --- a/include/Rivet/Makefile.am +++ b/include/Rivet/Makefile.am @@ -1,196 +1,200 @@ ## Internal headers - not to be installed nobase_dist_noinst_HEADERS = ## Public headers - to be installed nobase_pkginclude_HEADERS = ## Rivet interface nobase_pkginclude_HEADERS += \ Rivet.hh \ Run.hh \ Event.hh \ ParticleBase.hh \ Particle.fhh Particle.hh \ Jet.fhh Jet.hh \ Projection.fhh Projection.hh \ ProjectionApplier.hh \ ProjectionHandler.hh \ Analysis.hh \ AnalysisHandler.hh \ AnalysisInfo.hh \ AnalysisBuilder.hh \ AnalysisLoader.hh ## Build config stuff nobase_pkginclude_HEADERS += \ Config/RivetCommon.hh \ Config/RivetConfig.hh \ Config/BuildOptions.hh ## Projections nobase_pkginclude_HEADERS += \ Projections/AliceCommon.hh \ Projections/AxesDefinition.hh \ Projections/Beam.hh \ Projections/BeamThrust.hh \ Projections/CentralEtHCM.hh \ Projections/CentralityProjection.hh \ Projections/ChargedFinalState.hh \ Projections/ChargedLeptons.hh \ Projections/ConstLossyFinalState.hh \ Projections/DirectFinalState.hh \ + Projections/DISDiffHadron.hh \ Projections/DISFinalState.hh \ Projections/DISKinematics.hh \ Projections/DISLepton.hh \ + Projections/DISRapidityGap.hh \ Projections/DressedLeptons.hh \ Projections/EventMixingFinalState.hh \ Projections/FastJets.hh \ Projections/PxConePlugin.hh \ Projections/FinalPartons.hh \ Projections/FinalState.hh \ Projections/FoxWolframMoments.hh \ Projections/FParameter.hh \ Projections/GeneratedPercentileProjection.hh \ Projections/HadronicFinalState.hh \ Projections/HeavyHadrons.hh \ Projections/Hemispheres.hh \ Projections/IdentifiedFinalState.hh \ Projections/ImpactParameterProjection.hh \ Projections/IndirectFinalState.hh \ Projections/InitialQuarks.hh \ Projections/InvMassFinalState.hh \ Projections/JetAlg.hh \ Projections/JetShape.hh \ Projections/LeadingParticlesFinalState.hh \ Projections/LossyFinalState.hh \ Projections/MergedFinalState.hh \ Projections/MissingMomentum.hh \ Projections/NeutralFinalState.hh \ Projections/NonHadronicFinalState.hh \ Projections/NonPromptFinalState.hh \ Projections/ParisiTensor.hh \ Projections/ParticleFinder.hh \ Projections/PartonicTops.hh \ Projections/PercentileProjection.hh \ Projections/PrimaryHadrons.hh \ Projections/PrimaryParticles.hh \ Projections/PromptFinalState.hh \ Projections/SingleValueProjection.hh \ Projections/SmearedParticles.hh \ Projections/SmearedJets.hh \ Projections/SmearedMET.hh \ Projections/Sphericity.hh \ Projections/Spherocity.hh \ Projections/TauFinder.hh \ Projections/Thrust.hh \ Projections/TriggerCDFRun0Run1.hh \ Projections/TriggerCDFRun2.hh \ Projections/TriggerProjection.hh \ Projections/TriggerUA5.hh \ Projections/UnstableFinalState.hh \ + Projections/UndressBeamLeptons.hh \ + Projections/UnstableParticles.hh \ Projections/UserCentEstimate.hh \ Projections/VetoedFinalState.hh \ Projections/VisibleFinalState.hh \ Projections/WFinder.hh \ Projections/ZFinder.hh ## Meta-projection convenience headers nobase_pkginclude_HEADERS += \ Projections/FinalStates.hh \ Projections/Smearing.hh ## Analysis base class headers # TODO: Move to Rivet/AnalysisTools header dir? nobase_pkginclude_HEADERS += \ Analyses/MC_Cent_pPb.hh \ Analyses/MC_ParticleAnalysis.hh \ Analyses/MC_JetAnalysis.hh \ Analyses/MC_JetSplittings.hh ## Tools nobase_pkginclude_HEADERS += \ Tools/AliceCommon.hh \ Tools/AtlasCommon.hh \ Tools/BeamConstraint.hh \ Tools/BinnedHistogram.hh \ Tools/CentralityBinner.hh \ Tools/Cmp.fhh \ Tools/Cmp.hh \ Tools/Correlators.hh \ Tools/Cutflow.hh \ Tools/Cuts.fhh \ Tools/Cuts.hh \ Tools/Exceptions.hh \ Tools/JetUtils.hh \ Tools/Logging.hh \ Tools/Random.hh \ Tools/ParticleBaseUtils.hh \ Tools/ParticleIdUtils.hh \ Tools/ParticleUtils.hh \ Tools/ParticleName.hh \ Tools/Percentile.hh \ Tools/PrettyPrint.hh \ Tools/RivetPaths.hh \ Tools/RivetSTL.hh \ Tools/RivetFastJet.hh \ Tools/RivetHepMC.hh \ Tools/RivetYODA.hh \ Tools/RivetMT2.hh \ Tools/SmearingFunctions.hh \ Tools/MomentumSmearingFunctions.hh \ Tools/ParticleSmearingFunctions.hh \ Tools/JetSmearingFunctions.hh \ Tools/TypeTraits.hh \ Tools/Utils.hh \ Tools/fjcontrib/AxesDefinition.hh \ Tools/fjcontrib/BottomUpSoftDrop.hh \ Tools/fjcontrib/EnergyCorrelator.hh \ Tools/fjcontrib/ExtraRecombiners.hh \ Tools/fjcontrib/IteratedSoftDrop.hh \ Tools/fjcontrib/MeasureDefinition.hh \ Tools/fjcontrib/ModifiedMassDropTagger.hh \ Tools/fjcontrib/Njettiness.hh \ Tools/fjcontrib/NjettinessPlugin.hh \ Tools/fjcontrib/Nsubjettiness.hh \ Tools/fjcontrib/Recluster.hh \ Tools/fjcontrib/RecursiveSoftDrop.hh \ Tools/fjcontrib/RecursiveSymmetryCutBase.hh \ Tools/fjcontrib/SoftDrop.hh \ Tools/fjcontrib/TauComponents.hh \ Tools/fjcontrib/XConePlugin.hh nobase_dist_noinst_HEADERS += \ Tools/osdir.hh ## Maths nobase_pkginclude_HEADERS += \ Math/Matrices.hh \ Math/Vector3.hh \ Math/VectorN.hh \ Math/MatrixN.hh \ Math/MatrixDiag.hh \ Math/MathHeader.hh \ Math/Vectors.hh \ Math/LorentzTrans.hh \ Math/Matrix3.hh \ Math/MathUtils.hh \ Math/Vector4.hh \ Math/Math.hh \ Math/Units.hh \ Math/Constants.hh \ Math/eigen/util.h \ Math/eigen/regressioninternal.h \ Math/eigen/regression.h \ Math/eigen/vector.h \ Math/eigen/ludecompositionbase.h \ Math/eigen/ludecomposition.h \ Math/eigen/linearsolver.h \ Math/eigen/linearsolverbase.h \ Math/eigen/matrix.h \ Math/eigen/vectorbase.h \ Math/eigen/projective.h \ Math/eigen/matrixbase.h diff --git a/include/Rivet/Math/Vector3.hh b/include/Rivet/Math/Vector3.hh --- a/include/Rivet/Math/Vector3.hh +++ b/include/Rivet/Math/Vector3.hh @@ -1,384 +1,384 @@ #ifndef RIVET_MATH_VECTOR3 #define RIVET_MATH_VECTOR3 #include "Rivet/Math/MathHeader.hh" #include "Rivet/Math/MathUtils.hh" #include "Rivet/Math/VectorN.hh" namespace Rivet { class Vector3; typedef Vector3 ThreeVector; class Matrix3; Vector3 multiply(const double, const Vector3&); Vector3 multiply(const Vector3&, const double); Vector3 add(const Vector3&, const Vector3&); Vector3 operator*(const double, const Vector3&); Vector3 operator*(const Vector3&, const double); Vector3 operator/(const Vector3&, const double); Vector3 operator+(const Vector3&, const Vector3&); Vector3 operator-(const Vector3&, const Vector3&); /// @brief Three-dimensional specialisation of Vector. class Vector3 : public Vector<3> { friend class Matrix3; friend Vector3 multiply(const double, const Vector3&); friend Vector3 multiply(const Vector3&, const double); friend Vector3 add(const Vector3&, const Vector3&); friend Vector3 subtract(const Vector3&, const Vector3&); public: Vector3() : Vector<3>() { } template Vector3(const V3& other) { this->setX(other.x()); this->setY(other.y()); this->setZ(other.z()); } Vector3(const Vector<3>& other) { this->setX(other.get(0)); this->setY(other.get(1)); this->setZ(other.get(2)); } Vector3(double x, double y, double z) { this->setX(x); this->setY(y); this->setZ(z); } ~Vector3() { } public: static Vector3 mkX() { return Vector3(1,0,0); } static Vector3 mkY() { return Vector3(0,1,0); } static Vector3 mkZ() { return Vector3(0,0,1); } public: double x() const { return get(0); } double y() const { return get(1); } double z() const { return get(2); } Vector3& setX(double x) { set(0, x); return *this; } Vector3& setY(double y) { set(1, y); return *this; } Vector3& setZ(double z) { set(2, z); return *this; } /// Dot-product with another vector double dot(const Vector3& v) const { return _vec.dot(v._vec); } /// Cross-product with another vector Vector3 cross(const Vector3& v) const { Vector3 result; result._vec = _vec.cross(v._vec); return result; } /// Angle in radians to another vector double angle(const Vector3& v) const { const double localDotOther = unit().dot(v.unit()); if (localDotOther > 1.0) return 0.0; if (localDotOther < -1.0) return M_PI; return acos(localDotOther); } - /// Unit-normalized version of this vector + /// Unit-normalized version of this vector. Vector3 unitVec() const { - /// @todo What to do in this situation? - if (isZero()) return *this; - else return *this * 1.0/this->mod(); + double md = mod(); + if ( md <= 0.0 ) return Vector3(); + else return *this * 1.0/md; } /// Synonym for unitVec Vector3 unit() const { return unitVec(); } /// Polar projection of this vector into the x-y plane Vector3 polarVec() const { Vector3 rtn = *this; rtn.setZ(0.); return rtn; } /// Synonym for polarVec Vector3 perpVec() const { return polarVec(); } /// Synonym for polarVec Vector3 rhoVec() const { return polarVec(); } /// Square of the polar radius ( double polarRadius2() const { return x()*x() + y()*y(); } /// Synonym for polarRadius2 double perp2() const { return polarRadius2(); } /// Synonym for polarRadius2 double rho2() const { return polarRadius2(); } /// Polar radius double polarRadius() const { return sqrt(polarRadius2()); } /// Synonym for polarRadius double perp() const { return polarRadius(); } /// Synonym for polarRadius double rho() const { return polarRadius(); } /// Angle subtended by the vector's projection in x-y and the x-axis. /// /// @note Returns zero in the case of a vector with null x and y components. /// @todo Would it be better to return NaN in the null-perp case? Or throw?! double azimuthalAngle(const PhiMapping mapping = ZERO_2PI) const { // If this has a null perp-vector, return zero rather than let atan2 set an error state // This isn't necessary if the implementation supports IEEE floating-point arithmetic (IEC 60559)... are we sure? if (x() == 0 && y() == 0) return 0.0; //< Or return nan / throw an exception? // Calculate the arctan and return in the requested range const double value = atan2( y(), x() ); return mapAngle(value, mapping); } /// Synonym for azimuthalAngle. double phi(const PhiMapping mapping = ZERO_2PI) const { return azimuthalAngle(mapping); } /// Angle subtended by the vector and the z-axis. double polarAngle() const { // Get number beween [0,PI] const double polarangle = atan2(polarRadius(), z()); return mapAngle0ToPi(polarangle); } /// Synonym for polarAngle double theta() const { return polarAngle(); } /// Purely geometric approximation to rapidity /// /// Also invariant under z-boosts, equal to y for massless particles. /// /// @note A cut-off is applied such that |eta| < log(2/DBL_EPSILON) double pseudorapidity() const { const double epsilon = DBL_EPSILON; double m = mod(); if ( m == 0.0 ) return 0.0; double pt = max(epsilon*m, perp()); double rap = std::log((m + fabs(z()))/pt); return z() > 0.0 ? rap: -rap; } /// Synonym for pseudorapidity double eta() const { return pseudorapidity(); } /// Convenience shortcut for fabs(eta()) double abseta() const { return fabs(eta()); } public: Vector3& operator*=(const double a) { _vec = multiply(a, *this)._vec; return *this; } Vector3& operator/=(const double a) { _vec = multiply(1.0/a, *this)._vec; return *this; } Vector3& operator+=(const Vector3& v) { _vec = add(*this, v)._vec; return *this; } Vector3& operator-=(const Vector3& v) { _vec = subtract(*this, v)._vec; return *this; } Vector3 operator-() const { Vector3 rtn; rtn._vec = -_vec; return rtn; } }; inline double dot(const Vector3& a, const Vector3& b) { return a.dot(b); } inline Vector3 cross(const Vector3& a, const Vector3& b) { return a.cross(b); } inline Vector3 multiply(const double a, const Vector3& v) { Vector3 result; result._vec = a * v._vec; return result; } inline Vector3 multiply(const Vector3& v, const double a) { return multiply(a, v); } inline Vector3 operator*(const double a, const Vector3& v) { return multiply(a, v); } inline Vector3 operator*(const Vector3& v, const double a) { return multiply(a, v); } inline Vector3 operator/(const Vector3& v, const double a) { return multiply(1.0/a, v); } inline Vector3 add(const Vector3& a, const Vector3& b) { Vector3 result; result._vec = a._vec + b._vec; return result; } inline Vector3 subtract(const Vector3& a, const Vector3& b) { Vector3 result; result._vec = a._vec - b._vec; return result; } inline Vector3 operator+(const Vector3& a, const Vector3& b) { return add(a, b); } inline Vector3 operator-(const Vector3& a, const Vector3& b) { return subtract(a, b); } // More physicsy coordinates etc. /// Angle (in radians) between two 3-vectors. inline double angle(const Vector3& a, const Vector3& b) { return a.angle(b); } ///////////////////////////////////////////////////// /// @name \f$ |\Delta eta| \f$ calculations from 3-vectors //@{ /// Calculate the difference in pseudorapidity between two spatial vectors. inline double deltaEta(const Vector3& a, const Vector3& b) { return deltaEta(a.pseudorapidity(), b.pseudorapidity()); } /// Calculate the difference in pseudorapidity between two spatial vectors. inline double deltaEta(const Vector3& v, double eta2) { return deltaEta(v.pseudorapidity(), eta2); } /// Calculate the difference in pseudorapidity between two spatial vectors. inline double deltaEta(double eta1, const Vector3& v) { return deltaEta(eta1, v.pseudorapidity()); } //@} /// @name \f$ \Delta phi \f$ calculations from 3-vectors //@{ /// Calculate the difference in azimuthal angle between two spatial vectors. inline double deltaPhi(const Vector3& a, const Vector3& b, bool sign=false) { return deltaPhi(a.azimuthalAngle(), b.azimuthalAngle(), sign); } /// Calculate the difference in azimuthal angle between two spatial vectors. inline double deltaPhi(const Vector3& v, double phi2, bool sign=false) { return deltaPhi(v.azimuthalAngle(), phi2, sign); } /// Calculate the difference in azimuthal angle between two spatial vectors. inline double deltaPhi(double phi1, const Vector3& v, bool sign=false) { return deltaPhi(phi1, v.azimuthalAngle(), sign); } //@} /// @name \f$ \Delta R \f$ calculations from 3-vectors //@{ /// Calculate the 2D rapidity-azimuthal ("eta-phi") distance between two spatial vectors. inline double deltaR2(const Vector3& a, const Vector3& b) { return deltaR2(a.pseudorapidity(), a.azimuthalAngle(), b.pseudorapidity(), b.azimuthalAngle()); } /// Calculate the 2D rapidity-azimuthal ("eta-phi") distance between two spatial vectors. inline double deltaR(const Vector3& a, const Vector3& b) { return sqrt(deltaR2(a,b)); } /// Calculate the 2D rapidity-azimuthal ("eta-phi") distance between two spatial vectors. inline double deltaR2(const Vector3& v, double eta2, double phi2) { return deltaR2(v.pseudorapidity(), v.azimuthalAngle(), eta2, phi2); } /// Calculate the 2D rapidity-azimuthal ("eta-phi") distance between two spatial vectors. inline double deltaR(const Vector3& v, double eta2, double phi2) { return sqrt(deltaR2(v, eta2, phi2)); } /// Calculate the 2D rapidity-azimuthal ("eta-phi") distance between two spatial vectors. inline double deltaR2(double eta1, double phi1, const Vector3& v) { return deltaR2(eta1, phi1, v.pseudorapidity(), v.azimuthalAngle()); } /// Calculate the 2D rapidity-azimuthal ("eta-phi") distance between two spatial vectors. inline double deltaR(double eta1, double phi1, const Vector3& v) { return sqrt(deltaR2(eta1, phi1, v)); } //@} /// @name Typedefs of vector types to short names /// @todo Switch canonical and alias names //@{ //typedef Vector3 V3; //< generic typedef Vector3 X3; //< spatial //@} } #endif diff --git a/include/Rivet/Projection.hh b/include/Rivet/Projection.hh --- a/include/Rivet/Projection.hh +++ b/include/Rivet/Projection.hh @@ -1,185 +1,202 @@ // -*- C++ -*- #ifndef RIVET_Projection_HH #define RIVET_Projection_HH #include "Rivet/Projection.fhh" #include "Rivet/ProjectionApplier.hh" #include "Rivet/ProjectionHandler.hh" #include "Rivet/Config/RivetCommon.hh" #include "Rivet/Tools/Cuts.hh" // NOTE: Cmp.hh, Event.hh and Particle.hh included at the bottom namespace Rivet { // Forward declaration class Event; /// @brief Base class for all Rivet projections. /// /// Projection is the base class of all Projections to be used by /// Rivet. A Projection object can be assigned to an Event object and /// will then define a processed part of the information available in /// the Event, which then can be used by other Projection objects /// and/or Analysis objects. /// /// The main virtual functions to be overridden by concrete sub-classes /// are project(const Event &) and compare(const Projection &). class Projection : public ProjectionApplier { public: /// Event is a friend. friend class Event; /// The Cmp specialization for Projection is a friend. friend class Cmp; /// @name Standard constructors and destructors. //@{ /// The default constructor. Projection(); /// Clone on the heap. virtual unique_ptr clone() const = 0; /// The destructor. virtual ~Projection(); //@} /// Get the name of the projection. virtual std::string name() const { return _name; } + /// Get the state of the projetion. + bool valid() const { + return _isValid; + } + + /// Get the state of the projetion. + bool failed() const { + return !valid(); + } /// @name Projection operation and comparison //@{ /// Take the information available in the Event and make the /// calculations necessary to obtain the projection. Note that this /// function must never be called except inside the /// Event::applyProjection(Projection *) function. virtual void project(const Event& e) = 0; /// This function is used to define a unique ordering between /// different Projection objects of the same class. If this is /// considered to be equivalent to the Projector object, \a p, in the /// argument the function should return 0. If this object should be /// ordered before \a p a negative value should be returned, /// otherwise a positive value should be returned. This function must /// never be called explicitly, but should only be called from the /// operator<(const Projection &). When implementing the function in /// concrete sub-classes, it is then guaranteed that the Projection /// object \a p in the argument is of the same class as the sub-class /// and can be safely dynamically casted to that class. /// /// When implementing this function in a sub-class, the immediate /// base class version of the function should be called first. If the /// base class function returns a non-zero value, that value should /// be returned immediately. Only if zero is returned should this /// function check the member variables of the sub-class to determine /// whether this should be ordered before or after \a p, or if it is /// equivalent with \a p. virtual int compare(const Projection& p) const = 0; /// Determine whether this object should be ordered before the object /// \a p given as argument. If \a p is of a different class than /// this, the before() function of the corresponding type_info /// objects is used. Otherwise, if the objects are of the same class, /// the virtual compare(const Projection &) will be returned. bool before(const Projection& p) const; //@} /// @name Beam configuration /// @todo Does it really make sense to restrict Projections to particular beam configs? Do we use this in practice? //@{ /// Return the allowed beam pairs on which this projection can operate, not /// including recursion. Derived classes should ensure that all contained /// projections are registered in the @a _projections set for the beam /// constraint chaining to work. /// @todo Remove the beam constraints system from projections. virtual const std::set beamPairs() const; /// Add a colliding beam pair. /// @todo This deserves a better name! Projection& addPdgIdPair(PdgId beam1, PdgId beam2) { _beamPairs.insert(PdgIdPair(beam1, beam2)); return *this; } //@} protected: /// Get a Log object based on the getName() property of the calling projection object. Log& getLog() const { string logname = "Rivet.Projection." + name(); return Log::getLog(logname); } /// Used by derived classes to set their name. void setName(const std::string& name) { _name = name; } + /// Set the projection in an unvalid state. + void fail() { + _isValid = false; + } + /// Shortcut to make a named Cmp comparison with the @c *this /// object automatically passed as one of the parent projections. Cmp mkNamedPCmp(const Projection& otherparent, const std::string& pname) const; /// Shortcut to make a named Cmp comparison with the @c *this /// object automatically passed as one of the parent projections. /// /// @note Alias for mkNamedPCmp Cmp mkPCmp(const Projection& otherparent, const std::string& pname) const; /// Block Projection copying virtual Projection& operator = (const Projection&); private: /// Name variable is used by the base class messages to identify /// which derived class is being handled. string _name; /// Beam-type constraint. /// @todo Remove? set _beamPairs; + /// Flag to tell if this projection is in a valid state. + bool _isValid; + }; } /// Define "less" operator for Projection* containers in terms of the Projection::before virtual method. inline bool std::less::operator()(const Rivet::Projection* x, const Rivet::Projection* y) const { return x->before(*y); } #endif #include "Rivet/Event.hh" #include "Rivet/Particle.hh" #include "Rivet/Tools/Cmp.hh" /// @def DEFAULT_RIVET_PROJ_CLONE /// Preprocessor define to prettify the manky constructor with name string argument #define DEFAULT_RIVET_PROJ_CLONE(clsname) \ virtual unique_ptr clone() const { return unique_ptr(new clsname(*this)); } diff --git a/include/Rivet/Projections/Beam.hh b/include/Rivet/Projections/Beam.hh --- a/include/Rivet/Projections/Beam.hh +++ b/include/Rivet/Projections/Beam.hh @@ -1,206 +1,208 @@ // -*- C++ -*- #ifndef RIVET_Beam_HH #define RIVET_Beam_HH #include "Rivet/Projection.hh" #include "Rivet/Event.hh" #include "Rivet/Particle.hh" #include "Rivet/Math/LorentzTrans.hh" namespace Rivet { /// @name Standalone beam kinematics functions //@{ /// Get beam particles from an event ParticlePair beams(const Event& e); /// Get beam particle IDs from a pair of Particles /// @deprecated Use pids(beams) inline PdgIdPair beamIds(const ParticlePair& beams) { return pids(beams); } /// Get beam particle IDs from an event /// @deprecated Use pids(e.beams()) inline PdgIdPair beamIds(const Event& e) { return pids(beams(e)); } /// Get beam centre-of-mass energy from a pair of beam momenta double sqrtS(const FourMomentum& pa, const FourMomentum& pb); /// Get beam centre-of-mass energy from a pair of Particles inline double sqrtS(const ParticlePair& beams) { return sqrtS(beams.first.momentum(), beams.second.momentum()); } /// Get beam centre-of-mass energy from an Event inline double sqrtS(const Event& e) { return sqrtS(beams(e)); } /// Get per-nucleon beam centre-of-mass energy from a pair of beam momenta /// @note Uses a nominal nucleon mass of 0.939 GeV to convert masses to A double asqrtS(const FourMomentum& pa, const FourMomentum& pb); /// Get per-nucleon beam centre-of-mass energy from a pair of Particles /// @note Uses the sum of nuclear mass numbers A for each beam double asqrtS(const ParticlePair& beams); /// Get per-nucleon beam centre-of-mass energy from an Event /// @note Uses the sum of nuclear mass numbers A for each beam inline double asqrtS(const Event& e) { return asqrtS(beams(e)); } /// Get the Lorentz boost to the beam centre-of-mass system (CMS) from a pair of beam momenta inline FourMomentum cmsBoostVec(const FourMomentum& pa, const FourMomentum& pb) { return pa + pb; } /// Get the Lorentz boost to the beam centre-of-mass system (CMS) from a pair of Particles inline FourMomentum cmsBoostVec(const ParticlePair& beams) { return cmsBoostVec(beams.first, beams.second); } /// Get the Lorentz boost to the beam centre-of-mass system (CMS) from a pair of beam momenta FourMomentum acmsBoostVec(const FourMomentum& pa, const FourMomentum& pb); /// Get the Lorentz boost to the beam centre-of-mass system (CMS) from a pair of Particles FourMomentum acmsBoostVec(const ParticlePair& beams); /// Get the Lorentz boost to the beam centre-of-mass system (CMS) from a pair of beam momenta Vector3 cmsBetaVec(const FourMomentum& pa, const FourMomentum& pb); /// Get the Lorentz boost to the beam centre-of-mass system (CMS) from a pair of Particles inline Vector3 cmsBetaVec(const ParticlePair& beams) { return cmsBetaVec(beams.first, beams.second); } /// Get the Lorentz boost to the per-nucleon beam centre-of-mass system (ACMS) from a pair of beam momenta /// @note Uses a nominal nucleon mass of 0.939 GeV to convert masses to A Vector3 acmsBetaVec(const FourMomentum& pa, const FourMomentum& pb); /// Get the Lorentz boost to the per-nucleon beam centre-of-mass system (ACMS) from a pair of Particles /// @note Uses the sum of nuclear mass numbers A for each beam Vector3 acmsBetaVec(const ParticlePair& beams); /// Get the Lorentz boost to the beam centre-of-mass system (CMS) from a pair of beam momenta Vector3 cmsGammaVec(const FourMomentum& pa, const FourMomentum& pb); /// Get the Lorentz boost to the beam centre-of-mass system (CMS) from a pair of Particles inline Vector3 cmsGammaVec(const ParticlePair& beams) { return cmsGammaVec(beams.first, beams.second); } /// Get the Lorentz boost to the per-nucleon beam centre-of-mass system (ACMS) from a pair of beam momenta /// @note Uses a nominal nucleon mass of 0.939 GeV to convert masses to A Vector3 acmsGammaVec(const FourMomentum& pa, const FourMomentum& pb); /// Get the Lorentz boost to the per-nucleon beam centre-of-mass system (ACMS) from a pair of Particles /// @note Uses the sum of nuclear mass numbers A for each beam Vector3 acmsGammaVec(const ParticlePair& beams); /// Get the Lorentz transformation to the beam centre-of-mass system (CMS) from a pair of beam momenta LorentzTransform cmsTransform(const FourMomentum& pa, const FourMomentum& pb); /// Get the Lorentz transformation to the beam centre-of-mass system (CMS) from a pair of Particles inline LorentzTransform cmsTransform(const ParticlePair& beams) { return cmsTransform(beams.first, beams.second); } /// Get the Lorentz transformation to the per-nucleon beam centre-of-mass system (CMS) from a pair of beam momenta /// @note Uses a nominal nucleon mass of 0.939 GeV to convert masses to A LorentzTransform acmsTransform(const FourMomentum& pa, const FourMomentum& pb); /// Get the Lorentz transformation to the per-nucleon beam centre-of-mass system (CMS) from a pair of Particles /// @note Uses the sum of nuclear mass numbers A for each beam LorentzTransform acmsTransform(const ParticlePair& beams); //@} /// @brief Project out the incoming beams class Beam : public Projection { public: /// Default (and only) constructor Beam() { setName("Beam"); } /// Clone on the heap DEFAULT_RIVET_PROJ_CLONE(Beam); /// @name Beam particles and kinematics //@{ /// The pair of beam particles in the current collision const ParticlePair& beams() const { return _theBeams; } /// The pair of beam particle PDG codes in the current collision /// @deprecated Use pids(beams()) PdgIdPair beamIds() const { return pids(beams()); } /// Get centre of mass energy, \f$ \sqrt{s} \f$ double sqrtS() const { return Rivet::sqrtS(beams()); } /// Get the Lorentz boost to the beam centre-of-mass FourMomentum cmsBoostVec() const { return Rivet::cmsBoostVec(beams()); } /// Get the Lorentz transform to the beam centre-of-mass LorentzTransform cmsTransform() const { return Rivet::cmsTransform(beams()); } /// Get the beta factor vector for the Lorentz boost to the beam centre-of-mass Vector3 cmsBetaVec() const { return Rivet::cmsBetaVec(beams()); } /// Get the gamma factor vector for the Lorentz boost to the beam centre-of-mass Vector3 cmsGammaVec() const { return Rivet::cmsGammaVec(beams()); } //@} /// @name Per-nucleon beam kinematics //@{ /// Get per-nucleon centre of mass energy, \f$ \sqrt{s}/(A_1 + A_2) \f$ double asqrtS() const { return Rivet::asqrtS(beams()); } /// Get the Lorentz boost to the per-nucleon beam centre-of-mass Vector3 acmsBetaVec() const { return Rivet::acmsBetaVec(beams()); } /// Get the Lorentz boost to the per-nucleon beam centre-of-mass Vector3 acmsGammaVec() const { return Rivet::acmsGammaVec(beams()); } /// Get the Lorentz transform to the per-nucleon beam centre-of-mass LorentzTransform acmsTransform() const { return Rivet::acmsTransform(beams()); } //@} /// Get the beam interaction primary vertex (PV) position FourVector pv() const; /// Project on to the Event virtual void project(const Event& e); + protected: + + /// The beam particles in the current collision + ParticlePair _theBeams; + private: /// Compare with other projections -- it's always the same, since there are no params virtual int compare(const Projection&) const { return EQUIVALENT; } - /// The beam particles in the current collision - ParticlePair _theBeams; - }; } #endif diff --git a/include/Rivet/Projections/DISDiffHadron.hh b/include/Rivet/Projections/DISDiffHadron.hh new file mode 100644 --- /dev/null +++ b/include/Rivet/Projections/DISDiffHadron.hh @@ -0,0 +1,64 @@ +// -*- C++ -*- +#ifndef RIVET_DISDiffHadron_HH +#define RIVET_DISDiffHadron_HH + +#include "Rivet/Projections/Beam.hh" +#include "Rivet/Projections/HadronicFinalState.hh" +#include "Rivet/Particle.hh" +#include "Rivet/Event.hh" + +namespace Rivet { + + + /// @brief Get the incoming and outgoing hadron in a diffractive ep + /// event. + class DISDiffHadron : public Projection { + public: + + /// @name Constructors. + //@{ + + /// Default constructor. + DISDiffHadron() { + setName("DISDiffHadron"); + addProjection(Beam(), "Beam"); + addProjection(FinalState(), "FS"); + } + + /// Clone on the heap. + DEFAULT_RIVET_PROJ_CLONE(DISDiffHadron); + + //@} + + + protected: + + /// Perform the projection operation on the supplied event. + virtual void project(const Event& e); + + /// Compare with other projections. + virtual int compare(const Projection& p) const; + + + public: + + /// The incoming lepton + const Particle& in() const { return _incoming; } + + /// The outgoing lepton + const Particle& out() const { return _outgoing; } + + private: + + /// The incoming lepton + Particle _incoming; + + /// The outgoing lepton + Particle _outgoing; + + }; + +} + + +#endif diff --git a/include/Rivet/Projections/DISKinematics.hh b/include/Rivet/Projections/DISKinematics.hh --- a/include/Rivet/Projections/DISKinematics.hh +++ b/include/Rivet/Projections/DISKinematics.hh @@ -1,124 +1,126 @@ // -*- C++ -*- #ifndef RIVET_DISKinematics_HH #define RIVET_DISKinematics_HH #include "Rivet/Particle.hh" #include "Rivet/Event.hh" #include "Rivet/Projection.hh" #include "Rivet/Projections/DISLepton.hh" #include "Rivet/Projections/Beam.hh" namespace Rivet { /// @brief Get the DIS kinematic variables and relevant boosts for an event. class DISKinematics : public Projection { public: /// The default constructor. - DISKinematics() + DISKinematics(const DISLepton & lepton = DISLepton(), + const std::map & opts = + std::map()) : _theQ2(-1.0), _theW2(-1.0), _theX(-1.0), _theY(-1.0), _theS(-1.0) { setName("DISKinematics"); //addPdgIdPair(ANY, hadid); addProjection(Beam(), "Beam"); - addProjection(DISLepton(), "Lepton"); + addProjection(lepton, "Lepton"); } /// Clone on the heap. DEFAULT_RIVET_PROJ_CLONE(DISKinematics); protected: /// Perform the projection operation on the supplied event. virtual void project(const Event& e); /// Compare with other projections. virtual int compare(const Projection& p) const; public: /// The \f$Q^2\f$. double Q2() const { return _theQ2; } /// The \f$W^2\f$. double W2() const { return _theW2; } /// The Bjorken \f$x\f$. double x() const { return _theX; } /// The inelasticity \f$y\f$ double y() const { return _theY; } /// The centre of mass energy \f$s\f$ double s() const { return _theS; } /// The LorentzRotation needed to boost a particle to the hadronic CM frame. const LorentzTransform& boostHCM() const { return _hcm; } /// The LorentzRotation needed to boost a particle to the hadronic Breit frame. const LorentzTransform& boostBreit() const { return _breit; } /// The incoming hadron beam particle const Particle& beamHadron() const { return _inHadron; } /// The incoming lepton beam particle const Particle& beamLepton() const { return _inLepton; } /// The scattered DIS lepton const Particle& scatteredLepton() const { return _outLepton; } /// @brief 1/-1 multiplier indicating (respectively) whether the event has conventional orientation or not /// /// Conventional DIS orientation has the hadron travelling in the +z direction const int orientation() const { return sign(_inHadron.pz()); } private: /// The \f$Q^2\f$. double _theQ2; /// The \f$W^2\f$. double _theW2; /// The Bjorken \f$x\f$. double _theX; /// The Inelasticity \f$y\f$ double _theY; /// The centre of mass energy \f$s\f$ double _theS; /// Incoming and outgoing DIS particles Particle _inHadron, _inLepton, _outLepton; /// The LorentzRotation needed to boost a particle to the hadronic CM frame. LorentzTransform _hcm; /// The LorentzRotation needed to boost a particle to the hadronic Breit frame. LorentzTransform _breit; }; } #endif diff --git a/include/Rivet/Projections/DISLepton.hh b/include/Rivet/Projections/DISLepton.hh --- a/include/Rivet/Projections/DISLepton.hh +++ b/include/Rivet/Projections/DISLepton.hh @@ -1,69 +1,138 @@ // -*- C++ -*- #ifndef RIVET_DISLepton_HH #define RIVET_DISLepton_HH #include "Rivet/Projections/Beam.hh" #include "Rivet/Projections/PromptFinalState.hh" +#include "Rivet/Projections/HadronicFinalState.hh" +#include "Rivet/Projections/DressedLeptons.hh" +#include "Rivet/Projections/UndressBeamLeptons.hh" #include "Rivet/Particle.hh" #include "Rivet/Event.hh" namespace Rivet { /// @brief Get the incoming and outgoing leptons in a DIS event. class DISLepton : public Projection { public: + /// Enum to enable different orderings for selecting scattered + /// leptons in case several were found. + enum SortOrder { ENERGY, ETA, ET }; + /// @name Constructors. //@{ - DISLepton(){ + /// Default constructor taking general options. The recognised + /// options are: LMODE, taking the options "prompt", "any" and + /// "dressed"; DressedDR giving a delta-R cone radius where photon + /// momenta are added to the lepton candidates for LMODE=dresses; + /// IsolDR giving a cone in delta-R where no hadrons are allowed + /// around a lepton candidate; and Undress giving a cone around + /// the incoming incoming beam in which photons are considered + /// initial state rafiation for which the momentum is subtracted + /// from the beam momentum. + DISLepton(const std::map & opts = + std::map()) + : _isolDR(0.0), _sort(ENERGY) { setName("DISLepton"); - addProjection(Beam(), "Beam"); - addProjection(PromptFinalState(), "FS"); + addProjection(HadronicFinalState(), "IFS"); + + auto sorting = opts.find("LSort"); + if ( sorting != opts.end() && sorting->second == "ETA" ) + _sort = ETA; + else if ( sorting != opts.end() && sorting->second == "ET" ) + _sort = ET; + + double undresstheta = 0.0; + auto undress = opts.find("Undress"); + if ( undress != opts.end() ) + undresstheta = std::stod(undress->second); + if ( undresstheta > 0.0 ) + addProjection(UndressBeamLeptons(undresstheta), "Beam"); + else + addProjection(Beam(), "Beam"); + + auto isol = opts.find("IsolDR"); + if ( isol != opts.end() ) _isolDR = std::stod(isol->second); + + double dressdr = 0.0; + auto dress = opts.find("DressDR"); + if ( dress != opts.end() ) + dressdr = std::stod(dress->second); + + auto lmode = opts.find("LMode"); + if ( lmode != opts.end() && lmode->second == "any" ) + addProjection(FinalState(), "LFS"); + else if ( lmode != opts.end() && lmode->second == "dressed" ) + addProjection(DressedLeptons(dressdr), "LFS"); + else + addProjection(PromptFinalState(), "LFS"); } + /// Constructor taking the following arguments: a final state + /// projection defining which lepton candidates to consider; a + /// beam projection detining the momenta of the incoming lepton + /// beam, and a final state projection defining the particles not + /// allowed witin a delta-R of @a isolationcut of a lepton + /// candidate. + DISLepton(const FinalState & leptoncandidates, + const Beam & beamproj = Beam(), + const FinalState & isolationfs = FinalState(), + double isolationcut = 0.0, SortOrder sorting = ENERGY) + : _isolDR(isolationcut), _sort(sorting) { + addProjection(leptoncandidates, "LFS"); + addProjection(isolationfs, "IFS"); + addProjection(beamproj, "Beam"); + } + + + /// Clone on the heap. DEFAULT_RIVET_PROJ_CLONE(DISLepton); //@} protected: /// Perform the projection operation on the supplied event. virtual void project(const Event& e); /// Compare with other projections. virtual int compare(const Projection& p) const; public: /// The incoming lepton const Particle& in() const { return _incoming; } /// The outgoing lepton const Particle& out() const { return _outgoing; } /// Sign of the incoming lepton pz component int pzSign() const { return sign(_incoming.pz()); } private: /// The incoming lepton Particle _incoming; /// The outgoing lepton Particle _outgoing; - // /// The charge sign of the DIS current - // double _charge; + /// If larger than zerp an isolation cut around the lepton is required. + double _isolDR; + + /// How to sort leptons + SortOrder _sort; }; } #endif diff --git a/include/Rivet/Projections/DISRapidityGap.hh b/include/Rivet/Projections/DISRapidityGap.hh new file mode 100644 --- /dev/null +++ b/include/Rivet/Projections/DISRapidityGap.hh @@ -0,0 +1,94 @@ +// -*- C++ -*- +#ifndef RIVET_DISRapidityGap_HH +#define RIVET_DISRapidityGap_HH + +#include "Rivet/Projections/DISKinematics.hh" +#include "Rivet/Projections/DISFinalState.hh" +#include "Rivet/Particle.hh" +#include "Rivet/Event.hh" + +namespace Rivet { + + + /// @brief Get the incoming and outgoing hadron in a diffractive ep + /// event. + class DISRapidityGap : public Projection { + + public: + + /// Type of DIS boost to apply + enum Frame { HCM, LAB, XCM }; + + DISRapidityGap() { + setName("DISRapidityGap"); + addProjection(DISKinematics(), "DISKIN"); + addProjection(DISFinalState(DISFinalState::HCM), "DISFS"); + } + + DEFAULT_RIVET_PROJ_CLONE(DISRapidityGap); + + const double M2X() const {return _M2X;} + const double M2Y() const {return _M2Y;} + const double t() const {return _t;} + const double gap() const {return _gap;} + const double gapUpp() const {return _gapUpp;} + const double gapLow() const {return _gapLow;} + const double EpPzX(Frame f) const { + if (f == LAB) return _ePpzX_LAB; + else if (f == XCM) return _ePpzX_XCM; + else return _ePpzX_HCM; + } + const double EmPzX(Frame f) const { + if (f == LAB) return _eMpzX_LAB; + else if (f == XCM) return _eMpzX_XCM; + else return _eMpzX_HCM; + } + const FourMomentum pX(Frame f) const { + if (f == LAB) return _momX_LAB; + else if (f == XCM) return _momX_XCM; + else return _momX_HCM; + } + const FourMomentum pY(Frame f) const { + if (f == LAB) return _momY_LAB; + else if (f == XCM) return _momY_XCM; + else return _momY_HCM; + } + const Particles& systemX(Frame f) const { + if (f == LAB) return _pX_LAB; + else if (f == XCM) return _pX_XCM; + else return _pX_HCM; + } + const Particles& systemY(Frame f) const { + if (f == LAB) return _pY_LAB; + else if (f == XCM) return _pY_XCM; + else return _pY_HCM; + } + + protected: + + virtual int compare(const Projection& p) const; + + virtual void project(const Event& e); + + void clearAll(); + + void findgap(const Particles& particles, const DISKinematics& diskin); + + private: + + double _M2X, _M2Y, _t; + double _gap, _gapUpp, _gapLow; + double _ePpzX_LAB, _eMpzX_LAB; + double _ePpzX_HCM, _eMpzX_HCM; + double _ePpzX_XCM, _eMpzX_XCM; + FourMomentum _momX_HCM, _momY_HCM; + FourMomentum _momX_LAB, _momY_LAB; + FourMomentum _momX_XCM, _momY_XCM; + Particles _pX_HCM, _pY_HCM, _pX_LAB, _pY_LAB, _pX_XCM, _pY_XCM; + + }; + +} + + +#endif diff --git a/include/Rivet/Projections/FinalStates.hh b/include/Rivet/Projections/FinalStates.hh --- a/include/Rivet/Projections/FinalStates.hh +++ b/include/Rivet/Projections/FinalStates.hh @@ -1,17 +1,16 @@ // -*- C++ -*- #ifndef RIVET_FinalStates_HH #define RIVET_FinalStates_HH /// @file FinalStates.hh Convenience include of all FinalState projection headers #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/ChargedFinalState.hh" #include "Rivet/Projections/NeutralFinalState.hh" #include "Rivet/Projections/IdentifiedFinalState.hh" #include "Rivet/Projections/VetoedFinalState.hh" #include "Rivet/Projections/PromptFinalState.hh" #include "Rivet/Projections/NonPromptFinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" #include "Rivet/Projections/VisibleFinalState.hh" #endif diff --git a/include/Rivet/Projections/HeavyHadrons.hh b/include/Rivet/Projections/HeavyHadrons.hh --- a/include/Rivet/Projections/HeavyHadrons.hh +++ b/include/Rivet/Projections/HeavyHadrons.hh @@ -1,112 +1,112 @@ // -*- C++ -*- #ifndef RIVET_HeavyHadrons_HH #define RIVET_HeavyHadrons_HH #include "Rivet/Projections/FinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" #include "Rivet/Particle.hh" #include "Rivet/Event.hh" namespace Rivet { /// @brief Project out the last pre-decay b and c hadrons. /// /// This currently defines a c-hadron as one which contains a @a c quark and /// @a{not} a @a b quark. /// /// @todo This assumes that the heavy hadrons are unstable... should we also look for stable ones in case the decays are disabled? class HeavyHadrons : public FinalState { public: /// @name Constructors and destructors. //@{ /// Constructor with specification of the minimum and maximum pseudorapidity /// \f$ \eta \f$ and the min \f$ p_T \f$ (in GeV). HeavyHadrons(const Cut& c=Cuts::open()) { setName("HeavyHadrons"); - addProjection(UnstableFinalState(c), "UFS"); + addProjection(UnstableParticles(c), "UFS"); } /// Clone on the heap. DEFAULT_RIVET_PROJ_CLONE(HeavyHadrons); //@} /// @name b hadron accessors //@{ /// Get all weakly decaying b hadrons (return by reference) const Particles& bHadrons() const { return _theBs; } /// Get weakly decaying b hadrons with a Cut applied (return by value) Particles bHadrons(const Cut& c) const { return filter_select(bHadrons(), c); } /// Get weakly decaying b hadrons with a pTmin cut (return by value) /// @deprecated Prefer bHadrons(Cuts::pT > x) Particles bHadrons(double ptmin) const { return bHadrons(Cuts::pT > ptmin); } /// Get weakly decaying b hadrons with a general filter function applied (return by value) Particles bHadrons(const ParticleSelector& s) const { return filter_select(bHadrons(), s); } //@} /// @name b hadron accessors //@{ /// Get all weakly decaying c hadrons (return by reference) const Particles& cHadrons() const { return _theCs; } /// Get weakly decaying c hadrons with a Cut applied (return by value) Particles cHadrons(const Cut& c) const { return filter_select(cHadrons(), c); } /// Get weakly decaying c hadrons with a pTmin cut (return by value) /// @deprecated Prefer cHadrons(Cuts::pT > x) Particles cHadrons(double ptmin) const { return cHadrons(Cuts::pT > ptmin); } /// Get weakly decaying c hadrons with a general filter function applied (return by value) Particles cHadrons(const ParticleSelector& s) const { return filter_select(cHadrons(), s); } //@} protected: /// Apply the projection to the event. virtual void project(const Event& e); /// Compare projections (only difference is in UFS definition) virtual int compare(const Projection& p) const { return mkNamedPCmp(p, "UFS"); } /// b and c hadron containers Particles _theBs, _theCs; }; } #endif diff --git a/include/Rivet/Projections/PrimaryHadrons.hh b/include/Rivet/Projections/PrimaryHadrons.hh --- a/include/Rivet/Projections/PrimaryHadrons.hh +++ b/include/Rivet/Projections/PrimaryHadrons.hh @@ -1,55 +1,55 @@ // -*- C++ -*- #ifndef RIVET_PrimaryHadrons_HH #define RIVET_PrimaryHadrons_HH #include "Rivet/Projections/FinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" #include "Rivet/Particle.hh" #include "Rivet/Event.hh" namespace Rivet { /// @brief Project out the first hadrons from hadronisation. /// /// @todo Also be able to return taus? Prefer a separate tau finder. /// @todo This assumes that the primary hadrons are unstable... should we also look for stable primary hadrons? class PrimaryHadrons : public FinalState { public: /// @name Constructors and destructors. //@{ /// Constructor with cuts argument PrimaryHadrons(const Cut& c=Cuts::open()) { setName("PrimaryHadrons"); - addProjection(UnstableFinalState(c), "UFS"); + addProjection(UnstableParticles(c), "UFS"); } /// Constructor with specification of the minimum and maximum pseudorapidity /// \f$ \eta \f$ and the min \f$ p_T \f$ (in GeV). PrimaryHadrons(double mineta, double maxeta, double minpt=0.0*GeV) { setName("PrimaryHadrons"); - addProjection(UnstableFinalState(Cuts::etaIn(mineta, maxeta) && Cuts::pT > minpt), "UFS"); + addProjection(UnstableParticles(Cuts::etaIn(mineta, maxeta) && Cuts::pT > minpt), "UFS"); } /// Clone on the heap. DEFAULT_RIVET_PROJ_CLONE(PrimaryHadrons); //@} /// Apply the projection to the event. virtual void project(const Event& e); // /// Compare projections. // int compare(const Projection& p) const; }; } #endif diff --git a/include/Rivet/Projections/TauFinder.hh b/include/Rivet/Projections/TauFinder.hh --- a/include/Rivet/Projections/TauFinder.hh +++ b/include/Rivet/Projections/TauFinder.hh @@ -1,67 +1,67 @@ #ifndef RIVET_TauFinder_HH #define RIVET_TauFinder_HH #include "Rivet/Projections/FinalState.hh" -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief Convenience finder of unstable taus /// /// @todo Convert to a general ParticleFinder, since it's not a true final state? Needs some care... class TauFinder : public FinalState { public: enum DecayType { ANY=0, LEPTONIC=1, HADRONIC }; static bool isHadronic(const Particle& tau) { assert(tau.abspid() == PID::TAU); return any(tau.stableDescendants(), isHadron); } static bool isLeptonic(const Particle& tau) { return !isHadronic(tau); } TauFinder(DecayType decaytype, const Cut& cut=Cuts::open()) { /// @todo What about directness/promptness? setName("TauFinder"); _dectype = decaytype; - addProjection(UnstableFinalState(cut), "UFS"); + addProjection(UnstableParticles(cut), "UFS"); } /// Clone on the heap. DEFAULT_RIVET_PROJ_CLONE(TauFinder); const Particles& taus() const { return _theParticles; } protected: /// Apply the projection on the supplied event. void project(const Event& e); /// Compare with other projections. virtual int compare(const Projection& p) const; private: /// The decaytype enum DecayType _dectype; }; /// @todo Make this the canonical name in future using Taus = TauFinder; } #endif diff --git a/include/Rivet/Projections/UndressBeamLeptons.hh b/include/Rivet/Projections/UndressBeamLeptons.hh new file mode 100644 --- /dev/null +++ b/include/Rivet/Projections/UndressBeamLeptons.hh @@ -0,0 +1,46 @@ +// -*- C++ -*- +#ifndef RIVET_UndressBeamLeptons_HH +#define RIVET_UndressBeamLeptons_HH + +#include "Rivet/Projections/Beam.hh" +#include "Rivet/Projections/FinalState.hh" + +namespace Rivet { + + + /// @brief Project out the incoming beams, but subtract any colinear + /// photons from lepton beams within a given cone. + class UndressBeamLeptons : public Beam { + public: + + /// Default (and only) constructor. Takes an angle as + /// argument. The momentum of any photon within This angle wrt. a + /// charged lepton beam will be subtracted from the beam lepton + /// momentum. + UndressBeamLeptons(double theta = 0.0): _thetamax(theta) { + setName("UndressBeamLeptons"); + addProjection(FinalState(), "FS"); + } + + /// Clone on the heap + DEFAULT_RIVET_PROJ_CLONE(UndressBeamLeptons); + + + /// Project on to the Event + virtual void project(const Event& e); + + + private: + + /// Compare with other projections. + virtual int compare(const Projection & p) const; + + /// The beam particles in the current collision + double _thetamax; + + }; + + +} + +#endif diff --git a/include/Rivet/Projections/UnstableFinalState.hh b/include/Rivet/Projections/UnstableFinalState.hh --- a/include/Rivet/Projections/UnstableFinalState.hh +++ b/include/Rivet/Projections/UnstableFinalState.hh @@ -1,59 +1,8 @@ // -*- C++ -*- #ifndef RIVET_UnstableFinalState_HH #define RIVET_UnstableFinalState_HH -#include "Rivet/Projections/FinalState.hh" - -namespace Rivet { - - - /// @brief Project out all physical-but-decayed particles in an event. - /// - /// The particles returned by are unique unstable particles, such as hadrons - /// which are decayed by the generator. If, for example, you set Ks and Lambda - /// particles stable in the generator, they will not be returned. Also, you - /// should be aware that all unstable particles in a decay chain are returned: - /// if you are looking for something like the number of B hadrons in an event - /// and there is a decay chain from e.g. B** -> B, you will count both B - /// mesons unless you are careful to check for ancestor/descendent relations - /// between the particles. Duplicate particles in the event record, i.e. those - /// which differ only in bookkeeping details or photon emissions, are stripped - /// from the returned particles collection. - /// - /// @todo Rename header, with fallback - /// @todo Convert to a general ParticleFinder since this is explicitly not a final state... but needs care - /// @todo Make TauFinder inherit/use - class UnstableParticles : public FinalState { - public: - - /// @name Standard constructors and destructors. - //@{ - - /// Cut-based / default constructor - UnstableParticles(const Cut& c=Cuts::open()) - : FinalState(c) - { - setName("UnstableParticles"); - } - - /// Clone on the heap. - DEFAULT_RIVET_PROJ_CLONE(UnstableParticles); - - //@} - - protected: - - /// Apply the projection to the event. - virtual void project(const Event& e); - - }; - - - // Backward compatibility alias - using UnstableFinalState = UnstableParticles; - - -} - +#include "Rivet/Projections/UnstableParticles.hh" +#pragma message "UnstableFinalState.hh is deprecated. Please use UnstableParticles.hh instead" #endif diff --git a/include/Rivet/Projections/UnstableParticles.hh b/include/Rivet/Projections/UnstableParticles.hh new file mode 100644 --- /dev/null +++ b/include/Rivet/Projections/UnstableParticles.hh @@ -0,0 +1,58 @@ +// -*- C++ -*- +#ifndef RIVET_UnstableParticles_HH +#define RIVET_UnstableParticles_HH + +#include "Rivet/Projections/FinalState.hh" + +namespace Rivet { + + + /// @brief Project out all physical-but-decayed particles in an event. + /// + /// The particles returned by are unique unstable particles, such as hadrons + /// which are decayed by the generator. If, for example, you set Ks and Lambda + /// particles stable in the generator, they will not be returned. Also, you + /// should be aware that all unstable particles in a decay chain are returned: + /// if you are looking for something like the number of B hadrons in an event + /// and there is a decay chain from e.g. B** -> B, you will count both B + /// mesons unless you are careful to check for ancestor/descendent relations + /// between the particles. Duplicate particles in the event record, i.e. those + /// which differ only in bookkeeping details or photon emissions, are stripped + /// from the returned particles collection. + /// + /// @todo Convert to a general ParticleFinder since this is explicitly not a final state... but needs care + /// @todo Add a FIRST/LAST/ANY enum to specify the mode for uniquifying replica chains (default = LAST) + class UnstableParticles : public FinalState { + public: + + /// @name Standard constructors and destructors. + //@{ + + /// Cut-based / default constructor + UnstableParticles(const Cut& c=Cuts::open()) + : FinalState(c) + { + setName("UnstableParticles"); + } + + /// Clone on the heap. + DEFAULT_RIVET_PROJ_CLONE(UnstableParticles); + + //@} + + protected: + + /// Apply the projection to the event. + virtual void project(const Event& e); + + }; + + + // Backward compatibility alias + using UnstableFinalState = UnstableParticles; + + +} + + +#endif diff --git a/src/Core/Projection.cc b/src/Core/Projection.cc --- a/src/Core/Projection.cc +++ b/src/Core/Projection.cc @@ -1,60 +1,60 @@ // -*- C++ -*- #include "Rivet/Event.hh" #include "Rivet/Projection.hh" #include "Rivet/Tools/Logging.hh" #include "Rivet/Tools/BeamConstraint.hh" #include "Rivet/Tools/Cmp.hh" namespace Rivet { Projection::Projection() - : _name("BaseProjection") + : _name("BaseProjection"), _isValid(true) { addPdgIdPair(PID::ANY, PID::ANY); } Projection:: ~Projection() { } Projection& Projection::operator = (const Projection&) { return *this; } bool Projection::before(const Projection& p) const { const std::type_info& thisid = typeid(*this); const std::type_info& otherid = typeid(p); if (thisid == otherid) { const bool cmp = compare(p) < 0; MSG_TRACE("Comparing projections of same RTTI type: " << this << " < " << &p << " = " << cmp); return cmp; } else { const bool cmp = thisid.before(otherid); MSG_TRACE("Ordering projections of different RTTI type: " << this << " < " << &p << " = " << cmp); return cmp; } } const set Projection::beamPairs() const { set ret = _beamPairs; set projs = getProjections(); for (set::const_iterator ip = projs.begin(); ip != projs.end(); ++ip) { ConstProjectionPtr p = *ip; getLog() << Log::TRACE << "Proj addr = " << p << endl; if (p) ret = intersection(ret, p->beamPairs()); } return ret; } Cmp Projection::mkNamedPCmp(const Projection& otherparent, const string& pname) const { return pcmp(*this, otherparent, pname); } Cmp Projection::mkPCmp(const Projection& otherparent, const string& pname) const { return pcmp(*this, otherparent, pname); } } diff --git a/src/Projections/CentralEtHCM.cc b/src/Projections/CentralEtHCM.cc --- a/src/Projections/CentralEtHCM.cc +++ b/src/Projections/CentralEtHCM.cc @@ -1,17 +1,21 @@ // -*- C++ -*- #include "Rivet/Projections/CentralEtHCM.hh" namespace Rivet { void CentralEtHCM::project(const Event& e) { const DISFinalState& fs = applyProjection(e, "FS"); + if ( fs.failed() ) { + fail(); + return; + } _sumet = 0.0; for (const Particle& p : fs.particles()) { /// @todo Generalise rapidity cut value if (fabs(p.rapidity()) < 0.5) _sumet += p.Et(); } } } diff --git a/src/Projections/DISDiffHadron.cc b/src/Projections/DISDiffHadron.cc new file mode 100644 --- /dev/null +++ b/src/Projections/DISDiffHadron.cc @@ -0,0 +1,49 @@ +// -*- C++ -*- +#include "Rivet/Projections/DISDiffHadron.hh" + +namespace Rivet { + + + int DISDiffHadron::compare(const Projection& p) const { + return mkNamedPCmp(p, "Beam") || mkNamedPCmp(p, "FS"); + } + + + void DISDiffHadron::project(const Event& e) { + + // Find incoming lepton beam + const ParticlePair& inc = applyProjection(e, "Beam").beams(); + bool firstIsHadron = PID::isHadron(inc.first.pid()); + bool secondIsHadron = PID::isHadron(inc.second.pid()); + if (firstIsHadron && !secondIsHadron) { + _incoming = inc.first; + } else if (!firstIsHadron && secondIsHadron) { + _incoming = inc.second; + } else { + fail(); + return; + } + + const FinalState & fs = applyProjection(e, "FS"); + Particles fshadrons; + if ( _incoming.momentum().pz() >= 0.0 ) + fshadrons = fs.particles(isHadron, cmpMomByDescEta); + else + fshadrons = fs.particles(isHadron, cmpMomByEta); + + Particles sfhadrons = filter_select(fshadrons, + Cuts::pid == _incoming.pid()); + MSG_DEBUG("SF hadrons = " << sfhadrons.size() << + ", all hadrons = " << fshadrons.size()); + if (!sfhadrons.empty()) { + _outgoing = sfhadrons.front(); + } else if (!fshadrons.empty()) { + _outgoing = fshadrons.front(); + } else { + fail(); + } + + } + + +} diff --git a/src/Projections/DISFinalState.cc b/src/Projections/DISFinalState.cc --- a/src/Projections/DISFinalState.cc +++ b/src/Projections/DISFinalState.cc @@ -1,33 +1,41 @@ // -*- C++ -*- #include "Rivet/Projections/DISFinalState.hh" namespace Rivet { void DISFinalState::project(const Event& e) { const DISKinematics& diskin = apply(e, "Kinematics"); + if ( diskin.failed() ) { + fail(); + return; + } LorentzTransform hcmboost; //< Null boost = LAB frame by default if (_boosttype == HCM) hcmboost = diskin.boostHCM(); else if (_boosttype == BREIT) hcmboost = diskin.boostBreit(); const DISLepton& dislep = diskin.apply(e, "Lepton"); + if ( diskin.failed() ) { + fail(); + return; + } const FinalState& fs = apply(e, "FS"); // Fill the particle list with all particles _other_ than the DIS scattered // lepton, with momenta boosted into the appropriate frame. _theParticles.clear(); _theParticles.reserve(fs.particles().size()-1); const GenParticle* dislepGP = dislep.out().genParticle(); // const GenParticle* dislepIN = dislep.in().genParticle(); for (const Particle& p : fs.particles()) { ///< Ensure that we skip the DIS lepton Particle temp = p; if (_boosttype != LAB) temp.setMomentum(hcmboost.transform(temp.momentum())); if (p.genParticle() != dislepGP) _theParticles.push_back(temp); } } } diff --git a/src/Projections/DISKinematics.cc b/src/Projections/DISKinematics.cc --- a/src/Projections/DISKinematics.cc +++ b/src/Projections/DISKinematics.cc @@ -1,80 +1,85 @@ // -*- C++ -*- #include "Rivet/Projections/DISKinematics.hh" #include "Rivet/Math/Constants.hh" namespace Rivet { void DISKinematics::project(const Event& e) { // Find appropriate DIS leptons const DISLepton& dislep = applyProjection(e, "Lepton"); + if ( dislep.failed() ) { + fail(); + return; + } _outLepton = dislep.out(); // Identify beam hadron const ParticlePair& inc = applyProjection(e, "Beam").beams(); const bool firstIsHadron = PID::isHadron(inc.first.pid()); const bool secondIsHadron = PID::isHadron(inc.second.pid()); if (firstIsHadron && !secondIsHadron) { _inHadron = inc.first; _inLepton = dislep.in(); // inc.second; } else if (!firstIsHadron && secondIsHadron) { _inHadron = inc.second; _inLepton = dislep.in(); // inc.first; } else { - throw Error("DISKinematics could not find the correct beam hadron"); + fail(); + return; } // Get the DIS lepton and store some of its properties const FourMomentum pHad = _inHadron.momentum(); const FourMomentum pLepIn = _inLepton.momentum(); const FourMomentum pLepOut = _outLepton.momentum(); const FourMomentum pGamma = pLepIn - pLepOut; const FourMomentum tothad = pGamma + pHad; _theQ2 = -pGamma.mass2(); _theW2 = tothad.mass2(); _theX = Q2()/(2.0 * pGamma * pHad); _theY = (pGamma * pHad) / (pLepIn * pHad); _theS = invariant(pLepIn + pHad); // Calculate boost vector for boost into HCM-system LorentzTransform tmp; tmp.setBetaVec(-tothad.boostVector()); // Rotate so the photon is in x-z plane in HCM rest frame FourMomentum pGammaHCM = tmp.transform(pGamma); tmp.preMult(Matrix3(Vector3::mkZ(), -pGammaHCM.azimuthalAngle())); pGammaHCM = tmp.transform(pGamma); assert(isZero(dot(pGammaHCM.vector3(), Vector3::mkY()))); // Rotate so the photon is along the positive z-axis const double rot_angle = pGammaHCM.polarAngle() * (pGammaHCM.px() >= 0 ? -1 : 1); tmp.preMult(Matrix3(Vector3::mkY(), rot_angle)); // Check that final HCM photon lies along +ve z as expected pGammaHCM = tmp.transform(pGamma); assert(isZero(dot(pGammaHCM.vector3(), Vector3::mkX()), 1e-3)); assert(isZero(dot(pGammaHCM.vector3(), Vector3::mkY()), 1e-3)); assert(isZero(angle(pGammaHCM.vector3(), Vector3::mkZ()), 1e-3)); // Finally rotate so outgoing lepton at phi = 0 FourMomentum pLepOutHCM = tmp.transform(pLepOut); tmp.preMult(Matrix3(Vector3::mkZ(), -pLepOutHCM.azimuthalAngle())); assert(isZero(tmp.transform(pLepOut).azimuthalAngle())); _hcm = tmp; // Boost to Breit frame (use opposite convention for photon --- along *minus* z) tmp.preMult(Matrix3(Vector3::mkX(), PI)); const double bz = 1 - 2*x(); _breit = LorentzTransform::mkObjTransformFromBeta(Vector3::mkZ() * bz).combine(tmp); assert(isZero(angle(_breit.transform(pGamma).vector3(), -Vector3::mkZ()), 1e-3)); assert(isZero(_breit.transform(pLepOut).azimuthalAngle(), 1e-3)); } int DISKinematics::compare(const Projection & p) const { const DISKinematics& other = pcast(p); return mkNamedPCmp(other, "Lepton"); } } diff --git a/src/Projections/DISLepton.cc b/src/Projections/DISLepton.cc --- a/src/Projections/DISLepton.cc +++ b/src/Projections/DISLepton.cc @@ -1,74 +1,78 @@ // -*- C++ -*- #include "Rivet/Projections/DISLepton.hh" namespace Rivet { int DISLepton::compare(const Projection& p) const { const DISLepton& other = pcast(p); - return mkNamedPCmp(other, "Beam") || mkNamedPCmp(other, "FS"); + return mkNamedPCmp(other, "Beam") || mkNamedPCmp(other, "LFS") || + mkNamedPCmp(other, "IFS") || cmp(_sort, other._sort); } void DISLepton::project(const Event& e) { // Find incoming lepton beam const ParticlePair& inc = applyProjection(e, "Beam").beams(); bool firstIsLepton = PID::isLepton(inc.first.pid()); bool secondIsLepton = PID::isLepton(inc.second.pid()); if (firstIsLepton && !secondIsLepton) { _incoming = inc.first; } else if (!firstIsLepton && secondIsLepton) { _incoming = inc.second; } else { - throw Error("DISLepton could not find the correct beam"); + fail(); + return; } - // // Find outgoing scattered lepton via HepMC graph - // /// @todo Evidence that this doesn't work with Sherpa... FIX - // const GenParticle* current_l = _incoming.genParticle(); - // bool found_next_vertex = true; - // while (found_next_vertex) { - // found_next_vertex = false; - // if (!current_l->end_vertex()) break; - // // Get lists of outgoing particles consistent with a neutral (gamma/Z) or charged (W) DIS current - // /// @todo Avoid loops - // vector out_n, out_c; - // for (const GenParticle* pp : particles_out(current_l, HepMC::children)) { - // if (current_l->pdg_id() == pp->pdg_id()) out_n.push_back(pp); - // if (std::abs(std::abs(current_l->pdg_id()) - std::abs(pp->pdg_id())) == 1) out_c.push_back(pp); - // } - // if (out_n.empty() && out_c.empty()) { - // MSG_WARNING("No lepton in the new vertex"); - // break; - // } - // if (out_c.size() + out_n.size() > 1) { - // MSG_WARNING("More than one lepton in the new vertex"); - // break; - // } - // current_l = out_c.empty() ? out_n.front() : out_c.front(); - // found_next_vertex = true; - // } - // if (current_l != nullptr) { - // _outgoing = Particle(current_l); - // MSG_DEBUG("Found DIS lepton from event-record structure"); - // return; - // } + // If no graph-connected scattered lepton, use the hardest + // (preferably same-flavour) prompt FS lepton in the event. + const FinalState & fs = applyProjection(e, "LFS"); + Particles fsleptons; + if ( _sort == ET ) + fsleptons = fs.particles(isLepton, cmpMomByEt); + else if ( _sort == ETA && _incoming.momentum().pz() >= 0.0 ) + fsleptons = fs.particles(isLepton, cmpMomByDescEta); + else if ( _sort == ETA && _incoming.momentum().pz() < 0.0 ) + fsleptons = fs.particles(isLepton, cmpMomByEta); + else + fsleptons = fs.particles(isLepton, cmpMomByE); + + Particles sfleptons = + filter_select(fsleptons, Cuts::pid == _incoming.pid()); + MSG_DEBUG("SF leptons = " << sfleptons.size() << ", all leptons = " + << fsleptons.size()); + if ( sfleptons.empty() ) sfleptons = fsleptons; - // If no graph-connected scattered lepton, use the hardest (preferably same-flavour) prompt FS lepton in the event - /// @todo Specify the charged or neutral current being searched for in the DISLepton constructor/API, and remove the guesswork - const Particles fsleptons = applyProjection(e, "FS").particles(isLepton, cmpMomByE); - const Particles sfleptons = filter_select(fsleptons, Cuts::pid == _incoming.pid()); - MSG_DEBUG("SF leptons = " << sfleptons.size() << ", all leptons = " << fsleptons.size()); - if (!sfleptons.empty()) { + if ( _isolDR > 0.0 ) { + const Particles & other = + applyProjection(e, "IFS").particles(); + while (!sfleptons.empty()) { + bool skip = false; + Particle testlepton = sfleptons.front(); + for ( auto p: other ) { + if ( skip ) break; + if ( deltaR(p, testlepton) < _isolDR ) skip = true; + for ( auto c : testlepton.constituents() ) { + if ( c.genParticle() == p.genParticle() ) { + skip = false; + break; + } + } + } + if ( !skip ) break; + sfleptons.erase(sfleptons.begin()); + } + } + + if ( !sfleptons.empty() ) { _outgoing = sfleptons.front(); - } else if (!fsleptons.empty()) { - _outgoing = fsleptons.front(); } else { - throw Error("Could not find the scattered lepton"); + fail(); } } } diff --git a/src/Projections/DISRapidityGap.cc b/src/Projections/DISRapidityGap.cc new file mode 100644 --- /dev/null +++ b/src/Projections/DISRapidityGap.cc @@ -0,0 +1,154 @@ +// -*- C++ -*- +#include "Rivet/Projections/DISRapidityGap.hh" + +namespace Rivet { + + + int DISRapidityGap::compare(const Projection& p) const { + return mkNamedPCmp(p, "DISKIN") || mkNamedPCmp(p, "DISFS"); + } + + + void DISRapidityGap::project(const Event& e) { + const DISKinematics& dk = + apply(e, "DISKIN"); + const Particles& p = + apply(e, "DISFS").particles(cmpMomByEta); + findgap(p, dk); + } + + void DISRapidityGap::clearAll() { + _M2X = _M2Y = _t = _gap = 0.; + _gapUpp = _gapLow = -8.; + _ePpzX_HCM = _eMpzX_HCM =_ePpzX_LAB = + _eMpzX_LAB = _ePpzX_XCM = _eMpzX_XCM = 0.; + _momX_HCM.setPE(0., 0., 0., 0.); + _momY_HCM.setPE(0., 0., 0., 0.); + _momX_XCM.setPE(0., 0., 0., 0.); + _momY_XCM.setPE(0., 0., 0., 0.); + _momX_LAB.setPE(0., 0., 0., 0.); + _momY_LAB.setPE(0., 0., 0., 0.); + _pX_HCM.clear(); + _pY_HCM.clear(); + _pX_XCM.clear(); + _pY_XCM.clear(); + _pX_LAB.clear(); + _pY_LAB.clear(); + } + + void DISRapidityGap::findgap(const Particles& particles, + const DISKinematics& diskin) { + + clearAll(); + + // Begin by finding largest gap and gapedges between all final + // state particles in HCM frame. + int nP = particles.size(); + int dir = diskin.orientation(); + for (int i = 0; i < nP-1; ++i){ + double tmpGap = abs(particles[i+1].eta() - particles[i].eta()); + if (tmpGap > _gap) { + _gap = tmpGap; + _gapLow = (dir > 0) ? particles[i].eta() : dir * particles[i+1].eta(); + _gapUpp = (dir > 0) ? particles[i+1].eta() : dir * particles[i].eta(); + } + } + + // Define the two systems X and Y. + Particles tmp_pX, tmp_pY; + foreach (const Particle& ip, particles) { + if (dir * ip.eta() > _gapLow) tmp_pX.push_back(ip); + else tmp_pY.push_back(ip); + } + + Particles pX, pY; + pX = (dir < 0) ? tmp_pY : tmp_pX; + pY = (dir < 0) ? tmp_pX : tmp_pY; + + // Find variables related to HCM frame. + // Note that HCM has photon along +z, as opposed to + // H1 where proton is along +z. This results in a sign change + // as compared to H1 papers! + + // X - side + FourMomentum momX; + for (const Particle& jp : pX) { + momX += jp.momentum(); + _ePpzX_HCM += jp.E() - jp.pz(); // Sign + => - + _eMpzX_HCM += jp.E() + jp.pz(); // Sign - => + + } + _momX_HCM = momX; + _pX_HCM = pX; + _M2X = _momX_HCM.mass2(); + + // Y - side + FourMomentum momY; + for (const Particle& kp : pY) momY += kp.momentum(); + _momY_HCM = momY; + _pY_HCM = pY; + _M2Y = _momY_HCM.mass2(); + + // Find variables related to LAB frame + const LorentzTransform hcmboost = diskin.boostHCM(); + const LorentzTransform hcminverse = hcmboost.inverse(); + _momX_LAB = hcminverse.transform(_momX_HCM); + _momY_LAB = hcminverse.transform(_momY_HCM); + + // Find momenta in XCM frame. Note that it is HCM frame that is + // boosted, resulting in a sign change later! + const bool doXCM = (momX.betaVec().mod2() < 1.); + if (doXCM) { + const LorentzTransform xcmboost = + LorentzTransform::mkFrameTransformFromBeta(momX.betaVec()); + _momX_XCM = xcmboost.transform(momX); + _momY_XCM = xcmboost.transform(momY); + } + + for (const Particle& jp : pX) { + // Boost from HCM to LAB. + FourMomentum lab = hcminverse.transform(jp.momentum()); + _ePpzX_LAB += lab.E() + dir * lab.pz(); + _eMpzX_LAB += lab.E() - dir * lab.pz(); + Particle plab = jp; + plab.setMomentum(lab); + _pX_LAB.push_back(plab); + // Set XCM. Note that since HCM frame is boosted to XCM frame, + // we have a sign change + if (doXCM) { + const LorentzTransform xcmboost = + LorentzTransform::mkFrameTransformFromBeta(_momX_HCM.betaVec()); + FourMomentum xcm = xcmboost.transform(jp.momentum()); + _ePpzX_XCM += xcm.E() - xcm.pz(); // Sign + => - + _eMpzX_XCM += xcm.E() + xcm.pz(); // Sign - => + + Particle pxcm = jp; + pxcm.setMomentum(xcm); + _pX_XCM.push_back(pxcm); + } + } + + for ( const Particle& jp : pY ) { + // Boost from HCM to LAB + FourMomentum lab = hcminverse.transform(jp.momentum()); + Particle plab = jp; + plab.setMomentum(lab); + _pY_LAB.push_back(plab); + // Boost from HCM to XCM + if (doXCM) { + const LorentzTransform xcmboost = + LorentzTransform::mkFrameTransformFromBeta(_momX_HCM.betaVec()); + FourMomentum xcm = xcmboost.transform(jp.momentum()); + Particle pxcm = jp; + pxcm.setMomentum(xcm); + _pY_XCM.push_back(pxcm); + } + } + + // Find t: Currently can only handle gap on proton side. + // @TODO: Expand to also handle gap on photon side + // Boost p from LAB to HCM frame to find t. + FourMomentum proton = hcmboost.transform(diskin.beamHadron().momentum()); + FourMomentum pPom = proton - _momY_HCM; + _t = pPom * pPom; + + } +} diff --git a/src/Projections/Makefile.am b/src/Projections/Makefile.am --- a/src/Projections/Makefile.am +++ b/src/Projections/Makefile.am @@ -1,47 +1,50 @@ noinst_LTLIBRARIES = libRivetProjections.la libRivetProjections_la_SOURCES = \ Beam.cc \ BeamThrust.cc \ ChargedFinalState.cc \ ChargedLeptons.cc \ CentralEtHCM.cc \ + DISDiffHadron.cc \ DISFinalState.cc \ DISKinematics.cc \ DISLepton.cc \ + DISRapidityGap.cc \ DressedLeptons.cc \ FastJets.cc \ PxConePlugin.cc \ FinalPartons.cc \ FinalState.cc \ FParameter.cc \ HadronicFinalState.cc \ HeavyHadrons.cc \ Hemispheres.cc \ IdentifiedFinalState.cc \ InitialQuarks.cc \ InvMassFinalState.cc \ JetAlg.cc \ JetShape.cc \ LeadingParticlesFinalState.cc \ MergedFinalState.cc \ MissingMomentum.cc \ NeutralFinalState.cc \ NonHadronicFinalState.cc \ NonPromptFinalState.cc \ ParisiTensor.cc \ ParticleFinder.cc \ PrimaryHadrons.cc \ PrimaryParticles.cc \ PromptFinalState.cc \ Sphericity.cc \ Spherocity.cc \ TauFinder.cc \ Thrust.cc \ TriggerCDFRun0Run1.cc \ TriggerCDFRun2.cc \ TriggerUA5.cc \ UnstableFinalState.cc \ + UndressBeamLeptons.cc \ VetoedFinalState.cc \ VisibleFinalState.cc \ WFinder.cc \ ZFinder.cc diff --git a/src/Projections/TauFinder.cc b/src/Projections/TauFinder.cc --- a/src/Projections/TauFinder.cc +++ b/src/Projections/TauFinder.cc @@ -1,28 +1,27 @@ // -*- C++ -*- #include "Rivet/Projections/TauFinder.hh" -#include "Rivet/Projections/UnstableFinalState.hh" namespace Rivet { void TauFinder::project(const Event& e) { _theParticles.clear(); - const UnstableFinalState& ufs = applyProjection(e, "UFS"); + const auto& ufs = applyProjection(e, "UFS"); for (const Particle& p : ufs.particles()) { if (p.abspid() != PID::TAU) continue; if (_dectype == ANY || (_dectype == LEPTONIC && isLeptonic(p)) || (_dectype == HADRONIC && isHadronic(p)) ) _theParticles.push_back(p); } } int TauFinder::compare(const Projection& p) const { const PCmp fscmp = mkNamedPCmp(p, "UFS"); if (fscmp != EQUIVALENT) return fscmp; - const TauFinder& other = dynamic_cast(p); + const auto& other = dynamic_cast(p); return cmp(_dectype, other._dectype); } } diff --git a/src/Projections/UndressBeamLeptons.cc b/src/Projections/UndressBeamLeptons.cc new file mode 100644 --- /dev/null +++ b/src/Projections/UndressBeamLeptons.cc @@ -0,0 +1,36 @@ +// -*- C++ -*- +#include "Rivet/Projections/UndressBeamLeptons.hh" + +namespace Rivet { + + + int UndressBeamLeptons::compare(const Projection & p) const { + const UndressBeamLeptons & o = + dynamic_cast(p); + return cmp(_thetamax, o._thetamax) || mkNamedPCmp(o, "FS"); + } + + + void UndressBeamLeptons::project(const Event& e) { + Beam::project(e); + if ( _thetamax <= 0.0 ) return; + bool l1 = _theBeams.first.isChargedLepton(); + bool l2 = _theBeams.second.isChargedLepton(); + if ( !l1 && !l2 ) return; + FourMomentum b1 = _theBeams.first.momentum(); + FourMomentum b2 = _theBeams.second.momentum(); + Vector3 b10 = b1.vector3(); + Vector3 b20 = b2.vector3(); + for ( auto p : apply(e, "FS").particles() ) { + if ( p.pid() != PID::PHOTON ) continue; + if ( p.momentum().angle(b10) < _thetamax ) + b1 -= p.momentum(); + if ( p.momentum().angle(b20) < _thetamax ) + b2 -= p.momentum(); + } + _theBeams.first.setMomentum(b1); + _theBeams.second.setMomentum(b2); + } + + +} diff --git a/src/Projections/UnstableFinalState.cc b/src/Projections/UnstableFinalState.cc --- a/src/Projections/UnstableFinalState.cc +++ b/src/Projections/UnstableFinalState.cc @@ -1,74 +1,72 @@ // -*- C++ -*- -#include "Rivet/Projections/UnstableFinalState.hh" +#include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { - /// @todo Add a FIRST/LAST/ANY enum to specify the mode for uniquifying replica chains (default = LAST) - - - void UnstableFinalState::project(const Event& e) { + void UnstableParticles::project(const Event& e) { _theParticles.clear(); /// @todo Replace PID veto list with PID:: functions? vector vetoIds; vetoIds += 22; // status 2 photons don't count! vetoIds += 110; vetoIds += 990; vetoIds += 9990; // Reggeons - //vetoIds += 9902210; // something weird from PYTHIA6 for (const GenParticle* p : Rivet::particles(e.genEvent())) { + const Particle rp(p); const int st = p->status(); bool passed = (st == 1 || (st == 2 && !contains(vetoIds, abs(p->pdg_id())))) && !PID::isParton(p->pdg_id()) && ///< Always veto partons !p->is_beam() && // Filter beam particles - _cuts->accept(p->momentum()); + _cuts->accept(rp); // Avoid double counting by re-marking as unpassed if ID == (any) parent ID const GenVertex* pv = p->production_vertex(); // if (passed && pv) { // for (GenVertex::particles_in_const_iterator pp = pv->particles_in_const_begin(); pp != pv->particles_in_const_end(); ++pp) { // if (p->pdg_id() == (*pp)->pdg_id() && (*pp)->status() == 2) { // passed = false; // break; // } // } // } // + // Avoid double counting by re-marking as unpassed if ID == any child ID const GenVertex* dv = p->end_vertex(); if (passed && dv) { for (GenParticle* pp : particles_out(dv)) { if (p->pdg_id() == pp->pdg_id() && pp->status() == 2) { passed = false; break; } } } // Add to output particles collection - if (passed) _theParticles.push_back(Particle(*p)); + if (passed) _theParticles.push_back(rp); // Log parents and children if (getLog().isActive(Log::TRACE)) { MSG_TRACE("ID = " << p->pdg_id() << ", status = " << st << ", pT = " << p->momentum().perp() << ", eta = " << p->momentum().eta() << ": result = " << std::boolalpha << passed); if (pv) { for (GenVertex::particles_in_const_iterator pp = pv->particles_in_const_begin(); pp != pv->particles_in_const_end(); ++pp) { MSG_TRACE(" parent ID = " << (*pp)->pdg_id()); } } if (dv) { for (GenVertex::particles_out_const_iterator pp = dv->particles_out_const_begin(); pp != dv->particles_out_const_end(); ++pp) { MSG_TRACE(" child ID = " << (*pp)->pdg_id()); } } } } MSG_DEBUG("Number of unstable final-state particles = " << _theParticles.size()); } }