DDAS Format 2.1.0
A self-contained, lightweight format library and unpacker for DDAS data
DDASBitMasks.h
Go to the documentation of this file.
1/*
2 This software is Copyright by the Board of Trustees of Michigan
3 State University (c) Copyright 2016.
4
5 You may use this software under the terms of the GNU public license
6 (GPL). The terms of this license are described at:
7
8 http://www.gnu.org/licenses/gpl.txt
9
10 Author:
11 Aaron Chester
12 Facility for Rare Isotope Beams
13 Michigan State University
14 East Lansing, MI 48824-1321
15*/
16
25#ifndef DDASBITMASKS_H
26#define DDASBITMASKS_H
27
28#include <cstdint>
29
31namespace ddasfmt {
32
33// Generic masks:
34
35constexpr uint32_t LOWER_16_BIT_MASK = 0x0000FFFF;
36constexpr uint32_t BIT_28_TO_16_MASK = 0x1FFF0000;
37constexpr uint32_t BIT_29_TO_16_MASK = 0x3FFF0000;
38constexpr uint32_t BIT_30_TO_16_MASK = 0x7FFF0000;
39constexpr uint32_t BIT_30_TO_29_MASK = 0x60000000;
40constexpr uint32_t BIT_31_TO_29_MASK = 0xE0000000;
41constexpr uint32_t BIT_30_MASK = 0x40000000;
42constexpr uint32_t BIT_31_MASK = 0x80000000;
43constexpr uint32_t UPPER_16_BIT_MASK = 0xFFFF0000;
44
45// Fragment info added by NSCLDAQ and their offsets:
46
47constexpr uint32_t ADC_RESOLUTION_MASK = 0x00FF0000;
48constexpr uint32_t HW_REVISION_MASK = 0xFF000000;
49
50constexpr uint32_t ADC_RESOLUTION_SHIFT = 16;
51constexpr uint32_t HW_REVISION_SHIFT = 24;
52
53// Pixie event data masks and offsets:
54
55constexpr uint32_t CHANNEL_ID_MASK = 0x0000000F;
56constexpr uint32_t SLOT_ID_MASK = 0x000000F0;
57constexpr uint32_t CRATE_ID_MASK = 0x00000F00;
58constexpr uint32_t HEADER_LENGTH_MASK = 0x0001F000;
59constexpr uint32_t CHANNEL_LENGTH_MASK = 0x7FFE0000;
60constexpr uint32_t FINISH_CODE_MASK = BIT_31_MASK;
61
62constexpr uint32_t SLOT_ID_SHIFT = 4;
63constexpr uint32_t CRATE_ID_SHIFT = 8;
64constexpr uint32_t HEADER_LENGTH_SHIFT = 12;
65constexpr uint32_t CHANNEL_LENGTH_SHIFT = 17;
66constexpr uint32_t FINISH_CODE_SHIFT = 31;
67constexpr uint32_t OUT_OF_RANGE_SHIFT = 31;
68
69constexpr uint32_t CHANNEL_ID_MASK_REV_H =
70 0x0000003F;
71constexpr uint32_t SLOT_ID_MASK_REV_H =
72 0x000003C0;
73constexpr uint32_t CRATE_ID_MASK_REV_H =
74 0x00000C00;
75
76constexpr uint32_t SLOT_ID_SHIFT_REV_H = 6;
77constexpr uint32_t CRATE_ID_SHIFT_REV_H = 10;
78
79// Pixie data sizes:
80
81constexpr uint32_t SIZE_OF_RAW_EVENT = 4;
82constexpr uint32_t SIZE_OF_EXT_TS = 2;
83constexpr uint32_t SIZE_OF_ENE_SUMS = 4;
84constexpr uint32_t SIZE_OF_QDC_SUMS = 8;
85
86} // namespace ddasfmt
87
88#endif
constexpr uint32_t CRATE_ID_SHIFT_REV_H
Crate ID offset in Rev H.
Definition: DDASBitMasks.h:77
constexpr uint32_t SLOT_ID_MASK
Bits [7:4].
Definition: DDASBitMasks.h:56
constexpr uint32_t CHANNEL_ID_MASK
Bits [3:0].
Definition: DDASBitMasks.h:55
constexpr uint32_t HW_REVISION_SHIFT
HW revision offset.
Definition: DDASBitMasks.h:51
constexpr uint32_t HEADER_LENGTH_MASK
Bits [16:12].
Definition: DDASBitMasks.h:58
constexpr uint32_t CRATE_ID_SHIFT
Crate ID offset.
Definition: DDASBitMasks.h:63
constexpr uint32_t BIT_31_MASK
Bit 31.
Definition: DDASBitMasks.h:42
constexpr uint32_t SIZE_OF_QDC_SUMS
Words for QDC sums.
Definition: DDASBitMasks.h:84
constexpr uint32_t ADC_RESOLUTION_SHIFT
ADC resolution offset.
Definition: DDASBitMasks.h:50
constexpr uint32_t CHANNEL_LENGTH_MASK
Bits [30:17].
Definition: DDASBitMasks.h:59
constexpr uint32_t FINISH_CODE_MASK
Bit 31.
Definition: DDASBitMasks.h:60
constexpr uint32_t BIT_30_TO_29_MASK
Bits [30:29].
Definition: DDASBitMasks.h:39
constexpr uint32_t FINISH_CODE_SHIFT
Finish code offset.
Definition: DDASBitMasks.h:66
constexpr uint32_t UPPER_16_BIT_MASK
Bits [31:16].
Definition: DDASBitMasks.h:43
constexpr uint32_t ADC_RESOLUTION_MASK
Bits [23:16].
Definition: DDASBitMasks.h:47
constexpr uint32_t BIT_29_TO_16_MASK
Bits [29:16].
Definition: DDASBitMasks.h:37
constexpr uint32_t SIZE_OF_RAW_EVENT
32-bit words event header.
Definition: DDASBitMasks.h:81
constexpr uint32_t SIZE_OF_EXT_TS
Words for external TS.
Definition: DDASBitMasks.h:82
constexpr uint32_t SLOT_ID_MASK_REV_H
Bits [9:6]: Slot ID in Rev H.
Definition: DDASBitMasks.h:71
constexpr uint32_t OUT_OF_RANGE_SHIFT
ADC overflow offset.
Definition: DDASBitMasks.h:67
constexpr uint32_t BIT_28_TO_16_MASK
Bits [28:16].
Definition: DDASBitMasks.h:36
constexpr uint32_t CRATE_ID_MASK
Bits [11:8].
Definition: DDASBitMasks.h:57
constexpr uint32_t BIT_30_MASK
Bit 30.
Definition: DDASBitMasks.h:41
constexpr uint32_t SLOT_ID_SHIFT
Slot ID offset.
Definition: DDASBitMasks.h:62
constexpr uint32_t HW_REVISION_MASK
Bits [31:24].
Definition: DDASBitMasks.h:48
constexpr uint32_t CHANNEL_ID_MASK_REV_H
Bits [5:0]: Channel ID in Rev H.
Definition: DDASBitMasks.h:69
constexpr uint32_t CRATE_ID_MASK_REV_H
Bits [11:10]: Crate ID in Rev H.
Definition: DDASBitMasks.h:73
constexpr uint32_t HEADER_LENGTH_SHIFT
Header length offset.
Definition: DDASBitMasks.h:64
constexpr uint32_t SIZE_OF_ENE_SUMS
Words for energy sums.
Definition: DDASBitMasks.h:83
constexpr uint32_t CHANNEL_LENGTH_SHIFT
Chan. length offset.
Definition: DDASBitMasks.h:65
constexpr uint32_t LOWER_16_BIT_MASK
Bits [15:0].
Definition: DDASBitMasks.h:35
constexpr uint32_t BIT_31_TO_29_MASK
Bits [31:29].
Definition: DDASBitMasks.h:40
constexpr uint32_t BIT_30_TO_16_MASK
Bits [30:16].
Definition: DDASBitMasks.h:38
constexpr uint32_t SLOT_ID_SHIFT_REV_H
Slot ID offset in Rev H.
Definition: DDASBitMasks.h:76