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