CbmRoot
Loading...
Searching...
No Matches
Definitions.h
Go to the documentation of this file.
1/* Copyright (C) 2023 FIAS Frankfurt Institute for Advanced Studies, Frankfurt / Main
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Felix Weiglhofer [committer] */
4#ifndef CBM_BASE_TYPES_H
5#define CBM_BASE_TYPES_H
6
7#include "CbmEnumDict.h"
8#include "MicrosliceDescriptor.hpp" // For fles::Subsystem
9
10#include <cstdint>
11
12namespace cbm::algo
13{
14
15 // typealias for Rust-like fixed size integer types
16 using i8 = int8_t;
17 using u8 = uint8_t;
18 using i16 = int16_t;
19 using u16 = uint16_t;
20 using i32 = int32_t;
21 using u32 = uint32_t;
22 using i64 = int64_t;
23 using u64 = uint64_t;
24 using f32 = float;
25 using f64 = double;
26
27#ifdef CBM_ALGO_REAL64
28 using real = f64;
29#else
30 using real = f32;
31#endif
32
40
41 enum class RecoData
42 {
43 DigiTimeslice, //< Raw output from unpackers
44 DigiEvent, //< Digis after event building
48 };
49
76
77} // namespace cbm::algo
78
79CBM_ENUM_DICT(fles::Subsystem,
80 // CBM detectors
81 {"BMON", fles::Subsystem::BMON},
82 {"MVD", fles::Subsystem::MVD},
83 {"STS", fles::Subsystem::STS},
84 {"RICH", fles::Subsystem::RICH},
85 {"TRD", fles::Subsystem::TRD},
86 {"TRD2D", fles::Subsystem::TRD2D},
87 {"MUCH", fles::Subsystem::MUCH},
88 {"TOF", fles::Subsystem::TOF},
89 {"FSD", fles::Subsystem::FSD},
90
91 // Other detectors (experimental or obsolete)
92 {"ECAL", fles::Subsystem::ECAL},
93 {"PSD", fles::Subsystem::PSD},
94 {"TRB3", fles::Subsystem::TRB3},
95 {"Hodoscope", fles::Subsystem::Hodoscope},
96 {"Cherenkov", fles::Subsystem::Cherenkov},
97 {"LeadGlass", fles::Subsystem::LeadGlass},
98
99 // FLES (pattern generators)
100 {"FLES", fles::Subsystem::FLES},
101);
102
104 {"Unpack", cbm::algo::Step::Unpack},
105 {"DigiTrigger", cbm::algo::Step::DigiTrigger},
106 {"LocalReco", cbm::algo::Step::LocalReco},
107 {"Tracking", cbm::algo::Step::Tracking}
108);
109
111 {"DigiTimeslice", cbm::algo::RecoData::DigiTimeslice},
112 {"DigiEvent", cbm::algo::RecoData::DigiEvent},
113 {"Cluster", cbm::algo::RecoData::Cluster},
116);
117
119 {"BeamBmon", cbm::algo::QaStep::BeamBmon},
120 {"UnpackBmon", cbm::algo::QaStep::UnpackBmon},
121 {"UnpackSts", cbm::algo::QaStep::UnpackSts},
122 {"UnpackMvd", cbm::algo::QaStep::UnpackMvd},
123 {"UnpackRich", cbm::algo::QaStep::UnpackRich},
124 {"UnpackTrd1d", cbm::algo::QaStep::UnpackTrd1d},
125 {"UnpackTrd2d", cbm::algo::QaStep::UnpackTrd2d},
126 {"UnpackMuch", cbm::algo::QaStep::UnpackMuch},
127 {"UnpackTof", cbm::algo::QaStep::UnpackTof},
128 {"UnpackFsd", cbm::algo::QaStep::UnpackFsd},
129 {"EventBuilding", cbm::algo::QaStep::EventBuilding},
130 {"RecoBmon", cbm::algo::QaStep::RecoBmon},
131 {"RecoSts", cbm::algo::QaStep::RecoSts},
132 {"RecoMvd", cbm::algo::QaStep::RecoMvd},
133 {"RecoRich", cbm::algo::QaStep::RecoRich},
134 {"RecoTrd1d", cbm::algo::QaStep::RecoTrd1d},
135 {"RecoTrd2d", cbm::algo::QaStep::RecoTrd2d},
136 {"RecoMuch", cbm::algo::QaStep::RecoMuch},
137 {"RecoTof", cbm::algo::QaStep::RecoTof},
138 {"RecoFsd", cbm::algo::QaStep::RecoFsd},
139 {"Tracking", cbm::algo::QaStep::Tracking},
140 {"V0Finder", cbm::algo::QaStep::V0Finder},
141 {"V0Trigger", cbm::algo::QaStep::V0Trigger}
142);
143
144#endif
#define CBM_ENUM_DICT(type,...)
int64_t i64
Definition Definitions.h:22
float f32
Definition Definitions.h:24
uint64_t u64
Definition Definitions.h:23
uint16_t u16
Definition Definitions.h:19
uint8_t u8
Definition Definitions.h:17
int16_t i16
Definition Definitions.h:18
int8_t i8
Definition Definitions.h:16
int32_t i32
Definition Definitions.h:20
uint32_t u32
Definition Definitions.h:21
double f64
Definition Definitions.h:25
Event data with event number and trigger time.
Definition DigiData.h:82