rivet is hosted by Hepforge, IPPP Durham

## Rivet analyses reference

### OPAL_2004_I648738

Quark and gluon jet fragmentation functions
Experiment: OPAL (LEP)
Inspire ID: 648738
Status: VALIDATED
Authors:
• Daniel Reichelt [d.reichelt@cern.ch]
References:
• Eur.Phys.J. C37 (2004) no.1, 25-47
• hep-ex/0404026
Beams: e+ e-
Beam energies: (6.4, 6.4); (13.4, 13.4); (24.0, 24.0); (45.6, 45.6); (46.5, 46.5); (48.5, 48.5); (98.5, 98.5) GeV
Run details:
• For quark fragmentation $e^+e^-\to q\bar{q}$ events are required, while for gluon fragmentation the fictonal $e^+e^-\to gg$ process is required.

Measurement of the fragmentation functions for quarks and gluons at LEP. Useful for studying the properties of gluon jets and the differences between quark and gluon jets. For the study of gluon jets the fictional $e^+e^-\to g g$ process must be used. The data in histograms labelled "hemisphere fragmentation" are measured from jets defined by hemispheres, with an energy scale defined by $E=\sqrt{s}/2$, while data in histograms named "durham fragmentation" are measured from jets defined by the durham algorithm with $Q_\mathrm{jet}=E_\mathrm{jet}\sin(\theta/2)$ as the energy scale. The rivet analysis defines the jet flavour from the initial quarks, as the data are corrected for impurities, and defines all jets as hemispheres with energy scale $E=\sqrt{s}/2$.

Source code: OPAL_2004_I648738.cc
  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/ChargedFinalState.hh" namespace Rivet { class OPAL_2004_I648738 : public Analysis { public: /// Constructor OPAL_2004_I648738() : Analysis("OPAL_2004_I648738"), _sumW(3,0.) { } /// @name Analysis methods //@{ void init() { declare(FinalState(), "FS"); declare(ChargedFinalState(), "CFS"); unsigned int ih=0; if (inRange(0.5*sqrtS()/GeV, 4.0, 9.0)) { ih = 1; } else if (inRange(0.5*sqrtS()/GeV, 9.0, 19.0)) { ih = 2; } else if (inRange(0.5*sqrtS()/GeV, 19.0, 30.0)) { ih = 3; } else if (inRange(0.5*sqrtS()/GeV, 45.5, 45.7)) { ih = 5; } else if (inRange(0.5*sqrtS()/GeV, 30.0, 70.0)) { ih = 4; } else if (inRange(0.5*sqrtS()/GeV, 91.5, 104.5)) { ih = 6; } assert(ih>0); // book the histograms _histo_xE.push_back(bookHisto1D(ih+5,1,1)); _histo_xE.push_back(bookHisto1D(ih+5,1,2)); if(ih<5) _histo_xE.push_back(bookHisto1D(ih+5,1,3)); } /// Perform the per-event analysis void analyze(const Event& event) { const double weight = event.weight(); // find the initial quarks/gluons ParticleVector initial; for (const GenParticle* p : Rivet::particles(event.genEvent())) { const GenVertex* pv = p->production_vertex(); const PdgId pid = abs(p->pdg_id()); if(!( (pid>=1&&pid<=5) || pid ==21) ) continue; bool passed = false; for (const GenParticle* pp : particles_in(pv)) { const PdgId ppid = abs(pp->pdg_id()); passed = (ppid == PID::ELECTRON || ppid == PID::HIGGS || ppid == PID::ZBOSON || ppid == PID::GAMMA); if(passed) break; } if(passed) initial.push_back(Particle(*p)); } if(initial.size()!=2) { vetoEvent; } // type of event unsigned int itype=2; if(initial[0].pdgId()==-initial[1].pdgId()) { PdgId pid = abs(initial[0].pdgId()); if(pid>=1&&pid<=4) itype=0; else itype=1; } assert(itype<_histo_xE.size()); // fill histograms _sumW[itype] += 2.*weight; const Particles& chps = applyProjection(event, "CFS").particles(); foreach(const Particle& p, chps) { double xE = 2.*p.E()/sqrtS(); _histo_xE[itype]->fill(xE, weight); } } /// Normalise histograms etc., after the run void finalize() { for(unsigned int ix=0;ix<_histo_xE.size();++ix) { if(_sumW[ix]>0.) scale(_histo_xE[ix],1./_sumW[ix]); } } //@} private: vector _sumW; /// @name Histograms //@{ vector _histo_xE; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(OPAL_2004_I648738); }