Belle II Software  release-05-02-19
SVDDose_test.py
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3 import argparse
4 import basf2 as b2
5 
6 parser = argparse.ArgumentParser(
7  epilog="About nevt: when asking N events per file, the histograms from that "
8  "file are sent multiple times to the analysis module. Each time, they "
9  "are scaled by i/N, where i is the iteration number.")
10 parser.add_argument("files", nargs="+", help="Input root files with histograms")
11 parser.add_argument("-e", "--exp", type=int, default=1, help="Experiment number")
12 parser.add_argument("-r", "--run", type=int, default=1, help="Run number")
13 parser.add_argument("-n", "--nevt", type=int, default=1, help="Events per file")
14 args = parser.parse_args()
15 
16 main = b2.create_path()
17 # Input histograms from file(s). This is the module doing the scaling.
18 main.add_module(
19  'DQMHistAnalysisInputRootFile', SelectHistograms=['SVDDose*'],
20  FileList=args.files, RunList=[args.run] * len(args.files),
21  EventsList=[args.nevt] * len(args.files), Experiment=args.exp,
22  EventInterval=1, NullHistogramMode=False, AutoCanvas=False)
23 # Analysis module
24 main.add_module(
25  'DQMHistAnalysisSVDDose', logLevel=b2.LogLevel.DEBUG, debugLevel=19,
26  epicsUpdateSeconds=2)
27 # Output canvases to root file
28 main.add_module(
29  'DQMHistAnalysisOutputFile', SaveHistos=False, SaveCanvases=True,
30  HistoFile=f"analysis_E{args.exp:04d}R{args.run:05d}.root")
31 # Output monitoring object to root file
32 main.add_module(
33  'DQMHistAnalysisOutputMonObj',
34  Filename=f"mirabelle_E{args.exp:04d}R{args.run:05d}.root")
35 
36 # Process all events
37 b2.process(main)