rivet is hosted by Hepforge, IPPP Durham

## Rivet analyses reference

### LHCB_2010_I867355

Measurement of $\sigma(pp \to b \bar{b} X$ at $\sqrt{s} = 7$ TeV in the forward region
Experiment: LHCb (LHC)
Inspire ID: 867355
Status: VALIDATED
Authors:
• Andy Buckley
• Sercan Sen
• Peter Skands
• Sheldon Stone
References:
Beams: p+ p+
Beam energies: (3500.0, 3500.0) GeV
Run details:
• $pp$ to $b$-hadron + $X$ at 7 TeV. i.e., switch on "HardQCD:gg2bbbar" and "HardQCD:qqbar2bbbar" flags in Pythia8.

The average cross-section to produce $b$-flavoured or $\bar{b}$-flavoured hadrons is measured in different pseudorapidity intervals over the entire range of p_\perp, assuming the LEP (and Tevatron) fractions for fragmentation into $b$-flavoured hadrons.

Source code: LHCB_2010_I867355.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 // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Particle.hh" namespace Rivet { class LHCB_2010_I867355 : public Analysis { public: LHCB_2010_I867355() : Analysis("LHCB_2010_I867355") { } void init() { //@ Results are presented for two different fragmentation functions, LEP and Tevatron. Therefore, we have two sets of histograms. _h_sigma_vs_eta_lep = bookHisto1D(1, 1, 1); _h_sigma_vs_eta_tvt = bookHisto1D(1, 1, 2); _h_sigma_total_lep = bookHisto1D(2, 1, 1); _h_sigma_total_tvt = bookHisto1D(2, 1, 2); } /// Perform the per-event analysis void analyze(const Event& event) { double weight = event.weight(); Particles bhadrons; foreach (const GenParticle* p, particles(event.genEvent())) { if (!( PID::isHadron( p->pdg_id() ) && PID::hasBottom( p->pdg_id() )) ) continue; const GenVertex* dv = p->end_vertex(); bool hasBdaughter = false; if ( PID::isHadron( p->pdg_id() ) && PID::hasBottom( p->pdg_id() )) { // selecting b-hadrons if (dv) { for (GenVertex::particles_out_const_iterator pp = dv->particles_out_const_begin() ; pp != dv->particles_out_const_end() ; ++pp) { if (PID::isHadron( (*pp)->pdg_id() ) && PID::hasBottom( (*pp)->pdg_id() )) { hasBdaughter = true; } } } } if (hasBdaughter) continue; // continue if the daughter is another b-hadron bhadrons += Particle(*p); } foreach (const Particle& particle, bhadrons) { // take fabs() to use full statistics and then multiply weight by 0.5 because LHCb is single-sided double eta = fabs(particle.eta()); _h_sigma_vs_eta_lep->fill( eta, 0.5*weight ); _h_sigma_vs_eta_tvt->fill( eta, 0.5*weight ); _h_sigma_total_lep->fill( eta, 0.5*weight ); // histogram for full kinematic range _h_sigma_total_tvt->fill( eta, 0.5*weight ); // histogram for full kinematic range } } void finalize() { double norm = crossSection()/microbarn/sumOfWeights(); double binwidth = 4.; // integrated over full rapidity space from 2 to 6. // to get the avergae of b and bbar, we scale with 0.5 scale(_h_sigma_vs_eta_lep, 0.5*norm); scale(_h_sigma_vs_eta_tvt, 0.5*norm); scale(_h_sigma_total_lep, 0.5*norm*binwidth); scale(_h_sigma_total_tvt, 0.5*norm*binwidth); } private: Histo1DPtr _h_sigma_total_lep; Histo1DPtr _h_sigma_total_tvt; Histo1DPtr _h_sigma_vs_eta_lep; Histo1DPtr _h_sigma_vs_eta_tvt; }; // Hook for the plugin system DECLARE_RIVET_PLUGIN(LHCB_2010_I867355); }