1 from copy
import copy, deepcopy
2 from collections
import OrderedDict
3 from .MatrixUtil
import merge, Kby, Mby
6 U2000by1={
'--relval':
'2000,1'}
77 numWFConflict = [[14400,14800],
86 for year
in upgradeKeys:
87 for i
in range(0,len(upgradeKeys[year])):
88 numWFtmp = numWFStart[year]
if i==0
else (numWFAll[year][i-1] + numWFSkip)
89 for conflict
in numWFConflict:
90 if numWFtmp>=conflict[0]
and numWFtmp<conflict[1]:
91 numWFtmp = conflict[1]
93 numWFAll[year].
append(numWFtmp)
100 preventReuseKeyword =
'NOREUSE' 109 if not step
in self.
steps:
116 raise ValueError(
"Special workflow offset must be between 0.0 and 1.0")
118 stepName = step + self.
suffix + extra
121 stepNamePU = step +
'PU' + self.
suffix + extra
124 for step
in self.
steps:
130 def setup(self, stepDict, k, properties):
131 for step
in self.
steps:
138 def setup_(self, step, stepName, stepDict, k, properties):
140 def setupPU_(self, step, stepName, stepDict, k, properties):
142 def workflow(self, workflows, num, fragment, stepList, key, hasHarvest):
143 if self.condition(fragment, stepList, key, hasHarvest):
144 self.workflow_(workflows, num, fragment, stepList, key)
145 def workflow_(self, workflows, num, fragment, stepList, key):
146 fragmentTmp = [fragment, key]
148 workflows[num+self.
offset] = [ fragmentTmp, stepList ]
149 def condition(self, fragment, stepList, key, hasHarvest):
152 if "Sim" in stepName:
153 stepDict[stepName][k] =
None 154 if "Gen" in stepName:
155 stepDict[stepName][k] =
None 156 upgradeWFs = OrderedDict()
159 def setup_(self, step, stepName, stepDict, k, properties):
160 cust=properties.get(
'Custom',
None)
161 era=properties.get(
'Era',
None)
162 modifier=properties.get(
'ProcessModifier',
None)
163 if cust
is not None: stepDict[stepName][k][
'--customise']=cust
165 stepDict[stepName][k][
'--era']=era
166 if modifier
is not None: stepDict[stepName][k][
'--procModifier']=modifier
167 def condition(self, fragment, stepList, key, hasHarvest):
174 'GenSimHLBeamSpot14',
175 'GenSimHLBeamSpotHGCALCloseBy',
188 'HARVESTNanoFakeHLT',
212 'HARVESTNanoFakeHLT',
226 def setup_(self, step, stepName, stepDict, k, properties):
227 if stepDict[step][k] !=
None:
229 stepDict[stepName][k] =
None 230 if 'RecoNano' in step:
231 stepDict[stepName][k] =
merge([{
'--filein':
'file:step3.root',
'--secondfilein':
'file:step2.root'}, stepDict[step][k]])
233 stepDict[stepName][k] =
merge([{
'-s': re.sub(
',HLT.*',
'', stepDict[step][k][
'-s'])}, stepDict[step][k]])
234 def condition(self, fragment, stepList, key, hasHarvest):
235 if (
'TTbar_14TeV' in fragment
and '2021' == key):
236 stepList.insert(stepList.index(
'Digi_DigiNoHLT_2021')+1,
'HLTRun3_2021')
237 return (
'TTbar_14TeV' in fragment
and '2021' == key)
246 suffix =
'_DigiNoHLT',
255 steps = steps + [
"ALCA",
"Nano"]
256 super().
__init__(steps, PU, suffix, offset)
257 def condition(self, fragment, stepList, key, hasHarvest):
258 result = (fragment==
"TTbar_13" or fragment==
"TTbar_14TeV" or 'Hydjet' in fragment)
and not 'PU' in key
and hasHarvest
and self.
condition_(fragment, stepList, key, hasHarvest)
262 def setup_(self, step, stepName, stepDict, k, properties):
264 if 'ALCA' in step
or 'Nano'==step:
265 stepDict[stepName][k] =
None 266 self.
setup__(step, stepName, stepDict, k, properties)
268 def setup__(self, step, stepName, stepDict, k, properties):
271 class UpgradeWorkflow_trackingOnly(UpgradeWorkflowTracking):
272 def setup__(self, step, stepName, stepDict, k, properties):
273 if 'Reco' in step: stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
274 elif 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@trackingOnlyDQM'}, stepDict[step][k]])
276 def condition(self, fragment, stepList, key, hasHarvest):
277 result = (fragment==
"TTbar_13" or fragment==
"TTbar_14TeV")
and hasHarvest
and self.
condition_(fragment, stepList, key, hasHarvest)
293 'HARVESTNanoFakeHLT',
305 'HARVESTNanoFakeHLT',
309 suffix =
'_trackingOnly',
312 upgradeWFs[
'trackingOnly'].step3 = {
313 '-s':
'RAW2DIGI,RECO:reconstruction_trackingOnly,VALIDATION:@trackingOnlyValidation,DQM:@trackingOnlyDQM',
314 '--datatier':
'GEN-SIM-RECO,DQMIO',
315 '--eventcontent':
'RECOSIM,DQM',
318 step3_trackingOnly = upgradeWFs[
'trackingOnly'].step3
321 def setup__(self, step, stepName, stepDict, k, properties):
322 if 'Reco' in step
and stepDict[step][k][
'--era']==
'Run2_2017':
323 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2017_trackingRun2'}, stepDict[step][k]])
332 suffix =
'_trackingRun2',
337 def setup__(self, step, stepName, stepDict, k, properties):
338 if 'Reco' in step
and stepDict[step][k][
'--era']==
'Run2_2017':
339 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2017_trackingRun2'}, self.
step3, stepDict[step][k]])
340 elif 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@trackingOnlyDQM'}, stepDict[step][k]])
351 suffix =
'_trackingOnlyRun2',
354 upgradeWFs[
'trackingOnlyRun2'].step3 = upgradeWFs[
'trackingOnly'].step3
357 def setup__(self, step, stepName, stepDict, k, properties):
358 if 'Reco' in step
and stepDict[step][k][
'--era']==
'Run2_2017':
359 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2017_trackingLowPU'}, stepDict[step][k]])
368 suffix =
'_trackingLowPU',
373 def setup__(self, step, stepName, stepDict, k, properties):
374 if 'Reco' in step: stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
376 elif 'ALCA' in step: stepDict[stepName][k] =
None 377 elif 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM'}, stepDict[step][k]])
379 return (
'2022' in key
or '2023' in key
or '2024' in key
or '2026' in key
or 'HI' in key)
and (
'FS' not in key)
391 'HARVESTNanoFakeHLT',
396 suffix =
'_pixelTrackingOnly',
399 upgradeWFs[
'pixelTrackingOnly'].step3 = {
400 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
401 '--datatier':
'GEN-SIM-RECO,DQMIO',
402 '--eventcontent':
'RECOSIM,DQM',
406 def setup__(self, step, stepName, stepDict, k, properties):
407 if 'Digi' in step: stepDict[stepName][k] =
merge([self.
step2, stepDict[step][k]])
408 if 'Reco' in step: stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
410 return (
'2017' in key
or '2021' in key
or '2023' in key)
and (
'FS' not in key)
422 suffix =
'_trackingMkFit',
425 upgradeWFs[
'trackingMkFit'].step2 = {
426 '--customise':
'RecoTracker/MkFit/customizeHLTIter0ToMkFit.customizeHLTIter0ToMkFit' 428 upgradeWFs[
'trackingMkFit'].step3 = {
429 '--procModifiers':
'trackingMkFitDevel' 434 def setup_(self, step, stepName, stepDict, k, properties):
436 if 'ALCA' in step
or 'Nano'==step:
437 stepDict[stepName][k] =
None 438 elif 'Reco' in step
or 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'--procModifiers':
'seedingDeepCore'}, stepDict[step][k]])
439 def condition(self, fragment, stepList, key, hasHarvest):
440 result = (fragment==
"QCD_Pt_1800_2400_14" or fragment==
"TTbar_14TeV" )
and (
'2021' in key
or '2024' in key)
and hasHarvest
453 'HARVESTNanoFakeHLT',
465 'HARVESTNanoFakeHLT',
467 suffix =
'_seedingDeepCore',
473 def setup__(self, step, stepName, stepDict, k, properties):
474 if 'Reco' in step: stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
485 suffix =
'_displacedRegional',
488 upgradeWFs[
'displacedRegional'].step3 = {
489 '--procModifiers':
'displacedRegionalTracking' 494 def setup_(self, step, stepName, stepDict, k, properties):
495 stepDict[stepName][k] =
merge([{
'--procModifiers':
'vectorHits'}, stepDict[step][k]])
496 def condition(self, fragment, stepList, key, hasHarvest):
497 return (fragment==
"TTbar_14TeV" or fragment==
"SingleMuPt10Extended")
and '2026' in key
507 suffix =
'_vectorHits',
513 def __init__(self, reco = {}, harvest = {}, **kwargs):
515 super(UpgradeWorkflow_weightedVertex, self).
__init__(
526 'HARVESTNanoFakeHLT',
538 'HARVESTNanoFakeHLT',
544 def setup_(self, step, stepName, stepDict, k, properties):
547 mod = {
'--procModifiers':
'weightedVertexing,vertexInBlocks',
'--datatier':
'GEN-SIM-RECO,DQMIO',
548 '--eventcontent':
'RECOSIM,DQM'}
549 stepDict[stepName][k] =
merge([mod,self.
step3, stepDict[step][k]])
550 if 'HARVEST' in step:
551 stepDict[stepName][k] =
merge([self.
step4,stepDict[step][k]])
553 def condition(self, fragment, stepList, key, hasHarvest):
556 (
'2021' in key
and fragment ==
"TTbar_14TeV" and 'FS' not in key),
557 (
'2024' in key
and fragment ==
"TTbar_14TeV"),
558 (
'2026' in key
and fragment ==
"TTbar_14TeV")
560 result =
any(selected)
and hasHarvest
566 suffix =
'_weightedVertex',
570 upgradeWFs[
'weightedVertex'].step3 = {}
571 upgradeWFs[
'weightedVertex'].step4 = {}
574 suffix =
'_weightedVertexTrackingOnly',
578 upgradeWFs[
'weightedVertexTrackingOnly'].step3 = {
579 '-s':
'RAW2DIGI,RECO:reconstruction_trackingOnly,VALIDATION:@trackingOnlyValidation,DQM:@trackingOnlyDQM',
580 '--datatier':
'GEN-SIM-RECO,DQMIO',
581 '--eventcontent':
'RECOSIM,DQM',
584 upgradeWFs[
'weightedVertexTrackingOnly'].step4 = {
585 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' 590 def setup_(self, step, stepName, stepDict, k, properties):
591 if 'RecoGlobal' in step:
592 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
593 if 'HARVESTGlobal' in step:
594 stepDict[stepName][k] =
merge([self.
step4, stepDict[step][k]])
595 def condition(self, fragment, stepList, key, hasHarvest):
596 return (fragment==
"TTbar_14TeV" or 'CloseByPGun_CE' in fragment)
and '2026' in key
606 suffix =
'_ticl_clue3D',
609 upgradeWFs[
'ticl_clue3D'].step3 = {
'--procModifiers':
'clue3D'}
610 upgradeWFs[
'ticl_clue3D'].step4 = {
'--procModifiers':
'clue3D'}
613 def setup_(self, step, stepName, stepDict, k, properties):
614 if 'RecoGlobal' in step:
615 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
616 if 'HARVESTGlobal' in step:
617 stepDict[stepName][k] =
merge([self.
step4, stepDict[step][k]])
618 def condition(self, fragment, stepList, key, hasHarvest):
619 return (fragment==
"TTbar_14TeV" or 'CloseByPGun_CE' in fragment)
and '2026' in key
629 suffix =
'_ticl_FastJet',
632 upgradeWFs[
'ticl_FastJet'].step3 = {
'--procModifiers':
'fastJetTICL'}
633 upgradeWFs[
'ticl_FastJet'].step4 = {
'--procModifiers':
'fastJetTICL'}
636 def setup_(self, step, stepName, stepDict, k, properties):
637 if 'RecoGlobal' in step:
638 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
639 if 'HARVESTGlobal' in step:
640 stepDict[stepName][k] =
merge([self.
step4, stepDict[step][k]])
641 def condition(self, fragment, stepList, key, hasHarvest):
642 return (fragment==
"TTbar_14TeV" or 'CloseByP' in fragment
or 'Eta1p7_2p7' in fragment)
and '2026' in key
655 upgradeWFs[
'ticl_v3'].step3 = {
'--procModifiers':
'ticl_v3'}
656 upgradeWFs[
'ticl_v3'].step4 = {
'--procModifiers':
'ticl_v3'}
661 def setup_(self, step, stepName, stepDict, k, properties):
662 stepDict[stepName][k] =
merge([{
'--procModifiers':
'trackdnn'}, stepDict[step][k]])
664 def condition(self, fragment, stepList, key, hasHarvest):
665 return fragment==
"TTbar_14TeV" and '2021' in key
679 suffix =
'_trackdnn',
686 def setup_(self, step, stepName, stepDict, k, properties):
688 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
689 def condition(self, fragment, stepList, key, hasHarvest):
690 return (fragment==
"TTbar_14TeV" or fragment==
"QCD_FlatPt_15_3000HS_14")
and '2021PU' in key
708 upgradeWFs[
'mlpf'].step3 = {
709 '--datatier':
'GEN-SIM-RECO,RECOSIM,MINIAODSIM,NANOAODSIM,DQMIO',
710 '--eventcontent':
'FEVTDEBUGHLT,RECOSIM,MINIAODSIM,NANOEDMAODSIM,DQM',
711 '--procModifiers':
'mlpf' 717 def setup_(self, step, stepName, stepDict, k, properties):
719 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
720 def condition(self, fragment, stepList, key, hasHarvest):
721 return (fragment==
"ZEE_14" or fragment==
"TTbar_14TeV" or fragment==
"WprimeTolNu_M3000_13TeV_pythia8" 722 or fragment==
"DisplacedSUSY_stopToBottom_M_300_1000mm_13" or fragment==
"RunEGamma2018D" )
737 suffix =
'_ecalDeepSC',
740 upgradeWFs[
'ecalDeepSC'].step3 = {
741 '--datatier':
'RECOSIM,MINIAODSIM,NANOAODSIM,DQMIO',
742 '--eventcontent':
'RECOSIM,MINIAODSIM,NANOEDMAODSIM,DQM',
743 '--procModifiers':
'ecal_deepsc' 749 def setup_(self, step, stepName, stepDict, k, properties):
751 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
752 def condition(self, fragment, stepList, key, hasHarvest):
753 return '2018' in key
and "SingleGamma" in fragment
764 suffix =
'_photonDRN',
767 upgradeWFs[
'photonDRN'].step3 = {
768 '--procModifiers':
'enableSonicTriton,photonDRN' 781 def __init__(self, digi = {}, reco = {}, mini = {}, harvest = {}, **kwargs):
783 super(PatatrackWorkflow, self).
__init__(
796 'HARVESTNanoFakeHLT',
814 'HARVESTNanoFakeHLT',
825 '--datatier':
'GEN-SIM-RECO,DQMIO',
826 '--eventcontent':
'RECOSIM,DQM' 831 def condition(self, fragment, stepList, key, hasHarvest):
834 (
'2018' in key
and fragment ==
"TTbar_13"),
835 (
'2021' in key
and fragment ==
"TTbar_14TeV" and 'FS' not in key),
836 (
'2023' in key
and fragment ==
"TTbar_14TeV" and 'FS' not in key),
837 (
'2018' in key
and fragment ==
"ZMM_13"),
838 (
'2021' in key
and fragment ==
"ZMM_14" and 'FS' not in key),
839 (
'2023' in key
and fragment ==
"ZMM_14" and 'FS' not in key),
840 (
'2026D88' in key
and fragment ==
"TTbar_14TeV" and "PixelOnly" in self.
suffix),
841 ((
'HI' in key)
and 'Hydjet' in fragment
and "PixelOnly" in self.
suffix )
843 result =
any(selected)
and hasHarvest
847 def setup_(self, step, stepName, stepDict, k, properties):
849 if 'ALCA' in step
or 'Nano'==step:
850 stepDict[stepName][k] =
None 853 stepDict[stepName][k] =
None 855 stepDict[stepName][k] =
merge([self.
__digi, stepDict[step][k]])
858 stepDict[stepName][k] =
None 860 stepDict[stepName][k] =
merge([self.
__reco, stepDict[step][k]])
861 elif 'MiniAOD' in step:
863 stepDict[stepName][k] =
None 865 stepDict[stepName][k] =
merge([self.
__mini, stepDict[step][k]])
866 elif 'HARVEST' in step:
868 stepDict[stepName][k] =
None 870 stepDict[stepName][k] =
merge([self.
__harvest, stepDict[step][k]])
881 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
882 '--procModifiers':
'pixelNtupletFit' 885 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' 887 suffix =
'Patatrack_PixelOnlyCPU',
898 '--procModifiers':
'gpu' 901 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
902 '--procModifiers':
'pixelNtupletFit,gpu' 905 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' 907 suffix =
'Patatrack_PixelOnlyGPU',
918 '--accelerators':
'gpu-nvidia',
919 '--procModifiers':
'gpu' 922 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
923 '--accelerators':
'gpu-nvidia',
924 '--procModifiers':
'pixelNtupletFit,gpuValidation' 927 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM',
928 '--procModifiers':
'gpuValidation' 930 suffix =
'Patatrack_PixelOnlyGPU_Validation',
940 '--procModifiers':
'gpu' 943 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly',
944 '--procModifiers':
'pixelNtupletFit,gpu',
945 '--customise' :
'RecoTracker/Configuration/customizePixelOnlyForProfiling.customizePixelOnlyForProfilingGPUOnly' 948 suffix =
'Patatrack_PixelOnlyGPU_Profiling',
961 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
962 '--procModifiers':
'pixelNtupletFit',
963 '--customise' :
'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 966 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' 968 suffix =
'Patatrack_PixelOnlyTripletsCPU',
979 '--procModifiers':
'gpu' 982 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
983 '--procModifiers':
'pixelNtupletFit,gpu',
984 '--customise':
'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 987 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' 989 suffix =
'Patatrack_PixelOnlyTripletsGPU',
1000 '--accelerators':
'gpu-nvidia',
1001 '--procModifiers':
'gpu' 1004 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
1005 '--accelerators':
'gpu-nvidia',
1006 '--procModifiers':
'pixelNtupletFit,gpuValidation',
1007 '--customise':
'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 1010 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM',
1011 '--procModifiers':
'gpuValidation',
1013 suffix =
'Patatrack_PixelOnlyTripletsGPU_Validation',
1023 '--procModifiers':
'gpu' 1026 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly',
1027 '--procModifiers':
'pixelNtupletFit,gpu',
1028 '--customise':
'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets,RecoTracker/Configuration/customizePixelOnlyForProfiling.customizePixelOnlyForProfilingGPUOnly' 1031 suffix =
'Patatrack_PixelOnlyTripletsGPU_Profiling',
1044 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly',
1047 '-s':
'HARVESTING:@ecalOnlyValidation+@ecal' 1049 suffix =
'Patatrack_ECALOnlyCPU',
1060 '--procModifiers':
'gpu' 1063 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly',
1064 '--procModifiers':
'gpu' 1067 '-s':
'HARVESTING:@ecalOnlyValidation+@ecal' 1069 suffix =
'Patatrack_ECALOnlyGPU',
1080 '--accelerators':
'gpu-nvidia',
1081 '--procModifiers':
'gpu' 1084 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly',
1085 '--accelerators':
'gpu-nvidia',
1086 '--procModifiers':
'gpuValidation' 1089 '-s':
'HARVESTING:@ecalOnlyValidation+@ecal' 1091 suffix =
'Patatrack_ECALOnlyGPU_Validation',
1101 '--procModifiers':
'gpu' 1104 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly',
1105 '--procModifiers':
'gpu',
1106 '--customise' :
'RecoLocalCalo/Configuration/customizeEcalOnlyForProfiling.customizeEcalOnlyForProfilingGPUOnly' 1109 suffix =
'Patatrack_ECALOnlyGPU_Profiling',
1122 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only',
1125 '-s':
'HARVESTING:@hcalOnlyValidation+@hcalOnly+@hcal2Only' 1127 suffix =
'Patatrack_HCALOnlyCPU',
1138 '--procModifiers':
'gpu' 1141 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only',
1142 '--procModifiers':
'gpu' 1145 '-s':
'HARVESTING:@hcalOnlyValidation+@hcalOnly+@hcal2Only' 1147 suffix =
'Patatrack_HCALOnlyGPU',
1158 '--accelerators':
'gpu-nvidia',
1159 '--procModifiers':
'gpu' 1162 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only',
1163 '--accelerators':
'gpu-nvidia',
1164 '--procModifiers':
'gpuValidation' 1167 '-s':
'HARVESTING:@hcalOnlyValidation+@hcal' 1169 suffix =
'Patatrack_HCALOnlyGPU_Validation',
1179 '--procModifiers':
'gpu' 1182 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly',
1183 '--procModifiers':
'gpu',
1184 '--customise' :
'RecoLocalCalo/Configuration/customizeHcalOnlyForProfiling.customizeHcalOnlyForProfilingGPUOnly' 1187 suffix =
'Patatrack_HCALOnlyGPU_Profiling',
1200 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1201 '--procModifiers':
'pixelNtupletFit' 1204 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' 1206 suffix =
'Patatrack_AllCPU',
1217 '--procModifiers':
'gpu' 1220 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1221 '--procModifiers':
'pixelNtupletFit,gpu' 1224 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' 1226 suffix =
'Patatrack_AllGPU',
1237 '--accelerators':
'gpu-nvidia',
1238 '--procModifiers':
'gpu' 1241 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1242 '--accelerators':
'gpu-nvidia',
1243 '--procModifiers':
'pixelNtupletFit,gpuValidation' 1246 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only',
1247 '--procModifiers':
'gpuValidation' 1249 suffix =
'Patatrack_AllGPU_Validation',
1267 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1268 '--procModifiers':
'pixelNtupletFit' 1271 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' 1273 suffix =
'Patatrack_AllTripletsCPU',
1284 '--procModifiers':
'gpu' 1287 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1288 '--procModifiers':
'pixelNtupletFit,gpu' 1291 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' 1293 suffix =
'Patatrack_AllTripletsGPU',
1304 '--accelerators':
'gpu-nvidia',
1305 '--procModifiers':
'gpu' 1308 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1309 '--accelerators':
'gpu-nvidia',
1310 '--procModifiers':
'pixelNtupletFit,gpuValidation' 1313 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only',
1314 '--procModifiers':
'gpuValidation' 1316 suffix =
'Patatrack_AllTripletsGPU_Validation',
1335 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1336 '--procModifiers':
'pixelNtupletFit' 1341 suffix =
'Patatrack_FullRecoCPU',
1352 '--procModifiers':
'gpu' 1356 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1357 '--procModifiers':
'pixelNtupletFit,gpu' 1362 suffix =
'Patatrack_FullRecoGPU',
1373 '--accelerators':
'gpu-nvidia',
1374 '--procModifiers':
'gpu' 1378 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1379 '--accelerators':
'gpu-nvidia',
1380 '--procModifiers':
'pixelNtupletFit,gpuValidation' 1385 suffix =
'Patatrack_FullRecoGPU_Validation',
1399 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1400 '--procModifiers':
'pixelNtupletFit',
1401 '--customise' :
'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 1406 suffix =
'Patatrack_FullRecoTripletsCPU',
1413 '--datatier':
'GEN-SIM-RAW',
1414 '--eventcontent':
'RAWSIM',
1418 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM',
1419 '--procModifiers':
'pixelNtupletFit',
1420 '--customise' :
'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets',
1421 '--datatier':
'AODSIM',
1422 '--eventcontent':
'AODSIM',
1425 suffix =
'Patatrack_FullRecoTripletsCPUProdLike',
1436 '--procModifiers':
'gpu' 1440 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1441 '--procModifiers':
'pixelNtupletFit,gpu',
1442 '--customise':
'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 1447 suffix =
'Patatrack_FullRecoTripletsGPU',
1454 '--procModifiers':
'gpu',
1455 '--datatier':
'GEN-SIM-RAW',
1456 '--eventcontent':
'RAWSIM',
1460 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM',
1461 '--procModifiers':
'pixelNtupletFit,gpu',
1462 '--customise':
'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets',
1463 '--datatier':
'AODSIM',
1464 '--eventcontent':
'AODSIM',
1467 suffix =
'Patatrack_FullRecoTripletsGPUProdLike',
1478 '--accelerators':
'gpu-nvidia',
1479 '--procModifiers':
'gpu' 1483 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1484 '--accelerators':
'gpu-nvidia',
1485 '--procModifiers':
'pixelNtupletFit,gpuValidation',
1486 '--customise' :
'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 1491 suffix =
'Patatrack_FullRecoTripletsGPU_Validation',
1498 def setup_(self, step, stepName, stepDict, k, properties):
1499 if 'GenSimHLBeamSpot14' in step:
1500 stepDict[stepName][k] =
merge([{
'--eventcontent':
'RAWSIM',
'--datatier':
'GEN-SIM'},stepDict[step][k]])
1501 elif 'Digi' in step
and 'Trigger' not in step:
1502 stepDict[stepName][k] =
merge([{
'-s':
'DIGI,L1,DIGI2RAW,HLT:@relval2022',
'--datatier':
'GEN-SIM-RAW',
'--eventcontent':
'RAWSIM'}, stepDict[step][k]])
1503 elif 'DigiTrigger' in step:
1504 stepDict[stepName][k] =
merge([{
'-s':
'DIGI,L1TrackTrigger,L1,DIGI2RAW,HLT:@fake2',
'--datatier':
'GEN-SIM-RAW',
'--eventcontent':
'RAWSIM'}, stepDict[step][k]])
1505 elif 'Reco' in step:
1506 stepDict[stepName][k] =
merge([{
'-s':
'RAW2DIGI,L1Reco,RECO,RECOSIM',
'--datatier':
'AODSIM',
'--eventcontent':
'AODSIM'}, stepDict[step][k]])
1507 elif 'MiniAOD' in step:
1509 stepDict[stepName][k] = deepcopy(stepDict[step][k])
1510 elif 'ALCA' in step
or 'HARVEST' in step:
1512 stepDict[stepName][k] =
None 1514 stepDict[stepName][k] =
merge([{
'--filein':
'file:step4.root',
'-s':
'NANO',
'--datatier':
'NANOAODSIM',
'--eventcontent':
'NANOEDMAODSIM'}, stepDict[step][k]])
1516 return fragment==
"TTbar_14TeV" and (
'2026' in key
or '2021' in key
or '2023' in key)
1519 'GenSimHLBeamSpot14',
1531 'HARVESTNanoFakeHLT',
1538 'GenSimHLBeamSpot14',
1550 'HARVESTNanoFakeHLT',
1556 suffix =
'_ProdLike',
1561 def __init__(self, suffix, offset, fixedPU,
1564 'GenSimHLBeamSpot14',
1576 'HARVESTNanoFakeHLT',
1582 super(UpgradeWorkflow_ProdLikeRunningPU, self).
__init__(steps, PU, suffix, offset)
1584 def setupPU_(self, step, stepName, stepDict, k, properties):
1586 if stepDict[stepName][k]
is not None and '--pileup' in stepDict[stepName][k]:
1587 stepDict[stepName][k][
'--pileup'] =
'AVE_' +
str(self.
__fixedPU) +
'_BX_25ns' 1590 return (fragment==
"TTbar_14TeV")
and ((
'2026' in key)
or (
'2021' in key
and self.
__fixedPU<=100))
1597 suffix =
'_ProdLikePU10',
1603 suffix =
'_ProdLikePU20',
1609 suffix =
'_ProdLikePU30',
1615 suffix =
'_ProdLikePU40',
1621 suffix =
'_ProdLikePU50',
1627 suffix =
'_ProdLikePU55',
1633 suffix =
'_ProdLikePU60',
1639 suffix =
'_ProdLikePU65',
1645 suffix =
'_ProdLikePU70',
1651 suffix =
'_ProdLikePU80',
1657 suffix =
'_ProdLikePU90',
1663 suffix =
'_ProdLikePU100',
1669 suffix =
'_ProdLikePU120',
1675 suffix =
'_ProdLikePU140',
1681 suffix =
'_ProdLikePU160',
1687 suffix =
'_ProdLikePU180',
1693 def setup_(self, step, stepName, stepDict, k, properties):
1694 if 'HARVEST' in step:
1695 stepDict[stepName][k] =
merge([{
'--filein':
'file:step3_inDQM.root'}, stepDict[step][k]])
1697 stepDict[stepName][k] =
merge([stepDict[step][k]])
1699 return fragment==
"TTbar_14TeV" and '2026' in key
1702 'GenSimHLBeamSpot14',
1709 'GenSimHLBeamSpot14',
1715 suffix =
'_HLT75e33',
1720 def setup_(self, step, stepName, stepDict, k, properties):
1721 if 'DigiTrigger' in step:
1722 stepDict[stepName][k] =
merge([{
'-s':
'DIGI:pdigi_valid,L1TrackTrigger,L1,DIGI2RAW,HLT:@relval2026'}, stepDict[step][k]])
1724 return fragment==
"TTbar_14TeV" and '2026' in key
1732 suffix =
'_HLTwDIGI75e33',
1737 def setup_(self, step, stepName, stepDict, k, properties):
1738 if 'GenSim' in step:
1739 custNew =
"SimG4Core/Application/NeutronBGforMuonsXS_cff.customise" 1741 custNew =
"SLHCUpgradeSimulations/Configuration/customise_mixing.customise_Mix_LongLived_Neutrons" 1742 stepDict[stepName][k] = deepcopy(stepDict[step][k])
1743 if '--customise' in stepDict[stepName][k].
keys():
1744 stepDict[stepName][k][
'--customise'] +=
","+custNew
1746 stepDict[stepName][k][
'--customise'] = custNew
1753 'GenSimHLBeamSpot14',
1761 suffix =
'_Neutron',
1765 upgradeWFs[
'Neutron'].neutronKeys = [x
for x
in upgradeKeys[2026]
if 'PU' not in x]
1766 upgradeWFs[
'Neutron'].neutronFrags = [
'ZMM_14',
'MinBias_14TeV']
1769 def setup_(self, step, stepName, stepDict, k, properties):
1770 stepDict[stepName][k] =
merge([{
'--procModifiers':
'run2_HECollapse_2018'}, stepDict[step][k]])
1772 return fragment==
"TTbar_13" and '2018' in key
1790 suffix =
'_heCollapse',
1796 def __init__(self, digi = {}, reco = {}, harvest = {}, **kwargs):
1798 super(UpgradeWorkflow_ecalDevel, self).
__init__(
1816 def setup_(self, step, stepName, stepDict, k, properties):
1818 mods = {
'--era': stepDict[step][k][
'--era']+
',phase2_ecal_devel'}
1820 mods[
'-s'] =
'DIGI:pdigi_valid,DIGI2RAW' 1822 elif 'Reco' in step:
1823 mods[
'-s'] =
'RAW2DIGI,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly' 1824 mods[
'--datatier'] =
'GEN-SIM-RECO,DQMIO' 1825 mods[
'--eventcontent'] =
'FEVTDEBUGHLT,DQM' 1827 elif 'HARVEST' in step:
1828 mods[
'-s'] =
'HARVESTING:@ecalOnlyValidation+@ecal' 1830 stepDict[stepName][k] =
merge([mods, stepDict[step][k]])
1833 stepDict[stepName][k] =
None 1836 return fragment==
"TTbar_14TeV" and '2026' in key
1840 suffix =
'_ecalDevel',
1846 reco = {
'--procModifiers':
'gpu'},
1847 suffix =
'_ecalDevelGPU',
1853 def __init__(self, suffix, offset, ecalMod,
1857 'GenSimHLBeamSpot14',
1858 'GenSimHLBeamSpotHGCALCloseBy',
1865 'GenSimHLBeamSpot14',
1866 'GenSimHLBeamSpotHGCALCloseBy',
1870 super(UpgradeWorkflow_ECalComponent, self).
__init__(steps, PU, suffix, offset)
1873 def setup_(self, step, stepName, stepDict, k, properties):
1874 if 'Sim' in step
or 'Digi' in step:
1876 stepDict[stepName][k] =
merge([{
'--procModifiers':self.
__ecalMod},stepDict[step][k]])
1879 return (
'2021' in key
or '2023' in key
or '2026' in key)
1882 suffix =
'_ecalComponent',
1884 ecalMod =
'ecal_component',
1888 suffix =
'_ecalComponentFSW',
1890 ecalMod =
'ecal_component_finely_sampled_waveforms',
1894 def setup_(self, step, stepName, stepDict, k, properties):
1895 myGT=stepDict[step][k][
'--conditions']
1897 stepDict[stepName][k] =
merge([{
'-n':
'1',
'--magField':
'0T',
'--conditions':myGT}, stepDict[step][k]])
1898 def setupPU_(self, step, stepName, stepDict, k, properties):
1900 stepDict[stepName][k] =
merge([{
'-n':
'1'}, stepDict[step][k]])
1902 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)
1914 'HARVESTNanoFakeHLT',
1926 'HARVESTNanoFakeHLT',
1933 def setup_(self, step, stepName, stepDict, k, properties):
1934 if 'Reco' in step
and 'Run2_2018' in stepDict[step][k][
'--era']:
1935 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2018,bParking'}, stepDict[step][k]])
1937 return fragment==
"TTbar_13" and '2018' in key
1944 suffix =
'_ParkingBPH',
1950 def setup_(self, step, stepName, stepDict, k, properties):
1952 thisStep = stepDict[step][k][
"-s"]
1954 if "DQM:" in thisStep:
1955 stepDict[stepName][k] =
merge([{
'-s': thisStep.replace(
"DQM:",
"DQM:@heavyFlavor+")}, stepDict[step][k]])
1956 elif "DQM" in thisStep:
1957 stepDict[stepName][k] =
merge([{
'-s': thisStep.replace(
"DQM",
"DQM:@heavyFlavor")}, stepDict[step][k]])
1959 stepDict[stepName][k] =
merge([{
'-s': thisStep +
",DQM:@heavyFlavor"}, stepDict[step][k]])
1962 return any(frag
in fragment
for frag
in self.
__frags)
1972 suffix =
'_HeavyFlavor',
1978 def setup_(self, step, stepName, stepDict, k, properties):
1980 stepDict[stepName][k] =
merge([{
'--customise':
'PhysicsTools/NanoAOD/custom_jme_cff.PrepJMECustomNanoAOD_MC'}, stepDict[step][k]])
1982 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)
1990 suffix =
'_JMENano',
1997 def setup_(self, step, stepName, stepDict, k, properties):
1998 if 'Digi' in step
or 'Reco' in step:
1999 stepDict[stepName][k] =
merge([{
'--customise':
'SLHCUpgradeSimulations/Configuration/aging.customise_aging_'+self.
lumi}, stepDict[step][k]])
2001 return '2026' in key
2020 suffix =
'Aging1000',
2023 upgradeWFs[
'Aging1000'].lumi =
'1000' 2024 upgradeWFs[
'Aging3000'] = deepcopy(upgradeWFs[
'Aging1000'])
2025 upgradeWFs[
'Aging3000'].suffix =
'Aging3000' 2026 upgradeWFs[
'Aging3000'].offset = 0.103
2027 upgradeWFs[
'Aging3000'].lumi =
'3000' 2034 def setup_(self, step, stepName, stepDict, k, properties):
2036 stepDict[stepName][k] =
merge([{
'--customise':
'SimTracker/SiPhase2Digitizer/customizeForOTInefficiency.customizeSiPhase2OTInefficiency'+self.
percent+
'Percent'}, stepDict[step][k]])
2038 return fragment==
"TTbar_14TeV" and '2026' in key
2049 suffix =
'_OTInefficiency',
2052 upgradeWFs[
'OTInefficiency'].percent =
'Zero' 2055 upgradeWFs[
'OTInefficiency1PC'] = deepcopy(upgradeWFs[
'OTInefficiency'])
2056 upgradeWFs[
'OTInefficiency1PC'].suffix =
'_OTInefficiency1PC' 2057 upgradeWFs[
'OTInefficiency1PC'].offset = 0.112
2058 upgradeWFs[
'OTInefficiency1PC'].percent =
'One' 2061 upgradeWFs[
'OTInefficiency5PC'] = deepcopy(upgradeWFs[
'OTInefficiency'])
2062 upgradeWFs[
'OTInefficiency5PC'].suffix =
'_OTInefficiency5PC' 2063 upgradeWFs[
'OTInefficiency5PC'].offset = 0.113
2064 upgradeWFs[
'OTInefficiency5PC'].percent =
'Five' 2067 upgradeWFs[
'OTInefficiency10PC'] = deepcopy(upgradeWFs[
'OTInefficiency'])
2068 upgradeWFs[
'OTInefficiency10PC'].suffix =
'_OTInefficiency10PC' 2069 upgradeWFs[
'OTInefficiency10PC'].offset = 0.114
2070 upgradeWFs[
'OTInefficiency10PC'].percent =
'Ten' 2076 def setup_(self, step, stepName, stepDict, k, properties):
2078 stepDict[stepName][k] =
merge([{
'--customise':
'SimTracker/SiPhase2Digitizer/customizeForPhase2TrackerSignalShape.customizeSiPhase2ITSignalShape'}, stepDict[step][k]])
2080 return '2026' in key
2091 suffix =
'_ITSignalShape',
2101 digiPremixLocalPileup = {
2102 "--filein":
"file:step1.root",
2103 "--pileup_input":
"file:step2.root" 2108 def setup_(self, step, stepName, stepDict, k, properties):
2110 stepDict[stepName][k] =
merge([stepDict[step][k]])
2111 def setupPU_(self, step, stepName, stepDict, k, properties):
2113 if "GenSim" in stepName:
2114 stepNamePmx = stepName.replace(
'GenSim',
'Premix')
2115 if not stepNamePmx
in stepDict: stepDict[stepNamePmx] = {}
2116 stepDict[stepNamePmx][k] =
merge([
2118 '-s':
'GEN,SIM,DIGI:pdigi_valid',
2119 '--datatier':
'PREMIX',
2120 '--eventcontent':
'PREMIX',
2121 '--procModifiers':
'premix_stage1' 2123 stepDict[stepName][k]
2125 if "ProdLike" in self.
suffix:
2126 stepDict[stepNamePmx][k] =
merge([{
'-s':
'GEN,SIM,DIGI'},stepDict[stepNamePmx][k]])
2128 elif "Digi" in step
or "Reco" in step:
2131 if d
is None:
return 2134 for s
in d[
"-s"].
split(
","):
2135 if s ==
"DIGI" or "DIGI:" in s:
2136 tmpsteps.extend([s,
"DATAMIX"])
2140 "--datamix" :
"PreMix",
2141 "--procModifiers":
"premix_stage2"},
2144 if "_PMXS1S2" in self.
suffix:
2145 d =
merge([digiPremixLocalPileup, d])
2146 elif "Reco" in step:
2147 if "--procModifiers" in d:
2148 d[
"--procModifiers"] +=
",premix_stage2" 2150 d[
"--procModifiers"] =
"premix_stage2" 2151 stepDict[stepName][k] = d
2157 filein = d[
"--filein"]
2158 m = re.search(
"step(?P<ind>\d+)_", filein)
2160 d[
"--filein"] = filein.replace(m.group(),
"step%d_"%(
int(m.group(
"ind"))+1))
2161 stepDict[stepName][k] = d
2167 if not any(y
in key
for y
in [
'2021',
'2023',
'2024',
'2026']):
2169 if self.
suffix.endswith(
"S1"):
2170 return "NuGun" in fragment
2172 def workflow_(self, workflows, num, fragment, stepList, key):
2173 fragmentTmp = fragment
2174 if self.
suffix.endswith(
"S1"):
2175 fragmentTmp =
'PREMIXUP' + key[2:].
replace(
"PU",
"").
replace(
"Design",
"") +
'_PU25' 2176 super(UpgradeWorkflowPremix,self).
workflow_(workflows, num, fragmentTmp, stepList, key)
2184 'GenSimHLBeamSpot14',
2212 'GenSimHLBeamSpot14',
2223 suffix =
'_PMXS1S2',
2228 def setupPU_(self, step, stepName, stepDict, k, properties):
2230 if '--pileup' in stepDict[stepName][k]:
2231 stepDict[stepName][k][
'--pileup'] =
'AVE_50_BX_25ns_m3p3' 2232 super(UpgradeWorkflowAdjustPU,self).
setupPU_(step, stepName, stepDict, k, properties)
2235 return super(UpgradeWorkflowAdjustPU,self).
condition(fragment, stepList, key, hasHarvest)
and '2026' in key
2241 'GenSimHLBeamSpot14',
2253 suffix =
'_PMXS1S2PR',
2258 def setup_(self, step, stepName, stepDict, k, properties):
2260 UpgradeWorkflowPremix.setup_(self, step, stepName, stepDict, k, properties)
2261 UpgradeWorkflow_ProdLike.setup_(self, step, stepName, stepDict, k, properties)
2266 for s
in d[
"-s"].
split(
","):
2267 if "DIGI:pdigi_valid" in s:
2268 tmpsteps.append(
"DIGI")
2272 "--eventcontent":
"PREMIXRAW"},
2274 stepDict[stepName][k] = d
2276 stepDict[stepName][k] =
merge([{
'--filein':
'file:step5.root',
'-s':
'NANO',
'--datatier':
'NANOAODSIM',
'--eventcontent':
'NANOEDMAODSIM'}, stepDict[step][k]])
2279 return UpgradeWorkflowPremix.condition(self, fragment, stepList, key, hasHarvest)
and UpgradeWorkflow_ProdLike.condition(self, fragment, stepList, key, hasHarvest)
2297 'HARVESTNanoFakeHLT',
2301 suffix =
'_PMXS2ProdLike',
2310 'GenSimHLBeamSpot14',
2324 'HARVESTNanoFakeHLT',
2328 suffix =
'_PMXS1S2ProdLike',
2333 def setup_(self, step, stepName, stepDict, k, properties):
2334 if 'HARVESTFastRun3' in step:
2335 stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@trackingOnlyDQM',
2337 '--era':
'Run3_FastSim',
2338 '--filein':
'file:step1_inDQM.root'}, stepDict[step][k]])
2340 stepDict[stepName][k] =
merge([stepDict[step][k]])
2342 return (
'2021FS' in key
or '2023FS' in key)
2353 suffix =
'_Run3FSTrackingOnly',
2358 def setup_(self, step, stepName, stepDict, k, properties):
2360 stepDict[stepName][k] =
merge([{
'-s':
'GEN,SIM,RECOBEFMIX',
2362 '--era':
'Run3_FastSim',
2363 '--eventcontent':
'FASTPU',
2364 '--datatier':
'GEN-SIM-RECO',
2365 '--relval':
'27000,3000'}, stepDict[step][k]])
2367 stepDict[stepName][k] =
None 2369 return (
'2021FS' in key
or '2023FS' in key)
and fragment==
"MinBias_14TeV" 2377 suffix =
'_Run3FSMBMixing',
2383 def setup_(self, step, stepName, stepDict, k, properties):
2384 if 'Run3' in stepDict[step][k][
'--era']
and 'Fast' not in stepDict[step][k][
'--era']:
2385 if '2023' in stepDict[step][k][
'--conditions']:
2386 stepDict[stepName][k] =
merge([{
'--geometry':
'DD4hepExtended2023'}, stepDict[step][k]])
2388 stepDict[stepName][k] =
merge([{
'--geometry':
'DD4hepExtended2021'}, stepDict[step][k]])
2389 elif 'Phase2' in stepDict[step][k][
'--era']:
2391 dd4hepGeom+=stepDict[step][k][
'--geometry']
2392 stepDict[stepName][k] =
merge([{
'--geometry' : dd4hepGeom,
'--procModifiers':
'dd4hep'}, stepDict[step][k]])
2394 return (
'2021' in key
or '2023' in key
or '2026' in key)
and (
'FS' not in key)
2399 'GenSimHLBeamSpot14',
2411 'HARVESTNanoFakeHLT',
2418 upgradeWFs[
'DD4hep'].allowReuse =
False 2423 def setup_(self, step, stepName, stepDict, k, properties):
2424 if 'Run3' in stepDict[step][k][
'--era']
and 'Fast' not in stepDict[step][k][
'--era']:
2425 stepDict[stepName][k] =
merge([{
'--conditions':
'auto:phase1_2022_realistic',
'--geometry':
'DB:Extended'}, stepDict[step][k]])
2427 return '2021' in key
and 'FS' not in key
2432 'GenSimHLBeamSpot14',
2444 'HARVESTNanoFakeHLT',
2448 suffix =
'_DD4hepDB',
2451 upgradeWFs[
'DD4hepDB'].allowReuse =
False 2454 def setup_(self, step, stepName, stepDict, k, properties):
2455 the_era = stepDict[step][k][
'--era']
2456 if 'Run3' in the_era
and '2023' not in the_era
and 'Fast' not in the_era
and "Pb" not in the_era:
2458 tmp_eras = the_era.split(
',')
2459 tmp_eras[tmp_eras.index(
"Run3")] =
'Run3_DDD' 2460 tmp_eras =
','.
join(tmp_eras)
2461 stepDict[stepName][k] =
merge([{
'--conditions':
'auto:phase1_2022_realistic_ddd',
'--geometry':
'DB:Extended',
'--era': tmp_eras}, stepDict[step][k]])
2463 return '2021' in key
and 'FS' not in key
2468 'GenSimHLBeamSpot14',
2480 'HARVESTNanoFakeHLT',
2487 upgradeWFs[
'DDDDB'].allowReuse =
False 2490 def setup_(self, step, stepName, stepDict, k, properties):
2491 stepDict[stepName][k] =
merge([{
'--procModifiers':
'allSonicTriton'}, stepDict[step][k]])
2493 return (fragment==
'TTbar_13' and '2021' in key) \
2494 or (fragment==
'TTbar_14TeV' and '2026' in key)
2499 'GenSimHLBeamSpot14',
2511 'HARVESTNanoFakeHLT',
2517 'GenSimHLBeamSpot14',
2529 'HARVESTNanoFakeHLT',
2532 suffix =
'_SonicTriton',
2537 offsets = [specialWF.offset
for specialType,specialWF
in upgradeWFs.items()]
2539 dups = set(x
for x
in offsets
if x
in seen
or seen.add(x))
2541 raise ValueError(
"Duplicate special workflow offsets not allowed: "+
','.
join([
str(x)
for x
in dups]))
2543 upgradeProperties = {}
2545 upgradeProperties[2017] = {
2547 'Geom' :
'DB:Extended',
2548 'GT' :
'auto:phase1_2017_realistic',
2549 'HLTmenu':
'@relval2017',
2550 'Era' :
'Run2_2017',
2551 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT',
'ALCA',
'Nano'],
2554 'Geom' :
'DB:Extended',
2555 'GT' :
'auto:phase1_2017_design',
2556 'HLTmenu':
'@relval2017',
2557 'Era' :
'Run2_2017',
2558 'BeamSpot':
'GaussSigmaZ4cm',
2559 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT'],
2562 'Geom' :
'DB:Extended',
2563 'GT' :
'auto:phase1_2018_realistic',
2564 'HLTmenu':
'@relval2018',
2565 'Era' :
'Run2_2018',
2566 'BeamSpot':
'Realistic25ns13TeVEarly2018Collision',
2567 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT',
'ALCA',
'Nano'],
2570 'Geom' :
'DB:Extended',
2571 'GT' :
'auto:phase1_2018_design',
2572 'HLTmenu':
'@relval2018',
2573 'Era' :
'Run2_2018',
2574 'BeamSpot':
'GaussSigmaZ4cm',
2575 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT'],
2578 'Geom' :
'DB:Extended',
2579 'GT' :
'auto:phase1_2022_realistic',
2580 'HLTmenu':
'@relval2022',
2582 'BeamSpot':
'Realistic25ns13p6TeVEOY2022Collision',
2583 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNanoFakeHLT',
'HARVESTNanoFakeHLT',
'ALCA'],
2586 'Geom' :
'DB:Extended',
2587 'GT' :
'auto:phase1_2022_design',
2588 'HLTmenu':
'@relval2022',
2590 'BeamSpot':
'GaussSigmaZ4cm',
2591 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNanoFakeHLT',
'HARVESTNanoFakeHLT'],
2594 'Geom' :
'DB:Extended',
2595 'GT' :
'auto:phase1_2023_realistic',
2596 'HLTmenu':
'@relval2023',
2597 'Era' :
'Run3_2023',
2598 'BeamSpot':
'Realistic25ns13p6TeVEarly2023Collision',
2599 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
2602 'Geom' :
'DB:Extended',
2603 'GT' :
'auto:phase1_2024_realistic',
2604 'HLTmenu':
'@relval2023',
2606 'BeamSpot':
'Realistic25ns13p6TeVEarly2022Collision',
2607 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
2610 'Geom' :
'DB:Extended',
2611 'GT' :
'auto:phase1_2022_realistic',
2612 'HLTmenu':
'@relval2022',
2613 'Era' :
'Run3_FastSim',
2614 'BeamSpot':
'Realistic25ns13p6TeVEarly2022Collision',
2615 'ScenToRun' : [
'Gen',
'FastSimRun3',
'HARVESTFastRun3'],
2618 'Geom' :
'DB:Extended',
2619 'GT' :
'auto:phase1_2022_realistic_postEE',
2620 'HLTmenu':
'@relval2022',
2622 'BeamSpot':
'Realistic25ns13p6TeVEarly2022Collision',
2623 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNanoFakeHLT',
'HARVESTNanoFakeHLT',
'ALCA'],
2626 'Geom' :
'DB:Extended',
2627 'GT' :
'auto:phase1_2023_realistic',
2628 'HLTmenu':
'@relval2023',
2629 'Era' :
'Run3_2023_FastSim',
2630 'BeamSpot':
'Realistic25ns13p6TeVEarly2023Collision',
2631 'ScenToRun' : [
'Gen',
'FastSimRun3',
'HARVESTFastRun3'],
2634 'Geom' :
'DB:Extended',
2635 'GT':
'auto:phase1_2022_realistic_hi',
2636 'HLTmenu':
'@fake2',
2637 'Era':
'Run3_pp_on_PbPb',
2638 'BeamSpot':
'Realistic2022PbPbCollision',
2639 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
2642 'Geom' :
'DB:Extended',
2643 'GT':
'auto:phase1_2022_realistic_hi',
2644 'HLTmenu':
'@fake2',
2645 'Era':
'Run3_pp_on_PbPb_approxSiStripClusters',
2646 'BeamSpot':
'Realistic2022PbPbCollision',
2647 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
2650 'Geom' :
'DB:Extended',
2651 'GT':
'auto:phase1_2023_realistic_hi',
2652 'HLTmenu':
'@fake2',
2653 'Era':
'Run3_pp_on_PbPb',
2654 'BeamSpot':
'Realistic2022PbPbCollision',
2655 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
2658 'Geom' :
'DB:Extended',
2659 'GT':
'auto:phase1_2023_realistic_hi',
2660 'HLTmenu':
'@fake2',
2661 'Era':
'Run3_pp_on_PbPb_approxSiStripClusters',
2662 'BeamSpot':
'Realistic2022PbPbCollision',
2663 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
2668 for key
in list(upgradeProperties[2017].
keys()):
2669 upgradeProperties[2017][key+
'PU'] = deepcopy(upgradeProperties[2017][key])
2672 scenToRun = upgradeProperties[2017][key+
'PU'][
'ScenToRun']
2673 for idx,val
in enumerate(scenToRun):
2675 scenToRun[idx] +=
'PU'*(val.startswith(
'Digi')
or val.startswith(
'Reco')
or val.startswith(
'HARVEST'))
2677 upgradeProperties[2017][key+
'PU'][
'ScenToRun'] = [foo
for foo
in scenToRun
if foo !=
'ALCA']
2679 upgradeProperties[2017][key+
'PU'][
'ScenToRun'] = [
'Gen',
'FastSimRun3PU',
'HARVESTFastRun3PU']
2681 upgradeProperties[2026] = {
2683 'Geom' :
'Extended2026D86',
2684 'HLTmenu':
'@fake2',
2685 'GT' :
'auto:phase2_realistic_T21',
2686 'Era' :
'Phase2C17I13M9',
2687 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2690 'Geom' :
'Extended2026D88',
2691 'HLTmenu':
'@relval2026',
2692 'GT' :
'auto:phase2_realistic_T21',
2693 'Era' :
'Phase2C17I13M9',
2694 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2697 'Geom' :
'Extended2026D91',
2698 'HLTmenu':
'@fake2',
2699 'GT' :
'auto:phase2_realistic_T30',
2700 'Era' :
'Phase2C17I13M9',
2701 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2704 'Geom' :
'Extended2026D92',
2705 'HLTmenu':
'@fake2',
2706 'GT' :
'auto:phase2_realistic_T21',
2707 'Era' :
'Phase2C17I13M9',
2708 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2711 'Geom' :
'Extended2026D93',
2712 'HLTmenu':
'@fake2',
2713 'GT' :
'auto:phase2_realistic_T21',
2714 'Era' :
'Phase2C17I13M9',
2715 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2718 'Geom' :
'Extended2026D94',
2719 'HLTmenu':
'@fake2',
2720 'GT' :
'auto:phase2_realistic_T21',
2721 'Era' :
'Phase2C20I13M9',
2722 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2725 'Geom' :
'Extended2026D95',
2726 'HLTmenu':
'@relval2026',
2727 'GT' :
'auto:phase2_realistic_T21',
2728 'Era' :
'Phase2C17I13M9',
2729 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2732 'Geom' :
'Extended2026D96',
2733 'HLTmenu':
'@fake2',
2734 'GT' :
'auto:phase2_realistic_T21',
2735 'Era' :
'Phase2C17I13M9',
2736 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2739 'Geom' :
'Extended2026D97',
2740 'HLTmenu':
'@fake2',
2741 'GT' :
'auto:phase2_realistic_T25',
2742 'Era' :
'Phase2C17I13M9',
2743 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2746 'Geom' :
'Extended2026D98',
2747 'HLTmenu':
'@relval2026',
2748 'GT' :
'auto:phase2_realistic_T25',
2749 'Era' :
'Phase2C17I13M9',
2750 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2753 'Geom' :
'Extended2026D99',
2754 'HLTmenu':
'@relval2026',
2755 'GT' :
'auto:phase2_realistic_T25',
2756 'Era' :
'Phase2C17I13M9',
2757 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2760 'Geom' :
'Extended2026D100',
2761 'HLTmenu':
'@fake2',
2762 'GT' :
'auto:phase2_realistic_T33',
2763 'Era' :
'Phase2C17I13M9',
2764 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2767 'Geom' :
'Extended2026D101',
2768 'HLTmenu':
'@relval2026',
2769 'GT' :
'auto:phase2_realistic_T25',
2770 'Era' :
'Phase2C17I13M9',
2771 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2776 for key
in list(upgradeProperties[2026].
keys()):
2777 upgradeProperties[2026][key+
'PU'] = deepcopy(upgradeProperties[2026][key])
2778 upgradeProperties[2026][key+
'PU'][
'ScenToRun'] = [
'GenSimHLBeamSpot',
'DigiTriggerPU',
'RecoGlobalPU',
'HARVESTGlobalPU']
2781 defaultDataSets = {}
2782 for year
in upgradeKeys:
2783 for key
in upgradeKeys[year]:
2784 if 'PU' in key:
continue 2785 defaultDataSets[key] =
'' 2793 upgradeFragments = OrderedDict([
2795 (
'SingleElectronPt10_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronPt10')),
2796 (
'SingleElectronPt35_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronPt35')),
2797 (
'SingleElectronPt1000_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SingleElectronPt1000')),
2804 (
'FourMuExtendedPt_1_200_pythia8_cfi',
UpgradeFragment(
Kby(10,100),
'FourMuExtendedPt1_200')),
2805 (
'TenMuExtendedE_0_200_pythia8_cfi',
UpgradeFragment(
Kby(10,100),
'TenMuExtendedE_0_200')),
2806 (
'DoubleElectronPt10Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElPt10Extended')),
2807 (
'DoubleElectronPt35Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElPt35Extended')),
2808 (
'DoubleElectronPt1000Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SingleElPt1000Extended')),
2809 (
'DoubleGammaPt10Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleGammaPt10Extended')),
2810 (
'DoubleGammaPt35Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SingleGammaPt35Extended')),
2811 (
'DoubleMuPt1Extended_pythia8_cfi',
UpgradeFragment(
Kby(25,100),
'SingleMuPt1Extended')),
2812 (
'DoubleMuPt10Extended_pythia8_cfi',
UpgradeFragment(
Kby(25,100),
'SingleMuPt10Extended')),
2813 (
'DoubleMuPt100Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleMuPt100Extended')),
2814 (
'DoubleMuPt1000Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleMuPt1000Extended')),
2817 (
'MinBias_13TeV_pythia8_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(90,100),
'MinBias_13')),
2820 (
'QCD_Pt_600_800_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_600_800_13')),
2821 (
'Wjet_Pt_80_120_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'Wjet_Pt_80_120_14TeV')),
2822 (
'Wjet_Pt_3000_3500_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Wjet_Pt_3000_3500_14TeV')),
2824 (
'QCD_Pt_3000_3500_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_3000_3500_14TeV')),
2825 (
'QCD_Pt_80_120_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'QCD_Pt_80_120_14TeV')),
2826 (
'H200ChargedTaus_Tauola_14TeV_cfi',
UpgradeFragment(
Kby(9,100),
'Higgs200ChargedTaus_14TeV')),
2830 (
'ZTT_Tauola_All_hadronic_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,100),
'ZTT_14TeV')),
2831 (
'H130GGgluonfusion_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'H130GGgluonfusion_14TeV')),
2832 (
'PhotonJet_Pt_10_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'PhotonJets_Pt_10_14TeV')),
2833 (
'QQH1352T_Tauola_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'QQH1352T_Tauola_14TeV')),
2837 (
'QCDForPF_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(50,100),
'QCD_FlatPt_15_3000HS_14')),
2839 (
'DYToTauTau_M-50_14TeV_pythia8_tauola_cff',
UpgradeFragment(
Kby(9,100),
'DYtoTauTau_M_50_14TeV')),
2841 (
'QCD_Pt_80_120_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'QCD_Pt_80_120_13')),
2842 (
'H125GGgluonfusion_13TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'H125GGgluonfusion_13')),
2843 (
'QCD_Pt20toInf_MuEnrichedPt15_14TeV_TuneCP5_cff',
UpgradeFragment(
Kby(19565, 217391),
'QCD_Pt20toInfMuEnrichPt15_14')),
2845 (
'QCD_Pt15To7000_Flat_14TeV_TuneCP5_cff',
UpgradeFragment(
Kby(9,50),
'QCD_Pt15To7000_Flat_14')),
2846 (
'H125GGgluonfusion_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'H125GGgluonfusion_14')),
2847 (
'QCD_Pt_600_800_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_600_800_14')),
2850 (
'H200ChargedTaus_Tauola_13TeV_cfi',
UpgradeFragment(
Kby(9,50),
'Higgs200ChargedTaus_13')),
2851 (
'ADDMonoJet_13TeV_d3MD3_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'ADDMonoJet_d3MD3_13')),
2853 (
'QCD_Pt_3000_3500_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_3000_3500_13')),
2860 (
'PhotonJet_Pt_10_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'PhotonJets_Pt_10_13')),
2862 (
'Wjet_Pt_80_120_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Wjet_Pt_80_120_13')),
2863 (
'Wjet_Pt_3000_3500_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Wjet_Pt_3000_3500_13')),
2864 (
'SMS-T1tttt_mGl-1500_mLSP-100_13TeV-pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SMS-T1tttt_mGl-1500_mLSP-100_13')),
2865 (
'QCDForPF_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(50,100),
'QCD_FlatPt_15_3000HS_13')),
2866 (
'PYTHIA8_PhiToMuMu_TuneCUETP8M1_13TeV_cff',
UpgradeFragment(
Kby(9,50),
'PhiToMuMu_13')),
2867 (
'RSKKGluon_m3000GeV_13TeV_TuneCUETP8M1_cff',
UpgradeFragment(
Kby(9,50),
'RSKKGluon_m3000GeV_13')),
2871 (
'Upsilon1SToMuMu_forSTEAM_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Upsilon1SToMuMu_13')),
2872 (
'EtaBToJpsiJpsi_forSTEAM_TuneCUEP8M1_13TeV_cfi',
UpgradeFragment(
Kby(9,50),
'EtaBToJpsiJpsi_13')),
2873 (
'JpsiMuMu_Pt-8_forSTEAM_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(3100,100000),
'JpsiMuMu_Pt-8')),
2874 (
'BuMixing_BMuonFilter_forSTEAM_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(900,10000),
'BuMixing_13')),
2875 (
'HSCPstop_M_200_TuneCUETP8M1_13TeV_pythia8_cff',
UpgradeFragment(
Kby(9,50),
'HSCPstop_M_200_13')),
2876 (
'RSGravitonToGammaGamma_kMpl01_M_3000_TuneCUETP8M1_13TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'RSGravitonToGaGa_13')),
2877 (
'WprimeToENu_M-2000_TuneCUETP8M1_13TeV-pythia8_cff',
UpgradeFragment(
Kby(9,50),
'WpToENu_M-2000_13')),
2878 (
'DisplacedSUSY_stopToBottom_M_800_500mm_TuneCP5_13TeV_pythia8_cff',
UpgradeFragment(
Kby(9,50),
'DisplacedSUSY_stopToB_M_800_500mm_13')),
2880 (
'FlatRandomPtAndDxyGunProducer_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuonsDxy_0_500')),
2882 (
'SinglePiPt25Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SinglePiPt25Eta1p7_2p7')),
2883 (
'SingleMuPt15Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SingleMuPt15Eta1p7_2p7')),
2884 (
'SingleGammaPt25Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SingleGammaPt25Eta1p7_2p7')),
2885 (
'SingleElectronPt15Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronPt15Eta1p7_2p7')),
2887 (
'CloseByParticle_Photon_ERZRanges_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByParticleGun')),
2888 (
'CE_E_Front_300um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_E_Front_300um')),
2889 (
'CE_E_Front_200um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_E_Front_200um')),
2890 (
'CE_E_Front_120um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_E_Front_120um')),
2894 (
'CE_H_Coarse_Scint_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_H_Coarse_Scint')),
2895 (
'CE_H_Coarse_300um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_H_Coarse_300um')),
2896 (
'SingleElectronFlatPt2To100_cfi',
UpgradeFragment(
Kby(9,100),
'SingleEFlatPt2To100')),
2899 (
'SingleGammaFlatPt8To150_cfi',
UpgradeFragment(
Kby(9,100),
'SingleGammaFlatPt8To150')),
2902 (
'FlatRandomPtAndDxyGunProducer_MuPt2To10_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt2To10')),
2903 (
'FlatRandomPtAndDxyGunProducer_MuPt10To30_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt10To30')),
2904 (
'FlatRandomPtAndDxyGunProducer_MuPt30To100_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt30To100')),
2905 (
'B0ToKstarMuMu_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(304,3030),
'B0ToKstarMuMu_14TeV')),
2907 (
'BsToJpsiGamma_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(2500,25000),
'BsToJpsiGamma_14TeV')),
2908 (
'BsToJpsiPhi_mumuKK_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(910,9090),
'BsToJpsiPhi_mumuKK_14TeV')),
2910 (
'BsToPhiPhi_KKKK_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(556,5555),
'BsToPhiPhi_KKKK_14TeV')),
2911 (
'TauToMuMuMu_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(18939,189393),
'TauToMuMuMu_14TeV')),
2912 (
'BdToKstarEleEle_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(206,2061),
'BdToKstarEleEle_14TeV')),
2914 (
'BuMixing_BMuonFilter_forSTEAM_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(900,10000),
'BuMixing_14')),
2915 (
'Upsilon1SToMuMu_forSTEAM_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'Upsilon1SToMuMu_14')),
2916 (
'TenTau_E_15_500_Eta3p1_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'TenTau_15_500_Eta3p1')),
2917 (
'QCD_Pt_1800_2400_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_1800_2400_14')),
2918 (
'DisplacedSUSY_stopToBottom_M_800_500mm_TuneCP5_14TeV_pythia8_cff',
UpgradeFragment(
Kby(9,50),
'DisplacedSUSY_14TeV')),
2919 (
'GluGluTo2Jets_M_300_2000_14TeV_Exhume_cff',
UpgradeFragment(
Kby(9,100),
'GluGluTo2Jets_14TeV')),
2920 (
'TTbarToDilepton_mt172p5_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'TTbarToDilepton_14TeV')),
2921 (
'QQToHToTauTau_mh125_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'QQToHToTauTau_14TeV')),
2922 (
'ZpToEE_m6000_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'ZpToEE_m6000_14TeV')),
2923 (
'ZpToMM_m6000_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'ZpToMM_m6000_14TeV')),
2924 (
'SMS-T1tttt_mGl-1500_mLSP-100_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SMS-T1tttt_14TeV')),
2925 (
'VBFHZZ4Nu_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'VBFHZZ4Nu_14TeV')),
2926 (
'EtaBToJpsiJpsi_14TeV_TuneCP5_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'EtaBToJpsiJpsi_14TeV')),
2928 (
'WprimeToLNu_M2000_14TeV_TuneCP5_pythia8_cfi',
UpgradeFragment(
Kby(21,50),
'WprimeToLNu_M2000_14TeV')),
2930 (
'DoubleElectronFlatPt1p5To8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronFlatPt1p5To8')),
2931 (
'DoubleMuFlatPt1p5To8Dxy100GunProducer_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt1p5To8Dxy100')),
2932 (
'DoubleMuFlatPt2To100Dxy100GunProducer_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt2To100Dxy100')),
2933 (
'BuToJPsiPrimeKToJPsiPiPiK_14TeV_TuneCP5_pythia8_cfi',
UpgradeFragment(
Kby(223,2222),
'BuToJPsiPrimeKToJPsiPiPiK_14TeV')),
2934 (
'Psi2SToJPsiPiPi_14TeV_TuneCP5_pythia8_cfi',
UpgradeFragment(
Kby(45,500),
'Psi2SToJPsiPiPi_14TeV')),
2935 (
'XiMinus_13p6TeV_SoftQCDInel_TuneCP5_cfi',
UpgradeFragment(
Kby(8000,90000),
'XiMinus_13p6TeV')),
2936 (
'Chib1PToUpsilon1SGamma_MuFilter_TuneCP5_14TeV-pythia8_evtgen_cfi',
UpgradeFragment(
Kby(3600,36000),
'Chib1PToUpsilon1SGamma_14TeV')),
2937 (
'ChicToJpsiGamma_MuFilter_TuneCP5_14TeV_pythia8_evtgen_cfi',
UpgradeFragment(
Kby(2000,20000),
'ChicToJpsiGamma_14TeV')),
2938 (
'B0ToJpsiK0s_JMM_Filter_DGamma0_TuneCP5_13p6TeV-pythia8-evtgen_cfi',
UpgradeFragment(
Kby(38000,38000),
'B0ToJpsiK0s_DGamma0_13p6TeV')),
2939 (
'DStarToD0Pi_D0ToKsPiPi_inclusive_SoftQCD_TuneCP5_13p6TeV-pythia8-evtgen',
UpgradeFragment(
Kby(38000,38000),
'DStarToD0Pi_D0ToKsPiPi_13p6TeV')),
2940 (
'LbToJpsiLambda_JMM_Filter_DGamma0_TuneCP5_13p6TeV-pythia8-evtgen_cfi',
UpgradeFragment(
Mby(66,660000),
'LbToJpsiLambda_DGamma0_13p6TeV')),
2941 (
'LbToJpsiXiK0sPi_JMM_Filter_DGamma0_TuneCP5_13p6TeV-pythia8-evtgen_cfi',
UpgradeFragment(
Mby(50,500000),
'LbToJpsiXiK0sPr_DGamma0_13p6TeV')),
2942 (
'OmegaMinus_13p6TeV_SoftQCDInel_TuneCP5_cfi',
UpgradeFragment(
Mby(100,1000000),
'OmegaMinus_13p6TeV')),
2943 (
'Hydjet_Quenched_MinBias_5020GeV_cfi',
UpgradeFragment(U2000by1,
'HydjetQMinBias_5020GeV')),
2944 (
'Hydjet_Quenched_MinBias_5362GeV_cfi',
UpgradeFragment(U2000by1,
'HydjetQMinBias_5362GeV'))
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 condition(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def setupPU_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)
Wf to add Heavy Flavor DQM to whichever DQM is already there.
def setup_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
bool any(const std::vector< T > &v, const T &what)
def __init__(self, suffix, offset, ecalMod, steps=['GenSim', GenSimHLBeamSpot, GenSimHLBeamSpot14, GenSimHLBeamSpotHGCALCloseBy, Digi, DigiTrigger, PU=['GenSim', GenSimHLBeamSpot, GenSimHLBeamSpot14, GenSimHLBeamSpotHGCALCloseBy, Digi, DigiTrigger)
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 condition(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def setupPU_(self, step, stepName, stepDict, k, properties)
def replace(string, replacements)
def condition(self, fragment, stepList, key, hasHarvest)
def preventReuse(self, stepName, stepDict, k)
def condition(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def workflow_(self, workflows, num, fragment, stepList, key)
def condition(self, fragment, stepList, key, hasHarvest)
def workflow_(self, workflows, num, fragment, stepList, key)
def setup_(self, step, stepName, stepDict, k, properties)
def __init__(self, reco={}, harvest={}, kwargs)
def setup_(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)
def condition_(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def setup__(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)
def setupPU_(self, step, stepName, stepDict, k, properties)
def __init__(self, digi={}, reco={}, harvest={}, kwargs)
def __init__(self, howMuch, dataset)
def condition(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def workflow(self, workflows, num, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)
def setup__(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def setupPU_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def __init__(self, digi={}, reco={}, mini={}, harvest={}, kwargs)
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 setup_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def condition_(self, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def Kby(N, s)
Standard release validation samples ####.
def __init__(self, steps, PU, suffix, offset)
def __init__(self, steps, PU, suffix, offset)
def setup_(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def setup__(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)
def __init__(self, suffix, offset, fixedPU, steps=[], PU=['GenSimHLBeamSpot14', Digi, DigiTrigger, Reco, RecoFakeHLT, RecoGlobal, RecoNano, RecoNanoFakeHLT, HARVEST, HARVESTFakeHLT, HARVESTGlobal, HARVESTNano, HARVESTNanoFakeHLT, MiniAOD, ALCA, ALCAPhase2, Nano)
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 getStepNamePU(self, step, extra="")
def condition_(self, fragment, stepList, key, hasHarvest)
def condition(self, fragment, stepList, key, hasHarvest)