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