251 def printHLTMenu(db, run, verbosity, printL2=True, printEF=True):
252 limmin=run<<32
253 limmax=((run+1)<<32)-1
254 print ("HLT Menu:")
255 f = db.getFolder( "/TRIGGER/HLT/Menu" )
256 chansel=cool.ChannelSelection.all()
257 objs = f.browseObjects( limmin,limmax,chansel)
258 sizeName=0
259 sizePS=0
260 sizePT=0
261 sizeStr=0
262 sizeLow=0
263 chainNames = {}
264 chainExtraInfo = {}
265 while objs.goToNext():
266 obj=objs.currentRef()
267 payload=obj.payload()
268 level = payload['TriggerLevel']
269 if level=='L2' and not printL2: continue
270 if level=='EF' and not printEF: continue
271 name = payload['ChainName']
272 sizeName=
max(sizeName,len(name))
273 counter = payload['ChainCounter']
274 chainNames[(level,counter)] = name
275 if verbosity>0:
276 version = payload['ChainVersion']
277 prescale = payload['Prescale']
278 passthr = payload['PassThrough']
279 stream = payload['StreamInfo']
280 lower = payload['LowerChainName']
281 sizePS=
max(sizePS,prescale)
282 sizePT=
max(sizePT,passthr)
283 sizeStr=
max(sizeStr,len(stream))
284 sizeLow=
max(sizeLow,len(lower))
285 chainExtraInfo[(name,level)] = (version, prescale, passthr, stream, lower)
286 sizePS = len("%i"%sizePS)
287 sizePT = len("%i"%sizePT)
288 for c in sorted(chainNames):
289 name = chainNames[c]
290 print ("%s %4i: %-*s" % (c[0], c[1], sizeName, name),)
291 if verbosity>0:
292 (version, prescale, passthr, stream, lower) = chainExtraInfo[(name,c[0])]
293 print ("[V %1s, PS %*i, PT %*i, by %-*s , => %-*s ]" %
294 (version, sizePS, prescale, sizePT, passthr, sizeLow, lower, sizeStr, stream), end='')
296
void print(char *figname, TCanvas *c1)