diff options
Diffstat (limited to 'src/zdab_utils.h')
-rw-r--r-- | src/zdab_utils.h | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/src/zdab_utils.h b/src/zdab_utils.h index f70482a..8d8badc 100644 --- a/src/zdab_utils.h +++ b/src/zdab_utils.h @@ -18,6 +18,74 @@ #define SWAP_INT16(a,b) #endif +/* Links for the MCVX bank. */ +#define KMCVX_MCVXG 4 +#define KMCVX_MCPM 3 +#define KMCVX_MCTKI 2 +#define KMCVX_MCTK 1 + +/* Links for the MC bank. */ +#define KMC_MCNS 6 +#define KMC_MCNH 5 +#define KMC_MCPM 4 +#define KMC_EGS4 3 +#define KMC_MCVX 2 +#define KMC_MCGN 1 + +/* Links for the EV bank. */ +#define KEV_NPFA 32 +#define KEV_NECL 31 +#define KEV_NPA 30 +#define KEV_NEMG_PAR 29 +#define KEV_NEMG 28 +#define KEV_NES 27 +#define KEV_NESG 26 +#define KEV_RSP 25 +#define KEV_NECK 24 +#define KEV_BUTT 23 +#define KEV_ANAL 22 +#define KEV_FECD 21 +#define KEV_LG 20 +#define KEV_OWL 19 +#define KEV_PMT 18 +#define KEV_CL 17 +#define KEV_PIF 16 +#define KEV_PIT0 15 +#define KEV_PIT 14 +#define KEV_PIHS 13 +#define KEV_PIHL 12 +#define KEV_PILX 11 +#define KEV_PIN 10 +#define KEV_PT0 9 +#define KEV_PLX 8 +#define KEV_PHS 7 +#define KEV_ZDAB 6 +#define KEV_PF 5 +#define KEV_PN 4 +#define KEV_PHL 3 +#define KEV_PT 2 +#define KEV_FT 1 + +/* Links for the MAST bank. */ +#define KMAST_RLOG 25 /* Runlog data. */ +#define KMAST_RLAI 24 /* Runlog analysis data. */ +#define KMAST_LABL 12 /* Tape label information. */ +#define KMAST_CAAC 11 /* AV Status. */ +#define KMAST_CAST 10 /* Manipulator status. */ +#define KMAST_SOSF 9 /* LED status. */ +#define KMAST_SOSX 8 /* Manipulator source status. */ +#define KMAST_TRIG 7 /* Trigger information bank. */ +#define KMAST_EPED 6 /* Electronics calibration pedestal bank. */ +#define KMAST_RHDR 5 /* Top level run header bank. */ +#define KMAST_ANAL 4 /* Analysis top level bank. */ +#define KMAST_DSML 3 /* Data structure manager log bank. */ +#define KMAST_MC 2 /* Monte carlo top level bank. */ +#define KMAST_EV 1 /* First event trigger bank. */ + +/* MAST bank data words. */ +#define KMAST_SNOMAN_VER 1 +#define KMAST_SNOMAN_VER_ORG 2 + /* Status bits for the MC Vertex bank. * * See http://www.lip.pt/~barros/SNO/doc/snoman/companion_frames.html. */ @@ -63,6 +131,46 @@ #define KPF_NO_CAL 0x08000000 #define KPF_BAD_CAL 0x10000000 +/* Links for the MCGN bank. */ +#define KMCGN_MCTK 1 + +/* Links for the MCTK bank. */ +#define KMCTK_MCVX 1 + +typedef struct MCGNBank { + /* Particle id. */ + uint32_t id; + /* Number of outgoing particles generated. */ + uint32_t num; + /* Radiative process if any. */ + uint32_t radcor_proc; + /* +1 particle brems and produces a gamma. + * -1 particle is a gamma produced by brem. */ + uint32_t radcor_made_gamma; + /* Spares. */ + uint32_t spare5; + uint32_t spare6; + uint32_t spare7; + uint32_t spare8; + uint32_t spare9; + uint32_t spare10; + /* Correction to total cross sections. */ + float radcor_xtot; + /* Correction to differential cross sections. */ + float radcor_xdif; + /* Value of exponential parameter used for generating particle start times, + * if time type IDTEX1 was selected. */ + float gentim_xpar; + /* More spares. */ + float spare14; + float spare15; + float spare16; + float spare17; + float spare18; + float spare19; + float spare20; +} MCGNBank; + typedef struct MCVXBank { /* Class: = 1 Source, = 2 Boundary, = 3 Interaction, = 4 Sink = 5 Pre-source. */ @@ -282,6 +390,7 @@ typedef struct PMTBank { uint32_t qrc; } PMTBank; +void unpack_mcgn(uint32_t *data, MCGNBank *b); void unpack_mcvx(uint32_t *data, MCVXBank *b); void unpack_mctk(uint32_t *data, MCTKBank *b); void unpack_ev(uint32_t *data, EVBank *b); |