aboutsummaryrefslogtreecommitdiff
path: root/src/fit.c
diff options
context:
space:
mode:
authortlatorre <tlatorre@uchicago.edu>2019-09-30 11:10:20 -0500
committertlatorre <tlatorre@uchicago.edu>2019-09-30 11:10:20 -0500
commit76006218bdb36fc1f11a33678b83ec0776cc6228 (patch)
tree2c87cfd51bcd4dfdde6d82b77abf6a8a57ed9cfc /src/fit.c
parente41bc169e213bbb2fb1c132150736e3ad8760dd4 (diff)
downloadsddm-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.c34
1 files changed, 30 insertions, 4 deletions
diff --git a/src/fit.c b/src/fit.c
index e791480..68d66af 100644
--- a/src/fit.c
+++ b/src/fit.c
@@ -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();