Belle II Software  release-05-01-25
importChannelMask.py
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 
4 from basf2 import *
5 import ROOT
6 from ROOT.Belle2 import TOPDatabaseImporter
7 from ROOT import gSystem
8 import os
9 import sys
10 import glob
11 
12 # Create path
13 main = create_path()
14 
15 # Event info setter - execute single event
16 main.add_module('EventInfoSetter', evtNumList=[1])
17 
18 # Initialize TOP geometry parameters using default GT
19 main.add_module('TOPGeometryParInitializer')
20 
21 # process single event
22 process(main)
23 
24 # define a local database (will be created automatically, if doesn't exist)
25 use_local_database('localDB/localDB.txt', readonly=False)
26 
27 # and then run the importer
28 dbImporter = TOPDatabaseImporter()
29 
30 # import constants
31 fileNames = sorted(glob.glob('masks/*.root'))
32 numFiles = len(fileNames)
33 if numFiles is 0:
34  print('No files found')
35  sys.exit()
36 
37 if not os.path.exists('masks/imported'):
38  os.makedirs('masks/imported')
39 
40 for i, fileName in enumerate(fileNames):
41  runFirst = int((fileName.split('_r')[1]).split('.')[0])
42  expNo = int((fileName.split('_e')[1]).split('_')[0])
43  runLast = runFirst
44  k = i + 1
45  if k < len(fileNames):
46  nextName = fileNames[k]
47  runLast = int((nextName.split('_r')[1]).split('.')[0]) - 1
48  expNext = int((nextName.split('_e')[1]).split('_')[0])
49  if expNext > expNo or k == len(fileNames): # last run in exp or last run in total
50  runLast = -1
51  elif runLast < runFirst:
52  B2ERROR("first run:", runFirst, "last run:", runLast)
53  B2ERROR("Last run is less than the first one: exiting!")
54  sys.exit()
55  dbImporter.importChannelMask(fileName, expNo, runFirst, runLast)
56  os.rename(fileName, fileName.replace('masks/', 'masks/imported/'))
57 B2RESULT("Done")