00001 #ifndef RecoBTag_SoftLepton_SoftPFElectronProducer_h 00002 #define RecoBTag_SoftLepton_SoftPFElectronProducer_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 // SoftPFElectronProducer: the SoftPFElectronProducer takes 00014 // a PFCandidateCollection as input and produces a RefVector 00015 // to the likely soft electrons in this collection. 00016 00017 class SoftPFElectronProducer : public edm::EDProducer 00018 { 00019 00020 public: 00021 00022 SoftPFElectronProducer (const edm::ParameterSet& conf); 00023 ~SoftPFElectronProducer(); 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 std::vector<double> barrelInversedRFirstLastHitCuts_; 00037 std::vector<double> barrelRadiusFirstHitCuts_; 00038 std::vector<double> barrelZFirstHitCuts_; 00039 00040 std::vector<double> forwardPtCuts_; 00041 std::vector<double> forwardInverseFBremCuts_; 00042 std::vector<double> forwarddRGsfTrackElectronCuts_; 00043 std::vector<double> forwardRadiusFirstHitCuts_; 00044 std::vector<double> forwardZFirstHitCuts_; 00045 std::vector<double> forwardMVACuts_; 00046 }; 00047 00048 #endif