#include <RecoParticleFlow/PFTracking/interface/PFV0Producer.h>
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. |
Definition at line 10 of file PFV0Producer.h.
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 | ( | ) |
void PFV0Producer::beginJob | ( | const edm::EventSetup & | iSetup | ) | [private, virtual] |
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 }
edm::ParameterSet PFV0Producer::conf_ [private] |