CMS 3D CMS Logo

Public Types | Public Member Functions | Private Attributes

PtIsolationAlgo< T, C > Class Template Reference

#include <PtIsolationAlgo.h>

List of all members.

Public Types

typedef double value_type

Public Member Functions

double operator() (const T &, const C &) const
 PtIsolationAlgo ()
 PtIsolationAlgo (double dRMin, double dRMax, double dzMax, double d0Max, double ptMin)

Private Attributes

double d0Max_
double dRMax_
double dRMin_
double dzMax_
double ptMin_

Detailed Description

template<typename T, typename C>
class PtIsolationAlgo< T, C >

Definition at line 10 of file PtIsolationAlgo.h.


Member Typedef Documentation

template<typename T , typename C >
typedef double PtIsolationAlgo< T, C >::value_type

Definition at line 12 of file PtIsolationAlgo.h.


Constructor & Destructor Documentation

template<typename T , typename C >
PtIsolationAlgo< T, C >::PtIsolationAlgo ( ) [inline]

Definition at line 13 of file PtIsolationAlgo.h.

{ }
template<typename T , typename C >
PtIsolationAlgo< T, C >::PtIsolationAlgo ( double  dRMin,
double  dRMax,
double  dzMax,
double  d0Max,
double  ptMin 
) [inline]

Definition at line 14 of file PtIsolationAlgo.h.

                                                :
    dRMin_( dRMin ), dRMax_( dRMax ), dzMax_( dzMax ),
    d0Max_( d0Max ), ptMin_( ptMin ) { }

Member Function Documentation

template<typename T , typename C >
double PtIsolationAlgo< T, C >::operator() ( const T cand,
const C &  elements 
) const

Definition at line 25 of file PtIsolationAlgo.h.

References deltaR(), HTMLExport::elem(), and mathSSE::sqrt().

                                                                                 {
  double ptSum = 0;
  double candVz = cand.vz();
  double candEta = cand.eta();
  double candPhi = cand.phi();
  for( typename C::const_iterator elem = elements.begin(); elem != elements.end(); ++ elem ) {
    double elemPt = elem->pt();
    if ( elemPt < ptMin_ ) continue;
    double elemVx = elem->vx();
    double elemVy = elem->vy();
    double elemD0 = sqrt( elemVx * elemVx + elemVy * elemVy );
    if ( elemD0 > d0Max_ ) continue;
    double dz = fabs( elem->vz() - candVz );
    if ( dz > dzMax_ ) continue;
    double dR = deltaR( elem->eta(), elem->phi(), candEta, candPhi );
    if ( (dR > dRMax_) || (dR < dRMin_) ) continue;
    ptSum += elemPt;
  }
  return ptSum;
}

Member Data Documentation

template<typename T , typename C >
double PtIsolationAlgo< T, C >::d0Max_ [private]

Definition at line 21 of file PtIsolationAlgo.h.

template<typename T , typename C >
double PtIsolationAlgo< T, C >::dRMax_ [private]

Definition at line 21 of file PtIsolationAlgo.h.

template<typename T , typename C >
double PtIsolationAlgo< T, C >::dRMin_ [private]

Definition at line 21 of file PtIsolationAlgo.h.

template<typename T , typename C >
double PtIsolationAlgo< T, C >::dzMax_ [private]

Definition at line 21 of file PtIsolationAlgo.h.

template<typename T , typename C >
double PtIsolationAlgo< T, C >::ptMin_ [private]

Definition at line 21 of file PtIsolationAlgo.h.