1 #ifndef IsolationUtils_PtIsolationAlgo_h
2 #define IsolationUtils_PtIsolationAlgo_h
9 template <
typename T,
typename C>
24 template <
typename T,
typename C>
27 double candVz = cand.vz();
28 double candEta = cand.eta();
29 double candPhi = cand.phi();
30 for(
typename C::const_iterator elem = elements.begin(); elem != elements.end(); ++ elem ) {
31 double elemPt = elem->pt();
32 if ( elemPt < ptMin_ )
continue;
33 double elemVx = elem->vx();
34 double elemVy = elem->vy();
35 double elemD0 =
sqrt( elemVx * elemVx + elemVy * elemVy );
36 if ( elemD0 > d0Max_ )
continue;
37 double dz = fabs( elem->vz() - candVz );
38 if ( dz > dzMax_ )
continue;
39 double dR =
deltaR( elem->eta(), elem->phi(), candEta, candPhi );
40 if ( (dR > dRMax_) || (dR < dRMin_) )
continue;
double operator()(const T &, const C &) const
PtIsolationAlgo(double dRMin, double dRMax, double dzMax, double d0Max, double ptMin)
double deltaR(double eta1, double eta2, double phi1, double phi2)