1 #ifndef IsolationUtils_PtIsolationAlgo_h
2 #define IsolationUtils_PtIsolationAlgo_h
9 template <
typename T,
typename C>
15 double d0Max,
double ptMin ) :
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;
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)