#include <EgammaAnalysis/EgammaIsolationProducers/interface/EgammaHcalIsolationProducer.h>
Public Member Functions | |
EgammaHcalIsolationProducer (const edm::ParameterSet &) | |
virtual void | produce (edm::Event &, const edm::EventSetup &) |
~EgammaHcalIsolationProducer () | |
Private Attributes | |
bool | absolut_ |
edm::ParameterSet | conf_ |
double | egHcalIsoConeSizeIn_ |
double | egHcalIsoConeSizeOut_ |
double | egHcalIsoPtMin_ |
edm::InputTag | emObjectProducer_ |
edm::InputTag | hcalRecHitProducer_ |
Definition at line 34 of file EgammaHcalIsolationProducer.h.
EgammaHcalIsolationProducer::EgammaHcalIsolationProducer | ( | const edm::ParameterSet & | config | ) | [explicit] |
Definition at line 28 of file EgammaHcalIsolationProducer.cc.
References absolut_, conf_, egHcalIsoConeSizeIn_, egHcalIsoConeSizeOut_, egHcalIsoPtMin_, emObjectProducer_, edm::ParameterSet::getParameter(), and hcalRecHitProducer_.
00028 : conf_(config) 00029 { 00030 // use configuration file to setup input/output collection names 00031 emObjectProducer_ = conf_.getParameter<edm::InputTag>("emObjectProducer"); 00032 00033 hcalRecHitProducer_ = conf_.getParameter<edm::InputTag>("hcalRecHitProducer"); 00034 00035 egHcalIsoPtMin_ = conf_.getParameter<double>("etMin"); 00036 egHcalIsoConeSizeIn_ = conf_.getParameter<double>("intRadius"); 00037 egHcalIsoConeSizeOut_ = conf_.getParameter<double>("extRadius"); 00038 00039 absolut_ = conf_.getParameter<bool>("absolut"); 00040 00041 //register your products 00042 produces < reco::CandViewDoubleAssociations >(); 00043 }
EgammaHcalIsolationProducer::~EgammaHcalIsolationProducer | ( | ) |
void EgammaHcalIsolationProducer::produce | ( | edm::Event & | iEvent, | |
const edm::EventSetup & | iSetup | |||
) | [virtual] |
Implements edm::EDProducer.
Definition at line 55 of file EgammaHcalIsolationProducer.cc.
References absolut_, egHcalIsoConeSizeIn_, egHcalIsoConeSizeOut_, egHcalIsoPtMin_, emObjectProducer_, funct::exp(), edm::EventSetup::get(), edm::Ref< C, T, F >::get(), edm::Event::getByLabel(), EgammaHcalIsolation::getHcalEtSum(), hcalRecHitProducer_, i, edm::ESHandle< T >::product(), edm::Event::put(), edm::AssociationVector< KeyRefProd, CVal, KeyRef, SizeType, KeyReferenceHelper >::setValue(), and funct::sin().
00056 { 00057 00058 // Get the filtered objects 00059 edm::Handle< edm::View<reco::Candidate> > emObjectHandle; 00060 iEvent.getByLabel(emObjectProducer_,emObjectHandle); 00061 00062 // Get the barrel hcal hits 00063 edm::Handle<HBHERecHitCollection> hcalRecHitHandle; 00064 iEvent.getByLabel(hcalRecHitProducer_, hcalRecHitHandle); 00065 00066 HBHERecHitMetaCollection mhbhe = HBHERecHitMetaCollection(*hcalRecHitHandle); 00067 00068 //Get Calo Geometry 00069 edm::ESHandle<CaloGeometry> pG; 00070 iSetup.get<CaloGeometryRecord>().get(pG); 00071 const CaloGeometry* caloGeom = pG.product(); 00072 00073 00074 reco::CandViewDoubleAssociations* isoMap = new reco::CandViewDoubleAssociations( reco::CandidateBaseRefProd( emObjectHandle ) ); 00075 00076 00077 EgammaHcalIsolation myHadIsolation(egHcalIsoConeSizeOut_, 00078 egHcalIsoConeSizeIn_, 00079 egHcalIsoPtMin_, 00080 caloGeom, 00081 &mhbhe) ; 00082 00083 00084 for( size_t i = 0 ; i < emObjectHandle->size(); ++i) { 00085 double isoValue = myHadIsolation.getHcalEtSum(&(emObjectHandle->at(i))); 00086 if(absolut_==true){ 00087 isoMap->setValue(i,isoValue); 00088 } 00089 else{ 00090 reco::SuperClusterRef sc = (emObjectHandle->at(i)).get<reco::SuperClusterRef>(); 00091 double et = sc.get()->energy()*sin(2*atan(exp(-sc.get()->eta()))); 00092 isoMap->setValue(i,isoValue/et); 00093 } 00094 } 00095 00096 00097 00098 std::auto_ptr<reco::CandViewDoubleAssociations> isolMap(isoMap); 00099 iEvent.put(isolMap); 00100 00101 }
bool EgammaHcalIsolationProducer::absolut_ [private] |
Definition at line 52 of file EgammaHcalIsolationProducer.h.
Referenced by EgammaHcalIsolationProducer(), and produce().
Definition at line 54 of file EgammaHcalIsolationProducer.h.
Referenced by EgammaHcalIsolationProducer().
double EgammaHcalIsolationProducer::egHcalIsoConeSizeIn_ [private] |
Definition at line 49 of file EgammaHcalIsolationProducer.h.
Referenced by EgammaHcalIsolationProducer(), and produce().
double EgammaHcalIsolationProducer::egHcalIsoConeSizeOut_ [private] |
Definition at line 48 of file EgammaHcalIsolationProducer.h.
Referenced by EgammaHcalIsolationProducer(), and produce().
double EgammaHcalIsolationProducer::egHcalIsoPtMin_ [private] |
Definition at line 47 of file EgammaHcalIsolationProducer.h.
Referenced by EgammaHcalIsolationProducer(), and produce().
Definition at line 44 of file EgammaHcalIsolationProducer.h.
Referenced by EgammaHcalIsolationProducer(), and produce().
Definition at line 45 of file EgammaHcalIsolationProducer.h.
Referenced by EgammaHcalIsolationProducer(), and produce().