00001 #ifndef ElectronIDAlgo_H 00002 #define ElectronIDAlgo_H 00003 00004 #include <memory> 00005 00006 #include "FWCore/Framework/interface/Frameworkfwd.h" 00007 #include "FWCore/Framework/interface/Event.h" 00008 #include "FWCore/Framework/interface/MakerMacros.h" 00009 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00010 #include "FWCore/Framework/interface/ESHandle.h" 00011 #include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h" 00012 #include "DataFormats/EgammaReco/interface/BasicClusterFwd.h" 00013 #include "DataFormats/EgammaCandidates/interface/GsfElectron.h" 00014 #include "RecoEcal/EgammaCoreTools/interface/EcalClusterLazyTools.h" 00015 #include "Geometry/CaloGeometry/interface/CaloGeometry.h" 00016 #include "Geometry/CaloTopology/interface/CaloTopology.h" 00017 #include "Geometry/Records/interface/CaloGeometryRecord.h" 00018 #include "Geometry/CaloEventSetup/interface/CaloTopologyRecord.h" 00019 00020 00021 class ElectronIDAlgo { 00022 00023 public: 00024 00025 ElectronIDAlgo(){}; 00026 00027 virtual ~ElectronIDAlgo(){}; 00028 00029 void baseSetup(const edm::ParameterSet& conf) ; 00030 virtual void setup(const edm::ParameterSet& conf) {}; 00031 virtual double result(const reco::GsfElectron*, const edm::Event&, const edm::EventSetup&) {return 0.;}; 00032 00033 protected: 00034 00035 EcalClusterLazyTools getClusterShape(const edm::Event&, const edm::EventSetup&); 00036 00037 edm::InputTag reducedBarrelRecHitCollection_; 00038 edm::InputTag reducedEndcapRecHitCollection_; 00039 }; 00040 00041 #endif // ElectronIDAlgo_H