rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

ATLAS_2012_I1118269

$b$-hadron production cross-section using decays to $D^*\mu^-X$ at $\sqrt{s} = 7$\;TeV
Experiment: ATLAS (LHC)
Inspire ID: 1118269
Status: VALIDATED
Authors:
• Andy Buckley
• Sercan Sen
• Peter Skands
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.

Measurement of $b$-hadron production cross section using 3.3\;pb$^{-1}$ of integrated luminosity, collected during the 2010 LHC run. The $b$-hadrons are selected by partially reconstructing $D^{*}\mu^-X$ final states using only direct semileptonic decays of $b$ to $D^*\mu^-X$. Differential cross sections as functions of $p_\perp$ and $|\eta|$.

Source code: ATLAS_2012_I1118269.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 // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Particle.hh" namespace Rivet { class ATLAS_2012_I1118269 : public Analysis { public: ATLAS_2012_I1118269() : Analysis("ATLAS_2012_I1118269") { } void init() { book(_h_sigma_vs_pt ,1, 1, 1); book(_h_sigma_vs_eta ,2, 1, 1); } /// Perform the per-event analysis void analyze(const Event& event) { Particles bhadrons; for(ConstGenParticlePtr p: HepMCUtils::particles(event.genEvent())) { if (!( PID::isHadron( p->pdg_id() ) && PID::hasBottom( p->pdg_id() )) ) continue; ConstGenVertexPtr dv = p->end_vertex(); /// @todo In future, convert to use built-in 'last B hadron' function bool hasBdaughter = false; if ( PID::isHadron( p->pdg_id() ) && PID::hasBottom( p->pdg_id() )) { // b-hadron selection if (dv) { /// @todo particles_out_const_iterator is deprecated in HepMC3 for(ConstGenParticlePtr pp: HepMCUtils::particles(dv, Relatives::CHILDREN)){ if ( PID::isHadron( pp->pdg_id() ) && PID::hasBottom( pp->pdg_id()) ) { hasBdaughter = true; } } } } if (hasBdaughter) continue; bhadrons += Particle(*p); } for (const Particle& particle : bhadrons) { double eta = particle.eta(); double pt = particle.pT(); if (!(inRange(eta, -2.5, 2.5))) continue; if (pt < 9.*GeV) continue; _h_sigma_vs_pt->fill(pt); _h_sigma_vs_eta->fill(fabs(eta)); } } void finalize() { scale(_h_sigma_vs_pt, crossSection()/nanobarn/sumOfWeights()); scale(_h_sigma_vs_eta, crossSection()/microbarn/sumOfWeights()); } private: Histo1DPtr _h_sigma_vs_pt; Histo1DPtr _h_sigma_vs_eta; }; // Hook for the plugin system DECLARE_RIVET_PLUGIN(ATLAS_2012_I1118269); }