CMS 3D CMS Logo

EgammaHcalIsolationProducer Class Reference

#include <EgammaAnalysis/EgammaIsolationProducers/interface/EgammaHcalIsolationProducer.h>

Inheritance diagram for EgammaHcalIsolationProducer:

edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

List of all members.

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_


Detailed Description

Definition at line 34 of file EgammaHcalIsolationProducer.h.


Constructor & Destructor Documentation

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 (  ) 

Definition at line 46 of file EgammaHcalIsolationProducer.cc.

00046 {}


Member Function Documentation

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 }


Member Data Documentation

bool EgammaHcalIsolationProducer::absolut_ [private]

Definition at line 52 of file EgammaHcalIsolationProducer.h.

Referenced by EgammaHcalIsolationProducer(), and produce().

edm::ParameterSet EgammaHcalIsolationProducer::conf_ [private]

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().

edm::InputTag EgammaHcalIsolationProducer::emObjectProducer_ [private]

Definition at line 44 of file EgammaHcalIsolationProducer.h.

Referenced by EgammaHcalIsolationProducer(), and produce().

edm::InputTag EgammaHcalIsolationProducer::hcalRecHitProducer_ [private]

Definition at line 45 of file EgammaHcalIsolationProducer.h.

Referenced by EgammaHcalIsolationProducer(), and produce().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:20:10 2009 for CMSSW by  doxygen 1.5.4