Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consumes migration for PFSimParticleProducer in RecoParticleFlow/PFSimProducer #12496

Merged
merged 5 commits into from Jan 5, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
48 changes: 22 additions & 26 deletions RecoParticleFlow/PFSimProducer/plugins/PFSimParticleProducer.cc
Expand Up @@ -70,25 +70,28 @@ PFSimParticleProducer::PFSimParticleProducer(const edm::ParameterSet& iConfig)
processParticles_ =
iConfig.getUntrackedParameter<bool>("process_Particles",true);


inputTagSim_
= iConfig.getParameter<InputTag>("sim");

inputTagSim_ = iConfig.getParameter<InputTag>("sim");
tokenSim_ = consumes<std::vector<SimTrack> >(inputTagSim_);
tokenSimVertices_ = consumes<std::vector<SimVertex> >(inputTagSim_);

//retrieving collections for MC Truth Matching

//modif-beg
inputTagFamosSimHits_
= iConfig.getUntrackedParameter<InputTag>("famosSimHits");
inputTagFamosSimHits_ = iConfig.getUntrackedParameter<InputTag>("famosSimHits");
tokenFamosSimHits_ = consumes<edm::PCaloHitContainer>(inputTagFamosSimHits_);
mctruthMatchingInfo_ =
iConfig.getUntrackedParameter<bool>("MCTruthMatchingInfo",false);
//modif-end

inputTagRecTracks_
= iConfig.getParameter<InputTag>("RecTracks");
inputTagEcalRecHitsEB_
= iConfig.getParameter<InputTag>("ecalRecHitsEB");
inputTagEcalRecHitsEE_
= iConfig.getParameter<InputTag>("ecalRecHitsEE");
inputTagRecTracks_ = iConfig.getParameter<InputTag>("RecTracks");
tokenRecTracks_ = consumes<reco::PFRecTrackCollection>(inputTagRecTracks_);

inputTagEcalRecHitsEB_ = iConfig.getParameter<InputTag>("ecalRecHitsEB");
tokenEcalRecHitsEB_ = consumes<EcalRecHitCollection>(inputTagEcalRecHitsEB_);
inputTagEcalRecHitsEE_ = iConfig.getParameter<InputTag>("ecalRecHitsEE");
tokenEcalRecHitsEE_
= consumes<EcalRecHitCollection>(inputTagEcalRecHitsEE_);

verbose_ =
iConfig.getUntrackedParameter<bool>("verbose",false);
Expand All @@ -110,22 +113,15 @@ PFSimParticleProducer::~PFSimParticleProducer()
delete mySimEvent;
}


void
PFSimParticleProducer::beginRun(const edm::Run& run,
const edm::EventSetup & es)
void PFSimParticleProducer::produce(Event& iEvent,
const EventSetup& iSetup)
{
// init Particle data table (from Pythia)
edm::ESHandle < HepPDT::ParticleDataTable > pdt;
// edm::ESHandle < DefaultConfig::ParticleDataTable > pdt;
es.getData(pdt);
iSetup.getData(pdt);
mySimEvent->initializePdt(&(*pdt));
}


void PFSimParticleProducer::produce(Event& iEvent,
const EventSetup& iSetup)
{
ParticleTable::Sentry ptable(mySimEvent->theTable());
LogDebug("PFSimParticleProducer")<<"START event: "<<iEvent.id().event()
<<" in run "<<iEvent.id().run()<<endl;
Expand Down Expand Up @@ -154,7 +150,7 @@ void PFSimParticleProducer::produce(Event& iEvent,
// pcalohits);
//modif-beg
bool found_phit
= iEvent.getByLabel(inputTagFamosSimHits_,pcalohits);
= iEvent.getByToken(tokenFamosSimHits_,pcalohits);
//modif-end

if(!found_phit) {
Expand Down Expand Up @@ -204,7 +200,7 @@ void PFSimParticleProducer::produce(Event& iEvent,
Handle< reco::PFRecTrackCollection > recTracks;
try{
LogDebug("PFSimParticleProducer")<<"getting PFRecTracks"<<endl;
iEvent.getByLabel(inputTagRecTracks_, recTracks);
iEvent.getByToken(tokenRecTracks_, recTracks);

} catch (cms::Exception& err) {
LogError("PFSimParticleProducer")<<err
Expand All @@ -227,7 +223,7 @@ void PFSimParticleProducer::produce(Event& iEvent,
pOutputPFSimParticleCollection(new reco::PFSimParticleCollection );

Handle<vector<SimTrack> > simTracks;
bool found = iEvent.getByLabel(inputTagSim_,simTracks);
bool found = iEvent.getByToken(tokenSim_,simTracks);
if(!found) {

ostringstream err;
Expand All @@ -240,7 +236,7 @@ void PFSimParticleProducer::produce(Event& iEvent,


Handle<vector<SimVertex> > simVertices;
found = iEvent.getByLabel(inputTagSim_,simVertices);
found = iEvent.getByToken(tokenSimVertices_,simVertices);
if(!found) {
LogError("PFSimParticleProducer")
<<"cannot find sim vertices: "<<inputTagSim_<<endl;
Expand Down Expand Up @@ -296,7 +292,7 @@ void PFSimParticleProducer::produce(Event& iEvent,

// get the ecalBarrel rechits for MC truth matching tool
edm::Handle<EcalRecHitCollection> rhcHandle;
bool found = iEvent.getByLabel(inputTagEcalRecHitsEB_,
bool found = iEvent.getByToken(tokenEcalRecHitsEB_,
rhcHandle);
if(!found) {
ostringstream err;
Expand Down
22 changes: 16 additions & 6 deletions RecoParticleFlow/PFSimProducer/plugins/PFSimParticleProducer.h
Expand Up @@ -12,12 +12,18 @@

#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/MakerMacros.h"
#include "FWCore/Utilities/interface/EDGetToken.h"

#include "SimDataFormats/CaloHit/interface/PCaloHitContainer.h"
#include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
#include "TrackingTools/GeomPropagators/interface/Propagator.h"
#include "RecoParticleFlow/PFTracking/interface/PFGeometry.h"

#include "DataFormats/ParticleFlowReco/interface/PFSimParticle.h"
#include "DataFormats/ParticleFlowReco/interface/PFSimParticleFwd.h"
#include "SimDataFormats/Track/interface/SimTrack.h"
#include "DataFormats/ParticleFlowReco/interface/PFRecTrackFwd.h"
#include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h"
#include "FastSimulation/Event/interface/FSimVertex.h"

#include "RecoParticleFlow/PFProducer/interface/PFBlockAlgo.h"

Expand All @@ -35,7 +41,7 @@ class FSimEvent;



class PFSimParticleProducer : public edm::EDProducer {
class PFSimParticleProducer : public edm::stream::EDProducer<> {
public:

explicit PFSimParticleProducer(const edm::ParameterSet&);
Expand All @@ -44,8 +50,6 @@ class PFSimParticleProducer : public edm::EDProducer {

virtual void produce(edm::Event&, const edm::EventSetup&) override;

virtual void beginRun(const edm::Run& r, const edm::EventSetup & c) override;

typedef edm::Handle<reco::PFRecTrackCollection> TrackHandle;
void getSimIDs( const TrackHandle& trackh,
std::vector<unsigned>& recTrackSimID );
Expand All @@ -54,17 +58,23 @@ class PFSimParticleProducer : public edm::EDProducer {


/// module label for retrieving input simtrack and simvertex
edm::InputTag inputTagSim_;
edm::InputTag inputTagSim_;
edm::EDGetTokenT<std::vector<SimTrack> > tokenSim_;
edm::EDGetTokenT<std::vector<SimVertex> > tokenSimVertices_;

//MC Truth Matching
//modif-beg
bool mctruthMatchingInfo_;
edm::InputTag inputTagFamosSimHits_;
edm::EDGetTokenT<edm::PCaloHitContainer> tokenFamosSimHits_;
//modif-end

edm::InputTag inputTagRecTracks_;
edm::InputTag inputTagRecTracks_;
edm::EDGetTokenT<reco::PFRecTrackCollection> tokenRecTracks_;
edm::InputTag inputTagEcalRecHitsEB_;
edm::EDGetTokenT<EcalRecHitCollection> tokenEcalRecHitsEB_;
edm::InputTag inputTagEcalRecHitsEE_;
edm::EDGetTokenT<EcalRecHitCollection> tokenEcalRecHitsEE_;

// parameters for retrieving true particles information --

Expand Down