Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-09 07:58:21

0001 import random
0002 # import numpy as np
0003 import math
0004 import time
0005 import json
0006 import sys
0007 
0008 
0009 def generator():
0010     while True:
0011         yield random.random()
0012 
0013 
0014 def evgen_single_point(x, nevents=10000, outputfile='out.json'):
0015     # generate n events and fill "histo"
0016     m1, m2 = x
0017     thresh = (1 + math.tan(m1 - m2)) / 2.
0018     accepted_events = []
0019     for i, rn in enumerate(generator()):
0020         if i == nevents:
0021             break
0022         time.sleep(0.001)
0023         rnd = random.random()
0024         if rnd < thresh:
0025             accepted_events.append(1)
0026     json.dump({'accepted': float(sum(accepted_events))}, open(outputfile, 'w'))
0027 
0028 
0029 if __name__ == '__main__':
0030     evgen_single_point([float(sys.argv[1]), float(sys.argv[2])], nevents=int(sys.argv[3]), outputfile=sys.argv[4])