Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:24:03

0001 //
0002 //
0003 
0004 #ifndef PhysicsTools_PatUtils_CaloIsolationEnergy_h
0005 #define PhysicsTools_PatUtils_CaloIsolationEnergy_h
0006 
0007 /**
0008   \class    pat::CaloIsolationEnergy CaloIsolationEnergy.h "PhysicsTools/PatUtils/interface/CaloIsolationEnergy.h"
0009   \brief    Calculates a lepton's calorimetric isolation energy
0010 
0011    CaloIsolationEnergy calculates a calorimetric isolation energy in
0012    a half-cone (dependent on the lepton's charge) around the lepton's impact
0013    position on the ECAL surface, as defined in CMS Note 2006/024
0014 
0015   \author   Steven Lowette
0016   \version  $Id: CaloIsolationEnergy.h,v 1.2 2008/02/28 14:54:24 llista Exp $
0017 */
0018 #include <vector>
0019 
0020 class MagneticField;
0021 class TrackToEcalPropagator;
0022 class CaloTower;
0023 
0024 namespace reco {
0025   class Track;
0026 }
0027 
0028 namespace pat {
0029   class Muon;
0030   class Electron;
0031 
0032   class CaloIsolationEnergy {
0033   public:
0034     CaloIsolationEnergy();
0035     virtual ~CaloIsolationEnergy();
0036 
0037     float calculate(const Electron& anElectron,
0038                     const std::vector<CaloTower>& theTowers,
0039                     float isoConeElectron = 0.3) const;
0040     float calculate(const Muon& aMuon, const std::vector<CaloTower>& theTowers, float isoConeMuon = 0.3) const;
0041 
0042   private:
0043     float calculate(const reco::Track& track,
0044                     const float leptonEnergy,
0045                     const std::vector<CaloTower>& theTowers,
0046                     float isoCone) const;
0047   };
0048 
0049 }  // namespace pat
0050 
0051 #endif