CMS 3D CMS Logo

PFV0Producer Class Reference

#include <RecoParticleFlow/PFTracking/interface/PFV0Producer.h>

Inheritance diagram for PFV0Producer:

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

List of all members.

Public Member Functions

 PFV0Producer (const edm::ParameterSet &)
 Constructor.
 ~PFV0Producer ()
 Destructor.

Private Member Functions

virtual void beginJob (const edm::EventSetup &)
virtual void endJob ()
virtual void produce (edm::Event &, const edm::EventSetup &)
 Produce the PFRecTrack collection.

Private Attributes

edm::ParameterSet conf_
 ParameterSet.


Detailed Description

Definition at line 10 of file PFV0Producer.h.


Constructor & Destructor Documentation

PFV0Producer::PFV0Producer ( const edm::ParameterSet iConfig  )  [explicit]

Constructor.

Definition at line 10 of file PFV0Producer.cc.

00010                                                      :
00011   conf_(iConfig)
00012 {
00013 
00014   produces<reco::PFV0Collection>();
00015 }

PFV0Producer::~PFV0Producer (  ) 

Destructor.

Definition at line 17 of file PFV0Producer.cc.

00018 {
00019 }


Member Function Documentation

void PFV0Producer::beginJob ( const edm::EventSetup iSetup  )  [private, virtual]

Reimplemented from edm::EDProducer.

Definition at line 68 of file PFV0Producer.cc.

00069 {
00070 }

void PFV0Producer::endJob ( void   )  [private, virtual]

Reimplemented from edm::EDProducer.

Definition at line 74 of file PFV0Producer.cc.

00074                      {
00075 }

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

Produce the PFRecTrack collection.

Implements edm::EDProducer.

Definition at line 22 of file PFV0Producer.cc.

References conf_, edm::EventID::event(), edm::Event::getByLabel(), edm::ParameterSet::getParameter(), edm::Event::id(), LogDebug, edm::Event::put(), and edm::EventID::run().

00023 {
00024   LogDebug("PFV0Producer")<<"START event: "<<iEvent.id().event()
00025                           <<" in run "<<iEvent.id().run();
00026   //create the empty collections 
00027   auto_ptr< PFV0Collection > 
00028     pfV0Coll (new PFV0Collection);
00029   
00030   Handle< PFRecTrackCollection > recTracks;
00031   iEvent.getByLabel(conf_.getParameter<InputTag>("PFTrackColl"), recTracks);
00032   
00033   
00034   vector<InputTag> V0list=conf_.getParameter< vector < InputTag > >("V0List");
00035   for (uint il=0; il<V0list.size(); il++){
00036     Handle<VertexCompositeCandidateCollection> V0coll;
00037     iEvent.getByLabel(V0list[il],V0coll);
00038      LogDebug("PFV0Producer")<<V0list[il]<<" contains "<<V0coll->size()<<" V0 candidates ";
00039     for (uint iv=0;iv<V0coll->size();iv++){
00040       VertexCompositeCandidateRef V0(V0coll, iv);
00041       vector<TrackRef> Tracks;
00042       vector<PFRecTrackRef> PFTracks;
00043       for( uint ndx = 0; ndx < V0->numberOfDaughters(); ndx++ ) {
00044         
00045         Tracks.push_back( (dynamic_cast<const RecoChargedCandidate*>(V0->daughter(ndx)))->track() );
00046         for (uint ipt=0;ipt<recTracks->size();ipt++){
00047           PFRecTrackRef pft(recTracks,ipt);
00048           if((dynamic_cast<const RecoChargedCandidate*>(V0->daughter(ndx)))->track()==pft->trackRef())
00049             PFTracks.push_back(pft);
00050           
00051         }
00052       }
00053       if ((PFTracks.size()==2)&&(Tracks.size()==2)){
00054         pfV0Coll->push_back(PFV0(V0,PFTracks,Tracks));
00055       }
00056         
00057       
00058 
00059     }
00060   }
00061   
00062   
00063   iEvent.put(pfV0Coll);
00064 }


Member Data Documentation

edm::ParameterSet PFV0Producer::conf_ [private]

ParameterSet.

Definition at line 27 of file PFV0Producer.h.

Referenced by produce().


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