1 from copy
import copy, deepcopy
2 from collections
import OrderedDict
3 from .MatrixUtil
import merge, Kby, Mby
67 numWFConflict = [[20400,20800],
75 for year
in upgradeKeys:
76 for i
in range(0,len(upgradeKeys[year])):
77 numWFtmp = numWFStart[year]
if i==0
else (numWFAll[year][i-1] + numWFSkip)
78 for conflict
in numWFConflict:
79 if numWFtmp>=conflict[0]
and numWFtmp<conflict[1]:
80 numWFtmp = conflict[1]
82 numWFAll[year].
append(numWFtmp)
89 preventReuseKeyword =
'NOREUSE' 98 if not step
in self.
steps:
105 raise ValueError(
"Special workflow offset must be between 0.0 and 1.0")
107 stepName = step + self.
suffix + extra
110 stepNamePU = step +
'PU' + self.
suffix + extra
113 for step
in self.
steps:
119 def setup(self, stepDict, k, properties):
120 for step
in self.
steps:
127 def setup_(self, step, stepName, stepDict, k, properties):
129 def setupPU_(self, step, stepName, stepDict, k, properties):
131 def workflow(self, workflows, num, fragment, stepList, key, hasHarvest):
132 if self.condition(fragment, stepList, key, hasHarvest):
133 self.workflow_(workflows, num, fragment, stepList, key)
134 def workflow_(self, workflows, num, fragment, stepList, key):
135 fragmentTmp = [fragment, key]
137 workflows[num+self.
offset] = [ fragmentTmp, stepList ]
138 def condition(self, fragment, stepList, key, hasHarvest):
141 if "Sim" in stepName:
142 stepDict[stepName][k] =
None 143 if "Gen" in stepName:
144 stepDict[stepName][k] =
None 145 upgradeWFs = OrderedDict()
148 def setup_(self, step, stepName, stepDict, k, properties):
149 cust=properties.get(
'Custom',
None)
150 era=properties.get(
'Era',
None)
151 modifier=properties.get(
'ProcessModifier',
None)
152 if cust
is not None: stepDict[stepName][k][
'--customise']=cust
154 stepDict[stepName][k][
'--era']=era
155 if modifier
is not None: stepDict[stepName][k][
'--procModifier']=modifier
156 def condition(self, fragment, stepList, key, hasHarvest):
163 'GenSimHLBeamSpot14',
164 'GenSimHLBeamSpotHGCALCloseBy',
211 def setup_(self, step, stepName, stepDict, k, properties):
212 if stepDict[step][k] !=
None:
214 stepDict[stepName][k] =
None 215 if 'RecoNano' in step:
216 stepDict[stepName][k] =
merge([{
'--filein':
'file:step3.root',
'--secondfilein':
'file:step2.root'}, stepDict[step][k]])
218 stepDict[stepName][k] =
merge([{
'-s': re.sub(
',HLT.*',
'', stepDict[step][k][
'-s'])}, stepDict[step][k]])
219 def condition(self, fragment, stepList, key, hasHarvest):
220 if (
'TTbar_14TeV' in fragment
and '2021' == key):
221 stepList.insert(stepList.index(
'Digi_DigiNoHLT_2021')+1,
'HLTRun3_2021')
222 return (
'TTbar_14TeV' in fragment
and '2021' == key)
230 suffix =
'_DigiNoHLT',
239 steps = steps + [
"ALCA",
"Nano"]
240 super().
__init__(steps, PU, suffix, offset)
241 def condition(self, fragment, stepList, key, hasHarvest):
242 result = (fragment==
"TTbar_13" or fragment==
"TTbar_14TeV")
and not 'PU' in key
and hasHarvest
and self.
condition_(fragment, stepList, key, hasHarvest)
246 def setup_(self, step, stepName, stepDict, k, properties):
248 if 'ALCA' in step
or 'Nano'==step:
249 stepDict[stepName][k] =
None 250 self.
setup__(step, stepName, stepDict, k, properties)
252 def setup__(self, step, stepName, stepDict, k, properties):
255 class UpgradeWorkflow_trackingOnly(UpgradeWorkflowTracking):
256 def setup__(self, step, stepName, stepDict, k, properties):
257 if 'Reco' in step: stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
258 elif 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@trackingOnlyDQM'}, stepDict[step][k]])
260 def condition(self, fragment, stepList, key, hasHarvest):
261 result = (fragment==
"TTbar_13" or fragment==
"TTbar_14TeV")
and hasHarvest
and self.
condition_(fragment, stepList, key, hasHarvest)
289 suffix =
'_trackingOnly',
292 upgradeWFs[
'trackingOnly'].step3 = {
293 '-s':
'RAW2DIGI,RECO:reconstruction_trackingOnly,VALIDATION:@trackingOnlyValidation,DQM:@trackingOnlyDQM',
294 '--datatier':
'GEN-SIM-RECO,DQMIO',
295 '--eventcontent':
'RECOSIM,DQM',
298 step3_trackingOnly = upgradeWFs[
'trackingOnly'].step3
301 def setup__(self, step, stepName, stepDict, k, properties):
302 if 'Reco' in step
and stepDict[step][k][
'--era']==
'Run2_2017':
303 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2017_trackingRun2'}, stepDict[step][k]])
312 suffix =
'_trackingRun2',
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_trackingRun2'}, self.
step3, stepDict[step][k]])
320 elif 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@trackingOnlyDQM'}, stepDict[step][k]])
331 suffix =
'_trackingOnlyRun2',
334 upgradeWFs[
'trackingOnlyRun2'].step3 = upgradeWFs[
'trackingOnly'].step3
337 def setup__(self, step, stepName, stepDict, k, properties):
338 if 'Reco' in step
and stepDict[step][k][
'--era']==
'Run2_2017':
339 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2017_trackingLowPU'}, stepDict[step][k]])
348 suffix =
'_trackingLowPU',
353 def setup__(self, step, stepName, stepDict, k, properties):
354 if 'Reco' in step: stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
356 elif 'ALCA' in step: stepDict[stepName][k] =
None 357 elif 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM'}, stepDict[step][k]])
359 return (
'2017' in key
or '2018' in key
or '2021' in key
or '2026' in key)
and (
'FS' not in key)
374 suffix =
'_pixelTrackingOnly',
377 upgradeWFs[
'pixelTrackingOnly'].step3 = {
378 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
379 '--datatier':
'GEN-SIM-RECO,DQMIO',
380 '--eventcontent':
'RECOSIM,DQM',
384 def setup__(self, step, stepName, stepDict, k, properties):
385 if 'Digi' in step: stepDict[stepName][k] =
merge([self.
step2, stepDict[step][k]])
386 if 'Reco' in step: stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
388 return '2017' in key
or '2021' in key
399 suffix =
'_trackingMkFit',
402 upgradeWFs[
'trackingMkFit'].step2 = {
403 '--customise':
'RecoTracker/MkFit/customizeHLTIter0ToMkFit.customizeHLTIter0ToMkFit' 405 upgradeWFs[
'trackingMkFit'].step3 = {
406 '--procModifiers':
'trackingMkFitDevel' 411 def setup_(self, step, stepName, stepDict, k, properties):
413 if 'ALCA' in step
or 'Nano'==step:
414 stepDict[stepName][k] =
None 415 elif 'Reco' in step
or 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'--procModifiers':
'seedingDeepCore'}, stepDict[step][k]])
416 def condition(self, fragment, stepList, key, hasHarvest):
417 result = (fragment==
"QCD_Pt_1800_2400_14" or fragment==
"TTbar_14TeV" )
and (
'2021' in key
or '2024' in key)
and hasHarvest
437 suffix =
'_seedingDeepCore',
443 def setup_(self, step, stepName, stepDict, k, properties):
444 stepDict[stepName][k] =
merge([{
'--procModifiers':
'vectorHits'}, stepDict[step][k]])
445 def condition(self, fragment, stepList, key, hasHarvest):
446 return (fragment==
"TTbar_14TeV" or fragment==
"SingleMuPt10Extended")
and '2026' in key
456 suffix =
'_vectorHits',
462 def __init__(self, reco = {}, harvest = {}, **kwargs):
464 super(UpgradeWorkflow_weightedVertex, self).
__init__(
489 def setup_(self, step, stepName, stepDict, k, properties):
492 mod = {
'--procModifiers':
'weightedVertexing,vertexInBlocks',
'--datatier':
'GEN-SIM-RECO,DQMIO',
493 '--eventcontent':
'RECOSIM,DQM'}
494 stepDict[stepName][k] =
merge([mod,self.
step3, stepDict[step][k]])
495 if 'HARVEST' in step:
496 stepDict[stepName][k] =
merge([self.
step4,stepDict[step][k]])
498 def condition(self, fragment, stepList, key, hasHarvest):
501 (
'2021' in key
and fragment ==
"TTbar_14TeV" and 'FS' not in key),
502 (
'2024' in key
and fragment ==
"TTbar_14TeV"),
503 (
'2026' in key
and fragment ==
"TTbar_14TeV")
505 result =
any(selected)
and hasHarvest
511 suffix =
'_weightedVertex',
515 upgradeWFs[
'weightedVertex'].step3 = {}
516 upgradeWFs[
'weightedVertex'].step4 = {}
519 suffix =
'_weightedVertexTrackingOnly',
523 upgradeWFs[
'weightedVertexTrackingOnly'].step3 = {
524 '-s':
'RAW2DIGI,RECO:reconstruction_trackingOnly,VALIDATION:@trackingOnlyValidation,DQM:@trackingOnlyDQM',
525 '--datatier':
'GEN-SIM-RECO,DQMIO',
526 '--eventcontent':
'RECOSIM,DQM',
529 upgradeWFs[
'weightedVertexTrackingOnly'].step4 = {
530 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' 535 def setup_(self, step, stepName, stepDict, k, properties):
536 if 'RecoGlobal' in step:
537 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
538 if 'HARVESTGlobal' in step:
539 stepDict[stepName][k] =
merge([self.
step4, stepDict[step][k]])
540 def condition(self, fragment, stepList, key, hasHarvest):
541 return (fragment==
"TTbar_14TeV" or 'CloseByPGun_CE' in fragment)
and '2026' in key
551 suffix =
'_ticl_clue3D',
554 upgradeWFs[
'ticl_clue3D'].step3 = {
'--procModifiers':
'clue3D'}
555 upgradeWFs[
'ticl_clue3D'].step4 = {
'--procModifiers':
'clue3D'}
558 def setup_(self, step, stepName, stepDict, k, properties):
559 if 'RecoGlobal' in step:
560 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
561 if 'HARVESTGlobal' in step:
562 stepDict[stepName][k] =
merge([self.
step4, stepDict[step][k]])
563 def condition(self, fragment, stepList, key, hasHarvest):
564 return (fragment==
"TTbar_14TeV" or 'CloseByPGun_CE' in fragment)
and '2026' in key
574 suffix =
'_ticl_FastJet',
577 upgradeWFs[
'ticl_FastJet'].step3 = {
'--procModifiers':
'fastJetTICL'}
578 upgradeWFs[
'ticl_FastJet'].step4 = {
'--procModifiers':
'fastJetTICL'}
581 def setup_(self, step, stepName, stepDict, k, properties):
582 if 'RecoGlobal' in step:
583 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
584 if 'HARVESTGlobal' in step:
585 stepDict[stepName][k] =
merge([self.
step4, stepDict[step][k]])
586 def condition(self, fragment, stepList, key, hasHarvest):
587 return (fragment==
"TTbar_14TeV" or 'CloseByP' in fragment
or 'Eta1p7_2p7' in fragment)
and '2026' in key
600 upgradeWFs[
'ticl_v3'].step3 = {
'--procModifiers':
'ticl_v3'}
601 upgradeWFs[
'ticl_v3'].step4 = {
'--procModifiers':
'ticl_v3'}
606 def setup_(self, step, stepName, stepDict, k, properties):
607 stepDict[stepName][k] =
merge([{
'--procModifiers':
'trackdnn'}, stepDict[step][k]])
609 def condition(self, fragment, stepList, key, hasHarvest):
610 return fragment==
"TTbar_14TeV" and '2021' in key
620 suffix =
'_trackdnn',
627 def setup_(self, step, stepName, stepDict, k, properties):
629 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
630 def condition(self, fragment, stepList, key, hasHarvest):
631 return (fragment==
"TTbar_14TeV" or fragment==
"QCD_FlatPt_15_3000HS_14")
and '2021PU' in key
645 upgradeWFs[
'mlpf'].step3 = {
646 '--datatier':
'GEN-SIM-RECO,RECOSIM,MINIAODSIM,NANOAODSIM,DQMIO',
647 '--eventcontent':
'FEVTDEBUGHLT,RECOSIM,MINIAODSIM,NANOEDMAODSIM,DQM',
648 '--procModifiers':
'mlpf' 654 def setup_(self, step, stepName, stepDict, k, properties):
656 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
657 def condition(self, fragment, stepList, key, hasHarvest):
658 return (fragment==
"ZEE_14" or fragment==
"TTbar_14TeV" or fragment==
"WprimeTolNu_M3000_13TeV_pythia8" 659 or fragment==
"DisplacedSUSY_stopToBottom_M_300_1000mm_13" or fragment==
"RunEGamma2018D" )
670 suffix =
'_ecalDeepSC',
673 upgradeWFs[
'ecalDeepSC'].step3 = {
674 '--datatier':
'RECOSIM,MINIAODSIM,NANOAODSIM,DQMIO',
675 '--eventcontent':
'RECOSIM,MINIAODSIM,NANOEDMAODSIM,DQM',
676 '--procModifiers':
'ecal_deepsc' 682 def setup_(self, step, stepName, stepDict, k, properties):
684 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
685 def condition(self, fragment, stepList, key, hasHarvest):
686 return '2018' in key
and "SingleGamma" in fragment
699 suffix =
'_photonDRN',
702 upgradeWFs[
'photonDRN'].step3 = {
703 '--procModifiers':
'enableSonicTriton,photonDRN' 713 def __init__(self, digi = {}, reco = {}, harvest = {}, **kwargs):
715 super(PatatrackWorkflow, self).
__init__(
736 '--datatier':
'GEN-SIM-RECO,DQMIO',
737 '--eventcontent':
'RECOSIM,DQM' 741 def condition(self, fragment, stepList, key, hasHarvest):
744 (
'2018' in key
and fragment ==
"TTbar_13"),
745 (
'2021' in key
and fragment ==
"TTbar_14TeV" and 'FS' not in key),
746 (
'2018' in key
and fragment ==
"ZMM_13"),
747 (
'2021' in key
and fragment ==
"ZMM_14" and 'FS' not in key),
748 (
'2026D88' in key
and fragment ==
"TTbar_14TeV" and "PixelOnly" in self.
suffix)
750 result =
any(selected)
and hasHarvest
754 def setup_(self, step, stepName, stepDict, k, properties):
756 if 'ALCA' in step
or 'Nano'==step:
757 stepDict[stepName][k] =
None 760 stepDict[stepName][k] =
None 762 stepDict[stepName][k] =
merge([self.
__digi, stepDict[step][k]])
765 stepDict[stepName][k] =
None 767 stepDict[stepName][k] =
merge([self.
__reco, stepDict[step][k]])
768 elif 'HARVEST' in step:
770 stepDict[stepName][k] =
None 772 stepDict[stepName][k] =
merge([self.
__harvest, stepDict[step][k]])
783 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
784 '--procModifiers':
'pixelNtupletFit' 787 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' 789 suffix =
'Patatrack_PixelOnlyCPU',
800 '--procModifiers':
'gpu' 803 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
804 '--procModifiers':
'pixelNtupletFit,gpu' 807 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' 809 suffix =
'Patatrack_PixelOnlyGPU',
820 '--accelerators':
'gpu-nvidia',
821 '--procModifiers':
'gpu' 824 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
825 '--accelerators':
'gpu-nvidia',
826 '--procModifiers':
'pixelNtupletFit,gpuValidation' 829 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM',
830 '--procModifiers':
'gpuValidation' 832 suffix =
'Patatrack_PixelOnlyGPU_Validation',
842 '--procModifiers':
'gpu' 845 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly',
846 '--procModifiers':
'pixelNtupletFit,gpu',
847 '--customise' :
'RecoTracker/Configuration/customizePixelOnlyForProfiling.customizePixelOnlyForProfilingGPUOnly' 850 suffix =
'Patatrack_PixelOnlyGPU_Profiling',
863 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
864 '--procModifiers':
'pixelNtupletFit',
865 '--customise' :
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 868 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' 870 suffix =
'Patatrack_PixelOnlyTripletsCPU',
881 '--procModifiers':
'gpu' 884 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
885 '--procModifiers':
'pixelNtupletFit,gpu',
886 '--customise':
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 889 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' 891 suffix =
'Patatrack_PixelOnlyTripletsGPU',
902 '--accelerators':
'gpu-nvidia',
903 '--procModifiers':
'gpu' 906 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
907 '--accelerators':
'gpu-nvidia',
908 '--procModifiers':
'pixelNtupletFit,gpuValidation',
909 '--customise':
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 912 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM',
913 '--procModifiers':
'gpuValidation',
915 suffix =
'Patatrack_PixelOnlyTripletsGPU_Validation',
925 '--procModifiers':
'gpu' 928 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly',
929 '--procModifiers':
'pixelNtupletFit,gpu',
930 '--customise':
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets,RecoTracker/Configuration/customizePixelOnlyForProfiling.customizePixelOnlyForProfilingGPUOnly' 933 suffix =
'Patatrack_PixelOnlyTripletsGPU_Profiling',
946 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly',
949 '-s':
'HARVESTING:@ecalOnlyValidation+@ecal' 951 suffix =
'Patatrack_ECALOnlyCPU',
962 '--procModifiers':
'gpu' 965 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly',
966 '--procModifiers':
'gpu' 969 '-s':
'HARVESTING:@ecalOnlyValidation+@ecal' 971 suffix =
'Patatrack_ECALOnlyGPU',
982 '--accelerators':
'gpu-nvidia',
983 '--procModifiers':
'gpu' 986 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly',
987 '--accelerators':
'gpu-nvidia',
988 '--procModifiers':
'gpuValidation' 991 '-s':
'HARVESTING:@ecalOnlyValidation+@ecal' 993 suffix =
'Patatrack_ECALOnlyGPU_Validation',
1003 '--procModifiers':
'gpu' 1006 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly',
1007 '--procModifiers':
'gpu',
1008 '--customise' :
'RecoLocalCalo/Configuration/customizeEcalOnlyForProfiling.customizeEcalOnlyForProfilingGPUOnly' 1011 suffix =
'Patatrack_ECALOnlyGPU_Profiling',
1024 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only',
1027 '-s':
'HARVESTING:@hcalOnlyValidation+@hcalOnly+@hcal2Only' 1029 suffix =
'Patatrack_HCALOnlyCPU',
1040 '--procModifiers':
'gpu' 1043 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only',
1044 '--procModifiers':
'gpu' 1047 '-s':
'HARVESTING:@hcalOnlyValidation+@hcalOnly+@hcal2Only' 1049 suffix =
'Patatrack_HCALOnlyGPU',
1060 '--accelerators':
'gpu-nvidia',
1061 '--procModifiers':
'gpu' 1064 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only',
1065 '--accelerators':
'gpu-nvidia',
1066 '--procModifiers':
'gpuValidation' 1069 '-s':
'HARVESTING:@hcalOnlyValidation+@hcal' 1071 suffix =
'Patatrack_HCALOnlyGPU_Validation',
1081 '--procModifiers':
'gpu' 1084 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly',
1085 '--procModifiers':
'gpu',
1086 '--customise' :
'RecoLocalCalo/Configuration/customizeHcalOnlyForProfiling.customizeHcalOnlyForProfilingGPUOnly' 1089 suffix =
'Patatrack_HCALOnlyGPU_Profiling',
1102 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1103 '--procModifiers':
'pixelNtupletFit' 1106 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' 1108 suffix =
'Patatrack_AllCPU',
1119 '--procModifiers':
'gpu' 1122 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1123 '--procModifiers':
'pixelNtupletFit,gpu' 1126 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' 1128 suffix =
'Patatrack_AllGPU',
1139 '--accelerators':
'gpu-nvidia',
1140 '--procModifiers':
'gpu' 1143 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1144 '--accelerators':
'gpu-nvidia',
1145 '--procModifiers':
'pixelNtupletFit,gpuValidation' 1148 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only',
1149 '--procModifiers':
'gpuValidation' 1151 suffix =
'Patatrack_AllGPU_Validation',
1169 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1170 '--procModifiers':
'pixelNtupletFit' 1173 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' 1175 suffix =
'Patatrack_AllTripletsCPU',
1186 '--procModifiers':
'gpu' 1189 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1190 '--procModifiers':
'pixelNtupletFit,gpu' 1193 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' 1195 suffix =
'Patatrack_AllTripletsGPU',
1206 '--accelerators':
'gpu-nvidia',
1207 '--procModifiers':
'gpu' 1210 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1211 '--accelerators':
'gpu-nvidia',
1212 '--procModifiers':
'pixelNtupletFit,gpuValidation' 1215 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only',
1216 '--procModifiers':
'gpuValidation' 1218 suffix =
'Patatrack_AllTripletsGPU_Validation',
1237 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1238 '--procModifiers':
'pixelNtupletFit' 1243 suffix =
'Patatrack_FullRecoCPU',
1254 '--procModifiers':
'gpu' 1258 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1259 '--procModifiers':
'pixelNtupletFit,gpu' 1264 suffix =
'Patatrack_FullRecoGPU',
1275 '--accelerators':
'gpu-nvidia',
1276 '--procModifiers':
'gpu' 1280 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1281 '--accelerators':
'gpu-nvidia',
1282 '--procModifiers':
'pixelNtupletFit,gpuValidation' 1287 suffix =
'Patatrack_FullRecoGPU_Validation',
1301 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1302 '--procModifiers':
'pixelNtupletFit',
1303 '--customise' :
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 1308 suffix =
'Patatrack_FullRecoTripletsCPU',
1319 '--procModifiers':
'gpu' 1323 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1324 '--procModifiers':
'pixelNtupletFit,gpu',
1325 '--customise':
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 1330 suffix =
'Patatrack_FullRecoTripletsGPU',
1341 '--accelerators':
'gpu-nvidia',
1342 '--procModifiers':
'gpu' 1346 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1347 '--accelerators':
'gpu-nvidia',
1348 '--procModifiers':
'pixelNtupletFit,gpuValidation',
1349 '--customise' :
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 1354 suffix =
'Patatrack_FullRecoTripletsGPU_Validation',
1362 def setup_(self, step, stepName, stepDict, k, properties):
1363 if 'GenSimHLBeamSpot14' in step:
1364 stepDict[stepName][k] =
merge([{
'--eventcontent':
'RAWSIM',
'--datatier':
'GEN-SIM'},stepDict[step][k]])
1365 elif 'Digi' in step
and 'Trigger' not in step:
1366 stepDict[stepName][k] =
merge([{
'-s':
'DIGI,L1,DIGI2RAW,HLT:@relval2022',
'--datatier':
'GEN-SIM-RAW',
'--eventcontent':
'RAWSIM'}, stepDict[step][k]])
1367 elif 'DigiTrigger' in step:
1368 stepDict[stepName][k] =
merge([{
'-s':
'DIGI,L1TrackTrigger,L1,DIGI2RAW,HLT:@fake2',
'--datatier':
'GEN-SIM-RAW',
'--eventcontent':
'RAWSIM'}, stepDict[step][k]])
1369 elif 'Reco' in step:
1370 stepDict[stepName][k] =
merge([{
'-s':
'RAW2DIGI,L1Reco,RECO,RECOSIM',
'--datatier':
'AODSIM',
'--eventcontent':
'AODSIM'}, stepDict[step][k]])
1371 elif 'MiniAOD' in step:
1373 stepDict[stepName][k] = deepcopy(stepDict[step][k])
1374 elif 'ALCA' in step
or 'HARVEST' in step:
1376 stepDict[stepName][k] =
None 1378 stepDict[stepName][k] =
merge([{
'--filein':
'file:step4.root',
'-s':
'NANO',
'--datatier':
'NANOAODSIM',
'--eventcontent':
'NANOEDMAODSIM'}, stepDict[step][k]])
1380 return fragment==
"TTbar_14TeV" and (
'2026' in key
or '2021' in key)
1383 'GenSimHLBeamSpot14',
1398 'GenSimHLBeamSpot14',
1412 suffix =
'_ProdLike',
1417 def __init__(self, suffix, offset, fixedPU,
1420 'GenSimHLBeamSpot14',
1434 super(UpgradeWorkflow_ProdLikeRunningPU, self).
__init__(steps, PU, suffix, offset)
1436 def setupPU_(self, step, stepName, stepDict, k, properties):
1438 if stepDict[stepName][k]
is not None and '--pileup' in stepDict[stepName][k]:
1439 stepDict[stepName][k][
'--pileup'] =
'AVE_' +
str(self.
__fixedPU) +
'_BX_25ns' 1442 return (fragment==
"TTbar_14TeV")
and ((
'2026' in key)
or (
'2021' in key
and self.
__fixedPU<=100))
1449 suffix =
'_ProdLikePU10',
1455 suffix =
'_ProdLikePU20',
1461 suffix =
'_ProdLikePU30',
1467 suffix =
'_ProdLikePU40',
1473 suffix =
'_ProdLikePU50',
1479 suffix =
'_ProdLikePU60',
1485 suffix =
'_ProdLikePU70',
1491 suffix =
'_ProdLikePU80',
1497 suffix =
'_ProdLikePU90',
1503 suffix =
'_ProdLikePU100',
1509 suffix =
'_ProdLikePU120',
1515 suffix =
'_ProdLikePU140',
1521 suffix =
'_ProdLikePU160',
1527 suffix =
'_ProdLikePU180',
1533 def setup_(self, step, stepName, stepDict, k, properties):
1534 if 'HARVEST' in step:
1535 stepDict[stepName][k] =
merge([{
'--filein':
'file:step3_inDQM.root'}, stepDict[step][k]])
1537 stepDict[stepName][k] =
merge([stepDict[step][k]])
1539 return fragment==
"TTbar_14TeV" and '2026' in key
1542 'GenSimHLBeamSpot14',
1549 'GenSimHLBeamSpot14',
1555 suffix =
'_HLT75e33',
1560 def setup_(self, step, stepName, stepDict, k, properties):
1561 if 'DigiTrigger' in step:
1562 stepDict[stepName][k] =
merge([{
'-s':
'DIGI:pdigi_valid,L1TrackTrigger,L1,DIGI2RAW,HLT:@relval2026'}, stepDict[step][k]])
1564 return fragment==
"TTbar_14TeV" and '2026' in key
1572 suffix =
'_HLTwDIGI75e33',
1577 def setup_(self, step, stepName, stepDict, k, properties):
1578 if 'GenSim' in step:
1579 custNew =
"SimG4Core/Application/NeutronBGforMuonsXS_cff.customise" 1581 custNew =
"SLHCUpgradeSimulations/Configuration/customise_mixing.customise_Mix_LongLived_Neutrons" 1582 stepDict[stepName][k] = deepcopy(stepDict[step][k])
1583 if '--customise' in stepDict[stepName][k].
keys():
1584 stepDict[stepName][k][
'--customise'] +=
","+custNew
1586 stepDict[stepName][k][
'--customise'] = custNew
1593 'GenSimHLBeamSpot14',
1601 suffix =
'_Neutron',
1605 upgradeWFs[
'Neutron'].neutronKeys = [x
for x
in upgradeKeys[2026]
if 'PU' not in x]
1606 upgradeWFs[
'Neutron'].neutronFrags = [
'ZMM_14',
'MinBias_14TeV']
1609 def setup_(self, step, stepName, stepDict, k, properties):
1610 stepDict[stepName][k] =
merge([{
'--procModifiers':
'run2_HECollapse_2018'}, stepDict[step][k]])
1612 return fragment==
"TTbar_13" and '2018' in key
1626 suffix =
'_heCollapse',
1632 def __init__(self, digi = {}, reco = {}, harvest = {}, **kwargs):
1634 super(UpgradeWorkflow_ecalDevel, self).
__init__(
1652 def setup_(self, step, stepName, stepDict, k, properties):
1654 mods = {
'--era': stepDict[step][k][
'--era']+
',phase2_ecal_devel'}
1656 mods[
'-s'] =
'DIGI:pdigi_valid,DIGI2RAW' 1658 elif 'Reco' in step:
1659 mods[
'-s'] =
'RAW2DIGI,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly' 1660 mods[
'--datatier'] =
'GEN-SIM-RECO,DQMIO' 1661 mods[
'--eventcontent'] =
'FEVTDEBUGHLT,DQM' 1663 elif 'HARVEST' in step:
1664 mods[
'-s'] =
'HARVESTING:@ecalOnlyValidation+@ecal' 1666 stepDict[stepName][k] =
merge([mods, stepDict[step][k]])
1669 stepDict[stepName][k] =
None 1672 return fragment==
"TTbar_14TeV" and '2026' in key
1676 suffix =
'_ecalDevel',
1682 reco = {
'--procModifiers':
'gpu'},
1683 suffix =
'_ecalDevelGPU',
1688 def setup_(self, step, stepName, stepDict, k, properties):
1689 myGT=stepDict[step][k][
'--conditions']
1691 stepDict[stepName][k] =
merge([{
'-n':
'1',
'--magField':
'0T',
'--conditions':myGT}, stepDict[step][k]])
1692 def setupPU_(self, step, stepName, stepDict, k, properties):
1694 stepDict[stepName][k] =
merge([{
'-n':
'1'}, stepDict[step][k]])
1696 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)
1719 def setup_(self, step, stepName, stepDict, k, properties):
1720 if 'Reco' in step
and 'Run2_2018' in stepDict[step][k][
'--era']:
1721 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2018,bParking'}, stepDict[step][k]])
1723 return fragment==
"TTbar_13" and '2018' in key
1729 suffix =
'_ParkingBPH',
1734 def setup_(self, step, stepName, stepDict, k, properties):
1736 stepDict[stepName][k] =
merge([{
'--customise':
'PhysicsTools/NanoAOD/custom_jme_cff.PrepJMECustomNanoAOD_MC'}, stepDict[step][k]])
1738 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)
1745 suffix =
'_JMENano',
1752 def setup_(self, step, stepName, stepDict, k, properties):
1753 if 'Digi' in step
or 'Reco' in step:
1754 stepDict[stepName][k] =
merge([{
'--customise':
'SLHCUpgradeSimulations/Configuration/aging.customise_aging_'+self.
lumi}, stepDict[step][k]])
1756 return '2026' in key
1773 suffix =
'Aging1000',
1776 upgradeWFs[
'Aging1000'].lumi =
'1000' 1777 upgradeWFs[
'Aging3000'] = deepcopy(upgradeWFs[
'Aging1000'])
1778 upgradeWFs[
'Aging3000'].suffix =
'Aging3000' 1779 upgradeWFs[
'Aging3000'].offset = 0.103
1780 upgradeWFs[
'Aging3000'].lumi =
'3000' 1787 def setup_(self, step, stepName, stepDict, k, properties):
1789 stepDict[stepName][k] =
merge([{
'--customise':
'SimTracker/SiPhase2Digitizer/customizeForOTInefficiency.customizeSiPhase2OTInefficiency'+self.
percent+
'Percent'}, stepDict[step][k]])
1791 return fragment==
"TTbar_14TeV" and '2026' in key
1802 suffix =
'_OTInefficiency',
1805 upgradeWFs[
'OTInefficiency'].percent =
'Zero' 1808 upgradeWFs[
'OTInefficiency1PC'] = deepcopy(upgradeWFs[
'OTInefficiency'])
1809 upgradeWFs[
'OTInefficiency1PC'].suffix =
'_OTInefficiency1PC' 1810 upgradeWFs[
'OTInefficiency1PC'].offset = 0.112
1811 upgradeWFs[
'OTInefficiency1PC'].percent =
'One' 1814 upgradeWFs[
'OTInefficiency5PC'] = deepcopy(upgradeWFs[
'OTInefficiency'])
1815 upgradeWFs[
'OTInefficiency5PC'].suffix =
'_OTInefficiency5PC' 1816 upgradeWFs[
'OTInefficiency5PC'].offset = 0.113
1817 upgradeWFs[
'OTInefficiency5PC'].percent =
'Five' 1820 upgradeWFs[
'OTInefficiency10PC'] = deepcopy(upgradeWFs[
'OTInefficiency'])
1821 upgradeWFs[
'OTInefficiency10PC'].suffix =
'_OTInefficiency10PC' 1822 upgradeWFs[
'OTInefficiency10PC'].offset = 0.114
1823 upgradeWFs[
'OTInefficiency10PC'].percent =
'Ten' 1831 digiPremixLocalPileup = {
1832 "--filein":
"file:step1.root",
1833 "--pileup_input":
"file:step2.root" 1838 def setup_(self, step, stepName, stepDict, k, properties):
1840 stepDict[stepName][k] =
merge([stepDict[step][k]])
1841 def setupPU_(self, step, stepName, stepDict, k, properties):
1843 if "GenSim" in stepName:
1844 stepNamePmx = stepName.replace(
'GenSim',
'Premix')
1845 if not stepNamePmx
in stepDict: stepDict[stepNamePmx] = {}
1846 stepDict[stepNamePmx][k] =
merge([
1848 '-s':
'GEN,SIM,DIGI:pdigi_valid',
1849 '--datatier':
'PREMIX',
1850 '--eventcontent':
'PREMIX',
1851 '--procModifiers':
'premix_stage1' 1853 stepDict[stepName][k]
1855 if "ProdLike" in self.
suffix:
1856 stepDict[stepNamePmx][k] =
merge([{
'-s':
'GEN,SIM,DIGI'},stepDict[stepNamePmx][k]])
1858 elif "Digi" in step
or "Reco" in step:
1861 if d
is None:
return 1864 for s
in d[
"-s"].
split(
","):
1865 if s ==
"DIGI" or "DIGI:" in s:
1866 tmpsteps.extend([s,
"DATAMIX"])
1870 "--datamix" :
"PreMix",
1871 "--procModifiers":
"premix_stage2"},
1874 if "_PMXS1S2" in self.
suffix:
1875 d =
merge([digiPremixLocalPileup, d])
1876 elif "Reco" in step:
1877 if "--procModifiers" in d:
1878 d[
"--procModifiers"] +=
",premix_stage2" 1880 d[
"--procModifiers"] =
"premix_stage2" 1881 stepDict[stepName][k] = d
1887 filein = d[
"--filein"]
1888 m = re.search(
"step(?P<ind>\d+)_", filein)
1890 d[
"--filein"] = filein.replace(m.group(),
"step%d_"%(
int(m.group(
"ind"))+1))
1891 stepDict[stepName][k] = d
1897 if not any(y
in key
for y
in [
'2021',
'2023',
'2024',
'2026']):
1899 if self.
suffix.endswith(
"S1"):
1900 return "NuGun" in fragment
1902 def workflow_(self, workflows, num, fragment, stepList, key):
1903 fragmentTmp = fragment
1904 if self.
suffix.endswith(
"S1"):
1905 fragmentTmp =
'PREMIXUP' + key[2:].
replace(
"PU",
"").
replace(
"Design",
"") +
'_PU25' 1906 super(UpgradeWorkflowPremix,self).
workflow_(workflows, num, fragmentTmp, stepList, key)
1914 'GenSimHLBeamSpot14',
1940 'GenSimHLBeamSpot14',
1949 suffix =
'_PMXS1S2',
1954 def setupPU_(self, step, stepName, stepDict, k, properties):
1956 if '--pileup' in stepDict[stepName][k]:
1957 stepDict[stepName][k][
'--pileup'] =
'AVE_50_BX_25ns_m3p3' 1958 super(UpgradeWorkflowAdjustPU,self).
setupPU_(step, stepName, stepDict, k, properties)
1961 return super(UpgradeWorkflowAdjustPU,self).
condition(fragment, stepList, key, hasHarvest)
and '2026' in key
1967 'GenSimHLBeamSpot14',
1977 suffix =
'_PMXS1S2PR',
1982 def setup_(self, step, stepName, stepDict, k, properties):
1984 UpgradeWorkflowPremix.setup_(self, step, stepName, stepDict, k, properties)
1985 UpgradeWorkflow_ProdLike.setup_(self, step, stepName, stepDict, k, properties)
1990 for s
in d[
"-s"].
split(
","):
1991 if "DIGI:pdigi_valid" in s:
1992 tmpsteps.append(
"DIGI")
1996 "--eventcontent":
"PREMIXRAW"},
1998 stepDict[stepName][k] = d
2000 stepDict[stepName][k] =
merge([{
'--filein':
'file:step5.root',
'-s':
'NANO',
'--datatier':
'NANOAODSIM',
'--eventcontent':
'NANOEDMAODSIM'}, stepDict[step][k]])
2003 return UpgradeWorkflowPremix.condition(self, fragment, stepList, key, hasHarvest)
and UpgradeWorkflow_ProdLike.condition(self, fragment, stepList, key, hasHarvest)
2021 suffix =
'_PMXS2ProdLike',
2030 'GenSimHLBeamSpot14',
2044 suffix =
'_PMXS1S2ProdLike',
2049 def setup_(self, step, stepName, stepDict, k, properties):
2050 if 'HARVESTFastRun3' in step:
2051 stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@trackingOnlyDQM',
2053 '--era':
'Run3_FastSim',
2054 '--filein':
'file:step1_inDQM.root'}, stepDict[step][k]])
2056 stepDict[stepName][k] =
merge([stepDict[step][k]])
2058 return (
'2021FS' in key
or '2023FS' in key)
2069 suffix =
'_Run3FSTrackingOnly',
2074 def setup_(self, step, stepName, stepDict, k, properties):
2076 stepDict[stepName][k] =
merge([{
'-s':
'GEN,SIM,RECOBEFMIX',
2078 '--era':
'Run3_FastSim',
2079 '--eventcontent':
'FASTPU',
2080 '--datatier':
'GEN-SIM-RECO',
2081 '--relval':
'27000,3000'}, stepDict[step][k]])
2083 stepDict[stepName][k] =
None 2085 return (
'2021FS' in key
or '2023FS' in key)
and fragment==
"MinBias_14TeV" 2093 suffix =
'_Run3FSMBMixing',
2098 def setup_(self, step, stepName, stepDict, k, properties):
2099 if 'Run3' in stepDict[step][k][
'--era']
and 'Fast' not in stepDict[step][k][
'--era']:
2100 if '2023' in stepDict[step][k][
'--conditions']:
2101 stepDict[stepName][k] =
merge([{
'--geometry':
'DD4hepExtended2023'}, stepDict[step][k]])
2103 stepDict[stepName][k] =
merge([{
'--geometry':
'DD4hepExtended2021'}, stepDict[step][k]])
2104 elif 'Phase2' in stepDict[step][k][
'--era']:
2106 dd4hepGeom+=stepDict[step][k][
'--geometry']
2107 stepDict[stepName][k] =
merge([{
'--geometry' : dd4hepGeom,
'--procModifiers':
'dd4hep'}, stepDict[step][k]])
2109 return (
'2021' in key
or '2023' in key
or '2026' in key)
and (
'FS' not in key)
2114 'GenSimHLBeamSpot14',
2129 upgradeWFs[
'DD4hep'].allowReuse =
False 2134 def setup_(self, step, stepName, stepDict, k, properties):
2135 if 'Run3' in stepDict[step][k][
'--era']
and 'Fast' not in stepDict[step][k][
'--era']:
2136 stepDict[stepName][k] =
merge([{
'--conditions':
'auto:phase1_2022_realistic',
'--geometry':
'DB:Extended'}, stepDict[step][k]])
2138 return '2021' in key
and 'FS' not in key
2143 'GenSimHLBeamSpot14',
2155 suffix =
'_DD4hepDB',
2158 upgradeWFs[
'DD4hepDB'].allowReuse =
False 2161 def setup_(self, step, stepName, stepDict, k, properties):
2162 if 'Run3' in stepDict[step][k][
'--era']
and '2023' not in stepDict[step][k][
'--era']
and 'Fast' not in stepDict[step][k][
'--era']:
2164 tmp_eras = stepDict[step][k][
'--era'].
split(
',')
2165 tmp_eras[tmp_eras.index(
"Run3")] =
'Run3_DDD' 2166 tmp_eras =
','.
join(tmp_eras)
2167 stepDict[stepName][k] =
merge([{
'--conditions':
'auto:phase1_2022_realistic_ddd',
'--geometry':
'DB:Extended',
'--era': tmp_eras}, stepDict[step][k]])
2169 return '2021' in key
and 'FS' not in key
2174 'GenSimHLBeamSpot14',
2189 upgradeWFs[
'DDDDB'].allowReuse =
False 2192 def setup_(self, step, stepName, stepDict, k, properties):
2193 stepDict[stepName][k] =
merge([{
'--procModifiers':
'allSonicTriton'}, stepDict[step][k]])
2195 return (fragment==
'TTbar_13' and '2021' in key) \
2196 or (fragment==
'TTbar_14TeV' and '2026' in key)
2201 'GenSimHLBeamSpot14',
2215 'GenSimHLBeamSpot14',
2226 suffix =
'_SonicTriton',
2231 offsets = [specialWF.offset
for specialType,specialWF
in upgradeWFs.items()]
2233 dups = set(x
for x
in offsets
if x
in seen
or seen.add(x))
2235 raise ValueError(
"Duplicate special workflow offsets not allowed: "+
','.
join([
str(x)
for x
in dups]))
2237 upgradeProperties = {}
2239 upgradeProperties[2017] = {
2241 'Geom' :
'DB:Extended',
2242 'GT' :
'auto:phase1_2017_realistic',
2243 'HLTmenu':
'@relval2017',
2244 'Era' :
'Run2_2017',
2245 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT',
'ALCA',
'Nano'],
2248 'Geom' :
'DB:Extended',
2249 'GT' :
'auto:phase1_2017_design',
2250 'HLTmenu':
'@relval2017',
2251 'Era' :
'Run2_2017',
2252 'BeamSpot':
'GaussSigmaZ4cm',
2253 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT'],
2256 'Geom' :
'DB:Extended',
2257 'GT' :
'auto:phase1_2018_realistic',
2258 'HLTmenu':
'@relval2018',
2259 'Era' :
'Run2_2018',
2260 'BeamSpot':
'Realistic25ns13TeVEarly2018Collision',
2261 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT',
'ALCA',
'Nano'],
2264 'Geom' :
'DB:Extended',
2265 'GT' :
'auto:phase1_2018_design',
2266 'HLTmenu':
'@relval2018',
2267 'Era' :
'Run2_2018',
2268 'BeamSpot':
'GaussSigmaZ4cm',
2269 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT'],
2272 'Geom' :
'DB:Extended',
2273 'GT' :
'auto:phase1_2022_realistic',
2274 'HLTmenu':
'@relval2022',
2276 'BeamSpot':
'Realistic25ns13p6TeVEarly2022Collision',
2277 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
2280 'Geom' :
'DB:Extended',
2281 'GT' :
'auto:phase1_2022_design',
2282 'HLTmenu':
'@relval2022',
2284 'BeamSpot':
'GaussSigmaZ4cm',
2285 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano'],
2288 'Geom' :
'DB:Extended',
2289 'GT' :
'auto:phase1_2023_realistic',
2290 'HLTmenu':
'@relval2023',
2291 'Era' :
'Run3_2023',
2292 'BeamSpot':
'Realistic25ns13p6TeVEarly2022Collision',
2293 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
2296 'Geom' :
'DB:Extended',
2297 'GT' :
'auto:phase1_2024_realistic',
2298 'HLTmenu':
'@relval2023',
2300 'BeamSpot':
'Realistic25ns13p6TeVEarly2022Collision',
2301 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
2304 'Geom' :
'DB:Extended',
2305 'GT' :
'auto:phase1_2022_realistic',
2306 'HLTmenu':
'@relval2022',
2307 'Era' :
'Run3_FastSim',
2308 'BeamSpot':
'Realistic25ns13p6TeVEarly2022Collision',
2309 'ScenToRun' : [
'Gen',
'FastSimRun3',
'HARVESTFastRun3'],
2312 'Geom' :
'DB:Extended',
2313 'GT' :
'auto:phase1_2022_realistic_postEE',
2314 'HLTmenu':
'@relval2022',
2316 'BeamSpot':
'Realistic25ns13p6TeVEarly2022Collision',
2317 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
2320 'Geom' :
'DB:Extended',
2321 'GT' :
'auto:phase1_2023_realistic',
2322 'HLTmenu':
'@relval2023',
2323 'Era' :
'Run3_FastSim',
2324 'BeamSpot':
'Realistic25ns13p6TeVEarly2022Collision',
2325 'ScenToRun' : [
'Gen',
'FastSimRun3',
'HARVESTFastRun3'],
2330 for key
in list(upgradeProperties[2017].
keys()):
2331 upgradeProperties[2017][key+
'PU'] = deepcopy(upgradeProperties[2017][key])
2333 upgradeProperties[2017][key+
'PU'][
'ScenToRun'] = [
'GenSim',
'DigiPU'] + \
2334 ([
'RecoNanoPU',
'HARVESTNanoPU']
if '202' in key
else [
'RecoFakeHLTPU',
'HARVESTFakeHLTPU']) + \
2335 ([
'Nano']
if 'Nano' in upgradeProperties[2017][key][
'ScenToRun']
else [])
2337 upgradeProperties[2017][key+
'PU'][
'ScenToRun'] = [
'Gen',
'FastSimRun3PU',
'HARVESTFastRun3PU']
2339 upgradeProperties[2026] = {
2341 'Geom' :
'Extended2026D86',
2342 'HLTmenu':
'@fake2',
2343 'GT' :
'auto:phase2_realistic_T21',
2344 'Era' :
'Phase2C17I13M9',
2345 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2348 'Geom' :
'Extended2026D88',
2349 'HLTmenu':
'@relval2026',
2350 'GT' :
'auto:phase2_realistic_T21',
2351 'Era' :
'Phase2C17I13M9',
2352 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2355 'Geom' :
'Extended2026D91',
2356 'HLTmenu':
'@fake2',
2357 'GT' :
'auto:phase2_realistic_T30',
2358 'Era' :
'Phase2C17I13M9',
2359 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2362 'Geom' :
'Extended2026D92',
2363 'HLTmenu':
'@fake2',
2364 'GT' :
'auto:phase2_realistic_T21',
2365 'Era' :
'Phase2C17I13M9',
2366 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2369 'Geom' :
'Extended2026D93',
2370 'HLTmenu':
'@fake2',
2371 'GT' :
'auto:phase2_realistic_T21',
2372 'Era' :
'Phase2C17I13M9',
2373 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2376 'Geom' :
'Extended2026D94',
2377 'HLTmenu':
'@fake2',
2378 'GT' :
'auto:phase2_realistic_T21',
2379 'Era' :
'Phase2C20I13M9',
2380 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2383 'Geom' :
'Extended2026D95',
2384 'HLTmenu':
'@relval2026',
2385 'GT' :
'auto:phase2_realistic_T21',
2386 'Era' :
'Phase2C17I13M9',
2387 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2390 'Geom' :
'Extended2026D96',
2391 'HLTmenu':
'@fake2',
2392 'GT' :
'auto:phase2_realistic_T21',
2393 'Era' :
'Phase2C17I13M9',
2394 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2397 'Geom' :
'Extended2026D97',
2398 'HLTmenu':
'@fake2',
2399 'GT' :
'auto:phase2_realistic_T25',
2400 'Era' :
'Phase2C17I13M9',
2401 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2404 'Geom' :
'Extended2026D98',
2405 'HLTmenu':
'@fake2',
2406 'GT' :
'auto:phase2_realistic_T25',
2407 'Era' :
'Phase2C17I13M9',
2408 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2411 'Geom' :
'Extended2026D99',
2412 'HLTmenu':
'@fake2',
2413 'GT' :
'auto:phase2_realistic_T25',
2414 'Era' :
'Phase2C17I13M9',
2415 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2420 for key
in list(upgradeProperties[2026].
keys()):
2421 upgradeProperties[2026][key+
'PU'] = deepcopy(upgradeProperties[2026][key])
2422 upgradeProperties[2026][key+
'PU'][
'ScenToRun'] = [
'GenSimHLBeamSpot',
'DigiTriggerPU',
'RecoGlobalPU',
'HARVESTGlobalPU']
2425 defaultDataSets = {}
2426 for year
in upgradeKeys:
2427 for key
in upgradeKeys[year]:
2428 if 'PU' in key:
continue 2429 defaultDataSets[key] =
'' 2437 upgradeFragments = OrderedDict([
2439 (
'SingleElectronPt10_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronPt10')),
2440 (
'SingleElectronPt35_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronPt35')),
2441 (
'SingleElectronPt1000_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SingleElectronPt1000')),
2448 (
'FourMuExtendedPt_1_200_pythia8_cfi',
UpgradeFragment(
Kby(10,100),
'FourMuExtendedPt1_200')),
2449 (
'TenMuExtendedE_0_200_pythia8_cfi',
UpgradeFragment(
Kby(10,100),
'TenMuExtendedE_0_200')),
2450 (
'DoubleElectronPt10Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElPt10Extended')),
2451 (
'DoubleElectronPt35Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElPt35Extended')),
2452 (
'DoubleElectronPt1000Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SingleElPt1000Extended')),
2453 (
'DoubleGammaPt10Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleGammaPt10Extended')),
2454 (
'DoubleGammaPt35Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SingleGammaPt35Extended')),
2455 (
'DoubleMuPt1Extended_pythia8_cfi',
UpgradeFragment(
Kby(25,100),
'SingleMuPt1Extended')),
2456 (
'DoubleMuPt10Extended_pythia8_cfi',
UpgradeFragment(
Kby(25,100),
'SingleMuPt10Extended')),
2457 (
'DoubleMuPt100Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleMuPt100Extended')),
2458 (
'DoubleMuPt1000Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleMuPt1000Extended')),
2461 (
'MinBias_13TeV_pythia8_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(90,100),
'MinBias_13')),
2464 (
'QCD_Pt_600_800_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_600_800_13')),
2465 (
'Wjet_Pt_80_120_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'Wjet_Pt_80_120_14TeV')),
2466 (
'Wjet_Pt_3000_3500_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Wjet_Pt_3000_3500_14TeV')),
2468 (
'QCD_Pt_3000_3500_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_3000_3500_14TeV')),
2469 (
'QCD_Pt_80_120_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'QCD_Pt_80_120_14TeV')),
2470 (
'H200ChargedTaus_Tauola_14TeV_cfi',
UpgradeFragment(
Kby(9,100),
'Higgs200ChargedTaus_14TeV')),
2474 (
'ZTT_Tauola_All_hadronic_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,100),
'ZTT_14TeV')),
2475 (
'H130GGgluonfusion_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'H130GGgluonfusion_14TeV')),
2476 (
'PhotonJet_Pt_10_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'PhotonJets_Pt_10_14TeV')),
2477 (
'QQH1352T_Tauola_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'QQH1352T_Tauola_14TeV')),
2481 (
'QCDForPF_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(50,100),
'QCD_FlatPt_15_3000HS_14')),
2483 (
'DYToTauTau_M-50_14TeV_pythia8_tauola_cff',
UpgradeFragment(
Kby(9,100),
'DYtoTauTau_M_50_14TeV')),
2485 (
'QCD_Pt_80_120_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'QCD_Pt_80_120_13')),
2486 (
'H125GGgluonfusion_13TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'H125GGgluonfusion_13')),
2487 (
'QCD_Pt20toInf_MuEnrichedPt15_14TeV_TuneCP5_cff',
UpgradeFragment(
Kby(19565, 217391),
'QCD_Pt20toInfMuEnrichPt15_14')),
2489 (
'QCD_Pt15To7000_Flat_14TeV_TuneCP5_cff',
UpgradeFragment(
Kby(9,50),
'QCD_Pt15To7000_Flat_14')),
2490 (
'H125GGgluonfusion_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'H125GGgluonfusion_14')),
2491 (
'QCD_Pt_600_800_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_600_800_14')),
2494 (
'H200ChargedTaus_Tauola_13TeV_cfi',
UpgradeFragment(
Kby(9,50),
'Higgs200ChargedTaus_13')),
2495 (
'ADDMonoJet_13TeV_d3MD3_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'ADDMonoJet_d3MD3_13')),
2497 (
'QCD_Pt_3000_3500_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_3000_3500_13')),
2504 (
'PhotonJet_Pt_10_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'PhotonJets_Pt_10_13')),
2506 (
'Wjet_Pt_80_120_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Wjet_Pt_80_120_13')),
2507 (
'Wjet_Pt_3000_3500_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Wjet_Pt_3000_3500_13')),
2508 (
'SMS-T1tttt_mGl-1500_mLSP-100_13TeV-pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SMS-T1tttt_mGl-1500_mLSP-100_13')),
2509 (
'QCDForPF_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(50,100),
'QCD_FlatPt_15_3000HS_13')),
2510 (
'PYTHIA8_PhiToMuMu_TuneCUETP8M1_13TeV_cff',
UpgradeFragment(
Kby(9,50),
'PhiToMuMu_13')),
2511 (
'RSKKGluon_m3000GeV_13TeV_TuneCUETP8M1_cff',
UpgradeFragment(
Kby(9,50),
'RSKKGluon_m3000GeV_13')),
2515 (
'Upsilon1SToMuMu_forSTEAM_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Upsilon1SToMuMu_13')),
2516 (
'EtaBToJpsiJpsi_forSTEAM_TuneCUEP8M1_13TeV_cfi',
UpgradeFragment(
Kby(9,50),
'EtaBToJpsiJpsi_13')),
2517 (
'JpsiMuMu_Pt-8_forSTEAM_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(3100,100000),
'JpsiMuMu_Pt-8')),
2518 (
'BuMixing_BMuonFilter_forSTEAM_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(900,10000),
'BuMixing_13')),
2519 (
'HSCPstop_M_200_TuneCUETP8M1_13TeV_pythia8_cff',
UpgradeFragment(
Kby(9,50),
'HSCPstop_M_200_13')),
2520 (
'RSGravitonToGammaGamma_kMpl01_M_3000_TuneCUETP8M1_13TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'RSGravitonToGaGa_13')),
2521 (
'WprimeToENu_M-2000_TuneCUETP8M1_13TeV-pythia8_cff',
UpgradeFragment(
Kby(9,50),
'WpToENu_M-2000_13')),
2522 (
'DisplacedSUSY_stopToBottom_M_800_500mm_TuneCP5_13TeV_pythia8_cff',
UpgradeFragment(
Kby(9,50),
'DisplacedSUSY_stopToB_M_800_500mm_13')),
2524 (
'FlatRandomPtAndDxyGunProducer_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuonsDxy_0_500')),
2526 (
'SinglePiPt25Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SinglePiPt25Eta1p7_2p7')),
2527 (
'SingleMuPt15Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SingleMuPt15Eta1p7_2p7')),
2528 (
'SingleGammaPt25Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SingleGammaPt25Eta1p7_2p7')),
2529 (
'SingleElectronPt15Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronPt15Eta1p7_2p7')),
2531 (
'CloseByParticle_Photon_ERZRanges_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByParticleGun')),
2532 (
'CE_E_Front_300um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_E_Front_300um')),
2533 (
'CE_E_Front_200um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_E_Front_200um')),
2534 (
'CE_E_Front_120um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_E_Front_120um')),
2538 (
'CE_H_Coarse_Scint_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_H_Coarse_Scint')),
2539 (
'CE_H_Coarse_300um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_H_Coarse_300um')),
2540 (
'SingleElectronFlatPt2To100_cfi',
UpgradeFragment(
Kby(9,100),
'SingleEFlatPt2To100')),
2543 (
'SingleGammaFlatPt8To150_cfi',
UpgradeFragment(
Kby(9,100),
'SingleGammaFlatPt8To150')),
2546 (
'FlatRandomPtAndDxyGunProducer_MuPt2To10_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt2To10')),
2547 (
'FlatRandomPtAndDxyGunProducer_MuPt10To30_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt10To30')),
2548 (
'FlatRandomPtAndDxyGunProducer_MuPt30To100_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt30To100')),
2549 (
'B0ToKstarMuMu_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(304,3030),
'B0ToKstarMuMu_14TeV')),
2551 (
'BsToJpsiGamma_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(2500,25000),
'BsToJpsiGamma_14TeV')),
2552 (
'BsToJpsiPhi_mumuKK_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(910,9090),
'BsToJpsiPhi_mumuKK_14TeV')),
2554 (
'BsToPhiPhi_KKKK_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(556,5555),
'BsToPhiPhi_KKKK_14TeV')),
2555 (
'TauToMuMuMu_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(18939,189393),
'TauToMuMuMu_14TeV')),
2556 (
'BdToKstarEleEle_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(206,2061),
'BdToKstarEleEle_14TeV')),
2558 (
'BuMixing_BMuonFilter_forSTEAM_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(900,10000),
'BuMixing_14')),
2559 (
'Upsilon1SToMuMu_forSTEAM_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'Upsilon1SToMuMu_14')),
2560 (
'TenTau_E_15_500_Eta3p1_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'TenTau_15_500_Eta3p1')),
2561 (
'QCD_Pt_1800_2400_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_1800_2400_14')),
2562 (
'DisplacedSUSY_stopToBottom_M_800_500mm_TuneCP5_14TeV_pythia8_cff',
UpgradeFragment(
Kby(9,50),
'DisplacedSUSY_14TeV')),
2563 (
'GluGluTo2Jets_M_300_2000_14TeV_Exhume_cff',
UpgradeFragment(
Kby(9,100),
'GluGluTo2Jets_14TeV')),
2564 (
'TTbarToDilepton_mt172p5_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'TTbarToDilepton_14TeV')),
2565 (
'QQToHToTauTau_mh125_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'QQToHToTauTau_14TeV')),
2566 (
'ZpToEE_m6000_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'ZpToEE_m6000_14TeV')),
2567 (
'ZpToMM_m6000_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'ZpToMM_m6000_14TeV')),
2568 (
'SMS-T1tttt_mGl-1500_mLSP-100_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SMS-T1tttt_14TeV')),
2569 (
'VBFHZZ4Nu_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'VBFHZZ4Nu_14TeV')),
2570 (
'EtaBToJpsiJpsi_14TeV_TuneCP5_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'EtaBToJpsiJpsi_14TeV')),
2572 (
'WprimeToLNu_M2000_14TeV_TuneCP5_pythia8_cfi',
UpgradeFragment(
Kby(21,50),
'WprimeToLNu_M2000_14TeV')),
2574 (
'DoubleElectronFlatPt1p5To8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronFlatPt1p5To8')),
2575 (
'DoubleMuFlatPt1p5To8Dxy100GunProducer_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt1p5To8Dxy100')),
2576 (
'DoubleMuFlatPt2To100Dxy100GunProducer_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt2To100Dxy100')),
2577 (
'BuToJPsiPrimeKToJPsiPiPiK_14TeV_TuneCP5_pythia8_cfi',
UpgradeFragment(
Kby(223,2222),
'BuToJPsiPrimeKToJPsiPiPiK_14TeV')),
2578 (
'Psi2SToJPsiPiPi_14TeV_TuneCP5_pythia8_cfi',
UpgradeFragment(
Kby(45,500),
'Psi2SToJPsiPiPi_14TeV')),
2579 (
'XiMinus_13p6TeV_SoftQCDInel_TuneCP5_cfi',
UpgradeFragment(
Kby(8000,90000),
'XiMinus_13p6TeV')),
2580 (
'Chib1PToUpsilon1SGamma_MuFilter_TuneCP5_14TeV-pythia8_evtgen_cfi',
UpgradeFragment(
Kby(3600,36000),
'Chib1PToUpsilon1SGamma_14TeV')),
2581 (
'ChicToJpsiGamma_MuFilter_TuneCP5_14TeV_pythia8_evtgen_cfi',
UpgradeFragment(
Kby(2000,20000),
'ChicToJpsiGamma_14TeV')),
2582 (
'B0ToJpsiK0s_JMM_Filter_DGamma0_TuneCP5_13p6TeV-pythia8-evtgen_cfi',
UpgradeFragment(
Kby(38000,38000),
'B0ToJpsiK0s_DGamma0_13p6TeV')),
2583 (
'DStarToD0Pi_D0ToKsPiPi_inclusive_SoftQCD_TuneCP5_13p6TeV-pythia8-evtgen',
UpgradeFragment(
Kby(38000,38000),
'DStarToD0Pi_D0ToKsPiPi_13p6TeV')),
2584 (
'LbToJpsiLambda_JMM_Filter_DGamma0_TuneCP5_13p6TeV-pythia8-evtgen_cfi',
UpgradeFragment(
Mby(66,660000),
'LbToJpsiLambda_DGamma0_13p6TeV')),
2585 (
'LbToJpsiXiK0sPi_JMM_Filter_DGamma0_TuneCP5_13p6TeV-pythia8-evtgen_cfi',
UpgradeFragment(
Mby(50,500000),
'LbToJpsiXiK0sPr_DGamma0_13p6TeV')),
2586 (
'OmegaMinus_13p6TeV_SoftQCDInel_TuneCP5_cfi',
UpgradeFragment(
Mby(100,1000000),
'OmegaMinus_13p6TeV')),
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 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 setupPU_(self, step, stepName, stepDict, k, properties)
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 __init__(self, reco={}, harvest={}, kwargs)
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 setup_(self, step, stepName, stepDict, k, properties)
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 __init__(self, suffix, offset, fixedPU, steps=[], PU=['GenSimHLBeamSpot14', Digi, DigiTrigger, Reco, RecoGlobal, RecoNano, HARVEST, HARVESTGlobal, HARVESTNano, MiniAOD, ALCA, ALCAPhase2, Nano)
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 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)