1 #ifndef IsolationUtils_CalIsolationAlgo_h
2 #define IsolationUtils_CalIsolationAlgo_h
16 template <
typename T1,
typename C2>
24 SrcAtCal(radius, minZ, maxZ, theIgnoreMaterial) { }
29 double operator()(
const T1 &,
const C2 &)
const;
39 template <
typename T1,
typename C2>
45 const GlobalPoint Vertex(cand.vx(), cand.vy(), cand.vz());
51 if (do_propagation_ && cand.charge()!=0)
52 SrcAtCal.propagate(Vertex, Cand, cand.charge(), bField_);
55 for(
typename C2::const_iterator elem = elements.begin();
56 elem != elements.end(); ++elem ) {
57 double dR =
deltaR( elem->eta(), elem->phi(),
58 (double)Cand.eta(), (double)Cand.phi() );
59 if ( dR < dRMax_ && dR > dRMin_ ) {
void setBfield(const MagneticField *bField)
const MagneticField * bField_
double operator()(const T1 &, const C2 &) const
CalIsolationAlgo(double dRMin, double dRMax, bool do_propagation, double radius, double minZ, double maxZ, bool theIgnoreMaterial)
double deltaR(double eta1, double eta2, double phi1, double phi2)