00001 #ifndef RecoBTag_SoftLepton_SoftElectronCandProducer_h 00002 #define RecoBTag_SoftLepton_SoftElectronCandProducer_h 00003 00004 00005 #include <vector> 00006 00007 #include "FWCore/Framework/interface/EDProducer.h" 00008 #include "FWCore/Framework/interface/Event.h" 00009 #include "FWCore/Framework/interface/EventSetup.h" 00010 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00011 #include "DataFormats/EgammaCandidates/interface/GsfElectron.h" 00012 00013 // SoftElectronCandProducer: the SoftElectronCandProducer takes 00014 // a PFCandidateCollection as input and produces a ValueMap 00015 // to point out the likely soft electrons in this collection. 00016 00017 class SoftElectronCandProducer : public edm::EDProducer 00018 { 00019 00020 public: 00021 00022 SoftElectronCandProducer (const edm::ParameterSet& conf); 00023 ~SoftElectronCandProducer(); 00024 00025 private: 00026 00027 virtual void produce(edm::Event& iEvent, const edm::EventSetup& iSetup); 00028 bool isClean(const reco::GsfElectron& gsfcandidate); 00029 00030 edm::InputTag gsfElectronTag_; 00031 00032 std::vector<double> barrelPtCuts_; 00033 std::vector<double> barreldRGsfTrackElectronCuts_; 00034 std::vector<double> barrelEemPinRatioCuts_; 00035 std::vector<double> barrelMVACuts_; 00036 00037 std::vector<double> forwardPtCuts_; 00038 std::vector<double> forwardInverseFBremCuts_; 00039 std::vector<double> forwarddRGsfTrackElectronCuts_; 00040 std::vector<double> forwardMVACuts_; 00041 }; 00042 00043 #endif