13 vector<float> phibins;
14 for (
int i = 0;
i < 10;
i++)
18 if (etaRegion == Central) {
19 for (
int i = 0;
i < 8; ++
i)
20 etabins.push_back(-2.1 + 0.6 *
i);
21 }
else if (etaRegion == Forward) {
22 for (
int i = 0;
i < 10; ++
i) {
24 etabins.push_back(-5.1 + 0.6 *
i);
26 etabins.push_back(2.7 + 0.6 * (
i - 5));
28 }
else if (etaRegion ==
All) {
29 for (
int i = 0;
i < 18; ++
i)
30 etabins.push_back(-5.1 + 0.6 *
i);
32 return fixedGridRho(etabins, phibins);
36 float etadist = etabins[1] - etabins[0];
37 float phidist = phibins[1] - phibins[0];
38 float etahalfdist = (etabins[1] - etabins[0]) / 2.;
39 float phihalfdist = (phibins[1] - phibins[0]) / 2.;
40 vector<float> sumPFNallSMDQ;
41 sumPFNallSMDQ.reserve(etabins.size() * phibins.size());
42 for (
unsigned int ieta = 0;
ieta < etabins.size(); ++
ieta) {
43 for (
unsigned int iphi = 0;
iphi < phibins.size(); ++
iphi) {
44 float pfniso_ieta_iphi = 0;
46 if (fabs(etabins[
ieta] - pf_it->eta()) > etahalfdist)
50 pfniso_ieta_iphi += pf_it->pt();
52 sumPFNallSMDQ.push_back(pfniso_ieta_iphi);
56 sort(sumPFNallSMDQ.begin(), sumPFNallSMDQ.end());
57 if (sumPFNallSMDQ.size() % 2)
58 evt_smdq = sumPFNallSMDQ[(sumPFNallSMDQ.size() - 1) / 2];
60 evt_smdq = (sumPFNallSMDQ[sumPFNallSMDQ.size() / 2] + sumPFNallSMDQ[(sumPFNallSMDQ.size() - 2) / 2]) / 2.;
61 return evt_smdq / (etadist * phidist);
constexpr double deltaPhi(double phi1, double phi2)
float fixedGridRho(EtaRegion etaRegion=Central)