File indexing completed on 2024-10-19 04:58:01
0001 import os
0002 import copy
0003
0004 _validationName = "PixBary"
0005
0006 def PixBary(config, validationDir, verbose=False):
0007
0008 jobs = []
0009
0010
0011 IOVs = {}
0012
0013
0014 jobType = "single"
0015
0016
0017 if not jobType in config["validations"][_validationName]:
0018 raise LookupError("No '%s' key word in config for %s" %(jobType, _validationName))
0019
0020
0021 for jobName, jobConfig in config["validations"][_validationName][jobType].items():
0022 IOV_list = get_IOVs(jobConfig)
0023 if(verbose):
0024 print('job: %s IOV_list: %s', jobName, IOV_list)
0025 IOVs[jobName] = IOV_list
0026
0027
0028 for runRange in IOV_list:
0029 IOV = '-'.join(str(i) for i in runRange)
0030
0031 for alignment, alignmentConfig in config["alignments"].items():
0032
0033 workDir = os.path.join(validationDir, _validationName, jobType, jobName, alignment, IOV)
0034
0035
0036 local = {}
0037 local["output"] = os.path.join(config["LFS"], config["name"], _validationName, jobType, alignment, jobName, IOV)
0038 local["alignment"] = copy.deepcopy(alignmentConfig)
0039 local["alignment"]["label"] = alignment
0040 local["validation"] = copy.deepcopy(jobConfig)
0041 local["validation"].pop("alignments")
0042 local["validation"]["IOV"] = IOV
0043 if "dataset" in local["validation"]:
0044 local["validation"]["dataset"] = local["validation"]["dataset"].format(IOV)
0045 if "goodlumi" in local["validation"]:
0046 local["validation"]["goodlumi"] = local["validation"]["goodlumi"].format(IOV)
0047
0048
0049 job = {
0050 "name": "{}_{}_{}_{}_{}".format(_validationName, alignment, jobType, jobName, IOV),
0051 "dir": workDir,
0052 "exe": "cmsRun",
0053 "cms-config": "{}/src/Alignment/OfflineValidation/python/TkAlAllInOneTool/PixelBaryCentreAnalyzer_cfg.py".format(os.environ["CMSSW_BASE"]),
0054 "run-mode": "Condor",
0055 "dependencies": [],
0056 "config": local,
0057 }
0058
0059 jobs.append(job)
0060
0061 return jobs
0062
0063 def get_IOVs(jobConfig):
0064 return [[jobConfig['firstRun'], jobConfig['lastRun']]]