13 vector<float> phibins;
15 for (
int i = 0;
i < 10;
i++)
19 if (etaRegion == Central) {
20 for (
int i = 0;
i < 8; ++
i)
21 etabins.push_back(-2.1 + 0.6 *
i);
22 }
else if (etaRegion == Forward) {
23 for (
int i = 0;
i < 10; ++
i) {
25 etabins.push_back(-5.1 + 0.6 *
i);
27 etabins.push_back(2.7 + 0.6 * (
i - 5));
29 }
else if (etaRegion ==
All) {
30 for (
int i = 0;
i < 18; ++
i)
31 etabins.push_back(-5.1 + 0.6 *
i);
33 return fixedGridRho(etabins, phibins);
37 float etadist = etabins[1] - etabins[0];
38 float phidist = phibins[1] - phibins[0];
39 float etahalfdist = (etabins[1] - etabins[0]) / 2.;
40 float phihalfdist = (phibins[1] - phibins[0]) / 2.;
41 vector<float> sumPFNallSMDQ;
42 sumPFNallSMDQ.reserve(etabins.size() * phibins.size());
43 for (
unsigned int ieta = 0; ieta < etabins.size(); ++ieta) {
44 for (
unsigned int iphi = 0; iphi < phibins.size(); ++iphi) {
45 float pfniso_ieta_iphi = 0;
47 if (fabs(etabins[ieta] - pf_it->eta()) > etahalfdist)
49 if (fabs(
reco::deltaPhi(phibins[iphi], pf_it->phi())) > phihalfdist)
51 pfniso_ieta_iphi += pf_it->pt();
53 sumPFNallSMDQ.push_back(pfniso_ieta_iphi);
57 sort(sumPFNallSMDQ.begin(), sumPFNallSMDQ.end());
58 if (sumPFNallSMDQ.size() % 2)
59 evt_smdq = sumPFNallSMDQ[(sumPFNallSMDQ.size() - 1) / 2];
61 evt_smdq = (sumPFNallSMDQ[sumPFNallSMDQ.size() / 2] + sumPFNallSMDQ[(sumPFNallSMDQ.size() - 2) / 2]) / 2.;
62 return evt_smdq / (etadist * phidist);
constexpr double deltaPhi(double phi1, double phi2)
float fixedGridRho(EtaRegion etaRegion=Central)