48 import EventInspectorLookback
50 from optparse
import OptionParser
53 parser = OptionParser()
54 parser.add_option(
'-i',
'--inputfile',
55 dest=
'infilename', default=
'',
56 help=
'Input [S]ROOT filename [no default]')
57 parser.add_option(
'-e',
'--experiment',
58 dest=
'eNumber', default=
'',
59 help=
'Experiment number [no default]')
60 parser.add_option(
'-r',
'--run',
61 dest=
'rNumber', default=
'',
62 help=
'Run number [no default]')
63 parser.add_option(
'-m',
'--mode',
64 dest=
'mode', default=
'',
65 help=
'Lookback-window mode [no default]')
66 parser.add_option(
'-w',
'--windowValues',
67 dest=
'window', nargs=3, type=
"int",
68 help=
'Lookback-window values (min, max, step) [no default]')
69 parser.add_option(
'-t',
'--tagName',
70 dest=
'tagName', default=
'data_reprocessing_prompt',
71 help=
'Conditions-database global-tag name [data_reprocessing_prompt]')
72 (options, args) = parser.parse_args()
74 tagName = options.tagName
76 modes = {
"coarse-start": 0,
"coarse-width": 1,
"fine-start": 2,
"fine-width": 3}
77 if options.mode.isdecimal():
78 mode = int(options.mode)
80 mode = modes[options.mode]
if options.mode
in modes
else -1
81 if (mode < 0)
or (mode >= 4):
82 print(
"Illegal lookback-window mode {0}; use one of {1}".format(options.mode, modes))
85 if options.window
is None:
86 print(
"Required lookback-window values (-w min max step) not present")
88 if (options.window[0] < 0)
or (options.window[1] < options.window[0])
or (options.window[2] <= 0):
89 if options.window[0] < 0:
90 print(
"Lookback-window min value {0} cannot be negative".format(options.window[0]))
91 if options.window[1] < options.window[0]:
92 print(
"Lookback-window max value {1} cannot be less than min value {0}".format(options.window[0], options.window[1]))
93 if options.window[2] <= 0:
94 print(
"Lookback-window step value {0} must be positive definite".format(options.window[2]))
96 window = options.window
98 inputName = re.sub(
r"HLT.\.f0....",
"HLT*.f*", options.infilename)
99 fileList = glob.glob(inputName)
100 if len(fileList) == 0:
101 print(
"No file(s) match {0}".format(inputName))
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))
108 if not options.rNumber.isdecimal():
109 print(
"Run number ({0}) is not valid".format(options.rNumber))
111 run =
'{0:05d}'.format(int(options.rNumber))
113 histName =
'bklmHists-e{0}r{1}.root'.format(exp, run)
114 pdfName =
'bklmPlots-e{0}r{1}.pdf'.format(exp, run)
116 print(
'bklm-windowstart: exp=' + exp +
' run=' + run +
' input=' + inputName +
'. Analyze all events using ' + tagName)
118 basf2.conditions.prepend_globaltag(tagName)
120 main = basf2.create_path()
121 if inputName.find(
".sroot") >= 0:
122 main.add_module(
'SeqRootInput', inputFileNames=fileList)
124 main.add_module(
'RootInput', inputFileName=inputName)
125 main.add_module(
'ProgressBar')
129 main.add_module(
'KLMReconstructor')
130 main.add_module(eventInspector)
133 print(basf2.statistics)
def add_unpackers(path, components=None, writeKLMDigitRaws=False, addTOPRelations=False)