CMS 3D CMS Logo

Public Types | Public Member Functions | Private Attributes

CalIsolationAlgo< T1, C2 > Class Template Reference

#include <CalIsolationAlgo.h>

List of all members.

Public Types

typedef double value_type

Public Member Functions

 CalIsolationAlgo ()
 CalIsolationAlgo (double dRMin, double dRMax, bool do_propagation, double radius, double minZ, double maxZ, bool theIgnoreMaterial)
double operator() (const T1 &, const C2 &) const
void setBfield (const MagneticField *bField)
 ~CalIsolationAlgo ()

Private Attributes

const MagneticFieldbField_
bool do_propagation_
double dRMax_
double dRMin_
PropagateToCal SrcAtCal

Detailed Description

template<typename T1, typename C2>
class CalIsolationAlgo< T1, C2 >

Definition at line 17 of file CalIsolationAlgo.h.


Member Typedef Documentation

template<typename T1 , typename C2 >
typedef double CalIsolationAlgo< T1, C2 >::value_type

Definition at line 19 of file CalIsolationAlgo.h.


Constructor & Destructor Documentation

template<typename T1 , typename C2 >
CalIsolationAlgo< T1, C2 >::CalIsolationAlgo ( ) [inline]

Definition at line 20 of file CalIsolationAlgo.h.

{ }
template<typename T1 , typename C2 >
CalIsolationAlgo< T1, C2 >::CalIsolationAlgo ( double  dRMin,
double  dRMax,
bool  do_propagation,
double  radius,
double  minZ,
double  maxZ,
bool  theIgnoreMaterial 
) [inline]

Definition at line 21 of file CalIsolationAlgo.h.

                                                                                   :
     dRMin_( dRMin ), dRMax_( dRMax ), do_propagation_( do_propagation ),
     SrcAtCal(radius, minZ, maxZ, theIgnoreMaterial) { }
template<typename T1 , typename C2 >
CalIsolationAlgo< T1, C2 >::~CalIsolationAlgo ( )

Definition at line 40 of file CalIsolationAlgo.h.

                                           {
}

Member Function Documentation

template<typename T1 , typename C2 >
double CalIsolationAlgo< T1, C2 >::operator() ( const T1 &  cand,
const C2 &  elements 
) const

Extrapolate charged particles from their vertex to the point of entry into the calorimeter, if this is requested in the cfg file.

Definition at line 44 of file CalIsolationAlgo.h.

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

                                                       {
  const GlobalPoint Vertex(cand.vx(), cand.vy(), cand.vz());//@@check if this is [cm]!
  //GlobalVector Cand(cand.pt(), cand.eta(), cand.phi()); 
  GlobalVector Cand(cand.px(), cand.py(), cand.pz()); 

  if (do_propagation_ && cand.charge()!=0) 
     SrcAtCal.propagate(Vertex, Cand, cand.charge(), bField_);

  double etSum = 0;
  for( typename C2::const_iterator elem = elements.begin(); 
       elem != elements.end(); ++elem ) {
    double dR = deltaR( elem->eta(), elem->phi(), 
                        (double)Cand.eta(), (double)Cand.phi() );
    if ( dR < dRMax_ && dR > dRMin_ ) {
      etSum += elem->et();
    }
  }
  return etSum;
}
template<typename T1 , typename C2 >
void CalIsolationAlgo< T1, C2 >::setBfield ( const MagneticField bField) [inline]

Member Data Documentation

template<typename T1 , typename C2 >
const MagneticField* CalIsolationAlgo< T1, C2 >::bField_ [private]

Definition at line 34 of file CalIsolationAlgo.h.

Referenced by CalIsolationAlgo< T1, C2 >::setBfield().

template<typename T1 , typename C2 >
bool CalIsolationAlgo< T1, C2 >::do_propagation_ [private]

Definition at line 33 of file CalIsolationAlgo.h.

template<typename T1 , typename C2 >
double CalIsolationAlgo< T1, C2 >::dRMax_ [private]

Definition at line 32 of file CalIsolationAlgo.h.

template<typename T1 , typename C2 >
double CalIsolationAlgo< T1, C2 >::dRMin_ [private]

Definition at line 32 of file CalIsolationAlgo.h.

template<typename T1 , typename C2 >
PropagateToCal CalIsolationAlgo< T1, C2 >::SrcAtCal [private]

Definition at line 35 of file CalIsolationAlgo.h.