ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/auterman/PhysicsTools/IsolationUtils/interface/PtIsolationAlgo.h
Revision: 1.1.1.1 (vendor branch)
Committed: Wed May 23 17:29:36 2007 UTC (17 years, 11 months ago) by auterman
Content type: text/plain
Branch: tex, PatCrossCleaner, Demo, SusyScan, scripts, IsolationUtils, MAIN
CVS Tags: start, HEAD
Changes since 1.1: +0 -0 lines
Log Message:

File Contents

# Content
1 #ifndef IsolationUtils_PtIsolationAlgo_h
2 #define IsolationUtils_PtIsolationAlgo_h
3 /* \class PtIsolationAlgo<T, C>
4 *
5 * \author Francesco Fabozzi, INFN
6 */
7 #include "PhysicsTools/Utilities/interface/Math.h"
8
9 template <typename T, typename C>
10 class PtIsolationAlgo {
11 public:
12 typedef double value_type;
13 PtIsolationAlgo() { }
14 PtIsolationAlgo( double dRMin, double dRMax, double dzMax ) :
15 dRMin_( dRMin ), dRMax_( dRMax ), dzMax_( dzMax ) { }
16 double operator()(const T &, const C &) const;
17
18 private:
19 double dRMin_, dRMax_, dzMax_;
20 };
21
22 template <typename T, typename C>
23 double PtIsolationAlgo<T, C>::operator()(const T & cand, const C & elements) const {
24 double ptSum = 0;
25 double candVz = cand.vz();
26 double candEta = cand.eta();
27 double candPhi = cand.phi();
28 for( typename C::const_iterator elem = elements.begin(); elem != elements.end(); ++ elem ) {
29 double dz = fabs( elem->vz() - candVz );
30 double dR = deltaR( elem->eta(), elem->phi(), candEta, candPhi );
31 if ( dz < dzMax_ && dR < dRMax_ && dR > dRMin_ ) {
32 ptSum += elem->pt();
33 }
34 }
35 return ptSum;
36 }
37
38 #endif