1 from copy
import copy, deepcopy
2 from collections
import OrderedDict
3 from .MatrixUtil
import merge, Kby, Mby
67 numWFConflict = [[20400,20800],
75 for year
in upgradeKeys:
76 for i
in range(0,len(upgradeKeys[year])):
77 numWFtmp = numWFStart[year]
if i==0
else (numWFAll[year][i-1] + numWFSkip)
78 for conflict
in numWFConflict:
79 if numWFtmp>=conflict[0]
and numWFtmp<conflict[1]:
80 numWFtmp = conflict[1]
82 numWFAll[year].
append(numWFtmp)
89 preventReuseKeyword =
'NOREUSE' 98 if not step
in self.
steps:
105 raise ValueError(
"Special workflow offset must be between 0.0 and 1.0")
107 stepName = step + self.
suffix + extra
110 stepNamePU = step +
'PU' + self.
suffix + extra
113 for step
in self.
steps:
119 def setup(self, stepDict, k, properties):
120 for step
in self.
steps:
127 def setup_(self, step, stepName, stepDict, k, properties):
129 def setupPU_(self, step, stepName, stepDict, k, properties):
131 def workflow(self, workflows, num, fragment, stepList, key, hasHarvest):
132 if self.condition(fragment, stepList, key, hasHarvest):
133 self.workflow_(workflows, num, fragment, stepList, key)
134 def workflow_(self, workflows, num, fragment, stepList, key):
135 fragmentTmp = [fragment, key]
137 workflows[num+self.
offset] = [ fragmentTmp, stepList ]
138 def condition(self, fragment, stepList, key, hasHarvest):
141 if "Sim" in stepName:
142 stepDict[stepName][k] =
None 143 if "Gen" in stepName:
144 stepDict[stepName][k] =
None 145 upgradeWFs = OrderedDict()
148 def setup_(self, step, stepName, stepDict, k, properties):
149 cust=properties.get(
'Custom',
None)
150 era=properties.get(
'Era',
None)
151 modifier=properties.get(
'ProcessModifier',
None)
152 if cust
is not None: stepDict[stepName][k][
'--customise']=cust
154 stepDict[stepName][k][
'--era']=era
155 if modifier
is not None: stepDict[stepName][k][
'--procModifier']=modifier
156 def condition(self, fragment, stepList, key, hasHarvest):
163 'GenSimHLBeamSpot14',
164 'GenSimHLBeamSpotHGCALCloseBy',
177 'HARVESTNanoFakeHLT',
201 'HARVESTNanoFakeHLT',
215 def setup_(self, step, stepName, stepDict, k, properties):
216 if stepDict[step][k] !=
None:
218 stepDict[stepName][k] =
None 219 if 'RecoNano' in step:
220 stepDict[stepName][k] =
merge([{
'--filein':
'file:step3.root',
'--secondfilein':
'file:step2.root'}, stepDict[step][k]])
222 stepDict[stepName][k] =
merge([{
'-s': re.sub(
',HLT.*',
'', stepDict[step][k][
'-s'])}, stepDict[step][k]])
223 def condition(self, fragment, stepList, key, hasHarvest):
224 if (
'TTbar_14TeV' in fragment
and '2021' == key):
225 stepList.insert(stepList.index(
'Digi_DigiNoHLT_2021')+1,
'HLTRun3_2021')
226 return (
'TTbar_14TeV' in fragment
and '2021' == key)
235 suffix =
'_DigiNoHLT',
244 steps = steps + [
"ALCA",
"Nano"]
245 super().
__init__(steps, PU, suffix, offset)
246 def condition(self, fragment, stepList, key, hasHarvest):
247 result = (fragment==
"TTbar_13" or fragment==
"TTbar_14TeV")
and not 'PU' in key
and hasHarvest
and self.
condition_(fragment, stepList, key, hasHarvest)
251 def setup_(self, step, stepName, stepDict, k, properties):
253 if 'ALCA' in step
or 'Nano'==step:
254 stepDict[stepName][k] =
None 255 self.
setup__(step, stepName, stepDict, k, properties)
257 def setup__(self, step, stepName, stepDict, k, properties):
260 class UpgradeWorkflow_trackingOnly(UpgradeWorkflowTracking):
261 def setup__(self, step, stepName, stepDict, k, properties):
262 if 'Reco' in step: stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
263 elif 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@trackingOnlyDQM'}, stepDict[step][k]])
265 def condition(self, fragment, stepList, key, hasHarvest):
266 result = (fragment==
"TTbar_13" or fragment==
"TTbar_14TeV")
and hasHarvest
and self.
condition_(fragment, stepList, key, hasHarvest)
282 'HARVESTNanoFakeHLT',
294 'HARVESTNanoFakeHLT',
298 suffix =
'_trackingOnly',
301 upgradeWFs[
'trackingOnly'].step3 = {
302 '-s':
'RAW2DIGI,RECO:reconstruction_trackingOnly,VALIDATION:@trackingOnlyValidation,DQM:@trackingOnlyDQM',
303 '--datatier':
'GEN-SIM-RECO,DQMIO',
304 '--eventcontent':
'RECOSIM,DQM',
307 step3_trackingOnly = upgradeWFs[
'trackingOnly'].step3
310 def setup__(self, step, stepName, stepDict, k, properties):
311 if 'Reco' in step
and stepDict[step][k][
'--era']==
'Run2_2017':
312 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2017_trackingRun2'}, stepDict[step][k]])
321 suffix =
'_trackingRun2',
326 def setup__(self, step, stepName, stepDict, k, properties):
327 if 'Reco' in step
and stepDict[step][k][
'--era']==
'Run2_2017':
328 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2017_trackingRun2'}, self.
step3, stepDict[step][k]])
329 elif 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@trackingOnlyDQM'}, stepDict[step][k]])
340 suffix =
'_trackingOnlyRun2',
343 upgradeWFs[
'trackingOnlyRun2'].step3 = upgradeWFs[
'trackingOnly'].step3
346 def setup__(self, step, stepName, stepDict, k, properties):
347 if 'Reco' in step
and stepDict[step][k][
'--era']==
'Run2_2017':
348 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2017_trackingLowPU'}, stepDict[step][k]])
357 suffix =
'_trackingLowPU',
362 def setup__(self, step, stepName, stepDict, k, properties):
363 if 'Reco' in step: stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
365 elif 'ALCA' in step: stepDict[stepName][k] =
None 366 elif 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM'}, stepDict[step][k]])
368 return (
'2017' in key
or '2018' in key
or '2021' in key
or '2026' in key)
and (
'FS' not in key)
380 'HARVESTNanoFakeHLT',
385 suffix =
'_pixelTrackingOnly',
388 upgradeWFs[
'pixelTrackingOnly'].step3 = {
389 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
390 '--datatier':
'GEN-SIM-RECO,DQMIO',
391 '--eventcontent':
'RECOSIM,DQM',
395 def setup__(self, step, stepName, stepDict, k, properties):
396 if 'Digi' in step: stepDict[stepName][k] =
merge([self.
step2, stepDict[step][k]])
397 if 'Reco' in step: stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
399 return (
'2017' in key
or '2021' in key
or '2023' in key)
and (
'FS' not in key)
411 suffix =
'_trackingMkFit',
414 upgradeWFs[
'trackingMkFit'].step2 = {
415 '--customise':
'RecoTracker/MkFit/customizeHLTIter0ToMkFit.customizeHLTIter0ToMkFit' 417 upgradeWFs[
'trackingMkFit'].step3 = {
418 '--procModifiers':
'trackingMkFitDevel' 423 def setup_(self, step, stepName, stepDict, k, properties):
425 if 'ALCA' in step
or 'Nano'==step:
426 stepDict[stepName][k] =
None 427 elif 'Reco' in step
or 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'--procModifiers':
'seedingDeepCore'}, stepDict[step][k]])
428 def condition(self, fragment, stepList, key, hasHarvest):
429 result = (fragment==
"QCD_Pt_1800_2400_14" or fragment==
"TTbar_14TeV" )
and (
'2021' in key
or '2024' in key)
and hasHarvest
442 'HARVESTNanoFakeHLT',
454 'HARVESTNanoFakeHLT',
456 suffix =
'_seedingDeepCore',
462 def setup__(self, step, stepName, stepDict, k, properties):
463 if 'Reco' in step: stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
474 suffix =
'_displacedRegional',
477 upgradeWFs[
'displacedRegional'].step3 = {
478 '--procModifiers':
'displacedRegionalTracking' 483 def setup_(self, step, stepName, stepDict, k, properties):
484 stepDict[stepName][k] =
merge([{
'--procModifiers':
'vectorHits'}, stepDict[step][k]])
485 def condition(self, fragment, stepList, key, hasHarvest):
486 return (fragment==
"TTbar_14TeV" or fragment==
"SingleMuPt10Extended")
and '2026' in key
496 suffix =
'_vectorHits',
502 def __init__(self, reco = {}, harvest = {}, **kwargs):
504 super(UpgradeWorkflow_weightedVertex, self).
__init__(
515 'HARVESTNanoFakeHLT',
527 'HARVESTNanoFakeHLT',
533 def setup_(self, step, stepName, stepDict, k, properties):
536 mod = {
'--procModifiers':
'weightedVertexing,vertexInBlocks',
'--datatier':
'GEN-SIM-RECO,DQMIO',
537 '--eventcontent':
'RECOSIM,DQM'}
538 stepDict[stepName][k] =
merge([mod,self.
step3, stepDict[step][k]])
539 if 'HARVEST' in step:
540 stepDict[stepName][k] =
merge([self.
step4,stepDict[step][k]])
542 def condition(self, fragment, stepList, key, hasHarvest):
545 (
'2021' in key
and fragment ==
"TTbar_14TeV" and 'FS' not in key),
546 (
'2024' in key
and fragment ==
"TTbar_14TeV"),
547 (
'2026' in key
and fragment ==
"TTbar_14TeV")
549 result =
any(selected)
and hasHarvest
555 suffix =
'_weightedVertex',
559 upgradeWFs[
'weightedVertex'].step3 = {}
560 upgradeWFs[
'weightedVertex'].step4 = {}
563 suffix =
'_weightedVertexTrackingOnly',
567 upgradeWFs[
'weightedVertexTrackingOnly'].step3 = {
568 '-s':
'RAW2DIGI,RECO:reconstruction_trackingOnly,VALIDATION:@trackingOnlyValidation,DQM:@trackingOnlyDQM',
569 '--datatier':
'GEN-SIM-RECO,DQMIO',
570 '--eventcontent':
'RECOSIM,DQM',
573 upgradeWFs[
'weightedVertexTrackingOnly'].step4 = {
574 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' 579 def setup_(self, step, stepName, stepDict, k, properties):
580 if 'RecoGlobal' in step:
581 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
582 if 'HARVESTGlobal' in step:
583 stepDict[stepName][k] =
merge([self.
step4, stepDict[step][k]])
584 def condition(self, fragment, stepList, key, hasHarvest):
585 return (fragment==
"TTbar_14TeV" or 'CloseByPGun_CE' in fragment)
and '2026' in key
595 suffix =
'_ticl_clue3D',
598 upgradeWFs[
'ticl_clue3D'].step3 = {
'--procModifiers':
'clue3D'}
599 upgradeWFs[
'ticl_clue3D'].step4 = {
'--procModifiers':
'clue3D'}
602 def setup_(self, step, stepName, stepDict, k, properties):
603 if 'RecoGlobal' in step:
604 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
605 if 'HARVESTGlobal' in step:
606 stepDict[stepName][k] =
merge([self.
step4, stepDict[step][k]])
607 def condition(self, fragment, stepList, key, hasHarvest):
608 return (fragment==
"TTbar_14TeV" or 'CloseByPGun_CE' in fragment)
and '2026' in key
618 suffix =
'_ticl_FastJet',
621 upgradeWFs[
'ticl_FastJet'].step3 = {
'--procModifiers':
'fastJetTICL'}
622 upgradeWFs[
'ticl_FastJet'].step4 = {
'--procModifiers':
'fastJetTICL'}
625 def setup_(self, step, stepName, stepDict, k, properties):
626 if 'RecoGlobal' in step:
627 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
628 if 'HARVESTGlobal' in step:
629 stepDict[stepName][k] =
merge([self.
step4, stepDict[step][k]])
630 def condition(self, fragment, stepList, key, hasHarvest):
631 return (fragment==
"TTbar_14TeV" or 'CloseByP' in fragment
or 'Eta1p7_2p7' in fragment)
and '2026' in key
644 upgradeWFs[
'ticl_v3'].step3 = {
'--procModifiers':
'ticl_v3'}
645 upgradeWFs[
'ticl_v3'].step4 = {
'--procModifiers':
'ticl_v3'}
650 def setup_(self, step, stepName, stepDict, k, properties):
651 stepDict[stepName][k] =
merge([{
'--procModifiers':
'trackdnn'}, stepDict[step][k]])
653 def condition(self, fragment, stepList, key, hasHarvest):
654 return fragment==
"TTbar_14TeV" and '2021' in key
668 suffix =
'_trackdnn',
675 def setup_(self, step, stepName, stepDict, k, properties):
677 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
678 def condition(self, fragment, stepList, key, hasHarvest):
679 return (fragment==
"TTbar_14TeV" or fragment==
"QCD_FlatPt_15_3000HS_14")
and '2021PU' in key
697 upgradeWFs[
'mlpf'].step3 = {
698 '--datatier':
'GEN-SIM-RECO,RECOSIM,MINIAODSIM,NANOAODSIM,DQMIO',
699 '--eventcontent':
'FEVTDEBUGHLT,RECOSIM,MINIAODSIM,NANOEDMAODSIM,DQM',
700 '--procModifiers':
'mlpf' 706 def setup_(self, step, stepName, stepDict, k, properties):
708 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
709 def condition(self, fragment, stepList, key, hasHarvest):
710 return (fragment==
"ZEE_14" or fragment==
"TTbar_14TeV" or fragment==
"WprimeTolNu_M3000_13TeV_pythia8" 711 or fragment==
"DisplacedSUSY_stopToBottom_M_300_1000mm_13" or fragment==
"RunEGamma2018D" )
726 suffix =
'_ecalDeepSC',
729 upgradeWFs[
'ecalDeepSC'].step3 = {
730 '--datatier':
'RECOSIM,MINIAODSIM,NANOAODSIM,DQMIO',
731 '--eventcontent':
'RECOSIM,MINIAODSIM,NANOEDMAODSIM,DQM',
732 '--procModifiers':
'ecal_deepsc' 738 def setup_(self, step, stepName, stepDict, k, properties):
740 stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
741 def condition(self, fragment, stepList, key, hasHarvest):
742 return '2018' in key
and "SingleGamma" in fragment
753 suffix =
'_photonDRN',
756 upgradeWFs[
'photonDRN'].step3 = {
757 '--procModifiers':
'enableSonicTriton,photonDRN' 770 def __init__(self, digi = {}, reco = {}, harvest = {}, **kwargs):
772 super(PatatrackWorkflow, self).
__init__(
785 'HARVESTNanoFakeHLT',
802 'HARVESTNanoFakeHLT',
811 '--datatier':
'GEN-SIM-RECO,DQMIO',
812 '--eventcontent':
'RECOSIM,DQM' 816 def condition(self, fragment, stepList, key, hasHarvest):
819 (
'2018' in key
and fragment ==
"TTbar_13"),
820 (
'2021' in key
and fragment ==
"TTbar_14TeV" and 'FS' not in key),
821 (
'2023' in key
and fragment ==
"TTbar_14TeV" and 'FS' not in key),
822 (
'2018' in key
and fragment ==
"ZMM_13"),
823 (
'2021' in key
and fragment ==
"ZMM_14" and 'FS' not in key),
824 (
'2023' in key
and fragment ==
"ZMM_14" and 'FS' not in key),
825 (
'2026D88' in key
and fragment ==
"TTbar_14TeV" and "PixelOnly" in self.
suffix)
827 result =
any(selected)
and hasHarvest
831 def setup_(self, step, stepName, stepDict, k, properties):
833 if 'ALCA' in step
or 'Nano'==step:
834 stepDict[stepName][k] =
None 837 stepDict[stepName][k] =
None 839 stepDict[stepName][k] =
merge([self.
__digi, stepDict[step][k]])
842 stepDict[stepName][k] =
None 844 stepDict[stepName][k] =
merge([self.
__reco, stepDict[step][k]])
845 elif 'HARVEST' in step:
847 stepDict[stepName][k] =
None 849 stepDict[stepName][k] =
merge([self.
__harvest, stepDict[step][k]])
860 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
861 '--procModifiers':
'pixelNtupletFit' 864 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' 866 suffix =
'Patatrack_PixelOnlyCPU',
877 '--procModifiers':
'gpu' 880 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
881 '--procModifiers':
'pixelNtupletFit,gpu' 884 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' 886 suffix =
'Patatrack_PixelOnlyGPU',
897 '--accelerators':
'gpu-nvidia',
898 '--procModifiers':
'gpu' 901 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
902 '--accelerators':
'gpu-nvidia',
903 '--procModifiers':
'pixelNtupletFit,gpuValidation' 906 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM',
907 '--procModifiers':
'gpuValidation' 909 suffix =
'Patatrack_PixelOnlyGPU_Validation',
919 '--procModifiers':
'gpu' 922 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly',
923 '--procModifiers':
'pixelNtupletFit,gpu',
924 '--customise' :
'RecoTracker/Configuration/customizePixelOnlyForProfiling.customizePixelOnlyForProfilingGPUOnly' 927 suffix =
'Patatrack_PixelOnlyGPU_Profiling',
940 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
941 '--procModifiers':
'pixelNtupletFit',
942 '--customise' :
'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 945 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' 947 suffix =
'Patatrack_PixelOnlyTripletsCPU',
958 '--procModifiers':
'gpu' 961 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
962 '--procModifiers':
'pixelNtupletFit,gpu',
963 '--customise':
'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 966 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' 968 suffix =
'Patatrack_PixelOnlyTripletsGPU',
979 '--accelerators':
'gpu-nvidia',
980 '--procModifiers':
'gpu' 983 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
984 '--accelerators':
'gpu-nvidia',
985 '--procModifiers':
'pixelNtupletFit,gpuValidation',
986 '--customise':
'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 989 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM',
990 '--procModifiers':
'gpuValidation',
992 suffix =
'Patatrack_PixelOnlyTripletsGPU_Validation',
1002 '--procModifiers':
'gpu' 1005 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly',
1006 '--procModifiers':
'pixelNtupletFit,gpu',
1007 '--customise':
'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets,RecoTracker/Configuration/customizePixelOnlyForProfiling.customizePixelOnlyForProfilingGPUOnly' 1010 suffix =
'Patatrack_PixelOnlyTripletsGPU_Profiling',
1023 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly',
1026 '-s':
'HARVESTING:@ecalOnlyValidation+@ecal' 1028 suffix =
'Patatrack_ECALOnlyCPU',
1039 '--procModifiers':
'gpu' 1042 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly',
1043 '--procModifiers':
'gpu' 1046 '-s':
'HARVESTING:@ecalOnlyValidation+@ecal' 1048 suffix =
'Patatrack_ECALOnlyGPU',
1059 '--accelerators':
'gpu-nvidia',
1060 '--procModifiers':
'gpu' 1063 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly',
1064 '--accelerators':
'gpu-nvidia',
1065 '--procModifiers':
'gpuValidation' 1068 '-s':
'HARVESTING:@ecalOnlyValidation+@ecal' 1070 suffix =
'Patatrack_ECALOnlyGPU_Validation',
1080 '--procModifiers':
'gpu' 1083 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly',
1084 '--procModifiers':
'gpu',
1085 '--customise' :
'RecoLocalCalo/Configuration/customizeEcalOnlyForProfiling.customizeEcalOnlyForProfilingGPUOnly' 1088 suffix =
'Patatrack_ECALOnlyGPU_Profiling',
1101 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only',
1104 '-s':
'HARVESTING:@hcalOnlyValidation+@hcalOnly+@hcal2Only' 1106 suffix =
'Patatrack_HCALOnlyCPU',
1117 '--procModifiers':
'gpu' 1120 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only',
1121 '--procModifiers':
'gpu' 1124 '-s':
'HARVESTING:@hcalOnlyValidation+@hcalOnly+@hcal2Only' 1126 suffix =
'Patatrack_HCALOnlyGPU',
1137 '--accelerators':
'gpu-nvidia',
1138 '--procModifiers':
'gpu' 1141 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only',
1142 '--accelerators':
'gpu-nvidia',
1143 '--procModifiers':
'gpuValidation' 1146 '-s':
'HARVESTING:@hcalOnlyValidation+@hcal' 1148 suffix =
'Patatrack_HCALOnlyGPU_Validation',
1158 '--procModifiers':
'gpu' 1161 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly',
1162 '--procModifiers':
'gpu',
1163 '--customise' :
'RecoLocalCalo/Configuration/customizeHcalOnlyForProfiling.customizeHcalOnlyForProfilingGPUOnly' 1166 suffix =
'Patatrack_HCALOnlyGPU_Profiling',
1179 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1180 '--procModifiers':
'pixelNtupletFit' 1183 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' 1185 suffix =
'Patatrack_AllCPU',
1196 '--procModifiers':
'gpu' 1199 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1200 '--procModifiers':
'pixelNtupletFit,gpu' 1203 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' 1205 suffix =
'Patatrack_AllGPU',
1216 '--accelerators':
'gpu-nvidia',
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 '--accelerators':
'gpu-nvidia',
1222 '--procModifiers':
'pixelNtupletFit,gpuValidation' 1225 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only',
1226 '--procModifiers':
'gpuValidation' 1228 suffix =
'Patatrack_AllGPU_Validation',
1246 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1247 '--procModifiers':
'pixelNtupletFit' 1250 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' 1252 suffix =
'Patatrack_AllTripletsCPU',
1263 '--procModifiers':
'gpu' 1266 '-s':
'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only',
1267 '--procModifiers':
'pixelNtupletFit,gpu' 1270 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' 1272 suffix =
'Patatrack_AllTripletsGPU',
1283 '--accelerators':
'gpu-nvidia',
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 '--accelerators':
'gpu-nvidia',
1289 '--procModifiers':
'pixelNtupletFit,gpuValidation' 1292 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only',
1293 '--procModifiers':
'gpuValidation' 1295 suffix =
'Patatrack_AllTripletsGPU_Validation',
1314 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1315 '--procModifiers':
'pixelNtupletFit' 1320 suffix =
'Patatrack_FullRecoCPU',
1331 '--procModifiers':
'gpu' 1335 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1336 '--procModifiers':
'pixelNtupletFit,gpu' 1341 suffix =
'Patatrack_FullRecoGPU',
1352 '--accelerators':
'gpu-nvidia',
1353 '--procModifiers':
'gpu' 1357 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1358 '--accelerators':
'gpu-nvidia',
1359 '--procModifiers':
'pixelNtupletFit,gpuValidation' 1364 suffix =
'Patatrack_FullRecoGPU_Validation',
1378 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1379 '--procModifiers':
'pixelNtupletFit',
1380 '--customise' :
'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 1385 suffix =
'Patatrack_FullRecoTripletsCPU',
1396 '--procModifiers':
'gpu' 1400 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1401 '--procModifiers':
'pixelNtupletFit,gpu',
1402 '--customise':
'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 1407 suffix =
'Patatrack_FullRecoTripletsGPU',
1418 '--accelerators':
'gpu-nvidia',
1419 '--procModifiers':
'gpu' 1423 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
1424 '--accelerators':
'gpu-nvidia',
1425 '--procModifiers':
'pixelNtupletFit,gpuValidation',
1426 '--customise' :
'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' 1431 suffix =
'Patatrack_FullRecoTripletsGPU_Validation',
1439 def setup_(self, step, stepName, stepDict, k, properties):
1440 if 'GenSimHLBeamSpot14' in step:
1441 stepDict[stepName][k] =
merge([{
'--eventcontent':
'RAWSIM',
'--datatier':
'GEN-SIM'},stepDict[step][k]])
1442 elif 'Digi' in step
and 'Trigger' not in step:
1443 stepDict[stepName][k] =
merge([{
'-s':
'DIGI,L1,DIGI2RAW,HLT:@relval2022',
'--datatier':
'GEN-SIM-RAW',
'--eventcontent':
'RAWSIM'}, stepDict[step][k]])
1444 elif 'DigiTrigger' in step:
1445 stepDict[stepName][k] =
merge([{
'-s':
'DIGI,L1TrackTrigger,L1,DIGI2RAW,HLT:@fake2',
'--datatier':
'GEN-SIM-RAW',
'--eventcontent':
'RAWSIM'}, stepDict[step][k]])
1446 elif 'Reco' in step:
1447 stepDict[stepName][k] =
merge([{
'-s':
'RAW2DIGI,L1Reco,RECO,RECOSIM',
'--datatier':
'AODSIM',
'--eventcontent':
'AODSIM'}, stepDict[step][k]])
1448 elif 'MiniAOD' in step:
1450 stepDict[stepName][k] = deepcopy(stepDict[step][k])
1451 elif 'ALCA' in step
or 'HARVEST' in step:
1453 stepDict[stepName][k] =
None 1455 stepDict[stepName][k] =
merge([{
'--filein':
'file:step4.root',
'-s':
'NANO',
'--datatier':
'NANOAODSIM',
'--eventcontent':
'NANOEDMAODSIM'}, stepDict[step][k]])
1457 return fragment==
"TTbar_14TeV" and (
'2026' in key
or '2021' in key)
1460 'GenSimHLBeamSpot14',
1472 'HARVESTNanoFakeHLT',
1479 'GenSimHLBeamSpot14',
1491 'HARVESTNanoFakeHLT',
1497 suffix =
'_ProdLike',
1502 def __init__(self, suffix, offset, fixedPU,
1505 'GenSimHLBeamSpot14',
1517 'HARVESTNanoFakeHLT',
1523 super(UpgradeWorkflow_ProdLikeRunningPU, self).
__init__(steps, PU, suffix, offset)
1525 def setupPU_(self, step, stepName, stepDict, k, properties):
1527 if stepDict[stepName][k]
is not None and '--pileup' in stepDict[stepName][k]:
1528 stepDict[stepName][k][
'--pileup'] =
'AVE_' +
str(self.
__fixedPU) +
'_BX_25ns' 1531 return (fragment==
"TTbar_14TeV")
and ((
'2026' in key)
or (
'2021' in key
and self.
__fixedPU<=100))
1538 suffix =
'_ProdLikePU10',
1544 suffix =
'_ProdLikePU20',
1550 suffix =
'_ProdLikePU30',
1556 suffix =
'_ProdLikePU40',
1562 suffix =
'_ProdLikePU50',
1568 suffix =
'_ProdLikePU55',
1574 suffix =
'_ProdLikePU60',
1580 suffix =
'_ProdLikePU65',
1586 suffix =
'_ProdLikePU70',
1592 suffix =
'_ProdLikePU80',
1598 suffix =
'_ProdLikePU90',
1604 suffix =
'_ProdLikePU100',
1610 suffix =
'_ProdLikePU120',
1616 suffix =
'_ProdLikePU140',
1622 suffix =
'_ProdLikePU160',
1628 suffix =
'_ProdLikePU180',
1634 def setup_(self, step, stepName, stepDict, k, properties):
1635 if 'HARVEST' in step:
1636 stepDict[stepName][k] =
merge([{
'--filein':
'file:step3_inDQM.root'}, stepDict[step][k]])
1638 stepDict[stepName][k] =
merge([stepDict[step][k]])
1640 return fragment==
"TTbar_14TeV" and '2026' in key
1643 'GenSimHLBeamSpot14',
1650 'GenSimHLBeamSpot14',
1656 suffix =
'_HLT75e33',
1661 def setup_(self, step, stepName, stepDict, k, properties):
1662 if 'DigiTrigger' in step:
1663 stepDict[stepName][k] =
merge([{
'-s':
'DIGI:pdigi_valid,L1TrackTrigger,L1,DIGI2RAW,HLT:@relval2026'}, stepDict[step][k]])
1665 return fragment==
"TTbar_14TeV" and '2026' in key
1673 suffix =
'_HLTwDIGI75e33',
1678 def setup_(self, step, stepName, stepDict, k, properties):
1679 if 'GenSim' in step:
1680 custNew =
"SimG4Core/Application/NeutronBGforMuonsXS_cff.customise" 1682 custNew =
"SLHCUpgradeSimulations/Configuration/customise_mixing.customise_Mix_LongLived_Neutrons" 1683 stepDict[stepName][k] = deepcopy(stepDict[step][k])
1684 if '--customise' in stepDict[stepName][k].
keys():
1685 stepDict[stepName][k][
'--customise'] +=
","+custNew
1687 stepDict[stepName][k][
'--customise'] = custNew
1694 'GenSimHLBeamSpot14',
1702 suffix =
'_Neutron',
1706 upgradeWFs[
'Neutron'].neutronKeys = [x
for x
in upgradeKeys[2026]
if 'PU' not in x]
1707 upgradeWFs[
'Neutron'].neutronFrags = [
'ZMM_14',
'MinBias_14TeV']
1710 def setup_(self, step, stepName, stepDict, k, properties):
1711 stepDict[stepName][k] =
merge([{
'--procModifiers':
'run2_HECollapse_2018'}, stepDict[step][k]])
1713 return fragment==
"TTbar_13" and '2018' in key
1731 suffix =
'_heCollapse',
1737 def __init__(self, digi = {}, reco = {}, harvest = {}, **kwargs):
1739 super(UpgradeWorkflow_ecalDevel, self).
__init__(
1757 def setup_(self, step, stepName, stepDict, k, properties):
1759 mods = {
'--era': stepDict[step][k][
'--era']+
',phase2_ecal_devel'}
1761 mods[
'-s'] =
'DIGI:pdigi_valid,DIGI2RAW' 1763 elif 'Reco' in step:
1764 mods[
'-s'] =
'RAW2DIGI,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly' 1765 mods[
'--datatier'] =
'GEN-SIM-RECO,DQMIO' 1766 mods[
'--eventcontent'] =
'FEVTDEBUGHLT,DQM' 1768 elif 'HARVEST' in step:
1769 mods[
'-s'] =
'HARVESTING:@ecalOnlyValidation+@ecal' 1771 stepDict[stepName][k] =
merge([mods, stepDict[step][k]])
1774 stepDict[stepName][k] =
None 1777 return fragment==
"TTbar_14TeV" and '2026' in key
1781 suffix =
'_ecalDevel',
1787 reco = {
'--procModifiers':
'gpu'},
1788 suffix =
'_ecalDevelGPU',
1793 def setup_(self, step, stepName, stepDict, k, properties):
1794 myGT=stepDict[step][k][
'--conditions']
1796 stepDict[stepName][k] =
merge([{
'-n':
'1',
'--magField':
'0T',
'--conditions':myGT}, stepDict[step][k]])
1797 def setupPU_(self, step, stepName, stepDict, k, properties):
1799 stepDict[stepName][k] =
merge([{
'-n':
'1'}, stepDict[step][k]])
1801 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)
1813 'HARVESTNanoFakeHLT',
1825 'HARVESTNanoFakeHLT',
1832 def setup_(self, step, stepName, stepDict, k, properties):
1833 if 'Reco' in step
and 'Run2_2018' in stepDict[step][k][
'--era']:
1834 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2018,bParking'}, stepDict[step][k]])
1836 return fragment==
"TTbar_13" and '2018' in key
1843 suffix =
'_ParkingBPH',
1849 def setup_(self, step, stepName, stepDict, k, properties):
1851 thisStep = stepDict[step][k][
"-s"]
1853 if "DQM:" in thisStep:
1854 stepDict[stepName][k] =
merge([{
'-s': thisStep.replace(
"DQM:",
"DQM:@heavyFlavor+")}, stepDict[step][k]])
1855 elif "DQM" in thisStep:
1856 stepDict[stepName][k] =
merge([{
'-s': thisStep.replace(
"DQM",
"DQM:@heavyFlavor")}, stepDict[step][k]])
1858 stepDict[stepName][k] =
merge([{
'-s': thisStep +
",DQM:@heavyFlavor"}, stepDict[step][k]])
1861 return any(frag
in fragment
for frag
in self.
__frags)
1871 suffix =
'_HeavyFlavor',
1877 def setup_(self, step, stepName, stepDict, k, properties):
1879 stepDict[stepName][k] =
merge([{
'--customise':
'PhysicsTools/NanoAOD/custom_jme_cff.PrepJMECustomNanoAOD_MC'}, stepDict[step][k]])
1881 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)
1889 suffix =
'_JMENano',
1896 def setup_(self, step, stepName, stepDict, k, properties):
1897 if 'Digi' in step
or 'Reco' in step:
1898 stepDict[stepName][k] =
merge([{
'--customise':
'SLHCUpgradeSimulations/Configuration/aging.customise_aging_'+self.
lumi}, stepDict[step][k]])
1900 return '2026' in key
1919 suffix =
'Aging1000',
1922 upgradeWFs[
'Aging1000'].lumi =
'1000' 1923 upgradeWFs[
'Aging3000'] = deepcopy(upgradeWFs[
'Aging1000'])
1924 upgradeWFs[
'Aging3000'].suffix =
'Aging3000' 1925 upgradeWFs[
'Aging3000'].offset = 0.103
1926 upgradeWFs[
'Aging3000'].lumi =
'3000' 1933 def setup_(self, step, stepName, stepDict, k, properties):
1935 stepDict[stepName][k] =
merge([{
'--customise':
'SimTracker/SiPhase2Digitizer/customizeForOTInefficiency.customizeSiPhase2OTInefficiency'+self.
percent+
'Percent'}, stepDict[step][k]])
1937 return fragment==
"TTbar_14TeV" and '2026' in key
1948 suffix =
'_OTInefficiency',
1951 upgradeWFs[
'OTInefficiency'].percent =
'Zero' 1954 upgradeWFs[
'OTInefficiency1PC'] = deepcopy(upgradeWFs[
'OTInefficiency'])
1955 upgradeWFs[
'OTInefficiency1PC'].suffix =
'_OTInefficiency1PC' 1956 upgradeWFs[
'OTInefficiency1PC'].offset = 0.112
1957 upgradeWFs[
'OTInefficiency1PC'].percent =
'One' 1960 upgradeWFs[
'OTInefficiency5PC'] = deepcopy(upgradeWFs[
'OTInefficiency'])
1961 upgradeWFs[
'OTInefficiency5PC'].suffix =
'_OTInefficiency5PC' 1962 upgradeWFs[
'OTInefficiency5PC'].offset = 0.113
1963 upgradeWFs[
'OTInefficiency5PC'].percent =
'Five' 1966 upgradeWFs[
'OTInefficiency10PC'] = deepcopy(upgradeWFs[
'OTInefficiency'])
1967 upgradeWFs[
'OTInefficiency10PC'].suffix =
'_OTInefficiency10PC' 1968 upgradeWFs[
'OTInefficiency10PC'].offset = 0.114
1969 upgradeWFs[
'OTInefficiency10PC'].percent =
'Ten' 1975 def setup_(self, step, stepName, stepDict, k, properties):
1977 stepDict[stepName][k] =
merge([{
'--customise':
'SimTracker/SiPhase2Digitizer/customizeForPhase2TrackerSignalShape.customizeSiPhase2ITSignalShape'}, stepDict[step][k]])
1979 return '2026' in key
1990 suffix =
'_ITSignalShape',
2000 digiPremixLocalPileup = {
2001 "--filein":
"file:step1.root",
2002 "--pileup_input":
"file:step2.root" 2007 def setup_(self, step, stepName, stepDict, k, properties):
2009 stepDict[stepName][k] =
merge([stepDict[step][k]])
2010 def setupPU_(self, step, stepName, stepDict, k, properties):
2012 if "GenSim" in stepName:
2013 stepNamePmx = stepName.replace(
'GenSim',
'Premix')
2014 if not stepNamePmx
in stepDict: stepDict[stepNamePmx] = {}
2015 stepDict[stepNamePmx][k] =
merge([
2017 '-s':
'GEN,SIM,DIGI:pdigi_valid',
2018 '--datatier':
'PREMIX',
2019 '--eventcontent':
'PREMIX',
2020 '--procModifiers':
'premix_stage1' 2022 stepDict[stepName][k]
2024 if "ProdLike" in self.
suffix:
2025 stepDict[stepNamePmx][k] =
merge([{
'-s':
'GEN,SIM,DIGI'},stepDict[stepNamePmx][k]])
2027 elif "Digi" in step
or "Reco" in step:
2030 if d
is None:
return 2033 for s
in d[
"-s"].
split(
","):
2034 if s ==
"DIGI" or "DIGI:" in s:
2035 tmpsteps.extend([s,
"DATAMIX"])
2039 "--datamix" :
"PreMix",
2040 "--procModifiers":
"premix_stage2"},
2043 if "_PMXS1S2" in self.
suffix:
2044 d =
merge([digiPremixLocalPileup, d])
2045 elif "Reco" in step:
2046 if "--procModifiers" in d:
2047 d[
"--procModifiers"] +=
",premix_stage2" 2049 d[
"--procModifiers"] =
"premix_stage2" 2050 stepDict[stepName][k] = d
2056 filein = d[
"--filein"]
2057 m = re.search(
"step(?P<ind>\d+)_", filein)
2059 d[
"--filein"] = filein.replace(m.group(),
"step%d_"%(
int(m.group(
"ind"))+1))
2060 stepDict[stepName][k] = d
2066 if not any(y
in key
for y
in [
'2021',
'2023',
'2024',
'2026']):
2068 if self.
suffix.endswith(
"S1"):
2069 return "NuGun" in fragment
2071 def workflow_(self, workflows, num, fragment, stepList, key):
2072 fragmentTmp = fragment
2073 if self.
suffix.endswith(
"S1"):
2074 fragmentTmp =
'PREMIXUP' + key[2:].
replace(
"PU",
"").
replace(
"Design",
"") +
'_PU25' 2075 super(UpgradeWorkflowPremix,self).
workflow_(workflows, num, fragmentTmp, stepList, key)
2083 'GenSimHLBeamSpot14',
2111 'GenSimHLBeamSpot14',
2122 suffix =
'_PMXS1S2',
2127 def setupPU_(self, step, stepName, stepDict, k, properties):
2129 if '--pileup' in stepDict[stepName][k]:
2130 stepDict[stepName][k][
'--pileup'] =
'AVE_50_BX_25ns_m3p3' 2131 super(UpgradeWorkflowAdjustPU,self).
setupPU_(step, stepName, stepDict, k, properties)
2134 return super(UpgradeWorkflowAdjustPU,self).
condition(fragment, stepList, key, hasHarvest)
and '2026' in key
2140 'GenSimHLBeamSpot14',
2152 suffix =
'_PMXS1S2PR',
2157 def setup_(self, step, stepName, stepDict, k, properties):
2159 UpgradeWorkflowPremix.setup_(self, step, stepName, stepDict, k, properties)
2160 UpgradeWorkflow_ProdLike.setup_(self, step, stepName, stepDict, k, properties)
2165 for s
in d[
"-s"].
split(
","):
2166 if "DIGI:pdigi_valid" in s:
2167 tmpsteps.append(
"DIGI")
2171 "--eventcontent":
"PREMIXRAW"},
2173 stepDict[stepName][k] = d
2175 stepDict[stepName][k] =
merge([{
'--filein':
'file:step5.root',
'-s':
'NANO',
'--datatier':
'NANOAODSIM',
'--eventcontent':
'NANOEDMAODSIM'}, stepDict[step][k]])
2178 return UpgradeWorkflowPremix.condition(self, fragment, stepList, key, hasHarvest)
and UpgradeWorkflow_ProdLike.condition(self, fragment, stepList, key, hasHarvest)
2196 'HARVESTNanoFakeHLT',
2200 suffix =
'_PMXS2ProdLike',
2209 'GenSimHLBeamSpot14',
2223 'HARVESTNanoFakeHLT',
2227 suffix =
'_PMXS1S2ProdLike',
2232 def setup_(self, step, stepName, stepDict, k, properties):
2233 if 'HARVESTFastRun3' in step:
2234 stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@trackingOnlyDQM',
2236 '--era':
'Run3_FastSim',
2237 '--filein':
'file:step1_inDQM.root'}, stepDict[step][k]])
2239 stepDict[stepName][k] =
merge([stepDict[step][k]])
2241 return (
'2021FS' in key
or '2023FS' in key)
2252 suffix =
'_Run3FSTrackingOnly',
2257 def setup_(self, step, stepName, stepDict, k, properties):
2259 stepDict[stepName][k] =
merge([{
'-s':
'GEN,SIM,RECOBEFMIX',
2261 '--era':
'Run3_FastSim',
2262 '--eventcontent':
'FASTPU',
2263 '--datatier':
'GEN-SIM-RECO',
2264 '--relval':
'27000,3000'}, stepDict[step][k]])
2266 stepDict[stepName][k] =
None 2268 return (
'2021FS' in key
or '2023FS' in key)
and fragment==
"MinBias_14TeV" 2276 suffix =
'_Run3FSMBMixing',
2282 def setup_(self, step, stepName, stepDict, k, properties):
2283 if 'Run3' in stepDict[step][k][
'--era']
and 'Fast' not in stepDict[step][k][
'--era']:
2284 if '2023' in stepDict[step][k][
'--conditions']:
2285 stepDict[stepName][k] =
merge([{
'--geometry':
'DD4hepExtended2023'}, stepDict[step][k]])
2287 stepDict[stepName][k] =
merge([{
'--geometry':
'DD4hepExtended2021'}, stepDict[step][k]])
2288 elif 'Phase2' in stepDict[step][k][
'--era']:
2290 dd4hepGeom+=stepDict[step][k][
'--geometry']
2291 stepDict[stepName][k] =
merge([{
'--geometry' : dd4hepGeom,
'--procModifiers':
'dd4hep'}, stepDict[step][k]])
2293 return (
'2021' in key
or '2023' in key
or '2026' in key)
and (
'FS' not in key)
2298 'GenSimHLBeamSpot14',
2310 'HARVESTNanoFakeHLT',
2317 upgradeWFs[
'DD4hep'].allowReuse =
False 2322 def setup_(self, step, stepName, stepDict, k, properties):
2323 if 'Run3' in stepDict[step][k][
'--era']
and 'Fast' not in stepDict[step][k][
'--era']:
2324 stepDict[stepName][k] =
merge([{
'--conditions':
'auto:phase1_2022_realistic',
'--geometry':
'DB:Extended'}, stepDict[step][k]])
2326 return '2021' in key
and 'FS' not in key
2331 'GenSimHLBeamSpot14',
2343 'HARVESTNanoFakeHLT',
2347 suffix =
'_DD4hepDB',
2350 upgradeWFs[
'DD4hepDB'].allowReuse =
False 2353 def setup_(self, step, stepName, stepDict, k, properties):
2354 if 'Run3' in stepDict[step][k][
'--era']
and '2023' not in stepDict[step][k][
'--era']
and 'Fast' not in stepDict[step][k][
'--era']:
2356 tmp_eras = stepDict[step][k][
'--era'].
split(
',')
2357 tmp_eras[tmp_eras.index(
"Run3")] =
'Run3_DDD' 2358 tmp_eras =
','.
join(tmp_eras)
2359 stepDict[stepName][k] =
merge([{
'--conditions':
'auto:phase1_2022_realistic_ddd',
'--geometry':
'DB:Extended',
'--era': tmp_eras}, stepDict[step][k]])
2361 return '2021' in key
and 'FS' not in key
2366 'GenSimHLBeamSpot14',
2378 'HARVESTNanoFakeHLT',
2385 upgradeWFs[
'DDDDB'].allowReuse =
False 2388 def setup_(self, step, stepName, stepDict, k, properties):
2389 stepDict[stepName][k] =
merge([{
'--procModifiers':
'allSonicTriton'}, stepDict[step][k]])
2391 return (fragment==
'TTbar_13' and '2021' in key) \
2392 or (fragment==
'TTbar_14TeV' and '2026' in key)
2397 'GenSimHLBeamSpot14',
2409 'HARVESTNanoFakeHLT',
2415 'GenSimHLBeamSpot14',
2427 'HARVESTNanoFakeHLT',
2430 suffix =
'_SonicTriton',
2435 offsets = [specialWF.offset
for specialType,specialWF
in upgradeWFs.items()]
2437 dups = set(x
for x
in offsets
if x
in seen
or seen.add(x))
2439 raise ValueError(
"Duplicate special workflow offsets not allowed: "+
','.
join([
str(x)
for x
in dups]))
2441 upgradeProperties = {}
2443 upgradeProperties[2017] = {
2445 'Geom' :
'DB:Extended',
2446 'GT' :
'auto:phase1_2017_realistic',
2447 'HLTmenu':
'@relval2017',
2448 'Era' :
'Run2_2017',
2449 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT',
'ALCA',
'Nano'],
2452 'Geom' :
'DB:Extended',
2453 'GT' :
'auto:phase1_2017_design',
2454 'HLTmenu':
'@relval2017',
2455 'Era' :
'Run2_2017',
2456 'BeamSpot':
'GaussSigmaZ4cm',
2457 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT'],
2460 'Geom' :
'DB:Extended',
2461 'GT' :
'auto:phase1_2018_realistic',
2462 'HLTmenu':
'@relval2018',
2463 'Era' :
'Run2_2018',
2464 'BeamSpot':
'Realistic25ns13TeVEarly2018Collision',
2465 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT',
'ALCA',
'Nano'],
2468 'Geom' :
'DB:Extended',
2469 'GT' :
'auto:phase1_2018_design',
2470 'HLTmenu':
'@relval2018',
2471 'Era' :
'Run2_2018',
2472 'BeamSpot':
'GaussSigmaZ4cm',
2473 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT'],
2476 'Geom' :
'DB:Extended',
2477 'GT' :
'auto:phase1_2022_realistic',
2478 'HLTmenu':
'@relval2022',
2480 'BeamSpot':
'Realistic25ns13p6TeVEOY2022Collision',
2481 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNanoFakeHLT',
'HARVESTNanoFakeHLT',
'ALCA'],
2484 'Geom' :
'DB:Extended',
2485 'GT' :
'auto:phase1_2022_design',
2486 'HLTmenu':
'@relval2022',
2488 'BeamSpot':
'GaussSigmaZ4cm',
2489 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNanoFakeHLT',
'HARVESTNanoFakeHLT'],
2492 'Geom' :
'DB:Extended',
2493 'GT' :
'auto:phase1_2023_realistic',
2494 'HLTmenu':
'@relval2023',
2495 'Era' :
'Run3_2023',
2496 'BeamSpot':
'Realistic25ns13p6TeVEarly2023Collision',
2497 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
2500 'Geom' :
'DB:Extended',
2501 'GT' :
'auto:phase1_2024_realistic',
2502 'HLTmenu':
'@relval2023',
2504 'BeamSpot':
'Realistic25ns13p6TeVEarly2022Collision',
2505 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
2508 'Geom' :
'DB:Extended',
2509 'GT' :
'auto:phase1_2022_realistic',
2510 'HLTmenu':
'@relval2022',
2511 'Era' :
'Run3_FastSim',
2512 'BeamSpot':
'Realistic25ns13p6TeVEarly2022Collision',
2513 'ScenToRun' : [
'Gen',
'FastSimRun3',
'HARVESTFastRun3'],
2516 'Geom' :
'DB:Extended',
2517 'GT' :
'auto:phase1_2022_realistic_postEE',
2518 'HLTmenu':
'@relval2022',
2520 'BeamSpot':
'Realistic25ns13p6TeVEarly2022Collision',
2521 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNanoFakeHLT',
'HARVESTNanoFakeHLT',
'ALCA'],
2524 'Geom' :
'DB:Extended',
2525 'GT' :
'auto:phase1_2023_realistic',
2526 'HLTmenu':
'@relval2023',
2527 'Era' :
'Run3_2023_FastSim',
2528 'BeamSpot':
'Realistic25ns13p6TeVEarly2023Collision',
2529 'ScenToRun' : [
'Gen',
'FastSimRun3',
'HARVESTFastRun3'],
2534 for key
in list(upgradeProperties[2017].
keys()):
2535 upgradeProperties[2017][key+
'PU'] = deepcopy(upgradeProperties[2017][key])
2538 scenToRun = upgradeProperties[2017][key+
'PU'][
'ScenToRun']
2539 for idx,val
in enumerate(scenToRun):
2541 scenToRun[idx] +=
'PU'*(val.startswith(
'Digi')
or val.startswith(
'Reco')
or val.startswith(
'HARVEST'))
2543 upgradeProperties[2017][key+
'PU'][
'ScenToRun'] = [foo
for foo
in scenToRun
if foo !=
'ALCA']
2545 upgradeProperties[2017][key+
'PU'][
'ScenToRun'] = [
'Gen',
'FastSimRun3PU',
'HARVESTFastRun3PU']
2547 upgradeProperties[2026] = {
2549 'Geom' :
'Extended2026D86',
2550 'HLTmenu':
'@fake2',
2551 'GT' :
'auto:phase2_realistic_T21',
2552 'Era' :
'Phase2C17I13M9',
2553 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2556 'Geom' :
'Extended2026D88',
2557 'HLTmenu':
'@relval2026',
2558 'GT' :
'auto:phase2_realistic_T21',
2559 'Era' :
'Phase2C17I13M9',
2560 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2563 'Geom' :
'Extended2026D91',
2564 'HLTmenu':
'@fake2',
2565 'GT' :
'auto:phase2_realistic_T30',
2566 'Era' :
'Phase2C17I13M9',
2567 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2570 'Geom' :
'Extended2026D92',
2571 'HLTmenu':
'@fake2',
2572 'GT' :
'auto:phase2_realistic_T21',
2573 'Era' :
'Phase2C17I13M9',
2574 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2577 'Geom' :
'Extended2026D93',
2578 'HLTmenu':
'@fake2',
2579 'GT' :
'auto:phase2_realistic_T21',
2580 'Era' :
'Phase2C17I13M9',
2581 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2584 'Geom' :
'Extended2026D94',
2585 'HLTmenu':
'@fake2',
2586 'GT' :
'auto:phase2_realistic_T21',
2587 'Era' :
'Phase2C20I13M9',
2588 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2591 'Geom' :
'Extended2026D95',
2592 'HLTmenu':
'@relval2026',
2593 'GT' :
'auto:phase2_realistic_T21',
2594 'Era' :
'Phase2C17I13M9',
2595 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2598 'Geom' :
'Extended2026D96',
2599 'HLTmenu':
'@fake2',
2600 'GT' :
'auto:phase2_realistic_T21',
2601 'Era' :
'Phase2C17I13M9',
2602 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2605 'Geom' :
'Extended2026D97',
2606 'HLTmenu':
'@fake2',
2607 'GT' :
'auto:phase2_realistic_T25',
2608 'Era' :
'Phase2C17I13M9',
2609 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2612 'Geom' :
'Extended2026D98',
2613 'HLTmenu':
'@fake2',
2614 'GT' :
'auto:phase2_realistic_T25',
2615 'Era' :
'Phase2C17I13M9',
2616 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2619 'Geom' :
'Extended2026D99',
2620 'HLTmenu':
'@fake2',
2621 'GT' :
'auto:phase2_realistic_T25',
2622 'Era' :
'Phase2C17I13M9',
2623 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'],
2628 for key
in list(upgradeProperties[2026].
keys()):
2629 upgradeProperties[2026][key+
'PU'] = deepcopy(upgradeProperties[2026][key])
2630 upgradeProperties[2026][key+
'PU'][
'ScenToRun'] = [
'GenSimHLBeamSpot',
'DigiTriggerPU',
'RecoGlobalPU',
'HARVESTGlobalPU']
2633 defaultDataSets = {}
2634 for year
in upgradeKeys:
2635 for key
in upgradeKeys[year]:
2636 if 'PU' in key:
continue 2637 defaultDataSets[key] =
'' 2645 upgradeFragments = OrderedDict([
2647 (
'SingleElectronPt10_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronPt10')),
2648 (
'SingleElectronPt35_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronPt35')),
2649 (
'SingleElectronPt1000_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SingleElectronPt1000')),
2656 (
'FourMuExtendedPt_1_200_pythia8_cfi',
UpgradeFragment(
Kby(10,100),
'FourMuExtendedPt1_200')),
2657 (
'TenMuExtendedE_0_200_pythia8_cfi',
UpgradeFragment(
Kby(10,100),
'TenMuExtendedE_0_200')),
2658 (
'DoubleElectronPt10Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElPt10Extended')),
2659 (
'DoubleElectronPt35Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElPt35Extended')),
2660 (
'DoubleElectronPt1000Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SingleElPt1000Extended')),
2661 (
'DoubleGammaPt10Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleGammaPt10Extended')),
2662 (
'DoubleGammaPt35Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SingleGammaPt35Extended')),
2663 (
'DoubleMuPt1Extended_pythia8_cfi',
UpgradeFragment(
Kby(25,100),
'SingleMuPt1Extended')),
2664 (
'DoubleMuPt10Extended_pythia8_cfi',
UpgradeFragment(
Kby(25,100),
'SingleMuPt10Extended')),
2665 (
'DoubleMuPt100Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleMuPt100Extended')),
2666 (
'DoubleMuPt1000Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleMuPt1000Extended')),
2669 (
'MinBias_13TeV_pythia8_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(90,100),
'MinBias_13')),
2672 (
'QCD_Pt_600_800_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_600_800_13')),
2673 (
'Wjet_Pt_80_120_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'Wjet_Pt_80_120_14TeV')),
2674 (
'Wjet_Pt_3000_3500_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Wjet_Pt_3000_3500_14TeV')),
2676 (
'QCD_Pt_3000_3500_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_3000_3500_14TeV')),
2677 (
'QCD_Pt_80_120_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'QCD_Pt_80_120_14TeV')),
2678 (
'H200ChargedTaus_Tauola_14TeV_cfi',
UpgradeFragment(
Kby(9,100),
'Higgs200ChargedTaus_14TeV')),
2682 (
'ZTT_Tauola_All_hadronic_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,100),
'ZTT_14TeV')),
2683 (
'H130GGgluonfusion_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'H130GGgluonfusion_14TeV')),
2684 (
'PhotonJet_Pt_10_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'PhotonJets_Pt_10_14TeV')),
2685 (
'QQH1352T_Tauola_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'QQH1352T_Tauola_14TeV')),
2689 (
'QCDForPF_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(50,100),
'QCD_FlatPt_15_3000HS_14')),
2691 (
'DYToTauTau_M-50_14TeV_pythia8_tauola_cff',
UpgradeFragment(
Kby(9,100),
'DYtoTauTau_M_50_14TeV')),
2693 (
'QCD_Pt_80_120_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'QCD_Pt_80_120_13')),
2694 (
'H125GGgluonfusion_13TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'H125GGgluonfusion_13')),
2695 (
'QCD_Pt20toInf_MuEnrichedPt15_14TeV_TuneCP5_cff',
UpgradeFragment(
Kby(19565, 217391),
'QCD_Pt20toInfMuEnrichPt15_14')),
2697 (
'QCD_Pt15To7000_Flat_14TeV_TuneCP5_cff',
UpgradeFragment(
Kby(9,50),
'QCD_Pt15To7000_Flat_14')),
2698 (
'H125GGgluonfusion_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'H125GGgluonfusion_14')),
2699 (
'QCD_Pt_600_800_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_600_800_14')),
2702 (
'H200ChargedTaus_Tauola_13TeV_cfi',
UpgradeFragment(
Kby(9,50),
'Higgs200ChargedTaus_13')),
2703 (
'ADDMonoJet_13TeV_d3MD3_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'ADDMonoJet_d3MD3_13')),
2705 (
'QCD_Pt_3000_3500_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_3000_3500_13')),
2712 (
'PhotonJet_Pt_10_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'PhotonJets_Pt_10_13')),
2714 (
'Wjet_Pt_80_120_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Wjet_Pt_80_120_13')),
2715 (
'Wjet_Pt_3000_3500_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Wjet_Pt_3000_3500_13')),
2716 (
'SMS-T1tttt_mGl-1500_mLSP-100_13TeV-pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SMS-T1tttt_mGl-1500_mLSP-100_13')),
2717 (
'QCDForPF_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(50,100),
'QCD_FlatPt_15_3000HS_13')),
2718 (
'PYTHIA8_PhiToMuMu_TuneCUETP8M1_13TeV_cff',
UpgradeFragment(
Kby(9,50),
'PhiToMuMu_13')),
2719 (
'RSKKGluon_m3000GeV_13TeV_TuneCUETP8M1_cff',
UpgradeFragment(
Kby(9,50),
'RSKKGluon_m3000GeV_13')),
2723 (
'Upsilon1SToMuMu_forSTEAM_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Upsilon1SToMuMu_13')),
2724 (
'EtaBToJpsiJpsi_forSTEAM_TuneCUEP8M1_13TeV_cfi',
UpgradeFragment(
Kby(9,50),
'EtaBToJpsiJpsi_13')),
2725 (
'JpsiMuMu_Pt-8_forSTEAM_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(3100,100000),
'JpsiMuMu_Pt-8')),
2726 (
'BuMixing_BMuonFilter_forSTEAM_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(900,10000),
'BuMixing_13')),
2727 (
'HSCPstop_M_200_TuneCUETP8M1_13TeV_pythia8_cff',
UpgradeFragment(
Kby(9,50),
'HSCPstop_M_200_13')),
2728 (
'RSGravitonToGammaGamma_kMpl01_M_3000_TuneCUETP8M1_13TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'RSGravitonToGaGa_13')),
2729 (
'WprimeToENu_M-2000_TuneCUETP8M1_13TeV-pythia8_cff',
UpgradeFragment(
Kby(9,50),
'WpToENu_M-2000_13')),
2730 (
'DisplacedSUSY_stopToBottom_M_800_500mm_TuneCP5_13TeV_pythia8_cff',
UpgradeFragment(
Kby(9,50),
'DisplacedSUSY_stopToB_M_800_500mm_13')),
2732 (
'FlatRandomPtAndDxyGunProducer_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuonsDxy_0_500')),
2734 (
'SinglePiPt25Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SinglePiPt25Eta1p7_2p7')),
2735 (
'SingleMuPt15Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SingleMuPt15Eta1p7_2p7')),
2736 (
'SingleGammaPt25Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SingleGammaPt25Eta1p7_2p7')),
2737 (
'SingleElectronPt15Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronPt15Eta1p7_2p7')),
2739 (
'CloseByParticle_Photon_ERZRanges_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByParticleGun')),
2740 (
'CE_E_Front_300um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_E_Front_300um')),
2741 (
'CE_E_Front_200um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_E_Front_200um')),
2742 (
'CE_E_Front_120um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_E_Front_120um')),
2746 (
'CE_H_Coarse_Scint_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_H_Coarse_Scint')),
2747 (
'CE_H_Coarse_300um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_H_Coarse_300um')),
2748 (
'SingleElectronFlatPt2To100_cfi',
UpgradeFragment(
Kby(9,100),
'SingleEFlatPt2To100')),
2751 (
'SingleGammaFlatPt8To150_cfi',
UpgradeFragment(
Kby(9,100),
'SingleGammaFlatPt8To150')),
2754 (
'FlatRandomPtAndDxyGunProducer_MuPt2To10_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt2To10')),
2755 (
'FlatRandomPtAndDxyGunProducer_MuPt10To30_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt10To30')),
2756 (
'FlatRandomPtAndDxyGunProducer_MuPt30To100_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt30To100')),
2757 (
'B0ToKstarMuMu_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(304,3030),
'B0ToKstarMuMu_14TeV')),
2759 (
'BsToJpsiGamma_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(2500,25000),
'BsToJpsiGamma_14TeV')),
2760 (
'BsToJpsiPhi_mumuKK_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(910,9090),
'BsToJpsiPhi_mumuKK_14TeV')),
2762 (
'BsToPhiPhi_KKKK_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(556,5555),
'BsToPhiPhi_KKKK_14TeV')),
2763 (
'TauToMuMuMu_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(18939,189393),
'TauToMuMuMu_14TeV')),
2764 (
'BdToKstarEleEle_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(206,2061),
'BdToKstarEleEle_14TeV')),
2766 (
'BuMixing_BMuonFilter_forSTEAM_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(900,10000),
'BuMixing_14')),
2767 (
'Upsilon1SToMuMu_forSTEAM_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'Upsilon1SToMuMu_14')),
2768 (
'TenTau_E_15_500_Eta3p1_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'TenTau_15_500_Eta3p1')),
2769 (
'QCD_Pt_1800_2400_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_1800_2400_14')),
2770 (
'DisplacedSUSY_stopToBottom_M_800_500mm_TuneCP5_14TeV_pythia8_cff',
UpgradeFragment(
Kby(9,50),
'DisplacedSUSY_14TeV')),
2771 (
'GluGluTo2Jets_M_300_2000_14TeV_Exhume_cff',
UpgradeFragment(
Kby(9,100),
'GluGluTo2Jets_14TeV')),
2772 (
'TTbarToDilepton_mt172p5_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'TTbarToDilepton_14TeV')),
2773 (
'QQToHToTauTau_mh125_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'QQToHToTauTau_14TeV')),
2774 (
'ZpToEE_m6000_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'ZpToEE_m6000_14TeV')),
2775 (
'ZpToMM_m6000_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'ZpToMM_m6000_14TeV')),
2776 (
'SMS-T1tttt_mGl-1500_mLSP-100_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SMS-T1tttt_14TeV')),
2777 (
'VBFHZZ4Nu_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'VBFHZZ4Nu_14TeV')),
2778 (
'EtaBToJpsiJpsi_14TeV_TuneCP5_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'EtaBToJpsiJpsi_14TeV')),
2780 (
'WprimeToLNu_M2000_14TeV_TuneCP5_pythia8_cfi',
UpgradeFragment(
Kby(21,50),
'WprimeToLNu_M2000_14TeV')),
2782 (
'DoubleElectronFlatPt1p5To8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronFlatPt1p5To8')),
2783 (
'DoubleMuFlatPt1p5To8Dxy100GunProducer_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt1p5To8Dxy100')),
2784 (
'DoubleMuFlatPt2To100Dxy100GunProducer_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt2To100Dxy100')),
2785 (
'BuToJPsiPrimeKToJPsiPiPiK_14TeV_TuneCP5_pythia8_cfi',
UpgradeFragment(
Kby(223,2222),
'BuToJPsiPrimeKToJPsiPiPiK_14TeV')),
2786 (
'Psi2SToJPsiPiPi_14TeV_TuneCP5_pythia8_cfi',
UpgradeFragment(
Kby(45,500),
'Psi2SToJPsiPiPi_14TeV')),
2787 (
'XiMinus_13p6TeV_SoftQCDInel_TuneCP5_cfi',
UpgradeFragment(
Kby(8000,90000),
'XiMinus_13p6TeV')),
2788 (
'Chib1PToUpsilon1SGamma_MuFilter_TuneCP5_14TeV-pythia8_evtgen_cfi',
UpgradeFragment(
Kby(3600,36000),
'Chib1PToUpsilon1SGamma_14TeV')),
2789 (
'ChicToJpsiGamma_MuFilter_TuneCP5_14TeV_pythia8_evtgen_cfi',
UpgradeFragment(
Kby(2000,20000),
'ChicToJpsiGamma_14TeV')),
2790 (
'B0ToJpsiK0s_JMM_Filter_DGamma0_TuneCP5_13p6TeV-pythia8-evtgen_cfi',
UpgradeFragment(
Kby(38000,38000),
'B0ToJpsiK0s_DGamma0_13p6TeV')),
2791 (
'DStarToD0Pi_D0ToKsPiPi_inclusive_SoftQCD_TuneCP5_13p6TeV-pythia8-evtgen',
UpgradeFragment(
Kby(38000,38000),
'DStarToD0Pi_D0ToKsPiPi_13p6TeV')),
2792 (
'LbToJpsiLambda_JMM_Filter_DGamma0_TuneCP5_13p6TeV-pythia8-evtgen_cfi',
UpgradeFragment(
Mby(66,660000),
'LbToJpsiLambda_DGamma0_13p6TeV')),
2793 (
'LbToJpsiXiK0sPi_JMM_Filter_DGamma0_TuneCP5_13p6TeV-pythia8-evtgen_cfi',
UpgradeFragment(
Mby(50,500000),
'LbToJpsiXiK0sPr_DGamma0_13p6TeV')),
2794 (
'OmegaMinus_13p6TeV_SoftQCDInel_TuneCP5_cfi',
UpgradeFragment(
Mby(100,1000000),
'OmegaMinus_13p6TeV')),
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 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 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 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 __init__(self, digi={}, reco={}, harvest={}, kwargs)