Belle II Software development
DQMHistAnalysisSVD_test.py
1#!/usr/bin/env python3
2# -*- coding: utf-8 -*-
3
4
11
12# script to analyze raw histograms from DQM modules
13#
14# Usage: basf2 DQMHistAnalysisSVD_test.py input_files
15# input_files: one of the raw dqm files placed under /group/belle2/phase3/dqm/dqmsrv1/
16#
17# i.e basf2 DQMHistAnalysisSVD_test.py /group/belle2/phase3/dqm/dqmsrv1/e0018/dqmhisto/erecodqm_e0018r001313.root
18# -----------------------------------------------------------------------------------------------
19
20
21import basf2 as b2
22import sys
23import re
24
25argv = sys.argv
26if len(argv) < 2:
27 print('\nUsage: %s input_filename\n' % argv[0])
28 exit(1)
29inputFile = sys.argv[1]
30fileOut = sys.argv[2]
31
32exp_nr = int(re.findall(r'\d+', inputFile)[0])
33run_nr = int(re.findall(r'\d+', inputFile)[1])
34
35# Set log level
36b2.set_log_level(b2.LogLevel.INFO)
37
38# Create main path
39main = b2.create_path()
40
41# Load histograms from file
42main.add_module('DQMHistAnalysisInputRootFile',
43 Experiment=0,
44 RunList=[0],
45 FileList=[inputFile],
46 EventsList=[1],
47 RunType='physics',
48 EventInterval=1)
49
50main.add_module('Gearbox')
51main.add_module('Geometry')
52
53# enable EPICS
54main.add_module('DQMHistAnalysisEpicsEnable')
55
56# Analysis module to calculate unpacker error
57main.add_module('DQMHistAnalysisSVDUnpacker',
58 samples3=False)
59
60# Analysis module to calculate occupancy of each sensor and check control plots
61main.add_module('DQMHistAnalysisSVDOccupancy',
62 samples3=False)
63
64# Analysis module to calculate cluster time on tracks
65main.add_module('DQMHistAnalysisSVDClustersOnTrack',
66 samples3=False)
67
68# Analysis module to calculate efficiency of each sensor
69main.add_module('DQMHistAnalysisSVDEfficiency',
70 samples3=False)
71
72# mirabelle
73main.add_module('DQMHistAnalysisSVDOnMiraBelle')
74
75# Save canvases based on histograms used to prepare monitoring variables and monitoring variables to root file
76main.add_module('DQMHistAnalysisOutputMonObj',
77 exp=exp_nr,
78 run=run_nr)
79
80# Dose analysis
81# main.add_module('DQMHistAnalysisSVDDose')
82
83# injection
84# main.add_module('DQMHistInjection')
85
86# Output canvases to root file
87main.add_module('DQMHistAnalysisOutputFile',
88 OutputFolder="./",
89 Filename=fileOut,
90 SaveHistos=False,
91 SaveCanvases=True)
92
93# Process all event at main path
94b2.process(main, calculateStatistics=True)
95
96# Print modules' statistics
97print(b2.statistics)