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;
227 if (dPhiBin > (1 << bits) - 1)
228 dPhiBin = (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)
352 eta = (eta < 0.9) ? 0.9 :
eta;
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;
366 theta = (theta * 0.2874016 + 8.5) *
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}};
396 int bits = FRLUT[(sector - 1) % 2][station];
397 bool isFront = bits & (1 << chamber);
static const int dPhiNLBMap_7bit_512Max[128]
static const int ModeVariables_Scheme3[13][6]
static std::vector< std::string > checklist log
int getdPhiFromBin(int dPhiBin, int bits, int max=512) const
static const int dPhiNLBMap_5bit_256Max[32]
Geom::Theta< T > theta() const
int getNLBdPhiBin(int dPhi, int bits, int max=512) const
int getEtaInt(float eta, int bits=5) const
float getEtaFromEtaInt(int etaInt, int bits=5) const
static const int dPhiNLBMap_7bit_256Max[128]
int getCLCT(int clct) const
Tan< T >::type tan(const T &t)
Abs< T >::type abs(const T &t)
static const int dPhiNLBMap_6bit_256Max[64]
int getNLBdPhi(int dPhi, int bits, int max=512) const
float getEtaFromBin(int etaBin, int bits=5) const
static const int FRLUT[2][5]
const int(* getModeVariables() const)[6]
float getEtaFromThetaInt(int thetaInt, int bits=5) const
int getdTheta(int dTheta) const
int getdEta(int dEta) const
static unsigned int const shift
static const int dPhiNLBMap_8bit_512Max[256]
int getFRLUT(int sector, int station, int chamber) const
int etaBin(const l1t::HGCalMulticluster *cl)