CMS 3D CMS Logo

Public Member Functions | Private Attributes

IPTCorrector Class Reference

#include <IPTCorrector.h>

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

List of all members.

Public Member Functions

 IPTCorrector (const edm::ParameterSet &ps)
virtual void produce (edm::Event &evt, const edm::EventSetup &es)
 ~IPTCorrector ()

Private Attributes

double assocCone_
edm::InputTag corSource_
edm::InputTag uncorSource_

Detailed Description

Definition at line 22 of file IPTCorrector.h.


Constructor & Destructor Documentation

IPTCorrector::IPTCorrector ( const edm::ParameterSet ps)

Definition at line 22 of file IPTCorrector.cc.

References assocCone_, corSource_, edm::ParameterSet::getParameter(), and uncorSource_.

                                                       {
  
  corSource_=config.getParameter<edm::InputTag>("corTracksLabel");
  uncorSource_=config.getParameter<edm::InputTag>("filterLabel");
  assocCone_=config.getParameter<double>("associationCone");

  // Register the product
  produces< reco::IsolatedPixelTrackCandidateCollection >();

}
IPTCorrector::~IPTCorrector ( )

Definition at line 33 of file IPTCorrector.cc.

{}

Member Function Documentation

void IPTCorrector::produce ( edm::Event evt,
const edm::EventSetup es 
) [virtual]

Implements edm::EDProducer.

Definition at line 36 of file IPTCorrector.cc.

References assocCone_, corSource_, deltaR(), edm::Event::getByLabel(), AlCaHLTBitMon_ParallelJobs::p, edm::Event::put(), trigger::TriggerTrack, and uncorSource_.

                                                                                 {

  reco::IsolatedPixelTrackCandidateCollection * trackCollection=new reco::IsolatedPixelTrackCandidateCollection;

  edm::Handle<reco::TrackCollection> corTracks;
  theEvent.getByLabel(corSource_,corTracks);

  edm::Handle<trigger::TriggerFilterObjectWithRefs> fiCand;
  theEvent.getByLabel(uncorSource_,fiCand);

  std::vector< edm::Ref<reco::IsolatedPixelTrackCandidateCollection> > isoPixTrackRefs;

  fiCand->getObjects(trigger::TriggerTrack, isoPixTrackRefs);

  int nCand=isoPixTrackRefs.size();

  //loop over input ipt

  for (int p=0; p<nCand; p++) 
    {
      double iptEta=isoPixTrackRefs[p]->track()->eta();
      double iptPhi=isoPixTrackRefs[p]->track()->phi();
  
      int ntrk=0;
      double minDR=100;
      reco::TrackCollection::const_iterator citSel;

      for (reco::TrackCollection::const_iterator cit=corTracks->begin(); cit!=corTracks->end(); cit++)
        {
          double dR=deltaR(cit->eta(), cit->phi(), iptEta, iptPhi);
          if (dR<minDR&&dR<assocCone_) 
            {
              minDR=dR;
              ntrk++;
              citSel=cit;
            }
        }

      if (ntrk>0) 
        {
          reco::IsolatedPixelTrackCandidate newCandidate(reco::TrackRef(corTracks,citSel-corTracks->begin()), isoPixTrackRefs[p]->l1tau(),isoPixTrackRefs[p]->maxPtPxl(), isoPixTrackRefs[p]->sumPtPxl());
          trackCollection->push_back(newCandidate);
        }
    }
  
  // put the product in the event
  std::auto_ptr< reco::IsolatedPixelTrackCandidateCollection > outCollection(trackCollection);
  theEvent.put(outCollection);


}

Member Data Documentation

double IPTCorrector::assocCone_ [private]

Definition at line 35 of file IPTCorrector.h.

Referenced by IPTCorrector(), and produce().

Definition at line 33 of file IPTCorrector.h.

Referenced by IPTCorrector(), and produce().

Definition at line 34 of file IPTCorrector.h.

Referenced by IPTCorrector(), and produce().