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