CMS 3D CMS Logo

Public Member Functions | Private Attributes

EgammaElectronTkNumIsolationProducer Class Reference

#include <EgammaElectronTkNumIsolationProducer.h>

Inheritance diagram for EgammaElectronTkNumIsolationProducer:
edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

List of all members.

Public Member Functions

 EgammaElectronTkNumIsolationProducer (const edm::ParameterSet &)
virtual void produce (edm::Event &, const edm::EventSetup &)
 ~EgammaElectronTkNumIsolationProducer ()

Private Attributes

edm::InputTag beamspotProducer_
edm::ParameterSet conf_
double drb_
edm::InputTag electronProducer_
double extRadius_
double intRadiusBarrel_
double intRadiusEndcap_
double maxVtxDist_
double ptMin_
double stripBarrel_
double stripEndcap_
edm::InputTag trackProducer_

Detailed Description

Definition at line 23 of file EgammaElectronTkNumIsolationProducer.h.


Constructor & Destructor Documentation

EgammaElectronTkNumIsolationProducer::EgammaElectronTkNumIsolationProducer ( const edm::ParameterSet config) [explicit]

Definition at line 27 of file EgammaElectronTkNumIsolationProducer.cc.

References beamspotProducer_, conf_, drb_, electronProducer_, extRadius_, edm::ParameterSet::getParameter(), intRadiusBarrel_, intRadiusEndcap_, maxVtxDist_, ptMin_, stripBarrel_, stripEndcap_, and trackProducer_.

                                                                                                        : conf_(config)
{
  // use configuration file to setup input/output collection names
  electronProducer_               = conf_.getParameter<edm::InputTag>("electronProducer");
  
  trackProducer_           = conf_.getParameter<edm::InputTag>("trackProducer");
  beamspotProducer_        = conf_.getParameter<edm::InputTag>("BeamspotProducer");

  ptMin_                = conf_.getParameter<double>("ptMin");
  intRadiusBarrel_      = conf_.getParameter<double>("intRadiusBarrel");
  intRadiusEndcap_      = conf_.getParameter<double>("intRadiusEndcap");
  stripBarrel_          = conf_.getParameter<double>("stripBarrel");
  stripEndcap_          = conf_.getParameter<double>("stripEndcap");
  extRadius_            = conf_.getParameter<double>("extRadius");
  maxVtxDist_           = conf_.getParameter<double>("maxVtxDist");
  drb_                  = conf_.getParameter<double>("maxVtxDistXY");

  //register your products
  produces < edm::ValueMap<int> >();

}
EgammaElectronTkNumIsolationProducer::~EgammaElectronTkNumIsolationProducer ( )

Definition at line 49 of file EgammaElectronTkNumIsolationProducer.cc.

{}

Member Function Documentation

void EgammaElectronTkNumIsolationProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
) [virtual]

Implements edm::EDProducer.

Definition at line 53 of file EgammaElectronTkNumIsolationProducer.cc.

References beamspotProducer_, drb_, electronProducer_, extRadius_, edm::helper::Filler< Map >::fill(), edm::Event::getByLabel(), ElectronTkIsolation::getNumberTracks(), i, edm::helper::Filler< Map >::insert(), intRadiusBarrel_, intRadiusEndcap_, maxVtxDist_, edm::Handle< T >::product(), ptMin_, edm::Event::put(), stripBarrel_, stripEndcap_, trackProducer_, and testEve_cfg::tracks.

{
  // Get the  filtered objects
  edm::Handle< reco::GsfElectronCollection> electronHandle;
  iEvent.getByLabel(electronProducer_,electronHandle);
  
  //get the tracks
  edm::Handle<reco::TrackCollection> tracks;
  iEvent.getByLabel(trackProducer_,tracks);
  const reco::TrackCollection* trackCollection = tracks.product();

  //prepare product
  std::auto_ptr<edm::ValueMap<int> > isoMap(new edm::ValueMap<int>());
  edm::ValueMap<int>::Filler filler(*isoMap);
  std::vector<int> retV(electronHandle->size(),0);

  //get beamspot 
  edm::Handle<reco::BeamSpot> beamSpotH;
  iEvent.getByLabel(beamspotProducer_,beamSpotH);
  reco::TrackBase::Point beamspot = beamSpotH->position();
  
  ElectronTkIsolation myTkIsolation (extRadius_,intRadiusBarrel_,intRadiusEndcap_,stripBarrel_,stripEndcap_,ptMin_,maxVtxDist_,drb_,trackCollection,beamspot) ;
  
  for(unsigned int i = 0 ; i < electronHandle->size(); ++i ){
    int isoValue = myTkIsolation.getNumberTracks(&(electronHandle->at(i)));
    retV[i] = isoValue;
  }

  //fill and insert valuemap
  filler.insert(electronHandle,retV.begin(),retV.end());
  filler.fill();
  iEvent.put(isoMap);
}

Member Data Documentation