51 from tracking
import add_tracking_reconstruction
53 from optparse
import OptionParser
56 parser = OptionParser()
57 parser.add_option(
'-i',
'--inputfile',
58 dest=
'infilename', default=
'',
59 help=
'Input ROOT filename [no default]')
60 parser.add_option(
'-e',
'--experiment',
61 dest=
'eNumber', default=
'',
62 help=
'Experiment number [no default]')
63 parser.add_option(
'-r',
'--run',
64 dest=
'rNumber', default=
'',
65 help=
'Run number [no default]')
66 parser.add_option(
'-n',
'--nEvents',
67 dest=
'nEvents', default=
'',
68 help=
'Max # of analyzed events [no default]')
69 parser.add_option(
'-d',
'--displays',
70 dest=
'displays', default=
'100',
71 help=
'Max # of displayed events [default=100]')
72 parser.add_option(
'-m',
'--minRPCHits',
73 dest=
'minRPCHits', default=
'4',
74 help=
'Minimum # of RPC hits in one sector [default=4]')
75 parser.add_option(
'-u',
'--muids',
76 dest=
'minMuidHits', default=
'1',
77 help=
'Minimum # of Muid hits in the event [default=1]')
78 parser.add_option(
'-t',
'--tag',
79 dest=
'tagName', default=
'data_reprocessing_prompt',
80 help=
'Conditions-database global-tag name [data_reprocessing_prompt]')
81 (options, args) = parser.parse_args()
84 if options.nEvents !=
'':
85 maxCount = int(options.nEvents)
87 print(
"Maximum number of events to analyze is", maxCount,
" - nothing to do.")
90 maxDisplays = int(options.displays)
92 minRPCHits = int(options.minRPCHits)
94 minMuidHits = int(options.minMuidHits)
96 tagName = options.tagName
101 if options.infilename !=
'':
102 inputName = options.infilename
103 fileList = glob.glob(inputName)
104 if len(fileList) == 0:
105 print(
'No file(s) match {0}'.format(inputName))
107 if options.eNumber !=
'':
108 if not options.eNumber.isdecimal():
109 print(
'Experiment number ({0}) is not valid'.format(options.eNumber))
111 exp =
'{0:04d}'.format(int(options.eNumber))
113 eStart = inputName.find(
'/e') + 2
115 print(
'Input filename does not contain the required experiment number')
117 eEnd = inputName.find(
'/', eStart)
118 exp = inputName[eStart:eEnd]
119 if not exp.isdecimal():
120 print(
'Input filename experiment number({0}) is not valid'.format(exp))
122 if options.rNumber !=
'':
123 if not options.rNumber.isdecimal():
124 print(
'Run number ({0}) is not valid'.format(options.rNumber))
126 run =
'{0:05d}'.format(int(options.rNumber))
128 rStart = inputName.find(
'/r') + 2
130 print(
'Input filename does not contain the required run number')
132 rEnd = inputName.find(
'/', rStart)
133 run = inputName[rStart:rEnd]
134 if not run.isdecimal():
135 print(
'Input filename run number({0}) is not valid'.format(run))
137 if len(inputName) == 0:
138 fileList = glob.glob(
'/ghi/fs01/belle2/bdata/Data/Raw/e{0}/r{1}/sub00/*.{0}.{1}.HLT2.f00000.root'.format(exp, run))
139 if len(fileList) == 0:
140 print(
'No file(s) found for experiment <{0}> run <{1}>'.format(options.eNumber, options.rNumber))
142 inputName = fileList[0].replace(
'f00000',
'f*')
144 eventPdfName =
'bklmEvents-e{0}r{1}.pdf'.format(exp, run)
147 print(
'bklm-display: exp=' + exp +
' run=' + run +
' input=' + inputName +
'. Analyze', maxCount,
'events using ' + tagName)
148 print(
' Write at most', maxDisplays,
'event displays, requiring # RPC hits per sector >=', minRPCHits,
149 ' # Muids in event >=', minMuidHits)
151 print(
'bklm-display: exp=' + exp +
' run=' + run +
' input=' + inputName +
'. Analyze all events using ' + tagName)
152 print(
' Write at most', maxDisplays,
'event displays, requiring # RPC hits per sector >=', minRPCHits,
153 ' # Muids in event >=', minMuidHits)
155 basf2.conditions.prepend_globaltag(tagName)
157 main = basf2.create_path()
158 main.add_module(
'RootInput', inputFileName=inputName)
159 main.add_module(
'ProgressBar')
161 eventDisplayer =
EventDisplayer(exp, run, eventPdfName, maxDisplays, minRPCHits, minMuidHits)
163 main.add_module(
'KLMReconstructor')
164 add_tracking_reconstruction(main)
165 ext = main.add_module(
'Ext')
166 ext.param(
'pdgCodes', [13])
167 muid = main.add_module(
'Muid')
169 main.add_module(eventDisplayer)
171 basf2.process(main, max_event=maxCount)
172 print(basf2.statistics)
def add_unpackers(path, components=None, writeKLMDigitRaws=False, addTOPRelations=False)