|
21 | 21 | maxLinesPerOutputFile = cms.uint32(1024), |
22 | 22 | eventsPerFile = cms.uint32(_eventsPerFile), |
23 | 23 | tfTimeSlices = cms.VPSet(), |
| 24 | + gctNLinksEcal = cms.uint32(1), |
| 25 | + gctNLinksHad = cms.uint32(2), |
24 | 26 | gctSectors = cms.VPSet(), |
25 | 27 | gmtTimeSlices = cms.VPSet(), |
26 | 28 | gmtNumberOfMuons = cms.uint32(12), |
|
51 | 53 | outputFileName = cms.string("l1BarrelPhi1Serenity-outputs") |
52 | 54 | ) |
53 | 55 | barrelSerenityVU13PPhi1Config = barrelSerenityPhi1Config.clone( |
54 | | - gttLink = cms.int32(4*31+3), |
| 56 | + gttLink = cms.int32(4*25+3), |
| 57 | + gmtTimeSlices = cms.VPSet(*[cms.PSet(gmtLink = cms.int32(4*18+t)) for t in range(3)]), |
55 | 58 | inputFileName = cms.string("l1BarrelPhi1Serenity-inputs-vu13p"), |
56 | 59 | ) |
57 | 60 | for t in range(3): |
|
65 | 68 | for i,s in enumerate([0,1]): |
66 | 69 | barrelSerenityVU9PPhi1Config.gctSectors[s].gctLinksHad = [3*i+4*18, 3*i+4*18+1] |
67 | 70 | barrelSerenityVU9PPhi1Config.gctSectors[s].gctLinksEcal = [3*i+4*18+2] |
68 | | - barrelSerenityVU13PPhi1Config.gctSectors[s].gctLinksHad = [3*i+4*18, 3*i+4*18+1] |
69 | | - barrelSerenityVU13PPhi1Config.gctSectors[s].gctLinksEcal = [3*i+4*18+2] |
| 71 | + gctLinks = list(range(4*17,4*17+4)) + list(range(4*19,4*19+2)) |
| 72 | + barrelSerenityVU13PPhi1Config.gctSectors[s].gctLinksHad = [gctLinks[3*i], gctLinks[3*i+1]] |
| 73 | + barrelSerenityVU13PPhi1Config.gctSectors[s].gctLinksEcal = [gctLinks[3*i+2]] |
70 | 74 |
|
71 | 75 | barrelWriterConfigs = barrelWriterOutputOnlyPhiConfigs |
72 | 76 |
|
|
115 | 119 | hgcalNegVU9PWriterConfig = _hgcalNegWriterConfig.clone() |
116 | 120 | for t in range(3): |
117 | 121 | hgcalPosVU9PWriterConfig.tfTimeSlices[t].tfSectors += [ cms.PSet(tfLink = cms.int32(-1)) for i in range(9) ] # neg |
118 | | - hgcalPosVU9PWriterConfig.tfTimeSlices[t].tfSectors += [ cms.PSet(tfLink = cms.int32(3*i+t+4*2)) for i in range(4) ] # pos, left quads |
119 | | - hgcalPosVU9PWriterConfig.tfTimeSlices[t].tfSectors += [ cms.PSet(tfLink = cms.int32(3*i+t+4*25)) for i in range(5) ] # pos, right quads |
120 | | - hgcalNegVU9PWriterConfig.tfTimeSlices[t].tfSectors += [ cms.PSet(tfLink = cms.int32(3*i+t+4*2)) for i in range(4) ] # neg, left quads |
121 | | - hgcalNegVU9PWriterConfig.tfTimeSlices[t].tfSectors += [ cms.PSet(tfLink = cms.int32(3*i+t+4*25)) for i in range(5) ] # neg, right quads |
| 122 | + hgcalPosVU9PWriterConfig.tfTimeSlices[t].tfSectors += [ cms.PSet(tfLink = cms.int32(3*i+t+4*1)) for i in range(4) ] # pos, left quads |
| 123 | + hgcalPosVU9PWriterConfig.tfTimeSlices[t].tfSectors += [ cms.PSet(tfLink = cms.int32(3*i+t+4*26)) for i in range(5) ] # pos, right quads |
| 124 | + hgcalNegVU9PWriterConfig.tfTimeSlices[t].tfSectors += [ cms.PSet(tfLink = cms.int32(3*i+t+4*1)) for i in range(4) ] # neg, left quads |
| 125 | + hgcalNegVU9PWriterConfig.tfTimeSlices[t].tfSectors += [ cms.PSet(tfLink = cms.int32(3*i+t+4*26)) for i in range(5) ] # neg, right quads |
122 | 126 | hgcalNegVU9PWriterConfig.tfTimeSlices[t].tfSectors += [ cms.PSet(tfLink = cms.int32(-1)) for i in range(9) ] # pos |
123 | | - hgcalPosVU9PWriterConfig.hgcTimeSlices[t].hgcSectors += [ cms.PSet(hgcLinks = cms.vint32(-1,-1,-1,-1)) for i in range(3) ] # neg |
124 | | - hgcalPosVU9PWriterConfig.hgcTimeSlices[t].hgcSectors += [ cms.PSet(hgcLinks = cms.vint32(*[4*11+12*i+4*t+j for j in range(4)])) for i in range(3) ] # pos |
125 | | - hgcalNegVU9PWriterConfig.hgcTimeSlices[t].hgcSectors += [ cms.PSet(hgcLinks = cms.vint32(*[4*11+12*i+4*t+j for j in range(4)])) for i in range(3) ] # neg |
126 | | - hgcalNegVU9PWriterConfig.hgcTimeSlices[t].hgcSectors += [ cms.PSet(hgcLinks = cms.vint32(-1,-1,-1,-1)) for i in range(3) ] # pos |
127 | | - hgcalPosVU9PWriterConfig.gmtTimeSlices[t].gmtLink = cms.int32(4+t) |
128 | | - hgcalNegVU9PWriterConfig.gmtTimeSlices[t].gmtLink = cms.int32(4+t) |
129 | | -hgcalPosVU9PWriterConfig.gttLink = 4+3 |
130 | | -hgcalNegVU9PWriterConfig.gttLink = 4+3 |
| 127 | + hgcQuads = [list(range(4*i,4*i+4)) for i in [10,11,12,13]] |
| 128 | + hgcQuads += [[4*14+1,4*14+2,4*14+3,4*15+3]] # mixed quad |
| 129 | + hgcQuads += [list(range(4*i,4*i+4)) for i in [16,17,18,19]] |
| 130 | + hgcalPosVU9PWriterConfig.hgcTimeSlices[t].hgcSectors += [ cms.PSet(hgcLinks = cms.vint32(-1,-1,-1,-1)) for i in range(3) ] # neg |
| 131 | + hgcalPosVU9PWriterConfig.hgcTimeSlices[t].hgcSectors += [ cms.PSet(hgcLinks = cms.vint32(*hgcQuads[3*i+t])) for i in range(3) ] # pos |
| 132 | + hgcalNegVU9PWriterConfig.hgcTimeSlices[t].hgcSectors += [ cms.PSet(hgcLinks = cms.vint32(*hgcQuads[3*i+t])) for i in range(3) ] # neg |
| 133 | + hgcalNegVU9PWriterConfig.hgcTimeSlices[t].hgcSectors += [ cms.PSet(hgcLinks = cms.vint32(-1,-1,-1,-1)) for i in range(3) ] # pos |
| 134 | + hgcalPosVU9PWriterConfig.gmtTimeSlices[t].gmtLink = cms.int32(4*15+((t+2)%3)) |
| 135 | + hgcalNegVU9PWriterConfig.gmtTimeSlices[t].gmtLink = cms.int32(4*15+((t+2)%3)) |
| 136 | +hgcalPosVU9PWriterConfig.gttLink = 4*14+0 |
| 137 | +hgcalNegVU9PWriterConfig.gttLink = 4*14+0 |
131 | 138 | hgcalPosVU9PWriterConfig.inputFileName = cms.string("l1HGCalPos-inputs-vu9p") |
132 | 139 | hgcalNegVU9PWriterConfig.inputFileName = cms.string("l1HGCalNeg-inputs-vu9p") |
133 | 140 | ## Current configurations for VU13P |
|
140 | 147 | hgcalNegVU13PWriterConfig.tfTimeSlices[t].tfSectors += [ cms.PSet(tfLink = cms.int32(3*i+t+4*0)) for i in range(5) ] # neg, left quads |
141 | 148 | hgcalNegVU13PWriterConfig.tfTimeSlices[t].tfSectors += [ cms.PSet(tfLink = cms.int32(3*i+t+4*28)) for i in range(4) ] # neg, right quads |
142 | 149 | hgcalNegVU13PWriterConfig.tfTimeSlices[t].tfSectors += [ cms.PSet(tfLink = cms.int32(-1)) for i in range(9) ] # pos |
| 150 | + hgcQuads = [list(range(4*i,4*i+4)) for i in [12,13,14, 16,17, 19,20,21,22]] |
143 | 151 | hgcalPosVU13PWriterConfig.hgcTimeSlices[t].hgcSectors += [ cms.PSet(hgcLinks = cms.vint32(-1,-1,-1,-1)) for i in range(3) ] # neg |
144 | | - for isec,q0 in (0,12),(1,17),(2,20): |
145 | | - hgcalPosVU13PWriterConfig.hgcTimeSlices[t].hgcSectors += [ cms.PSet(hgcLinks = cms.vint32(*[4*q0+4*t+j for j in range(4)])) ] # pos |
146 | | - hgcalNegVU13PWriterConfig.hgcTimeSlices[t].hgcSectors += [ cms.PSet(hgcLinks = cms.vint32(*[4*q0+4*t+j for j in range(4)])) ] # neg |
| 152 | + hgcalPosVU13PWriterConfig.hgcTimeSlices[t].hgcSectors += [ cms.PSet(hgcLinks = cms.vint32(*hgcQuads[3*i+t])) for i in range(3) ] # pos |
| 153 | + hgcalNegVU13PWriterConfig.hgcTimeSlices[t].hgcSectors += [ cms.PSet(hgcLinks = cms.vint32(*hgcQuads[3*i+t])) for i in range(3) ] # neg |
147 | 154 | hgcalNegVU13PWriterConfig.hgcTimeSlices[t].hgcSectors += [ cms.PSet(hgcLinks = cms.vint32(-1,-1,-1,-1)) for i in range(3) ] # pos |
148 | | - hgcalPosVU13PWriterConfig.gmtTimeSlices[t].gmtLink = cms.int32(4*27+t) |
149 | | - hgcalNegVU13PWriterConfig.gmtTimeSlices[t].gmtLink = cms.int32(4*27+t) |
150 | | -hgcalPosVU13PWriterConfig.gttLink = 4*27+3 |
151 | | -hgcalNegVU13PWriterConfig.gttLink = 4*27+3 |
| 155 | + hgcalPosVU13PWriterConfig.gmtTimeSlices[t].gmtLink = cms.int32(4*18+t) |
| 156 | + hgcalNegVU13PWriterConfig.gmtTimeSlices[t].gmtLink = cms.int32(4*18+t) |
| 157 | +hgcalPosVU13PWriterConfig.gttLink = 4*25+3 |
| 158 | +hgcalNegVU13PWriterConfig.gttLink = 4*25+3 |
152 | 159 | hgcalPosVU13PWriterConfig.inputFileName = cms.string("l1HGCalPos-inputs-vu13p") |
153 | 160 | hgcalNegVU13PWriterConfig.inputFileName = cms.string("l1HGCalNeg-inputs-vu13p") |
154 | 161 |
|
|
190 | 197 | hgcalNoTKVU13PWriterConfig = _hgcalNoTKWriterConfig.clone() |
191 | 198 | for t in range(3): |
192 | 199 | for isec in range(6): |
193 | | - q0 = 3*isec + 6 |
194 | | - hgcalNoTKVU13PWriterConfig.hgcTimeSlices[t].hgcSectors += [ cms.PSet(hgcLinks = cms.vint32(*[4*q0+4*t+j for j in range(4)])) ] # pos |
| 200 | + q0 = 3*isec + (6 if isec < 3 else 8) |
| 201 | + hgcalNoTKVU13PWriterConfig.hgcTimeSlices[t].hgcSectors += [ cms.PSet(hgcLinks = cms.vint32(*[4*q0+4*t+j for j in range(4)])) ] |
195 | 202 | hgcalNoTKVU13PWriterConfig.inputFileName = cms.string("l1HGCalNoTK-inputs-vu13p") # vu9p uses the same cabling for now |
196 | 203 |
|
197 | 204 | hgcalNoTKWriterConfigs = [ |
|
200 | 207 | ] |
201 | 208 |
|
202 | 209 | ##################################################################################################################### |
203 | | -## HGCal TM18 configuration |
| 210 | +## TM18 configuration |
| 211 | +_barrelSerenityTM18 = _barrelWriterOutputOnly.clone( |
| 212 | + tmuxFactor = cms.uint32(18), |
| 213 | + tfTimeSlices = None, |
| 214 | + tfSectors = cms.VPSet(*[cms.PSet(tfLink = cms.int32(-1)) for i in range(18)]), |
| 215 | + gmtTimeSlices = None, |
| 216 | + gmtLink = cms.int32(4*18+0), |
| 217 | + gttLink = 4*28+3, |
| 218 | + eventsPerFile = 4, |
| 219 | +) |
| 220 | +barrelSerenityOutputTM18WriterConfig = _barrelSerenityTM18.clone( |
| 221 | + outputRegions = cms.vuint32(*range(54)), |
| 222 | + outputBoard = cms.int32(0), |
| 223 | + outputFileName = cms.string("l1BarrelSerenityTM18-outputs") |
| 224 | +) |
| 225 | +barrelSerenityVU13PTM18WriterConfig = _barrelSerenityTM18.clone( |
| 226 | + inputFileName = cms.string("l1BarrelSerenityTM18-inputs-vu13p"), |
| 227 | + gttLatency = cms.uint32(167), # shorter, to fit 6 events in 1024 lines |
| 228 | + maxLinesPerInputFile = cms.uint32(1024+167), # anything beyond 986 will be nulls |
| 229 | + gctNLinksEcal = 1, |
| 230 | + gctNLinksHad = 1, |
| 231 | + gctSectors = cms.VPSet(*[cms.PSet( |
| 232 | + gctLinksHad = cms.vint32(4*18+1+s), |
| 233 | + gctLinksEcal = cms.vint32(4*18+1+s), |
| 234 | + ) for s in range(3)]), |
| 235 | +) |
| 236 | +for ie in range(2): |
| 237 | + for iphi in range(9): |
| 238 | + isec = 9*ie+iphi |
| 239 | + barrelSerenityVU13PTM18WriterConfig.tfSectors[isec].tfLink = (isec if isec < 12 else (4*30+(isec-12))) |
| 240 | + |
| 241 | +barrelSerenityTM18WriterConfigs = [ |
| 242 | + barrelSerenityOutputTM18WriterConfig, |
| 243 | + barrelSerenityVU13PTM18WriterConfig |
| 244 | +] |
| 245 | + |
204 | 246 | _hgcalWriterTM18 = _hgcalWriterConfig.clone( |
205 | 247 | tmuxFactor = cms.uint32(18), |
206 | 248 | tfTimeSlices = None, |
|
210 | 252 | gmtTimeSlices = None, |
211 | 253 | gmtLink = cms.int32(4*27+0), |
212 | 254 | gttLink = 4*27+3, |
213 | | - eventsPerFile = 6, |
| 255 | + eventsPerFile = 4, |
214 | 256 | ) |
215 | 257 | hgcalWriterOutputTM18WriterConfig = _hgcalWriterTM18.clone( |
216 | 258 | outputFileName = cms.string("l1HGCalTM18-outputs"), |
|
222 | 264 | inputFileName = cms.string("l1HGCalTM18-inputs-vu9p"), |
223 | 265 | gttLatency = cms.uint32(167), # shorter, to fit 6 events in 1024 lines |
224 | 266 | maxLinesPerInputFile = cms.uint32(1024+167), # anything beyond 986 will be nulls |
| 267 | + gmtLink = 4*15+2, |
| 268 | + gttLink = 0, |
225 | 269 | ) |
226 | 270 | hgcalWriterVU13PTM18WriterConfig = hgcalWriterVU9PTM18WriterConfig.clone( |
227 | 271 | inputFileName = cms.string("l1HGCalTM18-inputs-vu13p"), |
| 272 | + gmtLink = 4*18+0, |
| 273 | + gttLink = 4*28+3, |
228 | 274 | ) |
229 | 275 | for ie in range(2): |
230 | 276 | for iphi in range(9): |
231 | 277 | isec, ilink = 9*ie+iphi, 2*iphi+ie |
232 | | - hgcalWriterVU9PTM18WriterConfig.tfSectors[isec].tfLink = (ilink if ilink < 12 else (4*28+(ilink-12))) |
| 278 | + hgcalWriterVU9PTM18WriterConfig.tfSectors[isec].tfLink = (ilink+2 if ilink < 10 else (4*28+(ilink-10))) |
233 | 279 | hgcalWriterVU13PTM18WriterConfig.tfSectors[isec].tfLink = (ilink if ilink < 12 else (4*30+(ilink-12))) |
234 | 280 | for iphi in range(3): |
235 | 281 | isec, ilink = 3*ie+iphi, 2*iphi+ie |
236 | | - hgcalWriterVU9PTM18WriterConfig.hgcSectors[isec].hgcLinks += range(4*(12+ilink),4*(12+ilink)+4) |
237 | | - hgcalWriterVU13PTM18WriterConfig.hgcSectors[isec].hgcLinks += range(4*(13+ilink),4*(13+ilink)+4) |
| 282 | + if ilink < 2: |
| 283 | + hgcalWriterVU9PTM18WriterConfig.hgcSectors[isec].hgcLinks += range(4*(12+ilink),4*(12+ilink)+4) |
| 284 | + else: |
| 285 | + hgcalWriterVU9PTM18WriterConfig.hgcSectors[isec].hgcLinks += range(4*(14+ilink),4*(14+ilink)+4) |
| 286 | + if ilink < 3: |
| 287 | + hgcalWriterVU13PTM18WriterConfig.hgcSectors[isec].hgcLinks += range(4*(12+ilink),4*(12+ilink)+4) |
| 288 | + elif ilink < 5: |
| 289 | + hgcalWriterVU13PTM18WriterConfig.hgcSectors[isec].hgcLinks += range(4*(13+ilink),4*(13+ilink)+4) |
| 290 | + else: |
| 291 | + hgcalWriterVU13PTM18WriterConfig.hgcSectors[isec].hgcLinks += range(4*(14+ilink),4*(14+ilink)+4) |
238 | 292 |
|
239 | 293 | hgcalTM18WriterConfigs = [ |
240 | 294 | hgcalWriterOutputTM18WriterConfig, |
|
0 commit comments