414def getFolderTag(db, folderPath, globalTag):
415
416 tag=""
417 gTAG = globalTag.upper()
418 findTAG = (gTAG == "ANY" or gTAG == "FIRST" or gTAG == "LAST")
419 if globalTag.startswith("/") or globalTag.startswith("TileO") or globalTag.upper().startswith("CALO"):
420 tag = globalTag
421 log.warning("Using tag as-is for folder %s", folderPath)
422 elif '/TILE/ONL01' in folderPath:
423 log.info("Using empty tag for single-version folder %s", folderPath)
424 elif globalTag.startswith(" "):
425 log.warning("Using empty tag for folder %s", folderPath)
426 elif globalTag=="":
428 log.warning("Using tag with empty suffix for folder %s", folderPath)
429 else:
430 if folderPath.startswith('/CALO'):
431 dbname = 'COOLOFL_CALO' if folderPath.startswith('/CALO/Ofl') else 'COOLONL_CALO'
432 else:
433 dbname ='COOLOFL_TILE'
434 schema=dbname+'/CONDBR2'
435 if isinstance(db, str):
436 if 'OFLP200' in db or 'MC' in db:
437 schema=dbname+'/OFLP200'
438 if not globalTag.startswith("OFLCOND"):
439 if globalTag.startswith("RUN"):
440 globalTag='OFLCOND-'+globalTag
441 log.info("Using Simulation global tag \'%s\'", globalTag)
442 elif 'COMP200' in db or 'RUN1' in db:
443 schema=dbname+'/COMP200'
444 if globalTag!='UPD1' and globalTag!='UPD4' and ('UPD1' in globalTag or 'UPD4' in globalTag or 'COND' not in globalTag):
445 if not findTAG:
446 log.info("Using suffix \'%s\' as it is", globalTag)
447 else:
448 findTAG = False
449 globalTag='COMCOND-BLKPA-RUN1-06'
450 log.info("Using RUN1 global tag \'%s\'", globalTag)
451 if schema == dbname+'/CONDBR2':
452 if globalTag=='CURRENT' or globalTag=='UPD4' or globalTag=='':
453 globalTag=getAliasFromFile('Current')
454 log.info("Resolved CURRENT globalTag to \'%s\'", globalTag)
455 elif globalTag=='CURRENTES' or globalTag=='UPD1':
456 globalTag=getAliasFromFile('CurrentES')
457 log.info("Resolved CURRENT ES globalTag to \'%s\'", globalTag)
458 elif globalTag=='NEXT':
459 globalTag=getAliasFromFile('Next')
460 log.info("Resolved NEXT globalTag to \'%s\'", globalTag)
461 elif globalTag=='NEXTES':
462 globalTag=getAliasFromFile('NextES')
463 log.info("Resolved NEXT ES globalTag to \'%s\'", globalTag)
464 globalTag=globalTag.replace('*','')
465 if not findTAG and ('UPD1' in globalTag or 'UPD4' in globalTag or 'COND' not in globalTag):
467 if tag.startswith('Calo') and 'NoiseCell' not in tag:
468 tag='CALO'+tag[4:]
469 tag=tag.replace('Pileupnoiselumi','PileUpNoiseLumi')
470 log.info("Resolved localTag \'%s\' to folderTag \'%s\'", globalTag,tag)
471 else:
472 if not isinstance(db, str):
473 try:
474 folder = db.getFolder(folderPath)
475 if findTAG:
476 tag = findTag(folder,gTAG)
477 else:
478 tag = folder.resolveTag(globalTag)
479 log.info("Resolved globalTag \'%s\' to folderTag \'%s\'", globalTag,tag)
480 schema=""
481 except Exception as e:
482 log.warning(e)
483 log.warning("Using %s to resolve globalTag",schema)
484 if len(schema):
485 dbr = openDbConn(schema,'READONLY')
486 folder = dbr.getFolder(folderPath)
487 if findTAG:
488 tag = findTag(folder,gTAG)
489 else:
490 tag = folder.resolveTag(globalTag)
491 dbr.closeDatabase()
492 log.info("Resolved globalTag \'%s\' to folderTag \'%s\'", globalTag,tag)
493
494 return tag
495
496
497
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.