示例#1
0
    seglen = 30
    base = [0, 0, 0]
    focal_length = 200
    module = Module(radii=radii, seglen=seglen, base=base, angles=None, focal=focal_length, conic=True)

    detector = Detector(center=[0, 0, 230])  # focal point is at 230 by default

    #  generate nrays from the source
    rays = source.generateRays(module.targetFront, nrays)

    plt.figure()
    plt.hist([ray.energy for ray in rays], normed=True, label='generated rays')
    plt.legend()
    plt.show()

    # pass rays through module
    module.passRays(rays, robust=True)

    # catch rays at detector
    detector.catchRays(rays)

    rays_on_detector = len(detector.rays)

    plot(detector, energy_range=[0, 15])
    plt.show()

    print('Number of rays on Detector ' + str(rays_on_detector))
    print('Time total: ' + str((datetime.now() - tstart).seconds) + ' seconds')
    print('Time per ray (s): ' +
          str(rays_on_detector / float((datetime.now() - tstart).seconds)))