Rivet analyses
Underlying event in inclusive Z boson production
Experiment: ATLAS (LHC)
Inspire ID: 1736531
Status: VALIDATED
Authors: - Deepak Kar
References: - Expt page: ATLAS-STDM-2017-28 - arXiv: 1905.09752 - Eur. Phys. J. C 79 (2019) 666
Beams: p+ p+
Beam energies: (6500.0, 6500.0)GeV
Run details: - Inclusive Z to events
This paper presents measurements of charged-particle distributions sensitive to the properties of the underlying event in events containing a Z boson decaying into a muon pair.The data were obtained using the ATLAS detector at the LHC in proton-proton collisions at a centre-of-mass energy of 13 TeV with an integrated luminosity of 3.2 fb−1. Distributions of the charged-particle multiplicity and of the charged-particle transverse momentum are measured in regions of the azimuth defined relative to the Z boson direction. The measured distributions are compared with the predictions of various Monte Carlo generators which implement different underlying-event models. The Monte Carlo model predictions qualitatively describe the data well, but with some significant discrepancies.
Source
code:ATLAS_2019_I1736531.cc
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/Thrust.hh"
#include "Rivet/Projections/FinalState.hh"
#include "Rivet/Projections/ChargedFinalState.hh"
#include "Rivet/Projections/DileptonFinder.hh"
namespace Rivet {
/// @brief Underlying event in Z events
class ATLAS_2019_I1736531 : public Analysis {
public:
/// Constructor
RIVET_DEFAULT_ANALYSIS_CTOR(ATLAS_2019_I1736531);
void init() {
// Get options from the new option system
PdgId flav = (getOption("LMODE") == "EL") ? PID::ELECTRON : PID::MUON;
//Projections
DileptonFinder zfinder(91.2*GeV, 0.1, Cuts::abseta < 2.4 && Cuts::pT > 25*GeV &&
Cuts::abspid == flav, Cuts::massIn(66*GeV, 116*GeV));
declare(zfinder, "DileptonFinder");
ChargedFinalState cfs(zfinder.remainingFinalState() );
declare(cfs, "cfs");
//Histograms
book(_p["pTsum_tow_zpt"] , 1, 1, 1);
book(_p["pTsum_trv_zpt"] , 2, 1, 1);
book(_p["pTsum_tmin_zpt"] , 3, 1, 1);
book(_p["pTsum_tmax_zpt"] , 4, 1, 1);
book(_p["pTsum_away_zpt"] , 5, 1, 1);
book(_p["nch_tow_zpt"] , 6, 1, 1);
book(_p["nch_trv_zpt"] , 7, 1, 1);
book(_p["nch_tmin_zpt"] , 8, 1, 1);
book(_p["nch_tmax_zpt"] , 9, 1, 1);
book(_p["nch_away_zpt"] , 10, 1, 1);
book(_p["pTmean_tow_zpt"] , 11, 1, 1);
book(_p["pTmean_trv_zpt"] , 12, 1, 1);
book(_p["pTmean_tmin_zpt"] , 13, 1, 1);
book(_p["pTmean_tmax_zpt"] , 14, 1, 1);
book(_p["pTmean_away_zpt"] , 15, 1, 1);
book(_p["pTsum_tow_zpt_tlow"] , 16, 1, 1);
book(_p["pTsum_trv_zpt_tlow"] , 17, 1, 1);
book(_p["pTsum_tmin_zpt_tlow"] , 18, 1, 1);
book(_p["pTsum_tmax_zpt_tlow"] , 19, 1, 1);
book(_p["pTsum_away_zpt_tlow"] , 20, 1, 1);
book(_p["nch_tow_zpt_tlow"] , 21, 1, 1);
book(_p["nch_trv_zpt_tlow"] , 22, 1, 1);
book(_p["nch_tmin_zpt_tlow"] , 23, 1, 1);
book(_p["nch_tmax_zpt_tlow"] , 24, 1, 1);
book(_p["nch_away_zpt_tlow"] , 25, 1, 1);
book(_p["pTmean_tow_zpt_tlow"] , 26, 1, 1);
book(_p["pTmean_trv_zpt_tlow"] , 27, 1, 1);
book(_p["pTmean_tmin_zpt_tlow"] , 28, 1, 1);
book(_p["pTmean_tmax_zpt_tlow"] , 29, 1, 1);
book(_p["pTmean_away_zpt_tlow"] , 30, 1, 1);
book(_p["pTsum_tow_zpt_thi"] , 31, 1, 1);
book(_p["pTsum_trv_zpt_thi"] , 32, 1, 1);
book(_p["pTsum_tmin_zpt_thi"] , 33, 1, 1);
book(_p["pTsum_tmax_zpt_thi"] , 34, 1, 1);
book(_p["pTsum_away_zpt_thi"] , 35, 1, 1);
book(_p["nch_tow_zpt_thi"] , 36, 1, 1);
book(_p["nch_trv_zpt_thi"] , 37, 1, 1);
book(_p["nch_tmin_zpt_thi"] , 38, 1, 1);
book(_p["nch_tmax_zpt_thi"] , 39, 1, 1);
book(_p["nch_away_zpt_thi"] , 40, 1, 1);
book(_p["pTmean_tow_zpt_thi"] , 41, 1, 1);
book(_p["pTmean_trv_zpt_thi"] , 42, 1, 1);
book(_p["pTmean_tmin_zpt_thi"] , 43, 1, 1);
book(_p["pTmean_tmax_zpt_thi"] , 44, 1, 1);
book(_p["pTmean_away_zpt_thi"] , 45, 1, 1);
for (size_t i_bin = 0; i_bin < 8; ++i_bin) {
book(_h["pT[0]"+to_str(i_bin)] , 46 + i_bin, 1, 1);
book(_h["pT[1]"+to_str(i_bin)] , 54 + i_bin, 1, 1);
book(_h["pT[2]"+to_str(i_bin)] , 62 + i_bin, 1, 1);
book(_h["pT[3]"+to_str(i_bin)] , 70 + i_bin, 1, 1);
book(_h["pT[4]"+to_str(i_bin)] , 78 + i_bin, 1, 1);
book(_h["nch[0]"+to_str(i_bin)] , 86 + i_bin, 1, 1);
book(_h["nch[1]"+to_str(i_bin)] , 94 + i_bin, 1, 1);
book(_h["nch[2]"+to_str(i_bin)] , 102 + i_bin, 1, 1);
book(_h["nch[3]"+to_str(i_bin)] , 110 + i_bin, 1, 1);
book(_h["nch[4]"+to_str(i_bin)] , 118 + i_bin, 1, 1);
book(_h["pTsum[0]"+to_str(i_bin)] , 126 + i_bin, 1, 1);
book(_h["pTsum[1]"+to_str(i_bin)] , 134 + i_bin, 1, 1);
book(_h["pTsum[2]"+to_str(i_bin)] , 142 + i_bin, 1, 1);
book(_h["pTsum[3]"+to_str(i_bin)] , 150 + i_bin, 1, 1);
book(_h["pTsum[4]"+to_str(i_bin)] , 158 + i_bin, 1, 1);
book(_h["pTmean[0]"+to_str(i_bin)] , 166 + i_bin, 1, 1);
book(_h["pTmean[1]"+to_str(i_bin)] , 174 + i_bin, 1, 1);
book(_h["pTmean[2]"+to_str(i_bin)] , 182 + i_bin, 1, 1);
book(_h["pTmean[3]"+to_str(i_bin)] , 190 + i_bin, 1, 1);
book(_h["pTmean[4]"+to_str(i_bin)] , 198 + i_bin, 1, 1);
book(_h["pT_tlow[0]"+to_str(i_bin)] , 206 + i_bin, 1, 1);
book(_h["pT_tlow[1]"+to_str(i_bin)] , 214 + i_bin, 1, 1);
book(_h["pT_tlow[2]"+to_str(i_bin)] , 222 + i_bin, 1, 1);
book(_h["pT_tlow[3]"+to_str(i_bin)] , 230 + i_bin, 1, 1);
book(_h["pT_tlow[4]"+to_str(i_bin)] , 238 + i_bin, 1, 1);
book(_h["nch_tlow[0]"+to_str(i_bin)] , 246 + i_bin, 1, 1);
book(_h["nch_tlow[1]"+to_str(i_bin)] , 254 + i_bin, 1, 1);
book(_h["nch_tlow[2]"+to_str(i_bin)] , 262 + i_bin, 1, 1);
book(_h["nch_tlow[3]"+to_str(i_bin)] , 270 + i_bin, 1, 1);
book(_h["nch_tlow[4]"+to_str(i_bin)] , 278 + i_bin, 1, 1);
book(_h["pTsum_tlow[0]"+to_str(i_bin)] , 286 + i_bin, 1, 1);
book(_h["pTsum_tlow[1]"+to_str(i_bin)] , 294 + i_bin, 1, 1);
book(_h["pTsum_tlow[2]"+to_str(i_bin)] , 302 + i_bin, 1, 1);
book(_h["pTsum_tlow[3]"+to_str(i_bin)] , 310 + i_bin, 1, 1);
book(_h["pTsum_tlow[4]"+to_str(i_bin)] , 318 + i_bin, 1, 1);
book(_h["pTmean_tlow[0]"+to_str(i_bin)] , 326 + i_bin, 1, 1);
book(_h["pTmean_tlow[1]"+to_str(i_bin)] , 334 + i_bin, 1, 1);
book(_h["pTmean_tlow[2]"+to_str(i_bin)] , 342 + i_bin, 1, 1);
book(_h["pTmean_tlow[3]"+to_str(i_bin)] , 350 + i_bin, 1, 1);
book(_h["pTmean_tlow[4]"+to_str(i_bin)] , 358 + i_bin, 1, 1);
book(_h["pT_thi[0]"+to_str(i_bin)] , 366 + i_bin, 1, 1);
book(_h["pT_thi[1]"+to_str(i_bin)] , 374 + i_bin, 1, 1);
book(_h["pT_thi[2]"+to_str(i_bin)] , 382 + i_bin, 1, 1);
book(_h["pT_thi[3]"+to_str(i_bin)] , 390 + i_bin, 1, 1);
book(_h["pT_thi[4]"+to_str(i_bin)] , 398 + i_bin, 1, 1);
book(_h["nch_thi[0]"+to_str(i_bin)] , 406 + i_bin, 1, 1);
book(_h["nch_thi[1]"+to_str(i_bin)] , 414 + i_bin, 1, 1);
book(_h["nch_thi[2]"+to_str(i_bin)] , 422 + i_bin, 1, 1);
book(_h["nch_thi[3]"+to_str(i_bin)] , 430 + i_bin, 1, 1);
book(_h["nch_thi[4]"+to_str(i_bin)] , 438 + i_bin, 1, 1);
book(_h["pTsum_thi[0]"+to_str(i_bin)] , 446 + i_bin, 1, 1);
book(_h["pTsum_thi[1]"+to_str(i_bin)] , 454 + i_bin, 1, 1);
book(_h["pTsum_thi[2]"+to_str(i_bin)] , 462 + i_bin, 1, 1);
book(_h["pTsum_thi[3]"+to_str(i_bin)] , 470 + i_bin, 1, 1);
book(_h["pTsum_thi[4]"+to_str(i_bin)] , 478 + i_bin, 1, 1);
book(_h["pTmean_thi[0]"+to_str(i_bin)] , 486 + i_bin, 1, 1);
book(_h["pTmean_thi[1]"+to_str(i_bin)] , 494 + i_bin, 1, 1);
book(_h["pTmean_thi[2]"+to_str(i_bin)] , 502 + i_bin, 1, 1);
book(_h["pTmean_thi[3]"+to_str(i_bin)] , 510 + i_bin, 1, 1);
book(_h["pTmean_thi[4]"+to_str(i_bin)] , 518 + i_bin, 1, 1);
}
}
// Perform the per-event analysis
void analyze(const Event& event) {
const double area = 5.*2./3.*M_PI;
const DileptonFinder& zfinder = apply<DileptonFinder>(event, "DileptonFinder");
if (zfinder.bosons().size() != 1) vetoEvent;
double Zpt = zfinder.bosons()[0].momentum().pT()/GeV;
double Zphi = zfinder.bosons()[0].momentum().phi();
// Determine Zpt region histo to fill
int i_bin(0);
if (inRange(Zpt,0,10)) i_bin=0;
if (inRange(Zpt,10,20)) i_bin=1;
if (inRange(Zpt,20,40)) i_bin=2;
if (inRange(Zpt,40,60)) i_bin=3;
if (inRange(Zpt,60,80)) i_bin=4;
if (inRange(Zpt,80,120)) i_bin=5;
if (inRange(Zpt,120,200)) i_bin=6;
if (Zpt>200) i_bin=7;
// Initialization
int nTow(0), nTrans(0), nTransmin(0), nTransmax(0), nAway(0), nLeft(0), nRight(0);
double pTsumTow(0.0), pTsumTrans(0.0), pTsumTransmin(0.0), pTsumTransmax(0.0), pTsumAway(0.0), pTsumLeft(0.0), pTsumRight(0.0);
// double pTmeanTow(0.0), pTmeanTrans(0.0), pTmeanTransmin(0.0), pTmeanTransmax(0.0), pTmeanAway(0.0);
std::vector<double> leftpt;
std::vector<double> rightpt;
const Cut& pcut = ( (Cuts::abspid != PID::SIGMAMINUS) && (Cuts::abspid != PID::SIGMAPLUS) &&
(Cuts::abspid != PID::XIMINUS) && (Cuts::abspid != PID::OMEGAMINUS) );
Particles particles = apply<ChargedFinalState>(event, "cfs").particlesByPt(Cuts::pT > 0.5*GeV && Cuts::abseta <2.5 && pcut);
//Calculate thrust
vector<Vector3> momenta;
for(const Particle& p : particles) {
Vector3 mom = p.momentum().vector3();
mom.setZ(0.0);
momenta.push_back(mom);
}
if (momenta.size() == 2) {
momenta.push_back(Vector3(1e-10*MeV, 0., 0.));
}
Thrust thrustC;
thrustC.calc(momenta);
double thrust = thrustC.thrust();
// Loop over charged particles
for(const Particle& p : particles) {
double dphi = p.momentum().phi() - Zphi;
double pT = p.momentum().pT();
for(; std::fabs(dphi) > M_PI; dphi += (dphi > 0. ? -2.*M_PI : 2.*M_PI) );
// Towards region
if( std::fabs(dphi) < M_PI/3. ) {
nTow++;
pTsumTow += pT;
_h["pT[0]"+to_str(i_bin)]->fill(pT);
if(thrust < 0.75) _h["pT_tlow[0]"+to_str(i_bin)]->fill(pT);
if(thrust > 0.75) _h["pT_thi[0]"+to_str(i_bin)]->fill(pT);
}
// Transverse region
else if( std::fabs(dphi) < 2.*M_PI/3. ) {
nTrans++;
pTsumTrans += pT;
_h["pT[1]"+to_str(i_bin)]->fill(pT);
if(thrust < 0.75) _h["pT_tlow[1]"+to_str(i_bin)]->fill(pT);
if(thrust > 0.75) _h["pT_thi[1]"+to_str(i_bin)]->fill(pT);
if(dphi > 0.) {
nRight++;
pTsumRight += pT;
rightpt.push_back(pT);
}
else {
nLeft++;
pTsumLeft += pT;
leftpt.push_back(pT);
}
}
// Away region
else {
nAway++;
pTsumAway += pT;
_h["pT[4]"+to_str(i_bin)]->fill(pT);
if(thrust < 0.75) _h["pT_tlow[4]"+to_str(i_bin)]->fill(pT);
if(thrust > 0.75) _h["pT_thi[4]"+to_str(i_bin)]->fill(pT);
}
}
// TransMAX, TransMIN regions
if (pTsumLeft > pTsumRight) {
pTsumTransmax = pTsumLeft;
pTsumTransmin = pTsumRight;
nTransmax = nLeft;
nTransmin = nRight;
for (auto x: rightpt) {
_h["pT[2]"+to_str(i_bin)]->fill(x);
if(thrust < 0.75) _h["pT_tlow[2]"+to_str(i_bin)]->fill(x);
if(thrust > 0.75) _h["pT_thi[2]"+to_str(i_bin)]->fill(x);
}
for (auto x: rightpt) {
_h["pT[3]"+to_str(i_bin)]->fill(x);
if(thrust < 0.75) _h["pT_tlow[3]"+to_str(i_bin)]->fill(x);
if(thrust > 0.75) _h["pT_thi[3]"+to_str(i_bin)]->fill(x);
}
}
else {
pTsumTransmax = pTsumRight;
pTsumTransmin = pTsumLeft;
nTransmax = nRight;
nTransmin = nLeft;
for (auto x: leftpt) {
_h["pT[2]"+to_str(i_bin)]->fill(x);
if(thrust < 0.75) _h["pT_tlow[2]"+to_str(i_bin)]->fill(x);
if(thrust > 0.75) _h["pT_thi[2]"+to_str(i_bin)]->fill(x);
}
for (auto x: leftpt) {
_h["pT[3]"+to_str(i_bin)]->fill(x);
if(thrust < 0.75) _h["pT_tlow[3]"+to_str(i_bin)]->fill(x);
if(thrust > 0.75) _h["pT_thi[3]"+to_str(i_bin)]->fill(x);
}
}
// Fill rest of the histogtams
_p["pTsum_tow_zpt"]->fill(Zpt, pTsumTow/area);
_p["pTsum_trv_zpt"]->fill(Zpt, pTsumTrans/area);
_p["pTsum_away_zpt"]->fill(Zpt, pTsumAway/area);
_p["pTsum_tmin_zpt"]->fill(Zpt, pTsumTransmin/(0.5*area));
_p["pTsum_tmax_zpt"]->fill(Zpt, pTsumTransmax/(0.5*area));
_p["nch_tow_zpt"]->fill(Zpt, nTow/area);
_p["nch_trv_zpt"]->fill(Zpt, nTrans/area);
_p["nch_away_zpt"]->fill(Zpt, nAway/area);
_p["nch_tmin_zpt"]->fill(Zpt, nTransmin/(0.5*area));
_p["nch_tmax_zpt"]->fill(Zpt, nTransmax/(0.5*area));
if(nTow > 0)_p["pTmean_tow_zpt"]->fill(Zpt, pTsumTow/nTow);
if(nTrans > 0)_p["pTmean_trv_zpt"]->fill(Zpt, pTsumTrans/nTrans);
if(nAway > 0)_p["pTmean_away_zpt"]->fill(Zpt, pTsumAway/nAway);
if(nTransmin > 0)_p["pTmean_tmin_zpt"]->fill(Zpt, pTsumTransmin/nTransmin);
if(nTransmax > 0)_p["pTmean_tmax_zpt"]->fill(Zpt, pTsumTransmax/nTransmax);
if(thrust < 0.75){
_p["pTsum_tow_zpt_tlow"]->fill(Zpt, pTsumTow/area);
_p["pTsum_trv_zpt_tlow"]->fill(Zpt, pTsumTrans/area);
_p["pTsum_away_zpt_tlow"]->fill(Zpt, pTsumAway/area);
_p["pTsum_tmin_zpt_tlow"]->fill(Zpt, pTsumTransmin/(0.5*area));
_p["pTsum_tmax_zpt_tlow"]->fill(Zpt, pTsumTransmax/(0.5*area));
_p["nch_tow_zpt_tlow"]->fill(Zpt, nTow/area);
_p["nch_trv_zpt_tlow"]->fill(Zpt, nTrans/area);
_p["nch_away_zpt_tlow"]->fill(Zpt, nAway/area);
_p["nch_tmin_zpt_tlow"]->fill(Zpt, nTransmin/(0.5*area));
_p["nch_tmax_zpt_tlow"]->fill(Zpt, nTransmax/(0.5*area));
if(nTow > 0)_p["pTmean_tow_zpt_tlow"]->fill(Zpt, pTsumTow/nTow);
if(nTrans > 0)_p["pTmean_trv_zpt_tlow"]->fill(Zpt, pTsumTrans/nTrans);
if(nAway > 0)_p["pTmean_away_zpt_tlow"]->fill(Zpt, pTsumAway/nAway);
if(nTransmin > 0)_p["pTmean_tmin_zpt_tlow"]->fill(Zpt, pTsumTransmin/nTransmin);
if(nTransmax > 0)_p["pTmean_tmax_zpt_tlow"]->fill(Zpt, pTsumTransmax/nTransmax);
}
if(thrust > 0.75){
_p["pTsum_tow_zpt_thi"]->fill(Zpt, pTsumTow/area);
_p["pTsum_trv_zpt_thi"]->fill(Zpt, pTsumTrans/area);
_p["pTsum_away_zpt_thi"]->fill(Zpt, pTsumAway/area);
_p["pTsum_tmin_zpt_thi"]->fill(Zpt, pTsumTransmin/(0.5*area));
_p["pTsum_tmax_zpt_thi"]->fill(Zpt, pTsumTransmax/(0.5*area));
_p["nch_tow_zpt_thi"]->fill(Zpt, nTow/area);
_p["nch_trv_zpt_thi"]->fill(Zpt, nTrans/area);
_p["nch_away_zpt_thi"]->fill(Zpt, nAway/area);
_p["nch_tmin_zpt_thi"]->fill(Zpt, nTransmin/(0.5*area));
_p["nch_tmax_zpt_thi"]->fill(Zpt, nTransmax/(0.5*area));
if(nTow > 0)_p["pTmean_tow_zpt_thi"]->fill(Zpt, pTsumTow/nTow);
if(nTrans > 0)_p["pTmean_trv_zpt_thi"]->fill(Zpt, pTsumTrans/nTrans);
if(nAway > 0)_p["pTmean_away_zpt_thi"]->fill(Zpt, pTsumAway/nAway);
if(nTransmin > 0)_p["pTmean_tmin_zpt_thi"]->fill(Zpt, pTsumTransmin/nTransmin);
if(nTransmax > 0)_p["pTmean_tmax_zpt_thi"]->fill(Zpt, pTsumTransmax/nTransmax);
}
_h["nch[0]"+to_str(i_bin)]->fill(nTow/area);
_h["nch[1]"+to_str(i_bin)]->fill(nTrans/area);
_h["nch[4]"+to_str(i_bin)]->fill(nAway/area);
_h["nch[2]"+to_str(i_bin)]->fill(nTransmin/(0.5*area));
_h["nch[3]"+to_str(i_bin)]->fill(nTransmax/(0.5*area));
_h["pTsum[0]"+to_str(i_bin)]->fill(pTsumTow/area);
_h["pTsum[1]"+to_str(i_bin)]->fill(pTsumTrans/area);
_h["pTsum[4]"+to_str(i_bin)]->fill(pTsumAway/area);
_h["pTsum[2]"+to_str(i_bin)]->fill(pTsumTransmin/(0.5*area));
_h["pTsum[3]"+to_str(i_bin)]->fill(pTsumTransmax/(0.5*area));
if(nTow > 0) _h["pTmean[0]"+to_str(i_bin)]->fill(pTsumTow/nTow);
if(nTrans > 0)_h["pTmean[1]"+to_str(i_bin)]->fill(pTsumTrans/nTrans);
if(nAway > 0)_h["pTmean[4]"+to_str(i_bin)]->fill(pTsumAway/nAway);
if(nTransmin > 0)_h["pTmean[2]"+to_str(i_bin)]->fill(pTsumTransmin/nTransmin);
if(nTransmax > 0)_h["pTmean[3]"+to_str(i_bin)]->fill(pTsumTransmax/nTransmax);
if(thrust < 0.75){
_h["nch_tlow[0]"+to_str(i_bin)]->fill(nTow/area);
_h["nch_tlow[1]"+to_str(i_bin)]->fill(nTrans/area);
_h["nch_tlow[4]"+to_str(i_bin)]->fill(nAway/area);
_h["nch_tlow[2]"+to_str(i_bin)]->fill(nTransmin/(0.5*area));
_h["nch_tlow[3]"+to_str(i_bin)]->fill(nTransmax/(0.5*area));
_h["pTsum_tlow[0]"+to_str(i_bin)]->fill(pTsumTow/area);
_h["pTsum_tlow[1]"+to_str(i_bin)]->fill(pTsumTrans/area);
_h["pTsum_tlow[4]"+to_str(i_bin)]->fill(pTsumAway/area);
_h["pTsum_tlow[2]"+to_str(i_bin)]->fill(pTsumTransmin/(0.5*area));
_h["pTsum_tlow[3]"+to_str(i_bin)]->fill(pTsumTransmax/(0.5*area));
if(nTow > 0) _h["pTmean_tlow[0]"+to_str(i_bin)]->fill(pTsumTow/nTow);
if(nTrans > 0)_h["pTmean_tlow[1]"+to_str(i_bin)]->fill(pTsumTrans/nTrans);
if(nAway > 0)_h["pTmean_tlow[4]"+to_str(i_bin)]->fill(pTsumAway/nAway);
if(nTransmin > 0)_h["pTmean_tlow[2]"+to_str(i_bin)]->fill(pTsumTransmin/nTransmin);
if(nTransmax > 0)_h["pTmean_tlow[3]"+to_str(i_bin)]->fill(pTsumTransmax/nTransmax);
}
if(thrust > 0.75){
_h["nch_thi[0]"+to_str(i_bin)]->fill(nTow/area);
_h["nch_thi[1]"+to_str(i_bin)]->fill(nTrans/area);
_h["nch_thi[4]"+to_str(i_bin)]->fill(nAway/area);
_h["nch_thi[2]"+to_str(i_bin)]->fill(nTransmin/(0.5*area));
_h["nch_thi[3]"+to_str(i_bin)]->fill(nTransmax/(0.5*area));
_h["pTsum_thi[0]"+to_str(i_bin)]->fill(pTsumTow/area);
_h["pTsum_thi[1]"+to_str(i_bin)]->fill(pTsumTrans/area);
_h["pTsum_thi[4]"+to_str(i_bin)]->fill(pTsumAway/area);
_h["pTsum_thi[2]"+to_str(i_bin)]->fill(pTsumTransmin/(0.5*area));
_h["pTsum_thi[3]"+to_str(i_bin)]->fill(pTsumTransmax/(0.5*area));
if(nTow > 0) _h["pTmean_thi[0]"+to_str(i_bin)]->fill(pTsumTow/nTow);
if(nTrans > 0)_h["pTmean_thi[1]"+to_str(i_bin)]->fill(pTsumTrans/nTrans);
if(nAway > 0)_h["pTmean_thi[4]"+to_str(i_bin)]->fill(pTsumAway/nAway);
if(nTransmin > 0)_h["pTmean_thi[2]"+to_str(i_bin)]->fill(pTsumTransmin/nTransmin);
if(nTransmax > 0)_h["pTmean_thi[3]"+to_str(i_bin)]->fill(pTsumTransmax/nTransmax);
}
}
void finalize() {
normalize(_h);
}
private:
map<string, Histo1DPtr> _h;
map<string, Profile1DPtr> _p;
};
RIVET_DECLARE_PLUGIN(ATLAS_2019_I1736531);
}