Belle II Software  release-05-02-19
ImportElectronicsMap.py
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 
4 # Import BKLM electronics mapping payloads.
5 
6 import sys
7 import basf2
8 import ROOT
9 from ROOT.Belle2 import KLMElectronicsMapImporter, KLMElementNumbers, BKLMElementNumbers
10 
11 basf2.set_log_level(basf2.LogLevel.INFO)
12 
13 mc = False
14 if (len(sys.argv) >= 2):
15  if (sys.argv[1] == 'mc'):
16  mc = True
17 
18 # Database importer.
19 importer = KLMElectronicsMapImporter()
20 
21 
22 def clear_electronics_map():
23  """
24  Clear electronics map (to load another version).
25  """
26  importer.clearElectronicsMap()
27 
28 
29 def load_bklm_electronics_map(version, mc):
30  """
31  Load BKLM electronics map.
32  Versions:
33  1 = before experiment 10.
34  2 = experiment 10 and later (mapping in chimney sector has changed).
35  """
36  if mc:
37  importer.loadBKLMElectronicsMap(1)
38  else:
39  importer.loadBKLMElectronicsMap(version)
40  # Switch lanes for real-data map.
41  # The fibers of layer 1 and 2 are switched in BB6.
42  importer.setLane(KLMElementNumbers.c_BKLM,
43  BKLMElementNumbers.c_BackwardSection,
44  7, 1, 2)
45  importer.setLane(KLMElementNumbers.c_BKLM,
46  BKLMElementNumbers.c_BackwardSection,
47  7, 2, 1)
48 
49 
50 def load_eklm_electronics_map(version, mc):
51  """
52  Load EKLM electronics map.
53  Versions:
54  1 = phase 2 (wrong connection of cables for backward sectors 2 and 3).
55  2 = phase 3
56  """
57  importer.loadEKLMElectronicsMap(version, mc)
58 
59 if mc:
60  # MC map: a single version of map is used for all periods.
61 
62  load_bklm_electronics_map(1, True)
63  load_eklm_electronics_map(1, True)
64 
65  importer.setIOV(0, 0, 0, -1)
66  importer.importElectronicsMap()
67 
68  importer.setIOV(1002, 0, 1002, -1)
69  importer.importElectronicsMap()
70 
71  importer.setIOV(1003, 0, 1003, -1)
72  importer.importElectronicsMap()
73 
74 else:
75  # Data map.
76 
77  # Experiments 0 - 3.
78  load_bklm_electronics_map(1, False)
79  load_eklm_electronics_map(1, False)
80  importer.setIOV(1, 0, 3, -1)
81  importer.importElectronicsMap()
82 
83  # Experiments 4 - 9.
84  clear_electronics_map()
85  load_bklm_electronics_map(1, False)
86  load_eklm_electronics_map(2, False)
87  importer.setIOV(4, 0, 9, -1)
88  importer.importElectronicsMap()
89 
90  # Experiment 10 and later.
91  clear_electronics_map()
92  load_bklm_electronics_map(2, False)
93  load_eklm_electronics_map(2, False)
94  importer.setIOV(10, 0, -1, -1)
95  importer.importElectronicsMap()