diff options
author | tlatorre <tlatorre@uchicago.edu> | 2019-01-15 01:08:54 -0600 |
---|---|---|
committer | tlatorre <tlatorre@uchicago.edu> | 2019-01-15 01:08:54 -0600 |
commit | 9c910abe7a0359018677a874822d8742d0e616b9 (patch) | |
tree | 52dda30fd3c5b0eb78050dee4dec10bdf8557ed7 /src/zdab_utils.c | |
parent | 272d793cda5456fb8a69d3e2a407bf24d3600cd4 (diff) | |
download | sddm-9c910abe7a0359018677a874822d8742d0e616b9.tar.gz sddm-9c910abe7a0359018677a874822d8742d0e616b9.tar.bz2 sddm-9c910abe7a0359018677a874822d8742d0e616b9.zip |
update zebra library to be able to use links
This commit updates the zebra library files zebra.{c,h} so that it's now
possible to traverse the data structure using links! This was originally
motivated by wanting to figure out which MC particles were generated from the
MCGN bank (from which it's only possible to access the tracks and vertices
using structural links).
I've also added a new test to test-zebra which checks the consistency of all of
the next/up/orig, structural, and reference links in a zebra file.
Diffstat (limited to 'src/zdab_utils.c')
-rw-r--r-- | src/zdab_utils.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/zdab_utils.c b/src/zdab_utils.c index 1cde62a..1f2ed03 100644 --- a/src/zdab_utils.c +++ b/src/zdab_utils.c @@ -49,6 +49,30 @@ void swap_int16(int16_t *val_pt, int count) return; } +void unpack_mcgn(uint32_t *data, MCGNBank *b) +{ + unpack((uint8_t *) data, "l",&b->id); + unpack((uint8_t *) (data+1), "l",&b->num); + unpack((uint8_t *) (data+2), "l",&b->radcor_proc); + unpack((uint8_t *) (data+3), "l",&b->radcor_made_gamma); + unpack((uint8_t *) (data+4), "l",&b->spare5); + unpack((uint8_t *) (data+5), "l",&b->spare6); + unpack((uint8_t *) (data+7), "l",&b->spare7); + unpack((uint8_t *) (data+8), "l",&b->spare8); + unpack((uint8_t *) (data+9), "l",&b->spare9); + unpack((uint8_t *) (data+10), "l",&b->spare10); + unpack((uint8_t *) (data+12), "f",&b->radcor_xtot); + unpack((uint8_t *) (data+13), "f",&b->radcor_xdif); + unpack((uint8_t *) (data+14), "f",&b->gentim_xpar); + unpack((uint8_t *) (data+15), "f",&b->spare14); + unpack((uint8_t *) (data+16), "f",&b->spare15); + unpack((uint8_t *) (data+17), "f",&b->spare16); + unpack((uint8_t *) (data+18), "f",&b->spare17); + unpack((uint8_t *) (data+19), "f",&b->spare18); + unpack((uint8_t *) (data+20), "f",&b->spare19); + unpack((uint8_t *) (data+21), "f",&b->spare20); +} + void unpack_mcvx(uint32_t *data, MCVXBank *b) { unpack((uint8_t *) data, "l",&b->cls); |