CMS 3D CMS Logo

Public Member Functions | Private Attributes

EgammaPhotonTkNumIsolationProducer Class Reference

#include <EgammaPhotonTkNumIsolationProducer.h>

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

List of all members.

Public Member Functions

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

Private Attributes

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

Detailed Description

Definition at line 20 of file EgammaPhotonTkNumIsolationProducer.h.


Constructor & Destructor Documentation

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

Definition at line 23 of file EgammaPhotonTkNumIsolationProducer.cc.

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

                                                                                                    : conf_(config)
{
 // use configuration file to setup input/output collection names
  photonProducer_               = conf_.getParameter<edm::InputTag>("photonProducer");
  
  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> >();
}
EgammaPhotonTkNumIsolationProducer::~EgammaPhotonTkNumIsolationProducer ( )

Definition at line 45 of file EgammaPhotonTkNumIsolationProducer.cc.

{}

Member Function Documentation

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

Implements edm::EDProducer.

Definition at line 54 of file EgammaPhotonTkNumIsolationProducer.cc.

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

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

  //get beamspot
  edm::Handle<reco::BeamSpot> beamSpotH;
  iEvent.getByLabel(beamspotProducer_,beamSpotH);
  reco::TrackBase::Point beamspot = beamSpotH->position();

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

  PhotonTkIsolation myTkIsolation(extRadius_,intRadiusBarrel_,intRadiusEndcap_,stripBarrel_,stripEndcap_,ptMin_,maxVtxDist_,drb_,trackCollection,beamspot) ;

  for(unsigned int i = 0 ; i < photonHandle->size(); ++i ){
    int isoValue = myTkIsolation.getNumberTracks(&(photonHandle->at(i)));
    retV[i] = isoValue;
  }
   


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


}

Member Data Documentation