![]() |
![]() |
#include <EgammaAnalysis/EgammaIsolationProducers/interface/EgammaEcalIsolationProducer.h>
Public Member Functions | |
EgammaEcalIsolationProducer (const edm::ParameterSet &) | |
virtual void | produce (edm::Event &, const edm::EventSetup &) |
~EgammaEcalIsolationProducer () | |
Private Attributes | |
bool | absolut_ |
edm::InputTag | basicClusterProducer_ |
edm::ParameterSet | conf_ |
edm::InputTag | emObjectProducer_ |
double | etLow_ |
double | extRadius_ |
edm::InputTag | superClusterProducer_ |
Definition at line 34 of file EgammaEcalIsolationProducer.h.
EgammaEcalIsolationProducer::EgammaEcalIsolationProducer | ( | const edm::ParameterSet & | config | ) | [explicit] |
Definition at line 23 of file EgammaEcalIsolationProducer.cc.
References absolut_, basicClusterProducer_, conf_, emObjectProducer_, etLow_, extRadius_, edm::ParameterSet::getParameter(), and superClusterProducer_.
00023 : conf_(config) 00024 { 00025 // use configuration file to setup input/output collection names 00026 emObjectProducer_ = conf_.getParameter<edm::InputTag>("emObjectProducer"); 00027 00028 basicClusterProducer_ = conf_.getParameter<edm::InputTag>("basicClusterProducer"); 00029 superClusterProducer_ = conf_.getParameter<edm::InputTag>("superClusterProducer"); 00030 00031 etLow_ = conf_.getParameter<double>("etMin"); 00032 extRadius_ = conf_.getParameter<double>("extRadius"); 00033 00034 absolut_ = conf_.getParameter<bool>("absolut"); 00035 00036 //register your products 00037 produces < reco::CandViewDoubleAssociations >(); 00038 }
EgammaEcalIsolationProducer::~EgammaEcalIsolationProducer | ( | ) |
void EgammaEcalIsolationProducer::produce | ( | edm::Event & | iEvent, | |
const edm::EventSetup & | iSetup | |||
) | [virtual] |
Implements edm::EDProducer.
Definition at line 50 of file EgammaEcalIsolationProducer.cc.
References absolut_, basicClusterProducer_, emObjectProducer_, etLow_, funct::exp(), extRadius_, edm::Ref< C, T, F >::get(), edm::Event::getByLabel(), EgammaEcalIsolation::getEcalEtSum(), i, edm::Handle< T >::product(), edm::Event::put(), edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::setValue(), funct::sin(), and superClusterProducer_.
00051 { 00052 00053 // Get the filtered objects 00054 edm::Handle< edm::View<reco::Candidate> > emObjectHandle; 00055 iEvent.getByLabel(emObjectProducer_,emObjectHandle); 00056 00057 // Get the basicClusters hcal hits 00058 edm::Handle<reco::BasicClusterCollection> basicClusterHandle; 00059 iEvent.getByLabel(basicClusterProducer_, basicClusterHandle); 00060 const reco::BasicClusterCollection* basicClusters = basicClusterHandle.product(); 00061 00062 // Get the superClusters hcal hits 00063 edm::Handle<reco::SuperClusterCollection> superClusterHandle; 00064 iEvent.getByLabel(superClusterProducer_, superClusterHandle); 00065 const reco::SuperClusterCollection* superClusters = superClusterHandle.product(); 00066 00067 00068 reco::CandViewDoubleAssociations* isoMap = new reco::CandViewDoubleAssociations( reco::CandidateBaseRefProd( emObjectHandle ) ); 00069 00070 00071 EgammaEcalIsolation myEcalIsolation(extRadius_, 00072 etLow_, 00073 basicClusters, 00074 superClusters) ; 00075 00076 00077 for( size_t i = 0 ; i < emObjectHandle->size(); ++i) { 00078 double isoValue = myEcalIsolation.getEcalEtSum(&(emObjectHandle->at(i))); 00079 if(absolut_==true){ 00080 isoMap->setValue(i,isoValue); 00081 } 00082 else{ 00083 reco::SuperClusterRef sc = (emObjectHandle->at(i)).get<reco::SuperClusterRef>(); 00084 double et = sc.get()->energy()*sin(2*atan(exp(-sc.get()->eta()))); 00085 isoMap->setValue(i,isoValue/et); 00086 } 00087 } 00088 00089 00090 00091 std::auto_ptr<reco::CandViewDoubleAssociations> isolMap(isoMap); 00092 iEvent.put(isolMap); 00093 00094 }
bool EgammaEcalIsolationProducer::absolut_ [private] |
Definition at line 52 of file EgammaEcalIsolationProducer.h.
Referenced by EgammaEcalIsolationProducer(), and produce().
Definition at line 45 of file EgammaEcalIsolationProducer.h.
Referenced by EgammaEcalIsolationProducer(), and produce().
Definition at line 54 of file EgammaEcalIsolationProducer.h.
Referenced by EgammaEcalIsolationProducer().
Definition at line 44 of file EgammaEcalIsolationProducer.h.
Referenced by EgammaEcalIsolationProducer(), and produce().
double EgammaEcalIsolationProducer::etLow_ [private] |
Definition at line 48 of file EgammaEcalIsolationProducer.h.
Referenced by EgammaEcalIsolationProducer(), and produce().
double EgammaEcalIsolationProducer::extRadius_ [private] |
Definition at line 49 of file EgammaEcalIsolationProducer.h.
Referenced by EgammaEcalIsolationProducer(), and produce().
Definition at line 46 of file EgammaEcalIsolationProducer.h.
Referenced by EgammaEcalIsolationProducer(), and produce().