Rivet analyses referenceATLAS_2011_I896268Measurement of $J/\psi$ productionExperiment: ATLAS (LHC) Inspire ID: 896268 Status: VALIDATED No authors listed References:
Beam energies: (3500.0, 3500.0) GeV Run details:
The inclusive $J/\psi$ production cross-section and fraction of $J/\psi$ 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.3$\textrm{pb}^{-1}$ of integrated luminosity. The cross section is measured from a minimum $p_T$ 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/\psi$ production to date. Source code: ATLAS_2011_I896268.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/Beam.hh"
4#include "Rivet/Projections/FinalState.hh"
5#include "Rivet/Projections/ChargedFinalState.hh"
6#include "Rivet/Projections/UnstableParticles.hh"
7
8namespace Rivet {
9
10
11 /// J/psi production at ATLAS
12 class ATLAS_2011_I896268: public Analysis {
13 public:
14
15 /// Constructor
16 RIVET_DEFAULT_ANALYSIS_CTOR(ATLAS_2011_I896268);
17
18
19 /// @name Analysis methods
20 /// @{
21
22 void init() {
23 declare(UnstableParticles(), "UFS");
24 book(_nonPrRapHigh , 14, 1, 1);
25 book(_nonPrRapMedHigh , 13, 1, 1);
26 book(_nonPrRapMedLow , 12, 1, 1);
27 book(_nonPrRapLow , 11, 1, 1);
28 book(_PrRapHigh , 18, 1, 1);
29 book(_PrRapMedHigh , 17, 1, 1);
30 book(_PrRapMedLow , 16, 1, 1);
31 book(_PrRapLow , 15, 1, 1);
32 book(_IncRapHigh , 20, 1, 1);
33 book(_IncRapMedHigh , 21, 1, 1);
34 book(_IncRapMedLow , 22, 1, 1);
35 book(_IncRapLow , 23, 1, 1);
36 }
37
38
39 void analyze(const Event& e) {
40
41 // Final state of unstable particles to get particle spectra
42 const UnstableParticles& ufs = apply<UnstableParticles>(e, "UFS");
43
44 for (const Particle& p : ufs.particles()) {
45 if (p.abspid() != 443) continue;
46 ConstGenVertexPtr gv = p.genParticle()->production_vertex();
47 bool nonPrompt = false;
48 if (gv) {
49 for (ConstGenParticlePtr pi: HepMCUtils::particles(gv, Relatives::ANCESTORS)) {
50 const PdgId pid2 = pi->pdg_id();
51 if (PID::isHadron(pid2) && PID::hasBottom(pid2)) {
52 nonPrompt = true;
53 break;
54 }
55 }
56 }
57 double absrap = p.absrap();
58 double xp = p.perp();
59
60 if (absrap<=2.4 and absrap>2.) {
61 if (nonPrompt) _nonPrRapHigh->fill(xp);
62 else if (!nonPrompt) _PrRapHigh->fill(xp);
63 _IncRapHigh->fill(xp);
64 }
65 else if (absrap<=2. and absrap>1.5) {
66 if (nonPrompt) _nonPrRapMedHigh->fill(xp);
67 else if (!nonPrompt) _PrRapMedHigh->fill(xp);
68 _IncRapMedHigh->fill(xp);
69 }
70 else if (absrap<=1.5 and absrap>0.75) {
71 if (nonPrompt) _nonPrRapMedLow->fill(xp);
72 else if (!nonPrompt) _PrRapMedLow->fill(xp);
73 _IncRapMedLow->fill(xp);
74 }
75
76 else if (absrap<=0.75) {
77 if (nonPrompt) _nonPrRapLow->fill(xp);
78 else if (!nonPrompt) _PrRapLow->fill(xp);
79 _IncRapLow->fill(xp);
80 }
81 }
82 }
83
84
85 /// Finalize
86 void finalize() {
87 double factor = crossSection()/nanobarn*0.0593;
88
89 scale(_PrRapHigh , factor/sumOfWeights());
90 scale(_PrRapMedHigh , factor/sumOfWeights());
91 scale(_PrRapMedLow , factor/sumOfWeights());
92 scale(_PrRapLow , factor/sumOfWeights());
93
94 scale(_nonPrRapHigh , factor/sumOfWeights());
95 scale(_nonPrRapMedHigh, factor/sumOfWeights());
96 scale(_nonPrRapMedLow , factor/sumOfWeights());
97 scale(_nonPrRapLow , factor/sumOfWeights());
98
99 scale(_IncRapHigh , 1000.*factor/sumOfWeights());
100 scale(_IncRapMedHigh , 1000.*factor/sumOfWeights());
101 scale(_IncRapMedLow , 1000.*factor/sumOfWeights());
102 scale(_IncRapLow , 1000.*factor/sumOfWeights());
103
104 }
105
106 /// @}
107
108
109 private:
110
111 Histo1DPtr _nonPrRapHigh;
112 Histo1DPtr _nonPrRapMedHigh;
113 Histo1DPtr _nonPrRapMedLow;
114 Histo1DPtr _nonPrRapLow;
115
116 Histo1DPtr _PrRapHigh;
117 Histo1DPtr _PrRapMedHigh;
118 Histo1DPtr _PrRapMedLow;
119 Histo1DPtr _PrRapLow;
120
121 Histo1DPtr _IncRapHigh;
122 Histo1DPtr _IncRapMedHigh;
123 Histo1DPtr _IncRapMedLow;
124 Histo1DPtr _IncRapLow;
125
126 };
127
128
129 RIVET_DECLARE_ALIASED_PLUGIN(ATLAS_2011_I896268, ATLAS_2011_S9035664);
130
131}
|