diff options
author | tlatorre <tlatorre@uchicago.edu> | 2019-09-30 11:10:20 -0500 |
---|---|---|
committer | tlatorre <tlatorre@uchicago.edu> | 2019-09-30 11:10:20 -0500 |
commit | 76006218bdb36fc1f11a33678b83ec0776cc6228 (patch) | |
tree | 2c87cfd51bcd4dfdde6d82b77abf6a8a57ed9cfc /src/fit.c | |
parent | e41bc169e213bbb2fb1c132150736e3ad8760dd4 (diff) | |
download | sddm-76006218bdb36fc1f11a33678b83ec0776cc6228.tar.gz sddm-76006218bdb36fc1f11a33678b83ec0776cc6228.tar.bz2 sddm-76006218bdb36fc1f11a33678b83ec0776cc6228.zip |
write out run header info to the hdf5 file
Diffstat (limited to 'src/fit.c')
-rw-r--r-- | src/fit.c | 34 |
1 files changed, 30 insertions, 4 deletions
@@ -5977,7 +5977,7 @@ int main(int argc, char **argv) { int i, j, k; zebraFile *f; - zebraBank bmast, mc, bmcgn, mctk, b; + zebraBank bmast, mc, bmcgn, mctk, b, rhdr; int rv; EVBank bev; FTPVBank bftpv; @@ -5986,6 +5986,7 @@ int main(int argc, char **argv) MCBank bmc; MCTKBank bmctk; MCVXBank bmcvx; + RHDRBank brhdr; event ev = {0}; char *filename = NULL; char *output = NULL; @@ -6021,6 +6022,12 @@ int main(int argc, char **argv) * Note: Declared static since otherwise it will cause a stack overflow. */ static HDF5Fit hdf5_fits[MAX_NEVENTS]; + int nrhdr = 0; + /* Array of run header info to write out to HDF5 file. + * + * Note: Declared static since otherwise it will cause a stack overflow. */ + static HDF5RHDR hdf5_rhdr[MAX_NEVENTS]; + for (i = 1; i < argc; i++) { if (strlen(argv[i]) >= 2 && !strncmp(argv[i], "--", 2)) { if (!strcmp(argv[i]+2,"skip-second-event")) { @@ -6143,6 +6150,25 @@ int main(int argc, char **argv) goto err; } + if (bmast.links[KMAST_RHDR-1] != 0) { + rv = zebra_get_bank(f,&rhdr,bmast.links[KMAST_RHDR-1]); + + if (rv) { + fprintf(stderr, "error getting RHDR bank: %s\n", zebra_err); + goto err; + } + + unpack_rhdr(rhdr.data, &brhdr); + + hdf5_rhdr[nrhdr].run = brhdr.run_number; + hdf5_rhdr[nrhdr].run_mask = brhdr.run_mask; + hdf5_rhdr[nrhdr].first_gtid = brhdr.first_gt; + + nrhdr += 1; + + continue; + } + if (bmast.links[KMAST_EV-1] == 0) { /* First logical record in SNOCR files don't have an EV bank. */ continue; @@ -6342,7 +6368,7 @@ skip_mc: nfits++; - if (output) save_output(output, hdf5_events, nevents, hdf5_mcgn, nmcgn, hdf5_fits, nfits); + if (output) save_output(output, hdf5_events, nevents, hdf5_mcgn, nmcgn, hdf5_fits, nfits, hdf5_rhdr, nrhdr); } else { /* Loop over 1,2,...,max_particles particle hypotheses. */ for (i = 1; i <= max_particles; i++) { @@ -6361,7 +6387,7 @@ skip_mc: nfits++; - if (output) save_output(output, hdf5_events, nevents, hdf5_mcgn, nmcgn, hdf5_fits, nfits); + if (output) save_output(output, hdf5_events, nevents, hdf5_mcgn, nmcgn, hdf5_fits, nfits, hdf5_rhdr, nrhdr); } } } @@ -6384,7 +6410,7 @@ skip_event: end: - if (output) save_output(output, hdf5_events, nevents, hdf5_mcgn, nmcgn, hdf5_fits, nfits); + if (output) save_output(output, hdf5_events, nevents, hdf5_mcgn, nmcgn, hdf5_fits, nfits, hdf5_rhdr, nrhdr); free_interpolation(); pmt_response_free(); |