aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortlatorre <tlatorre@uchicago.edu>2019-08-27 14:16:38 -0500
committertlatorre <tlatorre@uchicago.edu>2019-08-27 14:16:38 -0500
commitd38aa64a9de0af9ac886cd7f51ea5ff575399519 (patch)
tree3cdc065e6289ddf645eef46d981767dc47f218cd
parent83f1e08ded354daf0f71cc7ec67f8de23bf69ad2 (diff)
downloadsddm-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.c4
-rwxr-xr-xutils/plot-energy4
2 files changed, 4 insertions, 4 deletions
diff --git a/src/dc.c b/src/dc.c
index 7b5b1d7..8b85070 100644
--- a/src/dc.c
+++ b/src/dc.c
@@ -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]