1 from copy
import copy, deepcopy
2 from collections
import OrderedDict
3 from .MatrixUtil
import merge, Kby
79 numWFConflict = [[20000,23200],[23600,28200],[28600,31400],[31800,32200],[32600,34600],[50000,51000]]
85 for year
in upgradeKeys:
86 for i
in range(0,len(upgradeKeys[year])):
87 numWFtmp = numWFStart[year]
if i==0
else (numWFAll[year][i-1] + numWFSkip)
88 for conflict
in numWFConflict:
89 if numWFtmp>=conflict[0]
and numWFtmp<conflict[1]:
90 numWFtmp = conflict[1]
92 numWFAll[year].
append(numWFtmp)
99 preventReuseKeyword =
'NOREUSE'
108 if not step
in self.
steps:
109 self.steps.append(step)
115 raise ValueError(
"Special workflow offset must be between 0.0 and 1.0")
117 stepName = step + self.
suffix + extra
120 stepNamePU = step +
'PU' + self.
suffix + extra
123 for step
in self.
steps:
129 def setup(self, stepDict, k, properties):
130 for step
in self.
steps:
137 def setup_(self, step, stepName, stepDict, k, properties):
139 def setupPU_(self, step, stepName, stepDict, k, properties):
141 def workflow(self, workflows, num, fragment, stepList, key, hasHarvest):
142 if self.condition(fragment, stepList, key, hasHarvest):
143 self.workflow_(workflows, num, fragment, stepList, key)
144 def workflow_(self, workflows, num, fragment, stepList, key):
145 fragmentTmp = [fragment, key]
147 workflows[num+self.
offset] = [ fragmentTmp, stepList ]
148 def condition(self, fragment, stepList, key, hasHarvest):
151 if "Sim" in stepName:
152 stepDict[stepName][k] =
None
153 upgradeWFs = OrderedDict()
156 def setup_(self, step, stepName, stepDict, k, properties):
157 cust=properties.get(
'Custom',
None)
158 era=properties.get(
'Era',
None)
159 modifier=properties.get(
'ProcessModifier',
None)
160 if cust
is not None: stepDict[stepName][k][
'--customise']=cust
162 stepDict[stepName][k][
'--era']=era
163 if modifier
is not None: stepDict[stepName][k][
'--procModifier']=modifier
164 def condition(self, fragment, stepList, key, hasHarvest):
170 'GenSimHLBeamSpot14',
171 'GenSimHLBeamSpotHGCALCloseBy',
213 steps = steps + [
"ALCA",
"Nano"]
214 super().
__init__(steps, [], suffix, offset)
215 def condition(self, fragment, stepList, key, hasHarvest):
216 result = (fragment==
"TTbar_13" or fragment==
"TTbar_14TeV")
and not 'PU' in key
and hasHarvest
and self.
condition_(fragment, stepList, key, hasHarvest)
220 def setup_(self, step, stepName, stepDict, k, properties):
222 if 'ALCA' in step
or 'Nano'==step:
223 stepDict[stepName][k] =
None
224 self.
setup__(step, stepName, stepDict, k, properties)
226 def setup__(self, step, stepName, stepDict, k, properties):
229 class UpgradeWorkflow_trackingOnly(UpgradeWorkflowTracking):
230 def setup__(self, step, stepName, stepDict, k, properties):
231 if 'Reco' in step: stepDict[stepName][k] =
merge([self.step3, stepDict[step][k]])
232 elif 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@trackingOnlyDQM'}, stepDict[step][k]])
244 suffix =
'_trackingOnly',
247 upgradeWFs[
'trackingOnly'].step3 = {
248 '-s':
'RAW2DIGI,RECO:reconstruction_trackingOnly,VALIDATION:@trackingOnlyValidation,DQM:@trackingOnlyDQM',
249 '--datatier':
'GEN-SIM-RECO,DQMIO',
250 '--eventcontent':
'RECOSIM,DQM',
253 step3_trackingOnly = upgradeWFs[
'trackingOnly'].step3
256 def setup__(self, step, stepName, stepDict, k, properties):
257 if 'Reco' in step
and stepDict[step][k][
'--era']==
'Run2_2017':
258 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2017_trackingRun2'}, stepDict[step][k]])
266 suffix =
'_trackingRun2',
271 def setup__(self, step, stepName, stepDict, k, properties):
272 if 'Reco' in step
and stepDict[step][k][
'--era']==
'Run2_2017':
273 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2017_trackingRun2'}, self.step3, stepDict[step][k]])
274 elif 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@trackingOnlyDQM'}, stepDict[step][k]])
284 suffix =
'_trackingOnlyRun2',
287 upgradeWFs[
'trackingOnlyRun2'].step3 = upgradeWFs[
'trackingOnly'].step3
290 def setup__(self, step, stepName, stepDict, k, properties):
291 if 'Reco' in step
and stepDict[step][k][
'--era']==
'Run2_2017':
292 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2017_trackingLowPU'}, stepDict[step][k]])
300 suffix =
'_trackingLowPU',
305 def setup__(self, step, stepName, stepDict, k, properties):
306 if 'Reco' in step: stepDict[stepName][k] =
merge([self.step3, stepDict[step][k]])
307 elif 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM'}, stepDict[step][k]])
309 return '2017' in key
or '2018' in key
or '2021' in key
or '2026' in key
321 suffix =
'_pixelTrackingOnly',
324 upgradeWFs[
'pixelTrackingOnly'].step3 = {
325 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
326 '--datatier':
'GEN-SIM-RECO,DQMIO',
327 '--eventcontent':
'RECOSIM,DQM',
331 def setup__(self, step, stepName, stepDict, k, properties):
332 if 'Digi' in step: stepDict[stepName][k] =
merge([self.step2, stepDict[step][k]])
333 if 'Reco' in step: stepDict[stepName][k] =
merge([self.step3, stepDict[step][k]])
335 return '2017' in key
or '2021' in key
345 suffix =
'_trackingMkFit',
348 upgradeWFs[
'trackingMkFit'].step2 = {
349 '--customise':
'RecoTracker/MkFit/customizeHLTIter0ToMkFit.customizeHLTIter0ToMkFit'
351 upgradeWFs[
'trackingMkFit'].step3 = {
352 '--procModifiers':
'trackingMkFit'
357 def setup_(self, step, stepName, stepDict, k, properties):
359 if 'ALCA' in step
or 'Nano'==step:
360 stepDict[stepName][k] =
None
361 elif 'Reco' in step
or 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'--procModifiers':
'seedingDeepCore'}, stepDict[step][k]])
362 def condition(self, fragment, stepList, key, hasHarvest):
363 result = (fragment==
"QCD_Pt_1800_2400_14" or fragment==
"TTbar_14TeV" )
and (
'2021' in key
or '2024' in key)
and hasHarvest
377 suffix =
'_seedingDeepCore',
383 def setup_(self, step, stepName, stepDict, k, properties):
384 stepDict[stepName][k] =
merge([{
'--procModifiers':
'vectorHits'}, stepDict[step][k]])
385 def condition(self, fragment, stepList, key, hasHarvest):
386 return fragment==
"TTbar_14TeV" and '2026' in key
395 suffix =
'_vectorHits',
401 def setup_(self, step, stepName, stepDict, k, properties):
402 if 'RecoGlobal' in step:
403 stepDict[stepName][k] =
merge([self.step3, stepDict[step][k]])
404 if 'HARVESTGlobal' in step:
405 stepDict[stepName][k] =
merge([self.step4, stepDict[step][k]])
406 def condition(self, fragment, stepList, key, hasHarvest):
407 return (fragment==
"TTbar_14TeV" or 'CloseByPGun_CE' in fragment)
and '2026' in key
417 suffix =
'_ticl_clue3D',
420 upgradeWFs[
'ticl_clue3D'].step3 = {
'--procModifiers':
'clue3D'}
421 upgradeWFs[
'ticl_clue3D'].step4 = {
'--procModifiers':
'clue3D'}
424 def setup_(self, step, stepName, stepDict, k, properties):
425 if 'RecoGlobal' in step:
426 stepDict[stepName][k] =
merge([self.step3, stepDict[step][k]])
427 if 'HARVESTGlobal' in step:
428 stepDict[stepName][k] =
merge([self.step4, stepDict[step][k]])
429 def condition(self, fragment, stepList, key, hasHarvest):
430 return (fragment==
"TTbar_14TeV" or 'CloseByPGun_CE' in fragment)
and '2026' in key
440 suffix =
'_ticl_FastJet',
443 upgradeWFs[
'ticl_FastJet'].step3 = {
'--procModifiers':
'fastJetTICL'}
444 upgradeWFs[
'ticl_FastJet'].step4 = {
'--procModifiers':
'fastJetTICL'}
448 def setup_(self, step, stepName, stepDict, k, properties):
449 stepDict[stepName][k] =
merge([{
'--procModifiers':
'trackdnn'}, stepDict[step][k]])
451 def condition(self, fragment, stepList, key, hasHarvest):
452 return fragment==
"TTbar_14TeV" and '2021' in key
462 suffix =
'_trackdnn',
469 def setup_(self, step, stepName, stepDict, k, properties):
471 stepDict[stepName][k] =
merge([self.step3, stepDict[step][k]])
472 def condition(self, fragment, stepList, key, hasHarvest):
473 return (fragment==
"TTbar_14TeV" or fragment==
"QCD_FlatPt_15_3000HS_14")
and '2021PU' in key
487 upgradeWFs[
'mlpf'].step3 = {
488 '--datatier':
'GEN-SIM-RECO,RECOSIM,MINIAODSIM,NANOAODSIM,DQMIO',
489 '--eventcontent':
'FEVTDEBUGHLT,RECOSIM,MINIAODSIM,NANOEDMAODSIM,DQM',
490 '--procModifiers':
'mlpf'
499 def __init__(self, digi = {}, reco = {}, harvest = {}, **kwargs):
501 super(PatatrackWorkflow, self).
__init__(
521 '--datatier':
'GEN-SIM-RECO,DQMIO',
522 '--eventcontent':
'RECOSIM,DQM'
526 def condition(self, fragment, stepList, key, hasHarvest):
529 (
'2018' in key
and fragment ==
"TTbar_13"),
530 (
'2021' in key
and fragment ==
"TTbar_14TeV"),
531 (
'2018' in key
and fragment ==
"ZMM_13"),
532 (
'2021' in key
and fragment ==
"ZMM_14"),
533 (
'2026D88' in key
and fragment ==
"TTbar_14TeV" and "PixelOnly" in self.
suffix)
535 result =
any(selected)
and hasHarvest
539 def setup_(self, step, stepName, stepDict, k, properties):
541 if 'ALCA' in step
or 'Nano'==step:
542 stepDict[stepName][k] =
None
545 stepDict[stepName][k] =
None
547 stepDict[stepName][k] =
merge([self.
__digi, stepDict[step][k]])
550 stepDict[stepName][k] =
None
552 stepDict[stepName][k] =
merge([self.
__reco, stepDict[step][k]])
553 elif 'HARVEST' in step:
555 stepDict[stepName][k] =
None
557 stepDict[stepName][k] =
merge([self.
__harvest, stepDict[step][k]])
568 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
569 '--procModifiers':
'pixelNtupletFit'
572 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM'
574 suffix =
'Patatrack_PixelOnlyCPU',
585 '--procModifiers':
'gpu'
588 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
589 '--procModifiers':
'pixelNtupletFit,gpu'
592 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM'
594 suffix =
'Patatrack_PixelOnlyGPU',
605 '--accelerators':
'gpu-nvidia',
606 '--procModifiers':
'gpu'
609 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
610 '--accelerators':
'gpu-nvidia',
611 '--procModifiers':
'pixelNtupletFit,gpuValidation'
614 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM'
616 suffix =
'Patatrack_PixelOnlyGPU_Validation',
626 '--procModifiers':
'gpu'
629 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly',
630 '--procModifiers':
'pixelNtupletFit,gpu',
631 '--customise' :
'RecoTracker/Configuration/customizePixelOnlyForProfiling.customizePixelOnlyForProfilingGPUOnly'
634 suffix =
'Patatrack_PixelOnlyGPU_Profiling',
647 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
648 '--procModifiers':
'pixelNtupletFit',
649 '--customise' :
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets'
652 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM'
654 suffix =
'Patatrack_PixelOnlyTripletsCPU',
665 '--procModifiers':
'gpu'
668 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
669 '--procModifiers':
'pixelNtupletFit,gpu',
670 '--customise':
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets'
673 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM'
675 suffix =
'Patatrack_PixelOnlyTripletsGPU',
686 '--accelerators':
'gpu-nvidia',
687 '--procModifiers':
'gpu'
690 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
691 '--accelerators':
'gpu-nvidia',
692 '--procModifiers':
'pixelNtupletFit,gpuValidation',
693 '--customise':
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets'
696 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM'
698 suffix =
'Patatrack_PixelOnlyTripletsGPU_Validation',
708 '--procModifiers':
'gpu'
711 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly',
712 '--procModifiers':
'pixelNtupletFit,gpu',
713 '--customise':
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets,RecoTracker/Configuration/customizePixelOnlyForProfiling.customizePixelOnlyForProfilingGPUOnly'
716 suffix =
'Patatrack_PixelOnlyTripletsGPU_Profiling',
729 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly',
732 '-s':
'HARVESTING:@ecalOnlyValidation+@ecal'
734 suffix =
'Patatrack_ECALOnlyCPU',
745 '--procModifiers':
'gpu'
748 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly',
749 '--procModifiers':
'gpu'
752 '-s':
'HARVESTING:@ecalOnlyValidation+@ecal'
754 suffix =
'Patatrack_ECALOnlyGPU',
765 '--accelerators':
'gpu-nvidia',
766 '--procModifiers':
'gpu'
769 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly',
770 '--accelerators':
'gpu-nvidia',
771 '--procModifiers':
'gpuValidation'
774 '-s':
'HARVESTING:@ecalOnlyValidation+@ecal'
776 suffix =
'Patatrack_ECALOnlyGPU_Validation',
786 '--procModifiers':
'gpu'
789 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly',
790 '--procModifiers':
'gpu',
791 '--customise' :
'RecoLocalCalo/Configuration/customizeEcalOnlyForProfiling.customizeEcalOnlyForProfilingGPUOnly'
794 suffix =
'Patatrack_ECALOnlyGPU_Profiling',
807 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only',
810 '-s':
'HARVESTING:@hcalOnlyValidation+@hcalOnly+@hcal2Only'
812 suffix =
'Patatrack_HCALOnlyCPU',
823 '--procModifiers':
'gpu'
826 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only',
827 '--procModifiers':
'gpu'
830 '-s':
'HARVESTING:@hcalOnlyValidation+@hcalOnly+@hcal2Only'
832 suffix =
'Patatrack_HCALOnlyGPU',
843 '--accelerators':
'gpu-nvidia',
844 '--procModifiers':
'gpu'
847 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only',
848 '--accelerators':
'gpu-nvidia',
849 '--procModifiers':
'gpuValidation'
852 '-s':
'HARVESTING:@hcalOnlyValidation+@hcal'
854 suffix =
'Patatrack_HCALOnlyGPU_Validation',
864 '--procModifiers':
'gpu'
867 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly',
868 '--procModifiers':
'gpu',
869 '--customise' :
'RecoLocalCalo/Configuration/customizeHcalOnlyForProfiling.customizeHcalOnlyForProfilingGPUOnly'
872 suffix =
'Patatrack_HCALOnlyGPU_Profiling',
885 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
886 '--procModifiers':
'pixelNtupletFit'
889 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only'
891 suffix =
'Patatrack_AllCPU',
902 '--procModifiers':
'gpu'
905 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
906 '--procModifiers':
'pixelNtupletFit,gpu'
909 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only'
911 suffix =
'Patatrack_AllGPU',
922 '--accelerators':
'gpu-nvidia',
923 '--procModifiers':
'gpu'
926 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
927 '--accelerators':
'gpu-nvidia',
928 '--procModifiers':
'pixelNtupletFit,gpuValidation'
931 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only'
933 suffix =
'Patatrack_AllGPU_Validation',
951 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
952 '--procModifiers':
'pixelNtupletFit'
955 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only'
957 suffix =
'Patatrack_AllTripletsCPU',
968 '--procModifiers':
'gpu'
971 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
972 '--procModifiers':
'pixelNtupletFit,gpu'
975 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only'
977 suffix =
'Patatrack_AllTripletsGPU',
988 '--accelerators':
'gpu-nvidia',
989 '--procModifiers':
'gpu'
992 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
993 '--accelerators':
'gpu-nvidia',
994 '--procModifiers':
'pixelNtupletFit,gpuValidation'
997 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only'
999 suffix =
'Patatrack_AllTripletsGPU_Validation',
1018 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1019 '--procModifiers':
'pixelNtupletFit'
1024 suffix =
'Patatrack_FullRecoCPU',
1035 '--procModifiers':
'gpu'
1039 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1040 '--procModifiers':
'pixelNtupletFit,gpu'
1045 suffix =
'Patatrack_FullRecoGPU',
1056 '--accelerators':
'gpu-nvidia',
1057 '--procModifiers':
'gpu'
1061 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1062 '--accelerators':
'gpu-nvidia',
1063 '--procModifiers':
'pixelNtupletFit,gpuValidation'
1068 suffix =
'Patatrack_FullRecoGPU_Validation',
1082 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1083 '--procModifiers':
'pixelNtupletFit',
1084 '--customise' :
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets'
1089 suffix =
'Patatrack_FullRecoTripletsCPU',
1100 '--procModifiers':
'gpu'
1104 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1105 '--procModifiers':
'pixelNtupletFit,gpu',
1106 '--customise':
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets'
1111 suffix =
'Patatrack_FullRecoTripletsGPU',
1122 '--accelerators':
'gpu-nvidia',
1123 '--procModifiers':
'gpu'
1127 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1128 '--accelerators':
'gpu-nvidia',
1129 '--procModifiers':
'pixelNtupletFit,gpuValidation',
1130 '--customise' :
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets'
1135 suffix =
'Patatrack_FullRecoTripletsGPU_Validation',
1143 def setup_(self, step, stepName, stepDict, k, properties):
1144 if 'GenSimHLBeamSpot14' in step:
1145 stepDict[stepName][k] =
merge([{
'--eventcontent':
'RAWSIM',
'--datatier':
'GEN-SIM'},stepDict[step][k]])
1146 elif 'Digi' in step
and 'Trigger' not in step:
1147 stepDict[stepName][k] =
merge([{
'-s':
'DIGI,L1,DIGI2RAW,HLT:@relval2021',
'--datatier':
'GEN-SIM-RAW',
'--eventcontent':
'RAWSIM'}, stepDict[step][k]])
1148 elif 'DigiTrigger' in step:
1149 stepDict[stepName][k] =
merge([{
'-s':
'DIGI,L1TrackTrigger,L1,DIGI2RAW,HLT:@fake2',
'--datatier':
'GEN-SIM-RAW',
'--eventcontent':
'RAWSIM'}, stepDict[step][k]])
1150 elif 'Reco' in step:
1151 stepDict[stepName][k] =
merge([{
'-s':
'RAW2DIGI,L1Reco,RECO,RECOSIM',
'--datatier':
'AODSIM',
'--eventcontent':
'AODSIM'}, stepDict[step][k]])
1152 elif 'MiniAOD' in step:
1154 stepDict[stepName][k] = deepcopy(stepDict[step][k])
1155 elif 'ALCA' in step
or 'HARVEST' in step:
1157 stepDict[stepName][k] =
None
1159 stepDict[stepName][k] =
merge([{
'--filein':
'file:step4.root',
'-s':
'NANO',
'--datatier':
'NANOAODSIM',
'--eventcontent':
'NANOEDMAODSIM'}, stepDict[step][k]])
1161 return fragment==
"TTbar_14TeV" and (
'2026' in key
or '2021' in key)
1164 'GenSimHLBeamSpot14',
1178 'GenSimHLBeamSpot14',
1191 suffix =
'_ProdLike',
1196 def setup_(self, step, stepName, stepDict, k, properties):
1197 if 'GenSim' in step:
1198 custNew =
"SimG4Core/Application/NeutronBGforMuonsXS_cff.customise"
1200 custNew =
"SLHCUpgradeSimulations/Configuration/customise_mixing.customise_Mix_LongLived_Neutrons"
1201 stepDict[stepName][k] = deepcopy(stepDict[step][k])
1202 if '--customise' in stepDict[stepName][k].
keys():
1203 stepDict[stepName][k][
'--customise'] +=
","+custNew
1205 stepDict[stepName][k][
'--customise'] = custNew
1207 return any(fragment==nfrag
for nfrag
in self.neutronFrags)
and any(nkey
in key
for nkey
in self.neutronKeys)
1212 'GenSimHLBeamSpot14',
1220 suffix =
'_Neutron',
1224 upgradeWFs[
'Neutron'].neutronKeys = [x
for x
in upgradeKeys[2026]
if 'PU' not in x]
1225 upgradeWFs[
'Neutron'].neutronFrags = [
'ZMM_14',
'MinBias_14TeV']
1228 def setup_(self, step, stepName, stepDict, k, properties):
1229 stepDict[stepName][k] =
merge([{
'--procModifiers':
'run2_HECollapse_2018'}, stepDict[step][k]])
1231 return fragment==
"TTbar_13" and '2018' in key
1245 suffix =
'_heCollapse',
1250 def setup_(self, step, stepName, stepDict, k, properties):
1252 mods = {
'--era': stepDict[step][k][
'--era']+
',phase2_ecal_devel'}
1254 mods[
'-s'] =
'DIGI:pdigi_valid,DIGI2RAW'
1255 elif 'Reco' in step:
1256 mods[
'-s'] =
'RAW2DIGI,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly'
1257 mods[
'--datatier'] =
'GEN-SIM-RECO,DQMIO'
1258 mods[
'--eventcontent'] =
'FEVTDEBUGHLT,DQM'
1259 elif 'HARVEST' in step:
1260 mods[
'-s'] =
'HARVESTING:@ecalOnlyValidation+@ecal'
1261 stepDict[stepName][k] =
merge([mods, stepDict[step][k]])
1263 return fragment==
"TTbar_14TeV" and '2026' in key
1275 suffix =
'_ecalDevel',
1280 def setup_(self, step, stepName, stepDict, k, properties):
1281 myGT=stepDict[step][k][
'--conditions']
1283 stepDict[stepName][k] =
merge([{
'-n':
'1',
'--magField':
'0T',
'--conditions':myGT}, stepDict[step][k]])
1284 def setupPU_(self, step, stepName, stepDict, k, properties):
1286 stepDict[stepName][k] =
merge([{
'-n':
'1'}, stepDict[step][k]])
1288 return (fragment==
"TTbar_13" or fragment==
"TTbar_14TeV")
and (
'2017' in key
or '2018' in key
or '2021' in key)
1311 def setup_(self, step, stepName, stepDict, k, properties):
1312 if 'Reco' in step
and 'Run2_2018' in stepDict[step][k][
'--era']:
1313 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2018,bParking'}, stepDict[step][k]])
1315 return fragment==
"TTbar_13" and '2018' in key
1321 suffix =
'_ParkingBPH',
1326 def setup_(self, step, stepName, stepDict, k, properties):
1328 stepDict[stepName][k] =
merge([{
'--customise':
'PhysicsTools/NanoAOD/custom_jme_cff.PrepJMECustomNanoAOD_MC'}, stepDict[step][k]])
1330 return fragment==
"TTbar_13" and (
'2017' in key
or '2018' in key)
1336 suffix =
'_JMENano',
1343 def setup_(self, step, stepName, stepDict, k, properties):
1344 if 'Digi' in step
or 'Reco' in step:
1345 stepDict[stepName][k] =
merge([{
'--customise':
'SLHCUpgradeSimulations/Configuration/aging.customise_aging_'+self.lumi}, stepDict[step][k]])
1347 return fragment==
"TTbar_14TeV" and '2026' in key
1364 suffix =
'Aging1000',
1367 upgradeWFs[
'Aging1000'].lumi =
'1000'
1368 upgradeWFs[
'Aging3000'] = deepcopy(upgradeWFs[
'Aging1000'])
1369 upgradeWFs[
'Aging3000'].suffix =
'Aging3000'
1370 upgradeWFs[
'Aging3000'].offset = 0.103
1371 upgradeWFs[
'Aging3000'].lumi =
'3000'
1379 digiPremixLocalPileup = {
1380 "--filein":
"file:step1.root",
1381 "--pileup_input":
"file:step2.root"
1386 def setup_(self, step, stepName, stepDict, k, properties):
1388 stepDict[stepName][k] =
merge([stepDict[step][k]])
1389 def setupPU_(self, step, stepName, stepDict, k, properties):
1391 if "GenSim" in stepName:
1392 stepNamePmx = stepName.replace(
'GenSim',
'Premix')
1393 if not stepNamePmx
in stepDict: stepDict[stepNamePmx] = {}
1394 stepDict[stepNamePmx][k] =
merge([
1396 '-s':
'GEN,SIM,DIGI:pdigi_valid',
1397 '--datatier':
'PREMIX',
1398 '--eventcontent':
'PREMIX',
1399 '--procModifiers':
'premix_stage1'
1401 stepDict[stepName][k]
1403 if "ProdLike" in self.
suffix:
1404 stepDict[stepNamePmx][k] =
merge([{
'-s':
'GEN,SIM,DIGI'},stepDict[stepNamePmx][k]])
1406 elif "Digi" in step
or "Reco" in step:
1409 if d
is None:
return
1412 for s
in d[
"-s"].
split(
","):
1413 if s ==
"DIGI" or "DIGI:" in s:
1414 tmpsteps.extend([s,
"DATAMIX"])
1418 "--datamix" :
"PreMix",
1419 "--procModifiers":
"premix_stage2"},
1422 if "_PMXS1S2" in self.
suffix:
1423 d =
merge([digiPremixLocalPileup, d])
1424 elif "Reco" in step:
1425 if "--procModifiers" in d:
1426 d[
"--procModifiers"] +=
",premix_stage2"
1428 d[
"--procModifiers"] =
"premix_stage2"
1429 stepDict[stepName][k] = d
1435 filein = d[
"--filein"]
1436 m = re.search(
"step(?P<ind>\d+)_", filein)
1438 d[
"--filein"] = filein.replace(m.group(),
"step%d_"%(int(m.group(
"ind"))+1))
1439 stepDict[stepName][k] = d
1445 if not any(y
in key
for y
in [
'2021',
'2023',
'2024',
'2026']):
1447 if self.suffix.endswith(
"S1"):
1448 return "NuGun" in fragment
1450 def workflow_(self, workflows, num, fragment, stepList, key):
1451 fragmentTmp = fragment
1452 if self.suffix.endswith(
"S1"):
1453 fragmentTmp =
'PREMIXUP' + key[2:].
replace(
"PU",
"").
replace(
"Design",
"") +
'_PU25'
1454 super(UpgradeWorkflowPremix,self).
workflow_(workflows, num, fragmentTmp, stepList, key)
1462 'GenSimHLBeamSpot14',
1488 'GenSimHLBeamSpot14',
1497 suffix =
'_PMXS1S2',
1502 def setupPU_(self, step, stepName, stepDict, k, properties):
1504 if '--pileup' in stepDict[stepName][k]:
1505 stepDict[stepName][k][
'--pileup'] =
'AVE_50_BX_25ns_m3p3'
1506 super(UpgradeWorkflowAdjustPU,self).
setupPU_(step, stepName, stepDict, k, properties)
1509 return super(UpgradeWorkflowAdjustPU,self).
condition(fragment, stepList, key, hasHarvest)
and '2026' in key
1515 'GenSimHLBeamSpot14',
1525 suffix =
'_PMXS1S2PR',
1530 def setup_(self, step, stepName, stepDict, k, properties):
1532 UpgradeWorkflowPremix.setup_(self, step, stepName, stepDict, k, properties)
1533 UpgradeWorkflow_ProdLike.setup_(self, step, stepName, stepDict, k, properties)
1538 for s
in d[
"-s"].
split(
","):
1539 if "DIGI:pdigi_valid" in s:
1540 tmpsteps.append(
"DIGI")
1544 "--eventcontent":
"PREMIXRAW"},
1546 stepDict[stepName][k] = d
1548 stepDict[stepName][k] =
merge([{
'--filein':
'file:step5.root',
'-s':
'NANO',
'--datatier':
'NANOAODSIM',
'--eventcontent':
'NANOEDMAODSIM'}, stepDict[step][k]])
1551 return UpgradeWorkflowPremix.condition(self, fragment, stepList, key, hasHarvest)
and UpgradeWorkflow_ProdLike.condition(self, fragment, stepList, key, hasHarvest)
1569 suffix =
'_PMXS2ProdLike',
1578 'GenSimHLBeamSpot14',
1592 suffix =
'_PMXS1S2ProdLike',
1597 def setup_(self, step, stepName, stepDict, k, properties):
1598 if 'Run3' in stepDict[step][k][
'--era']:
1599 stepDict[stepName][k] =
merge([{
'--geometry':
'DD4hepExtended2021'}, stepDict[step][k]])
1600 elif 'Phase2' in stepDict[step][k][
'--era']:
1602 dd4hepGeom+=stepDict[step][k][
'--geometry']
1603 stepDict[stepName][k] =
merge([{
'--geometry' : dd4hepGeom,
'--procModifiers':
'dd4hep'}, stepDict[step][k]])
1605 return '2021' in key
or '2026' in key
1610 'GenSimHLBeamSpot14',
1625 upgradeWFs[
'DD4hep'].allowReuse =
False
1630 def setup_(self, step, stepName, stepDict, k, properties):
1631 if 'Run3' in stepDict[step][k][
'--era']:
1632 stepDict[stepName][k] =
merge([{
'--conditions':
'auto:phase1_2021_realistic',
'--geometry':
'DB:Extended'}, stepDict[step][k]])
1634 return '2021' in key
1639 'GenSimHLBeamSpot14',
1651 suffix =
'_DD4hepDB',
1654 upgradeWFs[
'DD4hepDB'].allowReuse =
False
1657 def setup_(self, step, stepName, stepDict, k, properties):
1658 if 'Run3' in stepDict[step][k][
'--era']:
1660 tmp_eras = stepDict[step][k][
'--era'].
split(
',')
1661 tmp_eras[tmp_eras.index(
"Run3")] =
'Run3_DDD'
1662 tmp_eras =
','.
join(tmp_eras)
1663 stepDict[stepName][k] =
merge([{
'--conditions':
'auto:phase1_2021_realistic_ddd',
'--geometry':
'DB:Extended',
'--era': tmp_eras}, stepDict[step][k]])
1665 return '2021' in key
1670 'GenSimHLBeamSpot14',
1685 upgradeWFs[
'DDDDB'].allowReuse =
False
1688 def setup_(self, step, stepName, stepDict, k, properties):
1689 stepDict[stepName][k] =
merge([{
'--procModifiers':
'allSonicTriton'}, stepDict[step][k]])
1691 return (fragment==
'TTbar_13' and '2021' in key) \
1692 or (fragment==
'TTbar_14TeV' and '2026' in key)
1697 'GenSimHLBeamSpot14',
1711 'GenSimHLBeamSpot14',
1722 suffix =
'_SonicTriton',
1727 offsets = [specialWF.offset
for specialType,specialWF
in upgradeWFs.items()]
1729 dups = set(x
for x
in offsets
if x
in seen
or seen.add(x))
1731 raise ValueError(
"Duplicate special workflow offsets not allowed: "+
','.
join([
str(x)
for x
in dups]))
1733 upgradeProperties = {}
1735 upgradeProperties[2017] = {
1737 'Geom' :
'DB:Extended',
1738 'GT' :
'auto:phase1_2017_realistic',
1739 'HLTmenu':
'@relval2017',
1740 'Era' :
'Run2_2017',
1741 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT',
'ALCA',
'Nano'],
1744 'Geom' :
'DB:Extended',
1745 'GT' :
'auto:phase1_2017_design',
1746 'HLTmenu':
'@relval2017',
1747 'Era' :
'Run2_2017',
1748 'BeamSpot':
'GaussSigmaZ4cm',
1749 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT'],
1752 'Geom' :
'DB:Extended',
1753 'GT' :
'auto:phase1_2018_realistic',
1754 'HLTmenu':
'@relval2018',
1755 'Era' :
'Run2_2018',
1756 'BeamSpot':
'Realistic25ns13TeVEarly2018Collision',
1757 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT',
'ALCA',
'Nano'],
1760 'Geom' :
'DB:Extended',
1761 'GT' :
'auto:phase1_2018_design',
1762 'HLTmenu':
'@relval2018',
1763 'Era' :
'Run2_2018',
1764 'BeamSpot':
'GaussSigmaZ4cm',
1765 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT'],
1768 'Geom' :
'DB:Extended',
1769 'GT' :
'auto:phase1_2021_realistic',
1770 'HLTmenu':
'@relval2021',
1772 'BeamSpot':
'Run3RoundOptics25ns13TeVLowSigmaZ',
1773 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
1776 'Geom' :
'DB:Extended',
1777 'GT' :
'auto:phase1_2021_design',
1778 'HLTmenu':
'@relval2021',
1780 'BeamSpot':
'GaussSigmaZ4cm',
1781 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano'],
1784 'Geom' :
'DB:Extended',
1785 'GT' :
'auto:phase1_2023_realistic',
1786 'HLTmenu':
'@relval2021',
1788 'BeamSpot':
'Run3RoundOptics25ns13TeVLowSigmaZ',
1789 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
1792 'Geom' :
'DB:Extended',
1793 'GT' :
'auto:phase1_2024_realistic',
1794 'HLTmenu':
'@relval2021',
1796 'BeamSpot':
'Run3RoundOptics25ns13TeVLowSigmaZ',
1797 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
1802 for key
in list(upgradeProperties[2017].
keys()):
1803 upgradeProperties[2017][key+
'PU'] = deepcopy(upgradeProperties[2017][key])
1804 upgradeProperties[2017][key+
'PU'][
'ScenToRun'] = [
'GenSim',
'DigiPU'] + \
1805 ([
'RecoNanoPU',
'HARVESTNanoPU']
if '202' in key
else [
'RecoFakeHLTPU',
'HARVESTFakeHLTPU']) + \
1806 ([
'Nano']
if 'Nano' in upgradeProperties[2017][key][
'ScenToRun']
else [])
1808 upgradeProperties[2026] = {
1810 'Geom' :
'Extended2026D49',
1811 'HLTmenu':
'@fake2',
1812 'GT' :
'auto:phase2_realistic_T15',
1814 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1817 'Geom' :
'Extended2026D60',
1818 'HLTmenu':
'@fake2',
1819 'GT' :
'auto:phase2_realistic_T15',
1820 'Era' :
'Phase2C10',
1821 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1824 'Geom' :
'Extended2026D68',
1825 'HLTmenu':
'@fake2',
1826 'GT' :
'auto:phase2_realistic_T21',
1827 'Era' :
'Phase2C11',
1828 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1831 'Geom' :
'Extended2026D70',
1832 'HLTmenu':
'@fake2',
1833 'GT' :
'auto:phase2_realistic_T21',
1834 'Era' :
'Phase2C11',
1835 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1838 'Geom' :
'Extended2026D76',
1839 'HLTmenu':
'@fake2',
1840 'GT' :
'auto:phase2_realistic_T21',
1841 'Era' :
'Phase2C11I13M9',
1842 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1845 'Geom' :
'Extended2026D77',
1846 'HLTmenu':
'@fake2',
1847 'GT' :
'auto:phase2_realistic_T21',
1848 'Era' :
'Phase2C11I13M9',
1849 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1852 'Geom' :
'Extended2026D78',
1853 'HLTmenu':
'@fake2',
1854 'GT' :
'auto:phase2_realistic_T22',
1855 'ProcessModifier':
'PixelCPEGeneric',
1856 'Era' :
'Phase2C11I13T22M9',
1857 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1860 'Geom' :
'Extended2026D79',
1861 'HLTmenu':
'@fake2',
1862 'GT' :
'auto:phase2_realistic_T23',
1863 'Era' :
'Phase2C11I13T23M9',
1864 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1867 'Geom' :
'Extended2026D80',
1868 'HLTmenu':
'@fake2',
1869 'GT' :
'auto:phase2_realistic_T25',
1870 'Era' :
'Phase2C11I13T25M9',
1871 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1874 'Geom' :
'Extended2026D81',
1875 'HLTmenu':
'@fake2',
1876 'GT' :
'auto:phase2_realistic_T26',
1877 'Era' :
'Phase2C11I13T26M9',
1878 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1881 'Geom' :
'Extended2026D82',
1882 'HLTmenu':
'@fake2',
1883 'GT' :
'auto:phase2_realistic_T21',
1884 'Era' :
'Phase2C11I13M9',
1885 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1888 'Geom' :
'Extended2026D83',
1889 'HLTmenu':
'@fake2',
1890 'GT' :
'auto:phase2_realistic_T21',
1891 'Era' :
'Phase2C11I13M9',
1892 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1895 'Geom' :
'Extended2026D84',
1896 'HLTmenu':
'@fake2',
1897 'GT' :
'auto:phase2_realistic_T21',
1898 'Era' :
'Phase2C11',
1899 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1902 'Geom' :
'Extended2026D85',
1903 'HLTmenu':
'@fake2',
1904 'GT' :
'auto:phase2_realistic_T21',
1905 'Era' :
'Phase2C11I13M9',
1906 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1909 'Geom' :
'Extended2026D86',
1910 'HLTmenu':
'@fake2',
1911 'GT' :
'auto:phase2_realistic_T21',
1912 'Era' :
'Phase2C17I13M9',
1913 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1916 'Geom' :
'Extended2026D87',
1917 'HLTmenu':
'@fake2',
1918 'GT' :
'auto:phase2_realistic_T27',
1919 'Era' :
'Phase2C11I13T27M9',
1920 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1923 'Geom' :
'Extended2026D88',
1924 'HLTmenu':
'@fake2',
1925 'GT' :
'auto:phase2_realistic_T21',
1926 'Era' :
'Phase2C17I13M9',
1927 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1930 'Geom' :
'Extended2026D89',
1931 'HLTmenu':
'@fake2',
1932 'GT' :
'auto:phase2_realistic_T27',
1933 'Era' :
'Phase2C11I13T27M9',
1934 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1937 'Geom' :
'Extended2026D90',
1938 'HLTmenu':
'@fake2',
1939 'GT' :
'auto:phase2_realistic_T27',
1940 'Era' :
'Phase2C11I13T27M9',
1941 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1944 'Geom' :
'Extended2026D91',
1945 'HLTmenu':
'@fake2',
1946 'GT' :
'auto:phase2_realistic_T30',
1947 'Era' :
'Phase2C17I13M9',
1948 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1953 for key
in list(upgradeProperties[2026].
keys()):
1954 upgradeProperties[2026][key+
'PU'] = deepcopy(upgradeProperties[2026][key])
1955 upgradeProperties[2026][key+
'PU'][
'ScenToRun'] = [
'GenSimHLBeamSpot',
'DigiTriggerPU',
'RecoGlobalPU',
'HARVESTGlobalPU']
1958 defaultDataSets = {}
1959 for year
in upgradeKeys:
1960 for key
in upgradeKeys[year]:
1961 if 'PU' in key:
continue
1962 defaultDataSets[key] =
''
1970 upgradeFragments = OrderedDict([
1972 (
'SingleElectronPt10_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronPt10')),
1973 (
'SingleElectronPt35_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronPt35')),
1974 (
'SingleElectronPt1000_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SingleElectronPt1000')),
1981 (
'FourMuExtendedPt_1_200_pythia8_cfi',
UpgradeFragment(
Kby(10,100),
'FourMuExtendedPt1_200')),
1982 (
'TenMuExtendedE_0_200_pythia8_cfi',
UpgradeFragment(
Kby(10,100),
'TenMuExtendedE_0_200')),
1983 (
'DoubleElectronPt10Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElPt10Extended')),
1984 (
'DoubleElectronPt35Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElPt35Extended')),
1985 (
'DoubleElectronPt1000Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SingleElPt1000Extended')),
1986 (
'DoubleGammaPt10Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleGammaPt10Extended')),
1987 (
'DoubleGammaPt35Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SingleGammaPt35Extended')),
1988 (
'DoubleMuPt1Extended_pythia8_cfi',
UpgradeFragment(
Kby(25,100),
'SingleMuPt1Extended')),
1989 (
'DoubleMuPt10Extended_pythia8_cfi',
UpgradeFragment(
Kby(25,100),
'SingleMuPt10Extended')),
1990 (
'DoubleMuPt100Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleMuPt100Extended')),
1991 (
'DoubleMuPt1000Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleMuPt1000Extended')),
1994 (
'MinBias_13TeV_pythia8_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(90,100),
'MinBias_13')),
1997 (
'QCD_Pt_600_800_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_600_800_13')),
1998 (
'Wjet_Pt_80_120_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'Wjet_Pt_80_120_14TeV')),
1999 (
'Wjet_Pt_3000_3500_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Wjet_Pt_3000_3500_14TeV')),
2001 (
'QCD_Pt_3000_3500_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_3000_3500_14TeV')),
2002 (
'QCD_Pt_80_120_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'QCD_Pt_80_120_14TeV')),
2003 (
'H200ChargedTaus_Tauola_14TeV_cfi',
UpgradeFragment(
Kby(9,100),
'Higgs200ChargedTaus_14TeV')),
2007 (
'ZTT_Tauola_All_hadronic_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,100),
'ZTT_14TeV')),
2008 (
'H130GGgluonfusion_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'H130GGgluonfusion_14TeV')),
2009 (
'PhotonJet_Pt_10_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'PhotonJets_Pt_10_14TeV')),
2010 (
'QQH1352T_Tauola_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'QQH1352T_Tauola_14TeV')),
2014 (
'QCDForPF_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(50,100),
'QCD_FlatPt_15_3000HS_14')),
2016 (
'DYToTauTau_M-50_14TeV_pythia8_tauola_cff',
UpgradeFragment(
Kby(9,100),
'DYtoTauTau_M_50_14TeV')),
2018 (
'QCD_Pt_80_120_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'QCD_Pt_80_120_13')),
2019 (
'H125GGgluonfusion_13TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'H125GGgluonfusion_13')),
2020 (
'QCD_Pt20toInf_MuEnrichedPt15_14TeV_TuneCP5_cff',
UpgradeFragment(
Kby(19565, 217391),
'QCD_Pt20toInfMuEnrichPt15_14')),
2022 (
'QCD_Pt15To7000_Flat_14TeV_TuneCP5_cff',
UpgradeFragment(
Kby(9,50),
'QCD_Pt15To7000_Flat_14')),
2023 (
'H125GGgluonfusion_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'H125GGgluonfusion_14')),
2024 (
'QCD_Pt_600_800_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_600_800_14')),
2027 (
'H200ChargedTaus_Tauola_13TeV_cfi',
UpgradeFragment(
Kby(9,50),
'Higgs200ChargedTaus_13')),
2028 (
'ADDMonoJet_13TeV_d3MD3_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'ADDMonoJet_d3MD3_13')),
2030 (
'QCD_Pt_3000_3500_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_3000_3500_13')),
2037 (
'PhotonJet_Pt_10_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'PhotonJets_Pt_10_13')),
2039 (
'Wjet_Pt_80_120_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Wjet_Pt_80_120_13')),
2040 (
'Wjet_Pt_3000_3500_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Wjet_Pt_3000_3500_13')),
2041 (
'SMS-T1tttt_mGl-1500_mLSP-100_13TeV-pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SMS-T1tttt_mGl-1500_mLSP-100_13')),
2042 (
'QCDForPF_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(50,100),
'QCD_FlatPt_15_3000HS_13')),
2043 (
'PYTHIA8_PhiToMuMu_TuneCUETP8M1_13TeV_cff',
UpgradeFragment(
Kby(9,50),
'PhiToMuMu_13')),
2044 (
'RSKKGluon_m3000GeV_13TeV_TuneCUETP8M1_cff',
UpgradeFragment(
Kby(9,50),
'RSKKGluon_m3000GeV_13')),
2048 (
'Upsilon1SToMuMu_forSTEAM_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Upsilon1SToMuMu_13')),
2049 (
'EtaBToJpsiJpsi_forSTEAM_TuneCUEP8M1_13TeV_cfi',
UpgradeFragment(
Kby(9,50),
'EtaBToJpsiJpsi_13')),
2050 (
'JpsiMuMu_Pt-8_forSTEAM_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(3100,100000),
'JpsiMuMu_Pt-8')),
2051 (
'BuMixing_BMuonFilter_forSTEAM_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(900,10000),
'BuMixing_13')),
2052 (
'HSCPstop_M_200_TuneCUETP8M1_13TeV_pythia8_cff',
UpgradeFragment(
Kby(9,50),
'HSCPstop_M_200_13')),
2053 (
'RSGravitonToGammaGamma_kMpl01_M_3000_TuneCUETP8M1_13TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'RSGravitonToGaGa_13')),
2054 (
'WprimeToENu_M-2000_TuneCUETP8M1_13TeV-pythia8_cff',
UpgradeFragment(
Kby(9,50),
'WpToENu_M-2000_13')),
2055 (
'DisplacedSUSY_stopToBottom_M_800_500mm_TuneCP5_13TeV_pythia8_cff',
UpgradeFragment(
Kby(9,50),
'DisplacedSUSY_stopToB_M_800_500mm_13')),
2057 (
'FlatRandomPtAndDxyGunProducer_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuonsDxy_0_500')),
2059 (
'SinglePiPt25Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SinglePiPt25Eta1p7_2p7')),
2060 (
'SingleMuPt15Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SingleMuPt15Eta1p7_2p7')),
2061 (
'SingleGammaPt25Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SingleGammaPt25Eta1p7_2p7')),
2062 (
'SingleElectronPt15Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronPt15Eta1p7_2p7')),
2064 (
'CloseByParticle_Photon_ERZRanges_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByParticleGun')),
2065 (
'CE_E_Front_300um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_E_Front_300um')),
2066 (
'CE_E_Front_200um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_E_Front_200um')),
2067 (
'CE_E_Front_120um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_E_Front_120um')),
2071 (
'CE_H_Coarse_Scint_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_H_Coarse_Scint')),
2072 (
'CE_H_Coarse_300um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_H_Coarse_300um')),
2073 (
'SingleElectronFlatPt2To100_cfi',
UpgradeFragment(
Kby(9,100),
'SingleEFlatPt2To100')),
2076 (
'SingleGammaFlatPt8To150_cfi',
UpgradeFragment(
Kby(9,100),
'SingleGammaFlatPt8To150')),
2079 (
'FlatRandomPtAndDxyGunProducer_MuPt2To10_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt2To10')),
2080 (
'FlatRandomPtAndDxyGunProducer_MuPt10To30_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt10To30')),
2081 (
'FlatRandomPtAndDxyGunProducer_MuPt30To100_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt30To100')),
2082 (
'B0ToKstarMuMu_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(304,3030),
'B0ToKstarMuMu_14TeV')),
2084 (
'BsToJpsiGamma_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(2500,25000),
'BsToJpsiGamma_14TeV')),
2085 (
'BsToJpsiPhi_mumuKK_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(910,9090),
'BsToJpsiPhi_mumuKK_14TeV')),
2087 (
'BsToPhiPhi_KKKK_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(556,5555),
'BsToPhiPhi_KKKK_14TeV')),
2088 (
'TauToMuMuMu_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(18939,189393),
'TauToMuMuMu_14TeV')),
2089 (
'BdToKstarEleEle_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(206,2061),
'BdToKstarEleEle_14TeV')),
2091 (
'BuMixing_BMuonFilter_forSTEAM_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(900,10000),
'BuMixing_14')),
2092 (
'Upsilon1SToMuMu_forSTEAM_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'Upsilon1SToMuMu_14')),
2093 (
'TenTau_E_15_500_Eta3p1_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'TenTau_15_500_Eta3p1')),
2094 (
'QCD_Pt_1800_2400_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_1800_2400_14')),
2095 (
'DisplacedSUSY_stopToBottom_M_800_500mm_TuneCP5_14TeV_pythia8_cff',
UpgradeFragment(
Kby(9,50),
'DisplacedSUSY_14TeV')),
2096 (
'GluGluTo2Jets_M_300_2000_14TeV_Exhume_cff',
UpgradeFragment(
Kby(9,100),
'GluGluTo2Jets_14TeV')),
2097 (
'TTbarToDilepton_mt172p5_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'TTbarToDilepton_14TeV')),
2098 (
'QQToHToTauTau_mh125_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'QQToHToTauTau_14TeV')),
2099 (
'ZpToEE_m6000_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'ZpToEE_m6000_14TeV')),
2100 (
'ZpToMM_m6000_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'ZpToMM_m6000_14TeV')),
2101 (
'SMS-T1tttt_mGl-1500_mLSP-100_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SMS-T1tttt_14TeV')),
2102 (
'VBFHZZ4Nu_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'VBFHZZ4Nu_14TeV')),
2103 (
'EtaBToJpsiJpsi_14TeV_TuneCP5_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'EtaBToJpsiJpsi_14TeV')),
2105 (
'WprimeToLNu_M2000_14TeV_TuneCP5_pythia8_cfi',
UpgradeFragment(
Kby(21,50),
'WprimeToLNu_M2000_14TeV')),
2107 (
'DoubleElectronFlatPt1p5To8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronFlatPt1p5To8')),
2108 (
'DoubleMuFlatPt1p5To8Dxy100GunProducer_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt1p5To8Dxy100')),
2109 (
'DoubleMuFlatPt2To100Dxy100GunProducer_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt2To100Dxy100')),
bool any(const std::vector< T > &v, const T &what)
boost::dynamic_bitset append(const boost::dynamic_bitset<> &bs1, const boost::dynamic_bitset<> &bs2)
this method takes two bitsets bs1 and bs2 and returns result of bs2 appended to the end of bs1 ...
const uint16_t range(const Frame &aFrame)
static std::string join(char **cmd)