35 #include "HepMCG4Interface.hh"
66 -> GetNavigatorForTracking();
69 G4VSolid* solid= world-> GetLogicalVolume()-> GetSolid();
70 EInside qinside= solid-> Inside(pos);
72 if( qinside !=
kInside)
return false;
81 for(HepMC::GenEvent::vertex_const_iterator vitr= hepmcevt->vertices_begin();
82 vitr != hepmcevt->vertices_end(); ++vitr ) {
86 for (HepMC::GenVertex::particle_iterator
87 pitr= (*vitr)->particles_begin(HepMC::children);
88 pitr != (*vitr)->particles_end(HepMC::children); ++pitr) {
90 if (!(*pitr)->end_vertex() && (*pitr)->status()==1) {
98 HepMC::FourVector pos= (*vitr)->
position();
107 for (HepMC::GenVertex::particle_iterator
108 vpitr= (*vitr)->particles_begin(HepMC::children);
109 vpitr != (*vitr)->particles_end(HepMC::children); ++vpitr) {
111 if( (*vpitr)->status() != 1 )
continue;
113 G4int pdgcode= (*vpitr)-> pdg_id();
114 pos= (*vpitr)-> momentum();
119 g4vtx-> SetPrimary(g4prim);
121 g4event-> AddPrimaryVertex(g4vtx);
130 HepMC::GenEvent* aevent=
new HepMC::GenEvent();
144 G4cout <<
"HepMCInterface: no generated particles. run terminated..."