Belle II Software  release-05-02-19
RandomDisplacement.py
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3 
4 # Generates random EKLM displacement data.
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 # Random displacement for EKLM.
31 displacementGenerator = KLMDisplacementGenerator()
32 displacementGenerator.generateRandomDisplacement(
33  eklmAlignment, eklmSegmentAlignment, True, False)
34 displacementGenerator.saveDisplacement(
35  eklmAlignment, eklmSegmentAlignment, 'EKLMDisplacement.root')
36 
37 # Zero displacement for BKLM.
38 alignmentData = KLMAlignmentData(0, 0, 0, 0, 0, 0)
39 index = KLMChannelIndex(KLMChannelIndex.c_IndexLevelLayer)
40 index2 = KLMChannelIndex(KLMChannelIndex.c_IndexLevelLayer)
41 index = index2.beginBKLM()
42 
43 while (index != index2.endBKLM()):
44  module = index.getKLMModuleNumber()
45  bklmAlignment.setModuleAlignment(module, alignmentData)
46  index.increment()
47 
48 # Import the payloads.
49 dbImporter.setIOV(0, 0, -1, -1)
50 dbImporter.importAlignment(
51  bklmAlignment, eklmAlignment, eklmSegmentAlignment, True)
basf2.process
def process(path, max_event=0)
Definition: __init__.py:25