1 from copy
import copy, deepcopy
2 from collections
import OrderedDict
3 from .MatrixUtil
import merge, Kby
79 numWFConflict = [[20000,23200],[23600,28200],[28600,31400],[31800,32200],[32600,34600],[50000,51000]]
85 for year
in upgradeKeys:
86 for i
in range(0,len(upgradeKeys[year])):
87 numWFtmp = numWFStart[year]
if i==0
else (numWFAll[year][i-1] + numWFSkip)
88 for conflict
in numWFConflict:
89 if numWFtmp>=conflict[0]
and numWFtmp<conflict[1]:
90 numWFtmp = conflict[1]
92 numWFAll[year].
append(numWFtmp)
99 preventReuseKeyword =
'NOREUSE' 108 if not step
in self.
steps:
115 raise ValueError(
"Special workflow offset must be between 0.0 and 1.0")
117 stepName = step + self.
suffix + extra
120 stepNamePU = step +
'PU' + self.
suffix + extra
123 for step
in self.
steps:
129 def setup(self, stepDict, k, properties):
130 for step
in self.
steps:
137 def setup_(self, step, stepName, stepDict, k, properties):
139 def setupPU_(self, step, stepName, stepDict, k, properties):
141 def workflow(self, workflows, num, fragment, stepList, key, hasHarvest):
142 if self.condition(fragment, stepList, key, hasHarvest):
143 self.workflow_(workflows, num, fragment, stepList, key)
144 def workflow_(self, workflows, num, fragment, stepList, key):
145 fragmentTmp = [fragment, key]
147 workflows[num+self.
offset] = [ fragmentTmp, stepList ]
148 def condition(self, fragment, stepList, key, hasHarvest):
151 if "Sim" in stepName:
152 stepDict[stepName][k] =
None 153 upgradeWFs = OrderedDict()
156 def setup_(self, step, stepName, stepDict, k, properties):
157 cust=properties.get(
'Custom',
None)
158 era=properties.get(
'Era',
None)
159 modifier=properties.get(
'ProcessModifier',
None)
160 if cust
is not None: stepDict[stepName][k][
'--customise']=cust
162 stepDict[stepName][k][
'--era']=era
163 if modifier
is not None: stepDict[stepName][k][
'--procModifier']=modifier
164 def condition(self, fragment, stepList, key, hasHarvest):
170 'GenSimHLBeamSpot14',
171 'GenSimHLBeamSpotHGCALCloseBy',
212 def setup_(self, step, stepName, stepDict, k, properties):
213 if stepDict[step][k] !=
None:
215 stepDict[stepName][k] =
None 216 if 'RecoNano' in step:
217 stepDict[stepName][k] =
merge([{
'--filein':
'file:step3.root',
'--secondfilein':
'file:step2.root'}, stepDict[step][k]])
219 stepDict[stepName][k] =
merge([{
'-s': re.sub(
',HLT.*',
'', stepDict[step][k][
'-s'])}, stepDict[step][k]])
220 def condition(self, fragment, stepList, key, hasHarvest):
221 if (
'TTbar_14TeV' in fragment
and '2021' == key):
222 stepList.insert(stepList.index(
'Digi_DigiNoHLT_2021')+1,
'HLTRun3_2021')
223 return (
'TTbar_14TeV' in fragment
and '2021' == key)
231 suffix =
'_DigiNoHLT',
240 steps = steps + [
"ALCA",
"Nano"]
241 super().
__init__(steps, [], suffix, offset)
242 def condition(self, fragment, stepList, key, hasHarvest):
243 result = (fragment==
"TTbar_13" or fragment==
"TTbar_14TeV")
and not 'PU' in key
and hasHarvest
and self.
condition_(fragment, stepList, key, hasHarvest)
247 def setup_(self, step, stepName, stepDict, k, properties):
249 if 'ALCA' in step
or 'Nano'==step:
250 stepDict[stepName][k] =
None 251 self.
setup__(step, stepName, stepDict, k, properties)
253 def setup__(self, step, stepName, stepDict, k, properties):
256 class UpgradeWorkflow_trackingOnly(UpgradeWorkflowTracking):
257 def setup__(self, step, stepName, stepDict, k, properties):
258 if 'Reco' in step: stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
259 elif 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@trackingOnlyDQM'}, stepDict[step][k]])
271 suffix =
'_trackingOnly',
274 upgradeWFs[
'trackingOnly'].step3 = {
275 '-s':
'RAW2DIGI,RECO:reconstruction_trackingOnly,VALIDATION:@trackingOnlyValidation,DQM:@trackingOnlyDQM',
276 '--datatier':
'GEN-SIM-RECO,DQMIO',
277 '--eventcontent':
'RECOSIM,DQM',
280 step3_trackingOnly = upgradeWFs[
'trackingOnly'].step3
283 def setup__(self, step, stepName, stepDict, k, properties):
284 if 'Reco' in step
and stepDict[step][k][
'--era']==
'Run2_2017':
285 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2017_trackingRun2'}, stepDict[step][k]])
293 suffix =
'_trackingRun2',
298 def setup__(self, step, stepName, stepDict, k, properties):
299 if 'Reco' in step
and stepDict[step][k][
'--era']==
'Run2_2017':
300 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2017_trackingRun2'}, self.
step3, stepDict[step][k]])
301 elif 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@trackingOnlyDQM'}, stepDict[step][k]])
311 suffix =
'_trackingOnlyRun2',
314 upgradeWFs[
'trackingOnlyRun2'].step3 = upgradeWFs[
'trackingOnly'].step3
317 def setup__(self, step, stepName, stepDict, k, properties):
318 if 'Reco' in step
and stepDict[step][k][
'--era']==
'Run2_2017':
319 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2017_trackingLowPU'}, stepDict[step][k]])
327 suffix =
'_trackingLowPU',
332 def setup__(self, step, stepName, stepDict, k, properties):
333 if 'Reco' in step: stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
334 elif 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM'}, stepDict[step][k]])
336 return '2017' in key
or '2018' in key
or '2021' in key
or '2026' in key
348 suffix =
'_pixelTrackingOnly',
351 upgradeWFs[
'pixelTrackingOnly'].step3 = {
352 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
353 '--datatier':
'GEN-SIM-RECO,DQMIO',
354 '--eventcontent':
'RECOSIM,DQM',
358 def setup__(self, step, stepName, stepDict, k, properties):
359 if 'Digi' in step: stepDict[stepName][k] =
merge([self.
step2, stepDict[step][k]])
360 if 'Reco' in step: stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
362 return '2017' in key
or '2021' in key
372 suffix =
'_trackingMkFit',
375 upgradeWFs[
'trackingMkFit'].step2 = {
376 '--customise':
'RecoTracker/MkFit/customizeHLTIter0ToMkFit.customizeHLTIter0ToMkFit' 378 upgradeWFs[
'trackingMkFit'].step3 = {
379 '--procModifiers':
'trackingMkFit' 384 def setup_(self, step, stepName, stepDict, k, properties):
386 if 'ALCA' in step
or 'Nano'==step:
387 stepDict[stepName][k] =
None 388 elif 'Reco' in step
or 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'--procModifiers':
'seedingDeepCore'}, stepDict[step][k]])
389 def condition(self, fragment, stepList, key, hasHarvest):
390 result = (fragment==
"QCD_Pt_1800_2400_14" or fragment==
"TTbar_14TeV" )
and (
'2021' in key
or '2024' in key)
and hasHarvest
404 suffix =
'_seedingDeepCore',
410 def setup_(self, step, stepName, stepDict, k, properties):
411 stepDict[stepName][k] =
merge([{
'--procModifiers':
'vectorHits'}, stepDict[step][k]])
412 def condition(self, fragment, stepList, key, hasHarvest):
413 return fragment==
"TTbar_14TeV" and '2026' in key
423 suffix =
'_vectorHits',
429 def setup_(self, step, stepName, stepDict, k, properties):
430 if 'RecoGlobal' in step:
431 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
432 if 'HARVESTGlobal' in step:
433 stepDict[stepName][k] =
merge([self.
step4, stepDict[step][k]])
434 def condition(self, fragment, stepList, key, hasHarvest):
435 return (fragment==
"TTbar_14TeV" or 'CloseByPGun_CE' in fragment)
and '2026' in key
445 suffix =
'_ticl_clue3D',
448 upgradeWFs[
'ticl_clue3D'].step3 = {
'--procModifiers':
'clue3D'}
449 upgradeWFs[
'ticl_clue3D'].step4 = {
'--procModifiers':
'clue3D'}
452 def setup_(self, step, stepName, stepDict, k, properties):
453 if 'RecoGlobal' in step:
454 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
455 if 'HARVESTGlobal' in step:
456 stepDict[stepName][k] =
merge([self.
step4, stepDict[step][k]])
457 def condition(self, fragment, stepList, key, hasHarvest):
458 return (fragment==
"TTbar_14TeV" or 'CloseByPGun_CE' in fragment)
and '2026' in key
468 suffix =
'_ticl_FastJet',
471 upgradeWFs[
'ticl_FastJet'].step3 = {
'--procModifiers':
'fastJetTICL'}
472 upgradeWFs[
'ticl_FastJet'].step4 = {
'--procModifiers':
'fastJetTICL'}
476 def setup_(self, step, stepName, stepDict, k, properties):
477 stepDict[stepName][k] =
merge([{
'--procModifiers':
'trackdnn'}, stepDict[step][k]])
479 def condition(self, fragment, stepList, key, hasHarvest):
480 return fragment==
"TTbar_14TeV" and '2021' in key
490 suffix =
'_trackdnn',
497 def setup_(self, step, stepName, stepDict, k, properties):
499 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
500 def condition(self, fragment, stepList, key, hasHarvest):
501 return (fragment==
"TTbar_14TeV" or fragment==
"QCD_FlatPt_15_3000HS_14")
and '2021PU' in key
515 upgradeWFs[
'mlpf'].step3 = {
516 '--datatier':
'GEN-SIM-RECO,RECOSIM,MINIAODSIM,NANOAODSIM,DQMIO',
517 '--eventcontent':
'FEVTDEBUGHLT,RECOSIM,MINIAODSIM,NANOEDMAODSIM,DQM',
518 '--procModifiers':
'mlpf' 523 def setup_(self, step, stepName, stepDict, k, properties):
525 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
526 def condition(self, fragment, stepList, key, hasHarvest):
527 return '2018' in key
and "SingleGamma" in fragment
540 suffix =
'_photonDRN',
543 upgradeWFs[
'photonDRN'].step3 = {
544 '--procModifiers':
'enableSonicTriton,photonDRN' 553 def __init__(self, digi = {}, reco = {}, harvest = {}, **kwargs):
555 super(PatatrackWorkflow, self).
__init__(
575 '--datatier':
'GEN-SIM-RECO,DQMIO',
576 '--eventcontent':
'RECOSIM,DQM' 580 def condition(self, fragment, stepList, key, hasHarvest):
583 (
'2018' in key
and fragment ==
"TTbar_13"),
584 (
'2021' in key
and fragment ==
"TTbar_14TeV"),
585 (
'2018' in key
and fragment ==
"ZMM_13"),
586 (
'2021' in key
and fragment ==
"ZMM_14"),
587 (
'2026D88' in key
and fragment ==
"TTbar_14TeV" and "PixelOnly" in self.
suffix)
589 result =
any(selected)
and hasHarvest
593 def setup_(self, step, stepName, stepDict, k, properties):
595 if 'ALCA' in step
or 'Nano'==step:
596 stepDict[stepName][k] =
None 599 stepDict[stepName][k] =
None 601 stepDict[stepName][k] =
merge([self.
__digi, stepDict[step][k]])
604 stepDict[stepName][k] =
None 606 stepDict[stepName][k] =
merge([self.
__reco, stepDict[step][k]])
607 elif 'HARVEST' in step:
609 stepDict[stepName][k] =
None 611 stepDict[stepName][k] =
merge([self.
__harvest, stepDict[step][k]])
622 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
623 '--procModifiers':
'pixelNtupletFit' 626 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' 628 suffix =
'Patatrack_PixelOnlyCPU',
639 '--procModifiers':
'gpu' 642 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
643 '--procModifiers':
'pixelNtupletFit,gpu' 646 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' 648 suffix =
'Patatrack_PixelOnlyGPU',
659 '--accelerators':
'gpu-nvidia',
660 '--procModifiers':
'gpu' 663 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
664 '--accelerators':
'gpu-nvidia',
665 '--procModifiers':
'pixelNtupletFit,gpuValidation' 668 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM',
669 '--procModifiers':
'gpuValidation' 671 suffix =
'Patatrack_PixelOnlyGPU_Validation',
681 '--procModifiers':
'gpu' 684 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly',
685 '--procModifiers':
'pixelNtupletFit,gpu',
686 '--customise' :
'RecoTracker/Configuration/customizePixelOnlyForProfiling.customizePixelOnlyForProfilingGPUOnly' 689 suffix =
'Patatrack_PixelOnlyGPU_Profiling',
702 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
703 '--procModifiers':
'pixelNtupletFit',
704 '--customise' :
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 707 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' 709 suffix =
'Patatrack_PixelOnlyTripletsCPU',
720 '--procModifiers':
'gpu' 723 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
724 '--procModifiers':
'pixelNtupletFit,gpu',
725 '--customise':
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 728 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' 730 suffix =
'Patatrack_PixelOnlyTripletsGPU',
741 '--accelerators':
'gpu-nvidia',
742 '--procModifiers':
'gpu' 745 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
746 '--accelerators':
'gpu-nvidia',
747 '--procModifiers':
'pixelNtupletFit,gpuValidation',
748 '--customise':
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 751 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM',
752 '--procModifiers':
'gpuValidation',
754 suffix =
'Patatrack_PixelOnlyTripletsGPU_Validation',
764 '--procModifiers':
'gpu' 767 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly',
768 '--procModifiers':
'pixelNtupletFit,gpu',
769 '--customise':
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets,RecoTracker/Configuration/customizePixelOnlyForProfiling.customizePixelOnlyForProfilingGPUOnly' 772 suffix =
'Patatrack_PixelOnlyTripletsGPU_Profiling',
785 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly',
788 '-s':
'HARVESTING:@ecalOnlyValidation+@ecal' 790 suffix =
'Patatrack_ECALOnlyCPU',
801 '--procModifiers':
'gpu' 804 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly',
805 '--procModifiers':
'gpu' 808 '-s':
'HARVESTING:@ecalOnlyValidation+@ecal' 810 suffix =
'Patatrack_ECALOnlyGPU',
821 '--accelerators':
'gpu-nvidia',
822 '--procModifiers':
'gpu' 825 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly',
826 '--accelerators':
'gpu-nvidia',
827 '--procModifiers':
'gpuValidation' 830 '-s':
'HARVESTING:@ecalOnlyValidation+@ecal' 832 suffix =
'Patatrack_ECALOnlyGPU_Validation',
842 '--procModifiers':
'gpu' 845 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly',
846 '--procModifiers':
'gpu',
847 '--customise' :
'RecoLocalCalo/Configuration/customizeEcalOnlyForProfiling.customizeEcalOnlyForProfilingGPUOnly' 850 suffix =
'Patatrack_ECALOnlyGPU_Profiling',
863 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only',
866 '-s':
'HARVESTING:@hcalOnlyValidation+@hcalOnly+@hcal2Only' 868 suffix =
'Patatrack_HCALOnlyCPU',
879 '--procModifiers':
'gpu' 882 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only',
883 '--procModifiers':
'gpu' 886 '-s':
'HARVESTING:@hcalOnlyValidation+@hcalOnly+@hcal2Only' 888 suffix =
'Patatrack_HCALOnlyGPU',
899 '--accelerators':
'gpu-nvidia',
900 '--procModifiers':
'gpu' 903 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only',
904 '--accelerators':
'gpu-nvidia',
905 '--procModifiers':
'gpuValidation' 908 '-s':
'HARVESTING:@hcalOnlyValidation+@hcal' 910 suffix =
'Patatrack_HCALOnlyGPU_Validation',
920 '--procModifiers':
'gpu' 923 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly',
924 '--procModifiers':
'gpu',
925 '--customise' :
'RecoLocalCalo/Configuration/customizeHcalOnlyForProfiling.customizeHcalOnlyForProfilingGPUOnly' 928 suffix =
'Patatrack_HCALOnlyGPU_Profiling',
941 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
942 '--procModifiers':
'pixelNtupletFit' 945 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' 947 suffix =
'Patatrack_AllCPU',
958 '--procModifiers':
'gpu' 961 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
962 '--procModifiers':
'pixelNtupletFit,gpu' 965 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' 967 suffix =
'Patatrack_AllGPU',
978 '--accelerators':
'gpu-nvidia',
979 '--procModifiers':
'gpu' 982 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
983 '--accelerators':
'gpu-nvidia',
984 '--procModifiers':
'pixelNtupletFit,gpuValidation' 987 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only',
988 '--procModifiers':
'gpuValidation' 990 suffix =
'Patatrack_AllGPU_Validation',
1008 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1009 '--procModifiers':
'pixelNtupletFit' 1012 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' 1014 suffix =
'Patatrack_AllTripletsCPU',
1025 '--procModifiers':
'gpu' 1028 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1029 '--procModifiers':
'pixelNtupletFit,gpu' 1032 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' 1034 suffix =
'Patatrack_AllTripletsGPU',
1045 '--accelerators':
'gpu-nvidia',
1046 '--procModifiers':
'gpu' 1049 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1050 '--accelerators':
'gpu-nvidia',
1051 '--procModifiers':
'pixelNtupletFit,gpuValidation' 1054 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only',
1055 '--procModifiers':
'gpuValidation' 1057 suffix =
'Patatrack_AllTripletsGPU_Validation',
1076 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1077 '--procModifiers':
'pixelNtupletFit' 1082 suffix =
'Patatrack_FullRecoCPU',
1093 '--procModifiers':
'gpu' 1097 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1098 '--procModifiers':
'pixelNtupletFit,gpu' 1103 suffix =
'Patatrack_FullRecoGPU',
1114 '--accelerators':
'gpu-nvidia',
1115 '--procModifiers':
'gpu' 1119 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1120 '--accelerators':
'gpu-nvidia',
1121 '--procModifiers':
'pixelNtupletFit,gpuValidation' 1126 suffix =
'Patatrack_FullRecoGPU_Validation',
1140 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1141 '--procModifiers':
'pixelNtupletFit',
1142 '--customise' :
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 1147 suffix =
'Patatrack_FullRecoTripletsCPU',
1158 '--procModifiers':
'gpu' 1162 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1163 '--procModifiers':
'pixelNtupletFit,gpu',
1164 '--customise':
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 1169 suffix =
'Patatrack_FullRecoTripletsGPU',
1180 '--accelerators':
'gpu-nvidia',
1181 '--procModifiers':
'gpu' 1185 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1186 '--accelerators':
'gpu-nvidia',
1187 '--procModifiers':
'pixelNtupletFit,gpuValidation',
1188 '--customise' :
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 1193 suffix =
'Patatrack_FullRecoTripletsGPU_Validation',
1201 def setup_(self, step, stepName, stepDict, k, properties):
1202 if 'GenSimHLBeamSpot14' in step:
1203 stepDict[stepName][k] =
merge([{
'--eventcontent':
'RAWSIM',
'--datatier':
'GEN-SIM'},stepDict[step][k]])
1204 elif 'Digi' in step
and 'Trigger' not in step:
1205 stepDict[stepName][k] =
merge([{
'-s':
'DIGI,L1,DIGI2RAW,HLT:@relval2022',
'--datatier':
'GEN-SIM-RAW',
'--eventcontent':
'RAWSIM'}, stepDict[step][k]])
1206 elif 'DigiTrigger' in step:
1207 stepDict[stepName][k] =
merge([{
'-s':
'DIGI,L1TrackTrigger,L1,DIGI2RAW,HLT:@fake2',
'--datatier':
'GEN-SIM-RAW',
'--eventcontent':
'RAWSIM'}, stepDict[step][k]])
1208 elif 'Reco' in step:
1209 stepDict[stepName][k] =
merge([{
'-s':
'RAW2DIGI,L1Reco,RECO,RECOSIM',
'--datatier':
'AODSIM',
'--eventcontent':
'AODSIM'}, stepDict[step][k]])
1210 elif 'MiniAOD' in step:
1212 stepDict[stepName][k] = deepcopy(stepDict[step][k])
1213 elif 'ALCA' in step
or 'HARVEST' in step:
1215 stepDict[stepName][k] =
None 1217 stepDict[stepName][k] =
merge([{
'--filein':
'file:step4.root',
'-s':
'NANO',
'--datatier':
'NANOAODSIM',
'--eventcontent':
'NANOEDMAODSIM'}, stepDict[step][k]])
1219 return fragment==
"TTbar_14TeV" and (
'2026' in key
or '2021' in key)
1222 'GenSimHLBeamSpot14',
1236 'GenSimHLBeamSpot14',
1249 suffix =
'_ProdLike',
1254 def setup_(self, step, stepName, stepDict, k, properties):
1255 if 'HARVEST' in step:
1256 stepDict[stepName][k] =
merge([{
'--filein':
'file:step3_inDQM.root'}, stepDict[step][k]])
1258 stepDict[stepName][k] =
merge([stepDict[step][k]])
1260 return fragment==
"TTbar_14TeV" and '2026' in key
1263 'GenSimHLBeamSpot14',
1270 'GenSimHLBeamSpot14',
1276 suffix =
'_HLT75e33',
1281 def setup_(self, step, stepName, stepDict, k, properties):
1282 if 'GenSim' in step:
1283 custNew =
"SimG4Core/Application/NeutronBGforMuonsXS_cff.customise" 1285 custNew =
"SLHCUpgradeSimulations/Configuration/customise_mixing.customise_Mix_LongLived_Neutrons" 1286 stepDict[stepName][k] = deepcopy(stepDict[step][k])
1287 if '--customise' in stepDict[stepName][k].
keys():
1288 stepDict[stepName][k][
'--customise'] +=
","+custNew
1290 stepDict[stepName][k][
'--customise'] = custNew
1297 'GenSimHLBeamSpot14',
1305 suffix =
'_Neutron',
1309 upgradeWFs[
'Neutron'].neutronKeys = [x
for x
in upgradeKeys[2026]
if 'PU' not in x]
1310 upgradeWFs[
'Neutron'].neutronFrags = [
'ZMM_14',
'MinBias_14TeV']
1313 def setup_(self, step, stepName, stepDict, k, properties):
1314 stepDict[stepName][k] =
merge([{
'--procModifiers':
'run2_HECollapse_2018'}, stepDict[step][k]])
1316 return fragment==
"TTbar_13" and '2018' in key
1330 suffix =
'_heCollapse',
1335 def setup_(self, step, stepName, stepDict, k, properties):
1337 mods = {
'--era': stepDict[step][k][
'--era']+
',phase2_ecal_devel'}
1339 mods[
'-s'] =
'DIGI:pdigi_valid,DIGI2RAW' 1340 elif 'Reco' in step:
1341 mods[
'-s'] =
'RAW2DIGI,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly' 1342 mods[
'--datatier'] =
'GEN-SIM-RECO,DQMIO' 1343 mods[
'--eventcontent'] =
'FEVTDEBUGHLT,DQM' 1344 elif 'HARVEST' in step:
1345 mods[
'-s'] =
'HARVESTING:@ecalOnlyValidation+@ecal' 1346 stepDict[stepName][k] =
merge([mods, stepDict[step][k]])
1348 return fragment==
"TTbar_14TeV" and '2026' in key
1360 suffix =
'_ecalDevel',
1365 def setup_(self, step, stepName, stepDict, k, properties):
1366 myGT=stepDict[step][k][
'--conditions']
1368 stepDict[stepName][k] =
merge([{
'-n':
'1',
'--magField':
'0T',
'--conditions':myGT}, stepDict[step][k]])
1369 def setupPU_(self, step, stepName, stepDict, k, properties):
1371 stepDict[stepName][k] =
merge([{
'-n':
'1'}, stepDict[step][k]])
1373 return (fragment==
"TTbar_13" or fragment==
"TTbar_14TeV")
and (
'2017' in key
or '2018' in key
or '2021' in key)
1396 def setup_(self, step, stepName, stepDict, k, properties):
1397 if 'Reco' in step
and 'Run2_2018' in stepDict[step][k][
'--era']:
1398 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2018,bParking'}, stepDict[step][k]])
1400 return fragment==
"TTbar_13" and '2018' in key
1406 suffix =
'_ParkingBPH',
1411 def setup_(self, step, stepName, stepDict, k, properties):
1413 stepDict[stepName][k] =
merge([{
'--customise':
'PhysicsTools/NanoAOD/custom_jme_cff.PrepJMECustomNanoAOD_MC'}, stepDict[step][k]])
1415 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)
1422 suffix =
'_JMENano',
1429 def setup_(self, step, stepName, stepDict, k, properties):
1430 if 'Digi' in step
or 'Reco' in step:
1431 stepDict[stepName][k] =
merge([{
'--customise':
'SLHCUpgradeSimulations/Configuration/aging.customise_aging_'+self.
lumi}, stepDict[step][k]])
1433 return fragment==
"TTbar_14TeV" and '2026' in key
1450 suffix =
'Aging1000',
1453 upgradeWFs[
'Aging1000'].lumi =
'1000' 1454 upgradeWFs[
'Aging3000'] = deepcopy(upgradeWFs[
'Aging1000'])
1455 upgradeWFs[
'Aging3000'].suffix =
'Aging3000' 1456 upgradeWFs[
'Aging3000'].offset = 0.103
1457 upgradeWFs[
'Aging3000'].lumi =
'3000' 1464 def setup_(self, step, stepName, stepDict, k, properties):
1466 stepDict[stepName][k] =
merge([{
'--customise':
'SimTracker/SiPhase2Digitizer/customizeForOTInefficiency.customizeSiPhase2OTInefficiency'+self.
percent+
'Percent'}, stepDict[step][k]])
1468 return fragment==
"TTbar_14TeV" and '2026' in key
1479 suffix =
'_OTInefficiency',
1482 upgradeWFs[
'OTInefficiency'].percent =
'Zero' 1485 upgradeWFs[
'OTInefficiency1PC'] = deepcopy(upgradeWFs[
'OTInefficiency'])
1486 upgradeWFs[
'OTInefficiency1PC'].suffix =
'_OTInefficiency1PC' 1487 upgradeWFs[
'OTInefficiency1PC'].offset = 0.112
1488 upgradeWFs[
'OTInefficiency1PC'].percent =
'One' 1491 upgradeWFs[
'OTInefficiency5PC'] = deepcopy(upgradeWFs[
'OTInefficiency'])
1492 upgradeWFs[
'OTInefficiency5PC'].suffix =
'_OTInefficiency5PC' 1493 upgradeWFs[
'OTInefficiency5PC'].offset = 0.113
1494 upgradeWFs[
'OTInefficiency5PC'].percent =
'Five' 1497 upgradeWFs[
'OTInefficiency10PC'] = deepcopy(upgradeWFs[
'OTInefficiency'])
1498 upgradeWFs[
'OTInefficiency10PC'].suffix =
'_OTInefficiency10PC' 1499 upgradeWFs[
'OTInefficiency10PC'].offset = 0.114
1500 upgradeWFs[
'OTInefficiency10PC'].percent =
'Ten' 1508 digiPremixLocalPileup = {
1509 "--filein":
"file:step1.root",
1510 "--pileup_input":
"file:step2.root" 1515 def setup_(self, step, stepName, stepDict, k, properties):
1517 stepDict[stepName][k] =
merge([stepDict[step][k]])
1518 def setupPU_(self, step, stepName, stepDict, k, properties):
1520 if "GenSim" in stepName:
1521 stepNamePmx = stepName.replace(
'GenSim',
'Premix')
1522 if not stepNamePmx
in stepDict: stepDict[stepNamePmx] = {}
1523 stepDict[stepNamePmx][k] =
merge([
1525 '-s':
'GEN,SIM,DIGI:pdigi_valid',
1526 '--datatier':
'PREMIX',
1527 '--eventcontent':
'PREMIX',
1528 '--procModifiers':
'premix_stage1' 1530 stepDict[stepName][k]
1532 if "ProdLike" in self.
suffix:
1533 stepDict[stepNamePmx][k] =
merge([{
'-s':
'GEN,SIM,DIGI'},stepDict[stepNamePmx][k]])
1535 elif "Digi" in step
or "Reco" in step:
1538 if d
is None:
return 1541 for s
in d[
"-s"].
split(
","):
1542 if s ==
"DIGI" or "DIGI:" in s:
1543 tmpsteps.extend([s,
"DATAMIX"])
1547 "--datamix" :
"PreMix",
1548 "--procModifiers":
"premix_stage2"},
1551 if "_PMXS1S2" in self.
suffix:
1552 d =
merge([digiPremixLocalPileup, d])
1553 elif "Reco" in step:
1554 if "--procModifiers" in d:
1555 d[
"--procModifiers"] +=
",premix_stage2" 1557 d[
"--procModifiers"] =
"premix_stage2" 1558 stepDict[stepName][k] = d
1564 filein = d[
"--filein"]
1565 m = re.search(
"step(?P<ind>\d+)_", filein)
1567 d[
"--filein"] = filein.replace(m.group(),
"step%d_"%(
int(m.group(
"ind"))+1))
1568 stepDict[stepName][k] = d
1574 if not any(y
in key
for y
in [
'2021',
'2023',
'2024',
'2026']):
1576 if self.
suffix.endswith(
"S1"):
1577 return "NuGun" in fragment
1579 def workflow_(self, workflows, num, fragment, stepList, key):
1580 fragmentTmp = fragment
1581 if self.
suffix.endswith(
"S1"):
1582 fragmentTmp =
'PREMIXUP' + key[2:].
replace(
"PU",
"").
replace(
"Design",
"") +
'_PU25' 1583 super(UpgradeWorkflowPremix,self).
workflow_(workflows, num, fragmentTmp, stepList, key)
1591 'GenSimHLBeamSpot14',
1617 'GenSimHLBeamSpot14',
1626 suffix =
'_PMXS1S2',
1631 def setupPU_(self, step, stepName, stepDict, k, properties):
1633 if '--pileup' in stepDict[stepName][k]:
1634 stepDict[stepName][k][
'--pileup'] =
'AVE_50_BX_25ns_m3p3' 1635 super(UpgradeWorkflowAdjustPU,self).
setupPU_(step, stepName, stepDict, k, properties)
1638 return super(UpgradeWorkflowAdjustPU,self).
condition(fragment, stepList, key, hasHarvest)
and '2026' in key
1644 'GenSimHLBeamSpot14',
1654 suffix =
'_PMXS1S2PR',
1659 def setup_(self, step, stepName, stepDict, k, properties):
1661 UpgradeWorkflowPremix.setup_(self, step, stepName, stepDict, k, properties)
1662 UpgradeWorkflow_ProdLike.setup_(self, step, stepName, stepDict, k, properties)
1667 for s
in d[
"-s"].
split(
","):
1668 if "DIGI:pdigi_valid" in s:
1669 tmpsteps.append(
"DIGI")
1673 "--eventcontent":
"PREMIXRAW"},
1675 stepDict[stepName][k] = d
1677 stepDict[stepName][k] =
merge([{
'--filein':
'file:step5.root',
'-s':
'NANO',
'--datatier':
'NANOAODSIM',
'--eventcontent':
'NANOEDMAODSIM'}, stepDict[step][k]])
1680 return UpgradeWorkflowPremix.condition(self, fragment, stepList, key, hasHarvest)
and UpgradeWorkflow_ProdLike.condition(self, fragment, stepList, key, hasHarvest)
1698 suffix =
'_PMXS2ProdLike',
1707 'GenSimHLBeamSpot14',
1721 suffix =
'_PMXS1S2ProdLike',
1726 def setup_(self, step, stepName, stepDict, k, properties):
1727 if 'GenSim' in step:
1728 stepDict[stepName][k] =
merge([{
'-s':
'GEN,SIM,RECOBEFMIX,DIGI:pdigi_valid,L1,DIGI2RAW,L1Reco,RECO,PAT,VALIDATION:@standardValidation,DQM:@standardDQMFS',
1730 '--era':
'Run3_FastSim',
1731 '--eventcontent':
'FEVTDEBUGHLT,MINIAODSIM,DQM',
1732 '--datatier':
'GEN-SIM-DIGI-RECO,MINIAODSIM,DQMIO',
1733 '--relval':
'27000,3000'}, stepDict[step][k]])
1734 if 'Digi' in step
or 'RecoNano' in step
or 'ALCA' in step:
1735 stepDict[stepName][k] =
None 1736 if 'HARVESTNano' in step:
1737 stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:validationHarvesting',
1739 '--era':
'Run3_FastSim',
1740 '--filein':
'file:step1_inDQM.root'}, stepDict[step][k]])
1742 return '2021' in key
1757 def setup_(self, step, stepName, stepDict, k, properties):
1758 if 'GenSim' in step:
1759 stepDict[stepName][k] =
merge([{
'-s':
'GEN,SIM,RECOBEFMIX,DIGI:pdigi_valid,L1,DIGI2RAW,L1Reco,RECO,PAT,VALIDATION:@trackingOnlyValidation',
1761 '--era':
'Run3_FastSim',
1762 '--eventcontent':
'FEVTDEBUGHLT,MINIAODSIM,DQM',
1763 '--datatier':
'GEN-SIM-DIGI-RECO,MINIAODSIM,DQMIO',
1764 '--relval':
'27000,3000'}, stepDict[step][k]])
1765 if 'Digi' in step
or 'RecoNano' in step
or 'ALCA' in step:
1766 stepDict[stepName][k] =
None 1767 if 'HARVESTNano' in step:
1768 stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@trackingOnlyDQM',
1770 '--era':
'Run3_FastSim',
1771 '--filein':
'file:step1_inDQM.root'}, stepDict[step][k]])
1773 return '2021' in key
1783 suffix =
'_Run3FSTrackingOnly',
1788 def setup_(self, step, stepName, stepDict, k, properties):
1789 if 'GenSim' in step:
1790 stepDict[stepName][k] =
merge([{
'-s':
'GEN,SIM,RECOBEFMIX',
1792 '--era':
'Run3_FastSim',
1793 '--eventcontent':
'FASTPU',
1794 '--datatier':
'GEN-SIM-RECO',
1795 '--relval':
'27000,3000'}, stepDict[step][k]])
1796 if 'Digi' in step
or 'RecoNano' in step
or 'ALCA' in step
or 'HARVESTNano' in step:
1797 stepDict[stepName][k] =
None 1799 return '2021' in key
and fragment==
"MinBias_14TeV" 1809 suffix =
'_Run3FSMBMixing',
1814 def setup_(self, step, stepName, stepDict, k, properties):
1815 if 'Run3' in stepDict[step][k][
'--era']:
1816 stepDict[stepName][k] =
merge([{
'--geometry':
'DD4hepExtended2021'}, stepDict[step][k]])
1817 elif 'Phase2' in stepDict[step][k][
'--era']:
1819 dd4hepGeom+=stepDict[step][k][
'--geometry']
1820 stepDict[stepName][k] =
merge([{
'--geometry' : dd4hepGeom,
'--procModifiers':
'dd4hep'}, stepDict[step][k]])
1822 return '2021' in key
or '2026' in key
1827 'GenSimHLBeamSpot14',
1842 upgradeWFs[
'DD4hep'].allowReuse =
False 1847 def setup_(self, step, stepName, stepDict, k, properties):
1848 if 'Run3' in stepDict[step][k][
'--era']:
1849 stepDict[stepName][k] =
merge([{
'--conditions':
'auto:phase1_2022_realistic',
'--geometry':
'DB:Extended'}, stepDict[step][k]])
1851 return '2021' in key
1856 'GenSimHLBeamSpot14',
1868 suffix =
'_DD4hepDB',
1871 upgradeWFs[
'DD4hepDB'].allowReuse =
False 1874 def setup_(self, step, stepName, stepDict, k, properties):
1875 if 'Run3' in stepDict[step][k][
'--era']:
1877 tmp_eras = stepDict[step][k][
'--era'].
split(
',')
1878 tmp_eras[tmp_eras.index(
"Run3")] =
'Run3_DDD' 1879 tmp_eras =
','.
join(tmp_eras)
1880 stepDict[stepName][k] =
merge([{
'--conditions':
'auto:phase1_2022_realistic_ddd',
'--geometry':
'DB:Extended',
'--era': tmp_eras}, stepDict[step][k]])
1882 return '2021' in key
1887 'GenSimHLBeamSpot14',
1902 upgradeWFs[
'DDDDB'].allowReuse =
False 1905 def setup_(self, step, stepName, stepDict, k, properties):
1906 stepDict[stepName][k] =
merge([{
'--procModifiers':
'allSonicTriton'}, stepDict[step][k]])
1908 return (fragment==
'TTbar_13' and '2021' in key) \
1909 or (fragment==
'TTbar_14TeV' and '2026' in key)
1914 'GenSimHLBeamSpot14',
1928 'GenSimHLBeamSpot14',
1939 suffix =
'_SonicTriton',
1944 offsets = [specialWF.offset
for specialType,specialWF
in upgradeWFs.items()]
1946 dups = set(x
for x
in offsets
if x
in seen
or seen.add(x))
1948 raise ValueError(
"Duplicate special workflow offsets not allowed: "+
','.
join([
str(x)
for x
in dups]))
1950 upgradeProperties = {}
1952 upgradeProperties[2017] = {
1954 'Geom' :
'DB:Extended',
1955 'GT' :
'auto:phase1_2017_realistic',
1956 'HLTmenu':
'@relval2017',
1957 'Era' :
'Run2_2017',
1958 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT',
'ALCA',
'Nano'],
1961 'Geom' :
'DB:Extended',
1962 'GT' :
'auto:phase1_2017_design',
1963 'HLTmenu':
'@relval2017',
1964 'Era' :
'Run2_2017',
1965 'BeamSpot':
'GaussSigmaZ4cm',
1966 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT'],
1969 'Geom' :
'DB:Extended',
1970 'GT' :
'auto:phase1_2018_realistic',
1971 'HLTmenu':
'@relval2018',
1972 'Era' :
'Run2_2018',
1973 'BeamSpot':
'Realistic25ns13TeVEarly2018Collision',
1974 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT',
'ALCA',
'Nano'],
1977 'Geom' :
'DB:Extended',
1978 'GT' :
'auto:phase1_2018_design',
1979 'HLTmenu':
'@relval2018',
1980 'Era' :
'Run2_2018',
1981 'BeamSpot':
'GaussSigmaZ4cm',
1982 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT'],
1985 'Geom' :
'DB:Extended',
1986 'GT' :
'auto:phase1_2022_realistic',
1987 'HLTmenu':
'@relval2022',
1989 'BeamSpot':
'Run3RoundOptics25ns13TeVLowSigmaZ',
1990 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
1993 'Geom' :
'DB:Extended',
1994 'GT' :
'auto:phase1_2022_design',
1995 'HLTmenu':
'@relval2022',
1997 'BeamSpot':
'GaussSigmaZ4cm',
1998 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano'],
2001 'Geom' :
'DB:Extended',
2002 'GT' :
'auto:phase1_2023_realistic',
2003 'HLTmenu':
'@relval2022',
2005 'BeamSpot':
'Run3RoundOptics25ns13TeVLowSigmaZ',
2006 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
2009 'Geom' :
'DB:Extended',
2010 'GT' :
'auto:phase1_2024_realistic',
2011 'HLTmenu':
'@relval2022',
2013 'BeamSpot':
'Run3RoundOptics25ns13TeVLowSigmaZ',
2014 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
2019 for key
in list(upgradeProperties[2017].
keys()):
2020 upgradeProperties[2017][key+
'PU'] = deepcopy(upgradeProperties[2017][key])
2021 upgradeProperties[2017][key+
'PU'][
'ScenToRun'] = [
'GenSim',
'DigiPU'] + \
2022 ([
'RecoNanoPU',
'HARVESTNanoPU']
if '202' in key
else [
'RecoFakeHLTPU',
'HARVESTFakeHLTPU']) + \
2023 ([
'Nano']
if 'Nano' in upgradeProperties[2017][key][
'ScenToRun']
else [])
2025 upgradeProperties[2026] = {
2027 'Geom' :
'Extended2026D49',
2028 'HLTmenu':
'@fake2',
2029 'GT' :
'auto:phase2_realistic_T15',
2031 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2034 'Geom' :
'Extended2026D60',
2035 'HLTmenu':
'@fake2',
2036 'GT' :
'auto:phase2_realistic_T15',
2037 'Era' :
'Phase2C10',
2038 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2041 'Geom' :
'Extended2026D68',
2042 'HLTmenu':
'@fake2',
2043 'GT' :
'auto:phase2_realistic_T21',
2044 'Era' :
'Phase2C11',
2045 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2048 'Geom' :
'Extended2026D70',
2049 'HLTmenu':
'@fake2',
2050 'GT' :
'auto:phase2_realistic_T21',
2051 'Era' :
'Phase2C11',
2052 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2055 'Geom' :
'Extended2026D76',
2056 'HLTmenu':
'@fake2',
2057 'GT' :
'auto:phase2_realistic_T21',
2058 'Era' :
'Phase2C11I13M9',
2059 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2062 'Geom' :
'Extended2026D77',
2063 'HLTmenu':
'@fake2',
2064 'GT' :
'auto:phase2_realistic_T21',
2065 'Era' :
'Phase2C11I13M9',
2066 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2069 'Geom' :
'Extended2026D78',
2070 'HLTmenu':
'@fake2',
2071 'GT' :
'auto:phase2_realistic_T22',
2072 'ProcessModifier':
'PixelCPEGeneric',
2073 'Era' :
'Phase2C11I13T22M9',
2074 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2077 'Geom' :
'Extended2026D79',
2078 'HLTmenu':
'@fake2',
2079 'GT' :
'auto:phase2_realistic_T23',
2080 'Era' :
'Phase2C11I13T23M9',
2081 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2084 'Geom' :
'Extended2026D80',
2085 'HLTmenu':
'@fake2',
2086 'GT' :
'auto:phase2_realistic_T25',
2087 'Era' :
'Phase2C11I13T25M9',
2088 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2091 'Geom' :
'Extended2026D81',
2092 'HLTmenu':
'@fake2',
2093 'GT' :
'auto:phase2_realistic_T26',
2094 'Era' :
'Phase2C11I13T26M9',
2095 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2098 'Geom' :
'Extended2026D82',
2099 'HLTmenu':
'@fake2',
2100 'GT' :
'auto:phase2_realistic_T21',
2101 'Era' :
'Phase2C11I13M9',
2102 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2105 'Geom' :
'Extended2026D83',
2106 'HLTmenu':
'@fake2',
2107 'GT' :
'auto:phase2_realistic_T21',
2108 'Era' :
'Phase2C11I13M9',
2109 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2112 'Geom' :
'Extended2026D84',
2113 'HLTmenu':
'@fake2',
2114 'GT' :
'auto:phase2_realistic_T21',
2115 'Era' :
'Phase2C11',
2116 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2119 'Geom' :
'Extended2026D85',
2120 'HLTmenu':
'@fake2',
2121 'GT' :
'auto:phase2_realistic_T21',
2122 'Era' :
'Phase2C11I13M9',
2123 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2126 'Geom' :
'Extended2026D86',
2127 'HLTmenu':
'@fake2',
2128 'GT' :
'auto:phase2_realistic_T21',
2129 'Era' :
'Phase2C17I13M9',
2130 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2133 'Geom' :
'Extended2026D87',
2134 'HLTmenu':
'@fake2',
2135 'GT' :
'auto:phase2_realistic_T27',
2136 'Era' :
'Phase2C11I13T27M9',
2137 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2140 'Geom' :
'Extended2026D88',
2141 'HLTmenu':
'@fake2',
2142 'GT' :
'auto:phase2_realistic_T21',
2143 'Era' :
'Phase2C17I13M9',
2144 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2147 'Geom' :
'Extended2026D89',
2148 'HLTmenu':
'@fake2',
2149 'GT' :
'auto:phase2_realistic_T27',
2150 'Era' :
'Phase2C11I13T27M9',
2151 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2154 'Geom' :
'Extended2026D90',
2155 'HLTmenu':
'@fake2',
2156 'GT' :
'auto:phase2_realistic_T27',
2157 'Era' :
'Phase2C11I13T27M9',
2158 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2161 'Geom' :
'Extended2026D91',
2162 'HLTmenu':
'@fake2',
2163 'GT' :
'auto:phase2_realistic_T30',
2164 'Era' :
'Phase2C17I13M9',
2165 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2170 for key
in list(upgradeProperties[2026].
keys()):
2171 upgradeProperties[2026][key+
'PU'] = deepcopy(upgradeProperties[2026][key])
2172 upgradeProperties[2026][key+
'PU'][
'ScenToRun'] = [
'GenSimHLBeamSpot',
'DigiTriggerPU',
'RecoGlobalPU',
'HARVESTGlobalPU']
2175 defaultDataSets = {}
2176 for year
in upgradeKeys:
2177 for key
in upgradeKeys[year]:
2178 if 'PU' in key:
continue 2179 defaultDataSets[key] =
'' 2187 upgradeFragments = OrderedDict([
2189 (
'SingleElectronPt10_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronPt10')),
2190 (
'SingleElectronPt35_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronPt35')),
2191 (
'SingleElectronPt1000_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SingleElectronPt1000')),
2198 (
'FourMuExtendedPt_1_200_pythia8_cfi',
UpgradeFragment(
Kby(10,100),
'FourMuExtendedPt1_200')),
2199 (
'TenMuExtendedE_0_200_pythia8_cfi',
UpgradeFragment(
Kby(10,100),
'TenMuExtendedE_0_200')),
2200 (
'DoubleElectronPt10Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElPt10Extended')),
2201 (
'DoubleElectronPt35Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElPt35Extended')),
2202 (
'DoubleElectronPt1000Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SingleElPt1000Extended')),
2203 (
'DoubleGammaPt10Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleGammaPt10Extended')),
2204 (
'DoubleGammaPt35Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SingleGammaPt35Extended')),
2205 (
'DoubleMuPt1Extended_pythia8_cfi',
UpgradeFragment(
Kby(25,100),
'SingleMuPt1Extended')),
2206 (
'DoubleMuPt10Extended_pythia8_cfi',
UpgradeFragment(
Kby(25,100),
'SingleMuPt10Extended')),
2207 (
'DoubleMuPt100Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleMuPt100Extended')),
2208 (
'DoubleMuPt1000Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleMuPt1000Extended')),
2211 (
'MinBias_13TeV_pythia8_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(90,100),
'MinBias_13')),
2214 (
'QCD_Pt_600_800_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_600_800_13')),
2215 (
'Wjet_Pt_80_120_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'Wjet_Pt_80_120_14TeV')),
2216 (
'Wjet_Pt_3000_3500_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Wjet_Pt_3000_3500_14TeV')),
2218 (
'QCD_Pt_3000_3500_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_3000_3500_14TeV')),
2219 (
'QCD_Pt_80_120_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'QCD_Pt_80_120_14TeV')),
2220 (
'H200ChargedTaus_Tauola_14TeV_cfi',
UpgradeFragment(
Kby(9,100),
'Higgs200ChargedTaus_14TeV')),
2224 (
'ZTT_Tauola_All_hadronic_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,100),
'ZTT_14TeV')),
2225 (
'H130GGgluonfusion_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'H130GGgluonfusion_14TeV')),
2226 (
'PhotonJet_Pt_10_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'PhotonJets_Pt_10_14TeV')),
2227 (
'QQH1352T_Tauola_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'QQH1352T_Tauola_14TeV')),
2231 (
'QCDForPF_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(50,100),
'QCD_FlatPt_15_3000HS_14')),
2233 (
'DYToTauTau_M-50_14TeV_pythia8_tauola_cff',
UpgradeFragment(
Kby(9,100),
'DYtoTauTau_M_50_14TeV')),
2235 (
'QCD_Pt_80_120_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'QCD_Pt_80_120_13')),
2236 (
'H125GGgluonfusion_13TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'H125GGgluonfusion_13')),
2237 (
'QCD_Pt20toInf_MuEnrichedPt15_14TeV_TuneCP5_cff',
UpgradeFragment(
Kby(19565, 217391),
'QCD_Pt20toInfMuEnrichPt15_14')),
2239 (
'QCD_Pt15To7000_Flat_14TeV_TuneCP5_cff',
UpgradeFragment(
Kby(9,50),
'QCD_Pt15To7000_Flat_14')),
2240 (
'H125GGgluonfusion_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'H125GGgluonfusion_14')),
2241 (
'QCD_Pt_600_800_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_600_800_14')),
2244 (
'H200ChargedTaus_Tauola_13TeV_cfi',
UpgradeFragment(
Kby(9,50),
'Higgs200ChargedTaus_13')),
2245 (
'ADDMonoJet_13TeV_d3MD3_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'ADDMonoJet_d3MD3_13')),
2247 (
'QCD_Pt_3000_3500_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_3000_3500_13')),
2254 (
'PhotonJet_Pt_10_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'PhotonJets_Pt_10_13')),
2256 (
'Wjet_Pt_80_120_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Wjet_Pt_80_120_13')),
2257 (
'Wjet_Pt_3000_3500_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Wjet_Pt_3000_3500_13')),
2258 (
'SMS-T1tttt_mGl-1500_mLSP-100_13TeV-pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SMS-T1tttt_mGl-1500_mLSP-100_13')),
2259 (
'QCDForPF_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(50,100),
'QCD_FlatPt_15_3000HS_13')),
2260 (
'PYTHIA8_PhiToMuMu_TuneCUETP8M1_13TeV_cff',
UpgradeFragment(
Kby(9,50),
'PhiToMuMu_13')),
2261 (
'RSKKGluon_m3000GeV_13TeV_TuneCUETP8M1_cff',
UpgradeFragment(
Kby(9,50),
'RSKKGluon_m3000GeV_13')),
2265 (
'Upsilon1SToMuMu_forSTEAM_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Upsilon1SToMuMu_13')),
2266 (
'EtaBToJpsiJpsi_forSTEAM_TuneCUEP8M1_13TeV_cfi',
UpgradeFragment(
Kby(9,50),
'EtaBToJpsiJpsi_13')),
2267 (
'JpsiMuMu_Pt-8_forSTEAM_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(3100,100000),
'JpsiMuMu_Pt-8')),
2268 (
'BuMixing_BMuonFilter_forSTEAM_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(900,10000),
'BuMixing_13')),
2269 (
'HSCPstop_M_200_TuneCUETP8M1_13TeV_pythia8_cff',
UpgradeFragment(
Kby(9,50),
'HSCPstop_M_200_13')),
2270 (
'RSGravitonToGammaGamma_kMpl01_M_3000_TuneCUETP8M1_13TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'RSGravitonToGaGa_13')),
2271 (
'WprimeToENu_M-2000_TuneCUETP8M1_13TeV-pythia8_cff',
UpgradeFragment(
Kby(9,50),
'WpToENu_M-2000_13')),
2272 (
'DisplacedSUSY_stopToBottom_M_800_500mm_TuneCP5_13TeV_pythia8_cff',
UpgradeFragment(
Kby(9,50),
'DisplacedSUSY_stopToB_M_800_500mm_13')),
2274 (
'FlatRandomPtAndDxyGunProducer_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuonsDxy_0_500')),
2276 (
'SinglePiPt25Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SinglePiPt25Eta1p7_2p7')),
2277 (
'SingleMuPt15Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SingleMuPt15Eta1p7_2p7')),
2278 (
'SingleGammaPt25Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SingleGammaPt25Eta1p7_2p7')),
2279 (
'SingleElectronPt15Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronPt15Eta1p7_2p7')),
2281 (
'CloseByParticle_Photon_ERZRanges_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByParticleGun')),
2282 (
'CE_E_Front_300um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_E_Front_300um')),
2283 (
'CE_E_Front_200um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_E_Front_200um')),
2284 (
'CE_E_Front_120um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_E_Front_120um')),
2288 (
'CE_H_Coarse_Scint_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_H_Coarse_Scint')),
2289 (
'CE_H_Coarse_300um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_H_Coarse_300um')),
2290 (
'SingleElectronFlatPt2To100_cfi',
UpgradeFragment(
Kby(9,100),
'SingleEFlatPt2To100')),
2293 (
'SingleGammaFlatPt8To150_cfi',
UpgradeFragment(
Kby(9,100),
'SingleGammaFlatPt8To150')),
2296 (
'FlatRandomPtAndDxyGunProducer_MuPt2To10_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt2To10')),
2297 (
'FlatRandomPtAndDxyGunProducer_MuPt10To30_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt10To30')),
2298 (
'FlatRandomPtAndDxyGunProducer_MuPt30To100_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt30To100')),
2299 (
'B0ToKstarMuMu_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(304,3030),
'B0ToKstarMuMu_14TeV')),
2301 (
'BsToJpsiGamma_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(2500,25000),
'BsToJpsiGamma_14TeV')),
2302 (
'BsToJpsiPhi_mumuKK_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(910,9090),
'BsToJpsiPhi_mumuKK_14TeV')),
2304 (
'BsToPhiPhi_KKKK_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(556,5555),
'BsToPhiPhi_KKKK_14TeV')),
2305 (
'TauToMuMuMu_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(18939,189393),
'TauToMuMuMu_14TeV')),
2306 (
'BdToKstarEleEle_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(206,2061),
'BdToKstarEleEle_14TeV')),
2308 (
'BuMixing_BMuonFilter_forSTEAM_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(900,10000),
'BuMixing_14')),
2309 (
'Upsilon1SToMuMu_forSTEAM_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'Upsilon1SToMuMu_14')),
2310 (
'TenTau_E_15_500_Eta3p1_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'TenTau_15_500_Eta3p1')),
2311 (
'QCD_Pt_1800_2400_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_1800_2400_14')),
2312 (
'DisplacedSUSY_stopToBottom_M_800_500mm_TuneCP5_14TeV_pythia8_cff',
UpgradeFragment(
Kby(9,50),
'DisplacedSUSY_14TeV')),
2313 (
'GluGluTo2Jets_M_300_2000_14TeV_Exhume_cff',
UpgradeFragment(
Kby(9,100),
'GluGluTo2Jets_14TeV')),
2314 (
'TTbarToDilepton_mt172p5_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'TTbarToDilepton_14TeV')),
2315 (
'QQToHToTauTau_mh125_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'QQToHToTauTau_14TeV')),
2316 (
'ZpToEE_m6000_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'ZpToEE_m6000_14TeV')),
2317 (
'ZpToMM_m6000_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'ZpToMM_m6000_14TeV')),
2318 (
'SMS-T1tttt_mGl-1500_mLSP-100_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SMS-T1tttt_14TeV')),
2319 (
'VBFHZZ4Nu_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'VBFHZZ4Nu_14TeV')),
2320 (
'EtaBToJpsiJpsi_14TeV_TuneCP5_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'EtaBToJpsiJpsi_14TeV')),
2322 (
'WprimeToLNu_M2000_14TeV_TuneCP5_pythia8_cfi',
UpgradeFragment(
Kby(21,50),
'WprimeToLNu_M2000_14TeV')),
2324 (
'DoubleElectronFlatPt1p5To8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronFlatPt1p5To8')),
2325 (
'DoubleMuFlatPt1p5To8Dxy100GunProducer_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt1p5To8Dxy100')),
2326 (
'DoubleMuFlatPt2To100Dxy100GunProducer_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt2To100Dxy100')),
2327 (
'BuToJPsiPrimeKToJPsiPiPiK_14TeV_TuneCP5_pythia8_cfi',
UpgradeFragment(
Kby(223,2222),
'BuToJPsiPrimeKToJPsiPiPiK_14TeV')),
2328 (
'Psi2SToJPsiPiPi_14TeV_TuneCP5_pythia8_cfi',
UpgradeFragment(
Kby(45,500),
'Psi2SToJPsiPiPi_14TeV')),
2329 (
'XiMinus_13p6TeV_SoftQCDInel_TuneCP5_cfi',
UpgradeFragment(
Kby(8000,90000),
'XiMinus_13p6TeV')),
2330 (
'Chib1PToUpsilon1SGamma_MuFilter_TuneCP5_14TeV-pythia8_evtgen_cfi',
UpgradeFragment(
Kby(3600,36000),
'Chib1PToUpsilon1SGamma_14TeV')),
2331 (
'ChicToJpsiGamma_MuFilter_TuneCP5_14TeV_pythia8_evtgen_cfi',
UpgradeFragment(
Kby(2000,20000),
'ChicToJpsiGamma_14TeV')),
def setup_(self, step, stepName, stepDict, k, properties)
def setupPU_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def setupPU_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
bool any(const std::vector< T > &v, const T &what)
def setupPU(self, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)
def condition_(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)
def replace(string, replacements)
def condition(self, fragment, stepList, key, hasHarvest)
def preventReuse(self, stepName, stepDict, k)
def condition(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def workflow_(self, workflows, num, fragment, stepList, key)
def condition(self, fragment, stepList, key, hasHarvest)
def workflow_(self, workflows, num, fragment, stepList, key)
def setup_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)
def condition_(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def setup__(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)
def setupPU_(self, step, stepName, stepDict, k, properties)
def __init__(self, howMuch, dataset)
def condition(self, fragment, stepList, key, hasHarvest)
def workflow(self, workflows, num, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)
def setup__(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def setupPU_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def setup__(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def split(sequence, size)
def condition_(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def setup__(self, step, stepName, stepDict, k, properties)
def condition_(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
static std::string join(char **cmd)
def condition(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def setup(self, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def condition_(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def setup__(self, step, stepName, stepDict, k, properties)
def setup__(self, step, stepName, stepDict, k, properties)
def getStepName(self, step, extra="")
def __init__(self, steps, suffix, offset)
def setup_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def condition_(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def Kby(N, s)
Standard release validation samples ####.
def __init__(self, steps, PU, suffix, offset)
def setup_(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def setup__(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)
def getStepNamePU(self, step, extra="")
def __init__(self, digi={}, reco={}, harvest={}, kwargs)