Belle II Software  release-05-01-25
DQMTracking_BelleII.py
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3 
4 
8 
9 from basf2 import *
10 from simulation import add_simulation
11 from reconstruction import add_reconstruction
12 from L1trigger import add_tsim
13 import glob
14 
15 import argparse
16 parser = argparse.ArgumentParser(
17  description="Tracking DQM Belle II for Phase 2 (Exp=1), Phase 3 Early (Exp=2) and Phase 3 regular (Exp=3)")
18 parser.add_argument('--experiment-type', dest='ExperimentType', action='store',
19  default=2, type=int,
20  help='Set which experiment you want: 1 (Phase 2), 2 (Phase 3 Early) or 3 (Phase 3 regular), default = 2')
21 
22 args = parser.parse_args()
23 
24 print("Final setting of arguments: ")
25 print(" ExperimentType: ", args.ExperimentType)
26 
27 # background (collision) files
28 # bg = glob.glob('./BG/*.root')
29 bg = None
30 
31 # number of events to generate, can be overriden with -n
32 num_events = 100
33 # output filename, can be overriden with -o
34 output_filename = "RootOutput.root"
35 if (args.ExperimentType is 1):
36  output_filename = "RootOutput_Phase2.root"
37 if (args.ExperimentType is 2):
38  output_filename = "RootOutput_Phase3Early.root"
39 if (args.ExperimentType is 3):
40  output_filename = "RootOutput_Phase3.root"
41 
42 # create path
43 main = create_path()
44 
45 if (args.ExperimentType is 1):
46  # the experiment number for phase2 MC has to be 1002, otherwise the wrong payloads (for VXDTF2 the SectorMap) are loaded
47  main.add_module("EventInfoSetter", expList=1002, runList=1, evtNumList=num_events)
48 if (args.ExperimentType is 2):
49  # the experiment number for early phase3 MC has to be 1003, otherwise the wrong payloads for this faze are loaded
50  main.add_module("EventInfoSetter", expList=1003, runList=1, evtNumList=num_events)
51 if (args.ExperimentType is 3):
52  # the experiment number for regular phase3 MC has no need to set, it is default
53  main.add_module("EventInfoSetter", evtNumList=num_events)
54 
55 # in case you need to fix seed of random numbers
56 # set_random_seed('d33fa68eab781f3dcb069fb23425885fcd92d3432e6433a14894e5d7bba34272')
57 
58 # generate BBbar events
59 main.add_module('EvtGenInput')
60 
61 # detector simulation
62 add_simulation(main, bkgfiles=bg)
63 
64 # trigger simulation
65 add_tsim(main)
66 
67 # reconstruction
68 add_reconstruction(main)
69 
70 # histomanager: use DqmHistoManager for in-line monitoring, or HistoManager for offline training
71 # main.add_module('DqmHistoManager', Port=7777)
72 Histos_filename = "Histos_DQMTracks.root"
73 if (args.ExperimentType is 1):
74  Histos_filename = "Histos_DQMTracks_Phase2.root"
75 if (args.ExperimentType is 2):
76  Histos_filename = "Histos_DQMTracks_Phase3Early.root"
77 if (args.ExperimentType is 3):
78  Histos_filename = "Histos_DQMTracks_Phase3.root"
79 main.add_module('HistoManager', histoFileName=Histos_filename)
80 
81 # DQM of tracking
82 trackDQM = main.add_module('TrackDQM', debugLevel=250)
83 # In case to see more details:
84 # trackDQM.logging.log_level = LogLevel.DEBUG
85 
86 # Finally add output, if you need
87 # main.add_module("RootOutput", outputFileName=output_filename)
88 
89 # process events and print call statistics
90 process(main)
91 print(statistics)