46 {0, 6, 12, 13, 20, -999},
47 {-999, -999, -999, -999, -999, -999},
48 {1, 7, 12, 14, 20, -999},
49 {3, 9, 13, 14, 21, -999},
50 {0, 3, 7, 12, 20, -999},
51 {-999, -999, -999, -999, -999, -999},
52 {2, 8, 12, 15, 20, -999},
53 {4, 10, 13, 15, 21, -999},
54 {0, 4, 8, 12, 20, -999},
55 {5, 11, 14, 15, 22, -999},
56 {1, 5, 8, 16, 20, -999},
57 {3, 5, 10, 13, -999, -999},
58 {0, 3, 5, 20, -999, -999}
63 static const int dPhiNLBMap_5bit_256Max[32] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
64 16, 17, 19, 20, 21, 23, 25, 28, 31, 34, 39, 46, 55, 68, 91, 136};
66 static const int dPhiNLBMap_6bit_256Max[64] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
67 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
68 32, 33, 34, 36, 37, 38, 39, 40, 42, 43, 45, 47, 49, 51, 53, 56,
69 58, 61, 65, 68, 73, 78, 83, 89, 97, 106, 116, 129, 145, 166, 193, 232};
72 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
73 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
74 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
75 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 77, 78, 79, 80, 81, 82, 83, 84, 86, 87, 88, 90,
76 91, 93, 94, 96, 97, 99, 101, 103, 105, 107, 109, 111, 113, 115, 118, 120, 123, 125, 128, 131, 134, 138,
77 141, 145, 149, 153, 157, 161, 166, 171, 176, 182, 188, 194, 201, 209, 217, 225, 235, 245};
82 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
83 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
84 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
85 66, 67, 68, 69, 71, 72, 73, 74, 75, 76, 77, 79, 80, 81, 83, 84, 86, 87, 89, 91, 92, 94,
86 96, 98, 100, 102, 105, 107, 110, 112, 115, 118, 121, 124, 127, 131, 135, 138, 143, 147, 152, 157, 162, 168,
87 174, 181, 188, 196, 204, 214, 224, 235, 247, 261, 276, 294, 313, 336, 361, 391, 427, 470};
90 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
91 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
92 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
93 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
94 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
95 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
96 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 152, 153, 154,
97 155, 156, 157, 158, 159, 160, 161, 162, 164, 165, 166, 167, 168, 170, 171, 172, 174, 175, 176, 178, 179, 180,
98 182, 183, 185, 186, 188, 190, 191, 193, 194, 196, 198, 200, 201, 203, 205, 207, 209, 211, 213, 215, 217, 219,
99 221, 223, 225, 228, 230, 232, 235, 237, 240, 242, 245, 248, 250, 253, 256, 259, 262, 265, 268, 272, 275, 278,
100 282, 285, 289, 293, 297, 300, 305, 309, 313, 317, 322, 327, 331, 336, 341, 347, 352, 358, 363, 369, 375, 382,
101 388, 395, 402, 410, 417, 425, 433, 442, 450, 460, 469, 479, 490, 500};
115 for (
int edge = 0; edge < (1 << bits) - 1; edge++) {
124 for (
int edge = 0; edge < (1 << bits) - 1; edge++) {
133 for (
int edge = 0; edge < (1 << bits) - 1; edge++) {
142 else if (
max == 512) {
145 for (
int edge = 0; edge < (1 << bits) - 1; edge++) {
154 for (
int edge = 0; edge < (1 << bits) - 1; edge++) {
165 return (sign_ * dPhi_);
169 int dPhiBin_ = (1 << bits) - 1;
177 for (
int edge = 0; edge < (1 << bits) - 1; edge++) {
185 for (
int edge = 0; edge < (1 << bits) - 1; edge++) {
193 for (
int edge = 0; edge < (1 << bits) - 1; edge++) {
202 else if (
max == 512) {
204 for (
int edge = 0; edge < (1 << bits) - 1; edge++) {
212 for (
int edge = 0; edge < (1 << bits) - 1; edge++) {
225 int dPhi_ = (1 << bits) - 1;
239 else if (
max == 512) {
303 return (sign_ * clct_);
311 else if (dTheta <= -2)
313 else if (dTheta <= -1)
315 else if (dTheta <= 0)
317 else if (dTheta <= 1)
319 else if (dTheta <= 2)
321 else if (dTheta <= 3)
353 bits = (bits > 5) ? 5 : bits;
355 int etaInt = ((
eta - 0.9) * 32) / (1.6) - 0.5;
356 int shift = 5 - bits;
358 etaInt = (etaInt > 31) ? 31 : etaInt;
363 thetaInt = (thetaInt > 127) ? 127 : thetaInt;
364 thetaInt = (thetaInt < 0) ? 0 : thetaInt;
365 float theta = thetaInt;
367 (3.14159265359 / 180);
374 etaInt = (etaInt > 31) ? 31 : etaInt;
375 etaInt = (etaInt < 0) ? 0 : etaInt;
376 bits = (bits > 5) ? 5 : bits;
377 int shift = 5 - bits;
380 float eta = ((0.5 + etaInt) * 1.6) / 32 + 0.9;
392 static const int FRLUT[2][5] = {{0b0000000100100, 0b0000001011010, 0b0101010101010, 0b0010101010100, 0b0010101010100},
393 {0b0000000100100, 0b0000001011010, 0b0111010100100, 0b0000101011010, 0b0000101011010}};
397 bool isFront = bits & (1 <<
chamber);