13 return frag+
'_'+key+
'_'+step+suffix
16 return step+suffix+
'_'+key
18 neutronKeys = [
'2023D17',
'2023D19',
'2023D21',
'2023D24',
'2023D25',
'2023D28',
'2023D29',
'2023D30',
'2023D31',
'2023D33',
'2023D34',
'2023D35',
'2023D38',
'2023D39',
'2023D40',
'2023D41',
'2023D42']
19 neutronFrags = [
'ZMM_14',
'MinBias_14TeV']
21 tbmFrags = [
'TTbar_13',
'ZMM_13']
25 for year
in upgradeKeys:
26 for i,key
in enumerate(upgradeKeys[year]):
27 numWF=numWFAll[year][i]
28 for frag
in upgradeFragments:
30 for stepType
in upgradeSteps.keys():
31 stepList[stepType] = []
33 for step
in upgradeProperties[year][key][
'ScenToRun']:
34 stepMaker = makeStepName
36 if 'HLBeamSpotFull' in step
and '14TeV' in frag:
37 step =
'GenSimHLBeamSpotFull14' 38 stepMaker = makeStepNameSim
40 if 'HARVEST' in step: hasHarvest =
True 42 for stepType
in upgradeSteps.keys():
44 if stepType ==
'Premix':
54 s = step.replace(
'GenSim',
'Premix')
55 if not s
in upgradeSteps[stepType][
'PU']:
60 stepList[stepType].
append(stepMaker(key,
"SingleNuE10_cf",s,upgradeSteps[stepType][
'suffix']))
61 elif (stepType
is not 'baseline')
and ( (
'PU' in step
and step.replace(
'PU',
'')
in upgradeSteps[stepType][
'PU'])
or (step
in upgradeSteps[stepType][
'steps']) ):
62 stepList[stepType].
append(stepMaker(key,frag[:-4],step,upgradeSteps[stepType][
'suffix']))
64 if stepType ==
'ProdLike' and 'RecoFullGlobal' in step:
65 stepList[stepType].
append(stepMaker(key,frag[:-4],step.replace(
'RecoFullGlobal',
'MiniAODFullGlobal'),upgradeSteps[stepType][
'suffix']))
67 stepList[stepType].
append(stepMaker(key,frag[:-4],step,upgradeSteps[
'baseline'][
'suffix']))
69 workflows[numWF] = [ upgradeDatasetFromFragment[frag], stepList[
'baseline']]
72 if upgradeDatasetFromFragment[frag]==
"TTbar_14TeV" and '2023' in key:
73 workflows[numWF+upgradeSteps[
'Timing'][
'offset']] = [ upgradeDatasetFromFragment[frag]+
"_Timing", stepList[
'Timing']]
76 if any(upgradeDatasetFromFragment[frag]==nfrag
for nfrag
in neutronFrags)
and any(nkey
in key
for nkey
in neutronKeys):
77 workflows[numWF+upgradeSteps[
'Neutron'][
'offset']] = [ upgradeDatasetFromFragment[frag]+
"_Neutron", stepList[
'Neutron']]
80 if (upgradeDatasetFromFragment[frag]==
"TTbar_13" or upgradeDatasetFromFragment[frag]==
"TTbar_14TeV")
and not 'PU' in key
and hasHarvest:
82 trackingVariations = [
'trackingOnly',
'trackingRun2',
'trackingOnlyRun2',
'trackingLowPU',
'pixelTrackingOnly']
83 for tv
in trackingVariations:
84 stepList[tv] = [s
for s
in stepList[tv]
if ((
"ALCA" not in s)
and (
"Nano" not in s))]
85 workflows[numWF+upgradeSteps[
'trackingOnly'][
'offset']] = [ upgradeDatasetFromFragment[frag], stepList[
'trackingOnly']]
87 for tv
in trackingVariations[1:]:
88 workflows[numWF+upgradeSteps[tv][
'offset']] = [ upgradeDatasetFromFragment[frag], stepList[tv]]
90 workflows[numWF+upgradeSteps[
'pixelTrackingOnly'][
'offset']] = [ upgradeDatasetFromFragment[frag], stepList[
'pixelTrackingOnly']]
93 if upgradeDatasetFromFragment[frag]==
"TTbar_13" and '2018' in key:
94 workflows[numWF+upgradeSteps[
'heCollapse'][
'offset']] = [ upgradeDatasetFromFragment[frag], stepList[
'heCollapse']]
97 if any(upgradeDatasetFromFragment[frag]==nfrag
for nfrag
in tbmFrags)
and '2018' in key:
98 workflows[numWF+upgradeSteps[
'killStuckTBM'][
'offset']] = [ upgradeDatasetFromFragment[frag], stepList[
'killStuckTBM']]
101 if upgradeDatasetFromFragment[frag]==
"TTbar_14TeV" and '2023' in key:
102 workflows[numWF+upgradeSteps[
'ProdLike'][
'offset']] = [ upgradeDatasetFromFragment[frag]+
"_ProdLike", stepList[
'ProdLike']]
105 if upgradeDatasetFromFragment[frag]==
"TTbar_13" and '2018' in key:
106 workflows[numWF+upgradeSteps[
'ParkingBPH'][
'offset']] = [ upgradeDatasetFromFragment[frag], stepList[
'ParkingBPH']]
109 if upgradeDatasetFromFragment[frag]==
"NuGun" and 'PU' in key
and '2023' in key:
110 workflows[numWF+upgradeSteps[
'Premix'][
'offset']] = [upgradeDatasetFromFragment[frag], stepList[
'Premix']]
113 if 'PU' in key
and '2023' in key
and upgradeDatasetFromFragment[frag]==
"TTbar_14TeV":
115 for step
in stepList[
'baseline']:
117 if "Digi" in step
or "Reco" in step:
118 s = s.replace(
"PU",
"PUPRMX", 1)
120 workflows[numWF+premixS2_offset] = [upgradeDatasetFromFragment[frag], slist]
123 workflows[numWF+premixS1S2_offset] = [upgradeDatasetFromFragment[frag],
126 [slist[1].
replace(
"PUPRMX",
"PUPRMXCombined")] +
def makeStepName(key, frag, step, suffix)
bool any(const std::vector< T > &v, const T &what)
def replace(string, replacements)
def makeStepNameSim(key, frag, step, suffix)