CbmRoot
Loading...
Searching...
No Matches
CaDefs.h
Go to the documentation of this file.
1/* Copyright (C) 2022-2023 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Sergey Gorbunov, Sergei Zharko [committer] */
4
9
10#pragma once // include this header only once per compilation unit
11
12#include "CaSimd.h"
13#include "KfFramework.h"
14#include "KfTrackParam.h"
15
16#include <limits>
17
18namespace cbm::algo::ca
19{
20 using cbm::algo::kf::TrackParam;
22} // namespace cbm::algo::ca
23
27{
28
30 namespace size
31 {
34
38
40 constexpr unsigned int StationBits = 6u;
41 constexpr unsigned int TripletBits = 32u - StationBits;
42
43 constexpr int MaxNdetectors = 5;
44 constexpr int MaxNstations = 1u << StationBits;
45 constexpr int MaxNtriplets = 1u << TripletBits;
46
47 constexpr uint8_t DetBits = 4u;
48
50 constexpr int MaxNiterations = 10;
51
53 constexpr int MaxTripletGap = 2;
54
55
58 constexpr int MaxNtrackGroups = 4;
59
60 } // namespace size
61
62
64 namespace control
65 {
73 constexpr int InputDataQaLevel = 0;
74
75 } // namespace control
76
78 namespace phys
79 {
81 constexpr double MuonMassD = 0.105658375523;
82 constexpr double PionMassD = 0.1395703918;
83 constexpr double KaonMassD = 0.493677f;
84 constexpr double ElectronMassD = 0.0005109989500015;
85 constexpr double ProtonMassD = 0.93827208816;
86 constexpr double SpeedOfLightD = 29.9792458;
87 constexpr double SpeedOfLightInvD = 1. / SpeedOfLightD;
88
90 constexpr fscal MuonMass = MuonMassD;
91 constexpr fscal PionMass = PionMassD;
92 constexpr fscal KaonMass = KaonMassD;
97
98 } // namespace phys
99
101 namespace math
102 {
103 constexpr double Pi = 3.14159265358979323846;
104 } // namespace math
105
107 namespace misc
108 {
109 constexpr int AssertionLevel = 0;
110 constexpr int Alignment = 16;
111 constexpr fscal NegligibleFieldkG = 1.e-4;
112
113 } // namespace misc
114
116 template<typename T1, typename T2 = T1>
117 constexpr T2 Undef;
118
119 template<>
120 inline constexpr int Undef<int> = std::numeric_limits<int>::min();
121
122 template<>
123 inline constexpr unsigned Undef<unsigned> = std::numeric_limits<unsigned>::max();
124
125 template<>
126 inline constexpr float Undef<float> = std::numeric_limits<float>::signaling_NaN();
127
128 template<>
129 inline constexpr double Undef<double> = std::numeric_limits<double>::signaling_NaN();
130
131 template<>
132 inline constexpr fscal Undef<fvec> = std::numeric_limits<fscal>::signaling_NaN();
133
134
136 namespace clrs
137 {
138 // NOTE: To be used first, because different users may have different console bg and fg colors
139 constexpr char CL[] = "\e[0m";
140 constexpr char CLb[] = "\e[1m";
141 constexpr char CLi[] = "\e[3m";
142 constexpr char CLu[] = "\e[4m";
143 constexpr char CLr[] = "\e[7m";
144 constexpr char CLbi[] = "\e[1;3m";
145 constexpr char CLbu[] = "\e[1;4m";
146 constexpr char CLbr[] = "\e[1;7m";
147
148 // regular
149 constexpr char BK[] = "\e[30m";
150 constexpr char RD[] = "\e[31m";
151 constexpr char GN[] = "\e[32m";
152 constexpr char YL[] = "\e[33m";
153 constexpr char BL[] = "\e[34m";
154 constexpr char MG[] = "\e[35m";
155 constexpr char CY[] = "\e[36m";
156 constexpr char GY[] = "\e[37m";
157 constexpr char WT[] = "\e[38m";
158
159 // bold
160 constexpr char BKb[] = "\e[1;30m";
161 constexpr char RDb[] = "\e[1;31m";
162 constexpr char GNb[] = "\e[1;32m";
163 constexpr char YLb[] = "\e[1;33m";
164 constexpr char BLb[] = "\e[1;34m";
165 constexpr char MGb[] = "\e[1;35m";
166 constexpr char CYb[] = "\e[1;36m";
167 constexpr char GYb[] = "\e[1;37m";
168 constexpr char WTb[] = "\e[1;38m";
169
170 // italic
171 constexpr char BKi[] = "\e[3;30m";
172 constexpr char RDi[] = "\e[3;31m";
173 constexpr char GNi[] = "\e[3;32m";
174 constexpr char YLi[] = "\e[3;33m";
175 constexpr char BLi[] = "\e[3;34m";
176 constexpr char MGi[] = "\e[3;35m";
177 constexpr char CYi[] = "\e[3;36m";
178 constexpr char GYi[] = "\e[3;37m";
179 constexpr char WTi[] = "\e[3;38m";
180
181 // underline
182 constexpr char BKu[] = "\e[4;30m";
183 constexpr char RDu[] = "\e[4;31m";
184 constexpr char GNu[] = "\e[4;32m";
185 constexpr char YLu[] = "\e[4;33m";
186 constexpr char BLu[] = "\e[4;34m";
187 constexpr char MGu[] = "\e[4;35m";
188 constexpr char CYu[] = "\e[4;36m";
189 constexpr char GYu[] = "\e[4;37m";
190 constexpr char WTu[] = "\e[4;38m";
191
192 // reverse
193 constexpr char BKr[] = "\e[7;30m";
194 constexpr char RDr[] = "\e[7;31m";
195 constexpr char GNr[] = "\e[7;32m";
196 constexpr char YLr[] = "\e[7;33m";
197 constexpr char BLr[] = "\e[7;34m";
198 constexpr char MGr[] = "\e[7;35m";
199 constexpr char CYr[] = "\e[7;36m";
200 constexpr char GYr[] = "\e[7;37m";
201 constexpr char WTr[] = "\e[7;38m";
202
203 // bold-underline
204 constexpr char BKbu[] = "\e[1;4;30m";
205 constexpr char RDbu[] = "\e[1;4;31m";
206 constexpr char GNbu[] = "\e[1;4;32m";
207 constexpr char YLbu[] = "\e[1;4;33m";
208 constexpr char BLbu[] = "\e[1;4;34m";
209 constexpr char MGbu[] = "\e[1;4;35m";
210 constexpr char CYbu[] = "\e[1;4;36m";
211 constexpr char GYbu[] = "\e[1;4;37m";
212 constexpr char WTbu[] = "\e[1;4;38m";
213
214 // bold-italic
215 constexpr char BKbi[] = "\e[1;3;30m";
216 constexpr char RDbi[] = "\e[1;3;31m";
217 constexpr char GNbi[] = "\e[1;3;32m";
218 constexpr char YLbi[] = "\e[1;3;33m";
219 constexpr char BLbi[] = "\e[1;3;34m";
220 constexpr char MGbi[] = "\e[1;3;35m";
221 constexpr char CYbi[] = "\e[1;3;36m";
222 constexpr char GYbi[] = "\e[1;3;37m";
223 constexpr char WTbi[] = "\e[1;3;38m";
224
225 // bold-reverse
226 constexpr char BKbr[] = "\e[1;7;30m";
227 constexpr char RDbr[] = "\e[1;7;31m";
228 constexpr char GNbr[] = "\e[1;7;32m";
229 constexpr char YLbr[] = "\e[1;7;33m";
230 constexpr char BLbr[] = "\e[1;7;34m";
231 constexpr char MGbr[] = "\e[1;7;35m";
232 constexpr char CYbr[] = "\e[1;7;36m";
233 constexpr char GYbr[] = "\e[1;7;37m";
234 constexpr char WTbr[] = "\e[1;7;38m";
235 } // namespace clrs
236} // namespace cbm::algo::ca::constants
The Kalman-filter framework main class (header)
Colors of terminal log messages.
Definition CaDefs.h:137
constexpr char CYbr[]
bold-reverse cyan
Definition CaDefs.h:232
constexpr char CYbi[]
bold-italic cyan
Definition CaDefs.h:221
constexpr char WTi[]
italic white
Definition CaDefs.h:179
constexpr char GYbr[]
bold-reverse grey
Definition CaDefs.h:233
constexpr char GNbr[]
bold-reverse green
Definition CaDefs.h:228
constexpr char WTbu[]
bold-underline white
Definition CaDefs.h:212
constexpr char CLr[]
clear reverse
Definition CaDefs.h:143
constexpr char MGu[]
underline magenta
Definition CaDefs.h:187
constexpr char GNr[]
reverse green
Definition CaDefs.h:195
constexpr char BKbr[]
bold-reverse black
Definition CaDefs.h:226
constexpr char RDb[]
bold red
Definition CaDefs.h:161
constexpr char GYu[]
underline grey
Definition CaDefs.h:189
constexpr char GNu[]
underline green
Definition CaDefs.h:184
constexpr char RD[]
normal red
Definition CaDefs.h:150
constexpr char GYr[]
reverse grey
Definition CaDefs.h:200
constexpr char CY[]
normal cyan
Definition CaDefs.h:155
constexpr char GNi[]
italic green
Definition CaDefs.h:173
constexpr char CLi[]
clear italic
Definition CaDefs.h:141
constexpr char MGr[]
reverse magenta
Definition CaDefs.h:198
constexpr char BKr[]
reverse black
Definition CaDefs.h:193
constexpr char BK[]
normal black
Definition CaDefs.h:149
constexpr char GYi[]
italic grey
Definition CaDefs.h:178
constexpr char GY[]
normal grey
Definition CaDefs.h:156
constexpr char GNbu[]
bold-underline green
Definition CaDefs.h:206
constexpr char BKu[]
underline black
Definition CaDefs.h:182
constexpr char MGbr[]
bold-reverse magenta
Definition CaDefs.h:231
constexpr char CYr[]
reverse cyan
Definition CaDefs.h:199
constexpr char YLbu[]
bold-underline yellow
Definition CaDefs.h:207
constexpr char WTbr[]
bold-reverse white
Definition CaDefs.h:234
constexpr char BL[]
normal blue
Definition CaDefs.h:153
constexpr char RDu[]
underline red
Definition CaDefs.h:183
constexpr char WTbi[]
bold-italic white
Definition CaDefs.h:223
constexpr char CLbr[]
clear bold-reverse
Definition CaDefs.h:146
constexpr char GYb[]
bold grey
Definition CaDefs.h:167
constexpr char WTr[]
reverse white
Definition CaDefs.h:201
constexpr char YL[]
normal yellow
Definition CaDefs.h:152
constexpr char MGi[]
italic magenta
Definition CaDefs.h:176
constexpr char CYi[]
italic cyan
Definition CaDefs.h:177
constexpr char YLu[]
underline yellow
Definition CaDefs.h:185
constexpr char CLbu[]
clear bold-underline
Definition CaDefs.h:145
constexpr char YLi[]
italic yellow
Definition CaDefs.h:174
constexpr char GNb[]
bold green
Definition CaDefs.h:162
constexpr char CLu[]
clear underline
Definition CaDefs.h:142
constexpr char BLbi[]
bold-italic blue
Definition CaDefs.h:219
constexpr char RDbi[]
bold-italic red
Definition CaDefs.h:216
constexpr char BLbu[]
bold-underline blue
Definition CaDefs.h:208
constexpr char WTu[]
underline white
Definition CaDefs.h:190
constexpr char MGbu[]
bold-underline magenta
Definition CaDefs.h:209
constexpr char CYb[]
bold cyan
Definition CaDefs.h:166
constexpr char BKbu[]
bold-underline black
Definition CaDefs.h:204
constexpr char RDi[]
italic red
Definition CaDefs.h:172
constexpr char MGb[]
bold magenta
Definition CaDefs.h:165
constexpr char GNbi[]
bold-italic green
Definition CaDefs.h:217
constexpr char GYbu[]
bold-underline grey
Definition CaDefs.h:211
constexpr char BLbr[]
bold-reverse blue
Definition CaDefs.h:230
constexpr char WTb[]
bold white
Definition CaDefs.h:168
constexpr char BKb[]
bold black
Definition CaDefs.h:160
constexpr char MGbi[]
bold-italic magenta
Definition CaDefs.h:220
constexpr char BKi[]
italic black
Definition CaDefs.h:171
constexpr char RDbu[]
bold-underline red
Definition CaDefs.h:205
constexpr char BKbi[]
bold-italic black
Definition CaDefs.h:215
constexpr char CYbu[]
bold-underline cyan
Definition CaDefs.h:210
constexpr char GYbi[]
bold-italic grey
Definition CaDefs.h:222
constexpr char MG[]
normal magenta
Definition CaDefs.h:154
constexpr char BLb[]
bold blue
Definition CaDefs.h:164
constexpr char CYu[]
underline cyan
Definition CaDefs.h:188
constexpr char BLu[]
underline blue
Definition CaDefs.h:186
constexpr char GN[]
normal green
Definition CaDefs.h:151
constexpr char RDr[]
reverse red
Definition CaDefs.h:194
constexpr char YLbr[]
bold-reverse yellow
Definition CaDefs.h:229
constexpr char BLr[]
reverse blue
Definition CaDefs.h:197
constexpr char CLbi[]
clear bold-italic
Definition CaDefs.h:144
constexpr char YLb[]
bold yellow
Definition CaDefs.h:163
constexpr char WT[]
normal white
Definition CaDefs.h:157
constexpr char YLr[]
reverse yellow
Definition CaDefs.h:196
constexpr char YLbi[]
bold-italic yellow
Definition CaDefs.h:218
constexpr char RDbr[]
bold-reverse red
Definition CaDefs.h:227
constexpr char CLb[]
clear bold
Definition CaDefs.h:140
constexpr char CL[]
clear
Definition CaDefs.h:139
constexpr char BLi[]
italic blue
Definition CaDefs.h:175
constexpr int InputDataQaLevel
Flag: input data QA level.
Definition CaDefs.h:73
constexpr double Pi
Value of PI, used in ROOT TMath.
Definition CaDefs.h:103
Miscellaneous constants.
Definition CaDefs.h:108
constexpr int Alignment
Default alignment of data (bytes)
Definition CaDefs.h:110
constexpr int AssertionLevel
Assertion level.
Definition CaDefs.h:109
constexpr fscal NegligibleFieldkG
Negligible field [kG].
Definition CaDefs.h:111
Physics constants.
Definition CaDefs.h:79
constexpr double PionMassD
Pion mass [GeV/c2].
Definition CaDefs.h:82
constexpr fscal ElectronMass
Electron mass [GeV/c2].
Definition CaDefs.h:93
constexpr fscal KaonMass
Kaon mass [GeV/c2] (PDG 22.08.2023)
Definition CaDefs.h:92
constexpr double MuonMassD
Particle masses etc used for the track fit, double precision.
Definition CaDefs.h:81
constexpr double ProtonMassD
Proton mass [GeV/c2] (PDG 11.08.2022)
Definition CaDefs.h:85
constexpr fscal PionMass
Pion mass [GeV/c2].
Definition CaDefs.h:91
constexpr double SpeedOfLightD
Speed of light [cm/ns].
Definition CaDefs.h:86
constexpr fscal SpeedOfLightInv
Inverse speed of light [ns/cm].
Definition CaDefs.h:96
constexpr fscal MuonMass
Particle masses etc used for the track fit, fscal precision.
Definition CaDefs.h:90
constexpr fscal SpeedOfLight
Speed of light [cm/ns].
Definition CaDefs.h:95
constexpr double KaonMassD
Kaon mass [GeV/c2] (PDG 22.08.2023)
Definition CaDefs.h:83
constexpr fscal ProtonMass
Proton mass [GeV/c2] (PDG 11.08.2022)
Definition CaDefs.h:94
constexpr double SpeedOfLightInvD
Inverse speed of light [ns/cm].
Definition CaDefs.h:87
constexpr double ElectronMassD
Electron mass [GeV/c2].
Definition CaDefs.h:84
constexpr int MaxNstations
Max number of stations, 2^6 = 64.
Definition CaDefs.h:44
constexpr int MaxNiterations
Max number of iterations in the track finder.
Definition CaDefs.h:50
constexpr unsigned int StationBits
Amount of bits to code a station or triplet. This values determine the maximum number of stations and...
Definition CaDefs.h:40
constexpr uint8_t DetBits
Maximum 16 detector systems.
Definition CaDefs.h:47
constexpr int MaxFieldApproxPolynomialOrder
Order of polynomial to approximate field in the vicinity of station plane.
Definition CaDefs.h:33
constexpr int MaxNtrackGroups
Definition CaDefs.h:58
constexpr unsigned int TripletBits
Amount of bits to code one triplet.
Definition CaDefs.h:41
constexpr int MaxNtriplets
Max number of triplets, 2^26 = 67,108,864.
Definition CaDefs.h:45
constexpr int MaxNFieldApproxCoefficients
Amount of coefficients in field approximations.
Definition CaDefs.h:36
constexpr int MaxNdetectors
Max number of tracking detectors.
Definition CaDefs.h:43
constexpr int MaxTripletGap
Max gaps in the triplet.
Definition CaDefs.h:53
constexpr T2 Undef
Undefined values.
Definition CaDefs.h:117
TODO: SZh 8.11.2022: add selection of parameterisation.
Definition CaBranch.h:14
kf::fscal fscal
Definition CaSimd.h:14
TrackParam< fvec > TrackParamV