402def getFolderTag(db, folderPath, globalTag):
403
404 tag=""
405 gTAG = globalTag.upper()
406 findTAG = (gTAG == "ANY" or gTAG == "FIRST" or gTAG == "LAST")
407 if globalTag.startswith("/") or globalTag.startswith("TileO") or globalTag.upper().startswith("CALO"):
408 tag = globalTag
409 log.warning("Using tag as-is for folder %s", folderPath)
410 elif '/TILE/ONL01' in folderPath:
411 log.info("Using empty tag for single-version folder %s", folderPath)
412 elif globalTag.startswith(" "):
413 log.warning("Using empty tag for folder %s", folderPath)
414 elif globalTag=="":
416 log.warning("Using tag with empty suffix for folder %s", folderPath)
417 else:
418 if folderPath.startswith('/CALO'):
419 dbname = 'COOLOFL_CALO' if folderPath.startswith('/CALO/Ofl') else 'COOLONL_CALO'
420 else:
421 dbname ='COOLOFL_TILE'
422 schema=dbname+'/CONDBR2'
423 if isinstance(db, str):
424 if 'OFLP200' in db or 'MC' in db:
425 schema=dbname+'/OFLP200'
426 if not globalTag.startswith("OFLCOND"):
427 if globalTag.startswith("RUN"):
428 globalTag='OFLCOND-'+globalTag
429 log.info("Using Simulation global tag \'%s\'", globalTag)
430 elif 'COMP200' in db or 'RUN1' in db:
431 schema=dbname+'/COMP200'
432 if globalTag!='UPD1' and globalTag!='UPD4' and ('UPD1' in globalTag or 'UPD4' in globalTag or 'COND' not in globalTag):
433 if not findTAG:
434 log.info("Using suffix \'%s\' as it is", globalTag)
435 else:
436 findTAG = False
437 globalTag='COMCOND-BLKPA-RUN1-06'
438 log.info("Using RUN1 global tag \'%s\'", globalTag)
439 if schema == dbname+'/CONDBR2':
440 if globalTag=='CURRENT' or globalTag=='UPD4' or globalTag=='':
441 globalTag=getAliasFromFile('Current')
442 log.info("Resolved CURRENT globalTag to \'%s\'", globalTag)
443 elif globalTag=='CURRENTES' or globalTag=='UPD1':
444 globalTag=getAliasFromFile('CurrentES')
445 log.info("Resolved CURRENT ES globalTag to \'%s\'", globalTag)
446 elif globalTag=='NEXT':
447 globalTag=getAliasFromFile('Next')
448 log.info("Resolved NEXT globalTag to \'%s\'", globalTag)
449 elif globalTag=='NEXTES':
450 globalTag=getAliasFromFile('NextES')
451 log.info("Resolved NEXT ES globalTag to \'%s\'", globalTag)
452 globalTag=globalTag.replace('*','')
453 if not findTAG and ('UPD1' in globalTag or 'UPD4' in globalTag or 'COND' not in globalTag):
455 if tag.startswith('Calo') and 'NoiseCell' not in tag:
456 tag='CALO'+tag[4:]
457 tag=tag.replace('Pileupnoiselumi','PileUpNoiseLumi')
458 log.info("Resolved localTag \'%s\' to folderTag \'%s\'", globalTag,tag)
459 else:
460 if not isinstance(db, str):
461 try:
462 folder = db.getFolder(folderPath)
463 if findTAG:
464 tag = findTag(folder,gTAG)
465 else:
466 tag = folder.resolveTag(globalTag)
467 log.info("Resolved globalTag \'%s\' to folderTag \'%s\'", globalTag,tag)
468 schema=""
469 except Exception as e:
470 log.warning(e)
471 log.warning("Using %s to resolve globalTag",schema)
472 if len(schema):
473 dbr = openDbConn(schema,'READONLY')
474 folder = dbr.getFolder(folderPath)
475 if findTAG:
476 tag = findTag(folder,gTAG)
477 else:
478 tag = folder.resolveTag(globalTag)
479 dbr.closeDatabase()
480 log.info("Resolved globalTag \'%s\' to folderTag \'%s\'", globalTag,tag)
481
482 return tag
483
484
485
static std::string getFullTag(const std::string &folder, const std::string &tag)
Returns the full tag string, composed of camelized folder name and tag part.