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
422 suffix =
'_vectorHits',
428 def setup_(self, step, stepName, stepDict, k, properties):
429 if 'RecoGlobal' in step:
430 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
431 if 'HARVESTGlobal' in step:
432 stepDict[stepName][k] =
merge([self.
step4, stepDict[step][k]])
433 def condition(self, fragment, stepList, key, hasHarvest):
434 return (fragment==
"TTbar_14TeV" or 'CloseByPGun_CE' in fragment)
and '2026' in key
444 suffix =
'_ticl_clue3D',
447 upgradeWFs[
'ticl_clue3D'].step3 = {
'--procModifiers':
'clue3D'}
448 upgradeWFs[
'ticl_clue3D'].step4 = {
'--procModifiers':
'clue3D'}
451 def setup_(self, step, stepName, stepDict, k, properties):
452 if 'RecoGlobal' in step:
453 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
454 if 'HARVESTGlobal' in step:
455 stepDict[stepName][k] =
merge([self.
step4, stepDict[step][k]])
456 def condition(self, fragment, stepList, key, hasHarvest):
457 return (fragment==
"TTbar_14TeV" or 'CloseByPGun_CE' in fragment)
and '2026' in key
467 suffix =
'_ticl_FastJet',
470 upgradeWFs[
'ticl_FastJet'].step3 = {
'--procModifiers':
'fastJetTICL'}
471 upgradeWFs[
'ticl_FastJet'].step4 = {
'--procModifiers':
'fastJetTICL'}
475 def setup_(self, step, stepName, stepDict, k, properties):
476 stepDict[stepName][k] =
merge([{
'--procModifiers':
'trackdnn'}, stepDict[step][k]])
478 def condition(self, fragment, stepList, key, hasHarvest):
479 return fragment==
"TTbar_14TeV" and '2021' in key
489 suffix =
'_trackdnn',
496 def setup_(self, step, stepName, stepDict, k, properties):
498 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
499 def condition(self, fragment, stepList, key, hasHarvest):
500 return (fragment==
"TTbar_14TeV" or fragment==
"QCD_FlatPt_15_3000HS_14")
and '2021PU' in key
514 upgradeWFs[
'mlpf'].step3 = {
515 '--datatier':
'GEN-SIM-RECO,RECOSIM,MINIAODSIM,NANOAODSIM,DQMIO',
516 '--eventcontent':
'FEVTDEBUGHLT,RECOSIM,MINIAODSIM,NANOEDMAODSIM,DQM',
517 '--procModifiers':
'mlpf' 522 def setup_(self, step, stepName, stepDict, k, properties):
524 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
525 def condition(self, fragment, stepList, key, hasHarvest):
526 return '2018' in key
and "SingleGamma" in fragment
539 suffix =
'_photonDRN',
542 upgradeWFs[
'photonDRN'].step3 = {
543 '--procModifiers':
'enableSonicTriton,photonDRN' 552 def __init__(self, digi = {}, reco = {}, harvest = {}, **kwargs):
554 super(PatatrackWorkflow, self).
__init__(
574 '--datatier':
'GEN-SIM-RECO,DQMIO',
575 '--eventcontent':
'RECOSIM,DQM' 579 def condition(self, fragment, stepList, key, hasHarvest):
582 (
'2018' in key
and fragment ==
"TTbar_13"),
583 (
'2021' in key
and fragment ==
"TTbar_14TeV"),
584 (
'2018' in key
and fragment ==
"ZMM_13"),
585 (
'2021' in key
and fragment ==
"ZMM_14"),
586 (
'2026D88' in key
and fragment ==
"TTbar_14TeV" and "PixelOnly" in self.
suffix)
588 result =
any(selected)
and hasHarvest
592 def setup_(self, step, stepName, stepDict, k, properties):
594 if 'ALCA' in step
or 'Nano'==step:
595 stepDict[stepName][k] =
None 598 stepDict[stepName][k] =
None 600 stepDict[stepName][k] =
merge([self.
__digi, stepDict[step][k]])
603 stepDict[stepName][k] =
None 605 stepDict[stepName][k] =
merge([self.
__reco, stepDict[step][k]])
606 elif 'HARVEST' in step:
608 stepDict[stepName][k] =
None 610 stepDict[stepName][k] =
merge([self.
__harvest, stepDict[step][k]])
621 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
622 '--procModifiers':
'pixelNtupletFit' 625 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' 627 suffix =
'Patatrack_PixelOnlyCPU',
638 '--procModifiers':
'gpu' 641 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
642 '--procModifiers':
'pixelNtupletFit,gpu' 645 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' 647 suffix =
'Patatrack_PixelOnlyGPU',
658 '--accelerators':
'gpu-nvidia',
659 '--procModifiers':
'gpu' 662 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
663 '--accelerators':
'gpu-nvidia',
664 '--procModifiers':
'pixelNtupletFit,gpuValidation' 667 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM',
668 '--procModifiers':
'gpuValidation' 670 suffix =
'Patatrack_PixelOnlyGPU_Validation',
680 '--procModifiers':
'gpu' 683 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly',
684 '--procModifiers':
'pixelNtupletFit,gpu',
685 '--customise' :
'RecoTracker/Configuration/customizePixelOnlyForProfiling.customizePixelOnlyForProfilingGPUOnly' 688 suffix =
'Patatrack_PixelOnlyGPU_Profiling',
701 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
702 '--procModifiers':
'pixelNtupletFit',
703 '--customise' :
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 706 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' 708 suffix =
'Patatrack_PixelOnlyTripletsCPU',
719 '--procModifiers':
'gpu' 722 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
723 '--procModifiers':
'pixelNtupletFit,gpu',
724 '--customise':
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 727 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' 729 suffix =
'Patatrack_PixelOnlyTripletsGPU',
740 '--accelerators':
'gpu-nvidia',
741 '--procModifiers':
'gpu' 744 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
745 '--accelerators':
'gpu-nvidia',
746 '--procModifiers':
'pixelNtupletFit,gpuValidation',
747 '--customise':
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 750 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM',
751 '--procModifiers':
'gpuValidation',
753 suffix =
'Patatrack_PixelOnlyTripletsGPU_Validation',
763 '--procModifiers':
'gpu' 766 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly',
767 '--procModifiers':
'pixelNtupletFit,gpu',
768 '--customise':
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets,RecoTracker/Configuration/customizePixelOnlyForProfiling.customizePixelOnlyForProfilingGPUOnly' 771 suffix =
'Patatrack_PixelOnlyTripletsGPU_Profiling',
784 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly',
787 '-s':
'HARVESTING:@ecalOnlyValidation+@ecal' 789 suffix =
'Patatrack_ECALOnlyCPU',
800 '--procModifiers':
'gpu' 803 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly',
804 '--procModifiers':
'gpu' 807 '-s':
'HARVESTING:@ecalOnlyValidation+@ecal' 809 suffix =
'Patatrack_ECALOnlyGPU',
820 '--accelerators':
'gpu-nvidia',
821 '--procModifiers':
'gpu' 824 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly',
825 '--accelerators':
'gpu-nvidia',
826 '--procModifiers':
'gpuValidation' 829 '-s':
'HARVESTING:@ecalOnlyValidation+@ecal' 831 suffix =
'Patatrack_ECALOnlyGPU_Validation',
841 '--procModifiers':
'gpu' 844 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly',
845 '--procModifiers':
'gpu',
846 '--customise' :
'RecoLocalCalo/Configuration/customizeEcalOnlyForProfiling.customizeEcalOnlyForProfilingGPUOnly' 849 suffix =
'Patatrack_ECALOnlyGPU_Profiling',
862 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only',
865 '-s':
'HARVESTING:@hcalOnlyValidation+@hcalOnly+@hcal2Only' 867 suffix =
'Patatrack_HCALOnlyCPU',
878 '--procModifiers':
'gpu' 881 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only',
882 '--procModifiers':
'gpu' 885 '-s':
'HARVESTING:@hcalOnlyValidation+@hcalOnly+@hcal2Only' 887 suffix =
'Patatrack_HCALOnlyGPU',
898 '--accelerators':
'gpu-nvidia',
899 '--procModifiers':
'gpu' 902 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only',
903 '--accelerators':
'gpu-nvidia',
904 '--procModifiers':
'gpuValidation' 907 '-s':
'HARVESTING:@hcalOnlyValidation+@hcal' 909 suffix =
'Patatrack_HCALOnlyGPU_Validation',
919 '--procModifiers':
'gpu' 922 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly',
923 '--procModifiers':
'gpu',
924 '--customise' :
'RecoLocalCalo/Configuration/customizeHcalOnlyForProfiling.customizeHcalOnlyForProfilingGPUOnly' 927 suffix =
'Patatrack_HCALOnlyGPU_Profiling',
940 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
941 '--procModifiers':
'pixelNtupletFit' 944 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' 946 suffix =
'Patatrack_AllCPU',
957 '--procModifiers':
'gpu' 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,gpu' 964 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' 966 suffix =
'Patatrack_AllGPU',
977 '--accelerators':
'gpu-nvidia',
978 '--procModifiers':
'gpu' 981 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
982 '--accelerators':
'gpu-nvidia',
983 '--procModifiers':
'pixelNtupletFit,gpuValidation' 986 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only',
987 '--procModifiers':
'gpuValidation' 989 suffix =
'Patatrack_AllGPU_Validation',
1007 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1008 '--procModifiers':
'pixelNtupletFit' 1011 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' 1013 suffix =
'Patatrack_AllTripletsCPU',
1024 '--procModifiers':
'gpu' 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,gpu' 1031 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' 1033 suffix =
'Patatrack_AllTripletsGPU',
1044 '--accelerators':
'gpu-nvidia',
1045 '--procModifiers':
'gpu' 1048 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1049 '--accelerators':
'gpu-nvidia',
1050 '--procModifiers':
'pixelNtupletFit,gpuValidation' 1053 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only',
1054 '--procModifiers':
'gpuValidation' 1056 suffix =
'Patatrack_AllTripletsGPU_Validation',
1075 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1076 '--procModifiers':
'pixelNtupletFit' 1081 suffix =
'Patatrack_FullRecoCPU',
1092 '--procModifiers':
'gpu' 1096 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1097 '--procModifiers':
'pixelNtupletFit,gpu' 1102 suffix =
'Patatrack_FullRecoGPU',
1113 '--accelerators':
'gpu-nvidia',
1114 '--procModifiers':
'gpu' 1118 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1119 '--accelerators':
'gpu-nvidia',
1120 '--procModifiers':
'pixelNtupletFit,gpuValidation' 1125 suffix =
'Patatrack_FullRecoGPU_Validation',
1139 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1140 '--procModifiers':
'pixelNtupletFit',
1141 '--customise' :
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 1146 suffix =
'Patatrack_FullRecoTripletsCPU',
1157 '--procModifiers':
'gpu' 1161 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1162 '--procModifiers':
'pixelNtupletFit,gpu',
1163 '--customise':
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 1168 suffix =
'Patatrack_FullRecoTripletsGPU',
1179 '--accelerators':
'gpu-nvidia',
1180 '--procModifiers':
'gpu' 1184 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1185 '--accelerators':
'gpu-nvidia',
1186 '--procModifiers':
'pixelNtupletFit,gpuValidation',
1187 '--customise' :
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 1192 suffix =
'Patatrack_FullRecoTripletsGPU_Validation',
1200 def setup_(self, step, stepName, stepDict, k, properties):
1201 if 'GenSimHLBeamSpot14' in step:
1202 stepDict[stepName][k] =
merge([{
'--eventcontent':
'RAWSIM',
'--datatier':
'GEN-SIM'},stepDict[step][k]])
1203 elif 'Digi' in step
and 'Trigger' not in step:
1204 stepDict[stepName][k] =
merge([{
'-s':
'DIGI,L1,DIGI2RAW,HLT:@relval2021',
'--datatier':
'GEN-SIM-RAW',
'--eventcontent':
'RAWSIM'}, stepDict[step][k]])
1205 elif 'DigiTrigger' in step:
1206 stepDict[stepName][k] =
merge([{
'-s':
'DIGI,L1TrackTrigger,L1,DIGI2RAW,HLT:@fake2',
'--datatier':
'GEN-SIM-RAW',
'--eventcontent':
'RAWSIM'}, stepDict[step][k]])
1207 elif 'Reco' in step:
1208 stepDict[stepName][k] =
merge([{
'-s':
'RAW2DIGI,L1Reco,RECO,RECOSIM',
'--datatier':
'AODSIM',
'--eventcontent':
'AODSIM'}, stepDict[step][k]])
1209 elif 'MiniAOD' in step:
1211 stepDict[stepName][k] = deepcopy(stepDict[step][k])
1212 elif 'ALCA' in step
or 'HARVEST' in step:
1214 stepDict[stepName][k] =
None 1216 stepDict[stepName][k] =
merge([{
'--filein':
'file:step4.root',
'-s':
'NANO',
'--datatier':
'NANOAODSIM',
'--eventcontent':
'NANOEDMAODSIM'}, stepDict[step][k]])
1218 return fragment==
"TTbar_14TeV" and (
'2026' in key
or '2021' in key)
1221 'GenSimHLBeamSpot14',
1235 'GenSimHLBeamSpot14',
1248 suffix =
'_ProdLike',
1253 def setup_(self, step, stepName, stepDict, k, properties):
1254 if 'HARVEST' in step:
1255 stepDict[stepName][k] =
merge([{
'--filein':
'file:step3_inDQM.root'}, stepDict[step][k]])
1257 stepDict[stepName][k] =
merge([stepDict[step][k]])
1259 return fragment==
"TTbar_14TeV" and '2026' in key
1262 'GenSimHLBeamSpot14',
1269 'GenSimHLBeamSpot14',
1275 suffix =
'_HLT75e33',
1280 def setup_(self, step, stepName, stepDict, k, properties):
1281 if 'GenSim' in step:
1282 custNew =
"SimG4Core/Application/NeutronBGforMuonsXS_cff.customise" 1284 custNew =
"SLHCUpgradeSimulations/Configuration/customise_mixing.customise_Mix_LongLived_Neutrons" 1285 stepDict[stepName][k] = deepcopy(stepDict[step][k])
1286 if '--customise' in stepDict[stepName][k].
keys():
1287 stepDict[stepName][k][
'--customise'] +=
","+custNew
1289 stepDict[stepName][k][
'--customise'] = custNew
1296 'GenSimHLBeamSpot14',
1304 suffix =
'_Neutron',
1308 upgradeWFs[
'Neutron'].neutronKeys = [x
for x
in upgradeKeys[2026]
if 'PU' not in x]
1309 upgradeWFs[
'Neutron'].neutronFrags = [
'ZMM_14',
'MinBias_14TeV']
1312 def setup_(self, step, stepName, stepDict, k, properties):
1313 stepDict[stepName][k] =
merge([{
'--procModifiers':
'run2_HECollapse_2018'}, stepDict[step][k]])
1315 return fragment==
"TTbar_13" and '2018' in key
1329 suffix =
'_heCollapse',
1334 def setup_(self, step, stepName, stepDict, k, properties):
1336 mods = {
'--era': stepDict[step][k][
'--era']+
',phase2_ecal_devel'}
1338 mods[
'-s'] =
'DIGI:pdigi_valid,DIGI2RAW' 1339 elif 'Reco' in step:
1340 mods[
'-s'] =
'RAW2DIGI,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly' 1341 mods[
'--datatier'] =
'GEN-SIM-RECO,DQMIO' 1342 mods[
'--eventcontent'] =
'FEVTDEBUGHLT,DQM' 1343 elif 'HARVEST' in step:
1344 mods[
'-s'] =
'HARVESTING:@ecalOnlyValidation+@ecal' 1345 stepDict[stepName][k] =
merge([mods, stepDict[step][k]])
1347 return fragment==
"TTbar_14TeV" and '2026' in key
1359 suffix =
'_ecalDevel',
1364 def setup_(self, step, stepName, stepDict, k, properties):
1365 myGT=stepDict[step][k][
'--conditions']
1367 stepDict[stepName][k] =
merge([{
'-n':
'1',
'--magField':
'0T',
'--conditions':myGT}, stepDict[step][k]])
1368 def setupPU_(self, step, stepName, stepDict, k, properties):
1370 stepDict[stepName][k] =
merge([{
'-n':
'1'}, stepDict[step][k]])
1372 return (fragment==
"TTbar_13" or fragment==
"TTbar_14TeV")
and (
'2017' in key
or '2018' in key
or '2021' in key)
1395 def setup_(self, step, stepName, stepDict, k, properties):
1396 if 'Reco' in step
and 'Run2_2018' in stepDict[step][k][
'--era']:
1397 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2018,bParking'}, stepDict[step][k]])
1399 return fragment==
"TTbar_13" and '2018' in key
1405 suffix =
'_ParkingBPH',
1410 def setup_(self, step, stepName, stepDict, k, properties):
1412 stepDict[stepName][k] =
merge([{
'--customise':
'PhysicsTools/NanoAOD/custom_jme_cff.PrepJMECustomNanoAOD_MC'}, stepDict[step][k]])
1414 return fragment==
"TTbar_13" and (
'2017' in key
or '2018' in key)
1420 suffix =
'_JMENano',
1427 def setup_(self, step, stepName, stepDict, k, properties):
1428 if 'Digi' in step
or 'Reco' in step:
1429 stepDict[stepName][k] =
merge([{
'--customise':
'SLHCUpgradeSimulations/Configuration/aging.customise_aging_'+self.
lumi}, stepDict[step][k]])
1431 return fragment==
"TTbar_14TeV" and '2026' in key
1448 suffix =
'Aging1000',
1451 upgradeWFs[
'Aging1000'].lumi =
'1000' 1452 upgradeWFs[
'Aging3000'] = deepcopy(upgradeWFs[
'Aging1000'])
1453 upgradeWFs[
'Aging3000'].suffix =
'Aging3000' 1454 upgradeWFs[
'Aging3000'].offset = 0.103
1455 upgradeWFs[
'Aging3000'].lumi =
'3000' 1462 def setup_(self, step, stepName, stepDict, k, properties):
1464 stepDict[stepName][k] =
merge([{
'--customise':
'SimTracker/SiPhase2Digitizer/customizeForOTInefficiency.customizeSiPhase2OTInefficiency'+self.
percent+
'Percent'}, stepDict[step][k]])
1466 return fragment==
"TTbar_14TeV" and '2026' in key
1477 suffix =
'_OTInefficiency',
1480 upgradeWFs[
'OTInefficiency'].percent =
'Zero' 1483 upgradeWFs[
'OTInefficiency1PC'] = deepcopy(upgradeWFs[
'OTInefficiency'])
1484 upgradeWFs[
'OTInefficiency1PC'].suffix =
'_OTInefficiency1PC' 1485 upgradeWFs[
'OTInefficiency1PC'].offset = 0.112
1486 upgradeWFs[
'OTInefficiency1PC'].percent =
'One' 1489 upgradeWFs[
'OTInefficiency5PC'] = deepcopy(upgradeWFs[
'OTInefficiency'])
1490 upgradeWFs[
'OTInefficiency5PC'].suffix =
'_OTInefficiency5PC' 1491 upgradeWFs[
'OTInefficiency5PC'].offset = 0.113
1492 upgradeWFs[
'OTInefficiency5PC'].percent =
'Five' 1495 upgradeWFs[
'OTInefficiency10PC'] = deepcopy(upgradeWFs[
'OTInefficiency'])
1496 upgradeWFs[
'OTInefficiency10PC'].suffix =
'_OTInefficiency10PC' 1497 upgradeWFs[
'OTInefficiency10PC'].offset = 0.114
1498 upgradeWFs[
'OTInefficiency10PC'].percent =
'Ten' 1506 digiPremixLocalPileup = {
1507 "--filein":
"file:step1.root",
1508 "--pileup_input":
"file:step2.root" 1513 def setup_(self, step, stepName, stepDict, k, properties):
1515 stepDict[stepName][k] =
merge([stepDict[step][k]])
1516 def setupPU_(self, step, stepName, stepDict, k, properties):
1518 if "GenSim" in stepName:
1519 stepNamePmx = stepName.replace(
'GenSim',
'Premix')
1520 if not stepNamePmx
in stepDict: stepDict[stepNamePmx] = {}
1521 stepDict[stepNamePmx][k] =
merge([
1523 '-s':
'GEN,SIM,DIGI:pdigi_valid',
1524 '--datatier':
'PREMIX',
1525 '--eventcontent':
'PREMIX',
1526 '--procModifiers':
'premix_stage1' 1528 stepDict[stepName][k]
1530 if "ProdLike" in self.
suffix:
1531 stepDict[stepNamePmx][k] =
merge([{
'-s':
'GEN,SIM,DIGI'},stepDict[stepNamePmx][k]])
1533 elif "Digi" in step
or "Reco" in step:
1536 if d
is None:
return 1539 for s
in d[
"-s"].
split(
","):
1540 if s ==
"DIGI" or "DIGI:" in s:
1541 tmpsteps.extend([s,
"DATAMIX"])
1545 "--datamix" :
"PreMix",
1546 "--procModifiers":
"premix_stage2"},
1549 if "_PMXS1S2" in self.
suffix:
1550 d =
merge([digiPremixLocalPileup, d])
1551 elif "Reco" in step:
1552 if "--procModifiers" in d:
1553 d[
"--procModifiers"] +=
",premix_stage2" 1555 d[
"--procModifiers"] =
"premix_stage2" 1556 stepDict[stepName][k] = d
1562 filein = d[
"--filein"]
1563 m = re.search(
"step(?P<ind>\d+)_", filein)
1565 d[
"--filein"] = filein.replace(m.group(),
"step%d_"%(
int(m.group(
"ind"))+1))
1566 stepDict[stepName][k] = d
1572 if not any(y
in key
for y
in [
'2021',
'2023',
'2024',
'2026']):
1574 if self.
suffix.endswith(
"S1"):
1575 return "NuGun" in fragment
1577 def workflow_(self, workflows, num, fragment, stepList, key):
1578 fragmentTmp = fragment
1579 if self.
suffix.endswith(
"S1"):
1580 fragmentTmp =
'PREMIXUP' + key[2:].
replace(
"PU",
"").
replace(
"Design",
"") +
'_PU25' 1581 super(UpgradeWorkflowPremix,self).
workflow_(workflows, num, fragmentTmp, stepList, key)
1589 'GenSimHLBeamSpot14',
1615 'GenSimHLBeamSpot14',
1624 suffix =
'_PMXS1S2',
1629 def setupPU_(self, step, stepName, stepDict, k, properties):
1631 if '--pileup' in stepDict[stepName][k]:
1632 stepDict[stepName][k][
'--pileup'] =
'AVE_50_BX_25ns_m3p3' 1633 super(UpgradeWorkflowAdjustPU,self).
setupPU_(step, stepName, stepDict, k, properties)
1636 return super(UpgradeWorkflowAdjustPU,self).
condition(fragment, stepList, key, hasHarvest)
and '2026' in key
1642 'GenSimHLBeamSpot14',
1652 suffix =
'_PMXS1S2PR',
1657 def setup_(self, step, stepName, stepDict, k, properties):
1659 UpgradeWorkflowPremix.setup_(self, step, stepName, stepDict, k, properties)
1660 UpgradeWorkflow_ProdLike.setup_(self, step, stepName, stepDict, k, properties)
1665 for s
in d[
"-s"].
split(
","):
1666 if "DIGI:pdigi_valid" in s:
1667 tmpsteps.append(
"DIGI")
1671 "--eventcontent":
"PREMIXRAW"},
1673 stepDict[stepName][k] = d
1675 stepDict[stepName][k] =
merge([{
'--filein':
'file:step5.root',
'-s':
'NANO',
'--datatier':
'NANOAODSIM',
'--eventcontent':
'NANOEDMAODSIM'}, stepDict[step][k]])
1678 return UpgradeWorkflowPremix.condition(self, fragment, stepList, key, hasHarvest)
and UpgradeWorkflow_ProdLike.condition(self, fragment, stepList, key, hasHarvest)
1696 suffix =
'_PMXS2ProdLike',
1705 'GenSimHLBeamSpot14',
1719 suffix =
'_PMXS1S2ProdLike',
1724 def setup_(self, step, stepName, stepDict, k, properties):
1725 if 'GenSim' in step:
1726 stepDict[stepName][k] =
merge([{
'-s':
'GEN,SIM,RECOBEFMIX,DIGI:pdigi_valid,L1,DIGI2RAW,L1Reco,RECO,PAT,VALIDATION:@standardValidation,DQM:@standardDQMFS',
1728 '--era':
'Run3_FastSim',
1729 '--eventcontent':
'FEVTDEBUGHLT,MINIAODSIM,DQM',
1730 '--datatier':
'GEN-SIM-DIGI-RECO,MINIAODSIM,DQMIO',
1731 '--relval':
'27000,3000'}, stepDict[step][k]])
1732 if 'Digi' in step
or 'RecoNano' in step
or 'ALCA' in step:
1733 stepDict[stepName][k] =
None 1734 if 'HARVESTNano' in step:
1735 stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:validationHarvesting',
1737 '--era':
'Run3_FastSim',
1738 '--filein':
'file:step1_inDQM.root'}, stepDict[step][k]])
1740 return '2021' in key
1755 def setup_(self, step, stepName, stepDict, k, properties):
1756 if 'GenSim' in step:
1757 stepDict[stepName][k] =
merge([{
'-s':
'GEN,SIM,RECOBEFMIX,DIGI:pdigi_valid,L1,DIGI2RAW,L1Reco,RECO,PAT,VALIDATION:@trackingOnlyValidation',
1759 '--era':
'Run3_FastSim',
1760 '--eventcontent':
'FEVTDEBUGHLT,MINIAODSIM,DQM',
1761 '--datatier':
'GEN-SIM-DIGI-RECO,MINIAODSIM,DQMIO',
1762 '--relval':
'27000,3000'}, stepDict[step][k]])
1763 if 'Digi' in step
or 'RecoNano' in step
or 'ALCA' in step:
1764 stepDict[stepName][k] =
None 1765 if 'HARVESTNano' in step:
1766 stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@trackingOnlyDQM',
1768 '--era':
'Run3_FastSim',
1769 '--filein':
'file:step1_inDQM.root'}, stepDict[step][k]])
1771 return '2021' in key
1781 suffix =
'_Run3FSTrackingOnly',
1786 def setup_(self, step, stepName, stepDict, k, properties):
1787 if 'GenSim' in step:
1788 stepDict[stepName][k] =
merge([{
'-s':
'GEN,SIM,RECOBEFMIX',
1790 '--era':
'Run3_FastSim',
1791 '--eventcontent':
'FASTPU',
1792 '--datatier':
'GEN-SIM-RECO',
1793 '--relval':
'27000,3000'}, stepDict[step][k]])
1794 if 'Digi' in step
or 'RecoNano' in step
or 'ALCA' in step
or 'HARVESTNano' in step:
1795 stepDict[stepName][k] =
None 1797 return '2021' in key
and fragment==
"MinBias_14TeV" 1807 suffix =
'_Run3FSMBMixing',
1812 def setup_(self, step, stepName, stepDict, k, properties):
1813 if 'Run3' in stepDict[step][k][
'--era']:
1814 stepDict[stepName][k] =
merge([{
'--geometry':
'DD4hepExtended2021'}, stepDict[step][k]])
1815 elif 'Phase2' in stepDict[step][k][
'--era']:
1817 dd4hepGeom+=stepDict[step][k][
'--geometry']
1818 stepDict[stepName][k] =
merge([{
'--geometry' : dd4hepGeom,
'--procModifiers':
'dd4hep'}, stepDict[step][k]])
1820 return '2021' in key
or '2026' in key
1825 'GenSimHLBeamSpot14',
1840 upgradeWFs[
'DD4hep'].allowReuse =
False 1845 def setup_(self, step, stepName, stepDict, k, properties):
1846 if 'Run3' in stepDict[step][k][
'--era']:
1847 stepDict[stepName][k] =
merge([{
'--conditions':
'auto:phase1_2022_realistic',
'--geometry':
'DB:Extended'}, stepDict[step][k]])
1849 return '2021' in key
1854 'GenSimHLBeamSpot14',
1866 suffix =
'_DD4hepDB',
1869 upgradeWFs[
'DD4hepDB'].allowReuse =
False 1872 def setup_(self, step, stepName, stepDict, k, properties):
1873 if 'Run3' in stepDict[step][k][
'--era']:
1875 tmp_eras = stepDict[step][k][
'--era'].
split(
',')
1876 tmp_eras[tmp_eras.index(
"Run3")] =
'Run3_DDD' 1877 tmp_eras =
','.
join(tmp_eras)
1878 stepDict[stepName][k] =
merge([{
'--conditions':
'auto:phase1_2022_realistic_ddd',
'--geometry':
'DB:Extended',
'--era': tmp_eras}, stepDict[step][k]])
1880 return '2021' in key
1885 'GenSimHLBeamSpot14',
1900 upgradeWFs[
'DDDDB'].allowReuse =
False 1903 def setup_(self, step, stepName, stepDict, k, properties):
1904 stepDict[stepName][k] =
merge([{
'--procModifiers':
'allSonicTriton'}, stepDict[step][k]])
1906 return (fragment==
'TTbar_13' and '2021' in key) \
1907 or (fragment==
'TTbar_14TeV' and '2026' in key)
1912 'GenSimHLBeamSpot14',
1926 'GenSimHLBeamSpot14',
1937 suffix =
'_SonicTriton',
1942 offsets = [specialWF.offset
for specialType,specialWF
in upgradeWFs.items()]
1944 dups = set(x
for x
in offsets
if x
in seen
or seen.add(x))
1946 raise ValueError(
"Duplicate special workflow offsets not allowed: "+
','.
join([
str(x)
for x
in dups]))
1948 upgradeProperties = {}
1950 upgradeProperties[2017] = {
1952 'Geom' :
'DB:Extended',
1953 'GT' :
'auto:phase1_2017_realistic',
1954 'HLTmenu':
'@relval2017',
1955 'Era' :
'Run2_2017',
1956 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT',
'ALCA',
'Nano'],
1959 'Geom' :
'DB:Extended',
1960 'GT' :
'auto:phase1_2017_design',
1961 'HLTmenu':
'@relval2017',
1962 'Era' :
'Run2_2017',
1963 'BeamSpot':
'GaussSigmaZ4cm',
1964 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT'],
1967 'Geom' :
'DB:Extended',
1968 'GT' :
'auto:phase1_2018_realistic',
1969 'HLTmenu':
'@relval2018',
1970 'Era' :
'Run2_2018',
1971 'BeamSpot':
'Realistic25ns13TeVEarly2018Collision',
1972 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT',
'ALCA',
'Nano'],
1975 'Geom' :
'DB:Extended',
1976 'GT' :
'auto:phase1_2018_design',
1977 'HLTmenu':
'@relval2018',
1978 'Era' :
'Run2_2018',
1979 'BeamSpot':
'GaussSigmaZ4cm',
1980 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT'],
1983 'Geom' :
'DB:Extended',
1984 'GT' :
'auto:phase1_2022_realistic',
1985 'HLTmenu':
'@relval2021',
1987 'BeamSpot':
'Run3RoundOptics25ns13TeVLowSigmaZ',
1988 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
1991 'Geom' :
'DB:Extended',
1992 'GT' :
'auto:phase1_2022_design',
1993 'HLTmenu':
'@relval2021',
1995 'BeamSpot':
'GaussSigmaZ4cm',
1996 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano'],
1999 'Geom' :
'DB:Extended',
2000 'GT' :
'auto:phase1_2023_realistic',
2001 'HLTmenu':
'@relval2021',
2003 'BeamSpot':
'Run3RoundOptics25ns13TeVLowSigmaZ',
2004 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
2007 'Geom' :
'DB:Extended',
2008 'GT' :
'auto:phase1_2024_realistic',
2009 'HLTmenu':
'@relval2021',
2011 'BeamSpot':
'Run3RoundOptics25ns13TeVLowSigmaZ',
2012 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
2017 for key
in list(upgradeProperties[2017].
keys()):
2018 upgradeProperties[2017][key+
'PU'] = deepcopy(upgradeProperties[2017][key])
2019 upgradeProperties[2017][key+
'PU'][
'ScenToRun'] = [
'GenSim',
'DigiPU'] + \
2020 ([
'RecoNanoPU',
'HARVESTNanoPU']
if '202' in key
else [
'RecoFakeHLTPU',
'HARVESTFakeHLTPU']) + \
2021 ([
'Nano']
if 'Nano' in upgradeProperties[2017][key][
'ScenToRun']
else [])
2023 upgradeProperties[2026] = {
2025 'Geom' :
'Extended2026D49',
2026 'HLTmenu':
'@fake2',
2027 'GT' :
'auto:phase2_realistic_T15',
2029 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2032 'Geom' :
'Extended2026D60',
2033 'HLTmenu':
'@fake2',
2034 'GT' :
'auto:phase2_realistic_T15',
2035 'Era' :
'Phase2C10',
2036 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2039 'Geom' :
'Extended2026D68',
2040 'HLTmenu':
'@fake2',
2041 'GT' :
'auto:phase2_realistic_T21',
2042 'Era' :
'Phase2C11',
2043 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2046 'Geom' :
'Extended2026D70',
2047 'HLTmenu':
'@fake2',
2048 'GT' :
'auto:phase2_realistic_T21',
2049 'Era' :
'Phase2C11',
2050 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2053 'Geom' :
'Extended2026D76',
2054 'HLTmenu':
'@fake2',
2055 'GT' :
'auto:phase2_realistic_T21',
2056 'Era' :
'Phase2C11I13M9',
2057 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2060 'Geom' :
'Extended2026D77',
2061 'HLTmenu':
'@fake2',
2062 'GT' :
'auto:phase2_realistic_T21',
2063 'Era' :
'Phase2C11I13M9',
2064 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2067 'Geom' :
'Extended2026D78',
2068 'HLTmenu':
'@fake2',
2069 'GT' :
'auto:phase2_realistic_T22',
2070 'ProcessModifier':
'PixelCPEGeneric',
2071 'Era' :
'Phase2C11I13T22M9',
2072 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2075 'Geom' :
'Extended2026D79',
2076 'HLTmenu':
'@fake2',
2077 'GT' :
'auto:phase2_realistic_T23',
2078 'Era' :
'Phase2C11I13T23M9',
2079 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2082 'Geom' :
'Extended2026D80',
2083 'HLTmenu':
'@fake2',
2084 'GT' :
'auto:phase2_realistic_T25',
2085 'Era' :
'Phase2C11I13T25M9',
2086 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2089 'Geom' :
'Extended2026D81',
2090 'HLTmenu':
'@fake2',
2091 'GT' :
'auto:phase2_realistic_T26',
2092 'Era' :
'Phase2C11I13T26M9',
2093 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2096 'Geom' :
'Extended2026D82',
2097 'HLTmenu':
'@fake2',
2098 'GT' :
'auto:phase2_realistic_T21',
2099 'Era' :
'Phase2C11I13M9',
2100 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2103 'Geom' :
'Extended2026D83',
2104 'HLTmenu':
'@fake2',
2105 'GT' :
'auto:phase2_realistic_T21',
2106 'Era' :
'Phase2C11I13M9',
2107 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2110 'Geom' :
'Extended2026D84',
2111 'HLTmenu':
'@fake2',
2112 'GT' :
'auto:phase2_realistic_T21',
2113 'Era' :
'Phase2C11',
2114 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2117 'Geom' :
'Extended2026D85',
2118 'HLTmenu':
'@fake2',
2119 'GT' :
'auto:phase2_realistic_T21',
2120 'Era' :
'Phase2C11I13M9',
2121 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2124 'Geom' :
'Extended2026D86',
2125 'HLTmenu':
'@fake2',
2126 'GT' :
'auto:phase2_realistic_T21',
2127 'Era' :
'Phase2C17I13M9',
2128 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2131 'Geom' :
'Extended2026D87',
2132 'HLTmenu':
'@fake2',
2133 'GT' :
'auto:phase2_realistic_T27',
2134 'Era' :
'Phase2C11I13T27M9',
2135 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2138 'Geom' :
'Extended2026D88',
2139 'HLTmenu':
'@fake2',
2140 'GT' :
'auto:phase2_realistic_T21',
2141 'Era' :
'Phase2C17I13M9',
2142 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2145 'Geom' :
'Extended2026D89',
2146 'HLTmenu':
'@fake2',
2147 'GT' :
'auto:phase2_realistic_T27',
2148 'Era' :
'Phase2C11I13T27M9',
2149 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2152 'Geom' :
'Extended2026D90',
2153 'HLTmenu':
'@fake2',
2154 'GT' :
'auto:phase2_realistic_T27',
2155 'Era' :
'Phase2C11I13T27M9',
2156 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2159 'Geom' :
'Extended2026D91',
2160 'HLTmenu':
'@fake2',
2161 'GT' :
'auto:phase2_realistic_T30',
2162 'Era' :
'Phase2C17I13M9',
2163 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
2168 for key
in list(upgradeProperties[2026].
keys()):
2169 upgradeProperties[2026][key+
'PU'] = deepcopy(upgradeProperties[2026][key])
2170 upgradeProperties[2026][key+
'PU'][
'ScenToRun'] = [
'GenSimHLBeamSpot',
'DigiTriggerPU',
'RecoGlobalPU',
'HARVESTGlobalPU']
2173 defaultDataSets = {}
2174 for year
in upgradeKeys:
2175 for key
in upgradeKeys[year]:
2176 if 'PU' in key:
continue 2177 defaultDataSets[key] =
'' 2185 upgradeFragments = OrderedDict([
2187 (
'SingleElectronPt10_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronPt10')),
2188 (
'SingleElectronPt35_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronPt35')),
2189 (
'SingleElectronPt1000_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SingleElectronPt1000')),
2196 (
'FourMuExtendedPt_1_200_pythia8_cfi',
UpgradeFragment(
Kby(10,100),
'FourMuExtendedPt1_200')),
2197 (
'TenMuExtendedE_0_200_pythia8_cfi',
UpgradeFragment(
Kby(10,100),
'TenMuExtendedE_0_200')),
2198 (
'DoubleElectronPt10Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElPt10Extended')),
2199 (
'DoubleElectronPt35Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElPt35Extended')),
2200 (
'DoubleElectronPt1000Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SingleElPt1000Extended')),
2201 (
'DoubleGammaPt10Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleGammaPt10Extended')),
2202 (
'DoubleGammaPt35Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SingleGammaPt35Extended')),
2203 (
'DoubleMuPt1Extended_pythia8_cfi',
UpgradeFragment(
Kby(25,100),
'SingleMuPt1Extended')),
2204 (
'DoubleMuPt10Extended_pythia8_cfi',
UpgradeFragment(
Kby(25,100),
'SingleMuPt10Extended')),
2205 (
'DoubleMuPt100Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleMuPt100Extended')),
2206 (
'DoubleMuPt1000Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleMuPt1000Extended')),
2209 (
'MinBias_13TeV_pythia8_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(90,100),
'MinBias_13')),
2212 (
'QCD_Pt_600_800_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_600_800_13')),
2213 (
'Wjet_Pt_80_120_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'Wjet_Pt_80_120_14TeV')),
2214 (
'Wjet_Pt_3000_3500_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Wjet_Pt_3000_3500_14TeV')),
2216 (
'QCD_Pt_3000_3500_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_3000_3500_14TeV')),
2217 (
'QCD_Pt_80_120_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'QCD_Pt_80_120_14TeV')),
2218 (
'H200ChargedTaus_Tauola_14TeV_cfi',
UpgradeFragment(
Kby(9,100),
'Higgs200ChargedTaus_14TeV')),
2222 (
'ZTT_Tauola_All_hadronic_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,100),
'ZTT_14TeV')),
2223 (
'H130GGgluonfusion_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'H130GGgluonfusion_14TeV')),
2224 (
'PhotonJet_Pt_10_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'PhotonJets_Pt_10_14TeV')),
2225 (
'QQH1352T_Tauola_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'QQH1352T_Tauola_14TeV')),
2229 (
'QCDForPF_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(50,100),
'QCD_FlatPt_15_3000HS_14')),
2231 (
'DYToTauTau_M-50_14TeV_pythia8_tauola_cff',
UpgradeFragment(
Kby(9,100),
'DYtoTauTau_M_50_14TeV')),
2233 (
'QCD_Pt_80_120_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'QCD_Pt_80_120_13')),
2234 (
'H125GGgluonfusion_13TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'H125GGgluonfusion_13')),
2235 (
'QCD_Pt20toInf_MuEnrichedPt15_14TeV_TuneCP5_cff',
UpgradeFragment(
Kby(19565, 217391),
'QCD_Pt20toInfMuEnrichPt15_14')),
2237 (
'QCD_Pt15To7000_Flat_14TeV_TuneCP5_cff',
UpgradeFragment(
Kby(9,50),
'QCD_Pt15To7000_Flat_14')),
2238 (
'H125GGgluonfusion_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'H125GGgluonfusion_14')),
2239 (
'QCD_Pt_600_800_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_600_800_14')),
2242 (
'H200ChargedTaus_Tauola_13TeV_cfi',
UpgradeFragment(
Kby(9,50),
'Higgs200ChargedTaus_13')),
2243 (
'ADDMonoJet_13TeV_d3MD3_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'ADDMonoJet_d3MD3_13')),
2245 (
'QCD_Pt_3000_3500_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_3000_3500_13')),
2252 (
'PhotonJet_Pt_10_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'PhotonJets_Pt_10_13')),
2254 (
'Wjet_Pt_80_120_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Wjet_Pt_80_120_13')),
2255 (
'Wjet_Pt_3000_3500_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Wjet_Pt_3000_3500_13')),
2256 (
'SMS-T1tttt_mGl-1500_mLSP-100_13TeV-pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SMS-T1tttt_mGl-1500_mLSP-100_13')),
2257 (
'QCDForPF_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(50,100),
'QCD_FlatPt_15_3000HS_13')),
2258 (
'PYTHIA8_PhiToMuMu_TuneCUETP8M1_13TeV_cff',
UpgradeFragment(
Kby(9,50),
'PhiToMuMu_13')),
2259 (
'RSKKGluon_m3000GeV_13TeV_TuneCUETP8M1_cff',
UpgradeFragment(
Kby(9,50),
'RSKKGluon_m3000GeV_13')),
2263 (
'Upsilon1SToMuMu_forSTEAM_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Upsilon1SToMuMu_13')),
2264 (
'EtaBToJpsiJpsi_forSTEAM_TuneCUEP8M1_13TeV_cfi',
UpgradeFragment(
Kby(9,50),
'EtaBToJpsiJpsi_13')),
2265 (
'JpsiMuMu_Pt-8_forSTEAM_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(3100,100000),
'JpsiMuMu_Pt-8')),
2266 (
'BuMixing_BMuonFilter_forSTEAM_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(900,10000),
'BuMixing_13')),
2267 (
'HSCPstop_M_200_TuneCUETP8M1_13TeV_pythia8_cff',
UpgradeFragment(
Kby(9,50),
'HSCPstop_M_200_13')),
2268 (
'RSGravitonToGammaGamma_kMpl01_M_3000_TuneCUETP8M1_13TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'RSGravitonToGaGa_13')),
2269 (
'WprimeToENu_M-2000_TuneCUETP8M1_13TeV-pythia8_cff',
UpgradeFragment(
Kby(9,50),
'WpToENu_M-2000_13')),
2270 (
'DisplacedSUSY_stopToBottom_M_800_500mm_TuneCP5_13TeV_pythia8_cff',
UpgradeFragment(
Kby(9,50),
'DisplacedSUSY_stopToB_M_800_500mm_13')),
2272 (
'FlatRandomPtAndDxyGunProducer_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuonsDxy_0_500')),
2274 (
'SinglePiPt25Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SinglePiPt25Eta1p7_2p7')),
2275 (
'SingleMuPt15Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SingleMuPt15Eta1p7_2p7')),
2276 (
'SingleGammaPt25Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SingleGammaPt25Eta1p7_2p7')),
2277 (
'SingleElectronPt15Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronPt15Eta1p7_2p7')),
2279 (
'CloseByParticle_Photon_ERZRanges_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByParticleGun')),
2280 (
'CE_E_Front_300um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_E_Front_300um')),
2281 (
'CE_E_Front_200um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_E_Front_200um')),
2282 (
'CE_E_Front_120um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_E_Front_120um')),
2286 (
'CE_H_Coarse_Scint_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_H_Coarse_Scint')),
2287 (
'CE_H_Coarse_300um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_H_Coarse_300um')),
2288 (
'SingleElectronFlatPt2To100_cfi',
UpgradeFragment(
Kby(9,100),
'SingleEFlatPt2To100')),
2291 (
'SingleGammaFlatPt8To150_cfi',
UpgradeFragment(
Kby(9,100),
'SingleGammaFlatPt8To150')),
2294 (
'FlatRandomPtAndDxyGunProducer_MuPt2To10_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt2To10')),
2295 (
'FlatRandomPtAndDxyGunProducer_MuPt10To30_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt10To30')),
2296 (
'FlatRandomPtAndDxyGunProducer_MuPt30To100_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt30To100')),
2297 (
'B0ToKstarMuMu_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(304,3030),
'B0ToKstarMuMu_14TeV')),
2299 (
'BsToJpsiGamma_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(2500,25000),
'BsToJpsiGamma_14TeV')),
2300 (
'BsToJpsiPhi_mumuKK_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(910,9090),
'BsToJpsiPhi_mumuKK_14TeV')),
2302 (
'BsToPhiPhi_KKKK_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(556,5555),
'BsToPhiPhi_KKKK_14TeV')),
2303 (
'TauToMuMuMu_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(18939,189393),
'TauToMuMuMu_14TeV')),
2304 (
'BdToKstarEleEle_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(206,2061),
'BdToKstarEleEle_14TeV')),
2306 (
'BuMixing_BMuonFilter_forSTEAM_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(900,10000),
'BuMixing_14')),
2307 (
'Upsilon1SToMuMu_forSTEAM_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'Upsilon1SToMuMu_14')),
2308 (
'TenTau_E_15_500_Eta3p1_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'TenTau_15_500_Eta3p1')),
2309 (
'QCD_Pt_1800_2400_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_1800_2400_14')),
2310 (
'DisplacedSUSY_stopToBottom_M_800_500mm_TuneCP5_14TeV_pythia8_cff',
UpgradeFragment(
Kby(9,50),
'DisplacedSUSY_14TeV')),
2311 (
'GluGluTo2Jets_M_300_2000_14TeV_Exhume_cff',
UpgradeFragment(
Kby(9,100),
'GluGluTo2Jets_14TeV')),
2312 (
'TTbarToDilepton_mt172p5_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'TTbarToDilepton_14TeV')),
2313 (
'QQToHToTauTau_mh125_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'QQToHToTauTau_14TeV')),
2314 (
'ZpToEE_m6000_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'ZpToEE_m6000_14TeV')),
2315 (
'ZpToMM_m6000_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'ZpToMM_m6000_14TeV')),
2316 (
'SMS-T1tttt_mGl-1500_mLSP-100_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SMS-T1tttt_14TeV')),
2317 (
'VBFHZZ4Nu_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'VBFHZZ4Nu_14TeV')),
2318 (
'EtaBToJpsiJpsi_14TeV_TuneCP5_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'EtaBToJpsiJpsi_14TeV')),
2320 (
'WprimeToLNu_M2000_14TeV_TuneCP5_pythia8_cfi',
UpgradeFragment(
Kby(21,50),
'WprimeToLNu_M2000_14TeV')),
2322 (
'DoubleElectronFlatPt1p5To8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronFlatPt1p5To8')),
2323 (
'DoubleMuFlatPt1p5To8Dxy100GunProducer_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt1p5To8Dxy100')),
2324 (
'DoubleMuFlatPt2To100Dxy100GunProducer_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt2To100Dxy100')),
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)