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