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