189 {
190 MsgStream log(
msgSvc(), name() );
191 log << MSG::INFO << "BesBdkRc executing" << endmsg;
192 HepMC::HEPEVT_Wrapper::set_max_number_entries( 2000 );
193 HepMC::HEPEVT_Wrapper::set_sizeof_real( 8 );
194 HepMC::IO_HEPEVT HepEvtIO;
195
198
199 if (
FLAGS.GOODEVT != 1 )
200 {
201 log << MSG::ERROR << " BesBdkRc: fail to generate good event" << endl;
202 return StatusCode::FAILURE;
203 }
204
205 m_numberEvent++;
206 if ( log.level() < MSG::INFO )
LULIST( 1 );
207
209 HepMC::GenEvent* evt = HepEvtIO.read_next_event();
210 evt->set_event_number( m_numberEvent );
211 evt->set_signal_process_id( 1 );
212
213
214 SmartDataPtr<McGenEventCol> anMcCol( eventSvc(), "/Event/Gen" );
215 if ( anMcCol != 0 )
216 {
217
218 MsgStream log(
msgSvc(), name() );
219 log << MSG::INFO << "Add McGenEvent to existing collection" << endmsg;
220 McGenEvent* mcEvent = new McGenEvent( evt );
221 anMcCol->push_back( mcEvent );
222 }
223 else
224 {
225
227 McGenEvent* mcEvent = new McGenEvent( evt );
228 mcColl->push_back( mcEvent );
229 StatusCode sc = eventSvc()->registerObject( "/Event/Gen", mcColl );
230 if ( sc != StatusCode::SUCCESS )
231 {
232 log << MSG::ERROR << "Could not register McGenEvent" << endmsg;
233 delete mcColl;
234 delete evt;
235 delete mcEvent;
236 return StatusCode::FAILURE;
237 }
238 }
239
240
241
242 return StatusCode::SUCCESS;
243}
ObjectVector< McGenEvent > McGenEventCol