1 from copy
import copy, deepcopy
2 from collections
import OrderedDict
3 from .MatrixUtil
import merge, Kby
79 numWFConflict = [[20000,23200],[23600,28200],[28600,31400],[31800,32200],[32600,34600],[50000,51000]]
85 for year
in upgradeKeys:
86 for i
in range(0,len(upgradeKeys[year])):
87 numWFtmp = numWFStart[year]
if i==0
else (numWFAll[year][i-1] + numWFSkip)
88 for conflict
in numWFConflict:
89 if numWFtmp>=conflict[0]
and numWFtmp<conflict[1]:
90 numWFtmp = conflict[1]
92 numWFAll[year].
append(numWFtmp)
99 preventReuseKeyword =
'NOREUSE' 108 if not step
in self.
steps:
115 raise ValueError(
"Special workflow offset must be between 0.0 and 1.0")
117 stepName = step + self.
suffix + extra
120 stepNamePU = step +
'PU' + self.
suffix + extra
123 for step
in self.
steps:
129 def setup(self, stepDict, k, properties):
130 for step
in self.
steps:
137 def setup_(self, step, stepName, stepDict, k, properties):
139 def setupPU_(self, step, stepName, stepDict, k, properties):
141 def workflow(self, workflows, num, fragment, stepList, key, hasHarvest):
142 if self.condition(fragment, stepList, key, hasHarvest):
143 self.workflow_(workflows, num, fragment, stepList, key)
144 def workflow_(self, workflows, num, fragment, stepList, key):
145 fragmentTmp = [fragment, key]
147 workflows[num+self.
offset] = [ fragmentTmp, stepList ]
148 def condition(self, fragment, stepList, key, hasHarvest):
151 if "Sim" in stepName:
152 stepDict[stepName][k] =
None 153 upgradeWFs = OrderedDict()
156 def setup_(self, step, stepName, stepDict, k, properties):
157 cust=properties.get(
'Custom',
None)
158 era=properties.get(
'Era',
None)
159 modifier=properties.get(
'ProcessModifier',
None)
160 if cust
is not None: stepDict[stepName][k][
'--customise']=cust
162 stepDict[stepName][k][
'--era']=era
163 if modifier
is not None: stepDict[stepName][k][
'--procModifier']=modifier
164 def condition(self, fragment, stepList, key, hasHarvest):
170 'GenSimHLBeamSpot14',
171 'GenSimHLBeamSpotHGCALCloseBy',
212 def setup_(self, step, stepName, stepDict, k, properties):
213 if stepDict[step][k] !=
None:
215 stepDict[stepName][k] =
None 216 if 'RecoNano' in step:
217 stepDict[stepName][k] =
merge([{
'--filein':
'file:step3.root',
'--secondfilein':
'file:step2.root'}, stepDict[step][k]])
219 stepDict[stepName][k] =
merge([{
'-s': re.sub(
',HLT.*',
'', stepDict[step][k][
'-s'])}, stepDict[step][k]])
220 def condition(self, fragment, stepList, key, hasHarvest):
221 if (
'TTbar_14TeV' in fragment
and '2021' == key):
222 stepList.insert(stepList.index(
'Digi_DigiNoHLT_2021')+1,
'HLTRun3_2021')
223 return (
'TTbar_14TeV' in fragment
and '2021' == key)
231 suffix =
'_DigiNoHLT',
240 steps = steps + [
"ALCA",
"Nano"]
241 super().
__init__(steps, [], suffix, offset)
242 def condition(self, fragment, stepList, key, hasHarvest):
243 result = (fragment==
"TTbar_13" or fragment==
"TTbar_14TeV")
and not 'PU' in key
and hasHarvest
and self.
condition_(fragment, stepList, key, hasHarvest)
247 def setup_(self, step, stepName, stepDict, k, properties):
249 if 'ALCA' in step
or 'Nano'==step:
250 stepDict[stepName][k] =
None 251 self.
setup__(step, stepName, stepDict, k, properties)
253 def setup__(self, step, stepName, stepDict, k, properties):
256 class UpgradeWorkflow_trackingOnly(UpgradeWorkflowTracking):
257 def setup__(self, step, stepName, stepDict, k, properties):
258 if 'Reco' in step: stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
259 elif 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@trackingOnlyDQM'}, stepDict[step][k]])
271 suffix =
'_trackingOnly',
274 upgradeWFs[
'trackingOnly'].step3 = {
275 '-s':
'RAW2DIGI,RECO:reconstruction_trackingOnly,VALIDATION:@trackingOnlyValidation,DQM:@trackingOnlyDQM',
276 '--datatier':
'GEN-SIM-RECO,DQMIO',
277 '--eventcontent':
'RECOSIM,DQM',
280 step3_trackingOnly = upgradeWFs[
'trackingOnly'].step3
283 def setup__(self, step, stepName, stepDict, k, properties):
284 if 'Reco' in step
and stepDict[step][k][
'--era']==
'Run2_2017':
285 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2017_trackingRun2'}, stepDict[step][k]])
293 suffix =
'_trackingRun2',
298 def setup__(self, step, stepName, stepDict, k, properties):
299 if 'Reco' in step
and stepDict[step][k][
'--era']==
'Run2_2017':
300 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2017_trackingRun2'}, self.
step3, stepDict[step][k]])
301 elif 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@trackingOnlyDQM'}, stepDict[step][k]])
311 suffix =
'_trackingOnlyRun2',
314 upgradeWFs[
'trackingOnlyRun2'].step3 = upgradeWFs[
'trackingOnly'].step3
317 def setup__(self, step, stepName, stepDict, k, properties):
318 if 'Reco' in step
and stepDict[step][k][
'--era']==
'Run2_2017':
319 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2017_trackingLowPU'}, stepDict[step][k]])
327 suffix =
'_trackingLowPU',
332 def setup__(self, step, stepName, stepDict, k, properties):
333 if 'Reco' in step: stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
334 elif 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM'}, stepDict[step][k]])
336 return '2017' in key
or '2018' in key
or '2021' in key
or '2026' in key
348 suffix =
'_pixelTrackingOnly',
351 upgradeWFs[
'pixelTrackingOnly'].step3 = {
352 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
353 '--datatier':
'GEN-SIM-RECO,DQMIO',
354 '--eventcontent':
'RECOSIM,DQM',
358 def setup__(self, step, stepName, stepDict, k, properties):
359 if 'Digi' in step: stepDict[stepName][k] =
merge([self.
step2, stepDict[step][k]])
360 if 'Reco' in step: stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
362 return '2017' in key
or '2021' in key
372 suffix =
'_trackingMkFit',
375 upgradeWFs[
'trackingMkFit'].step2 = {
376 '--customise':
'RecoTracker/MkFit/customizeHLTIter0ToMkFit.customizeHLTIter0ToMkFit' 378 upgradeWFs[
'trackingMkFit'].step3 = {
379 '--procModifiers':
'trackingMkFit' 383 def setup__(self, step, stepName, stepDict, k, properties):
384 if 'Reco' in step
and stepDict[step][k][
'--era']==
'Run3':
385 stepDict[stepName][k] =
merge([{
'--era':
'Run3_ckfPixelLessStep'}, stepDict[step][k]])
395 suffix =
'_trackingRun3CkfPixelLessStep',
400 def setup__(self, step, stepName, stepDict, k, properties):
401 if 'Reco' in step
and stepDict[step][k][
'--era']==
'Run3':
402 stepDict[stepName][k] =
merge([{
'--era':
'Run3_ckfPixelLessStep'}, self.
step3, stepDict[step][k]])
403 elif 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@trackingOnlyDQM'}, stepDict[step][k]])
415 suffix =
'_trackingOnlyRun3CkfPixelLessStep',
418 upgradeWFs[
'trackingOnlyRun3CkfPixelLessStep'].step3 = upgradeWFs[
'trackingOnly'].step3
422 def setup_(self, step, stepName, stepDict, k, properties):
424 if 'ALCA' in step
or 'Nano'==step:
425 stepDict[stepName][k] =
None 426 elif 'Reco' in step
or 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'--procModifiers':
'seedingDeepCore'}, stepDict[step][k]])
427 def condition(self, fragment, stepList, key, hasHarvest):
428 result = (fragment==
"QCD_Pt_1800_2400_14" or fragment==
"TTbar_14TeV" )
and (
'2021' in key
or '2024' in key)
and hasHarvest
442 suffix =
'_seedingDeepCore',
448 def setup_(self, step, stepName, stepDict, k, properties):
449 stepDict[stepName][k] =
merge([{
'--procModifiers':
'vectorHits'}, stepDict[step][k]])
450 def condition(self, fragment, stepList, key, hasHarvest):
451 return fragment==
"TTbar_14TeV" and '2026' in key
461 suffix =
'_vectorHits',
467 def setup_(self, step, stepName, stepDict, k, properties):
468 if 'RecoGlobal' in step:
469 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
470 if 'HARVESTGlobal' in step:
471 stepDict[stepName][k] =
merge([self.
step4, stepDict[step][k]])
472 def condition(self, fragment, stepList, key, hasHarvest):
473 return (fragment==
"TTbar_14TeV" or 'CloseByPGun_CE' in fragment)
and '2026' in key
483 suffix =
'_ticl_clue3D',
486 upgradeWFs[
'ticl_clue3D'].step3 = {
'--procModifiers':
'clue3D'}
487 upgradeWFs[
'ticl_clue3D'].step4 = {
'--procModifiers':
'clue3D'}
490 def setup_(self, step, stepName, stepDict, k, properties):
491 if 'RecoGlobal' in step:
492 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
493 if 'HARVESTGlobal' in step:
494 stepDict[stepName][k] =
merge([self.
step4, stepDict[step][k]])
495 def condition(self, fragment, stepList, key, hasHarvest):
496 return (fragment==
"TTbar_14TeV" or 'CloseByPGun_CE' in fragment)
and '2026' in key
506 suffix =
'_ticl_FastJet',
509 upgradeWFs[
'ticl_FastJet'].step3 = {
'--procModifiers':
'fastJetTICL'}
510 upgradeWFs[
'ticl_FastJet'].step4 = {
'--procModifiers':
'fastJetTICL'}
514 def setup_(self, step, stepName, stepDict, k, properties):
515 stepDict[stepName][k] =
merge([{
'--procModifiers':
'trackdnn'}, stepDict[step][k]])
517 def condition(self, fragment, stepList, key, hasHarvest):
518 return fragment==
"TTbar_14TeV" and '2021' in key
528 suffix =
'_trackdnn',
535 def setup_(self, step, stepName, stepDict, k, properties):
537 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
538 def condition(self, fragment, stepList, key, hasHarvest):
539 return (fragment==
"TTbar_14TeV" or fragment==
"QCD_FlatPt_15_3000HS_14")
and '2021PU' in key
553 upgradeWFs[
'mlpf'].step3 = {
554 '--datatier':
'GEN-SIM-RECO,RECOSIM,MINIAODSIM,NANOAODSIM,DQMIO',
555 '--eventcontent':
'FEVTDEBUGHLT,RECOSIM,MINIAODSIM,NANOEDMAODSIM,DQM',
556 '--procModifiers':
'mlpf' 561 def setup_(self, step, stepName, stepDict, k, properties):
563 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
564 def condition(self, fragment, stepList, key, hasHarvest):
565 return '2018' in key
and "SingleGamma" in fragment
578 suffix =
'_photonDRN',
581 upgradeWFs[
'photonDRN'].step3 = {
582 '--procModifiers':
'enableSonicTriton,photonDRN' 591 def __init__(self, digi = {}, reco = {}, harvest = {}, **kwargs):
593 super(PatatrackWorkflow, self).
__init__(
613 '--datatier':
'GEN-SIM-RECO,DQMIO',
614 '--eventcontent':
'RECOSIM,DQM' 618 def condition(self, fragment, stepList, key, hasHarvest):
621 (
'2018' in key
and fragment ==
"TTbar_13"),
622 (
'2021' in key
and fragment ==
"TTbar_14TeV"),
623 (
'2018' in key
and fragment ==
"ZMM_13"),
624 (
'2021' in key
and fragment ==
"ZMM_14"),
625 (
'2026D88' in key
and fragment ==
"TTbar_14TeV" and "PixelOnly" in self.
suffix)
627 result =
any(selected)
and hasHarvest
631 def setup_(self, step, stepName, stepDict, k, properties):
633 if 'ALCA' in step
or 'Nano'==step:
634 stepDict[stepName][k] =
None 637 stepDict[stepName][k] =
None 639 stepDict[stepName][k] =
merge([self.
__digi, stepDict[step][k]])
642 stepDict[stepName][k] =
None 644 stepDict[stepName][k] =
merge([self.
__reco, stepDict[step][k]])
645 elif 'HARVEST' in step:
647 stepDict[stepName][k] =
None 649 stepDict[stepName][k] =
merge([self.
__harvest, stepDict[step][k]])
660 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
661 '--procModifiers':
'pixelNtupletFit' 664 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' 666 suffix =
'Patatrack_PixelOnlyCPU',
677 '--procModifiers':
'gpu' 680 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
681 '--procModifiers':
'pixelNtupletFit,gpu' 684 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' 686 suffix =
'Patatrack_PixelOnlyGPU',
697 '--accelerators':
'gpu-nvidia',
698 '--procModifiers':
'gpu' 701 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
702 '--accelerators':
'gpu-nvidia',
703 '--procModifiers':
'pixelNtupletFit,gpuValidation' 706 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM',
707 '--procModifiers':
'gpuValidation' 709 suffix =
'Patatrack_PixelOnlyGPU_Validation',
719 '--procModifiers':
'gpu' 722 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly',
723 '--procModifiers':
'pixelNtupletFit,gpu',
724 '--customise' :
'RecoTracker/Configuration/customizePixelOnlyForProfiling.customizePixelOnlyForProfilingGPUOnly' 727 suffix =
'Patatrack_PixelOnlyGPU_Profiling',
740 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
741 '--procModifiers':
'pixelNtupletFit',
742 '--customise' :
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 745 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' 747 suffix =
'Patatrack_PixelOnlyTripletsCPU',
758 '--procModifiers':
'gpu' 761 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
762 '--procModifiers':
'pixelNtupletFit,gpu',
763 '--customise':
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 766 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' 768 suffix =
'Patatrack_PixelOnlyTripletsGPU',
779 '--accelerators':
'gpu-nvidia',
780 '--procModifiers':
'gpu' 783 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
784 '--accelerators':
'gpu-nvidia',
785 '--procModifiers':
'pixelNtupletFit,gpuValidation',
786 '--customise':
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 789 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM',
790 '--procModifiers':
'gpuValidation',
792 suffix =
'Patatrack_PixelOnlyTripletsGPU_Validation',
802 '--procModifiers':
'gpu' 805 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly',
806 '--procModifiers':
'pixelNtupletFit,gpu',
807 '--customise':
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets,RecoTracker/Configuration/customizePixelOnlyForProfiling.customizePixelOnlyForProfilingGPUOnly' 810 suffix =
'Patatrack_PixelOnlyTripletsGPU_Profiling',
823 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly',
826 '-s':
'HARVESTING:@ecalOnlyValidation+@ecal' 828 suffix =
'Patatrack_ECALOnlyCPU',
839 '--procModifiers':
'gpu' 842 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly',
843 '--procModifiers':
'gpu' 846 '-s':
'HARVESTING:@ecalOnlyValidation+@ecal' 848 suffix =
'Patatrack_ECALOnlyGPU',
859 '--accelerators':
'gpu-nvidia',
860 '--procModifiers':
'gpu' 863 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly',
864 '--accelerators':
'gpu-nvidia',
865 '--procModifiers':
'gpuValidation' 868 '-s':
'HARVESTING:@ecalOnlyValidation+@ecal' 870 suffix =
'Patatrack_ECALOnlyGPU_Validation',
880 '--procModifiers':
'gpu' 883 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly',
884 '--procModifiers':
'gpu',
885 '--customise' :
'RecoLocalCalo/Configuration/customizeEcalOnlyForProfiling.customizeEcalOnlyForProfilingGPUOnly' 888 suffix =
'Patatrack_ECALOnlyGPU_Profiling',
901 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only',
904 '-s':
'HARVESTING:@hcalOnlyValidation+@hcalOnly+@hcal2Only' 906 suffix =
'Patatrack_HCALOnlyCPU',
917 '--procModifiers':
'gpu' 920 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only',
921 '--procModifiers':
'gpu' 924 '-s':
'HARVESTING:@hcalOnlyValidation+@hcalOnly+@hcal2Only' 926 suffix =
'Patatrack_HCALOnlyGPU',
937 '--accelerators':
'gpu-nvidia',
938 '--procModifiers':
'gpu' 941 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only',
942 '--accelerators':
'gpu-nvidia',
943 '--procModifiers':
'gpuValidation' 946 '-s':
'HARVESTING:@hcalOnlyValidation+@hcal' 948 suffix =
'Patatrack_HCALOnlyGPU_Validation',
958 '--procModifiers':
'gpu' 961 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly',
962 '--procModifiers':
'gpu',
963 '--customise' :
'RecoLocalCalo/Configuration/customizeHcalOnlyForProfiling.customizeHcalOnlyForProfilingGPUOnly' 966 suffix =
'Patatrack_HCALOnlyGPU_Profiling',
979 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
980 '--procModifiers':
'pixelNtupletFit' 983 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' 985 suffix =
'Patatrack_AllCPU',
996 '--procModifiers':
'gpu' 999 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1000 '--procModifiers':
'pixelNtupletFit,gpu' 1003 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' 1005 suffix =
'Patatrack_AllGPU',
1016 '--accelerators':
'gpu-nvidia',
1017 '--procModifiers':
'gpu' 1020 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1021 '--accelerators':
'gpu-nvidia',
1022 '--procModifiers':
'pixelNtupletFit,gpuValidation' 1025 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only',
1026 '--procModifiers':
'gpuValidation' 1028 suffix =
'Patatrack_AllGPU_Validation',
1046 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1047 '--procModifiers':
'pixelNtupletFit' 1050 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' 1052 suffix =
'Patatrack_AllTripletsCPU',
1063 '--procModifiers':
'gpu' 1066 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1067 '--procModifiers':
'pixelNtupletFit,gpu' 1070 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' 1072 suffix =
'Patatrack_AllTripletsGPU',
1083 '--accelerators':
'gpu-nvidia',
1084 '--procModifiers':
'gpu' 1087 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1088 '--accelerators':
'gpu-nvidia',
1089 '--procModifiers':
'pixelNtupletFit,gpuValidation' 1092 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only',
1093 '--procModifiers':
'gpuValidation' 1095 suffix =
'Patatrack_AllTripletsGPU_Validation',
1114 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1115 '--procModifiers':
'pixelNtupletFit' 1120 suffix =
'Patatrack_FullRecoCPU',
1131 '--procModifiers':
'gpu' 1135 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1136 '--procModifiers':
'pixelNtupletFit,gpu' 1141 suffix =
'Patatrack_FullRecoGPU',
1152 '--accelerators':
'gpu-nvidia',
1153 '--procModifiers':
'gpu' 1157 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1158 '--accelerators':
'gpu-nvidia',
1159 '--procModifiers':
'pixelNtupletFit,gpuValidation' 1164 suffix =
'Patatrack_FullRecoGPU_Validation',
1178 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1179 '--procModifiers':
'pixelNtupletFit',
1180 '--customise' :
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 1185 suffix =
'Patatrack_FullRecoTripletsCPU',
1196 '--procModifiers':
'gpu' 1200 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1201 '--procModifiers':
'pixelNtupletFit,gpu',
1202 '--customise':
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 1207 suffix =
'Patatrack_FullRecoTripletsGPU',
1218 '--accelerators':
'gpu-nvidia',
1219 '--procModifiers':
'gpu' 1223 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1224 '--accelerators':
'gpu-nvidia',
1225 '--procModifiers':
'pixelNtupletFit,gpuValidation',
1226 '--customise' :
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 1231 suffix =
'Patatrack_FullRecoTripletsGPU_Validation',
1239 def setup_(self, step, stepName, stepDict, k, properties):
1240 if 'GenSimHLBeamSpot14' in step:
1241 stepDict[stepName][k] =
merge([{
'--eventcontent':
'RAWSIM',
'--datatier':
'GEN-SIM'},stepDict[step][k]])
1242 elif 'Digi' in step
and 'Trigger' not in step:
1243 stepDict[stepName][k] =
merge([{
'-s':
'DIGI,L1,DIGI2RAW,HLT:@relval2022',
'--datatier':
'GEN-SIM-RAW',
'--eventcontent':
'RAWSIM'}, stepDict[step][k]])
1244 elif 'DigiTrigger' in step:
1245 stepDict[stepName][k] =
merge([{
'-s':
'DIGI,L1TrackTrigger,L1,DIGI2RAW,HLT:@fake2',
'--datatier':
'GEN-SIM-RAW',
'--eventcontent':
'RAWSIM'}, stepDict[step][k]])
1246 elif 'Reco' in step:
1247 stepDict[stepName][k] =
merge([{
'-s':
'RAW2DIGI,L1Reco,RECO,RECOSIM',
'--datatier':
'AODSIM',
'--eventcontent':
'AODSIM'}, stepDict[step][k]])
1248 elif 'MiniAOD' in step:
1250 stepDict[stepName][k] = deepcopy(stepDict[step][k])
1251 elif 'ALCA' in step
or 'HARVEST' in step:
1253 stepDict[stepName][k] =
None 1255 stepDict[stepName][k] =
merge([{
'--filein':
'file:step4.root',
'-s':
'NANO',
'--datatier':
'NANOAODSIM',
'--eventcontent':
'NANOEDMAODSIM'}, stepDict[step][k]])
1257 return fragment==
"TTbar_14TeV" and (
'2026' in key
or '2021' in key)
1260 'GenSimHLBeamSpot14',
1274 'GenSimHLBeamSpot14',
1287 suffix =
'_ProdLike',
1292 def setup_(self, step, stepName, stepDict, k, properties):
1293 if 'HARVEST' in step:
1294 stepDict[stepName][k] =
merge([{
'--filein':
'file:step3_inDQM.root'}, stepDict[step][k]])
1296 stepDict[stepName][k] =
merge([stepDict[step][k]])
1298 return fragment==
"TTbar_14TeV" and '2026' in key
1301 'GenSimHLBeamSpot14',
1308 'GenSimHLBeamSpot14',
1314 suffix =
'_HLT75e33',
1319 def setup_(self, step, stepName, stepDict, k, properties):
1320 if 'GenSim' in step:
1321 custNew =
"SimG4Core/Application/NeutronBGforMuonsXS_cff.customise" 1323 custNew =
"SLHCUpgradeSimulations/Configuration/customise_mixing.customise_Mix_LongLived_Neutrons" 1324 stepDict[stepName][k] = deepcopy(stepDict[step][k])
1325 if '--customise' in stepDict[stepName][k].
keys():
1326 stepDict[stepName][k][
'--customise'] +=
","+custNew
1328 stepDict[stepName][k][
'--customise'] = custNew
1335 'GenSimHLBeamSpot14',
1343 suffix =
'_Neutron',
1347 upgradeWFs[
'Neutron'].neutronKeys = [x
for x
in upgradeKeys[2026]
if 'PU' not in x]
1348 upgradeWFs[
'Neutron'].neutronFrags = [
'ZMM_14',
'MinBias_14TeV']
1351 def setup_(self, step, stepName, stepDict, k, properties):
1352 stepDict[stepName][k] =
merge([{
'--procModifiers':
'run2_HECollapse_2018'}, stepDict[step][k]])
1354 return fragment==
"TTbar_13" and '2018' in key
1368 suffix =
'_heCollapse',
1373 def setup_(self, step, stepName, stepDict, k, properties):
1375 mods = {
'--era': stepDict[step][k][
'--era']+
',phase2_ecal_devel'}
1377 mods[
'-s'] =
'DIGI:pdigi_valid,DIGI2RAW' 1378 elif 'Reco' in step:
1379 mods[
'-s'] =
'RAW2DIGI,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly' 1380 mods[
'--datatier'] =
'GEN-SIM-RECO,DQMIO' 1381 mods[
'--eventcontent'] =
'FEVTDEBUGHLT,DQM' 1382 elif 'HARVEST' in step:
1383 mods[
'-s'] =
'HARVESTING:@ecalOnlyValidation+@ecal' 1384 stepDict[stepName][k] =
merge([mods, stepDict[step][k]])
1386 return fragment==
"TTbar_14TeV" and '2026' in key
1398 suffix =
'_ecalDevel',
1403 def setup_(self, step, stepName, stepDict, k, properties):
1404 myGT=stepDict[step][k][
'--conditions']
1406 stepDict[stepName][k] =
merge([{
'-n':
'1',
'--magField':
'0T',
'--conditions':myGT}, stepDict[step][k]])
1407 def setupPU_(self, step, stepName, stepDict, k, properties):
1409 stepDict[stepName][k] =
merge([{
'-n':
'1'}, stepDict[step][k]])
1411 return (fragment==
"TTbar_13" or fragment==
"TTbar_14TeV")
and (
'2017' in key
or '2018' in key
or '2021' in key)
1434 def setup_(self, step, stepName, stepDict, k, properties):
1435 if 'Reco' in step
and 'Run2_2018' in stepDict[step][k][
'--era']:
1436 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2018,bParking'}, stepDict[step][k]])
1438 return fragment==
"TTbar_13" and '2018' in key
1444 suffix =
'_ParkingBPH',
1449 def setup_(self, step, stepName, stepDict, k, properties):
1451 stepDict[stepName][k] =
merge([{
'--customise':
'PhysicsTools/NanoAOD/custom_jme_cff.PrepJMECustomNanoAOD_MC'}, stepDict[step][k]])
1453 return fragment==
"TTbar_13" and (
'2017' in key
or '2018' in key)
1459 suffix =
'_JMENano',
1466 def setup_(self, step, stepName, stepDict, k, properties):
1467 if 'Digi' in step
or 'Reco' in step:
1468 stepDict[stepName][k] =
merge([{
'--customise':
'SLHCUpgradeSimulations/Configuration/aging.customise_aging_'+self.
lumi}, stepDict[step][k]])
1470 return fragment==
"TTbar_14TeV" and '2026' in key
1487 suffix =
'Aging1000',
1490 upgradeWFs[
'Aging1000'].lumi =
'1000' 1491 upgradeWFs[
'Aging3000'] = deepcopy(upgradeWFs[
'Aging1000'])
1492 upgradeWFs[
'Aging3000'].suffix =
'Aging3000' 1493 upgradeWFs[
'Aging3000'].offset = 0.103
1494 upgradeWFs[
'Aging3000'].lumi =
'3000' 1501 def setup_(self, step, stepName, stepDict, k, properties):
1503 stepDict[stepName][k] =
merge([{
'--customise':
'SimTracker/SiPhase2Digitizer/customizeForOTInefficiency.customizeSiPhase2OTInefficiency'+self.
percent+
'Percent'}, stepDict[step][k]])
1505 return fragment==
"TTbar_14TeV" and '2026' in key
1516 suffix =
'_OTInefficiency',
1519 upgradeWFs[
'OTInefficiency'].percent =
'Zero' 1522 upgradeWFs[
'OTInefficiency1PC'] = deepcopy(upgradeWFs[
'OTInefficiency'])
1523 upgradeWFs[
'OTInefficiency1PC'].suffix =
'_OTInefficiency1PC' 1524 upgradeWFs[
'OTInefficiency1PC'].offset = 0.112
1525 upgradeWFs[
'OTInefficiency1PC'].percent =
'One' 1528 upgradeWFs[
'OTInefficiency5PC'] = deepcopy(upgradeWFs[
'OTInefficiency'])
1529 upgradeWFs[
'OTInefficiency5PC'].suffix =
'_OTInefficiency5PC' 1530 upgradeWFs[
'OTInefficiency5PC'].offset = 0.113
1531 upgradeWFs[
'OTInefficiency5PC'].percent =
'Five' 1534 upgradeWFs[
'OTInefficiency10PC'] = deepcopy(upgradeWFs[
'OTInefficiency'])
1535 upgradeWFs[
'OTInefficiency10PC'].suffix =
'_OTInefficiency10PC' 1536 upgradeWFs[
'OTInefficiency10PC'].offset = 0.114
1537 upgradeWFs[
'OTInefficiency10PC'].percent =
'Ten' 1545 digiPremixLocalPileup = {
1546 "--filein":
"file:step1.root",
1547 "--pileup_input":
"file:step2.root" 1552 def setup_(self, step, stepName, stepDict, k, properties):
1554 stepDict[stepName][k] =
merge([stepDict[step][k]])
1555 def setupPU_(self, step, stepName, stepDict, k, properties):
1557 if "GenSim" in stepName:
1558 stepNamePmx = stepName.replace(
'GenSim',
'Premix')
1559 if not stepNamePmx
in stepDict: stepDict[stepNamePmx] = {}
1560 stepDict[stepNamePmx][k] =
merge([
1562 '-s':
'GEN,SIM,DIGI:pdigi_valid',
1563 '--datatier':
'PREMIX',
1564 '--eventcontent':
'PREMIX',
1565 '--procModifiers':
'premix_stage1' 1567 stepDict[stepName][k]
1569 if "ProdLike" in self.
suffix:
1570 stepDict[stepNamePmx][k] =
merge([{
'-s':
'GEN,SIM,DIGI'},stepDict[stepNamePmx][k]])
1572 elif "Digi" in step
or "Reco" in step:
1575 if d
is None:
return 1578 for s
in d[
"-s"].
split(
","):
1579 if s ==
"DIGI" or "DIGI:" in s:
1580 tmpsteps.extend([s,
"DATAMIX"])
1584 "--datamix" :
"PreMix",
1585 "--procModifiers":
"premix_stage2"},
1588 if "_PMXS1S2" in self.
suffix:
1589 d =
merge([digiPremixLocalPileup, d])
1590 elif "Reco" in step:
1591 if "--procModifiers" in d:
1592 d[
"--procModifiers"] +=
",premix_stage2" 1594 d[
"--procModifiers"] =
"premix_stage2" 1595 stepDict[stepName][k] = d
1601 filein = d[
"--filein"]
1602 m = re.search(
"step(?P<ind>\d+)_", filein)
1604 d[
"--filein"] = filein.replace(m.group(),
"step%d_"%(
int(m.group(
"ind"))+1))
1605 stepDict[stepName][k] = d
1611 if not any(y
in key
for y
in [
'2021',
'2023',
'2024',
'2026']):
1613 if self.
suffix.endswith(
"S1"):
1614 return "NuGun" in fragment
1616 def workflow_(self, workflows, num, fragment, stepList, key):
1617 fragmentTmp = fragment
1618 if self.
suffix.endswith(
"S1"):
1619 fragmentTmp =
'PREMIXUP' + key[2:].
replace(
"PU",
"").
replace(
"Design",
"") +
'_PU25' 1620 super(UpgradeWorkflowPremix,self).
workflow_(workflows, num, fragmentTmp, stepList, key)
1628 'GenSimHLBeamSpot14',
1654 'GenSimHLBeamSpot14',
1663 suffix =
'_PMXS1S2',
1668 def setupPU_(self, step, stepName, stepDict, k, properties):
1670 if '--pileup' in stepDict[stepName][k]:
1671 stepDict[stepName][k][
'--pileup'] =
'AVE_50_BX_25ns_m3p3' 1672 super(UpgradeWorkflowAdjustPU,self).
setupPU_(step, stepName, stepDict, k, properties)
1675 return super(UpgradeWorkflowAdjustPU,self).
condition(fragment, stepList, key, hasHarvest)
and '2026' in key
1681 'GenSimHLBeamSpot14',
1691 suffix =
'_PMXS1S2PR',
1696 def setup_(self, step, stepName, stepDict, k, properties):
1698 UpgradeWorkflowPremix.setup_(self, step, stepName, stepDict, k, properties)
1699 UpgradeWorkflow_ProdLike.setup_(self, step, stepName, stepDict, k, properties)
1704 for s
in d[
"-s"].
split(
","):
1705 if "DIGI:pdigi_valid" in s:
1706 tmpsteps.append(
"DIGI")
1710 "--eventcontent":
"PREMIXRAW"},
1712 stepDict[stepName][k] = d
1714 stepDict[stepName][k] =
merge([{
'--filein':
'file:step5.root',
'-s':
'NANO',
'--datatier':
'NANOAODSIM',
'--eventcontent':
'NANOEDMAODSIM'}, stepDict[step][k]])
1717 return UpgradeWorkflowPremix.condition(self, fragment, stepList, key, hasHarvest)
and UpgradeWorkflow_ProdLike.condition(self, fragment, stepList, key, hasHarvest)
1735 suffix =
'_PMXS2ProdLike',
1744 'GenSimHLBeamSpot14',
1758 suffix =
'_PMXS1S2ProdLike',
1763 def setup_(self, step, stepName, stepDict, k, properties):
1764 if 'GenSim' in step:
1765 stepDict[stepName][k] =
merge([{
'-s':
'GEN,SIM,RECOBEFMIX,DIGI:pdigi_valid,L1,DIGI2RAW,L1Reco,RECO,PAT,VALIDATION:@standardValidation,DQM:@standardDQMFS',
1767 '--era':
'Run3_FastSim',
1768 '--eventcontent':
'FEVTDEBUGHLT,MINIAODSIM,DQM',
1769 '--datatier':
'GEN-SIM-DIGI-RECO,MINIAODSIM,DQMIO',
1770 '--relval':
'27000,3000'}, stepDict[step][k]])
1771 if 'Digi' in step
or 'RecoNano' in step
or 'ALCA' in step:
1772 stepDict[stepName][k] =
None 1773 if 'HARVESTNano' in step:
1774 stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:validationHarvesting',
1776 '--era':
'Run3_FastSim',
1777 '--filein':
'file:step1_inDQM.root'}, stepDict[step][k]])
1779 return '2021' in key
1794 def setup_(self, step, stepName, stepDict, k, properties):
1795 if 'GenSim' in step:
1796 stepDict[stepName][k] =
merge([{
'-s':
'GEN,SIM,RECOBEFMIX,DIGI:pdigi_valid,L1,DIGI2RAW,L1Reco,RECO,PAT,VALIDATION:@trackingOnlyValidation',
1798 '--era':
'Run3_FastSim',
1799 '--eventcontent':
'FEVTDEBUGHLT,MINIAODSIM,DQM',
1800 '--datatier':
'GEN-SIM-DIGI-RECO,MINIAODSIM,DQMIO',
1801 '--relval':
'27000,3000'}, stepDict[step][k]])
1802 if 'Digi' in step
or 'RecoNano' in step
or 'ALCA' in step:
1803 stepDict[stepName][k] =
None 1804 if 'HARVESTNano' in step:
1805 stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@trackingOnlyDQM',
1807 '--era':
'Run3_FastSim',
1808 '--filein':
'file:step1_inDQM.root'}, stepDict[step][k]])
1810 return '2021' in key
1820 suffix =
'_Run3FSTrackingOnly',
1825 def setup_(self, step, stepName, stepDict, k, properties):
1826 if 'GenSim' in step:
1827 stepDict[stepName][k] =
merge([{
'-s':
'GEN,SIM,RECOBEFMIX',
1829 '--era':
'Run3_FastSim',
1830 '--eventcontent':
'FASTPU',
1831 '--datatier':
'GEN-SIM-RECO',
1832 '--relval':
'27000,3000'}, stepDict[step][k]])
1833 if 'Digi' in step
or 'RecoNano' in step
or 'ALCA' in step
or 'HARVESTNano' in step:
1834 stepDict[stepName][k] =
None 1836 return '2021' in key
and fragment==
"MinBias_14TeV" 1846 suffix =
'_Run3FSMBMixing',
1851 def setup_(self, step, stepName, stepDict, k, properties):
1852 if 'Run3' in stepDict[step][k][
'--era']:
1853 stepDict[stepName][k] =
merge([{
'--geometry':
'DD4hepExtended2021'}, stepDict[step][k]])
1854 elif 'Phase2' in stepDict[step][k][
'--era']:
1856 dd4hepGeom+=stepDict[step][k][
'--geometry']
1857 stepDict[stepName][k] =
merge([{
'--geometry' : dd4hepGeom,
'--procModifiers':
'dd4hep'}, stepDict[step][k]])
1859 return '2021' in key
or '2026' in key
1864 'GenSimHLBeamSpot14',
1879 upgradeWFs[
'DD4hep'].allowReuse =
False 1884 def setup_(self, step, stepName, stepDict, k, properties):
1885 if 'Run3' in stepDict[step][k][
'--era']:
1886 stepDict[stepName][k] =
merge([{
'--conditions':
'auto:phase1_2022_realistic',
'--geometry':
'DB:Extended'}, stepDict[step][k]])
1888 return '2021' in key
1893 'GenSimHLBeamSpot14',
1905 suffix =
'_DD4hepDB',
1908 upgradeWFs[
'DD4hepDB'].allowReuse =
False 1911 def setup_(self, step, stepName, stepDict, k, properties):
1912 if 'Run3' in stepDict[step][k][
'--era']:
1914 tmp_eras = stepDict[step][k][
'--era'].
split(
',')
1915 tmp_eras[tmp_eras.index(
"Run3")] =
'Run3_DDD' 1916 tmp_eras =
','.
join(tmp_eras)
1917 stepDict[stepName][k] =
merge([{
'--conditions':
'auto:phase1_2022_realistic_ddd',
'--geometry':
'DB:Extended',
'--era': tmp_eras}, stepDict[step][k]])
1919 return '2021' in key
1924 'GenSimHLBeamSpot14',
1939 upgradeWFs[
'DDDDB'].allowReuse =
False 1942 def setup_(self, step, stepName, stepDict, k, properties):
1943 stepDict[stepName][k] =
merge([{
'--procModifiers':
'allSonicTriton'}, stepDict[step][k]])
1945 return (fragment==
'TTbar_13' and '2021' in key) \
1946 or (fragment==
'TTbar_14TeV' and '2026' in key)
1951 'GenSimHLBeamSpot14',
1965 'GenSimHLBeamSpot14',
1976 suffix =
'_SonicTriton',
1981 offsets = [specialWF.offset
for specialType,specialWF
in upgradeWFs.items()]
1983 dups = set(x
for x
in offsets
if x
in seen
or seen.add(x))
1985 raise ValueError(
"Duplicate special workflow offsets not allowed: "+
','.
join([
str(x)
for x
in dups]))
1987 upgradeProperties = {}
1989 upgradeProperties[2017] = {
1991 'Geom' :
'DB:Extended',
1992 'GT' :
'auto:phase1_2017_realistic',
1993 'HLTmenu':
'@relval2017',
1994 'Era' :
'Run2_2017',
1995 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT',
'ALCA',
'Nano'],
1998 'Geom' :
'DB:Extended',
1999 'GT' :
'auto:phase1_2017_design',
2000 'HLTmenu':
'@relval2017',
2001 'Era' :
'Run2_2017',
2002 'BeamSpot':
'GaussSigmaZ4cm',
2003 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT'],
2006 'Geom' :
'DB:Extended',
2007 'GT' :
'auto:phase1_2018_realistic',
2008 'HLTmenu':
'@relval2018',
2009 'Era' :
'Run2_2018',
2010 'BeamSpot':
'Realistic25ns13TeVEarly2018Collision',
2011 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT',
'ALCA',
'Nano'],
2014 'Geom' :
'DB:Extended',
2015 'GT' :
'auto:phase1_2018_design',
2016 'HLTmenu':
'@relval2018',
2017 'Era' :
'Run2_2018',
2018 'BeamSpot':
'GaussSigmaZ4cm',
2019 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT'],
2022 'Geom' :
'DB:Extended',
2023 'GT' :
'auto:phase1_2022_realistic',
2024 'HLTmenu':
'@relval2022',
2026 'BeamSpot':
'Run3RoundOptics25ns13TeVLowSigmaZ',
2027 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
2030 'Geom' :
'DB:Extended',
2031 'GT' :
'auto:phase1_2022_design',
2032 'HLTmenu':
'@relval2022',
2034 'BeamSpot':
'GaussSigmaZ4cm',
2035 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano'],
2038 'Geom' :
'DB:Extended',
2039 'GT' :
'auto:phase1_2023_realistic',
2040 'HLTmenu':
'@relval2022',
2042 'BeamSpot':
'Run3RoundOptics25ns13TeVLowSigmaZ',
2043 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
2046 'Geom' :
'DB:Extended',
2047 'GT' :
'auto:phase1_2024_realistic',
2048 'HLTmenu':
'@relval2022',
2050 'BeamSpot':
'Run3RoundOptics25ns13TeVLowSigmaZ',
2051 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
2056 for key
in list(upgradeProperties[2017].
keys()):
2057 upgradeProperties[2017][key+
'PU'] = deepcopy(upgradeProperties[2017][key])
2058 upgradeProperties[2017][key+
'PU'][
'ScenToRun'] = [
'GenSim',
'DigiPU'] + \
2059 ([
'RecoNanoPU',
'HARVESTNanoPU']
if '202' in key
else [
'RecoFakeHLTPU',
'HARVESTFakeHLTPU']) + \
2060 ([
'Nano']
if 'Nano' in upgradeProperties[2017][key][
'ScenToRun']
else [])
2062 upgradeProperties[2026] = {
2064 'Geom' :
'Extended2026D49',
2065 'HLTmenu':
'@fake2',
2066 'GT' :
'auto:phase2_realistic_T15',
2068 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2071 'Geom' :
'Extended2026D60',
2072 'HLTmenu':
'@fake2',
2073 'GT' :
'auto:phase2_realistic_T15',
2074 'Era' :
'Phase2C10',
2075 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2078 'Geom' :
'Extended2026D68',
2079 'HLTmenu':
'@fake2',
2080 'GT' :
'auto:phase2_realistic_T21',
2081 'Era' :
'Phase2C11',
2082 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2085 'Geom' :
'Extended2026D70',
2086 'HLTmenu':
'@fake2',
2087 'GT' :
'auto:phase2_realistic_T21',
2088 'Era' :
'Phase2C11',
2089 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2092 'Geom' :
'Extended2026D76',
2093 'HLTmenu':
'@fake2',
2094 'GT' :
'auto:phase2_realistic_T21',
2095 'Era' :
'Phase2C11I13M9',
2096 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2099 'Geom' :
'Extended2026D77',
2100 'HLTmenu':
'@fake2',
2101 'GT' :
'auto:phase2_realistic_T21',
2102 'Era' :
'Phase2C11I13M9',
2103 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2106 'Geom' :
'Extended2026D78',
2107 'HLTmenu':
'@fake2',
2108 'GT' :
'auto:phase2_realistic_T22',
2109 'ProcessModifier':
'PixelCPEGeneric',
2110 'Era' :
'Phase2C11I13T22M9',
2111 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2114 'Geom' :
'Extended2026D79',
2115 'HLTmenu':
'@fake2',
2116 'GT' :
'auto:phase2_realistic_T23',
2117 'Era' :
'Phase2C11I13T23M9',
2118 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2121 'Geom' :
'Extended2026D80',
2122 'HLTmenu':
'@fake2',
2123 'GT' :
'auto:phase2_realistic_T25',
2124 'Era' :
'Phase2C11I13T25M9',
2125 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2128 'Geom' :
'Extended2026D81',
2129 'HLTmenu':
'@fake2',
2130 'GT' :
'auto:phase2_realistic_T26',
2131 'Era' :
'Phase2C11I13T26M9',
2132 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2135 'Geom' :
'Extended2026D82',
2136 'HLTmenu':
'@fake2',
2137 'GT' :
'auto:phase2_realistic_T21',
2138 'Era' :
'Phase2C11I13M9',
2139 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2142 'Geom' :
'Extended2026D83',
2143 'HLTmenu':
'@fake2',
2144 'GT' :
'auto:phase2_realistic_T21',
2145 'Era' :
'Phase2C11I13M9',
2146 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2149 'Geom' :
'Extended2026D84',
2150 'HLTmenu':
'@fake2',
2151 'GT' :
'auto:phase2_realistic_T21',
2152 'Era' :
'Phase2C11',
2153 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2156 'Geom' :
'Extended2026D85',
2157 'HLTmenu':
'@fake2',
2158 'GT' :
'auto:phase2_realistic_T21',
2159 'Era' :
'Phase2C11I13M9',
2160 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2163 'Geom' :
'Extended2026D86',
2164 'HLTmenu':
'@fake2',
2165 'GT' :
'auto:phase2_realistic_T21',
2166 'Era' :
'Phase2C17I13M9',
2167 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2170 'Geom' :
'Extended2026D87',
2171 'HLTmenu':
'@fake2',
2172 'GT' :
'auto:phase2_realistic_T27',
2173 'Era' :
'Phase2C11I13T27M9',
2174 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2177 'Geom' :
'Extended2026D88',
2178 'HLTmenu':
'@fake2',
2179 'GT' :
'auto:phase2_realistic_T21',
2180 'Era' :
'Phase2C17I13M9',
2181 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2184 'Geom' :
'Extended2026D89',
2185 'HLTmenu':
'@fake2',
2186 'GT' :
'auto:phase2_realistic_T27',
2187 'Era' :
'Phase2C11I13T27M9',
2188 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2191 'Geom' :
'Extended2026D90',
2192 'HLTmenu':
'@fake2',
2193 'GT' :
'auto:phase2_realistic_T27',
2194 'Era' :
'Phase2C11I13T27M9',
2195 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2198 'Geom' :
'Extended2026D91',
2199 'HLTmenu':
'@fake2',
2200 'GT' :
'auto:phase2_realistic_T30',
2201 'Era' :
'Phase2C17I13M9',
2202 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2207 for key
in list(upgradeProperties[2026].
keys()):
2208 upgradeProperties[2026][key+
'PU'] = deepcopy(upgradeProperties[2026][key])
2209 upgradeProperties[2026][key+
'PU'][
'ScenToRun'] = [
'GenSimHLBeamSpot',
'DigiTriggerPU',
'RecoGlobalPU',
'HARVESTGlobalPU']
2212 defaultDataSets = {}
2213 for year
in upgradeKeys:
2214 for key
in upgradeKeys[year]:
2215 if 'PU' in key:
continue 2216 defaultDataSets[key] =
'' 2224 upgradeFragments = OrderedDict([
2226 (
'SingleElectronPt10_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronPt10')),
2227 (
'SingleElectronPt35_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronPt35')),
2228 (
'SingleElectronPt1000_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SingleElectronPt1000')),
2235 (
'FourMuExtendedPt_1_200_pythia8_cfi',
UpgradeFragment(
Kby(10,100),
'FourMuExtendedPt1_200')),
2236 (
'TenMuExtendedE_0_200_pythia8_cfi',
UpgradeFragment(
Kby(10,100),
'TenMuExtendedE_0_200')),
2237 (
'DoubleElectronPt10Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElPt10Extended')),
2238 (
'DoubleElectronPt35Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElPt35Extended')),
2239 (
'DoubleElectronPt1000Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SingleElPt1000Extended')),
2240 (
'DoubleGammaPt10Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleGammaPt10Extended')),
2241 (
'DoubleGammaPt35Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SingleGammaPt35Extended')),
2242 (
'DoubleMuPt1Extended_pythia8_cfi',
UpgradeFragment(
Kby(25,100),
'SingleMuPt1Extended')),
2243 (
'DoubleMuPt10Extended_pythia8_cfi',
UpgradeFragment(
Kby(25,100),
'SingleMuPt10Extended')),
2244 (
'DoubleMuPt100Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleMuPt100Extended')),
2245 (
'DoubleMuPt1000Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleMuPt1000Extended')),
2248 (
'MinBias_13TeV_pythia8_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(90,100),
'MinBias_13')),
2251 (
'QCD_Pt_600_800_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_600_800_13')),
2252 (
'Wjet_Pt_80_120_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'Wjet_Pt_80_120_14TeV')),
2253 (
'Wjet_Pt_3000_3500_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Wjet_Pt_3000_3500_14TeV')),
2255 (
'QCD_Pt_3000_3500_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_3000_3500_14TeV')),
2256 (
'QCD_Pt_80_120_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'QCD_Pt_80_120_14TeV')),
2257 (
'H200ChargedTaus_Tauola_14TeV_cfi',
UpgradeFragment(
Kby(9,100),
'Higgs200ChargedTaus_14TeV')),
2261 (
'ZTT_Tauola_All_hadronic_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,100),
'ZTT_14TeV')),
2262 (
'H130GGgluonfusion_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'H130GGgluonfusion_14TeV')),
2263 (
'PhotonJet_Pt_10_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'PhotonJets_Pt_10_14TeV')),
2264 (
'QQH1352T_Tauola_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'QQH1352T_Tauola_14TeV')),
2268 (
'QCDForPF_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(50,100),
'QCD_FlatPt_15_3000HS_14')),
2270 (
'DYToTauTau_M-50_14TeV_pythia8_tauola_cff',
UpgradeFragment(
Kby(9,100),
'DYtoTauTau_M_50_14TeV')),
2272 (
'QCD_Pt_80_120_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'QCD_Pt_80_120_13')),
2273 (
'H125GGgluonfusion_13TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'H125GGgluonfusion_13')),
2274 (
'QCD_Pt20toInf_MuEnrichedPt15_14TeV_TuneCP5_cff',
UpgradeFragment(
Kby(19565, 217391),
'QCD_Pt20toInfMuEnrichPt15_14')),
2276 (
'QCD_Pt15To7000_Flat_14TeV_TuneCP5_cff',
UpgradeFragment(
Kby(9,50),
'QCD_Pt15To7000_Flat_14')),
2277 (
'H125GGgluonfusion_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'H125GGgluonfusion_14')),
2278 (
'QCD_Pt_600_800_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_600_800_14')),
2281 (
'H200ChargedTaus_Tauola_13TeV_cfi',
UpgradeFragment(
Kby(9,50),
'Higgs200ChargedTaus_13')),
2282 (
'ADDMonoJet_13TeV_d3MD3_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'ADDMonoJet_d3MD3_13')),
2284 (
'QCD_Pt_3000_3500_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_3000_3500_13')),
2291 (
'PhotonJet_Pt_10_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'PhotonJets_Pt_10_13')),
2293 (
'Wjet_Pt_80_120_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Wjet_Pt_80_120_13')),
2294 (
'Wjet_Pt_3000_3500_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Wjet_Pt_3000_3500_13')),
2295 (
'SMS-T1tttt_mGl-1500_mLSP-100_13TeV-pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SMS-T1tttt_mGl-1500_mLSP-100_13')),
2296 (
'QCDForPF_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(50,100),
'QCD_FlatPt_15_3000HS_13')),
2297 (
'PYTHIA8_PhiToMuMu_TuneCUETP8M1_13TeV_cff',
UpgradeFragment(
Kby(9,50),
'PhiToMuMu_13')),
2298 (
'RSKKGluon_m3000GeV_13TeV_TuneCUETP8M1_cff',
UpgradeFragment(
Kby(9,50),
'RSKKGluon_m3000GeV_13')),
2302 (
'Upsilon1SToMuMu_forSTEAM_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Upsilon1SToMuMu_13')),
2303 (
'EtaBToJpsiJpsi_forSTEAM_TuneCUEP8M1_13TeV_cfi',
UpgradeFragment(
Kby(9,50),
'EtaBToJpsiJpsi_13')),
2304 (
'JpsiMuMu_Pt-8_forSTEAM_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(3100,100000),
'JpsiMuMu_Pt-8')),
2305 (
'BuMixing_BMuonFilter_forSTEAM_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(900,10000),
'BuMixing_13')),
2306 (
'HSCPstop_M_200_TuneCUETP8M1_13TeV_pythia8_cff',
UpgradeFragment(
Kby(9,50),
'HSCPstop_M_200_13')),
2307 (
'RSGravitonToGammaGamma_kMpl01_M_3000_TuneCUETP8M1_13TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'RSGravitonToGaGa_13')),
2308 (
'WprimeToENu_M-2000_TuneCUETP8M1_13TeV-pythia8_cff',
UpgradeFragment(
Kby(9,50),
'WpToENu_M-2000_13')),
2309 (
'DisplacedSUSY_stopToBottom_M_800_500mm_TuneCP5_13TeV_pythia8_cff',
UpgradeFragment(
Kby(9,50),
'DisplacedSUSY_stopToB_M_800_500mm_13')),
2311 (
'FlatRandomPtAndDxyGunProducer_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuonsDxy_0_500')),
2313 (
'SinglePiPt25Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SinglePiPt25Eta1p7_2p7')),
2314 (
'SingleMuPt15Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SingleMuPt15Eta1p7_2p7')),
2315 (
'SingleGammaPt25Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SingleGammaPt25Eta1p7_2p7')),
2316 (
'SingleElectronPt15Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronPt15Eta1p7_2p7')),
2318 (
'CloseByParticle_Photon_ERZRanges_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByParticleGun')),
2319 (
'CE_E_Front_300um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_E_Front_300um')),
2320 (
'CE_E_Front_200um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_E_Front_200um')),
2321 (
'CE_E_Front_120um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_E_Front_120um')),
2325 (
'CE_H_Coarse_Scint_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_H_Coarse_Scint')),
2326 (
'CE_H_Coarse_300um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_H_Coarse_300um')),
2327 (
'SingleElectronFlatPt2To100_cfi',
UpgradeFragment(
Kby(9,100),
'SingleEFlatPt2To100')),
2330 (
'SingleGammaFlatPt8To150_cfi',
UpgradeFragment(
Kby(9,100),
'SingleGammaFlatPt8To150')),
2333 (
'FlatRandomPtAndDxyGunProducer_MuPt2To10_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt2To10')),
2334 (
'FlatRandomPtAndDxyGunProducer_MuPt10To30_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt10To30')),
2335 (
'FlatRandomPtAndDxyGunProducer_MuPt30To100_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt30To100')),
2336 (
'B0ToKstarMuMu_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(304,3030),
'B0ToKstarMuMu_14TeV')),
2338 (
'BsToJpsiGamma_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(2500,25000),
'BsToJpsiGamma_14TeV')),
2339 (
'BsToJpsiPhi_mumuKK_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(910,9090),
'BsToJpsiPhi_mumuKK_14TeV')),
2341 (
'BsToPhiPhi_KKKK_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(556,5555),
'BsToPhiPhi_KKKK_14TeV')),
2342 (
'TauToMuMuMu_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(18939,189393),
'TauToMuMuMu_14TeV')),
2343 (
'BdToKstarEleEle_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(206,2061),
'BdToKstarEleEle_14TeV')),
2345 (
'BuMixing_BMuonFilter_forSTEAM_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(900,10000),
'BuMixing_14')),
2346 (
'Upsilon1SToMuMu_forSTEAM_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'Upsilon1SToMuMu_14')),
2347 (
'TenTau_E_15_500_Eta3p1_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'TenTau_15_500_Eta3p1')),
2348 (
'QCD_Pt_1800_2400_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_1800_2400_14')),
2349 (
'DisplacedSUSY_stopToBottom_M_800_500mm_TuneCP5_14TeV_pythia8_cff',
UpgradeFragment(
Kby(9,50),
'DisplacedSUSY_14TeV')),
2350 (
'GluGluTo2Jets_M_300_2000_14TeV_Exhume_cff',
UpgradeFragment(
Kby(9,100),
'GluGluTo2Jets_14TeV')),
2351 (
'TTbarToDilepton_mt172p5_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'TTbarToDilepton_14TeV')),
2352 (
'QQToHToTauTau_mh125_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'QQToHToTauTau_14TeV')),
2353 (
'ZpToEE_m6000_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'ZpToEE_m6000_14TeV')),
2354 (
'ZpToMM_m6000_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'ZpToMM_m6000_14TeV')),
2355 (
'SMS-T1tttt_mGl-1500_mLSP-100_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SMS-T1tttt_14TeV')),
2356 (
'VBFHZZ4Nu_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'VBFHZZ4Nu_14TeV')),
2357 (
'EtaBToJpsiJpsi_14TeV_TuneCP5_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'EtaBToJpsiJpsi_14TeV')),
2359 (
'WprimeToLNu_M2000_14TeV_TuneCP5_pythia8_cfi',
UpgradeFragment(
Kby(21,50),
'WprimeToLNu_M2000_14TeV')),
2361 (
'DoubleElectronFlatPt1p5To8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronFlatPt1p5To8')),
2362 (
'DoubleMuFlatPt1p5To8Dxy100GunProducer_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt1p5To8Dxy100')),
2363 (
'DoubleMuFlatPt2To100Dxy100GunProducer_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt2To100Dxy100')),
2364 (
'BuToJPsiPrimeKToJPsiPiPiK_14TeV_TuneCP5_pythia8_cfi',
UpgradeFragment(
Kby(223,2222),
'BuToJPsiPrimeKToJPsiPiPiK_14TeV')),
2365 (
'Psi2SToJPsiPiPi_14TeV_TuneCP5_pythia8_cfi',
UpgradeFragment(
Kby(45,500),
'Psi2SToJPsiPiPi_14TeV')),
2366 (
'XiMinus_13p6TeV_SoftQCDInel_TuneCP5_cfi',
UpgradeFragment(
Kby(8000,90000),
'XiMinus_13p6TeV')),
2367 (
'Chib1PToUpsilon1SGamma_MuFilter_TuneCP5_14TeV-pythia8_evtgen_cfi',
UpgradeFragment(
Kby(3600,36000),
'Chib1PToUpsilon1SGamma_14TeV')),
2368 (
'ChicToJpsiGamma_MuFilter_TuneCP5_14TeV_pythia8_evtgen_cfi',
UpgradeFragment(
Kby(2000,20000),
'ChicToJpsiGamma_14TeV')),
def setup_(self, step, stepName, stepDict, k, properties)
def setupPU_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def setupPU_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def condition_(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
bool any(const std::vector< T > &v, const T &what)
def setupPU(self, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)
def condition_(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)
def replace(string, replacements)
def condition(self, fragment, stepList, key, hasHarvest)
def preventReuse(self, stepName, stepDict, k)
def condition(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def workflow_(self, workflows, num, fragment, stepList, key)
def setup__(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def workflow_(self, workflows, num, fragment, stepList, key)
def setup_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)
def condition_(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def setup__(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)
def setupPU_(self, step, stepName, stepDict, k, properties)
def __init__(self, howMuch, dataset)
def condition(self, fragment, stepList, key, hasHarvest)
def workflow(self, workflows, num, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)
def setup__(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def setupPU_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def setup__(self, step, stepName, stepDict, k, properties)
def setup__(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def split(sequence, size)
def condition_(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def setup__(self, step, stepName, stepDict, k, properties)
def condition_(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
static std::string join(char **cmd)
def condition(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def setup(self, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def condition_(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def setup__(self, step, stepName, stepDict, k, properties)
def condition_(self, fragment, stepList, key, hasHarvest)
def setup__(self, step, stepName, stepDict, k, properties)
def getStepName(self, step, extra="")
def __init__(self, steps, suffix, offset)
def setup_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def condition_(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def Kby(N, s)
Standard release validation samples ####.
def __init__(self, steps, PU, suffix, offset)
def setup_(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def setup__(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)
def getStepNamePU(self, step, extra="")
def __init__(self, digi={}, reco={}, harvest={}, kwargs)