Rivet analyses referenceLHCF_2018_I1692008Measurement of forward neutron production cross-section in proton-proton collisions at $\mathrm{\sqrt{s}=13\,TeV}$ with the LHCf detectorExperiment: LHCF (LHC) Inspire ID: 1692008 Status: VALIDATED Authors:
Beam energies: (6500.0, 6500.0) GeV Run details:
In this analysis, we report the measurement relative to the production of forward neutrons (and antineutrons) in proton-proton collisions at $\mathrm{\sqrt{s} = 13\,TeV}$ obtained using the LHCf Arm2 detector at the Large Hadron Collider. The results for the inclusive differential production cross section are presented as a function of energy in three different pseudorapidity regions: $\eta > 10.76$, $8.99 < \eta < 9.22$ and $8.81 < \eta < 8.99$. The analysis was performed using a data set acquired in June 2015 that corresponds to an integrated luminosity of $\mathrm{0.194\,nb^{-1}}$. The measurements were compared with the predictions of several hadronic interaction models used to simulate air showers generated by Ultra High Energy Cosmic Rays. None of these generators showed good agreement with the data for all pseudorapidity intervals. For $\eta > 10.76$, no model is able to reproduce the observed peak structure at around $\mathrm{5\,TeV}$ and all models underestimate the total production cross section: among them, QGSJET II-04 shows the smallest deficit with respect to data for the whole energy range. For $8.99 < \eta < 9.22$ and $8.81 < \eta < 8.99$, the models having the best overall agreement with data are SIBYLL 2.3 and EPOS-LHC, respectively: in particular, in both regions SIBYLL 2.3 is able to reproduce the observed peak structure at around $\mathrm{1.5-2.5\,TeV}$. Source code: LHCF_2018_I1692008.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/FinalState.hh"
4
5namespace Rivet {
6
7 /// @brief forward neutron production cross-section at 13 TeV
8 class LHCF_2018_I1692008 : public Analysis {
9 public:
10
11 /// Constructor
12 RIVET_DEFAULT_ANALYSIS_CTOR(LHCF_2018_I1692008);
13
14 /// @name Analysis methods
15 /// @{
16
17 /// Book histograms and initialise projections before the run
18 void init() {
19
20 // Initialise and register projections
21 declare(FinalState(), "FS");
22
23 // Book histograms
24 book(_h_n_en_eta1, 1, 1, 1);
25 book(_h_n_en_eta2, 2, 1, 1);
26 book(_h_n_en_eta3, 3, 1, 1);
27 }
28
29 /// Perform the per-event analysis
30 void analyze(const Event& event) {
31
32 // Select photons above threshold
33 const FinalState &fs = apply<FinalState> (event, "FS");
34 Particles fs_particles = fs.particles(Cuts::abspid==PID::NEUTRON && Cuts::E>=500/GeV && Cuts::abseta>8.812347);
35
36 for (const Particle& p : fs_particles) {
37
38 // Double analysis efficiency with a two-sided LHCf --- NOTE: taken care of in finalize division by 2
39 const double eta = abs(p.eta());
40 const double energy = p.E()/GeV;
41
42 if (eta > 10.758267 ) _h_n_en_eta1->fill(energy);
43 else if (eta > 8.994669 && eta < 9.217812) _h_n_en_eta2->fill(energy);
44 else if (eta < 8.994669 ) _h_n_en_eta3->fill(energy);
45 }
46 }
47
48 /// Normalise histograms etc., after the run
49 void finalize() {
50 //Scale considering the LHCf Arm2 side
51 scale(_h_n_en_eta1, crossSection()/millibarn/sumOfWeights()/2.); // norm to cross section
52 scale(_h_n_en_eta2, crossSection()/millibarn/sumOfWeights()/2.); // norm to cross section
53 scale(_h_n_en_eta3, crossSection()/millibarn/sumOfWeights()/2.); // norm to cross section
54 }
55 /// @}
56
57 private:
58
59 /// @name Histograms
60 /// @{
61 Histo1DPtr _h_n_en_eta1;
62 Histo1DPtr _h_n_en_eta2;
63 Histo1DPtr _h_n_en_eta3;
64 /// @}
65 };
66
67 RIVET_DECLARE_PLUGIN(LHCF_2018_I1692008);
68
69}
|