diff options
author | tlatorre <tlatorre@uchicago.edu> | 2018-09-17 08:26:52 -0500 |
---|---|---|
committer | tlatorre <tlatorre@uchicago.edu> | 2018-09-17 08:26:52 -0500 |
commit | 6f546d1f4e9d5b14689d00fcf98e85c7e78df6f8 (patch) | |
tree | 79fcf4a67ca3c507c2da62c38ac91f1e539e16b3 /src | |
parent | e449ca23d8f503efcbca7e24f9539c8c4cb31357 (diff) | |
download | sddm-6f546d1f4e9d5b14689d00fcf98e85c7e78df6f8.tar.gz sddm-6f546d1f4e9d5b14689d00fcf98e85c7e78df6f8.tar.bz2 sddm-6f546d1f4e9d5b14689d00fcf98e85c7e78df6f8.zip |
add MC Track bank to zdab_utils
Diffstat (limited to 'src')
-rw-r--r-- | src/zdab_utils.c | 16 | ||||
-rw-r--r-- | src/zdab_utils.h | 28 |
2 files changed, 44 insertions, 0 deletions
diff --git a/src/zdab_utils.c b/src/zdab_utils.c index d946eef..a689f92 100644 --- a/src/zdab_utils.c +++ b/src/zdab_utils.c @@ -49,6 +49,22 @@ void swap_int16(int16_t *val_pt, int count) return; } +void unpack_mctk(uint32_t *data, MCTKBank *b) +{ + unpack((uint8_t *) data, "l",&b->idp); + unpack((uint8_t *) (data+1), "f",&b->drx); + unpack((uint8_t *) (data+2), "f",&b->dry); + unpack((uint8_t *) (data+3), "f",&b->drz); + unpack((uint8_t *) (data+4), "f",&b->ene); + unpack((uint8_t *) (data+5), "l",&b->rgn); + unpack((uint8_t *) (data+6), "l",&b->idm); + unpack((uint8_t *) (data+7), "f",&b->plx); + unpack((uint8_t *) (data+8), "f",&b->ply); + unpack((uint8_t *) (data+9), "f",&b->plz); + unpack((uint8_t *) (data+10), "f",&b->stp); + unpack((uint8_t *) (data+11), "f",&b->near); +} + void unpack_ev(uint32_t *data, EVBank *b) { unpack((uint8_t *) data, "l",&b->run); diff --git a/src/zdab_utils.h b/src/zdab_utils.h index c5fc2c0..d5b6a7a 100644 --- a/src/zdab_utils.h +++ b/src/zdab_utils.h @@ -29,6 +29,33 @@ #define KPF_NO_CAL 0x08000000 #define KPF_BAD_CAL 0x10000000 +typedef struct MCTKBank { + /* Particle id code. */ + uint32_t idp; + /* Direction cosine X. */ + float drx; + /* Direction cosine Y. */ + float dry; + /* Direction cosine Z. */ + float drz; + /* Total energy (except for neutrons where it is kinetic). */ + float ene; + /* Region code. */ + uint32_t rgn; + /* Physical media code. */ + uint32_t idm; + /* Polarization X. */ + float plx; + /* Polarization Y. */ + float ply; + /* Polarization Z. */ + float plz; + /* Track step size. */ + float stp; + /* Minimum distance to nearest boundary or 0. */ + float near; +} MCTKBank; + typedef struct EVBank { /* Run number. */ uint32_t run; @@ -189,6 +216,7 @@ typedef struct PMTBank { uint32_t qrc; } PMTBank; +void unpack_mctk(uint32_t *data, MCTKBank *b); void unpack_ev(uint32_t *data, EVBank *b); void unpack_pmt(uint32_t *data, PMTBank *b); |