Rivet analyses
Studies of the underlying event at 300, 900 and 1960 GeV with leading charged particles
Experiment: CDF (Tevatron)
Inspire ID: 1388868
Status: VALIDATED
Authors: - Oreste Tumbarell Aranda - Hannes Jung - Paolo Gunnellini - Andy Buckley
References: - Phys. Rev. D 92, 092009 (2015) - arXiv: 1508.05340
Beams: p+ p-
Beam energies: (150.0, 150.0); (450.0, 450.0); (980.0, 980.0)GeV
Run details: - Minimum bias proton-antiproton collision events at 300, 900 and 1960 GeV. Set particles with c*tau > 10 mm stable.
We study charged particle production in proton–antiproton collisions at 300 GeV, 900 GeV, and 1.96 TeV. We use the direction of the charged particle with the largest transverse momentum in each event to define three regions of η–ϕ space; toward, away, and transverse. The average number and the average scalar pT sum of charged particles in the transverse region are sensitive to the modeling of the underlying event. The transverse region is divided into a MAX and MIN transverse region, which helps separate the hard component (initial and final-state radiation) from the beam-beam remnant and multiple parton interaction components of the scattering.
Source
code:CDF_2015_I1388868.cc
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/ChargedFinalState.hh"
namespace Rivet {
/// @brief CDF leading track underlying event at 300, 900 and 1960 GeV
///
/// @author Orestes Tumbarell Aranda (Havana), Hannes Jung (DESY)
class CDF_2015_I1388868 : public Analysis {
public:
/// Constructor
RIVET_DEFAULT_ANALYSIS_CTOR(CDF_2015_I1388868);
/// @name Analysis methods
/// @{
/// Book histograms and initialise projections before the run
void init() {
// Energy selection
MSG_DEBUG("CDF Tevatron UE: running with " << sqrtS()/GeV);
// Book projection
const ChargedFinalState cfs(Cuts::abseta < 0.8 && Cuts::pT > 0.5*GeV);
declare(cfs, "Tracks");
// Book profile histos
for (double eVal : allowedEnergies()) {
const string en = toString(round(eVal));
if (isCompatibleWithSqrtS(eVal)) _sqs = en;
size_t ih = 0;
if (en == "900"s) ih = 1;
if (en == "300"s) ih = 2;
book(_p[en+"NchgPDFden1"], 8*ih+4,1,1);
book(_p[en+"NchgPMNden1"], 8*ih+2,1,1);
book(_p[en+"NchgPMXden1"], 8*ih+1,1,1);
book(_p[en+"NchgPden1"], 8*ih+3,1,1);
book(_p[en+"PTsumPDFden1"], 8*ih+8,1,1);
book(_p[en+"PTsumPMNden1"], 8*ih+6,1,1);
book(_p[en+"PTsumPMXden1"], 8*ih+5,1,1);
book(_p[en+"PTsumPden1"], 8*ih+7,1,1);
}
raiseBeamErrorIf(_sqs.empty());
}
/// Perform the per-event analysis
void analyze(const Event& event) {
// Require at least one track in the event with pT >= 0.5 GeV
const ChargedFinalState& cfs = apply<ChargedFinalState>(event, "Tracks");
if (cfs.empty()) vetoEvent;
const Particles trks = cfs.particlesByPt();
// Get lead track
const Particle p_lead = trks[0];
const double philead = p_lead.phi();
const double ptlead = p_lead.pT();
// Loop over tracks and compute variables
double NchgP1 = 0, NchgP2 = 0, PTsumP1 = 0, PTsumP2 = 0;
for (const Particle& p : trks) {
// Region definition -- if not in transverse region, ignore
const double dphi = mapAngle0To2Pi(p.phi() - philead);
if (!inRange(dphi, PI/3, 2*PI/3) && !inRange(dphi, 4*PI/3, 5*PI/3)) continue;
// Transverse region 1
if (inRange(dphi, PI/3, 2*PI/3)) {
NchgP1 += 1;
PTsumP1 += p.pT();
}
// Transverse region 2
else if (inRange(dphi, 4*PI/3, 5*PI/3)) {
NchgP2 += 1;
PTsumP2 += p.pT();
}
}
// Calculate total variables
const double NchgPtot = (NchgP1 + NchgP2)/2;
const double NchgPmax = max(NchgP1,NchgP2);
const double NchgPmin = min(NchgP1,NchgP2);
const double PTsumPtot = (PTsumP1 + PTsumP2)/2;
const double PTsumPmax = max(PTsumP1,PTsumP2);
const double PTsumPmin = min(PTsumP1,PTsumP2);
//
const double PTsumPMXden = PTsumPmax/AREA;
const double PTsumPMNden = PTsumPmin/AREA;
const double NchgPMXden = NchgPmax/AREA;
const double NchgPMNden = NchgPmin/AREA;
//
const double NchgPDFden = NchgPMXden - NchgPMNden;
const double PTsumPDFden = PTsumPMXden - PTsumPMNden;
// Fill histograms
_p[_sqs+"NchgPden1"] ->fill(ptlead/GeV, NchgPtot/AREA);
_p[_sqs+"NchgPMXden1"]->fill(ptlead/GeV, NchgPmax/AREA);
_p[_sqs+"NchgPMNden1"]->fill(ptlead/GeV, NchgPmin/AREA);
_p[_sqs+"NchgPDFden1"]->fill(ptlead/GeV, NchgPDFden );
_p[_sqs+"PTsumPden1"] ->fill(ptlead/GeV, PTsumPtot/AREA);
_p[_sqs+"PTsumPMXden1"]->fill(ptlead/GeV, PTsumPmax/AREA);
_p[_sqs+"PTsumPMNden1"]->fill(ptlead/GeV, PTsumPmin/AREA);
_p[_sqs+"PTsumPDFden1"]->fill(ptlead/GeV, PTsumPDFden );
}
/// @}
/// eta-phi area of the transverse region
constexpr static double AREA = 2*0.8 * M_PI/3;
/// Histograms
map<string,Profile1DPtr> _p;
string _sqs = "";
};
RIVET_DECLARE_PLUGIN(CDF_2015_I1388868);
}