43 from EventDisplayer
import *
47 from tracking
import add_tracking_reconstruction
49 from optparse
import Option, OptionValueError, OptionParser
52 parser = OptionParser()
53 parser.add_option(
'-i',
'--inputfile',
54 dest=
'infilename', default=
'',
55 help=
'Input ROOT filename [no default]')
56 parser.add_option(
'-e',
'--experiment',
57 dest=
'eNumber', default=
'',
58 help=
'Experiment number [no default]')
59 parser.add_option(
'-r',
'--run',
60 dest=
'rNumber', default=
'',
61 help=
'Run number [no default]')
62 parser.add_option(
'-n',
'--nEvents',
63 dest=
'nEvents', default=
'',
64 help=
'Max # of analyzed events [no default]')
65 parser.add_option(
'-d',
'--displays',
66 dest=
'displays', default=
'100',
67 help=
'Max # of displayed events [default=100]')
68 parser.add_option(
'-m',
'--minRPCHits',
69 dest=
'minRPCHits', default=
'4',
70 help=
'Minimum # of RPC hits in one sector [default=4]')
71 parser.add_option(
'-u',
'--muids',
72 dest=
'minMuidHits', default=
'1',
73 help=
'Minimum # of Muid hits in the event [default=1]')
74 parser.add_option(
'-t',
'--tag',
75 dest=
'tagName', default=
'data_reprocessing_prompt',
76 help=
'Conditions-database global-tag name [data_reprocessing_prompt]')
77 (options, args) = parser.parse_args()
80 if options.nEvents !=
'':
81 maxCount = int(options.nEvents)
83 print(
"Maximum number of events to analyze is", maxCount,
" - nothing to do.")
86 maxDisplays = int(options.displays)
88 minRPCHits = int(options.minRPCHits)
90 minMuidHits = int(options.minMuidHits)
92 tagName = options.tagName
97 if options.infilename !=
'':
98 inputName = options.infilename
99 fileList = glob.glob(inputName)
100 if len(fileList) == 0:
101 print(
'No file(s) match {0}'.format(inputName))
103 if options.eNumber !=
'':
104 if not options.eNumber.isdecimal():
105 print(
'Experiment number ({0}) is not valid'.format(options.eNumber))
107 exp =
'{0:04d}'.format(int(options.eNumber))
109 eStart = inputName.find(
'/e') + 2
111 print(
'Input filename does not contain the required experiment number')
113 eEnd = inputName.find(
'/', eStart)
114 exp = inputName[eStart:eEnd]
115 if not exp.isdecimal():
116 print(
'Input filename experiment number({0}) is not valid'.format(exp))
118 if options.rNumber !=
'':
119 if not options.rNumber.isdecimal():
120 print(
'Run number ({0}) is not valid'.format(options.rNumber))
122 run =
'{0:05d}'.format(int(options.rNumber))
124 rStart = inputName.find(
'/r') + 2
126 print(
'Input filename does not contain the required run number')
128 rEnd = inputName.find(
'/', rStart)
129 run = inputName[rStart:rEnd]
130 if not run.isdecimal():
131 print(
'Input filename run number({0}) is not valid'.format(run))
133 if len(inputName) == 0:
134 fileList = glob.glob(
'/ghi/fs01/belle2/bdata/Data/Raw/e{0}/r{1}/sub00/*.{0}.{1}.HLT2.f00000.root'.format(exp, run))
135 if len(fileList) == 0:
136 print(
'No file(s) found for experiment <{0}> run <{1}>'.format(options.eNumber, options.rNumber))
138 inputName = fileList[0].replace(
'f00000',
'f*')
140 eventPdfName =
'bklmEvents-e{0}r{1}.pdf'.format(exp, run)
143 print(
'bklm-display: exp=' + exp +
' run=' + run +
' input=' + inputName +
'. Analyze', maxCount,
'events using ' + tagName)
144 print(
' Write at most', maxDisplays,
'event displays, requiring # RPC hits per sector >=', minRPCHits,
145 ' # Muids in event >=', minMuidHits)
147 print(
'bklm-display: exp=' + exp +
' run=' + run +
' input=' + inputName +
'. Analyze all events using ' + tagName)
148 print(
' Write at most', maxDisplays,
'event displays, requiring # RPC hits per sector >=', minRPCHits,
149 ' # Muids in event >=', minMuidHits)
153 use_central_database(tagName)
156 main.add_module(
'RootInput', inputFileName=inputName)
157 main.add_module(
'ProgressBar')
159 eventDisplayer =
EventDisplayer(exp, run, eventPdfName, maxDisplays, minRPCHits, minMuidHits)
161 main.add_module(
'KLMReconstructor')
162 add_tracking_reconstruction(main)
163 ext = main.add_module(
'Ext')
164 ext.param(
'pdgCodes', [13])
165 muid = main.add_module(
'Muid')
167 main.add_module(eventDisplayer)
169 process(main, max_event=maxCount)