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, useTimeSeed=
False, useFillPattern=
False, 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, useTimeSeed=
False, useFillPattern=
False, 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, useTimeSeed=
False, useFillPattern=
False,
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, useTimeSeed=
False, useFillPattern=
False, 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, useTimeSeed=
False, useFillPattern=
False,
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, useTimeSeed=
False, useFillPattern=
False, 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, useTimeSeed=
False, useFillPattern=
False,
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, useTimeSeed=
False, useFillPattern=
False, 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, useTimeSeed=
False, useFillPattern=
False,
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, useTimeSeed=
False, useFillPattern=
False,
490 subtractRunningOffset=
False)
492 main.add_module(
'TOPGeometryParInitializer')
493 main.add_module(
'TOPTimeRecalibrator', subtractBunchTime=
False)
494 main.add_module(
'TOPChannelMasker')
495 main.add_module(
'TOPBunchFinder', autoRange=
True, useTimeSeed=
False, useFillPattern=
False,
496 usePIDLikelihoods=
True, subtractRunningOffset=
False)
499 collector = basf2.register_module(
'TOPAlignmentCollector')
500 collector.param(
'sample', sample)
502 collector.param(
'parFixed', fixedParameters)
503 collector.param(
'targetModule', slot)
504 collector.param(
'granularity',
'all')
509 collection =
Collection(collector=collector, input_files=inputFiles,
510 pre_collector_path=main, max_collector_jobs=1)
512 for globalTag
in reversed(globalTags):
513 collection.use_central_database(globalTag)
515 for localDB
in reversed(localDBs):
516 collection.use_local_database(localDB)
518 collection.backend_args = backend_args
521 cal.add_collection(name=
'slot_' +
'{:0=2d}'.format(slot), collection=collection)
524 algorithm = TOP.TOPAlignmentAlgorithm()
525 cal.algorithms = algorithm
530 def channel_mask_calibration(inputFiles, globalTags=None, localDBs=None, unpack=True):
532 Returns calibration object for channel masking
533 :param inputFiles: A list of input files in raw data or cdst format
534 :param globalTags: a list of global tags, highest priority first
535 :param localDBs: a list of local databases, highest priority first
536 :param unpack: True if data unpacking is required (i.e. for raw data or for new cdst format)
540 main = basf2.create_path()
543 main.add_module(
'RootInput')
544 main.add_module(
'TOPGeometryParInitializer')
546 main.add_module(
'TOPUnpacker')
547 main.add_module(
'TOPRawDigitConverter')
550 collector = basf2.register_module(
'TOPChannelMaskCollector')
553 algorithm = TOP.TOPChannelMaskAlgorithm()
556 cal =
Calibration(name=
'TOP_ChannelMaskCalibration', collector=collector,
557 algorithms=algorithm, input_files=inputFiles)
559 for globalTag
in reversed(globalTags):
560 cal.use_central_database(globalTag)
562 for localDB
in reversed(localDBs):
563 cal.use_local_database(localDB)
564 cal.pre_collector_path = main
565 cal.strategies = SequentialRunByRun
570 def offset_calibration(inputFiles, globalTags=None, localDBs=None,
571 new_cdst_format=True):
573 Returns calibration object for common T0 calibration with method BF
574 :param inputFiles: A list of input files in cdst data format
575 :param globalTags: a list of global tags, highest priority first
576 :param localDBs: a list of local databases, highest priority first
577 :param new_cdst_format: True or False for new or old cdst format, respectively
581 main = basf2.create_path()
584 main.add_module(
'RootInput')
586 main.add_module(
'Gearbox')
587 main.add_module(
'Geometry')
588 main.add_module(
'Ext')
589 main.add_module(
'TOPUnpacker')
590 main.add_module(
'TOPRawDigitConverter')
591 main.add_module(
'TOPChannelMasker')
592 main.add_module(
'TOPBunchFinder', autoRange=
True, useTimeSeed=
False, useFillPattern=
False, subtractRunningOffset=
False)
594 main.add_module(
'TOPGeometryParInitializer')
595 main.add_module(
'TOPTimeRecalibrator', subtractBunchTime=
False)
596 main.add_module(
'TOPChannelMasker')
597 main.add_module(
'TOPBunchFinder', usePIDLikelihoods=
True, autoRange=
True, useTimeSeed=
False, useFillPattern=
False,
598 subtractRunningOffset=
False)
601 collector = basf2.register_module(
'TOPOffsetCollector')
604 algorithms = [TOP.TOPEventT0OffsetAlgorithm(), TOP.TOPFillPatternOffsetAlgorithm()]
607 cal =
Calibration(name=
'TOP_offsetCalibration', collector=collector,
608 algorithms=algorithms, 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 = SequentialRunByRun
621 def calibration_validation(inputFiles, sample='dimuon', globalTags=None, localDBs=None, new_cdst_format=True):
623 Returns calibration object for final module T0 calibration with method LL
624 :param inputFiles: A list of input files in cdst data format
625 :param sample: data sample ('dimuon' or 'bhabha')
626 :param globalTags: a list of global tags, highest priority first
627 :param localDBs: a list of local databases, highest priority first
628 :param new_cdst_format: True or False for new or old cdst format, respectively
632 main = basf2.create_path()
635 main.add_module(
'RootInput')
637 main.add_module(
'Gearbox')
638 main.add_module(
'Geometry')
639 main.add_module(
'Ext')
640 main.add_module(
'TOPUnpacker')
641 main.add_module(
'TOPRawDigitConverter')
642 main.add_module(
'TOPChannelMasker')
643 main.add_module(
'TOPBunchFinder')
645 main.add_module(
'TOPGeometryParInitializer')
646 main.add_module(
'TOPTimeRecalibrator', subtractBunchTime=
False)
647 main.add_module(
'TOPChannelMasker')
648 main.add_module(
'TOPBunchFinder', usePIDLikelihoods=
True)
651 collector = basf2.register_module(
'TOPValidationCollector')
652 collector.param(
'sample', sample)
653 collector.param(
'granularity',
'run')
656 algorithm = TOP.TOPValidationAlgorithm()
659 cal =
Calibration(name=
'TOP_validation', collector=collector,
660 algorithms=algorithm, input_files=inputFiles)
662 for globalTag
in reversed(globalTags):
663 cal.use_central_database(globalTag)
665 for localDB
in reversed(localDBs):
666 cal.use_local_database(localDB)
667 cal.pre_collector_path = main
668 cal.strategies = SingleIOV