![]() |
|
|||
File indexing completed on 2025-03-05 03:16:36
0001 #ifndef L1Trigger_L1TGEM_ME0StubAlgoMask_H 0002 #define L1Trigger_L1TGEM_ME0StubAlgoMask_H 0003 0004 #include "L1Trigger/L1TGEM/interface/ME0StubAlgoSubfunction.h" 0005 0006 namespace l1t { 0007 namespace me0 { 0008 std::vector<int> shiftCenter(const HiLo& layer, int maxSpan); 0009 uint64_t setHighBits(const std::vector<int>& loHiPair); 0010 Mask getLayerMask(const PatternDefinition& layerPattern, int maxSpan); 0011 0012 /* 0013 createPatternLayer(low, high) returns a vector of HiLo objects with the given low and high values. 0014 low and high are relative distances from the center of the pattern (strip 18 for maxSpan=37). 0015 0016 For example, createPatternLayer(0.2, 0.9) returns a vector of HiLo objects with the following values: 0017 { [ hi: 0, lo: -3 ], [ hi: 0, lo: -2 ], [ hi: 0, lo: -1 ], [ hi: 1, lo: 0 ], [ hi: 2, lo: 0 ], [ hi: 3, lo: 0 ]} 0018 0019 PatternDefinition(id, layers) saves the pattern ID and the vector of HiLo objects for each layer. 0020 0021 getLayerMask(PatternDefinition pattern, int maxSpan) returns a Mask object with the given pattern and maxSpan values. 0022 example: 0023 0024 getLayerMask(patternLeft, 37) returns a Mask object with the following values: 0025 Pattern ID: 16 0026 {0b0000000000000000001111000000000000000, // ly5 0027 0b0000000000000000001110000000000000000, // ly4 0028 0b0000000000000000001100000000000000000, // ly3 0029 0b0000000000000000011000000000000000000, // ly2 0030 0b0000000000000000111000000000000000000, // ly1 0031 0b0000000000000001111000000000000000000} // ly0 0032 */ 0033 0034 const PatternDefinition kPatternStraight = PatternDefinition(17, createPatternLayer(-0.4, 0.4)); 0035 const PatternDefinition kPatternLeft = PatternDefinition(16, createPatternLayer(0.2, 0.9)); 0036 const PatternDefinition kPatternRight = mirrorPatternDefinition(kPatternLeft, kPatternLeft.id - 1); 0037 const PatternDefinition kPatternLeft2 = PatternDefinition(14, createPatternLayer(0.9, 1.7)); 0038 const PatternDefinition kPatternRight2 = mirrorPatternDefinition(kPatternLeft2, kPatternLeft2.id - 1); 0039 const PatternDefinition kPatternLeft3 = PatternDefinition(12, createPatternLayer(1.4, 2.3)); 0040 const PatternDefinition kPatternRight3 = mirrorPatternDefinition(kPatternLeft3, kPatternLeft3.id - 1); 0041 const PatternDefinition kPatternLeft4 = PatternDefinition(10, createPatternLayer(2.0, 3.0)); 0042 const PatternDefinition kPatternRight4 = mirrorPatternDefinition(kPatternLeft4, kPatternLeft4.id - 1); 0043 const PatternDefinition kPatternLeft5 = PatternDefinition(8, createPatternLayer(2.7, 3.8)); 0044 const PatternDefinition kPatternRight5 = mirrorPatternDefinition(kPatternLeft5, kPatternLeft5.id - 1); 0045 const PatternDefinition kPatternLeft6 = PatternDefinition(6, createPatternLayer(3.5, 4.7)); 0046 const PatternDefinition kPatternRight6 = mirrorPatternDefinition(kPatternLeft6, kPatternLeft6.id - 1); 0047 const PatternDefinition kPatternLeft7 = PatternDefinition(4, createPatternLayer(4.3, 5.5)); 0048 const PatternDefinition kPatternRight7 = mirrorPatternDefinition(kPatternLeft7, kPatternLeft7.id - 1); 0049 const PatternDefinition kPatternLeft8 = PatternDefinition(2, createPatternLayer(5.4, 7.0)); 0050 const PatternDefinition kPatternRight8 = mirrorPatternDefinition(kPatternLeft8, kPatternLeft8.id - 1); 0051 0052 const std::vector<Mask> kLayerMask{getLayerMask(kPatternStraight, 37), 0053 getLayerMask(kPatternLeft, 37), 0054 getLayerMask(kPatternRight, 37), 0055 getLayerMask(kPatternLeft2, 37), 0056 getLayerMask(kPatternRight2, 37), 0057 getLayerMask(kPatternLeft3, 37), 0058 getLayerMask(kPatternRight3, 37), 0059 getLayerMask(kPatternLeft4, 37), 0060 getLayerMask(kPatternRight4, 37), 0061 getLayerMask(kPatternLeft5, 37), 0062 getLayerMask(kPatternRight5, 37), 0063 getLayerMask(kPatternLeft6, 37), 0064 getLayerMask(kPatternRight6, 37), 0065 getLayerMask(kPatternLeft7, 37), 0066 getLayerMask(kPatternRight7, 37), 0067 getLayerMask(kPatternLeft8, 37), 0068 getLayerMask(kPatternRight8, 37)}; 0069 } // namespace me0 0070 } // namespace l1t 0071 #endif 0072 0073 /* 0074 patlist: 0075 Pattern ID: 17 0076 ly5 -----------------XXX----------------- 0077 0078 ly4 -----------------XXX----------------- 0079 0080 ly3 -----------------XXX----------------- 0081 0082 ly2 -----------------XXX----------------- 0083 0084 ly1 -----------------XXX----------------- 0085 0086 ly0 -----------------XXX----------------- 0087 0088 0089 0090 Pattern ID: 16 0091 ly5 ------------------XXXX--------------- 0092 0093 ly4 ------------------XXX---------------- 0094 0095 ly3 ------------------XX----------------- 0096 0097 ly2 -----------------XX------------------ 0098 0099 ly1 ----------------XXX------------------ 0100 0101 ly0 ---------------XXXX------------------ 0102 0103 0104 0105 Pattern ID: 15 0106 ly5 ---------------XXXX------------------ 0107 0108 ly4 ----------------XXX------------------ 0109 0110 ly3 -----------------XX------------------ 0111 0112 ly2 ------------------XX----------------- 0113 0114 ly1 ------------------XXX---------------- 0115 0116 ly0 ------------------XXXX--------------- 0117 0118 0119 0120 Pattern ID: 14 0121 ly5 --------------------XXXX------------- 0122 0123 ly4 -------------------XXX--------------- 0124 0125 ly3 ------------------XX----------------- 0126 0127 ly2 -----------------XX------------------ 0128 0129 ly1 ---------------XXX------------------- 0130 0131 ly0 -------------XXXX-------------------- 0132 0133 0134 0135 Pattern ID: 13 0136 ly5 -------------XXXX-------------------- 0137 0138 ly4 ---------------XXX------------------- 0139 0140 ly3 -----------------XX------------------ 0141 0142 ly2 ------------------XX----------------- 0143 0144 ly1 -------------------XXX--------------- 0145 0146 ly0 --------------------XXXX------------- 0147 0148 0149 0150 Pattern ID: 12 0151 ly5 ---------------------XXXX------------ 0152 0153 ly4 --------------------XXX-------------- 0154 0155 ly3 ------------------XXX---------------- 0156 0157 ly2 ----------------XXX------------------ 0158 0159 ly1 --------------XXX-------------------- 0160 0161 ly0 ------------XXXX--------------------- 0162 0163 0164 0165 Pattern ID: 11 0166 ly5 ------------XXXX--------------------- 0167 0168 ly4 --------------XXX-------------------- 0169 0170 ly3 ----------------XXX------------------ 0171 0172 ly2 ------------------XXX---------------- 0173 0174 ly1 --------------------XXX-------------- 0175 0176 ly0 ---------------------XXXX------------ 0177 0178 0179 0180 Pattern ID: 10 0181 ly5 -----------------------XXXX---------- 0182 0183 ly4 ---------------------XXX------------- 0184 0185 ly3 -------------------XX---------------- 0186 0187 ly2 ----------------XX------------------- 0188 0189 ly1 -------------XXX--------------------- 0190 0191 ly0 ----------XXXX----------------------- 0192 0193 0194 0195 Pattern ID: 9 0196 ly5 ----------XXXX----------------------- 0197 0198 ly4 -------------XXX--------------------- 0199 0200 ly3 ----------------XX------------------- 0201 0202 ly2 -------------------XX---------------- 0203 0204 ly1 ---------------------XXX------------- 0205 0206 ly0 -----------------------XXXX---------- 0207 0208 0209 0210 Pattern ID: 8 0211 ly5 ------------------------XXXXX-------- 0212 0213 ly4 ----------------------XXX------------ 0214 0215 ly3 -------------------XX---------------- 0216 0217 ly2 ----------------XX------------------- 0218 0219 ly1 ------------XXX---------------------- 0220 0221 ly0 --------XXXXX------------------------ 0222 0223 0224 0225 Pattern ID: 7 0226 ly5 --------XXXXX------------------------ 0227 0228 ly4 ------------XXX---------------------- 0229 0230 ly3 ----------------XX------------------- 0231 0232 ly2 -------------------XX---------------- 0233 0234 ly1 ----------------------XXX------------ 0235 0236 ly0 ------------------------XXXXX-------- 0237 0238 0239 0240 Pattern ID: 6 0241 ly5 --------------------------XXXXX------ 0242 0243 ly4 -----------------------XXXX---------- 0244 0245 ly3 -------------------XXX--------------- 0246 0247 ly2 ---------------XXX------------------- 0248 0249 ly1 ----------XXXX----------------------- 0250 0251 ly0 ------XXXXX-------------------------- 0252 0253 0254 0255 Pattern ID: 5 0256 ly5 ------XXXXX-------------------------- 0257 0258 ly4 ----------XXXX----------------------- 0259 0260 ly3 ---------------XXX------------------- 0261 0262 ly2 -------------------XXX--------------- 0263 0264 ly1 -----------------------XXXX---------- 0265 0266 ly0 --------------------------XXXXX------ 0267 0268 0269 0270 Pattern ID: 4 0271 ly5 ----------------------------XXXXX---- 0272 0273 ly4 ------------------------XXXX--------- 0274 0275 ly3 --------------------XX--------------- 0276 0277 ly2 ---------------XX-------------------- 0278 0279 ly1 ---------XXXX------------------------ 0280 0281 ly0 ----XXXXX---------------------------- 0282 0283 0284 0285 Pattern ID: 3 0286 ly5 ----XXXXX---------------------------- 0287 0288 ly4 ---------XXXX------------------------ 0289 0290 ly3 ---------------XX-------------------- 0291 0292 ly2 --------------------XX--------------- 0293 0294 ly1 ------------------------XXXX--------- 0295 0296 ly0 ----------------------------XXXXX---- 0297 0298 0299 0300 Pattern ID: 2 0301 ly5 -------------------------------XXXXXX 0302 0303 ly4 --------------------------XXXX------- 0304 0305 ly3 --------------------XXX-------------- 0306 0307 ly2 --------------XXX-------------------- 0308 0309 ly1 -------XXXX-------------------------- 0310 0311 ly0 XXXXXX------------------------------- 0312 0313 0314 0315 Pattern ID: 1 0316 ly5 XXXXXX------------------------------- 0317 0318 ly4 -------XXXX-------------------------- 0319 0320 ly3 --------------XXX-------------------- 0321 0322 ly2 --------------------XXX-------------- 0323 0324 ly1 --------------------------XXXX------- 0325 0326 ly0 -------------------------------XXXXXX 0327 0328 */
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.2.1 LXR engine. The LXR team |
![]() ![]() |