Belle II Software  release-05-01-25
goall_SAD.py
1 import os
2 
3 # run as "python beast/scripts/phase2/goall_SAD.py" from the main directory
4 
5 # == que list ==
6 # s <6h
7 # l <48h
8 # b_a <48h
9 # b_l <720h
10 
11 
12 phase = '2' # geometry for phase2
13 outdir_base = '/group/belle2/BGcampaigns/g4sim/' # output base directory
14 outdir_sub = 'phase2.1.4_collimators_1_upd' # output sub directory
15 
16 fileSAD = 'phase2.1.4_collimators_1_upd' # sad filename from /group/belle2/BGcampaigns/SAD/forG4/
17 # check the directory for existing SAD samples
18 # 28.2.2019
19 # early_phase3_1_step5, early phase 3; use 31 for phase!
20 # phase2.1.7_Touschek_step5
21 # phase2.1.3_june_Touschek_EM_0
22 # phase2.1.3_june_Touschek_EM_1
23 # phase2.1.3_june_Touschek_EM_2
24 # phase2.1.4_collimators_1_upd ; should be same as phase2.1.3_june_Touschek_EM_0
25 
26 outdir = outdir_base + outdir_sub
27 
28 bkgs = ['Touschek LER', 'Coulomb LER', 'Brems LER', 'Touschek HER', 'Coulomb HER', 'Brems HER'] # bacground types
29 
30 bkgs_flag = [1, 1, 1, 1, 1, 1] # skip backgrounds with flag 0
31 
32 time = [500, 500, 10000, 1000, 1000, 10000] # simulation time in us (per job)
33 
34 files = 400 # number of jobs to be commited for each background type
35 
36 q = ['l', 'l', 's', 's', 's', 's'] # queue for jobs of given background
37 
38 i = 0
39 skp = 0
40 for f in bkgs:
41  if bkgs_flag[i] != 1:
42  i += 1
43  continue
44  if not os.path.isdir(outdir):
45  os.mkdir(outdir)
46  print("Made directory " + outdir)
47  if not os.path.isdir(outdir + '/output'):
48  os.mkdir(outdir + '/output')
49  print("Made directory " + outdir + '/output')
50  if not os.path.isdir(outdir + '/log'):
51  os.mkdir(outdir + '/log')
52  print("Made directory " + outdir + '/log')
53  for ifile in range(0, files):
54  logname = f + '_' + str(ifile) + '.log'
55  logname = "_".join(logname.split())
56  com = 'bsub -q ' + q[i] + ' -o /dev/null \"basf2 beast/scripts/phase2/generateSADBg.py ' + f + ' ' + str(time[i]) + ' ' + \
57  str(ifile) + ' study ' + phase + ' ' + fileSAD + ' ' + outdir + '/output/ >& ' + outdir + '/log/' + logname + '\"'
58 # test locally
59 # com = 'basf2 beast/scripts/phase2/generateSADBg.py ' + f + ' ' + str(time[i]) + ' ' + str(ifile) + ' study ' + phase + \
60 # ' ' + fileSAD + ' ' + outdir + '/output/'
61  print(com)
62  if os.path.isfile(outdir + '/log/' + logname) and skp == 0:
63  answ = raw_input("Output file already exists. Overwrite for all (y), skip existing (n): ")
64  if answ == 'y':
65  skp = 2
66  elif answ == 'n':
67  skp = 1
68  else:
69  continue
70  if skp == 1:
71  print("Skipped!")
72  continue
73  os.system(com)
74  i += 1