17 from caf.framework
import Calibration, Collection
18 from caf.strategies
import SequentialRunByRun, SingleIOV, SequentialBoundaries
19 from ROOT.Belle2
import TOP
22 def BS13d_calibration_local(inputFiles, look_back=28, globalTags=None, localDBs=None):
24 Returns calibration object for carrier shift calibration of BS13d with local runs
25 (laser, single-pulse or double-pulse).
26 :param inputFiles: A list of input files in sroot format
27 :param look_back: look-back window setting (set it to 0 to use the one from DB)
28 :param globalTags: a list of global tags, highest priority first
29 :param localDBs: a list of local databases, highest priority first
33 main = basf2.create_path()
36 main.add_module(
'SeqRootInput')
37 main.add_module(
'TOPGeometryParInitializer')
38 main.add_module(
'TOPUnpacker')
39 main.add_module(
'TOPRawDigitConverter', lookBackWindows=look_back,
40 useAsicShiftCalibration=
False, useChannelT0Calibration=
False)
43 collector = basf2.register_module(
'TOPAsicShiftsBS13dCollector')
46 algorithm = TOP.TOPAsicShiftsBS13dAlgorithm()
47 algorithm.setWindowSize(0)
50 cal =
Calibration(name=
'TOP_BS13dCalibration', collector=collector,
51 algorithms=algorithm, input_files=inputFiles)
53 for globalTag
in reversed(globalTags):
54 cal.use_central_database(globalTag)
56 for localDB
in reversed(localDBs):
57 cal.use_local_database(localDB)
58 cal.pre_collector_path = main
59 cal.strategies = SequentialRunByRun
64 def BS13d_calibration_rawdata(inputFiles, globalTags=None, localDBs=None):
66 Returns calibration object for carrier shift calibration of BS13d with raw data.
67 :param inputFiles: A list of input files in raw data format
68 :param globalTags: a list of global tags, highest priority first
69 :param localDBs: a list of local databases, highest priority first
73 main = basf2.create_path()
76 main.add_module(
'RootInput')
77 main.add_module(
'TOPGeometryParInitializer')
78 main.add_module(
'TOPUnpacker')
79 main.add_module(
'TOPRawDigitConverter',
80 useAsicShiftCalibration=
False, useChannelT0Calibration=
False)
83 collector = basf2.register_module(
'TOPAsicShiftsBS13dCollector')
86 algorithm = TOP.TOPAsicShiftsBS13dAlgorithm()
89 cal =
Calibration(name=
'TOP_BS13dCalibration', collector=collector,
90 algorithms=algorithm, input_files=inputFiles)
92 for globalTag
in reversed(globalTags):
93 cal.use_central_database(globalTag)
95 for localDB
in reversed(localDBs):
96 cal.use_local_database(localDB)
97 cal.pre_collector_path = main
98 cal.strategies = SequentialRunByRun
103 def BS13d_calibration_cdst(inputFiles, time_offset=0, globalTags=None, localDBs=None,
104 new_cdst_format=True):
106 Returns calibration object for carrier shift calibration of BS13d with processed data.
107 :param inputFiles: A list of input files in cdst data format
108 :param time_offset: time offset [ns]
109 :param globalTags: a list of global tags, highest priority first
110 :param localDBs: a list of local databases, highest priority first
111 :param new_cdst_format: True or False for new or old cdst format, respectively
115 main = basf2.create_path()
118 main.add_module(
'RootInput')
120 main.add_module(
'Gearbox')
121 main.add_module(
'Geometry')
122 main.add_module(
'Ext')
123 main.add_module(
'TOPUnpacker')
124 main.add_module(
'TOPRawDigitConverter')
125 main.add_module(
'TOPChannelMasker')
126 main.add_module(
'TOPBunchFinder', autoRange=
True, subtractRunningOffset=
False)
127 main.add_module(
'TOPTimeRecalibrator',
128 useAsicShiftCalibration=
False, useChannelT0Calibration=
True)
130 main.add_module(
'TOPGeometryParInitializer')
131 main.add_module(
'TOPTimeRecalibrator',
132 useAsicShiftCalibration=
False, useChannelT0Calibration=
True)
135 collector = basf2.register_module(
'TOPAsicShiftsBS13dCollector',
136 timeOffset=time_offset, requireRecBunch=
True)
139 algorithm = TOP.TOPAsicShiftsBS13dAlgorithm()
142 cal =
Calibration(name=
'TOP_BS13dCalibration', collector=collector,
143 algorithms=algorithm, input_files=inputFiles)
145 for globalTag
in reversed(globalTags):
146 cal.use_central_database(globalTag)
148 for localDB
in reversed(localDBs):
149 cal.use_local_database(localDB)
150 cal.pre_collector_path = main
151 cal.strategies = SequentialRunByRun
156 def moduleT0_calibration_DeltaT(inputFiles, globalTags=None, localDBs=None,
157 new_cdst_format=True):
159 Returns calibration object for rough module T0 calibration with method DeltaT
160 :param inputFiles: A list of input files in cdst data format
161 :param globalTags: a list of global tags, highest priority first
162 :param localDBs: a list of local databases, highest priority first
163 :param new_cdst_format: True or False for new or old cdst format, respectively
167 main = basf2.create_path()
170 main.add_module(
'RootInput')
172 main.add_module(
'Gearbox')
173 main.add_module(
'Geometry')
174 main.add_module(
'Ext')
175 main.add_module(
'TOPUnpacker')
176 main.add_module(
'TOPRawDigitConverter')
177 main.add_module(
'TOPChannelMasker')
178 main.add_module(
'TOPBunchFinder', autoRange=
True, subtractRunningOffset=
False)
180 main.add_module(
'TOPGeometryParInitializer')
181 main.add_module(
'TOPTimeRecalibrator', subtractBunchTime=
False)
182 main.add_module(
'TOPChannelMasker')
183 main.add_module(
'TOPBunchFinder', usePIDLikelihoods=
True, autoRange=
True,
184 subtractRunningOffset=
False)
187 collector = basf2.register_module(
'TOPModuleT0DeltaTCollector')
188 collector.param(
'granularity',
'run')
191 algorithm = TOP.TOPModuleT0DeltaTAlgorithm()
194 cal =
Calibration(name=
'TOP_moduleT0_rough', collector=collector,
195 algorithms=algorithm, input_files=inputFiles)
197 for globalTag
in reversed(globalTags):
198 cal.use_central_database(globalTag)
200 for localDB
in reversed(localDBs):
201 cal.use_local_database(localDB)
202 cal.pre_collector_path = main
203 cal.strategies = SequentialBoundaries
208 def moduleT0_calibration_LL(inputFiles, sample='dimuon', globalTags=None, localDBs=None,
209 new_cdst_format=True):
211 Returns calibration object for final module T0 calibration with method LL
212 :param inputFiles: A list of input files in cdst data format
213 :param sample: data sample ('dimuon' or 'bhabha')
214 :param globalTags: a list of global tags, highest priority first
215 :param localDBs: a list of local databases, highest priority first
216 :param new_cdst_format: True or False for new or old cdst format, respectively
220 main = basf2.create_path()
223 main.add_module(
'RootInput')
225 main.add_module(
'Gearbox')
226 main.add_module(
'Geometry')
227 main.add_module(
'Ext')
228 main.add_module(
'TOPUnpacker')
229 main.add_module(
'TOPRawDigitConverter')
230 main.add_module(
'TOPChannelMasker')
231 main.add_module(
'TOPBunchFinder', autoRange=
True, subtractRunningOffset=
False)
233 main.add_module(
'TOPGeometryParInitializer')
234 main.add_module(
'TOPTimeRecalibrator', subtractBunchTime=
False)
235 main.add_module(
'TOPChannelMasker')
236 main.add_module(
'TOPBunchFinder', usePIDLikelihoods=
True, autoRange=
True,
237 subtractRunningOffset=
False)
240 collector = basf2.register_module(
'TOPModuleT0LLCollector')
241 collector.param(
'sample', sample)
242 collector.param(
'granularity',
'run')
245 algorithm = TOP.TOPModuleT0LLAlgorithm()
248 cal =
Calibration(name=
'TOP_moduleT0_final', collector=collector,
249 algorithms=algorithm, input_files=inputFiles)
251 for globalTag
in reversed(globalTags):
252 cal.use_central_database(globalTag)
254 for localDB
in reversed(localDBs):
255 cal.use_local_database(localDB)
256 cal.pre_collector_path = main
257 cal.strategies = SequentialBoundaries
262 def commonT0_calibration_BF(inputFiles, globalTags=None, localDBs=None,
263 new_cdst_format=True):
265 Returns calibration object for common T0 calibration with method BF
266 :param inputFiles: A list of input files in cdst data format
267 :param globalTags: a list of global tags, highest priority first
268 :param localDBs: a list of local databases, highest priority first
269 :param new_cdst_format: True or False for new or old cdst format, respectively
273 main = basf2.create_path()
276 main.add_module(
'RootInput')
278 main.add_module(
'Gearbox')
279 main.add_module(
'Geometry')
280 main.add_module(
'Ext')
281 main.add_module(
'TOPUnpacker')
282 main.add_module(
'TOPRawDigitConverter')
283 main.add_module(
'TOPChannelMasker')
284 main.add_module(
'TOPBunchFinder', autoRange=
True, subtractRunningOffset=
False)
286 main.add_module(
'TOPGeometryParInitializer')
287 main.add_module(
'TOPTimeRecalibrator', subtractBunchTime=
False)
288 main.add_module(
'TOPChannelMasker')
289 main.add_module(
'TOPBunchFinder', usePIDLikelihoods=
True, autoRange=
True,
290 subtractRunningOffset=
False)
293 collector = basf2.register_module(
'TOPCommonT0BFCollector')
296 algorithm = TOP.TOPCommonT0BFAlgorithm()
299 cal =
Calibration(name=
'TOP_commonT0Calibration', collector=collector,
300 algorithms=algorithm, input_files=inputFiles)
302 for globalTag
in reversed(globalTags):
303 cal.use_central_database(globalTag)
305 for localDB
in reversed(localDBs):
306 cal.use_local_database(localDB)
307 cal.pre_collector_path = main
308 cal.strategies = SequentialRunByRun
313 def commonT0_calibration_LL(inputFiles, sample='dimuon', globalTags=None, localDBs=None,
314 new_cdst_format=True):
316 Returns calibration object for common T0 calibration with method LL
317 :param inputFiles: A list of input files in cdst data format
318 :param sample: data sample ('dimuon' or 'bhabha')
319 :param globalTags: a list of global tags, highest priority first
320 :param localDBs: a list of local databases, highest priority first
321 :param new_cdst_format: True or False for new or old cdst format, respectively
325 main = basf2.create_path()
328 main.add_module(
'RootInput')
330 main.add_module(
'Gearbox')
331 main.add_module(
'Geometry')
332 main.add_module(
'Ext')
333 main.add_module(
'TOPUnpacker')
334 main.add_module(
'TOPRawDigitConverter')
335 main.add_module(
'TOPChannelMasker')
336 main.add_module(
'TOPBunchFinder', autoRange=
True, subtractRunningOffset=
False)
338 main.add_module(
'TOPGeometryParInitializer')
339 main.add_module(
'TOPTimeRecalibrator', subtractBunchTime=
False)
340 main.add_module(
'TOPChannelMasker')
341 main.add_module(
'TOPBunchFinder', usePIDLikelihoods=
True, autoRange=
True,
342 subtractRunningOffset=
False)
345 collector = basf2.register_module(
'TOPCommonT0LLCollector')
346 collector.param(
'sample', sample)
349 algorithm = TOP.TOPCommonT0LLAlgorithm()
352 cal =
Calibration(name=
'TOP_commonT0Calibration', collector=collector,
353 algorithms=algorithm, input_files=inputFiles)
355 for globalTag
in reversed(globalTags):
356 cal.use_central_database(globalTag)
358 for localDB
in reversed(localDBs):
359 cal.use_local_database(localDB)
360 cal.pre_collector_path = main
361 cal.strategies = SequentialRunByRun
366 def pulseHeight_calibration_laser(inputFiles, t_min=-50.0, t_max=0.0, look_back=28,
367 globalTags=None, localDBs=None):
369 Returns calibration object for calibration of pulse-height distributions and
370 threshold efficiencies with local laser runs.
371 :param inputFiles: A list of input files in sroot format
372 :param t_min: lower edge of time window to select laser signal [ns]
373 :param t_max: upper edge of time window to select laser signal [ns]
374 :param look_back: look-back window setting (set it to 0 to use the one from DB)
375 :param globalTags: a list of global tags, highest priority first
376 :param localDBs: a list of local databases, highest priority first
380 main = basf2.create_path()
383 main.add_module(
'SeqRootInput')
384 main.add_module(
'TOPGeometryParInitializer')
385 main.add_module(
'TOPUnpacker')
386 main.add_module(
'TOPRawDigitConverter', lookBackWindows=look_back)
389 collector = basf2.register_module(
'TOPPulseHeightCollector')
390 collector.param(
'timeWindow', [t_min, t_max])
391 collector.param(
'granularity',
'all')
394 algorithm = TOP.TOPPulseHeightAlgorithm()
397 cal =
Calibration(name=
'TOP_pulseHeightCalibration', collector=collector,
398 algorithms=algorithm, input_files=inputFiles)
400 for globalTag
in reversed(globalTags):
401 cal.use_central_database(globalTag)
403 for localDB
in reversed(localDBs):
404 cal.use_local_database(localDB)
405 cal.pre_collector_path = main
406 cal.strategies = SingleIOV
411 def pulseHeight_calibration_rawdata(inputFiles, globalTags=None, localDBs=None):
413 Returns calibration object for calibration of pulse-height distributions and
414 threshold efficiencies with raw data
415 :param inputFiles: A list of input files in raw data format
416 :param globalTags: a list of global tags, highest priority first
417 :param localDBs: a list of local databases, highest priority first
421 main = basf2.create_path()
424 main.add_module(
'RootInput')
425 main.add_module(
'TOPGeometryParInitializer')
426 main.add_module(
'TOPUnpacker')
427 main.add_module(
'TOPRawDigitConverter')
430 collector = basf2.register_module(
'TOPPulseHeightCollector')
431 collector.param(
'granularity',
'all')
434 algorithm = TOP.TOPPulseHeightAlgorithm()
437 cal =
Calibration(name=
'TOP_pulseHeightCalibration', collector=collector,
438 algorithms=algorithm, input_files=inputFiles)
440 for globalTag
in reversed(globalTags):
441 cal.use_central_database(globalTag)
443 for localDB
in reversed(localDBs):
444 cal.use_local_database(localDB)
445 cal.pre_collector_path = main
446 cal.strategies = SingleIOV
451 def module_alignment(inputFiles, sample='dimuon', fixedParameters=None,
452 globalTags=None, localDBs=None, new_cdst_format=True,
455 Returns calibration object for alignment of TOP modules.
456 :param inputFiles: A list of input files in cdst data format
457 :param sample: data sample ('dimuon' or 'bhabha')
458 :fixedParameters: a list of parameters to be fixed (parameter names: basf2 -m TOPAlignmentCollector)
459 :param globalTags: a list of global tags, highest priority first
460 :param localDBs: a list of local databases, highest priority first
461 :param new_cdst_format: True or False for new or old cdst format, respectively
462 :param backend_args: Dictionary of backend args for the Collection object to use
468 for globalTag
in reversed(globalTags):
469 cal.use_central_database(globalTag)
471 for localDB
in reversed(localDBs):
472 cal.use_local_database(localDB)
473 cal.strategies = SingleIOV
476 for slot
in range(1, 17):
478 main = basf2.create_path()
481 main.add_module(
'RootInput')
483 main.add_module(
'Gearbox')
484 main.add_module(
'Geometry')
485 main.add_module(
'Ext')
486 main.add_module(
'TOPUnpacker')
487 main.add_module(
'TOPRawDigitConverter')
488 main.add_module(
'TOPChannelMasker')
489 main.add_module(
'TOPBunchFinder', autoRange=
True, subtractRunningOffset=
False)
491 main.add_module(
'TOPGeometryParInitializer')
492 main.add_module(
'TOPTimeRecalibrator', subtractBunchTime=
False)
493 main.add_module(
'TOPChannelMasker')
494 main.add_module(
'TOPBunchFinder', autoRange=
True,
495 usePIDLikelihoods=
True, subtractRunningOffset=
False)
498 collector = basf2.register_module(
'TOPAlignmentCollector')
499 collector.param(
'sample', sample)
501 collector.param(
'parFixed', fixedParameters)
502 collector.param(
'targetModule', slot)
503 collector.param(
'granularity',
'all')
508 collection =
Collection(collector=collector, input_files=inputFiles,
509 pre_collector_path=main, max_collector_jobs=1)
511 for globalTag
in reversed(globalTags):
512 collection.use_central_database(globalTag)
514 for localDB
in reversed(localDBs):
515 collection.use_local_database(localDB)
517 collection.backend_args = backend_args
520 cal.add_collection(name=
'slot_' +
'{:0=2d}'.format(slot), collection=collection)
523 algorithm = TOP.TOPAlignmentAlgorithm()
524 cal.algorithms = algorithm
529 def channel_mask_calibration(inputFiles, globalTags=None, localDBs=None, unpack=True):
531 Returns calibration object for channel masking
532 :param inputFiles: A list of input files in raw data or cdst format
533 :param globalTags: a list of global tags, highest priority first
534 :param localDBs: a list of local databases, highest priority first
535 :param unpack: True if data unpacking is required (i.e. for raw data or for new cdst format)
539 main = basf2.create_path()
542 main.add_module(
'RootInput')
543 main.add_module(
'TOPGeometryParInitializer')
545 main.add_module(
'TOPUnpacker')
546 main.add_module(
'TOPRawDigitConverter')
549 collector = basf2.register_module(
'TOPChannelMaskCollector')
552 algorithm = TOP.TOPChannelMaskAlgorithm()
555 cal =
Calibration(name=
'TOP_ChannelMaskCalibration', collector=collector,
556 algorithms=algorithm, input_files=inputFiles)
558 for globalTag
in reversed(globalTags):
559 cal.use_central_database(globalTag)
561 for localDB
in reversed(localDBs):
562 cal.use_local_database(localDB)
563 cal.pre_collector_path = main
564 cal.strategies = SequentialRunByRun
569 def calibration_validation(inputFiles, sample='dimuon', globalTags=None, localDBs=None, new_cdst_format=True):
571 Returns calibration object for final module T0 calibration with method LL
572 :param inputFiles: A list of input files in cdst data format
573 :param sample: data sample ('dimuon' or 'bhabha')
574 :param globalTags: a list of global tags, highest priority first
575 :param localDBs: a list of local databases, highest priority first
576 :param new_cdst_format: True or False for new or old cdst format, respectively
580 main = basf2.create_path()
583 main.add_module(
'RootInput')
585 main.add_module(
'Gearbox')
586 main.add_module(
'Geometry')
587 main.add_module(
'Ext')
588 main.add_module(
'TOPUnpacker')
589 main.add_module(
'TOPRawDigitConverter')
590 main.add_module(
'TOPChannelMasker')
591 main.add_module(
'TOPBunchFinder')
593 main.add_module(
'TOPGeometryParInitializer')
594 main.add_module(
'TOPTimeRecalibrator', subtractBunchTime=
False)
595 main.add_module(
'TOPChannelMasker')
596 main.add_module(
'TOPBunchFinder', usePIDLikelihoods=
True)
599 collector = basf2.register_module(
'TOPValidationCollector')
600 collector.param(
'sample', sample)
601 collector.param(
'granularity',
'run')
604 algorithm = TOP.TOPValidationAlgorithm()
607 cal =
Calibration(name=
'TOP_validation', collector=collector,
608 algorithms=algorithm, input_files=inputFiles)
610 for globalTag
in reversed(globalTags):
611 cal.use_central_database(globalTag)
613 for localDB
in reversed(localDBs):
614 cal.use_local_database(localDB)
615 cal.pre_collector_path = main
616 cal.strategies = SingleIOV