538 MsgStream log(messageService(), name());
542 GenEvent* evt =
new GenEvent(1,1);
544 GenVertex* prod_vtx =
new GenVertex();
546 evt->add_vertex( prod_vtx );
549 GenParticle* p =
new GenParticle( CLHEP::HepLorentzVector(
CTES.momenta[1][0],
CTES.momenta[2][0],
CTES.momenta[3][0],
CTES.momenta[0][0] ), -11, 3);
550 p->suggest_barcode( ++npart );
551 prod_vtx->add_particle_in(p);
554 p =
new GenParticle( CLHEP::HepLorentzVector(
CTES.momenta[1][1],
CTES.momenta[2][1],
CTES.momenta[3][1],
CTES.momenta[0][1] ), 11, 3);
555 p->suggest_barcode( ++npart );
556 prod_vtx->add_particle_in(p);
560 p =
new GenParticle( CLHEP::HepLorentzVector(
CTES.momenta[1][2],
CTES.momenta[2][2],
CTES.momenta[3][2],
CTES.momenta[0][2] ), 22, 1);
561 p->suggest_barcode( ++npart );
562 prod_vtx->add_particle_out(p);
564 if(
CTES.momenta[0][3] != 0 )
566 p =
new GenParticle( CLHEP::HepLorentzVector(
CTES.momenta[1][3],
CTES.momenta[2][3],
CTES.momenta[3][3],
CTES.momenta[0][3] ), 22, 1);
567 p->suggest_barcode( ++npart );
568 prod_vtx->add_particle_out(p);
572 if (
FLAGS.pion == 0) {
574 p =
new GenParticle( CLHEP::HepLorentzVector(
CTES.momenta[1][5],
CTES.momenta[2][5],
CTES.momenta[3][5],
CTES.momenta[0][5] ), -13, 1);
575 p->suggest_barcode( ++npart );
576 prod_vtx->add_particle_out(p);
578 p =
new GenParticle( CLHEP::HepLorentzVector(
CTES.momenta[1][6],
CTES.momenta[2][6],
CTES.momenta[3][6],
CTES.momenta[0][6] ), 13, 1);
579 p->suggest_barcode( ++npart );
580 prod_vtx->add_particle_out(p);
583 if (
FLAGS.pion == 1) {
585 p =
new GenParticle( CLHEP::HepLorentzVector(
CTES.momenta[1][5],
CTES.momenta[2][5],
CTES.momenta[3][5],
CTES.momenta[0][5] ),211, 1);
586 p->suggest_barcode( ++npart );
587 prod_vtx->add_particle_out(p);
589 p =
new GenParticle( CLHEP::HepLorentzVector(
CTES.momenta[1][6],
CTES.momenta[2][6],
CTES.momenta[3][6],
CTES.momenta[0][6] ), -211, 1);
590 p->suggest_barcode( ++npart );
591 prod_vtx->add_particle_out(p);
594 if (
FLAGS.pion == 2) {
596 p =
new GenParticle( CLHEP::HepLorentzVector(
CTES.momenta[1][5],
CTES.momenta[2][5],
CTES.momenta[3][5],
CTES.momenta[0][5] ),111, 1);
597 p->suggest_barcode( ++npart );
598 prod_vtx->add_particle_out(p);
600 p =
new GenParticle( CLHEP::HepLorentzVector(
CTES.momenta[1][6],
CTES.momenta[2][6],
CTES.momenta[3][6],
CTES.momenta[0][6] ), 111, 1);
601 p->suggest_barcode( ++npart );
602 prod_vtx->add_particle_out(p);
604 p =
new GenParticle( CLHEP::HepLorentzVector(
CTES.momenta[1][7],
CTES.momenta[2][7],
CTES.momenta[3][7],
CTES.momenta[0][7] ),-211, 1);
605 p->suggest_barcode( ++npart );
606 prod_vtx->add_particle_out(p);
608 p =
new GenParticle( CLHEP::HepLorentzVector(
CTES.momenta[1][8],
CTES.momenta[2][8],
CTES.momenta[3][8],
CTES.momenta[0][8] ), 211, 1);
609 p->suggest_barcode( ++npart );
610 prod_vtx->add_particle_out(p);
613 if (
FLAGS.pion == 3) {
615 p =
new GenParticle( CLHEP::HepLorentzVector(
CTES.momenta[1][5],
CTES.momenta[2][5],
CTES.momenta[3][5],
CTES.momenta[0][5] ),211, 1);
616 p->suggest_barcode( ++npart );
617 prod_vtx->add_particle_out(p);
619 p =
new GenParticle( CLHEP::HepLorentzVector(
CTES.momenta[1][6],
CTES.momenta[2][6],
CTES.momenta[3][6],
CTES.momenta[0][6] ), -211, 1);
620 p->suggest_barcode( ++npart );
621 prod_vtx->add_particle_out(p);
623 p =
new GenParticle( CLHEP::HepLorentzVector(
CTES.momenta[1][7],
CTES.momenta[2][7],
CTES.momenta[3][7],
CTES.momenta[0][7] ),-211, 1);
624 p->suggest_barcode( ++npart );
625 prod_vtx->add_particle_out(p);
627 p =
new GenParticle( CLHEP::HepLorentzVector(
CTES.momenta[1][8],
CTES.momenta[2][8],
CTES.momenta[3][8],
CTES.momenta[0][8] ), 211, 1);
628 p->suggest_barcode( ++npart );
629 prod_vtx->add_particle_out(p);
632 if (
FLAGS.pion == 4) {
634 p =
new GenParticle( CLHEP::HepLorentzVector(
CTES.momenta[1][5],
CTES.momenta[2][5],
CTES.momenta[3][5],
CTES.momenta[0][5] ),-2212, 1);
635 p->suggest_barcode( ++npart );
636 prod_vtx->add_particle_out(p);
638 p =
new GenParticle( CLHEP::HepLorentzVector(
CTES.momenta[1][6],
CTES.momenta[2][6],
CTES.momenta[3][6],
CTES.momenta[0][6] ), 2212, 1);
639 p->suggest_barcode( ++npart );
640 prod_vtx->add_particle_out(p);
643 if (
FLAGS.pion == 5) {
645 p =
new GenParticle( CLHEP::HepLorentzVector(
CTES.momenta[1][5],
CTES.momenta[2][5],
CTES.momenta[3][5],
CTES.momenta[0][5] ),-2112, 1);
646 p->suggest_barcode( ++npart );
647 prod_vtx->add_particle_out(p);
649 p =
new GenParticle( CLHEP::HepLorentzVector(
CTES.momenta[1][6],
CTES.momenta[2][6],
CTES.momenta[3][6],
CTES.momenta[0][6] ), 2112, 1);
650 p->suggest_barcode( ++npart );
651 prod_vtx->add_particle_out(p);
654 if (
FLAGS.pion == 6) {
656 p =
new GenParticle( CLHEP::HepLorentzVector(
CTES.momenta[1][5],
CTES.momenta[2][5],
CTES.momenta[3][5],
CTES.momenta[0][5] ),321, 1);
657 p->suggest_barcode( ++npart );
658 prod_vtx->add_particle_out(p);
660 p =
new GenParticle( CLHEP::HepLorentzVector(
CTES.momenta[1][6],
CTES.momenta[2][6],
CTES.momenta[3][6],
CTES.momenta[0][6] ), -321, 1);
661 p->suggest_barcode( ++npart );
662 prod_vtx->add_particle_out(p);
665 if (
FLAGS.pion == 7) {
667 p =
new GenParticle( CLHEP::HepLorentzVector(
CTES.momenta[1][5],
CTES.momenta[2][5],
CTES.momenta[3][5],
CTES.momenta[0][5] ), 311, 1);
668 p->suggest_barcode( ++npart );
669 prod_vtx->add_particle_out(p);
671 p =
new GenParticle( CLHEP::HepLorentzVector(
CTES.momenta[1][6],
CTES.momenta[2][6],
CTES.momenta[3][6],
CTES.momenta[0][6] ), -311, 1);
672 p->suggest_barcode( ++npart );
673 prod_vtx->add_particle_out(p);
676 if (
FLAGS.pion == 8) {
678 p =
new GenParticle( CLHEP::HepLorentzVector(
CTES.momenta[1][5],
CTES.momenta[2][5],
CTES.momenta[3][5],
CTES.momenta[0][5] ), 211, 1);
679 p->suggest_barcode( ++npart );
680 prod_vtx->add_particle_out(p);
682 p =
new GenParticle( CLHEP::HepLorentzVector(
CTES.momenta[1][6],
CTES.momenta[2][6],
CTES.momenta[3][6],
CTES.momenta[0][6] ), -211, 1);
683 p->suggest_barcode( ++npart );
684 prod_vtx->add_particle_out(p);
686 p =
new GenParticle( CLHEP::HepLorentzVector(
CTES.momenta[1][7],
CTES.momenta[2][7],
CTES.momenta[3][7],
CTES.momenta[0][7] ), 111, 1);
687 p->suggest_barcode( ++npart );
688 prod_vtx->add_particle_out(p);
691 if (
FLAGS.pion == 9) {
693 p =
new GenParticle( CLHEP::HepLorentzVector(
CTES.momenta[1][5],
CTES.momenta[2][5],
CTES.momenta[3][5],
CTES.momenta[0][5] ), -3122, 2);
694 p->suggest_barcode( ++npart );
695 prod_vtx->add_particle_out(p);
697 p =
new GenParticle( CLHEP::HepLorentzVector(
CTES.momenta[1][6],
CTES.momenta[2][6],
CTES.momenta[3][6],
CTES.momenta[0][6] ), 3122, 2);
698 p->suggest_barcode( ++npart );
699 prod_vtx->add_particle_out(p);
701 p =
new GenParticle( CLHEP::HepLorentzVector(
CTES.momenta[1][7],
CTES.momenta[2][7],
CTES.momenta[3][7],
CTES.momenta[0][7] ), 211, 1);
702 p->suggest_barcode( ++npart );
703 prod_vtx->add_particle_out(p);
705 p =
new GenParticle( CLHEP::HepLorentzVector(
CTES.momenta[1][8],
CTES.momenta[2][8],
CTES.momenta[3][8],
CTES.momenta[0][8] ), -2212, 1);
706 p->suggest_barcode( ++npart );
707 prod_vtx->add_particle_out(p);
709 p =
new GenParticle( CLHEP::HepLorentzVector(
CTES.momenta[1][9],
CTES.momenta[2][9],
CTES.momenta[3][9],
CTES.momenta[0][9] ), -211, 1);
710 p->suggest_barcode( ++npart );
711 prod_vtx->add_particle_out(p);
713 p =
new GenParticle( CLHEP::HepLorentzVector(
CTES.momenta[1][10],
CTES.momenta[2][10],
CTES.momenta[3][10],
CTES.momenta[0][10] ), 2212, 1);
714 p->suggest_barcode( ++npart );
715 prod_vtx->add_particle_out(p);
718 if( log.level() < MSG::INFO )
724 SmartDataPtr<McGenEventCol> anMcCol(eventSvc(),
"/Event/Gen");
728 MsgStream log(messageService(), name());
729 log << MSG::INFO <<
"Add McGenEvent to existing collection" << endreq;
731 anMcCol->push_back(mcEvent);
738 mcColl->push_back(mcEvent);
739 StatusCode sc = eventSvc()->registerObject(
"/Event/Gen",mcColl);
740 if (sc != StatusCode::SUCCESS)
742 log << MSG::ERROR <<
"Could not register McGenEvent" << endreq;
746 return StatusCode::FAILURE;
750 log << MSG::INFO <<
"McGenEventCol created and " << npart <<
" particles stored in McGenEvent" << endreq;
754 return StatusCode::SUCCESS;