Belle II Software  release-06-00-14
FixedModuleDisplacement.py
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3 
4 
11 
12 # Generates EKLM displacement data with fixed module displacement.
13 
14 import basf2
15 from ROOT.Belle2 import KLMDatabaseImporter, BKLMAlignment, EKLMAlignment, \
16  EKLMSegmentAlignment, KLMAlignmentData, \
17  KLMChannelIndex, KLMDisplacementGenerator
18 
19 # Create main path
20 main = basf2.create_path()
21 basf2.set_log_level(basf2.LogLevel.INFO)
22 
23 # EventInfoSetter
24 main.add_module('EventInfoSetter')
25 
26 # Gearbox
27 main.add_module('Gearbox')
28 
29 # Process the main path
30 basf2.process(main)
31 
32 dbImporter = KLMDatabaseImporter()
33 
34 bklmAlignment = BKLMAlignment()
35 eklmAlignment = EKLMAlignment()
36 eklmSegmentAlignment = EKLMSegmentAlignment()
37 
38 # Fixed displacement for EKLM modules, zero displacement for EKLM segments.
39 displacementGenerator = KLMDisplacementGenerator()
40 displacementGenerator.fillZeroDisplacements(
41  eklmAlignment, eklmSegmentAlignment)
42 displacementGenerator.generateFixedModuleDisplacement(1, 0, 0)
43 displacementGenerator.saveDisplacement(
44  eklmAlignment, eklmSegmentAlignment, 'EKLMDisplacement.root')
45 
46 # Zero displacement for BKLM.
47 alignmentData = KLMAlignmentData(0, 0, 0, 0, 0, 0)
48 index = KLMChannelIndex(KLMChannelIndex.c_IndexLevelLayer)
49 index2 = KLMChannelIndex(KLMChannelIndex.c_IndexLevelLayer)
50 index = index2.beginBKLM()
51 
52 while (index != index2.endBKLM()):
53  module = index.getKLMModuleNumber()
54  bklmAlignment.setModuleAlignment(module, alignmentData)
55  index.increment()
56 
57 # Import the payloads.
58 dbImporter.setIOV(0, 0, -1, -1)
59 dbImporter.importAlignment(
60  bklmAlignment, eklmAlignment, eklmSegmentAlignment, True)