1 from copy
import copy, deepcopy
2 from collections
import OrderedDict
3 from .MatrixUtil
import merge, Kby, Mby
61 numWFConflict = [[20400,20800],
69 for year
in upgradeKeys:
70 for i
in range(0,len(upgradeKeys[year])):
71 numWFtmp = numWFStart[year]
if i==0
else (numWFAll[year][i-1] + numWFSkip)
72 for conflict
in numWFConflict:
73 if numWFtmp>=conflict[0]
and numWFtmp<conflict[1]:
74 numWFtmp = conflict[1]
76 numWFAll[year].
append(numWFtmp)
83 preventReuseKeyword =
'NOREUSE' 92 if not step
in self.
steps:
99 raise ValueError(
"Special workflow offset must be between 0.0 and 1.0")
101 stepName = step + self.
suffix + extra
104 stepNamePU = step +
'PU' + self.
suffix + extra
107 for step
in self.
steps:
113 def setup(self, stepDict, k, properties):
114 for step
in self.
steps:
121 def setup_(self, step, stepName, stepDict, k, properties):
123 def setupPU_(self, step, stepName, stepDict, k, properties):
125 def workflow(self, workflows, num, fragment, stepList, key, hasHarvest):
126 if self.condition(fragment, stepList, key, hasHarvest):
127 self.workflow_(workflows, num, fragment, stepList, key)
128 def workflow_(self, workflows, num, fragment, stepList, key):
129 fragmentTmp = [fragment, key]
131 workflows[num+self.
offset] = [ fragmentTmp, stepList ]
132 def condition(self, fragment, stepList, key, hasHarvest):
135 if "Sim" in stepName:
136 stepDict[stepName][k] =
None 137 if "Gen" in stepName:
138 stepDict[stepName][k] =
None 139 upgradeWFs = OrderedDict()
142 def setup_(self, step, stepName, stepDict, k, properties):
143 cust=properties.get(
'Custom',
None)
144 era=properties.get(
'Era',
None)
145 modifier=properties.get(
'ProcessModifier',
None)
146 if cust
is not None: stepDict[stepName][k][
'--customise']=cust
148 stepDict[stepName][k][
'--era']=era
149 if modifier
is not None: stepDict[stepName][k][
'--procModifier']=modifier
150 def condition(self, fragment, stepList, key, hasHarvest):
157 'GenSimHLBeamSpot14',
158 'GenSimHLBeamSpotHGCALCloseBy',
204 def setup_(self, step, stepName, stepDict, k, properties):
205 if stepDict[step][k] !=
None:
206 if 'RecoNano' in step:
207 stepDict[stepName][k] =
merge([{
'-s': stepDict[step][k][
'-s'].
replace(
'NANO',
'NANO:PhysicsTools/NanoAOD/V10/nano_cff')}, stepDict[step][k]])
208 def condition(self, fragment, stepList, key, hasHarvest):
220 def setup_(self, step, stepName, stepDict, k, properties):
221 if stepDict[step][k] !=
None:
223 stepDict[stepName][k] =
None 224 if 'RecoNano' in step:
225 stepDict[stepName][k] =
merge([{
'--filein':
'file:step3.root',
'--secondfilein':
'file:step2.root'}, stepDict[step][k]])
227 stepDict[stepName][k] =
merge([{
'-s': re.sub(
',HLT.*',
'', stepDict[step][k][
'-s'])}, stepDict[step][k]])
228 def condition(self, fragment, stepList, key, hasHarvest):
229 if (
'TTbar_14TeV' in fragment
and '2021' == key):
230 stepList.insert(stepList.index(
'Digi_DigiNoHLT_2021')+1,
'HLTRun3_2021')
231 return (
'TTbar_14TeV' in fragment
and '2021' == key)
239 suffix =
'_DigiNoHLT',
248 steps = steps + [
"ALCA",
"Nano"]
249 super().
__init__(steps, PU, suffix, offset)
250 def condition(self, fragment, stepList, key, hasHarvest):
251 result = (fragment==
"TTbar_13" or fragment==
"TTbar_14TeV")
and not 'PU' in key
and hasHarvest
and self.
condition_(fragment, stepList, key, hasHarvest)
255 def setup_(self, step, stepName, stepDict, k, properties):
257 if 'ALCA' in step
or 'Nano'==step:
258 stepDict[stepName][k] =
None 259 self.
setup__(step, stepName, stepDict, k, properties)
261 def setup__(self, step, stepName, stepDict, k, properties):
264 class UpgradeWorkflow_trackingOnly(UpgradeWorkflowTracking):
265 def setup__(self, step, stepName, stepDict, k, properties):
266 if 'Reco' in step: stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
267 elif 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@trackingOnlyDQM'}, stepDict[step][k]])
268 def condition(self, fragment, stepList, key, hasHarvest):
269 result = (fragment==
"TTbar_13" or fragment==
"TTbar_14TeV")
and hasHarvest
and self.
condition_(fragment, stepList, key, hasHarvest)
294 suffix =
'_trackingOnly',
297 upgradeWFs[
'trackingOnly'].step3 = {
298 '-s':
'RAW2DIGI,RECO:reconstruction_trackingOnly,VALIDATION:@trackingOnlyValidation,DQM:@trackingOnlyDQM',
299 '--datatier':
'GEN-SIM-RECO,DQMIO',
300 '--eventcontent':
'RECOSIM,DQM',
303 step3_trackingOnly = upgradeWFs[
'trackingOnly'].step3
306 def setup__(self, step, stepName, stepDict, k, properties):
307 if 'Reco' in step
and stepDict[step][k][
'--era']==
'Run2_2017':
308 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2017_trackingRun2'}, stepDict[step][k]])
317 suffix =
'_trackingRun2',
322 def setup__(self, step, stepName, stepDict, k, properties):
323 if 'Reco' in step
and stepDict[step][k][
'--era']==
'Run2_2017':
324 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2017_trackingRun2'}, self.
step3, stepDict[step][k]])
325 elif 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@trackingOnlyDQM'}, stepDict[step][k]])
336 suffix =
'_trackingOnlyRun2',
339 upgradeWFs[
'trackingOnlyRun2'].step3 = upgradeWFs[
'trackingOnly'].step3
342 def setup__(self, step, stepName, stepDict, k, properties):
343 if 'Reco' in step
and stepDict[step][k][
'--era']==
'Run2_2017':
344 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2017_trackingLowPU'}, stepDict[step][k]])
353 suffix =
'_trackingLowPU',
358 def setup__(self, step, stepName, stepDict, k, properties):
359 if 'Reco' in step: stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
361 elif 'ALCA' in step: stepDict[stepName][k] =
None 362 elif 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM'}, stepDict[step][k]])
364 return (
'2017' in key
or '2018' in key
or '2021' in key
or '2026' in key)
and (
'FS' not in key)
379 suffix =
'_pixelTrackingOnly',
382 upgradeWFs[
'pixelTrackingOnly'].step3 = {
383 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
384 '--datatier':
'GEN-SIM-RECO,DQMIO',
385 '--eventcontent':
'RECOSIM,DQM',
389 def setup__(self, step, stepName, stepDict, k, properties):
390 if 'Digi' in step: stepDict[stepName][k] =
merge([self.
step2, stepDict[step][k]])
391 if 'Reco' in step: stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
393 return '2017' in key
or '2021' in key
404 suffix =
'_trackingMkFit',
407 upgradeWFs[
'trackingMkFit'].step2 = {
408 '--customise':
'RecoTracker/MkFit/customizeHLTIter0ToMkFit.customizeHLTIter0ToMkFit' 410 upgradeWFs[
'trackingMkFit'].step3 = {
411 '--procModifiers':
'trackingMkFitDevel' 416 def setup_(self, step, stepName, stepDict, k, properties):
418 if 'ALCA' in step
or 'Nano'==step:
419 stepDict[stepName][k] =
None 420 elif 'Reco' in step
or 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'--procModifiers':
'seedingDeepCore'}, stepDict[step][k]])
421 def condition(self, fragment, stepList, key, hasHarvest):
422 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'}
513 def setup_(self, step, stepName, stepDict, k, properties):
514 if 'RecoGlobal' in step:
515 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
516 if 'HARVESTGlobal' in step:
517 stepDict[stepName][k] =
merge([self.
step4, stepDict[step][k]])
518 def condition(self, fragment, stepList, key, hasHarvest):
519 return (fragment==
"TTbar_14TeV" or 'CloseByP' in fragment
or 'Eta1p7_2p7' in fragment)
and '2026' in key
532 upgradeWFs[
'ticl_v3'].step3 = {
'--procModifiers':
'ticl_v3'}
533 upgradeWFs[
'ticl_v3'].step4 = {
'--procModifiers':
'ticl_v3'}
538 def setup_(self, step, stepName, stepDict, k, properties):
539 stepDict[stepName][k] =
merge([{
'--procModifiers':
'trackdnn'}, stepDict[step][k]])
541 def condition(self, fragment, stepList, key, hasHarvest):
542 return fragment==
"TTbar_14TeV" and '2021' in key
552 suffix =
'_trackdnn',
559 def setup_(self, step, stepName, stepDict, k, properties):
561 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
562 def condition(self, fragment, stepList, key, hasHarvest):
563 return (fragment==
"TTbar_14TeV" or fragment==
"QCD_FlatPt_15_3000HS_14")
and '2021PU' in key
577 upgradeWFs[
'mlpf'].step3 = {
578 '--datatier':
'GEN-SIM-RECO,RECOSIM,MINIAODSIM,NANOAODSIM,DQMIO',
579 '--eventcontent':
'FEVTDEBUGHLT,RECOSIM,MINIAODSIM,NANOEDMAODSIM,DQM',
580 '--procModifiers':
'mlpf' 586 def setup_(self, step, stepName, stepDict, k, properties):
588 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
589 def condition(self, fragment, stepList, key, hasHarvest):
590 return (fragment==
"ZEE_14" or fragment==
"TTbar_14TeV" or fragment==
"WprimeTolNu_M3000_13TeV_pythia8" 591 or fragment==
"DisplacedSUSY_stopToBottom_M_300_1000mm_13" or fragment==
"RunEGamma2018D" )
602 suffix =
'_ecalDeepSC',
605 upgradeWFs[
'ecalDeepSC'].step3 = {
606 '--datatier':
'RECOSIM,MINIAODSIM,NANOAODSIM,DQMIO',
607 '--eventcontent':
'RECOSIM,MINIAODSIM,NANOEDMAODSIM,DQM',
608 '--procModifiers':
'ecal_deepsc' 614 def setup_(self, step, stepName, stepDict, k, properties):
616 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
617 def condition(self, fragment, stepList, key, hasHarvest):
618 return '2018' in key
and "SingleGamma" in fragment
631 suffix =
'_photonDRN',
634 upgradeWFs[
'photonDRN'].step3 = {
635 '--procModifiers':
'enableSonicTriton,photonDRN' 645 def __init__(self, digi = {}, reco = {}, harvest = {}, **kwargs):
647 super(PatatrackWorkflow, self).
__init__(
668 '--datatier':
'GEN-SIM-RECO,DQMIO',
669 '--eventcontent':
'RECOSIM,DQM' 673 def condition(self, fragment, stepList, key, hasHarvest):
676 (
'2018' in key
and fragment ==
"TTbar_13"),
677 (
'2021' in key
and fragment ==
"TTbar_14TeV" and 'FS' not in key),
678 (
'2018' in key
and fragment ==
"ZMM_13"),
679 (
'2021' in key
and fragment ==
"ZMM_14" and 'FS' not in key),
680 (
'2026D88' in key
and fragment ==
"TTbar_14TeV" and "PixelOnly" in self.
suffix)
682 result =
any(selected)
and hasHarvest
686 def setup_(self, step, stepName, stepDict, k, properties):
688 if 'ALCA' in step
or 'Nano'==step:
689 stepDict[stepName][k] =
None 692 stepDict[stepName][k] =
None 694 stepDict[stepName][k] =
merge([self.
__digi, stepDict[step][k]])
697 stepDict[stepName][k] =
None 699 stepDict[stepName][k] =
merge([self.
__reco, stepDict[step][k]])
700 elif 'HARVEST' in step:
702 stepDict[stepName][k] =
None 704 stepDict[stepName][k] =
merge([self.
__harvest, stepDict[step][k]])
715 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
716 '--procModifiers':
'pixelNtupletFit' 719 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' 721 suffix =
'Patatrack_PixelOnlyCPU',
732 '--procModifiers':
'gpu' 735 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
736 '--procModifiers':
'pixelNtupletFit,gpu' 739 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' 741 suffix =
'Patatrack_PixelOnlyGPU',
752 '--accelerators':
'gpu-nvidia',
753 '--procModifiers':
'gpu' 756 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
757 '--accelerators':
'gpu-nvidia',
758 '--procModifiers':
'pixelNtupletFit,gpuValidation' 761 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM',
762 '--procModifiers':
'gpuValidation' 764 suffix =
'Patatrack_PixelOnlyGPU_Validation',
774 '--procModifiers':
'gpu' 777 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly',
778 '--procModifiers':
'pixelNtupletFit,gpu',
779 '--customise' :
'RecoTracker/Configuration/customizePixelOnlyForProfiling.customizePixelOnlyForProfilingGPUOnly' 782 suffix =
'Patatrack_PixelOnlyGPU_Profiling',
795 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
796 '--procModifiers':
'pixelNtupletFit',
797 '--customise' :
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 800 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' 802 suffix =
'Patatrack_PixelOnlyTripletsCPU',
813 '--procModifiers':
'gpu' 816 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
817 '--procModifiers':
'pixelNtupletFit,gpu',
818 '--customise':
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 821 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' 823 suffix =
'Patatrack_PixelOnlyTripletsGPU',
834 '--accelerators':
'gpu-nvidia',
835 '--procModifiers':
'gpu' 838 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
839 '--accelerators':
'gpu-nvidia',
840 '--procModifiers':
'pixelNtupletFit,gpuValidation',
841 '--customise':
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 844 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM',
845 '--procModifiers':
'gpuValidation',
847 suffix =
'Patatrack_PixelOnlyTripletsGPU_Validation',
857 '--procModifiers':
'gpu' 860 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly',
861 '--procModifiers':
'pixelNtupletFit,gpu',
862 '--customise':
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets,RecoTracker/Configuration/customizePixelOnlyForProfiling.customizePixelOnlyForProfilingGPUOnly' 865 suffix =
'Patatrack_PixelOnlyTripletsGPU_Profiling',
878 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly',
881 '-s':
'HARVESTING:@ecalOnlyValidation+@ecal' 883 suffix =
'Patatrack_ECALOnlyCPU',
894 '--procModifiers':
'gpu' 897 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly',
898 '--procModifiers':
'gpu' 901 '-s':
'HARVESTING:@ecalOnlyValidation+@ecal' 903 suffix =
'Patatrack_ECALOnlyGPU',
914 '--accelerators':
'gpu-nvidia',
915 '--procModifiers':
'gpu' 918 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly',
919 '--accelerators':
'gpu-nvidia',
920 '--procModifiers':
'gpuValidation' 923 '-s':
'HARVESTING:@ecalOnlyValidation+@ecal' 925 suffix =
'Patatrack_ECALOnlyGPU_Validation',
935 '--procModifiers':
'gpu' 938 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly',
939 '--procModifiers':
'gpu',
940 '--customise' :
'RecoLocalCalo/Configuration/customizeEcalOnlyForProfiling.customizeEcalOnlyForProfilingGPUOnly' 943 suffix =
'Patatrack_ECALOnlyGPU_Profiling',
956 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only',
959 '-s':
'HARVESTING:@hcalOnlyValidation+@hcalOnly+@hcal2Only' 961 suffix =
'Patatrack_HCALOnlyCPU',
972 '--procModifiers':
'gpu' 975 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only',
976 '--procModifiers':
'gpu' 979 '-s':
'HARVESTING:@hcalOnlyValidation+@hcalOnly+@hcal2Only' 981 suffix =
'Patatrack_HCALOnlyGPU',
992 '--accelerators':
'gpu-nvidia',
993 '--procModifiers':
'gpu' 996 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only',
997 '--accelerators':
'gpu-nvidia',
998 '--procModifiers':
'gpuValidation' 1001 '-s':
'HARVESTING:@hcalOnlyValidation+@hcal' 1003 suffix =
'Patatrack_HCALOnlyGPU_Validation',
1013 '--procModifiers':
'gpu' 1016 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly',
1017 '--procModifiers':
'gpu',
1018 '--customise' :
'RecoLocalCalo/Configuration/customizeHcalOnlyForProfiling.customizeHcalOnlyForProfilingGPUOnly' 1021 suffix =
'Patatrack_HCALOnlyGPU_Profiling',
1034 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1035 '--procModifiers':
'pixelNtupletFit' 1038 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' 1040 suffix =
'Patatrack_AllCPU',
1051 '--procModifiers':
'gpu' 1054 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1055 '--procModifiers':
'pixelNtupletFit,gpu' 1058 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' 1060 suffix =
'Patatrack_AllGPU',
1071 '--accelerators':
'gpu-nvidia',
1072 '--procModifiers':
'gpu' 1075 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1076 '--accelerators':
'gpu-nvidia',
1077 '--procModifiers':
'pixelNtupletFit,gpuValidation' 1080 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only',
1081 '--procModifiers':
'gpuValidation' 1083 suffix =
'Patatrack_AllGPU_Validation',
1101 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1102 '--procModifiers':
'pixelNtupletFit' 1105 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' 1107 suffix =
'Patatrack_AllTripletsCPU',
1118 '--procModifiers':
'gpu' 1121 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1122 '--procModifiers':
'pixelNtupletFit,gpu' 1125 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' 1127 suffix =
'Patatrack_AllTripletsGPU',
1138 '--accelerators':
'gpu-nvidia',
1139 '--procModifiers':
'gpu' 1142 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1143 '--accelerators':
'gpu-nvidia',
1144 '--procModifiers':
'pixelNtupletFit,gpuValidation' 1147 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only',
1148 '--procModifiers':
'gpuValidation' 1150 suffix =
'Patatrack_AllTripletsGPU_Validation',
1169 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1170 '--procModifiers':
'pixelNtupletFit' 1175 suffix =
'Patatrack_FullRecoCPU',
1186 '--procModifiers':
'gpu' 1190 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1191 '--procModifiers':
'pixelNtupletFit,gpu' 1196 suffix =
'Patatrack_FullRecoGPU',
1207 '--accelerators':
'gpu-nvidia',
1208 '--procModifiers':
'gpu' 1212 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1213 '--accelerators':
'gpu-nvidia',
1214 '--procModifiers':
'pixelNtupletFit,gpuValidation' 1219 suffix =
'Patatrack_FullRecoGPU_Validation',
1233 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1234 '--procModifiers':
'pixelNtupletFit',
1235 '--customise' :
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 1240 suffix =
'Patatrack_FullRecoTripletsCPU',
1251 '--procModifiers':
'gpu' 1255 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1256 '--procModifiers':
'pixelNtupletFit,gpu',
1257 '--customise':
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 1262 suffix =
'Patatrack_FullRecoTripletsGPU',
1273 '--accelerators':
'gpu-nvidia',
1274 '--procModifiers':
'gpu' 1278 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1279 '--accelerators':
'gpu-nvidia',
1280 '--procModifiers':
'pixelNtupletFit,gpuValidation',
1281 '--customise' :
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 1286 suffix =
'Patatrack_FullRecoTripletsGPU_Validation',
1294 def setup_(self, step, stepName, stepDict, k, properties):
1295 if 'GenSimHLBeamSpot14' in step:
1296 stepDict[stepName][k] =
merge([{
'--eventcontent':
'RAWSIM',
'--datatier':
'GEN-SIM'},stepDict[step][k]])
1297 elif 'Digi' in step
and 'Trigger' not in step:
1298 stepDict[stepName][k] =
merge([{
'-s':
'DIGI,L1,DIGI2RAW,HLT:@relval2022',
'--datatier':
'GEN-SIM-RAW',
'--eventcontent':
'RAWSIM'}, stepDict[step][k]])
1299 elif 'DigiTrigger' in step:
1300 stepDict[stepName][k] =
merge([{
'-s':
'DIGI,L1TrackTrigger,L1,DIGI2RAW,HLT:@fake2',
'--datatier':
'GEN-SIM-RAW',
'--eventcontent':
'RAWSIM'}, stepDict[step][k]])
1301 elif 'Reco' in step:
1302 stepDict[stepName][k] =
merge([{
'-s':
'RAW2DIGI,L1Reco,RECO,RECOSIM',
'--datatier':
'AODSIM',
'--eventcontent':
'AODSIM'}, stepDict[step][k]])
1303 elif 'MiniAOD' in step:
1305 stepDict[stepName][k] = deepcopy(stepDict[step][k])
1306 elif 'ALCA' in step
or 'HARVEST' in step:
1308 stepDict[stepName][k] =
None 1310 stepDict[stepName][k] =
merge([{
'--filein':
'file:step4.root',
'-s':
'NANO',
'--datatier':
'NANOAODSIM',
'--eventcontent':
'NANOEDMAODSIM'}, stepDict[step][k]])
1312 return fragment==
"TTbar_14TeV" and (
'2026' in key
or '2021' in key)
1315 'GenSimHLBeamSpot14',
1330 'GenSimHLBeamSpot14',
1344 suffix =
'_ProdLike',
1349 def setup_(self, step, stepName, stepDict, k, properties):
1350 if 'HARVEST' in step:
1351 stepDict[stepName][k] =
merge([{
'--filein':
'file:step3_inDQM.root'}, stepDict[step][k]])
1353 stepDict[stepName][k] =
merge([stepDict[step][k]])
1355 return fragment==
"TTbar_14TeV" and '2026' in key
1358 'GenSimHLBeamSpot14',
1365 'GenSimHLBeamSpot14',
1371 suffix =
'_HLT75e33',
1376 def setup_(self, step, stepName, stepDict, k, properties):
1377 if 'DigiTrigger' in step:
1378 stepDict[stepName][k] =
merge([{
'-s':
'DIGI:pdigi_valid,L1TrackTrigger,L1,DIGI2RAW,HLT:@relval2026'}, stepDict[step][k]])
1380 return fragment==
"TTbar_14TeV" and '2026' in key
1388 suffix =
'_HLTwDIGI75e33',
1393 def setup_(self, step, stepName, stepDict, k, properties):
1394 if 'GenSim' in step:
1395 custNew =
"SimG4Core/Application/NeutronBGforMuonsXS_cff.customise" 1397 custNew =
"SLHCUpgradeSimulations/Configuration/customise_mixing.customise_Mix_LongLived_Neutrons" 1398 stepDict[stepName][k] = deepcopy(stepDict[step][k])
1399 if '--customise' in stepDict[stepName][k].
keys():
1400 stepDict[stepName][k][
'--customise'] +=
","+custNew
1402 stepDict[stepName][k][
'--customise'] = custNew
1409 'GenSimHLBeamSpot14',
1417 suffix =
'_Neutron',
1421 upgradeWFs[
'Neutron'].neutronKeys = [x
for x
in upgradeKeys[2026]
if 'PU' not in x]
1422 upgradeWFs[
'Neutron'].neutronFrags = [
'ZMM_14',
'MinBias_14TeV']
1425 def setup_(self, step, stepName, stepDict, k, properties):
1426 stepDict[stepName][k] =
merge([{
'--procModifiers':
'run2_HECollapse_2018'}, stepDict[step][k]])
1428 return fragment==
"TTbar_13" and '2018' in key
1442 suffix =
'_heCollapse',
1448 def __init__(self, digi = {}, reco = {}, harvest = {}, **kwargs):
1450 super(UpgradeWorkflow_ecalDevel, self).
__init__(
1466 def setup_(self, step, stepName, stepDict, k, properties):
1468 mods = {
'--era': stepDict[step][k][
'--era']+
',phase2_ecal_devel'}
1470 mods[
'-s'] =
'DIGI:pdigi_valid,DIGI2RAW' 1472 elif 'Reco' in step:
1473 mods[
'-s'] =
'RAW2DIGI,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly' 1474 mods[
'--datatier'] =
'GEN-SIM-RECO,DQMIO' 1475 mods[
'--eventcontent'] =
'FEVTDEBUGHLT,DQM' 1477 elif 'HARVEST' in step:
1478 mods[
'-s'] =
'HARVESTING:@ecalOnlyValidation+@ecal' 1480 stepDict[stepName][k] =
merge([mods, stepDict[step][k]])
1483 return fragment==
"TTbar_14TeV" and '2026' in key
1487 suffix =
'_ecalDevel',
1493 reco = {
'--procModifiers':
'gpu'},
1494 suffix =
'_ecalDevelGPU',
1499 def setup_(self, step, stepName, stepDict, k, properties):
1500 myGT=stepDict[step][k][
'--conditions']
1502 stepDict[stepName][k] =
merge([{
'-n':
'1',
'--magField':
'0T',
'--conditions':myGT}, stepDict[step][k]])
1503 def setupPU_(self, step, stepName, stepDict, k, properties):
1505 stepDict[stepName][k] =
merge([{
'-n':
'1'}, stepDict[step][k]])
1507 return (fragment==
"TTbar_13" or fragment==
"TTbar_14TeV")
and (
'2017' in key
or '2018' in key
or '2021' in key)
and (
'FS' not in key)
1530 def setup_(self, step, stepName, stepDict, k, properties):
1531 if 'Reco' in step
and 'Run2_2018' in stepDict[step][k][
'--era']:
1532 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2018,bParking'}, stepDict[step][k]])
1534 return fragment==
"TTbar_13" and '2018' in key
1540 suffix =
'_ParkingBPH',
1545 def setup_(self, step, stepName, stepDict, k, properties):
1547 stepDict[stepName][k] =
merge([{
'--customise':
'PhysicsTools/NanoAOD/custom_jme_cff.PrepJMECustomNanoAOD_MC'}, stepDict[step][k]])
1549 return (fragment==
"TTbar_13" or fragment==
"TTbar_14TeV")
and (
'2017' in key
or '2018' in key
or '2021' in key)
and (
'FS' not in key)
1556 suffix =
'_JMENano',
1563 def setup_(self, step, stepName, stepDict, k, properties):
1564 if 'Digi' in step
or 'Reco' in step:
1565 stepDict[stepName][k] =
merge([{
'--customise':
'SLHCUpgradeSimulations/Configuration/aging.customise_aging_'+self.
lumi}, stepDict[step][k]])
1567 return '2026' in key
1584 suffix =
'Aging1000',
1587 upgradeWFs[
'Aging1000'].lumi =
'1000' 1588 upgradeWFs[
'Aging3000'] = deepcopy(upgradeWFs[
'Aging1000'])
1589 upgradeWFs[
'Aging3000'].suffix =
'Aging3000' 1590 upgradeWFs[
'Aging3000'].offset = 0.103
1591 upgradeWFs[
'Aging3000'].lumi =
'3000' 1598 def setup_(self, step, stepName, stepDict, k, properties):
1600 stepDict[stepName][k] =
merge([{
'--customise':
'SimTracker/SiPhase2Digitizer/customizeForOTInefficiency.customizeSiPhase2OTInefficiency'+self.
percent+
'Percent'}, stepDict[step][k]])
1602 return fragment==
"TTbar_14TeV" and '2026' in key
1613 suffix =
'_OTInefficiency',
1616 upgradeWFs[
'OTInefficiency'].percent =
'Zero' 1619 upgradeWFs[
'OTInefficiency1PC'] = deepcopy(upgradeWFs[
'OTInefficiency'])
1620 upgradeWFs[
'OTInefficiency1PC'].suffix =
'_OTInefficiency1PC' 1621 upgradeWFs[
'OTInefficiency1PC'].offset = 0.112
1622 upgradeWFs[
'OTInefficiency1PC'].percent =
'One' 1625 upgradeWFs[
'OTInefficiency5PC'] = deepcopy(upgradeWFs[
'OTInefficiency'])
1626 upgradeWFs[
'OTInefficiency5PC'].suffix =
'_OTInefficiency5PC' 1627 upgradeWFs[
'OTInefficiency5PC'].offset = 0.113
1628 upgradeWFs[
'OTInefficiency5PC'].percent =
'Five' 1631 upgradeWFs[
'OTInefficiency10PC'] = deepcopy(upgradeWFs[
'OTInefficiency'])
1632 upgradeWFs[
'OTInefficiency10PC'].suffix =
'_OTInefficiency10PC' 1633 upgradeWFs[
'OTInefficiency10PC'].offset = 0.114
1634 upgradeWFs[
'OTInefficiency10PC'].percent =
'Ten' 1642 digiPremixLocalPileup = {
1643 "--filein":
"file:step1.root",
1644 "--pileup_input":
"file:step2.root" 1649 def setup_(self, step, stepName, stepDict, k, properties):
1651 stepDict[stepName][k] =
merge([stepDict[step][k]])
1652 def setupPU_(self, step, stepName, stepDict, k, properties):
1654 if "GenSim" in stepName:
1655 stepNamePmx = stepName.replace(
'GenSim',
'Premix')
1656 if not stepNamePmx
in stepDict: stepDict[stepNamePmx] = {}
1657 stepDict[stepNamePmx][k] =
merge([
1659 '-s':
'GEN,SIM,DIGI:pdigi_valid',
1660 '--datatier':
'PREMIX',
1661 '--eventcontent':
'PREMIX',
1662 '--procModifiers':
'premix_stage1' 1664 stepDict[stepName][k]
1666 if "ProdLike" in self.
suffix:
1667 stepDict[stepNamePmx][k] =
merge([{
'-s':
'GEN,SIM,DIGI'},stepDict[stepNamePmx][k]])
1669 elif "Digi" in step
or "Reco" in step:
1672 if d
is None:
return 1675 for s
in d[
"-s"].
split(
","):
1676 if s ==
"DIGI" or "DIGI:" in s:
1677 tmpsteps.extend([s,
"DATAMIX"])
1681 "--datamix" :
"PreMix",
1682 "--procModifiers":
"premix_stage2"},
1685 if "_PMXS1S2" in self.
suffix:
1686 d =
merge([digiPremixLocalPileup, d])
1687 elif "Reco" in step:
1688 if "--procModifiers" in d:
1689 d[
"--procModifiers"] +=
",premix_stage2" 1691 d[
"--procModifiers"] =
"premix_stage2" 1692 stepDict[stepName][k] = d
1698 filein = d[
"--filein"]
1699 m = re.search(
"step(?P<ind>\d+)_", filein)
1701 d[
"--filein"] = filein.replace(m.group(),
"step%d_"%(
int(m.group(
"ind"))+1))
1702 stepDict[stepName][k] = d
1708 if not any(y
in key
for y
in [
'2021',
'2023',
'2024',
'2026']):
1710 if self.
suffix.endswith(
"S1"):
1711 return "NuGun" in fragment
1713 def workflow_(self, workflows, num, fragment, stepList, key):
1714 fragmentTmp = fragment
1715 if self.
suffix.endswith(
"S1"):
1716 fragmentTmp =
'PREMIXUP' + key[2:].
replace(
"PU",
"").
replace(
"Design",
"") +
'_PU25' 1717 super(UpgradeWorkflowPremix,self).
workflow_(workflows, num, fragmentTmp, stepList, key)
1725 'GenSimHLBeamSpot14',
1751 'GenSimHLBeamSpot14',
1760 suffix =
'_PMXS1S2',
1765 def setupPU_(self, step, stepName, stepDict, k, properties):
1767 if '--pileup' in stepDict[stepName][k]:
1768 stepDict[stepName][k][
'--pileup'] =
'AVE_50_BX_25ns_m3p3' 1769 super(UpgradeWorkflowAdjustPU,self).
setupPU_(step, stepName, stepDict, k, properties)
1772 return super(UpgradeWorkflowAdjustPU,self).
condition(fragment, stepList, key, hasHarvest)
and '2026' in key
1778 'GenSimHLBeamSpot14',
1788 suffix =
'_PMXS1S2PR',
1793 def setup_(self, step, stepName, stepDict, k, properties):
1795 UpgradeWorkflowPremix.setup_(self, step, stepName, stepDict, k, properties)
1796 UpgradeWorkflow_ProdLike.setup_(self, step, stepName, stepDict, k, properties)
1801 for s
in d[
"-s"].
split(
","):
1802 if "DIGI:pdigi_valid" in s:
1803 tmpsteps.append(
"DIGI")
1807 "--eventcontent":
"PREMIXRAW"},
1809 stepDict[stepName][k] = d
1811 stepDict[stepName][k] =
merge([{
'--filein':
'file:step5.root',
'-s':
'NANO',
'--datatier':
'NANOAODSIM',
'--eventcontent':
'NANOEDMAODSIM'}, stepDict[step][k]])
1814 return UpgradeWorkflowPremix.condition(self, fragment, stepList, key, hasHarvest)
and UpgradeWorkflow_ProdLike.condition(self, fragment, stepList, key, hasHarvest)
1832 suffix =
'_PMXS2ProdLike',
1841 'GenSimHLBeamSpot14',
1855 suffix =
'_PMXS1S2ProdLike',
1860 def setup_(self, step, stepName, stepDict, k, properties):
1861 if 'HARVESTFastRun3' in step:
1862 stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@trackingOnlyDQM',
1864 '--era':
'Run3_FastSim',
1865 '--filein':
'file:step1_inDQM.root'}, stepDict[step][k]])
1867 stepDict[stepName][k] =
merge([stepDict[step][k]])
1869 return '2021FS' in key
1880 suffix =
'_Run3FSTrackingOnly',
1885 def setup_(self, step, stepName, stepDict, k, properties):
1887 stepDict[stepName][k] =
merge([{
'-s':
'GEN,SIM,RECOBEFMIX',
1889 '--era':
'Run3_FastSim',
1890 '--eventcontent':
'FASTPU',
1891 '--datatier':
'GEN-SIM-RECO',
1892 '--relval':
'27000,3000'}, stepDict[step][k]])
1894 stepDict[stepName][k] =
None 1896 return '2021FS' in key
and fragment==
"MinBias_14TeV" 1904 suffix =
'_Run3FSMBMixing',
1909 def setup_(self, step, stepName, stepDict, k, properties):
1910 if 'Run3' in stepDict[step][k][
'--era']
and 'Fast' not in stepDict[step][k][
'--era']:
1911 stepDict[stepName][k] =
merge([{
'--geometry':
'DD4hepExtended2021'}, stepDict[step][k]])
1912 elif 'Phase2' in stepDict[step][k][
'--era']:
1914 dd4hepGeom+=stepDict[step][k][
'--geometry']
1915 stepDict[stepName][k] =
merge([{
'--geometry' : dd4hepGeom,
'--procModifiers':
'dd4hep'}, stepDict[step][k]])
1917 return (
'2021' in key
or '2026' in key)
and (
'FS' not in key)
1922 'GenSimHLBeamSpot14',
1937 upgradeWFs[
'DD4hep'].allowReuse =
False 1942 def setup_(self, step, stepName, stepDict, k, properties):
1943 if 'Run3' in stepDict[step][k][
'--era']
and 'Fast' not in stepDict[step][k][
'--era']:
1944 stepDict[stepName][k] =
merge([{
'--conditions':
'auto:phase1_2022_realistic',
'--geometry':
'DB:Extended'}, stepDict[step][k]])
1946 return '2021' in key
and 'FS' not in key
1951 'GenSimHLBeamSpot14',
1963 suffix =
'_DD4hepDB',
1966 upgradeWFs[
'DD4hepDB'].allowReuse =
False 1969 def setup_(self, step, stepName, stepDict, k, properties):
1970 if 'Run3' in stepDict[step][k][
'--era']
and 'Fast' not in stepDict[step][k][
'--era']:
1972 tmp_eras = stepDict[step][k][
'--era'].
split(
',')
1973 tmp_eras[tmp_eras.index(
"Run3")] =
'Run3_DDD' 1974 tmp_eras =
','.
join(tmp_eras)
1975 stepDict[stepName][k] =
merge([{
'--conditions':
'auto:phase1_2022_realistic_ddd',
'--geometry':
'DB:Extended',
'--era': tmp_eras}, stepDict[step][k]])
1977 return '2021' in key
and 'FS' not in key
1982 'GenSimHLBeamSpot14',
1997 upgradeWFs[
'DDDDB'].allowReuse =
False 2000 def setup_(self, step, stepName, stepDict, k, properties):
2001 stepDict[stepName][k] =
merge([{
'--procModifiers':
'allSonicTriton'}, stepDict[step][k]])
2003 return (fragment==
'TTbar_13' and '2021' in key) \
2004 or (fragment==
'TTbar_14TeV' and '2026' in key)
2009 'GenSimHLBeamSpot14',
2023 'GenSimHLBeamSpot14',
2034 suffix =
'_SonicTriton',
2039 offsets = [specialWF.offset
for specialType,specialWF
in upgradeWFs.items()]
2041 dups = set(x
for x
in offsets
if x
in seen
or seen.add(x))
2043 raise ValueError(
"Duplicate special workflow offsets not allowed: "+
','.
join([
str(x)
for x
in dups]))
2045 upgradeProperties = {}
2047 upgradeProperties[2017] = {
2049 'Geom' :
'DB:Extended',
2050 'GT' :
'auto:phase1_2017_realistic',
2051 'HLTmenu':
'@relval2017',
2052 'Era' :
'Run2_2017',
2053 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT',
'ALCA',
'Nano'],
2056 'Geom' :
'DB:Extended',
2057 'GT' :
'auto:phase1_2017_design',
2058 'HLTmenu':
'@relval2017',
2059 'Era' :
'Run2_2017',
2060 'BeamSpot':
'GaussSigmaZ4cm',
2061 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT'],
2064 'Geom' :
'DB:Extended',
2065 'GT' :
'auto:phase1_2018_realistic',
2066 'HLTmenu':
'@relval2018',
2067 'Era' :
'Run2_2018',
2068 'BeamSpot':
'Realistic25ns13TeVEarly2018Collision',
2069 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT',
'ALCA',
'Nano'],
2072 'Geom' :
'DB:Extended',
2073 'GT' :
'auto:phase1_2018_design',
2074 'HLTmenu':
'@relval2018',
2075 'Era' :
'Run2_2018',
2076 'BeamSpot':
'GaussSigmaZ4cm',
2077 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT'],
2080 'Geom' :
'DB:Extended',
2081 'GT' :
'auto:phase1_2022_realistic',
2082 'HLTmenu':
'@relval2022',
2084 'BeamSpot':
'Realistic25ns13p6TeVEarly2022Collision',
2085 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
2088 'Geom' :
'DB:Extended',
2089 'GT' :
'auto:phase1_2022_design',
2090 'HLTmenu':
'@relval2022',
2092 'BeamSpot':
'GaussSigmaZ4cm',
2093 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano'],
2096 'Geom' :
'DB:Extended',
2097 'GT' :
'auto:phase1_2023_realistic',
2098 'HLTmenu':
'@relval2022',
2100 'BeamSpot':
'Realistic25ns13p6TeVEarly2022Collision',
2101 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
2104 'Geom' :
'DB:Extended',
2105 'GT' :
'auto:phase1_2024_realistic',
2106 'HLTmenu':
'@relval2022',
2108 'BeamSpot':
'Realistic25ns13p6TeVEarly2022Collision',
2109 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
2112 'Geom' :
'DB:Extended',
2113 'GT' :
'auto:phase1_2022_realistic',
2114 'HLTmenu':
'@relval2022',
2115 'Era' :
'Run3_FastSim',
2116 'BeamSpot':
'Realistic25ns13p6TeVEarly2022Collision',
2117 'ScenToRun' : [
'Gen',
'FastSimRun3',
'HARVESTFastRun3'],
2120 'Geom' :
'DB:Extended',
2121 'GT' :
'auto:phase1_2022_realistic_postEE',
2122 'HLTmenu':
'@relval2022',
2124 'BeamSpot':
'Realistic25ns13p6TeVEarly2022Collision',
2125 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
2130 for key
in list(upgradeProperties[2017].
keys()):
2131 upgradeProperties[2017][key+
'PU'] = deepcopy(upgradeProperties[2017][key])
2133 upgradeProperties[2017][key+
'PU'][
'ScenToRun'] = [
'GenSim',
'DigiPU'] + \
2134 ([
'RecoNanoPU',
'HARVESTNanoPU']
if '202' in key
else [
'RecoFakeHLTPU',
'HARVESTFakeHLTPU']) + \
2135 ([
'Nano']
if 'Nano' in upgradeProperties[2017][key][
'ScenToRun']
else [])
2137 upgradeProperties[2017][key+
'PU'][
'ScenToRun'] = [
'Gen',
'FastSimRun3PU',
'HARVESTFastRun3PU']
2139 upgradeProperties[2026] = {
2141 'Geom' :
'Extended2026D86',
2142 'HLTmenu':
'@fake2',
2143 'GT' :
'auto:phase2_realistic_T21',
2144 'Era' :
'Phase2C17I13M9',
2145 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2148 'Geom' :
'Extended2026D88',
2149 'HLTmenu':
'@fake2',
2150 'GT' :
'auto:phase2_realistic_T21',
2151 'Era' :
'Phase2C17I13M9',
2152 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2155 'Geom' :
'Extended2026D91',
2156 'HLTmenu':
'@fake2',
2157 'GT' :
'auto:phase2_realistic_T30',
2158 'Era' :
'Phase2C17I13M9',
2159 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2162 'Geom' :
'Extended2026D92',
2163 'HLTmenu':
'@fake2',
2164 'GT' :
'auto:phase2_realistic_T21',
2165 'Era' :
'Phase2C17I13M9',
2166 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2169 'Geom' :
'Extended2026D93',
2170 'HLTmenu':
'@fake2',
2171 'GT' :
'auto:phase2_realistic_T21',
2172 'Era' :
'Phase2C17I13M9',
2173 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2176 'Geom' :
'Extended2026D94',
2177 'HLTmenu':
'@fake2',
2178 'GT' :
'auto:phase2_realistic_T21',
2179 'Era' :
'Phase2C18I13M9',
2180 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2183 'Geom' :
'Extended2026D95',
2184 'HLTmenu':
'@fake2',
2185 'GT' :
'auto:phase2_realistic_T21',
2186 'Era' :
'Phase2C17I13M9',
2187 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2190 'Geom' :
'Extended2026D96',
2191 'HLTmenu':
'@fake2',
2192 'GT' :
'auto:phase2_realistic_T21',
2193 'Era' :
'Phase2C17I13M9',
2194 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2197 'Geom' :
'Extended2026D97',
2198 'HLTmenu':
'@fake2',
2199 'GT' :
'auto:phase2_realistic_T25',
2200 'Era' :
'Phase2C17I13M9',
2201 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2206 for key
in list(upgradeProperties[2026].
keys()):
2207 upgradeProperties[2026][key+
'PU'] = deepcopy(upgradeProperties[2026][key])
2208 upgradeProperties[2026][key+
'PU'][
'ScenToRun'] = [
'GenSimHLBeamSpot',
'DigiTriggerPU',
'RecoGlobalPU',
'HARVESTGlobalPU']
2211 defaultDataSets = {}
2212 for year
in upgradeKeys:
2213 for key
in upgradeKeys[year]:
2214 if 'PU' in key:
continue 2215 defaultDataSets[key] =
'' 2223 upgradeFragments = OrderedDict([
2225 (
'SingleElectronPt10_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronPt10')),
2226 (
'SingleElectronPt35_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronPt35')),
2227 (
'SingleElectronPt1000_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SingleElectronPt1000')),
2234 (
'FourMuExtendedPt_1_200_pythia8_cfi',
UpgradeFragment(
Kby(10,100),
'FourMuExtendedPt1_200')),
2235 (
'TenMuExtendedE_0_200_pythia8_cfi',
UpgradeFragment(
Kby(10,100),
'TenMuExtendedE_0_200')),
2236 (
'DoubleElectronPt10Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElPt10Extended')),
2237 (
'DoubleElectronPt35Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElPt35Extended')),
2238 (
'DoubleElectronPt1000Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SingleElPt1000Extended')),
2239 (
'DoubleGammaPt10Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleGammaPt10Extended')),
2240 (
'DoubleGammaPt35Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SingleGammaPt35Extended')),
2241 (
'DoubleMuPt1Extended_pythia8_cfi',
UpgradeFragment(
Kby(25,100),
'SingleMuPt1Extended')),
2242 (
'DoubleMuPt10Extended_pythia8_cfi',
UpgradeFragment(
Kby(25,100),
'SingleMuPt10Extended')),
2243 (
'DoubleMuPt100Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleMuPt100Extended')),
2244 (
'DoubleMuPt1000Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleMuPt1000Extended')),
2247 (
'MinBias_13TeV_pythia8_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(90,100),
'MinBias_13')),
2250 (
'QCD_Pt_600_800_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_600_800_13')),
2251 (
'Wjet_Pt_80_120_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'Wjet_Pt_80_120_14TeV')),
2252 (
'Wjet_Pt_3000_3500_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Wjet_Pt_3000_3500_14TeV')),
2254 (
'QCD_Pt_3000_3500_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_3000_3500_14TeV')),
2255 (
'QCD_Pt_80_120_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'QCD_Pt_80_120_14TeV')),
2256 (
'H200ChargedTaus_Tauola_14TeV_cfi',
UpgradeFragment(
Kby(9,100),
'Higgs200ChargedTaus_14TeV')),
2260 (
'ZTT_Tauola_All_hadronic_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,100),
'ZTT_14TeV')),
2261 (
'H130GGgluonfusion_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'H130GGgluonfusion_14TeV')),
2262 (
'PhotonJet_Pt_10_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'PhotonJets_Pt_10_14TeV')),
2263 (
'QQH1352T_Tauola_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'QQH1352T_Tauola_14TeV')),
2267 (
'QCDForPF_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(50,100),
'QCD_FlatPt_15_3000HS_14')),
2269 (
'DYToTauTau_M-50_14TeV_pythia8_tauola_cff',
UpgradeFragment(
Kby(9,100),
'DYtoTauTau_M_50_14TeV')),
2271 (
'QCD_Pt_80_120_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'QCD_Pt_80_120_13')),
2272 (
'H125GGgluonfusion_13TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'H125GGgluonfusion_13')),
2273 (
'QCD_Pt20toInf_MuEnrichedPt15_14TeV_TuneCP5_cff',
UpgradeFragment(
Kby(19565, 217391),
'QCD_Pt20toInfMuEnrichPt15_14')),
2275 (
'QCD_Pt15To7000_Flat_14TeV_TuneCP5_cff',
UpgradeFragment(
Kby(9,50),
'QCD_Pt15To7000_Flat_14')),
2276 (
'H125GGgluonfusion_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'H125GGgluonfusion_14')),
2277 (
'QCD_Pt_600_800_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_600_800_14')),
2280 (
'H200ChargedTaus_Tauola_13TeV_cfi',
UpgradeFragment(
Kby(9,50),
'Higgs200ChargedTaus_13')),
2281 (
'ADDMonoJet_13TeV_d3MD3_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'ADDMonoJet_d3MD3_13')),
2283 (
'QCD_Pt_3000_3500_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_3000_3500_13')),
2290 (
'PhotonJet_Pt_10_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'PhotonJets_Pt_10_13')),
2292 (
'Wjet_Pt_80_120_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Wjet_Pt_80_120_13')),
2293 (
'Wjet_Pt_3000_3500_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Wjet_Pt_3000_3500_13')),
2294 (
'SMS-T1tttt_mGl-1500_mLSP-100_13TeV-pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SMS-T1tttt_mGl-1500_mLSP-100_13')),
2295 (
'QCDForPF_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(50,100),
'QCD_FlatPt_15_3000HS_13')),
2296 (
'PYTHIA8_PhiToMuMu_TuneCUETP8M1_13TeV_cff',
UpgradeFragment(
Kby(9,50),
'PhiToMuMu_13')),
2297 (
'RSKKGluon_m3000GeV_13TeV_TuneCUETP8M1_cff',
UpgradeFragment(
Kby(9,50),
'RSKKGluon_m3000GeV_13')),
2301 (
'Upsilon1SToMuMu_forSTEAM_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Upsilon1SToMuMu_13')),
2302 (
'EtaBToJpsiJpsi_forSTEAM_TuneCUEP8M1_13TeV_cfi',
UpgradeFragment(
Kby(9,50),
'EtaBToJpsiJpsi_13')),
2303 (
'JpsiMuMu_Pt-8_forSTEAM_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(3100,100000),
'JpsiMuMu_Pt-8')),
2304 (
'BuMixing_BMuonFilter_forSTEAM_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(900,10000),
'BuMixing_13')),
2305 (
'HSCPstop_M_200_TuneCUETP8M1_13TeV_pythia8_cff',
UpgradeFragment(
Kby(9,50),
'HSCPstop_M_200_13')),
2306 (
'RSGravitonToGammaGamma_kMpl01_M_3000_TuneCUETP8M1_13TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'RSGravitonToGaGa_13')),
2307 (
'WprimeToENu_M-2000_TuneCUETP8M1_13TeV-pythia8_cff',
UpgradeFragment(
Kby(9,50),
'WpToENu_M-2000_13')),
2308 (
'DisplacedSUSY_stopToBottom_M_800_500mm_TuneCP5_13TeV_pythia8_cff',
UpgradeFragment(
Kby(9,50),
'DisplacedSUSY_stopToB_M_800_500mm_13')),
2310 (
'FlatRandomPtAndDxyGunProducer_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuonsDxy_0_500')),
2312 (
'SinglePiPt25Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SinglePiPt25Eta1p7_2p7')),
2313 (
'SingleMuPt15Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SingleMuPt15Eta1p7_2p7')),
2314 (
'SingleGammaPt25Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SingleGammaPt25Eta1p7_2p7')),
2315 (
'SingleElectronPt15Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronPt15Eta1p7_2p7')),
2317 (
'CloseByParticle_Photon_ERZRanges_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByParticleGun')),
2318 (
'CE_E_Front_300um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_E_Front_300um')),
2319 (
'CE_E_Front_200um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_E_Front_200um')),
2320 (
'CE_E_Front_120um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_E_Front_120um')),
2324 (
'CE_H_Coarse_Scint_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_H_Coarse_Scint')),
2325 (
'CE_H_Coarse_300um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_H_Coarse_300um')),
2326 (
'SingleElectronFlatPt2To100_cfi',
UpgradeFragment(
Kby(9,100),
'SingleEFlatPt2To100')),
2329 (
'SingleGammaFlatPt8To150_cfi',
UpgradeFragment(
Kby(9,100),
'SingleGammaFlatPt8To150')),
2332 (
'FlatRandomPtAndDxyGunProducer_MuPt2To10_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt2To10')),
2333 (
'FlatRandomPtAndDxyGunProducer_MuPt10To30_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt10To30')),
2334 (
'FlatRandomPtAndDxyGunProducer_MuPt30To100_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt30To100')),
2335 (
'B0ToKstarMuMu_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(304,3030),
'B0ToKstarMuMu_14TeV')),
2337 (
'BsToJpsiGamma_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(2500,25000),
'BsToJpsiGamma_14TeV')),
2338 (
'BsToJpsiPhi_mumuKK_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(910,9090),
'BsToJpsiPhi_mumuKK_14TeV')),
2340 (
'BsToPhiPhi_KKKK_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(556,5555),
'BsToPhiPhi_KKKK_14TeV')),
2341 (
'TauToMuMuMu_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(18939,189393),
'TauToMuMuMu_14TeV')),
2342 (
'BdToKstarEleEle_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(206,2061),
'BdToKstarEleEle_14TeV')),
2344 (
'BuMixing_BMuonFilter_forSTEAM_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(900,10000),
'BuMixing_14')),
2345 (
'Upsilon1SToMuMu_forSTEAM_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'Upsilon1SToMuMu_14')),
2346 (
'TenTau_E_15_500_Eta3p1_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'TenTau_15_500_Eta3p1')),
2347 (
'QCD_Pt_1800_2400_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_1800_2400_14')),
2348 (
'DisplacedSUSY_stopToBottom_M_800_500mm_TuneCP5_14TeV_pythia8_cff',
UpgradeFragment(
Kby(9,50),
'DisplacedSUSY_14TeV')),
2349 (
'GluGluTo2Jets_M_300_2000_14TeV_Exhume_cff',
UpgradeFragment(
Kby(9,100),
'GluGluTo2Jets_14TeV')),
2350 (
'TTbarToDilepton_mt172p5_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'TTbarToDilepton_14TeV')),
2351 (
'QQToHToTauTau_mh125_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'QQToHToTauTau_14TeV')),
2352 (
'ZpToEE_m6000_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'ZpToEE_m6000_14TeV')),
2353 (
'ZpToMM_m6000_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'ZpToMM_m6000_14TeV')),
2354 (
'SMS-T1tttt_mGl-1500_mLSP-100_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SMS-T1tttt_14TeV')),
2355 (
'VBFHZZ4Nu_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'VBFHZZ4Nu_14TeV')),
2356 (
'EtaBToJpsiJpsi_14TeV_TuneCP5_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'EtaBToJpsiJpsi_14TeV')),
2358 (
'WprimeToLNu_M2000_14TeV_TuneCP5_pythia8_cfi',
UpgradeFragment(
Kby(21,50),
'WprimeToLNu_M2000_14TeV')),
2360 (
'DoubleElectronFlatPt1p5To8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronFlatPt1p5To8')),
2361 (
'DoubleMuFlatPt1p5To8Dxy100GunProducer_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt1p5To8Dxy100')),
2362 (
'DoubleMuFlatPt2To100Dxy100GunProducer_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt2To100Dxy100')),
2363 (
'BuToJPsiPrimeKToJPsiPiPiK_14TeV_TuneCP5_pythia8_cfi',
UpgradeFragment(
Kby(223,2222),
'BuToJPsiPrimeKToJPsiPiPiK_14TeV')),
2364 (
'Psi2SToJPsiPiPi_14TeV_TuneCP5_pythia8_cfi',
UpgradeFragment(
Kby(45,500),
'Psi2SToJPsiPiPi_14TeV')),
2365 (
'XiMinus_13p6TeV_SoftQCDInel_TuneCP5_cfi',
UpgradeFragment(
Kby(8000,90000),
'XiMinus_13p6TeV')),
2366 (
'Chib1PToUpsilon1SGamma_MuFilter_TuneCP5_14TeV-pythia8_evtgen_cfi',
UpgradeFragment(
Kby(3600,36000),
'Chib1PToUpsilon1SGamma_14TeV')),
2367 (
'ChicToJpsiGamma_MuFilter_TuneCP5_14TeV_pythia8_evtgen_cfi',
UpgradeFragment(
Kby(2000,20000),
'ChicToJpsiGamma_14TeV')),
2368 (
'B0ToJpsiK0s_JMM_Filter_DGamma0_TuneCP5_13p6TeV-pythia8-evtgen_cfi',
UpgradeFragment(
Kby(38000,38000),
'B0ToJpsiK0s_DGamma0_13p6TeV')),
2369 (
'DStarToD0Pi_D0ToKsPiPi_inclusive_SoftQCD_TuneCP5_13p6TeV-pythia8-evtgen',
UpgradeFragment(
Kby(38000,38000),
'DStarToD0Pi_D0ToKsPiPi_13p6TeV')),
2370 (
'LbToJpsiLambda_JMM_Filter_DGamma0_TuneCP5_13p6TeV-pythia8-evtgen_cfi',
UpgradeFragment(
Mby(66,660000),
'LbToJpsiLambda_DGamma0_13p6TeV')),
2371 (
'LbToJpsiXiK0sPi_JMM_Filter_DGamma0_TuneCP5_13p6TeV-pythia8-evtgen_cfi',
UpgradeFragment(
Mby(50,500000),
'LbToJpsiXiK0sPr_DGamma0_13p6TeV')),
2372 (
'OmegaMinus_13p6TeV_SoftQCDInel_TuneCP5_cfi',
UpgradeFragment(
Mby(100,1000000),
'OmegaMinus_13p6TeV')),
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 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 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 condition(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def workflow_(self, workflows, num, fragment, stepList, key)
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 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, digi={}, reco={}, harvest={}, kwargs)
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 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 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 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 getStepName(self, step, extra="")
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 __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 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 getStepNamePU(self, step, extra="")
def __init__(self, digi={}, reco={}, harvest={}, kwargs)
def condition(self, fragment, stepList, key, hasHarvest)