00001 #include "FWCore/Utilities/interface/EDMException.h" 00002 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00003 00004 #include "AnalysisDataFormats/TopObjects/interface/StGenEvent.h" 00005 #include "TopQuarkAnalysis/TopEventProducers/interface/TopDecaySubset.h" 00006 #include "TopQuarkAnalysis/TopEventProducers/interface/StGenEventReco.h" 00007 00008 StGenEventReco::StGenEventReco(const edm::ParameterSet& cfg): 00009 src_ ( cfg.getParameter<edm::InputTag>( "src" ) ), 00010 init_( cfg.getParameter<edm::InputTag>( "init" ) ) 00011 { 00012 produces<StGenEvent>(); 00013 } 00014 00015 StGenEventReco::~StGenEventReco() 00016 { 00017 } 00018 00019 void 00020 StGenEventReco::produce(edm::Event& evt, const edm::EventSetup& setup) 00021 { 00022 edm::Handle<reco::GenParticleCollection> parts; 00023 evt.getByLabel(src_, parts); 00024 00025 edm::Handle<reco::GenParticleCollection> inits; 00026 evt.getByLabel(init_, inits); 00027 00028 //add TopDecayTree 00029 reco::GenParticleRefProd cands( parts ); 00030 00031 //add InitialStatePartons 00032 reco::GenParticleRefProd initParts( inits ); 00033 00034 //add genEvt to the output stream 00035 StGenEvent* genEvt = new StGenEvent( cands, initParts ); 00036 std::auto_ptr<StGenEvent> gen( genEvt ); 00037 evt.put( gen ); 00038 }