Belle II Software development
makeBGOverlayFromData.py
1
8
9import sys
10
11import basf2
12from background import get_trigger_types_for_bgo, SelectTRGTypes
13from rawdata import add_unpackers
14from gdltrigger import filter_trigger_abort_gaps
15
16# --------------------------------------------------------------------------------------
17# Make data sample for BG overlay from experimental raw data
18#
19# Usage: basf2 makeBGOverlayFromData.py -i <inputFileName> -o <outputFileName> globalTag
20#
21# --------------------------------------------------------------------------------------
22
23# Argument parsing
24argvs = sys.argv
25if len(argvs) < 2:
26 print("usage: basf2", argvs[0], "globalTag -i <inputFileName> -o <outputFileName>")
27 sys.exit()
28
29# Define global tag
30globalTag = argvs[1]
31basf2.conditions.prepend_globaltag(globalTag)
32
33# Create paths
34main = basf2.Path()
35emptypath = basf2.Path()
36
37# Input: raw data
38main.add_module('RootInput')
39
40# Gearbox
41main.add_module('Gearbox')
42
43# Geometry
44main.add_module('Geometry')
45
46# Unpack TRGSummary
47main.add_module('TRGGDLUnpacker')
48main.add_module('TRGGDLSummary')
49
50# Show progress of processing
51main.add_module('Progress')
52
53# Select specific triggered events
54trg_types = get_trigger_types_for_bgo()
55selector = main.add_module(
56 SelectTRGTypes(trg_types=trg_types)
57)
58selector.if_false(emptypath)
59
60# Filter away the events falling in the trigger abort gaps
61filter_trigger_abort_gaps(main)
62
63# Unpack detector data
64add_unpackers(
65 main,
66 components=['PXD', 'SVD', 'CDC', 'ECL', 'TOP', 'ARICH', 'KLM']
67)
68
69# Convert ECLDsps to ECLWaveforms
70compress = main.add_module(
71 'ECLCompressBGOverlay',
72 CompressionAlgorithm=3
73)
74compress.if_false(emptypath)
75
76# Shift the time of KLMDigits
77main.add_module('KLMDigitTimeShifter')
78
79# ECL trigger unpacker and BGOverlay dataobject
80main.add_module('TRGECLUnpacker')
81main.add_module('TRGECLBGTCHit')
82
83# Output: digitized hits only
84main.add_module(
85 'RootOutput',
86 branchNames=['EventLevelTriggerTimeInfo', 'PXDDigits', 'SVDShaperDigits', 'CDCHits', 'TOPDigits',
87 'ARICHDigits', 'ECLWaveforms', 'KLMDigits', 'TRGECLBGTCHits', 'TRGSummary', 'TOPInjectionVeto']
88)
89
90# Process events
91basf2.process(main)