1 from copy
import copy, deepcopy
2 from collections
import OrderedDict
3 from .MatrixUtil
import merge, Kby
85 numWFConflict = [[14000,14400],
97 for year
in upgradeKeys:
98 for i
in range(0,len(upgradeKeys[year])):
99 numWFtmp = numWFStart[year]
if i==0
else (numWFAll[year][i-1] + numWFSkip)
100 for conflict
in numWFConflict:
101 if numWFtmp>=conflict[0]
and numWFtmp<conflict[1]:
102 numWFtmp = conflict[1]
104 numWFAll[year].
append(numWFtmp)
111 preventReuseKeyword =
'NOREUSE' 120 if not step
in self.
steps:
127 raise ValueError(
"Special workflow offset must be between 0.0 and 1.0")
129 stepName = step + self.
suffix + extra
132 stepNamePU = step +
'PU' + self.
suffix + extra
135 for step
in self.
steps:
141 def setup(self, stepDict, k, properties):
142 for step
in self.
steps:
149 def setup_(self, step, stepName, stepDict, k, properties):
151 def setupPU_(self, step, stepName, stepDict, k, properties):
153 def workflow(self, workflows, num, fragment, stepList, key, hasHarvest):
154 if self.condition(fragment, stepList, key, hasHarvest):
155 self.workflow_(workflows, num, fragment, stepList, key)
156 def workflow_(self, workflows, num, fragment, stepList, key):
157 fragmentTmp = [fragment, key]
159 workflows[num+self.
offset] = [ fragmentTmp, stepList ]
160 def condition(self, fragment, stepList, key, hasHarvest):
163 if "Sim" in stepName:
164 stepDict[stepName][k] =
None 165 if "Gen" in stepName:
166 stepDict[stepName][k] =
None 167 upgradeWFs = OrderedDict()
170 def setup_(self, step, stepName, stepDict, k, properties):
171 cust=properties.get(
'Custom',
None)
172 era=properties.get(
'Era',
None)
173 modifier=properties.get(
'ProcessModifier',
None)
174 if cust
is not None: stepDict[stepName][k][
'--customise']=cust
176 stepDict[stepName][k][
'--era']=era
177 if modifier
is not None: stepDict[stepName][k][
'--procModifier']=modifier
178 def condition(self, fragment, stepList, key, hasHarvest):
185 'GenSimHLBeamSpot14',
186 'GenSimHLBeamSpotHGCALCloseBy',
231 def setup_(self, step, stepName, stepDict, k, properties):
232 if stepDict[step][k] !=
None:
234 stepDict[stepName][k] =
None 235 if 'RecoNano' in step:
236 stepDict[stepName][k] =
merge([{
'--filein':
'file:step3.root',
'--secondfilein':
'file:step2.root'}, stepDict[step][k]])
238 stepDict[stepName][k] =
merge([{
'-s': re.sub(
',HLT.*',
'', stepDict[step][k][
'-s'])}, stepDict[step][k]])
239 def condition(self, fragment, stepList, key, hasHarvest):
240 if (
'TTbar_14TeV' in fragment
and '2021' == key):
241 stepList.insert(stepList.index(
'Digi_DigiNoHLT_2021')+1,
'HLTRun3_2021')
242 return (
'TTbar_14TeV' in fragment
and '2021' == key)
250 suffix =
'_DigiNoHLT',
259 steps = steps + [
"ALCA",
"Nano"]
260 super().
__init__(steps, [], suffix, offset)
261 def condition(self, fragment, stepList, key, hasHarvest):
262 result = (fragment==
"TTbar_13" or fragment==
"TTbar_14TeV")
and not 'PU' in key
and hasHarvest
and self.
condition_(fragment, stepList, key, hasHarvest)
266 def setup_(self, step, stepName, stepDict, k, properties):
268 if 'ALCA' in step
or 'Nano'==step:
269 stepDict[stepName][k] =
None 270 self.
setup__(step, stepName, stepDict, k, properties)
272 def setup__(self, step, stepName, stepDict, k, properties):
275 class UpgradeWorkflow_trackingOnly(UpgradeWorkflowTracking):
276 def setup__(self, step, stepName, stepDict, k, properties):
277 if 'Reco' in step: stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
278 elif 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@trackingOnlyDQM'}, stepDict[step][k]])
290 suffix =
'_trackingOnly',
293 upgradeWFs[
'trackingOnly'].step3 = {
294 '-s':
'RAW2DIGI,RECO:reconstruction_trackingOnly,VALIDATION:@trackingOnlyValidation,DQM:@trackingOnlyDQM',
295 '--datatier':
'GEN-SIM-RECO,DQMIO',
296 '--eventcontent':
'RECOSIM,DQM',
299 step3_trackingOnly = upgradeWFs[
'trackingOnly'].step3
302 def setup__(self, step, stepName, stepDict, k, properties):
303 if 'Reco' in step
and stepDict[step][k][
'--era']==
'Run2_2017':
304 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2017_trackingRun2'}, stepDict[step][k]])
312 suffix =
'_trackingRun2',
317 def setup__(self, step, stepName, stepDict, k, properties):
318 if 'Reco' in step
and stepDict[step][k][
'--era']==
'Run2_2017':
319 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2017_trackingRun2'}, self.
step3, stepDict[step][k]])
320 elif 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@trackingOnlyDQM'}, stepDict[step][k]])
330 suffix =
'_trackingOnlyRun2',
333 upgradeWFs[
'trackingOnlyRun2'].step3 = upgradeWFs[
'trackingOnly'].step3
336 def setup__(self, step, stepName, stepDict, k, properties):
337 if 'Reco' in step
and stepDict[step][k][
'--era']==
'Run2_2017':
338 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2017_trackingLowPU'}, stepDict[step][k]])
346 suffix =
'_trackingLowPU',
351 def setup__(self, step, stepName, stepDict, k, properties):
352 if 'Reco' in step: stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
353 elif 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM'}, stepDict[step][k]])
355 return (
'2017' in key
or '2018' in key
or '2021' in key
or '2026' in key)
and (
'FS' not in key)
367 suffix =
'_pixelTrackingOnly',
370 upgradeWFs[
'pixelTrackingOnly'].step3 = {
371 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
372 '--datatier':
'GEN-SIM-RECO,DQMIO',
373 '--eventcontent':
'RECOSIM,DQM',
377 def setup__(self, step, stepName, stepDict, k, properties):
378 if 'Digi' in step: stepDict[stepName][k] =
merge([self.
step2, stepDict[step][k]])
379 if 'Reco' in step: stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
381 return '2017' in key
or '2021' in key
391 suffix =
'_trackingMkFit',
394 upgradeWFs[
'trackingMkFit'].step2 = {
395 '--customise':
'RecoTracker/MkFit/customizeHLTIter0ToMkFit.customizeHLTIter0ToMkFit' 397 upgradeWFs[
'trackingMkFit'].step3 = {
398 '--procModifiers':
'trackingMkFit' 403 def setup_(self, step, stepName, stepDict, k, properties):
405 if 'ALCA' in step
or 'Nano'==step:
406 stepDict[stepName][k] =
None 407 elif 'Reco' in step
or 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'--procModifiers':
'seedingDeepCore'}, stepDict[step][k]])
408 def condition(self, fragment, stepList, key, hasHarvest):
409 result = (fragment==
"QCD_Pt_1800_2400_14" or fragment==
"TTbar_14TeV" )
and (
'2021' in key
or '2024' in key)
and hasHarvest
423 suffix =
'_seedingDeepCore',
429 def setup_(self, step, stepName, stepDict, k, properties):
430 stepDict[stepName][k] =
merge([{
'--procModifiers':
'vectorHits'}, stepDict[step][k]])
431 def condition(self, fragment, stepList, key, hasHarvest):
432 return fragment==
"TTbar_14TeV" and '2026' in key
442 suffix =
'_vectorHits',
448 def setup_(self, step, stepName, stepDict, k, properties):
449 if 'RecoGlobal' in step:
450 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
451 if 'HARVESTGlobal' in step:
452 stepDict[stepName][k] =
merge([self.
step4, stepDict[step][k]])
453 def condition(self, fragment, stepList, key, hasHarvest):
454 return (fragment==
"TTbar_14TeV" or 'CloseByPGun_CE' in fragment)
and '2026' in key
464 suffix =
'_ticl_clue3D',
467 upgradeWFs[
'ticl_clue3D'].step3 = {
'--procModifiers':
'clue3D'}
468 upgradeWFs[
'ticl_clue3D'].step4 = {
'--procModifiers':
'clue3D'}
471 def setup_(self, step, stepName, stepDict, k, properties):
472 if 'RecoGlobal' in step:
473 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
474 if 'HARVESTGlobal' in step:
475 stepDict[stepName][k] =
merge([self.
step4, stepDict[step][k]])
476 def condition(self, fragment, stepList, key, hasHarvest):
477 return (fragment==
"TTbar_14TeV" or 'CloseByPGun_CE' in fragment)
and '2026' in key
487 suffix =
'_ticl_FastJet',
490 upgradeWFs[
'ticl_FastJet'].step3 = {
'--procModifiers':
'fastJetTICL'}
491 upgradeWFs[
'ticl_FastJet'].step4 = {
'--procModifiers':
'fastJetTICL'}
495 def setup_(self, step, stepName, stepDict, k, properties):
496 stepDict[stepName][k] =
merge([{
'--procModifiers':
'trackdnn'}, stepDict[step][k]])
498 def condition(self, fragment, stepList, key, hasHarvest):
499 return fragment==
"TTbar_14TeV" and '2021' in key
509 suffix =
'_trackdnn',
516 def setup_(self, step, stepName, stepDict, k, properties):
518 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
519 def condition(self, fragment, stepList, key, hasHarvest):
520 return (fragment==
"TTbar_14TeV" or fragment==
"QCD_FlatPt_15_3000HS_14")
and '2021PU' in key
534 upgradeWFs[
'mlpf'].step3 = {
535 '--datatier':
'GEN-SIM-RECO,RECOSIM,MINIAODSIM,NANOAODSIM,DQMIO',
536 '--eventcontent':
'FEVTDEBUGHLT,RECOSIM,MINIAODSIM,NANOEDMAODSIM,DQM',
537 '--procModifiers':
'mlpf' 542 def setup_(self, step, stepName, stepDict, k, properties):
544 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
545 def condition(self, fragment, stepList, key, hasHarvest):
546 return '2018' in key
and "SingleGamma" in fragment
559 suffix =
'_photonDRN',
562 upgradeWFs[
'photonDRN'].step3 = {
563 '--procModifiers':
'enableSonicTriton,photonDRN' 572 def __init__(self, digi = {}, reco = {}, harvest = {}, **kwargs):
574 super(PatatrackWorkflow, self).
__init__(
594 '--datatier':
'GEN-SIM-RECO,DQMIO',
595 '--eventcontent':
'RECOSIM,DQM' 599 def condition(self, fragment, stepList, key, hasHarvest):
602 (
'2018' in key
and fragment ==
"TTbar_13"),
603 (
'2021' in key
and fragment ==
"TTbar_14TeV" and 'FS' not in key),
604 (
'2018' in key
and fragment ==
"ZMM_13"),
605 (
'2021' in key
and fragment ==
"ZMM_14" and 'FS' not in key),
606 (
'2026D88' in key
and fragment ==
"TTbar_14TeV" and "PixelOnly" in self.
suffix)
608 result =
any(selected)
and hasHarvest
612 def setup_(self, step, stepName, stepDict, k, properties):
614 if 'ALCA' in step
or 'Nano'==step:
615 stepDict[stepName][k] =
None 618 stepDict[stepName][k] =
None 620 stepDict[stepName][k] =
merge([self.
__digi, stepDict[step][k]])
623 stepDict[stepName][k] =
None 625 stepDict[stepName][k] =
merge([self.
__reco, stepDict[step][k]])
626 elif 'HARVEST' in step:
628 stepDict[stepName][k] =
None 630 stepDict[stepName][k] =
merge([self.
__harvest, stepDict[step][k]])
641 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
642 '--procModifiers':
'pixelNtupletFit' 645 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' 647 suffix =
'Patatrack_PixelOnlyCPU',
658 '--procModifiers':
'gpu' 661 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
662 '--procModifiers':
'pixelNtupletFit,gpu' 665 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' 667 suffix =
'Patatrack_PixelOnlyGPU',
678 '--accelerators':
'gpu-nvidia',
679 '--procModifiers':
'gpu' 682 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
683 '--accelerators':
'gpu-nvidia',
684 '--procModifiers':
'pixelNtupletFit,gpuValidation' 687 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM',
688 '--procModifiers':
'gpuValidation' 690 suffix =
'Patatrack_PixelOnlyGPU_Validation',
700 '--procModifiers':
'gpu' 703 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly',
704 '--procModifiers':
'pixelNtupletFit,gpu',
705 '--customise' :
'RecoTracker/Configuration/customizePixelOnlyForProfiling.customizePixelOnlyForProfilingGPUOnly' 708 suffix =
'Patatrack_PixelOnlyGPU_Profiling',
721 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
722 '--procModifiers':
'pixelNtupletFit',
723 '--customise' :
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 726 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' 728 suffix =
'Patatrack_PixelOnlyTripletsCPU',
739 '--procModifiers':
'gpu' 742 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
743 '--procModifiers':
'pixelNtupletFit,gpu',
744 '--customise':
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 747 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' 749 suffix =
'Patatrack_PixelOnlyTripletsGPU',
760 '--accelerators':
'gpu-nvidia',
761 '--procModifiers':
'gpu' 764 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
765 '--accelerators':
'gpu-nvidia',
766 '--procModifiers':
'pixelNtupletFit,gpuValidation',
767 '--customise':
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 770 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM',
771 '--procModifiers':
'gpuValidation',
773 suffix =
'Patatrack_PixelOnlyTripletsGPU_Validation',
783 '--procModifiers':
'gpu' 786 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly',
787 '--procModifiers':
'pixelNtupletFit,gpu',
788 '--customise':
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets,RecoTracker/Configuration/customizePixelOnlyForProfiling.customizePixelOnlyForProfilingGPUOnly' 791 suffix =
'Patatrack_PixelOnlyTripletsGPU_Profiling',
804 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly',
807 '-s':
'HARVESTING:@ecalOnlyValidation+@ecal' 809 suffix =
'Patatrack_ECALOnlyCPU',
820 '--procModifiers':
'gpu' 823 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly',
824 '--procModifiers':
'gpu' 827 '-s':
'HARVESTING:@ecalOnlyValidation+@ecal' 829 suffix =
'Patatrack_ECALOnlyGPU',
840 '--accelerators':
'gpu-nvidia',
841 '--procModifiers':
'gpu' 844 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly',
845 '--accelerators':
'gpu-nvidia',
846 '--procModifiers':
'gpuValidation' 849 '-s':
'HARVESTING:@ecalOnlyValidation+@ecal' 851 suffix =
'Patatrack_ECALOnlyGPU_Validation',
861 '--procModifiers':
'gpu' 864 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly',
865 '--procModifiers':
'gpu',
866 '--customise' :
'RecoLocalCalo/Configuration/customizeEcalOnlyForProfiling.customizeEcalOnlyForProfilingGPUOnly' 869 suffix =
'Patatrack_ECALOnlyGPU_Profiling',
882 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only',
885 '-s':
'HARVESTING:@hcalOnlyValidation+@hcalOnly+@hcal2Only' 887 suffix =
'Patatrack_HCALOnlyCPU',
898 '--procModifiers':
'gpu' 901 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only',
902 '--procModifiers':
'gpu' 905 '-s':
'HARVESTING:@hcalOnlyValidation+@hcalOnly+@hcal2Only' 907 suffix =
'Patatrack_HCALOnlyGPU',
918 '--accelerators':
'gpu-nvidia',
919 '--procModifiers':
'gpu' 922 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only',
923 '--accelerators':
'gpu-nvidia',
924 '--procModifiers':
'gpuValidation' 927 '-s':
'HARVESTING:@hcalOnlyValidation+@hcal' 929 suffix =
'Patatrack_HCALOnlyGPU_Validation',
939 '--procModifiers':
'gpu' 942 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly',
943 '--procModifiers':
'gpu',
944 '--customise' :
'RecoLocalCalo/Configuration/customizeHcalOnlyForProfiling.customizeHcalOnlyForProfilingGPUOnly' 947 suffix =
'Patatrack_HCALOnlyGPU_Profiling',
960 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
961 '--procModifiers':
'pixelNtupletFit' 964 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' 966 suffix =
'Patatrack_AllCPU',
977 '--procModifiers':
'gpu' 980 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
981 '--procModifiers':
'pixelNtupletFit,gpu' 984 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' 986 suffix =
'Patatrack_AllGPU',
997 '--accelerators':
'gpu-nvidia',
998 '--procModifiers':
'gpu' 1001 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1002 '--accelerators':
'gpu-nvidia',
1003 '--procModifiers':
'pixelNtupletFit,gpuValidation' 1006 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only',
1007 '--procModifiers':
'gpuValidation' 1009 suffix =
'Patatrack_AllGPU_Validation',
1027 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1028 '--procModifiers':
'pixelNtupletFit' 1031 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' 1033 suffix =
'Patatrack_AllTripletsCPU',
1044 '--procModifiers':
'gpu' 1047 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1048 '--procModifiers':
'pixelNtupletFit,gpu' 1051 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' 1053 suffix =
'Patatrack_AllTripletsGPU',
1064 '--accelerators':
'gpu-nvidia',
1065 '--procModifiers':
'gpu' 1068 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1069 '--accelerators':
'gpu-nvidia',
1070 '--procModifiers':
'pixelNtupletFit,gpuValidation' 1073 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only',
1074 '--procModifiers':
'gpuValidation' 1076 suffix =
'Patatrack_AllTripletsGPU_Validation',
1095 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1096 '--procModifiers':
'pixelNtupletFit' 1101 suffix =
'Patatrack_FullRecoCPU',
1112 '--procModifiers':
'gpu' 1116 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1117 '--procModifiers':
'pixelNtupletFit,gpu' 1122 suffix =
'Patatrack_FullRecoGPU',
1133 '--accelerators':
'gpu-nvidia',
1134 '--procModifiers':
'gpu' 1138 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1139 '--accelerators':
'gpu-nvidia',
1140 '--procModifiers':
'pixelNtupletFit,gpuValidation' 1145 suffix =
'Patatrack_FullRecoGPU_Validation',
1159 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1160 '--procModifiers':
'pixelNtupletFit',
1161 '--customise' :
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 1166 suffix =
'Patatrack_FullRecoTripletsCPU',
1177 '--procModifiers':
'gpu' 1181 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1182 '--procModifiers':
'pixelNtupletFit,gpu',
1183 '--customise':
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 1188 suffix =
'Patatrack_FullRecoTripletsGPU',
1199 '--accelerators':
'gpu-nvidia',
1200 '--procModifiers':
'gpu' 1204 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1205 '--accelerators':
'gpu-nvidia',
1206 '--procModifiers':
'pixelNtupletFit,gpuValidation',
1207 '--customise' :
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 1212 suffix =
'Patatrack_FullRecoTripletsGPU_Validation',
1220 def setup_(self, step, stepName, stepDict, k, properties):
1221 if 'GenSimHLBeamSpot14' in step:
1222 stepDict[stepName][k] =
merge([{
'--eventcontent':
'RAWSIM',
'--datatier':
'GEN-SIM'},stepDict[step][k]])
1223 elif 'Digi' in step
and 'Trigger' not in step:
1224 stepDict[stepName][k] =
merge([{
'-s':
'DIGI,L1,DIGI2RAW,HLT:@relval2022',
'--datatier':
'GEN-SIM-RAW',
'--eventcontent':
'RAWSIM'}, stepDict[step][k]])
1225 elif 'DigiTrigger' in step:
1226 stepDict[stepName][k] =
merge([{
'-s':
'DIGI,L1TrackTrigger,L1,DIGI2RAW,HLT:@fake2',
'--datatier':
'GEN-SIM-RAW',
'--eventcontent':
'RAWSIM'}, stepDict[step][k]])
1227 elif 'Reco' in step:
1228 stepDict[stepName][k] =
merge([{
'-s':
'RAW2DIGI,L1Reco,RECO,RECOSIM',
'--datatier':
'AODSIM',
'--eventcontent':
'AODSIM'}, stepDict[step][k]])
1229 elif 'MiniAOD' in step:
1231 stepDict[stepName][k] = deepcopy(stepDict[step][k])
1232 elif 'ALCA' in step
or 'HARVEST' in step:
1234 stepDict[stepName][k] =
None 1236 stepDict[stepName][k] =
merge([{
'--filein':
'file:step4.root',
'-s':
'NANO',
'--datatier':
'NANOAODSIM',
'--eventcontent':
'NANOEDMAODSIM'}, stepDict[step][k]])
1238 return fragment==
"TTbar_14TeV" and (
'2026' in key
or '2021' in key)
1241 'GenSimHLBeamSpot14',
1255 'GenSimHLBeamSpot14',
1268 suffix =
'_ProdLike',
1273 def setup_(self, step, stepName, stepDict, k, properties):
1274 if 'HARVEST' in step:
1275 stepDict[stepName][k] =
merge([{
'--filein':
'file:step3_inDQM.root'}, stepDict[step][k]])
1277 stepDict[stepName][k] =
merge([stepDict[step][k]])
1279 return fragment==
"TTbar_14TeV" and '2026' in key
1282 'GenSimHLBeamSpot14',
1289 'GenSimHLBeamSpot14',
1295 suffix =
'_HLT75e33',
1300 def setup_(self, step, stepName, stepDict, k, properties):
1301 if 'GenSim' in step:
1302 custNew =
"SimG4Core/Application/NeutronBGforMuonsXS_cff.customise" 1304 custNew =
"SLHCUpgradeSimulations/Configuration/customise_mixing.customise_Mix_LongLived_Neutrons" 1305 stepDict[stepName][k] = deepcopy(stepDict[step][k])
1306 if '--customise' in stepDict[stepName][k].
keys():
1307 stepDict[stepName][k][
'--customise'] +=
","+custNew
1309 stepDict[stepName][k][
'--customise'] = custNew
1316 'GenSimHLBeamSpot14',
1324 suffix =
'_Neutron',
1328 upgradeWFs[
'Neutron'].neutronKeys = [x
for x
in upgradeKeys[2026]
if 'PU' not in x]
1329 upgradeWFs[
'Neutron'].neutronFrags = [
'ZMM_14',
'MinBias_14TeV']
1332 def setup_(self, step, stepName, stepDict, k, properties):
1333 stepDict[stepName][k] =
merge([{
'--procModifiers':
'run2_HECollapse_2018'}, stepDict[step][k]])
1335 return fragment==
"TTbar_13" and '2018' in key
1349 suffix =
'_heCollapse',
1354 def setup_(self, step, stepName, stepDict, k, properties):
1356 mods = {
'--era': stepDict[step][k][
'--era']+
',phase2_ecal_devel'}
1358 mods[
'-s'] =
'DIGI:pdigi_valid,DIGI2RAW' 1359 elif 'Reco' in step:
1360 mods[
'-s'] =
'RAW2DIGI,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly' 1361 mods[
'--datatier'] =
'GEN-SIM-RECO,DQMIO' 1362 mods[
'--eventcontent'] =
'FEVTDEBUGHLT,DQM' 1363 elif 'HARVEST' in step:
1364 mods[
'-s'] =
'HARVESTING:@ecalOnlyValidation+@ecal' 1365 stepDict[stepName][k] =
merge([mods, stepDict[step][k]])
1367 return fragment==
"TTbar_14TeV" and '2026' in key
1379 suffix =
'_ecalDevel',
1384 def setup_(self, step, stepName, stepDict, k, properties):
1385 myGT=stepDict[step][k][
'--conditions']
1387 stepDict[stepName][k] =
merge([{
'-n':
'1',
'--magField':
'0T',
'--conditions':myGT}, stepDict[step][k]])
1388 def setupPU_(self, step, stepName, stepDict, k, properties):
1390 stepDict[stepName][k] =
merge([{
'-n':
'1'}, stepDict[step][k]])
1392 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)
1415 def setup_(self, step, stepName, stepDict, k, properties):
1416 if 'Reco' in step
and 'Run2_2018' in stepDict[step][k][
'--era']:
1417 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2018,bParking'}, stepDict[step][k]])
1419 return fragment==
"TTbar_13" and '2018' in key
1425 suffix =
'_ParkingBPH',
1430 def setup_(self, step, stepName, stepDict, k, properties):
1432 stepDict[stepName][k] =
merge([{
'--customise':
'PhysicsTools/NanoAOD/custom_jme_cff.PrepJMECustomNanoAOD_MC'}, stepDict[step][k]])
1434 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)
1441 suffix =
'_JMENano',
1448 def setup_(self, step, stepName, stepDict, k, properties):
1449 if 'Digi' in step
or 'Reco' in step:
1450 stepDict[stepName][k] =
merge([{
'--customise':
'SLHCUpgradeSimulations/Configuration/aging.customise_aging_'+self.
lumi}, stepDict[step][k]])
1452 return fragment==
"TTbar_14TeV" and '2026' in key
1469 suffix =
'Aging1000',
1472 upgradeWFs[
'Aging1000'].lumi =
'1000' 1473 upgradeWFs[
'Aging3000'] = deepcopy(upgradeWFs[
'Aging1000'])
1474 upgradeWFs[
'Aging3000'].suffix =
'Aging3000' 1475 upgradeWFs[
'Aging3000'].offset = 0.103
1476 upgradeWFs[
'Aging3000'].lumi =
'3000' 1483 def setup_(self, step, stepName, stepDict, k, properties):
1485 stepDict[stepName][k] =
merge([{
'--customise':
'SimTracker/SiPhase2Digitizer/customizeForOTInefficiency.customizeSiPhase2OTInefficiency'+self.
percent+
'Percent'}, stepDict[step][k]])
1487 return fragment==
"TTbar_14TeV" and '2026' in key
1498 suffix =
'_OTInefficiency',
1501 upgradeWFs[
'OTInefficiency'].percent =
'Zero' 1504 upgradeWFs[
'OTInefficiency1PC'] = deepcopy(upgradeWFs[
'OTInefficiency'])
1505 upgradeWFs[
'OTInefficiency1PC'].suffix =
'_OTInefficiency1PC' 1506 upgradeWFs[
'OTInefficiency1PC'].offset = 0.112
1507 upgradeWFs[
'OTInefficiency1PC'].percent =
'One' 1510 upgradeWFs[
'OTInefficiency5PC'] = deepcopy(upgradeWFs[
'OTInefficiency'])
1511 upgradeWFs[
'OTInefficiency5PC'].suffix =
'_OTInefficiency5PC' 1512 upgradeWFs[
'OTInefficiency5PC'].offset = 0.113
1513 upgradeWFs[
'OTInefficiency5PC'].percent =
'Five' 1516 upgradeWFs[
'OTInefficiency10PC'] = deepcopy(upgradeWFs[
'OTInefficiency'])
1517 upgradeWFs[
'OTInefficiency10PC'].suffix =
'_OTInefficiency10PC' 1518 upgradeWFs[
'OTInefficiency10PC'].offset = 0.114
1519 upgradeWFs[
'OTInefficiency10PC'].percent =
'Ten' 1527 digiPremixLocalPileup = {
1528 "--filein":
"file:step1.root",
1529 "--pileup_input":
"file:step2.root" 1534 def setup_(self, step, stepName, stepDict, k, properties):
1536 stepDict[stepName][k] =
merge([stepDict[step][k]])
1537 def setupPU_(self, step, stepName, stepDict, k, properties):
1539 if "GenSim" in stepName:
1540 stepNamePmx = stepName.replace(
'GenSim',
'Premix')
1541 if not stepNamePmx
in stepDict: stepDict[stepNamePmx] = {}
1542 stepDict[stepNamePmx][k] =
merge([
1544 '-s':
'GEN,SIM,DIGI:pdigi_valid',
1545 '--datatier':
'PREMIX',
1546 '--eventcontent':
'PREMIX',
1547 '--procModifiers':
'premix_stage1' 1549 stepDict[stepName][k]
1551 if "ProdLike" in self.
suffix:
1552 stepDict[stepNamePmx][k] =
merge([{
'-s':
'GEN,SIM,DIGI'},stepDict[stepNamePmx][k]])
1554 elif "Digi" in step
or "Reco" in step:
1557 if d
is None:
return 1560 for s
in d[
"-s"].
split(
","):
1561 if s ==
"DIGI" or "DIGI:" in s:
1562 tmpsteps.extend([s,
"DATAMIX"])
1566 "--datamix" :
"PreMix",
1567 "--procModifiers":
"premix_stage2"},
1570 if "_PMXS1S2" in self.
suffix:
1571 d =
merge([digiPremixLocalPileup, d])
1572 elif "Reco" in step:
1573 if "--procModifiers" in d:
1574 d[
"--procModifiers"] +=
",premix_stage2" 1576 d[
"--procModifiers"] =
"premix_stage2" 1577 stepDict[stepName][k] = d
1583 filein = d[
"--filein"]
1584 m = re.search(
"step(?P<ind>\d+)_", filein)
1586 d[
"--filein"] = filein.replace(m.group(),
"step%d_"%(
int(m.group(
"ind"))+1))
1587 stepDict[stepName][k] = d
1593 if not any(y
in key
for y
in [
'2021',
'2023',
'2024',
'2026']):
1595 if self.
suffix.endswith(
"S1"):
1596 return "NuGun" in fragment
1598 def workflow_(self, workflows, num, fragment, stepList, key):
1599 fragmentTmp = fragment
1600 if self.
suffix.endswith(
"S1"):
1601 fragmentTmp =
'PREMIXUP' + key[2:].
replace(
"PU",
"").
replace(
"Design",
"") +
'_PU25' 1602 super(UpgradeWorkflowPremix,self).
workflow_(workflows, num, fragmentTmp, stepList, key)
1610 'GenSimHLBeamSpot14',
1636 'GenSimHLBeamSpot14',
1645 suffix =
'_PMXS1S2',
1650 def setupPU_(self, step, stepName, stepDict, k, properties):
1652 if '--pileup' in stepDict[stepName][k]:
1653 stepDict[stepName][k][
'--pileup'] =
'AVE_50_BX_25ns_m3p3' 1654 super(UpgradeWorkflowAdjustPU,self).
setupPU_(step, stepName, stepDict, k, properties)
1657 return super(UpgradeWorkflowAdjustPU,self).
condition(fragment, stepList, key, hasHarvest)
and '2026' in key
1663 'GenSimHLBeamSpot14',
1673 suffix =
'_PMXS1S2PR',
1678 def setup_(self, step, stepName, stepDict, k, properties):
1680 UpgradeWorkflowPremix.setup_(self, step, stepName, stepDict, k, properties)
1681 UpgradeWorkflow_ProdLike.setup_(self, step, stepName, stepDict, k, properties)
1686 for s
in d[
"-s"].
split(
","):
1687 if "DIGI:pdigi_valid" in s:
1688 tmpsteps.append(
"DIGI")
1692 "--eventcontent":
"PREMIXRAW"},
1694 stepDict[stepName][k] = d
1696 stepDict[stepName][k] =
merge([{
'--filein':
'file:step5.root',
'-s':
'NANO',
'--datatier':
'NANOAODSIM',
'--eventcontent':
'NANOEDMAODSIM'}, stepDict[step][k]])
1699 return UpgradeWorkflowPremix.condition(self, fragment, stepList, key, hasHarvest)
and UpgradeWorkflow_ProdLike.condition(self, fragment, stepList, key, hasHarvest)
1717 suffix =
'_PMXS2ProdLike',
1726 'GenSimHLBeamSpot14',
1740 suffix =
'_PMXS1S2ProdLike',
1745 def setup_(self, step, stepName, stepDict, k, properties):
1746 if 'HARVESTFastRun3' in step:
1747 stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@trackingOnlyDQM',
1749 '--era':
'Run3_FastSim',
1750 '--filein':
'file:step1_inDQM.root'}, stepDict[step][k]])
1752 stepDict[stepName][k] =
merge([stepDict[step][k]])
1754 return '2021FS' in key
1765 suffix =
'_Run3FSTrackingOnly',
1770 def setup_(self, step, stepName, stepDict, k, properties):
1772 stepDict[stepName][k] =
merge([{
'-s':
'GEN,SIM,RECOBEFMIX',
1774 '--era':
'Run3_FastSim',
1775 '--eventcontent':
'FASTPU',
1776 '--datatier':
'GEN-SIM-RECO',
1777 '--relval':
'27000,3000'}, stepDict[step][k]])
1779 stepDict[stepName][k] =
None 1781 return '2021FS' in key
and fragment==
"MinBias_14TeV" 1789 suffix =
'_Run3FSMBMixing',
1794 def setup_(self, step, stepName, stepDict, k, properties):
1795 if 'Run3' in stepDict[step][k][
'--era']
and 'Fast' not in stepDict[step][k][
'--era']:
1796 stepDict[stepName][k] =
merge([{
'--geometry':
'DD4hepExtended2021'}, stepDict[step][k]])
1797 elif 'Phase2' in stepDict[step][k][
'--era']:
1799 dd4hepGeom+=stepDict[step][k][
'--geometry']
1800 stepDict[stepName][k] =
merge([{
'--geometry' : dd4hepGeom,
'--procModifiers':
'dd4hep'}, stepDict[step][k]])
1802 return (
'2021' in key
or '2026' in key)
and (
'FS' not in key)
1807 'GenSimHLBeamSpot14',
1822 upgradeWFs[
'DD4hep'].allowReuse =
False 1827 def setup_(self, step, stepName, stepDict, k, properties):
1828 if 'Run3' in stepDict[step][k][
'--era']
and 'Fast' not in stepDict[step][k][
'--era']:
1829 stepDict[stepName][k] =
merge([{
'--conditions':
'auto:phase1_2022_realistic',
'--geometry':
'DB:Extended'}, stepDict[step][k]])
1831 return '2021' in key
and 'FS' not in key
1836 'GenSimHLBeamSpot14',
1848 suffix =
'_DD4hepDB',
1851 upgradeWFs[
'DD4hepDB'].allowReuse =
False 1854 def setup_(self, step, stepName, stepDict, k, properties):
1855 if 'Run3' in stepDict[step][k][
'--era']
and 'rereco' not in stepDict[step][k][
'--era']
and 'Fast' not in stepDict[step][k][
'--era']:
1857 tmp_eras = stepDict[step][k][
'--era'].
split(
',')
1858 tmp_eras[tmp_eras.index(
"Run3")] =
'Run3_DDD' 1859 tmp_eras =
','.
join(tmp_eras)
1860 stepDict[stepName][k] =
merge([{
'--conditions':
'auto:phase1_2022_realistic_ddd',
'--geometry':
'DB:Extended',
'--era': tmp_eras}, stepDict[step][k]])
1862 return '2021' in key
and 'FS' not in key
1867 'GenSimHLBeamSpot14',
1882 upgradeWFs[
'DDDDB'].allowReuse =
False 1885 def setup_(self, step, stepName, stepDict, k, properties):
1886 stepDict[stepName][k] =
merge([{
'--procModifiers':
'allSonicTriton'}, stepDict[step][k]])
1888 return (fragment==
'TTbar_13' and '2021' in key) \
1889 or (fragment==
'TTbar_14TeV' and '2026' in key)
1894 'GenSimHLBeamSpot14',
1908 'GenSimHLBeamSpot14',
1919 suffix =
'_SonicTriton',
1924 offsets = [specialWF.offset
for specialType,specialWF
in upgradeWFs.items()]
1926 dups = set(x
for x
in offsets
if x
in seen
or seen.add(x))
1928 raise ValueError(
"Duplicate special workflow offsets not allowed: "+
','.
join([
str(x)
for x
in dups]))
1930 upgradeProperties = {}
1932 upgradeProperties[2017] = {
1934 'Geom' :
'DB:Extended',
1935 'GT' :
'auto:phase1_2017_realistic',
1936 'HLTmenu':
'@relval2017',
1937 'Era' :
'Run2_2017',
1938 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT',
'ALCA',
'Nano'],
1941 'Geom' :
'DB:Extended',
1942 'GT' :
'auto:phase1_2017_design',
1943 'HLTmenu':
'@relval2017',
1944 'Era' :
'Run2_2017',
1945 'BeamSpot':
'GaussSigmaZ4cm',
1946 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT'],
1949 'Geom' :
'DB:Extended',
1950 'GT' :
'auto:phase1_2018_realistic',
1951 'HLTmenu':
'@relval2018',
1952 'Era' :
'Run2_2018',
1953 'BeamSpot':
'Realistic25ns13TeVEarly2018Collision',
1954 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT',
'ALCA',
'Nano'],
1957 'Geom' :
'DB:Extended',
1958 'GT' :
'auto:phase1_2018_design',
1959 'HLTmenu':
'@relval2018',
1960 'Era' :
'Run2_2018',
1961 'BeamSpot':
'GaussSigmaZ4cm',
1962 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT'],
1965 'Geom' :
'DB:Extended',
1966 'GT' :
'auto:phase1_2022_realistic',
1967 'HLTmenu':
'@relval2022',
1969 'BeamSpot':
'Realistic25ns13p6TeVEarly2022Collision',
1970 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
1973 'Geom' :
'DB:Extended',
1974 'GT' :
'auto:phase1_2022_design',
1975 'HLTmenu':
'@relval2022',
1977 'BeamSpot':
'GaussSigmaZ4cm',
1978 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano'],
1981 'Geom' :
'DB:Extended',
1982 'GT' :
'auto:phase1_2023_realistic',
1983 'HLTmenu':
'@relval2022',
1985 'BeamSpot':
'Run3RoundOptics25ns13TeVLowSigmaZ',
1986 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
1989 'Geom' :
'DB:Extended',
1990 'GT' :
'auto:phase1_2024_realistic',
1991 'HLTmenu':
'@relval2022',
1993 'BeamSpot':
'Run3RoundOptics25ns13TeVLowSigmaZ',
1994 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
1997 'Geom' :
'DB:Extended',
1998 'GT' :
'auto:phase1_2022_realistic',
1999 'HLTmenu':
'@relval2022',
2000 'Era' :
'Run3_FastSim',
2001 'BeamSpot':
'Realistic25ns13p6TeVEarly2022Collision',
2002 'ScenToRun' : [
'Gen',
'FastSimRun3',
'HARVESTFastRun3'],
2005 'Geom' :
'DB:Extended',
2006 'GT' :
'auto:phase1_2022_realistic_postEE',
2007 'HLTmenu':
'@relval2022_postEE',
2009 'BeamSpot':
'Realistic25ns13p6TeVEarly2022Collision',
2010 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
2013 'Geom' :
'DB:Extended',
2014 'GT' :
'auto:phase1_2022_realistic_postEE',
2015 'HLTmenu':
'@relval2022_postEE',
2016 'Era' :
'Run3_2022_rereco',
2017 'BeamSpot':
'Realistic25ns13p6TeVEarly2022Collision',
2018 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
2024 for key
in list(upgradeProperties[2017].
keys()):
2025 upgradeProperties[2017][key+
'PU'] = deepcopy(upgradeProperties[2017][key])
2027 upgradeProperties[2017][key+
'PU'][
'ScenToRun'] = [
'GenSim',
'DigiPU'] + \
2028 ([
'RecoNanoPU',
'HARVESTNanoPU']
if '202' in key
else [
'RecoFakeHLTPU',
'HARVESTFakeHLTPU']) + \
2029 ([
'Nano']
if 'Nano' in upgradeProperties[2017][key][
'ScenToRun']
else [])
2031 upgradeProperties[2017][key+
'PU'][
'ScenToRun'] = [
'Gen',
'FastSimRun3PU',
'HARVESTFastRun3PU']
2033 upgradeProperties[2026] = {
2035 'Geom' :
'Extended2026D49',
2036 'HLTmenu':
'@fake2',
2037 'GT' :
'auto:phase2_realistic_T15',
2039 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2042 'Geom' :
'Extended2026D60',
2043 'HLTmenu':
'@fake2',
2044 'GT' :
'auto:phase2_realistic_T15',
2045 'Era' :
'Phase2C10',
2046 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2049 'Geom' :
'Extended2026D68',
2050 'HLTmenu':
'@fake2',
2051 'GT' :
'auto:phase2_realistic_T21',
2052 'Era' :
'Phase2C11',
2053 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2056 'Geom' :
'Extended2026D70',
2057 'HLTmenu':
'@fake2',
2058 'GT' :
'auto:phase2_realistic_T21',
2059 'Era' :
'Phase2C11',
2060 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2063 'Geom' :
'Extended2026D76',
2064 'HLTmenu':
'@fake2',
2065 'GT' :
'auto:phase2_realistic_T21',
2066 'Era' :
'Phase2C11I13M9',
2067 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2070 'Geom' :
'Extended2026D77',
2071 'HLTmenu':
'@fake2',
2072 'GT' :
'auto:phase2_realistic_T21',
2073 'Era' :
'Phase2C11I13M9',
2074 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2077 'Geom' :
'Extended2026D78',
2078 'HLTmenu':
'@fake2',
2079 'GT' :
'auto:phase2_realistic_T22',
2080 'ProcessModifier':
'PixelCPEGeneric',
2081 'Era' :
'Phase2C11I13T22M9',
2082 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2085 'Geom' :
'Extended2026D79',
2086 'HLTmenu':
'@fake2',
2087 'GT' :
'auto:phase2_realistic_T23',
2088 'Era' :
'Phase2C11I13T23M9',
2089 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2092 'Geom' :
'Extended2026D80',
2093 'HLTmenu':
'@fake2',
2094 'GT' :
'auto:phase2_realistic_T25',
2095 'Era' :
'Phase2C11I13T25M9',
2096 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2099 'Geom' :
'Extended2026D81',
2100 'HLTmenu':
'@fake2',
2101 'GT' :
'auto:phase2_realistic_T26',
2102 'Era' :
'Phase2C11I13T26M9',
2103 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2106 'Geom' :
'Extended2026D82',
2107 'HLTmenu':
'@fake2',
2108 'GT' :
'auto:phase2_realistic_T21',
2109 'Era' :
'Phase2C11I13M9',
2110 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2113 'Geom' :
'Extended2026D83',
2114 'HLTmenu':
'@fake2',
2115 'GT' :
'auto:phase2_realistic_T21',
2116 'Era' :
'Phase2C11I13M9',
2117 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2120 'Geom' :
'Extended2026D84',
2121 'HLTmenu':
'@fake2',
2122 'GT' :
'auto:phase2_realistic_T21',
2123 'Era' :
'Phase2C11',
2124 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2127 'Geom' :
'Extended2026D85',
2128 'HLTmenu':
'@fake2',
2129 'GT' :
'auto:phase2_realistic_T21',
2130 'Era' :
'Phase2C11I13M9',
2131 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2134 'Geom' :
'Extended2026D86',
2135 'HLTmenu':
'@fake2',
2136 'GT' :
'auto:phase2_realistic_T21',
2137 'Era' :
'Phase2C17I13M9',
2138 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2141 'Geom' :
'Extended2026D87',
2142 'HLTmenu':
'@fake2',
2143 'GT' :
'auto:phase2_realistic_T27',
2144 'Era' :
'Phase2C11I13T27M9',
2145 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2148 'Geom' :
'Extended2026D88',
2149 'HLTmenu':
'@fake2',
2150 'GT' :
'auto:phase2_realistic_T21',
2151 'Era' :
'Phase2C17I13M9',
2152 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2155 'Geom' :
'Extended2026D89',
2156 'HLTmenu':
'@fake2',
2157 'GT' :
'auto:phase2_realistic_T27',
2158 'Era' :
'Phase2C11I13T27M9',
2159 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2162 'Geom' :
'Extended2026D90',
2163 'HLTmenu':
'@fake2',
2164 'GT' :
'auto:phase2_realistic_T27',
2165 'Era' :
'Phase2C11I13T27M9',
2166 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2169 'Geom' :
'Extended2026D91',
2170 'HLTmenu':
'@fake2',
2171 'GT' :
'auto:phase2_realistic_T30',
2172 'Era' :
'Phase2C17I13M9',
2173 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2178 for key
in list(upgradeProperties[2026].
keys()):
2179 upgradeProperties[2026][key+
'PU'] = deepcopy(upgradeProperties[2026][key])
2180 upgradeProperties[2026][key+
'PU'][
'ScenToRun'] = [
'GenSimHLBeamSpot',
'DigiTriggerPU',
'RecoGlobalPU',
'HARVESTGlobalPU']
2183 defaultDataSets = {}
2184 for year
in upgradeKeys:
2185 for key
in upgradeKeys[year]:
2186 if 'PU' in key:
continue 2187 defaultDataSets[key] =
'' 2195 upgradeFragments = OrderedDict([
2197 (
'SingleElectronPt10_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronPt10')),
2198 (
'SingleElectronPt35_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronPt35')),
2199 (
'SingleElectronPt1000_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SingleElectronPt1000')),
2206 (
'FourMuExtendedPt_1_200_pythia8_cfi',
UpgradeFragment(
Kby(10,100),
'FourMuExtendedPt1_200')),
2207 (
'TenMuExtendedE_0_200_pythia8_cfi',
UpgradeFragment(
Kby(10,100),
'TenMuExtendedE_0_200')),
2208 (
'DoubleElectronPt10Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElPt10Extended')),
2209 (
'DoubleElectronPt35Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElPt35Extended')),
2210 (
'DoubleElectronPt1000Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SingleElPt1000Extended')),
2211 (
'DoubleGammaPt10Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleGammaPt10Extended')),
2212 (
'DoubleGammaPt35Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SingleGammaPt35Extended')),
2213 (
'DoubleMuPt1Extended_pythia8_cfi',
UpgradeFragment(
Kby(25,100),
'SingleMuPt1Extended')),
2214 (
'DoubleMuPt10Extended_pythia8_cfi',
UpgradeFragment(
Kby(25,100),
'SingleMuPt10Extended')),
2215 (
'DoubleMuPt100Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleMuPt100Extended')),
2216 (
'DoubleMuPt1000Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleMuPt1000Extended')),
2219 (
'MinBias_13TeV_pythia8_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(90,100),
'MinBias_13')),
2222 (
'QCD_Pt_600_800_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_600_800_13')),
2223 (
'Wjet_Pt_80_120_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'Wjet_Pt_80_120_14TeV')),
2224 (
'Wjet_Pt_3000_3500_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Wjet_Pt_3000_3500_14TeV')),
2226 (
'QCD_Pt_3000_3500_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_3000_3500_14TeV')),
2227 (
'QCD_Pt_80_120_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'QCD_Pt_80_120_14TeV')),
2228 (
'H200ChargedTaus_Tauola_14TeV_cfi',
UpgradeFragment(
Kby(9,100),
'Higgs200ChargedTaus_14TeV')),
2232 (
'ZTT_Tauola_All_hadronic_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,100),
'ZTT_14TeV')),
2233 (
'H130GGgluonfusion_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'H130GGgluonfusion_14TeV')),
2234 (
'PhotonJet_Pt_10_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'PhotonJets_Pt_10_14TeV')),
2235 (
'QQH1352T_Tauola_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'QQH1352T_Tauola_14TeV')),
2239 (
'QCDForPF_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(50,100),
'QCD_FlatPt_15_3000HS_14')),
2241 (
'DYToTauTau_M-50_14TeV_pythia8_tauola_cff',
UpgradeFragment(
Kby(9,100),
'DYtoTauTau_M_50_14TeV')),
2243 (
'QCD_Pt_80_120_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'QCD_Pt_80_120_13')),
2244 (
'H125GGgluonfusion_13TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'H125GGgluonfusion_13')),
2245 (
'QCD_Pt20toInf_MuEnrichedPt15_14TeV_TuneCP5_cff',
UpgradeFragment(
Kby(19565, 217391),
'QCD_Pt20toInfMuEnrichPt15_14')),
2247 (
'QCD_Pt15To7000_Flat_14TeV_TuneCP5_cff',
UpgradeFragment(
Kby(9,50),
'QCD_Pt15To7000_Flat_14')),
2248 (
'H125GGgluonfusion_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'H125GGgluonfusion_14')),
2249 (
'QCD_Pt_600_800_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_600_800_14')),
2252 (
'H200ChargedTaus_Tauola_13TeV_cfi',
UpgradeFragment(
Kby(9,50),
'Higgs200ChargedTaus_13')),
2253 (
'ADDMonoJet_13TeV_d3MD3_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'ADDMonoJet_d3MD3_13')),
2255 (
'QCD_Pt_3000_3500_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_3000_3500_13')),
2262 (
'PhotonJet_Pt_10_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'PhotonJets_Pt_10_13')),
2264 (
'Wjet_Pt_80_120_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Wjet_Pt_80_120_13')),
2265 (
'Wjet_Pt_3000_3500_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Wjet_Pt_3000_3500_13')),
2266 (
'SMS-T1tttt_mGl-1500_mLSP-100_13TeV-pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SMS-T1tttt_mGl-1500_mLSP-100_13')),
2267 (
'QCDForPF_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(50,100),
'QCD_FlatPt_15_3000HS_13')),
2268 (
'PYTHIA8_PhiToMuMu_TuneCUETP8M1_13TeV_cff',
UpgradeFragment(
Kby(9,50),
'PhiToMuMu_13')),
2269 (
'RSKKGluon_m3000GeV_13TeV_TuneCUETP8M1_cff',
UpgradeFragment(
Kby(9,50),
'RSKKGluon_m3000GeV_13')),
2273 (
'Upsilon1SToMuMu_forSTEAM_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Upsilon1SToMuMu_13')),
2274 (
'EtaBToJpsiJpsi_forSTEAM_TuneCUEP8M1_13TeV_cfi',
UpgradeFragment(
Kby(9,50),
'EtaBToJpsiJpsi_13')),
2275 (
'JpsiMuMu_Pt-8_forSTEAM_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(3100,100000),
'JpsiMuMu_Pt-8')),
2276 (
'BuMixing_BMuonFilter_forSTEAM_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(900,10000),
'BuMixing_13')),
2277 (
'HSCPstop_M_200_TuneCUETP8M1_13TeV_pythia8_cff',
UpgradeFragment(
Kby(9,50),
'HSCPstop_M_200_13')),
2278 (
'RSGravitonToGammaGamma_kMpl01_M_3000_TuneCUETP8M1_13TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'RSGravitonToGaGa_13')),
2279 (
'WprimeToENu_M-2000_TuneCUETP8M1_13TeV-pythia8_cff',
UpgradeFragment(
Kby(9,50),
'WpToENu_M-2000_13')),
2280 (
'DisplacedSUSY_stopToBottom_M_800_500mm_TuneCP5_13TeV_pythia8_cff',
UpgradeFragment(
Kby(9,50),
'DisplacedSUSY_stopToB_M_800_500mm_13')),
2282 (
'FlatRandomPtAndDxyGunProducer_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuonsDxy_0_500')),
2284 (
'SinglePiPt25Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SinglePiPt25Eta1p7_2p7')),
2285 (
'SingleMuPt15Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SingleMuPt15Eta1p7_2p7')),
2286 (
'SingleGammaPt25Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SingleGammaPt25Eta1p7_2p7')),
2287 (
'SingleElectronPt15Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronPt15Eta1p7_2p7')),
2289 (
'CloseByParticle_Photon_ERZRanges_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByParticleGun')),
2290 (
'CE_E_Front_300um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_E_Front_300um')),
2291 (
'CE_E_Front_200um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_E_Front_200um')),
2292 (
'CE_E_Front_120um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_E_Front_120um')),
2296 (
'CE_H_Coarse_Scint_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_H_Coarse_Scint')),
2297 (
'CE_H_Coarse_300um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_H_Coarse_300um')),
2298 (
'SingleElectronFlatPt2To100_cfi',
UpgradeFragment(
Kby(9,100),
'SingleEFlatPt2To100')),
2301 (
'SingleGammaFlatPt8To150_cfi',
UpgradeFragment(
Kby(9,100),
'SingleGammaFlatPt8To150')),
2304 (
'FlatRandomPtAndDxyGunProducer_MuPt2To10_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt2To10')),
2305 (
'FlatRandomPtAndDxyGunProducer_MuPt10To30_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt10To30')),
2306 (
'FlatRandomPtAndDxyGunProducer_MuPt30To100_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt30To100')),
2307 (
'B0ToKstarMuMu_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(304,3030),
'B0ToKstarMuMu_14TeV')),
2309 (
'BsToJpsiGamma_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(2500,25000),
'BsToJpsiGamma_14TeV')),
2310 (
'BsToJpsiPhi_mumuKK_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(910,9090),
'BsToJpsiPhi_mumuKK_14TeV')),
2312 (
'BsToPhiPhi_KKKK_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(556,5555),
'BsToPhiPhi_KKKK_14TeV')),
2313 (
'TauToMuMuMu_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(18939,189393),
'TauToMuMuMu_14TeV')),
2314 (
'BdToKstarEleEle_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(206,2061),
'BdToKstarEleEle_14TeV')),
2316 (
'BuMixing_BMuonFilter_forSTEAM_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(900,10000),
'BuMixing_14')),
2317 (
'Upsilon1SToMuMu_forSTEAM_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'Upsilon1SToMuMu_14')),
2318 (
'TenTau_E_15_500_Eta3p1_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'TenTau_15_500_Eta3p1')),
2319 (
'QCD_Pt_1800_2400_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_1800_2400_14')),
2320 (
'DisplacedSUSY_stopToBottom_M_800_500mm_TuneCP5_14TeV_pythia8_cff',
UpgradeFragment(
Kby(9,50),
'DisplacedSUSY_14TeV')),
2321 (
'GluGluTo2Jets_M_300_2000_14TeV_Exhume_cff',
UpgradeFragment(
Kby(9,100),
'GluGluTo2Jets_14TeV')),
2322 (
'TTbarToDilepton_mt172p5_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'TTbarToDilepton_14TeV')),
2323 (
'QQToHToTauTau_mh125_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'QQToHToTauTau_14TeV')),
2324 (
'ZpToEE_m6000_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'ZpToEE_m6000_14TeV')),
2325 (
'ZpToMM_m6000_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'ZpToMM_m6000_14TeV')),
2326 (
'SMS-T1tttt_mGl-1500_mLSP-100_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SMS-T1tttt_14TeV')),
2327 (
'VBFHZZ4Nu_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'VBFHZZ4Nu_14TeV')),
2328 (
'EtaBToJpsiJpsi_14TeV_TuneCP5_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'EtaBToJpsiJpsi_14TeV')),
2330 (
'WprimeToLNu_M2000_14TeV_TuneCP5_pythia8_cfi',
UpgradeFragment(
Kby(21,50),
'WprimeToLNu_M2000_14TeV')),
2332 (
'DoubleElectronFlatPt1p5To8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronFlatPt1p5To8')),
2333 (
'DoubleMuFlatPt1p5To8Dxy100GunProducer_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt1p5To8Dxy100')),
2334 (
'DoubleMuFlatPt2To100Dxy100GunProducer_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt2To100Dxy100')),
2335 (
'BuToJPsiPrimeKToJPsiPiPiK_14TeV_TuneCP5_pythia8_cfi',
UpgradeFragment(
Kby(223,2222),
'BuToJPsiPrimeKToJPsiPiPiK_14TeV')),
2336 (
'Psi2SToJPsiPiPi_14TeV_TuneCP5_pythia8_cfi',
UpgradeFragment(
Kby(45,500),
'Psi2SToJPsiPiPi_14TeV')),
2337 (
'XiMinus_13p6TeV_SoftQCDInel_TuneCP5_cfi',
UpgradeFragment(
Kby(8000,90000),
'XiMinus_13p6TeV')),
2338 (
'Chib1PToUpsilon1SGamma_MuFilter_TuneCP5_14TeV-pythia8_evtgen_cfi',
UpgradeFragment(
Kby(3600,36000),
'Chib1PToUpsilon1SGamma_14TeV')),
2339 (
'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 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 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)