108 vector<vector<float> >
rings(3, vector<float>(5));
109 vector<vector<float> > shapes(3, vector<float>(5));
110 vector<float> isoptsum(3);
112 for(
unsigned int i = 0;
i < pfTau->isolationPFCands().size();
i++)
117 float deta = pfTau->eta() - pf->eta();
119 float dr =
reco::deltaR(pfTau->eta(), pfTau->phi(), pf->eta(), pf->phi());
123 if(pf->charge() != 0) pftype = 0;
124 else if(pf->particleId() == PFCandidate::gamma) pftype = 1;
131 if(dr < 0.1)
rings[pftype][0] += pf->pt();
132 else if(dr < 0.2)
rings[pftype][1] += pf->pt();
133 else if(dr < 0.3)
rings[pftype][2] += pf->pt();
134 else if(dr < 0.4)
rings[pftype][3] += pf->pt();
135 else if(dr < 0.5)
rings[pftype][4] += pf->pt();
138 shapes[pftype][0] += pf->pt() * deta;
139 shapes[pftype][1] += pf->pt() * dphi;
140 shapes[pftype][2] += pf->pt() * deta*deta;
141 shapes[pftype][3] += pf->pt() * dphi*dphi;
142 shapes[pftype][4] += pf->pt() * deta*dphi;
143 isoptsum[pftype] += pf->pt();
147 for(
unsigned int i = 0;
i < shapes.size();
i++)
149 for(
unsigned int j = 0;
j < shapes[
i].size();
j++)
151 shapes[
i][
j] = isoptsum[
i] > 0 ? fabs(shapes[
i][
j]/isoptsum[
i]) : 0;
157 isoRings.
niso = niso;
double deltaR(double eta1, double phi1, double eta2, double phi2)
vector< vector< float > > shapes
vector< vector< float > > rings
double deltaPhi(double phi1, double phi2)