13 if not DiMuonVType
in config[
"validations"][
"DiMuonV"]:
14 raise Exception(
"No 'single' key word in config for DiMuonV")
16 for singleName
in config[
"validations"][
"DiMuonV"][DiMuonVType]:
17 for IOV
in config[
"validations"][
"DiMuonV"][DiMuonVType][singleName][
"IOV"]:
22 for alignment
in config[
"validations"][
"DiMuonV"][DiMuonVType][singleName][
"alignments"]:
24 workDir =
"{}/DiMuonV/{}/{}/{}/{}".
format(validationDir, DiMuonVType, singleName, alignment, IOV)
28 local[
"output"] =
"{}/{}/DiMuonV/{}/{}/{}/{}".
format(config[
"LFS"], config[
"name"], DiMuonVType, alignment, singleName, IOV)
29 local[
"alignment"] = copy.deepcopy(config[
"alignments"][alignment])
30 local[
"validation"] = copy.deepcopy(config[
"validations"][
"DiMuonV"][DiMuonVType][singleName])
31 local[
"validation"].pop(
"alignments")
32 local[
"validation"][
"IOV"] = IOV
33 if "dataset" in local[
"validation"]:
34 local[
"validation"][
"dataset"] = local[
"validation"][
"dataset"].
format(IOV)
35 if "goodlumi" in local[
"validation"]:
36 local[
"validation"][
"goodlumi"] = local[
"validation"][
"goodlumi"].
format(IOV)
40 "name":
"DiMuonV_{}_{}_{}_{}".
format(DiMuonVType, alignment, singleName, IOV),
43 "cms-config":
"{}/src/Alignment/OfflineValidation/python/TkAlAllInOneTool/DiMuonV_cfg.py".
format(os.environ[
"CMSSW_BASE"]),
52 if "merge" in config[
"validations"][
"DiMuonV"]:
58 for mergeName
in config[
"validations"][
"DiMuonV"][DiMuonVType]:
61 workDir =
"{}/DiMuonV/{}/{}/{}".
format(validationDir, DiMuonVType, mergeName, IOV)
67 "name":
"DiMuonV_{}_{}_{}".
format(DiMuonVType, mergeName, IOV),
69 "exe":
"DiMuonVmerge",
75 for alignment
in config[
"alignments"]:
77 local.setdefault(
"alignments", {})
78 if alignment
in config[
"validations"][
"DiMuonV"][
"single"][mergeName][
"alignments"]:
79 local[
"alignments"][alignment] = copy.deepcopy(config[
"alignments"][alignment])
80 local[
"validation"] = copy.deepcopy(config[
"validations"][
"DiMuonV"][DiMuonVType][mergeName])
81 local[
"output"] =
"{}/{}/DiMuonV/{}/{}/{}".
format(config[
"LFS"], config[
"name"], DiMuonVType, mergeName, IOV)
84 for singleJob
in jobs:
86 alignment, singleName, singleIOV = singleJob[
"name"].
split(
"_")[2:]
88 if int(singleIOV) == IOV
and singleName
in config[
"validations"][
"DiMuonV"][DiMuonVType][mergeName][
"singles"]:
89 local[
"alignments"][alignment][
"file"] = singleJob[
"config"][
"output"]
90 job[
"dependencies"].
append(singleJob[
"name"])
94 jobs.extend(mergeJobs)
def DiMuonV(config, validationDir)
def split(sequence, size)