Skip to content

Commit 0535a84

Browse files
authored
Merge pull request #14 from legend-exp/hpge-lq-cut
Include `LQ` cut
2 parents 8de1790 + 5e2bee1 commit 0535a84

File tree

2 files changed

+19
-8
lines changed

2 files changed

+19
-8
lines changed

src/calibrate_all.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ function calibrate_all(data::LegendData, sel::AnyValiditySelection, datastore::A
7676
trig_e_535_cal = trig_e_535_cal,
7777
is_valid_qc = count.(ged_events_pre.is_baseline) .== n_expected_baseline,
7878
is_valid_hit = is_valid_hit.(getindex.(ged_events_pre.channel, trig_e_ch), Ref(Int.(hitgeds_channels))),
79+
is_valid_psd = all.(getindex.(ged_events_pre.psd_classifier, trig_e_ch)),
7980
is_discharge_recovery = any.(ged_events_pre.is_discharge_recovery_ml),
8081
is_saturated = any.(ged_events_pre.is_saturated),
8182
is_discharge = any.(ged_events_pre.is_discharge),

src/calibrate_geds.jl

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ Also calculates the configured cut/flag values.
1212
"""
1313
function calibrate_ged_channel_data(data::LegendData, sel::AnyValiditySelection, detector::DetectorIdLike, channel_data::AbstractVector;
1414
e_cal_pars_type::Symbol=:rpars, e_cal_pars_cat::Symbol=:ecal,
15-
psd_cal_pars_type::Symbol=:ppars, psd_cal_pars_cat::Symbol=:aoe, psd_cut_pars_type::Symbol=:ppars, psd_cut_pars_cat::Symbol=:aoe,
15+
psd_pars_type::Symbol=:ppars,
16+
aoe_cal_pars_type::Symbol=:ppars, aoe_cal_pars_cat::Symbol=:aoe, aoe_cut_pars_type::Symbol=:ppars, aoe_cut_pars_cat::Symbol=:aoe,
17+
lq_cal_pars_type::Symbol=:ppars, lq_cal_pars_cat::Symbol=:lq, lq_cut_pars_type::Symbol=:ppars, lq_cut_pars_cat::Symbol=:lq,
1618
keep_chdata::Bool=false)
1719

1820
detector = DetectorId(detector)
@@ -22,7 +24,7 @@ function calibrate_ged_channel_data(data::LegendData, sel::AnyValiditySelection,
2224

2325
# get energy and psd calibration functions for the detector
2426
cal_pf = get_ged_cal_propfunc(data, sel, detector; pars_type=e_cal_pars_type, pars_cat=e_cal_pars_cat)
25-
psd_pf = get_ged_psd_propfunc(data, sel, detector; pars_type=psd_cal_pars_type, pars_cat=psd_cal_pars_cat)
27+
psd_pf = get_ged_psd_propfunc(data, sel, detector; aoe_pars_type=aoe_cal_pars_type, aoe_pars_cat=aoe_cal_pars_cat, lq_pars_type=lq_cal_pars_type, lq_pars_cat=lq_cal_pars_cat)
2628

2729
# get qc labels
2830
cut_pf = get_ged_qc_cuts_propfunc(data, sel, detector)
@@ -40,8 +42,10 @@ function calibrate_ged_channel_data(data::LegendData, sel::AnyValiditySelection,
4042
end
4143

4244
# get postcal psd flags
43-
postcal_pf = get_ged_aoe_cut_propfunc(data, sel, detector; pars_type=psd_cut_pars_type, pars_cat=psd_cut_pars_cat)
44-
45+
aoecut_pf = get_ged_aoe_cut_propfunc(data, sel, detector; pars_type=aoe_cut_pars_type, pars_cat=aoe_cut_pars_cat)
46+
lqcut_pf = get_ged_lq_cut_propfunc(data, sel, detector; pars_type=lq_cut_pars_type, pars_cat=lq_cut_pars_cat)
47+
psdcut_pf = get_ged_psd_classifier_propfunc(data, sel, detector; pars_type=psd_pars_type)
48+
4549
# apply calibrations
4650
cal_output = cal_pf.(chdata)
4751
psd_output = psd_pf.(StructArray(merge(columns(cal_output), columns(chdata))))
@@ -51,23 +55,29 @@ function calibrate_ged_channel_data(data::LegendData, sel::AnyValiditySelection,
5155
cut_output = cut_pf.(cal_chdata)
5256

5357
# get postcal data
54-
postcal_data = postcal_pf.(cal_chdata)
58+
postcal_data = StructArray(merge(columns(aoecut_pf.(cal_chdata)), columns(lqcut_pf.(cal_chdata))))
59+
psd_classifier = psdcut_pf.(postcal_data)
60+
61+
additional_psd_cols = (
62+
psd_classifier = psd_classifier,
63+
)
5564

5665
# get additional columns
5766
chdata_output = chdata_output_pf.(chdata)
5867

59-
# get cut flags
68+
# get qc cut flags
6069
is_physical = cut_is_physical_pf.(cut_output)
6170
is_baseline = cut_is_baseline_pf.(cut_output)
6271
is_physical_trig = cut_is_trig_pf.(cal_chdata) .&& is_physical
72+
6373

64-
additional_cols = (
74+
additional_qc_cols = (
6575
is_physical = is_physical,
6676
is_baseline = is_baseline,
6777
is_physical_trig = is_physical_trig,
6878
)
6979

70-
return StructVector(merge(columns(chdata_output), columns(cal_output), columns(psd_output), columns(postcal_data), columns(cut_output), additional_cols))
80+
return StructVector(merge(columns(chdata_output), columns(cal_output), columns(psd_output), columns(postcal_data), additional_psd_cols, columns(cut_output), additional_qc_cols))
7181
end
7282
export calibrate_ged_channel_data
7383

0 commit comments

Comments
 (0)