Belle II Software  release-05-02-19
ImportAlignment.py
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3 
4 # Import KLM alignment and displacement payloads.
5 
6 import sys
7 import basf2
8 import ROOT
9 from ROOT.Belle2 import KLMDatabaseImporter, BKLMAlignment, EKLMAlignment, \
10  EKLMSegmentAlignment, KLMAlignmentData, \
11  KLMElementNumbers, KLMChannelIndex
12 
13 basf2.set_log_level(basf2.LogLevel.INFO)
14 
15 mc = False
16 if (len(sys.argv) >= 2):
17  if (sys.argv[1] == 'mc'):
18  mc = True
19 
20 dbImporter = KLMDatabaseImporter()
21 
22 bklmAlignment = BKLMAlignment()
23 eklmAlignment = EKLMAlignment()
24 eklmSegmentAlignment = EKLMSegmentAlignment()
25 
26 alignmentData = KLMAlignmentData(0, 0, 0, 0, 0, 0)
27 
28 index = KLMChannelIndex(KLMChannelIndex.c_IndexLevelLayer)
29 index2 = KLMChannelIndex(KLMChannelIndex.c_IndexLevelLayer)
30 
31 while (index != index2.end()):
32  module = index.getKLMModuleNumber()
33  if (index.getSubdetector() == KLMElementNumbers.c_BKLM):
34  bklmAlignment.setModuleAlignment(module, alignmentData)
35  else:
36  eklmAlignment.setModuleAlignment(module, alignmentData)
37  index.increment()
38 
39 index.setIndexLevel(KLMChannelIndex.c_IndexLevelStrip)
40 index2.setIndexLevel(KLMChannelIndex.c_IndexLevelStrip)
41 index = index2.beginEKLM()
42 index.useEKLMSegments()
43 while (index != index2.endEKLM()):
44  segment = index.getEKLMSegmentNumber()
45  eklmSegmentAlignment.setSegmentAlignment(segment, alignmentData)
46  index.increment()
47 
48 if (mc):
49  dbImporter.setIOV(0, 0, 0, -1)
50  dbImporter.importAlignment(bklmAlignment, eklmAlignment,
51  eklmSegmentAlignment)
52  dbImporter.importAlignment(bklmAlignment, eklmAlignment,
53  eklmSegmentAlignment, True)
54 
55  dbImporter.setIOV(1002, 0, 1002, -1)
56  dbImporter.importAlignment(bklmAlignment, eklmAlignment,
57  eklmSegmentAlignment)
58  dbImporter.importAlignment(bklmAlignment, eklmAlignment,
59  eklmSegmentAlignment, True)
60 
61  dbImporter.setIOV(1003, 0, 1003, -1)
62  dbImporter.importAlignment(bklmAlignment, eklmAlignment,
63  eklmSegmentAlignment)
64  dbImporter.importAlignment(bklmAlignment, eklmAlignment,
65  eklmSegmentAlignment, True)
66 
67 else:
68  dbImporter.setIOV(0, 0, -1, -1)
69  dbImporter.importAlignment(bklmAlignment, eklmAlignment,
70  eklmSegmentAlignment)
71  dbImporter.importAlignment(bklmAlignment, eklmAlignment,
72  eklmSegmentAlignment, True)