Belle II Software  release-05-01-25
printBeamSpotSteerings.py
1 #!/usr/bin/env python3
2 
3 
8 
9 
10 from glob import glob
11 import re
12 
13 # Produce json file for airflow-based mumu-skims (exp12)
14 
15 
16 def storeSteering(name, tag):
17 
18  baseDir = '/group/belle2/dataprod/dp_managers/ddossett/airflow/output_data'
19 
20  def getRun(x): return int(re.findall('[0-9]*$', x)[0])
21 
22  res = None
23  if not isinstance(tag, list):
24  tag = str(tag)
25  res = glob(baseDir+'/'+tag+'/mumu_2trk/e12/*')
26  else:
27  res = []
28  for t in tag:
29  t = str(t)
30  res += glob(baseDir+'/'+t+'/mumu_2trk/e12/*')
31 
32  res = sorted(res, key=getRun)
33 
34  fOut = open(name, 'w')
35 
36  fOut.write('{"hlt_mumu": [')
37 
38  for i, r in enumerate(res):
39  n = getRun(r)
40  fOut.write('["' + r + '", [12, '+str(n)+']]')
41  if i != len(res) - 1:
42  fOut.write(', ')
43 
44  fOut.write(']}')
45  fOut.close()
46 
47 
48 # Produce json file for bucket12 or exp7,exp8 or exp10
49 def storeSteering2(name, tag):
50  baseDir = '/group/belle2/dataprod/Data/OfficialReco/proc11/e00'+tag+'/4S/r*/skim/hlt_mumu_2trk/mdst'
51  if tag == 'bucket12':
52  baseDir = '/group/belle2/dataprod/Data/release-04-02-04/DB00001113/' +\
53  'bucket12/e0012/4S_offres/GoodRuns/r*/skim/hlt_mumu_2trk/mdst'
54  elif tag == '08off':
55  baseDir = '/group/belle2/dataprod/Data/OfficialReco/proc11/e0008/4S_offres/r*/skim/hlt_mumu_2trk/mdst'
56  tag = '08'
57  elif tag == '08scan':
58  baseDir = '/group/belle2/dataprod/Data/OfficialReco/proc11/e0008/4S_scan/r*/skim/hlt_mumu_2trk/mdst'
59  tag = '08'
60 
61  res = glob(baseDir)
62 
63  def getRun(r): return int(re.findall('/r[0-9]*/', r)[0][2:-1])
64 
65  res = sorted(res, key=getRun)
66 
67  fOut = open(name, 'w')
68 
69  fOut.write('{"hlt_mumu": [')
70 
71  for i, r in enumerate(res):
72  n = getRun(r)
73  exp = 12 if tag == 'bucket12' else int(tag)
74  fOut.write('["' + r + '", ['+str(exp)+', '+str(n)+']]')
75  if i != len(res) - 1:
76  fOut.write(', ')
77 
78  fOut.write(']}')
79  fOut.close()
80 
81 # Produce all the json steerings to the steering directory
82 
83 storeSteering2('steerings/input_data_exp8off.json', '08off')
84 storeSteering2('steerings/input_data_exp8scan.json', '08scan')
85 
86 storeSteering2('steerings/input_data_exp7.json', '07')
87 storeSteering2('steerings/input_data_exp8.json', '08')
88 storeSteering2('steerings/input_data_exp10.json', '10')
89 
90 storeSteering('steerings/input_data_bucket9.json', 71)
91 storeSteering('steerings/input_data_bucket10.json', 91)
92 storeSteering('steerings/input_data_bucket11.json', [110, 112])
93 storeSteering2('steerings/input_data_bucket12.json', 'bucket12')
94 storeSteering('steerings/input_data_bucket13.json', 139)
95 storeSteering('steerings/input_data_bucket14.json', 166)
96 storeSteering('steerings/input_data_bucket15.json', 192)
Belle2::getRun
static ExpRun getRun(map< ExpRun, pair< double, double >> runs, double t)
Get exp number + run number from time.
Definition: Splitter.cc:262