41 import EventInspectorLookback
42 from EventInspectorLookback
import *
44 from optparse
import Option, OptionValueError, OptionParser
47 parser = OptionParser()
48 parser.add_option(
'-i',
'--inputfile',
49 dest=
'infilename', default=
'',
50 help=
'Input [S]ROOT filename [no default]')
51 parser.add_option(
'-e',
'--experiment',
52 dest=
'eNumber', default=
'',
53 help=
'Experiment number [no default]')
54 parser.add_option(
'-r',
'--run',
55 dest=
'rNumber', default=
'',
56 help=
'Run number [no default]')
57 parser.add_option(
'-m',
'--mode',
58 dest=
'mode', default=
'',
59 help=
'Lookback-window mode [no default]')
60 parser.add_option(
'-w',
'--windowValues',
61 dest=
'window', nargs=3, type=
"int",
62 help=
'Lookback-window values (min, max, step) [no default]')
63 parser.add_option(
'-t',
'--tagName',
64 dest=
'tagName', default=
'data_reprocessing_prompt',
65 help=
'Conditions-database global-tag name [data_reprocessing_prompt]')
66 (options, args) = parser.parse_args()
68 tagName = options.tagName
70 modes = {
"coarse-start": 0,
"coarse-width": 1,
"fine-start": 2,
"fine-width": 3}
71 if options.mode.isdecimal():
72 mode = int(options.mode)
74 mode = modes[options.mode]
if options.mode
in modes
else -1
75 if (mode < 0)
or (mode >= 4):
76 print(
"Illegal lookback-window mode {0}; use one of {1}".format(options.mode, modes))
79 if options.window
is None:
80 print(
"Required lookback-window values (-w min max step) not present")
82 if (options.window[0] < 0)
or (options.window[1] < options.window[0])
or (options.window[2] <= 0):
83 if options.window[0] < 0:
84 print(
"Lookback-window min value {0} cannot be negative".format(options.window[0]))
85 if options.window[1] < options.window[0]:
86 print(
"Lookback-window max value {1} cannot be less than min value {0}".format(options.window[0], options.window[1]))
87 if options.window[2] <= 0:
88 print(
"Lookback-window step value {0} must be positive definite".format(options.window[2]))
90 window = options.window
92 inputName = re.sub(
"HLT.\.f0....",
"HLT*.f*", options.infilename)
93 fileList = glob.glob(inputName)
94 if len(fileList) == 0:
95 print(
"No file(s) match {0}".format(inputName))
98 if not options.eNumber.isdecimal():
99 print(
"Experiment number ({0}) is not valid".format(options.eNumber))
101 exp =
'{0:04d}'.format(int(options.eNumber))
102 if not options.rNumber.isdecimal():
103 print(
"Run number ({0}) is not valid".format(options.rNumber))
105 run =
'{0:05d}'.format(int(options.rNumber))
107 histName =
'bklmHists-e{0}r{1}.root'.format(exp, run)
108 pdfName =
'bklmPlots-e{0}r{1}.pdf'.format(exp, run)
110 print(
'bklm-windowstart: exp=' + exp +
' run=' + run +
' input=' + inputName +
'. Analyze all events using ' + tagName)
114 use_central_database(tagName)
117 if inputName.find(
".sroot") >= 0:
118 main.add_module(
'SeqRootInput', inputFileNames=fileList)
120 main.add_module(
'RootInput', inputFileName=inputName)
121 main.add_module(
'ProgressBar')
125 main.add_module(
'KLMReconstructor')
126 main.add_module(eventInspector)