Beispiel #1
0
def run(input_file):
    import DDG4
    from DDG4 import OutputLevel as Output
    kernel = DDG4.Kernel()
    description = kernel.detectorDescription()
    gen = DDG4.GeneratorAction(kernel, "Geant4InputAction/Input")
    kernel.generatorAction().adopt(gen)
    gen.Input = "Geant4EventReaderHepMC|/home/frankm/SW/data/hepmc_geant4.dat"
    gen.Input = "Geant4EventReaderHepMC|/home/frankm/SW/data/"
    gen.Input = "Geant4EventReaderHepMC|" + input_file
    gen.OutputLevel = Output.DEBUG
    gen.HaveAbort = False
    prim_vtx = DDG4.std_vector('dd4hep::sim::Geant4Vertex*')()
    parts = gen.new_particles()
    ret = 1
    while ret:
        try:
            ret = gen.readParticles(0, prim_vtx, parts)
        except Exception, X:
            print '\nException: readParticles:', str(X)
            ret = None
        if ret:
            for v in prim_vtx:
                print 'Mask:%04X (X:%8.2g,Y:%8.2g,Z:%8.2g) time:%8.2g Outgoing:%4d particles'%\
                      (v.mask,v.x,v.y,v.z,v.time,len(v.out),)
            for p in parts:
                print 'Mask:%04X ID:%5d PDG-id:%8d Charge:%1d Mass:%8.3g Momentum:(%8.2g,%8.2g,%8.2g) '\
                      'Vertex:(%8.2g,%8.2g,%8.2g) NDau:%2d Status:%08X'%\
                      (p.mask,p.id,p.pdgID,int(p.charge3()),p.mass,p.psx,p.psy,p.psz,\
                       p.vsx,p.vsy,p.vsz,len(p.daughters),p.status,)
            parts.clear()
        else:
            print '*** End of recordset or read failure.....'
        print 132 * '*'
Beispiel #2
0
def run(input_file):
  import DDG4
  from DDG4 import OutputLevel as Output
  kernel = DDG4.Kernel()
  description = kernel.detectorDescription()
  gen = DDG4.GeneratorAction(kernel,"Geant4InputAction/Input")
  kernel.generatorAction().adopt(gen)
  gen.Input = "Geant4EventReaderHepMC|"+input_file
  gen.OutputLevel = Output.DEBUG
  gen.HaveAbort = False
  prim_vtx = DDG4.std_vector('dd4hep::sim::Geant4Vertex*')()
  parts = gen.new_particles()
  ret = 1
  evtid=0
  while ret:
    try:
      ret = gen.readParticles(evtid,prim_vtx,parts)
      evtid = evtid + 1
    except Exception,X:
      logging.info( '\nException: readParticles: %s',str(X))
      ret = None
    if ret:
      for v in prim_vtx:
        logging.info( 'Mask:%04X (X:%8.2g,Y:%8.2g,Z:%8.2g) time:%8.2g Outgoing:%4d particles',
                      v.mask,v.x,v.y,v.z,v.time,len(v.out))
      for p in parts:
        logging.info( 'Mask:%04X ID:%5d PDG-id:%8d Charge:%1d Mass:%8.3g Momentum:(%8.2g,%8.2g,%8.2g) '\
                      'Vertex:(%8.2g,%8.2g,%8.2g) NDau:%2d Status:%08X',
                      p.mask,p.id,p.pdgID,int(p.charge3()),p.mass,p.psx,p.psy,p.psz,\
                      p.vsx,p.vsy,p.vsz,len(p.daughters),p.status)
      parts.clear()
    else:
      logging.info( '*** End of recordset or read failure.....')
    logging.info( 132*'*')
Beispiel #3
0
def run(input_file):
    import DDG4
    from DDG4 import OutputLevel as Output
    kernel = DDG4.Kernel()
    kernel.detectorDescription()
    gen = DDG4.GeneratorAction(kernel, "Geant4InputAction/Input")
    kernel.generatorAction().adopt(gen)
    gen.Input = "Geant4EventReaderHepMC|" + input_file
    gen.OutputLevel = Output.DEBUG
    gen.HaveAbort = False
    prim_vtx = DDG4.std_vector(str('dd4hep::sim::Geant4Vertex*'))()
    parts = gen.new_particles()
    ret = 1
    evtid = 0
    while ret:
        try:
            parts.clear()
            prim_vtx.clear()
            ret = gen.readParticles(evtid, prim_vtx, parts)
            evtid = evtid + 1
        except Exception as X:
            logger.error('\nException: readParticles: %s', str(X))
            if evtid > 0:
                os._exit(0)
        if ret:
            for v in prim_vtx:
                logger.info(
                    'Mask:%04X (X:%8.2g,Y:%8.2g,Z:%8.2g) time:%8.2g Outgoing:%4d particles',
                    v.mask, v.x, v.y, v.z, v.time, len(v.out))
            for p in parts:
                logger.info(
                    'Mask:%04X ID:%5d PDG-id:%8d Charge:%1d Mass:%8.3g Momentum:(%8.2g,%8.2g,%8.2g) '
                    'Vertex:(%8.2g,%8.2g,%8.2g) NDau:%2d Status:%08X', p.mask,
                    p.id, p.pdgID, int(p.charge3()), p.mass, p.psx, p.psy,
                    p.psz, p.vsx, p.vsy, p.vsz, len(p.daughters), p.status)
            parts.clear()
        else:
            logger.info('*** End of recordset or read failure.....')
        logger.info(132 * '*')
    return 0