rivet is hosted by Hepforge, IPPP Durham

## Rivet analyses reference

### ATLAS_2016_I1468167

Measurement of the inelastic proton--proton cross-section at $\sqrt{s} = 13\,\text{TeV}$
Experiment: ATLAS (LHC)
Inspire ID: 1468167
Status: VALIDATED
Authors:
• Zachary Marshall
• Christian Gutschow
References:
Beams: p+ p+
Beam energies: (6500.0, 6500.0) GeV
Run details:
• Inelastic events (non-diffractive and inelastic diffractive).

Inelastic cross-section is measured for $\xi > 1 \times 10^{-6}$, where $\xi=M_X^2/s$ is calculated from the invariant mass, $M_X$, of hadrons selected using the largest rapidity gap in the event.

Source code: ATLAS_2016_I1468167.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 // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/FinalState.hh" namespace Rivet { /// Measurement of the inelastic proton-proton cross-section at \sqrt{s} = 13 TeV class ATLAS_2016_I1468167 : public Analysis { public: DEFAULT_RIVET_ANALYSIS_CTOR(ATLAS_2016_I1468167); /// Initialisation void init() { declare(FinalState(), "FS"); book(_h_sigma, 1, 1, 1); } /// Per-event analysis void analyze(const Event& event) { // Get all particles, sorted from minus to plus in eta const FinalState& fs = apply(event, "FS"); if (fs.size() < 2) vetoEvent; // need at least two particles to calculate gaps const Particles particles = fs.particles(cmpMomByEta); // Find this event's largest gap size and center double etapre = particles.front().eta(); double gapcenter = 0.; double gapsize = -1; for (const Particle& p : particles) { const double gap = fabs(p.eta() - etapre); if (gap > gapsize) { // new largest gap gapsize = gap; gapcenter = (p.eta() + etapre)/2.; } etapre = p.eta(); } // Calculate xi variable of the more massive side of the event, and apply xi cut FourMomentum mxFourVector, myFourVector; for (const Particle& p : particles) { ((p.eta() > gapcenter) ? mxFourVector : myFourVector) += p; } const double M2 = max(mxFourVector.mass2(), myFourVector.mass2()); const double xi = M2/sqr(sqrtS()); // sqrt(s)=7000 GeV, note that units cancel if (xi < 1e-6) vetoEvent; // Fill the histogram _h_sigma->fill(sqrtS()/GeV); } /// Scale the acceptance histogram to inelastic cross-section void finalize() { scale(_h_sigma, crossSection()/millibarn/sumOfWeights()); } /// Histogram Histo1DPtr _h_sigma; }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(ATLAS_2016_I1468167); }