diff options
author | tlatorre <tlatorre@uchicago.edu> | 2019-08-27 14:16:38 -0500 |
---|---|---|
committer | tlatorre <tlatorre@uchicago.edu> | 2019-08-27 14:16:38 -0500 |
commit | d38aa64a9de0af9ac886cd7f51ea5ff575399519 (patch) | |
tree | 3cdc065e6289ddf645eef46d981767dc47f218cd | |
parent | 83f1e08ded354daf0f71cc7ec67f8de23bf69ad2 (diff) | |
download | sddm-d38aa64a9de0af9ac886cd7f51ea5ff575399519.tar.gz sddm-d38aa64a9de0af9ac886cd7f51ea5ff575399519.tar.bz2 sddm-d38aa64a9de0af9ac886cd7f51ea5ff575399519.zip |
fix the fts cut
This commit fixes the FTS cut so that it returns 1 when the event is flagged as
failing the cut. Previously, the function returned the following:
not enough PMT pairs: 0 (fail)
median time > 6.8 ns: 0 (fail)
otherwise: 1 (pass)
This had two issues: the return value wasn't consistent with the rest of the
data cleaning cuts and it should pass if there aren't enough PMT pairs.
Now, I fixed the not enough PMT pairs case and made the return value consistent
with the rest of the data cleaning cuts:
not enough PMT pairs: 0 (pass)
median time > 6.8 ns: 1 (fail)
otherwise: 0 (pass)
-rw-r--r-- | src/dc.c | 4 | ||||
-rwxr-xr-x | utils/plot-energy | 4 |
2 files changed, 4 insertions, 4 deletions
@@ -106,7 +106,7 @@ int is_fts(event *ev) /* Get the absolute value of the time difference. */ dt = fabs(ev->pmt_hits[i].t - ev->pmt_hits[j].t); - if (dt <= 25.0 && distance < 300.0) { + if (dt <= FTS_DT_THRESH && distance < FTS_DIST_THRESH) { deltat_array[count++] = dt; if (count >= MAX_PAIRS) goto end; } @@ -118,7 +118,7 @@ end: if (count > FTS_COUNT_THRESH) { gsl_sort(deltat_array,1,count); dtmedian = gsl_stats_median_from_sorted_data(deltat_array,1,count); - return dtmedian < FTS_MEDIAN_CUT; + return dtmedian > FTS_MEDIAN_CUT; } return 0; diff --git a/utils/plot-energy b/utils/plot-energy index 1e8cbcb..3c645d5 100755 --- a/utils/plot-energy +++ b/utils/plot-energy @@ -205,7 +205,7 @@ if __name__ == '__main__': if prompt_plus_muons.size and follower.size: # require Michel events to pass more of the SNO data cleaning cuts - michel = follower[follower.dc & (DC_JUNK | DC_CRATE_ISOTROPY | DC_QVNHIT | DC_FLASHER | DC_NECK | DC_ESUM | DC_OWL | DC_OWL_TRIGGER | DC_FTS) == DC_FTS] + michel = follower[follower.dc & (DC_JUNK | DC_CRATE_ISOTROPY | DC_QVNHIT | DC_FLASHER | DC_NECK | DC_ESUM | DC_OWL | DC_OWL_TRIGGER | DC_FTS) == 0] michel = michel[michel.nhit >= 100] @@ -242,7 +242,7 @@ if __name__ == '__main__': if prompt.size and follower.size: # neutron followers have to obey stricter set of data cleaning cuts - neutron = follower[follower.dc & (DC_JUNK | DC_CRATE_ISOTROPY | DC_QVNHIT | DC_FLASHER | DC_NECK | DC_ESUM | DC_OWL | DC_OWL_TRIGGER | DC_FTS) == DC_FTS] + neutron = follower[follower.dc & (DC_JUNK | DC_CRATE_ISOTROPY | DC_QVNHIT | DC_FLASHER | DC_NECK | DC_ESUM | DC_OWL | DC_OWL_TRIGGER | DC_FTS) == 0] neutron = neutron[~np.isnan(neutron.ftp_x) & ~np.isnan(neutron.rsp_energy)] r = np.sqrt(neutron.ftp_x**2 + neutron.ftp_y**2 + neutron.ftp_z**2) neutron = neutron[r < AV_RADIUS] |