11"""ECL Autocovariance."""
13from prompt
import CalibrationSettings, INPUT_DATA_FILTERS
14from caf
import strategies
18settings = CalibrationSettings(
19 name=
"ecl_autocovariance",
20 expert_username=
"savino.longo",
23 input_data_formats=[
"raw"],
24 input_data_names=[
"delayedbhabha_calib"],
26 "delayedbhabha_calib": [
27 INPUT_DATA_FILTERS[
"Data Tag"][
"delayedbhabha_calib"],
28 INPUT_DATA_FILTERS[
"Data Quality Tag"][
"Good Or Recoverable"],
29 INPUT_DATA_FILTERS[
"Run Type"][
"physics"],
30 INPUT_DATA_FILTERS[
"Magnet"][
"On"]]},
33 "C1_lowestEnergyFraction": 0.75,
34 "C1_TotalCountsThreshold": 10000
36 produced_payloads=[
"ECLAutoCovariance"])
43def get_calibrations(input_data, **kwargs):
45 from ROOT
import Belle2
46 from caf.utils
import IoV
47 from caf.framework
import Calibration
53 file_to_iov_delayed_Bhabha = input_data[
"delayedbhabha_calib"]
54 input_files = list(file_to_iov_delayed_Bhabha.keys())
58 expert_config = kwargs.get(
"expert_config")
59 algo_C1.setLowestEnergyFraction(expert_config[
"C1_lowestEnergyFraction"])
60 algo_C1.setTotalCountsThreshold(expert_config[
"C1_TotalCountsThreshold"])
63 collector_C1 = basf2.register_module(
"eclAutocovarianceCalibrationC1Collector")
65 cal_ecl_Auto_C1 = Calibration(
"ecl_Auto_C1",
66 collector=collector_C1,
68 input_files=input_files, max_files_per_collector_job=4)
69 cal_ecl_Auto_C1.strategies = strategies.SequentialRunByRun
72 delayed_Bhabha_pre_path = basf2.create_path()
73 delayed_Bhabha_pre_path.add_module(
"RootInput", branchNames=[
"EventMetaData",
"RawECLs"])
74 delayed_Bhabha_pre_path.add_module(
'ECLUnpacker')
76 cal_ecl_Auto_C1.pre_collector_path = delayed_Bhabha_pre_path
82 collector_C3 = basf2.register_module(
"eclAutocovarianceCalibrationC3Collector")
84 cal_ecl_Auto_C3 = Calibration(
"ecl_Auto_C3",
85 collector=collector_C3,
87 input_files=input_files, max_files_per_collector_job=4)
88 cal_ecl_Auto_C3.strategies = strategies.SequentialRunByRun
90 cal_ecl_Auto_C3.pre_collector_path = delayed_Bhabha_pre_path
92 cal_ecl_Auto_C3.depends_on(cal_ecl_Auto_C1)
98 collector_C4 = basf2.register_module(
"eclAutocovarianceCalibrationC4Collector")
100 cal_ecl_Auto_C4 = Calibration(
"ecl_Auto_C4",
101 collector=collector_C4,
102 algorithms=[algo_C4],
103 input_files=input_files, max_files_per_collector_job=4)
105 cal_ecl_Auto_C4.pre_collector_path = delayed_Bhabha_pre_path
107 cal_ecl_Auto_C4.depends_on(cal_ecl_Auto_C3)
111 requested_iov = kwargs.get(
"requested_iov",
None)
112 output_iov = IoV(requested_iov.exp_low, requested_iov.run_low, -1, -1)
113 for algorithm
in cal_ecl_Auto_C1.algorithms:
114 algorithm.params = {
"apply_iov": output_iov}
115 for algorithm
in cal_ecl_Auto_C3.algorithms:
116 algorithm.params = {
"apply_iov": output_iov}
117 for algorithm
in cal_ecl_Auto_C4.algorithms:
118 algorithm.params = {
"apply_iov": output_iov}
122 return [cal_ecl_Auto_C1, cal_ecl_Auto_C3, cal_ecl_Auto_C4]
Calibrate covariance matrix for crystals using delayed Bhabha events.
Calibrate covariance matrix for crystals using delayed Bhabha events.
Calibrate covariance matrix for crystals using delayed Bhabha events.