Rivet analyses
Measurement of J/ψ production
Experiment: ATLAS (LHC)
Inspire ID: 896268
Status: VALIDATED
Authors: none listed
References: - Expt page: ATLAS-BPHY-2010-01 - arXiv: 1104.3038
Beams: p+ p+
Beam energies: (3500.0, 3500.0)GeV
Run details: - pp to hadrons including both prompt J/Psi production and the production in B decays
The inclusive J/ψ production cross-section and fraction of J/ψ mesons produced in B-hadron decays are measured in proton-proton collisions at $\sqrt{s} = 7$ TeV with the ATLAS detector at the LHC, as a function of the transverse momentum and rapidity of the J/psi, using 2.3pb−1 of integrated luminosity. The cross section is measured from a minimum pT of 1 GeV to a maximum of 70 GeV and for rapidities within |y| < 2.4 giving the widest reach of any measurement of J/ψ production to date.
Source
code:ATLAS_2011_I896268.cc
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/Beam.hh"
#include "Rivet/Projections/FinalState.hh"
#include "Rivet/Projections/ChargedFinalState.hh"
#include "Rivet/Projections/UnstableParticles.hh"
namespace Rivet {
/// J/psi production at ATLAS
class ATLAS_2011_I896268: public Analysis {
public:
/// Constructor
RIVET_DEFAULT_ANALYSIS_CTOR(ATLAS_2011_I896268);
/// @name Analysis methods
/// @{
void init() {
declare(UnstableParticles(), "UFS");
book(_nonPrRapHigh , 14, 1, 1);
book(_nonPrRapMedHigh , 13, 1, 1);
book(_nonPrRapMedLow , 12, 1, 1);
book(_nonPrRapLow , 11, 1, 1);
book(_PrRapHigh , 18, 1, 1);
book(_PrRapMedHigh , 17, 1, 1);
book(_PrRapMedLow , 16, 1, 1);
book(_PrRapLow , 15, 1, 1);
book(_IncRapHigh , 20, 1, 1);
book(_IncRapMedHigh , 21, 1, 1);
book(_IncRapMedLow , 22, 1, 1);
book(_IncRapLow , 23, 1, 1);
}
void analyze(const Event& e) {
// Final state of unstable particles to get particle spectra
const UnstableParticles& ufs = apply<UnstableParticles>(e, "UFS");
for (const Particle& p : ufs.particles()) {
if (p.abspid() != 443) continue;
ConstGenVertexPtr gv = p.genParticle()->production_vertex();
bool nonPrompt = false;
if (gv) {
for (ConstGenParticlePtr pi: HepMCUtils::particles(gv, Relatives::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);
else if (!nonPrompt) _PrRapHigh->fill(xp);
_IncRapHigh->fill(xp);
}
else if (absrap<=2. and absrap>1.5) {
if (nonPrompt) _nonPrRapMedHigh->fill(xp);
else if (!nonPrompt) _PrRapMedHigh->fill(xp);
_IncRapMedHigh->fill(xp);
}
else if (absrap<=1.5 and absrap>0.75) {
if (nonPrompt) _nonPrRapMedLow->fill(xp);
else if (!nonPrompt) _PrRapMedLow->fill(xp);
_IncRapMedLow->fill(xp);
}
else if (absrap<=0.75) {
if (nonPrompt) _nonPrRapLow->fill(xp);
else if (!nonPrompt) _PrRapLow->fill(xp);
_IncRapLow->fill(xp);
}
}
}
/// 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;
};
RIVET_DECLARE_ALIASED_PLUGIN(ATLAS_2011_I896268, ATLAS_2011_S9035664);
}Aliases: - ATLAS_2011_S9035664