#include <RecoEgamma/EgammaHLTProducers/interface/EgammaHLTElectronTrackIsolationProducers.h>
Public Member Functions | |
EgammaHLTElectronTrackIsolationProducers (const edm::ParameterSet &) | |
virtual void | produce (edm::Event &, const edm::EventSetup &) |
~EgammaHLTElectronTrackIsolationProducers () | |
Private Attributes | |
edm::ParameterSet | conf_ |
bool | egCheckForOtherEleInCone_ |
double | egTrkIsoConeSize_ |
double | egTrkIsoPtMin_ |
double | egTrkIsoRSpan_ |
double | egTrkIsoVetoConeSize_ |
double | egTrkIsoZSpan_ |
edm::InputTag | electronProducer_ |
EgammaHLTTrackIsolation * | test_ |
edm::InputTag | trackProducer_ |
Definition at line 34 of file EgammaHLTElectronTrackIsolationProducers.h.
EgammaHLTElectronTrackIsolationProducers::EgammaHLTElectronTrackIsolationProducers | ( | const edm::ParameterSet & | config | ) | [explicit] |
Definition at line 33 of file EgammaHLTElectronTrackIsolationProducers.cc.
References conf_, egCheckForOtherEleInCone_, egTrkIsoConeSize_, egTrkIsoPtMin_, egTrkIsoRSpan_, egTrkIsoVetoConeSize_, egTrkIsoZSpan_, electronProducer_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), test_, and trackProducer_.
00033 : conf_(config) 00034 { 00035 00036 electronProducer_ = conf_.getParameter<edm::InputTag>("electronProducer"); 00037 trackProducer_ = conf_.getParameter<edm::InputTag>("trackProducer"); 00038 00039 egTrkIsoPtMin_ = conf_.getParameter<double>("egTrkIsoPtMin"); 00040 egTrkIsoConeSize_ = conf_.getParameter<double>("egTrkIsoConeSize"); 00041 egTrkIsoZSpan_ = conf_.getParameter<double>("egTrkIsoZSpan"); 00042 egTrkIsoRSpan_ = conf_.getParameter<double>("egTrkIsoRSpan"); 00043 egTrkIsoVetoConeSize_ = conf_.getParameter<double>("egTrkIsoVetoConeSize"); 00044 egCheckForOtherEleInCone_ = conf_.getUntrackedParameter<bool>("egCheckForOtherEleInCone",false); 00045 00046 00047 test_ = new EgammaHLTTrackIsolation(egTrkIsoPtMin_,egTrkIsoConeSize_, 00048 egTrkIsoZSpan_,egTrkIsoRSpan_,egTrkIsoVetoConeSize_); 00049 00050 00051 //register your products 00052 produces < reco::ElectronIsolationMap >(); 00053 00054 }
EgammaHLTElectronTrackIsolationProducers::~EgammaHLTElectronTrackIsolationProducers | ( | ) |
Definition at line 57 of file EgammaHLTElectronTrackIsolationProducers.cc.
References test_.
00057 {delete test_;}
void EgammaHLTElectronTrackIsolationProducers::produce | ( | edm::Event & | iEvent, | |
const edm::EventSetup & | iSetup | |||
) | [virtual] |
Implements edm::EDProducer.
Definition at line 66 of file EgammaHLTElectronTrackIsolationProducers.cc.
References egCheckForOtherEleInCone_, electronProducer_, EgammaHLTTrackIsolation::electronPtSum(), edm::Event::getByLabel(), edm::AssociationMap< Tag >::insert(), edm::Handle< T >::product(), edm::Event::put(), test_, and trackProducer_.
00067 { 00068 00069 // Get the HLT filtered objects 00070 edm::Handle<reco::ElectronCollection> electronHandle; 00071 iEvent.getByLabel(electronProducer_,electronHandle); 00072 00073 // Get the general tracks 00074 edm::Handle<reco::TrackCollection> trackHandle; 00075 iEvent.getByLabel(trackProducer_, trackHandle); 00076 const reco::TrackCollection* trackCollection = trackHandle.product(); 00077 00078 reco::ElectronIsolationMap isoMap; 00079 00080 for(reco::ElectronCollection::const_iterator iElectron = electronHandle->begin(); iElectron != electronHandle->end(); iElectron++){ 00081 00082 00083 reco::ElectronRef electronref(reco::ElectronRef(electronHandle,iElectron - electronHandle->begin())); 00084 reco::TrackRef electrontrackref = iElectron->track(); 00085 00086 float isol; 00087 if (!egCheckForOtherEleInCone_) { 00088 isol = test_->electronPtSum(&(*electrontrackref),trackCollection); 00089 } else { 00090 isol = test_->electronPtSum(&(*electrontrackref),electronHandle.product(),trackCollection); 00091 } 00092 if(electrontrackref->pt() != 0. ) isol = isol/electrontrackref->pt(); 00093 00094 isoMap.insert(electronref, isol); 00095 00096 } 00097 00098 std::auto_ptr<reco::ElectronIsolationMap> isolMap(new reco::ElectronIsolationMap(isoMap)); 00099 iEvent.put(isolMap); 00100 00101 }
Definition at line 47 of file EgammaHLTElectronTrackIsolationProducers.h.
Referenced by EgammaHLTElectronTrackIsolationProducers().
Definition at line 54 of file EgammaHLTElectronTrackIsolationProducers.h.
Referenced by EgammaHLTElectronTrackIsolationProducers(), and produce().
double EgammaHLTElectronTrackIsolationProducers::egTrkIsoConeSize_ [private] |
Definition at line 50 of file EgammaHLTElectronTrackIsolationProducers.h.
Referenced by EgammaHLTElectronTrackIsolationProducers().
double EgammaHLTElectronTrackIsolationProducers::egTrkIsoPtMin_ [private] |
Definition at line 49 of file EgammaHLTElectronTrackIsolationProducers.h.
Referenced by EgammaHLTElectronTrackIsolationProducers().
double EgammaHLTElectronTrackIsolationProducers::egTrkIsoRSpan_ [private] |
Definition at line 52 of file EgammaHLTElectronTrackIsolationProducers.h.
Referenced by EgammaHLTElectronTrackIsolationProducers().
double EgammaHLTElectronTrackIsolationProducers::egTrkIsoVetoConeSize_ [private] |
Definition at line 53 of file EgammaHLTElectronTrackIsolationProducers.h.
Referenced by EgammaHLTElectronTrackIsolationProducers().
double EgammaHLTElectronTrackIsolationProducers::egTrkIsoZSpan_ [private] |
Definition at line 51 of file EgammaHLTElectronTrackIsolationProducers.h.
Referenced by EgammaHLTElectronTrackIsolationProducers().
Definition at line 44 of file EgammaHLTElectronTrackIsolationProducers.h.
Referenced by EgammaHLTElectronTrackIsolationProducers(), and produce().
Definition at line 56 of file EgammaHLTElectronTrackIsolationProducers.h.
Referenced by EgammaHLTElectronTrackIsolationProducers(), produce(), and ~EgammaHLTElectronTrackIsolationProducers().
Definition at line 45 of file EgammaHLTElectronTrackIsolationProducers.h.
Referenced by EgammaHLTElectronTrackIsolationProducers(), and produce().