1 from copy
import copy, deepcopy
2 from collections
import OrderedDict
3 from .MatrixUtil
import merge, Kby
73 numWFConflict = [[20000,23200],[23600,28200],[28600,31400],[31800,32200],[32600,34600],[50000,51000]]
79 for year
in upgradeKeys:
80 for i
in range(0,len(upgradeKeys[year])):
81 numWFtmp = numWFStart[year]
if i==0
else (numWFAll[year][i-1] + numWFSkip)
82 for conflict
in numWFConflict:
83 if numWFtmp>=conflict[0]
and numWFtmp<conflict[1]:
84 numWFtmp = conflict[1]
86 numWFAll[year].
append(numWFtmp)
93 preventReuseKeyword =
'NOREUSE'
102 if not step
in self.
steps:
103 self.steps.append(step)
109 raise ValueError(
"Special workflow offset must be between 0.0 and 1.0")
111 stepName = step + self.
suffix + extra
114 stepNamePU = step +
'PU' + self.
suffix + extra
117 for step
in self.
steps:
123 def setup(self, stepDict, k, properties):
124 for step
in self.
steps:
131 def setup_(self, step, stepName, stepDict, k, properties):
133 def setupPU_(self, step, stepName, stepDict, k, properties):
135 def workflow(self, workflows, num, fragment, stepList, key, hasHarvest):
136 if self.condition(fragment, stepList, key, hasHarvest):
137 self.workflow_(workflows, num, fragment, stepList, key)
138 def workflow_(self, workflows, num, fragment, stepList, key):
139 fragmentTmp = [fragment, key]
141 workflows[num+self.
offset] = [ fragmentTmp, stepList ]
142 def condition(self, fragment, stepList, key, hasHarvest):
145 if "Sim" in stepName:
146 stepDict[stepName][k] =
None
147 upgradeWFs = OrderedDict()
150 def setup_(self, step, stepName, stepDict, k, properties):
151 cust=properties.get(
'Custom',
None)
152 era=properties.get(
'Era',
None)
153 modifier=properties.get(
'ProcessModifier',
None)
154 if cust
is not None: stepDict[stepName][k][
'--customise']=cust
156 stepDict[stepName][k][
'--era']=era
157 if modifier
is not None: stepDict[stepName][k][
'--procModifier']=modifier
158 def condition(self, fragment, stepList, key, hasHarvest):
164 'GenSimHLBeamSpot14',
165 'GenSimHLBeamSpotHGCALCloseBy',
207 steps = steps + [
"ALCA",
"Nano"]
208 super().
__init__(steps, [], suffix, offset)
209 def condition(self, fragment, stepList, key, hasHarvest):
210 result = (fragment==
"TTbar_13" or fragment==
"TTbar_14TeV")
and not 'PU' in key
and hasHarvest
and self.
condition_(fragment, stepList, key, hasHarvest)
214 def setup_(self, step, stepName, stepDict, k, properties):
216 if 'ALCA' in step
or 'Nano'==step:
217 stepDict[stepName][k] =
None
218 self.
setup__(step, stepName, stepDict, k, properties)
220 def setup__(self, step, stepName, stepDict, k, properties):
223 class UpgradeWorkflow_trackingOnly(UpgradeWorkflowTracking):
224 def setup__(self, step, stepName, stepDict, k, properties):
225 if 'Reco' in step: stepDict[stepName][k] =
merge([self.step3, stepDict[step][k]])
226 elif 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@trackingOnlyDQM'}, stepDict[step][k]])
236 suffix =
'_trackingOnly',
239 upgradeWFs[
'trackingOnly'].step3 = {
240 '-s':
'RAW2DIGI,RECO:reconstruction_trackingOnly,VALIDATION:@trackingOnlyValidation,DQM:@trackingOnlyDQM',
241 '--datatier':
'GEN-SIM-RECO,DQMIO',
242 '--eventcontent':
'RECOSIM,DQM',
245 step3_trackingOnly = upgradeWFs[
'trackingOnly'].step3
248 def setup__(self, step, stepName, stepDict, k, properties):
249 if 'Reco' in step
and stepDict[step][k][
'--era']==
'Run2_2017':
250 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2017_trackingRun2'}, stepDict[step][k]])
257 suffix =
'_trackingRun2',
262 def setup__(self, step, stepName, stepDict, k, properties):
263 if 'Reco' in step
and stepDict[step][k][
'--era']==
'Run2_2017':
264 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2017_trackingRun2'}, self.step3, stepDict[step][k]])
265 elif 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@trackingOnlyDQM'}, stepDict[step][k]])
273 suffix =
'_trackingOnlyRun2',
276 upgradeWFs[
'trackingOnlyRun2'].step3 = upgradeWFs[
'trackingOnly'].step3
279 def setup__(self, step, stepName, stepDict, k, properties):
280 if 'Reco' in step
and stepDict[step][k][
'--era']==
'Run2_2017':
281 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2017_trackingLowPU'}, stepDict[step][k]])
288 suffix =
'_trackingLowPU',
293 def setup__(self, step, stepName, stepDict, k, properties):
294 if 'Reco' in step: stepDict[stepName][k] =
merge([self.step3, stepDict[step][k]])
295 elif 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM'}, stepDict[step][k]])
297 return '2017' in key
or '2018' in key
or '2021' in key
307 suffix =
'_pixelTrackingOnly',
310 upgradeWFs[
'pixelTrackingOnly'].step3 = {
311 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
312 '--datatier':
'GEN-SIM-RECO,DQMIO',
313 '--eventcontent':
'RECOSIM,DQM',
317 def setup__(self, step, stepName, stepDict, k, properties):
318 if 'Digi' in step: stepDict[stepName][k] =
merge([self.step2, stepDict[step][k]])
319 if 'Reco' in step: stepDict[stepName][k] =
merge([self.step3, stepDict[step][k]])
321 return '2017' in key
or '2021' in key
330 suffix =
'_trackingMkFit',
333 upgradeWFs[
'trackingMkFit'].step2 = {
334 '--customise':
'RecoTracker/MkFit/customizeHLTIter0ToMkFit.customizeHLTIter0ToMkFit'
336 upgradeWFs[
'trackingMkFit'].step3 = {
337 '--procModifiers':
'trackingMkFit'
342 def setup_(self, step, stepName, stepDict, k, properties):
344 if 'ALCA' in step
or 'Nano'==step:
345 stepDict[stepName][k] =
None
346 elif 'Reco' in step
or 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'--procModifiers':
'seedingDeepCore'}, stepDict[step][k]])
347 def condition(self, fragment, stepList, key, hasHarvest):
348 result = (fragment==
"QCD_Pt_1800_2400_14" or fragment==
"TTbar_14TeV" )
and (
'2021' in key
or '2024' in key)
and hasHarvest
362 suffix =
'_seedingDeepCore',
368 def setup_(self, step, stepName, stepDict, k, properties):
369 stepDict[stepName][k] =
merge([{
'--procModifiers':
'vectorHits'}, stepDict[step][k]])
370 def condition(self, fragment, stepList, key, hasHarvest):
371 return fragment==
"TTbar_14TeV" and '2026' in key
380 suffix =
'_vectorHits',
387 def setup_(self, step, stepName, stepDict, k, properties):
388 stepDict[stepName][k] =
merge([{
'--procModifiers':
'trackdnn'}, stepDict[step][k]])
390 def condition(self, fragment, stepList, key, hasHarvest):
391 return fragment==
"TTbar_14TeV" and '2021' in key
401 suffix =
'_trackdnn',
408 def setup_(self, step, stepName, stepDict, k, properties):
410 stepDict[stepName][k] =
merge([self.step3, stepDict[step][k]])
411 def condition(self, fragment, stepList, key, hasHarvest):
412 return fragment==
"TTbar_14TeV" and '2021' in key
426 upgradeWFs[
'mlpf'].step3 = {
427 '--datatier':
'GEN-SIM-RECO,RECOSIM,MINIAODSIM,NANOAODSIM,DQMIO',
428 '--eventcontent':
'FEVTDEBUGHLT,RECOSIM,MINIAODSIM,NANOEDMAODSIM,DQM',
429 '--procModifiers':
'mlpf'
438 def __init__(self, digi = {}, reco = {}, harvest = {}, **kwargs):
440 super(PatatrackWorkflow, self).
__init__(
460 '--datatier':
'GEN-SIM-RECO,DQMIO',
461 '--eventcontent':
'RECOSIM,DQM'
465 def condition(self, fragment, stepList, key, hasHarvest):
468 (
'2018' in key
and fragment ==
"TTbar_13"),
469 (
'2021' in key
and fragment ==
"TTbar_14TeV"),
470 (
'2018' in key
and fragment ==
"ZMM_13"),
471 (
'2021' in key
and fragment ==
"ZMM_14"),
473 result =
any(selected)
and hasHarvest
477 def setup_(self, step, stepName, stepDict, k, properties):
479 if 'ALCA' in step
or 'Nano'==step:
480 stepDict[stepName][k] =
None
483 stepDict[stepName][k] =
None
485 stepDict[stepName][k] =
merge([self.
__digi, stepDict[step][k]])
488 stepDict[stepName][k] =
None
490 stepDict[stepName][k] =
merge([self.
__reco, stepDict[step][k]])
491 elif 'HARVEST' in step:
493 stepDict[stepName][k] =
None
495 stepDict[stepName][k] =
merge([self.
__harvest, stepDict[step][k]])
503 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
504 '--procModifiers':
'pixelNtupletFit'
507 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM'
509 suffix =
'Patatrack_PixelOnlyCPU',
515 '--procModifiers':
'gpu'
518 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
519 '--procModifiers':
'pixelNtupletFit,gpu'
522 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM'
524 suffix =
'Patatrack_PixelOnlyGPU',
532 '--procModifiers':
'gpu'
535 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly',
536 '--procModifiers':
'pixelNtupletFit,gpu',
537 '--customise' :
'RecoTracker/Configuration/customizePixelOnlyForProfiling.customizePixelOnlyForProfilingGPUOnly'
540 suffix =
'Patatrack_PixelOnlyGPU_Profiling',
549 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
550 '--procModifiers':
'pixelNtupletFit',
551 '--customise' :
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets'
554 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM'
556 suffix =
'Patatrack_PixelOnlyTripletsCPU',
562 '--procModifiers':
'gpu',
563 '--customise':
'HLTrigger/Configuration/customizeHLTforPatatrack.enablePatatrackPixelTriplets'
566 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
567 '--procModifiers':
'pixelNtupletFit,gpu',
568 '--customise':
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets'
571 '-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM'
573 suffix =
'Patatrack_PixelOnlyTripletsGPU',
581 '--procModifiers':
'gpu',
582 '--customise':
'HLTrigger/Configuration/customizeHLTforPatatrack.enablePatatrackPixelTriplets'
585 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly',
586 '--procModifiers':
'pixelNtupletFit,gpu',
587 '--customise':
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets,RecoTracker/Configuration/customizePixelOnlyForProfiling.customizePixelOnlyForProfilingGPUOnly'
590 suffix =
'Patatrack_PixelOnlyTripletsGPU_Profiling',
596 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly',
599 '-s':
'HARVESTING:@ecalOnlyValidation+@ecal'
601 suffix =
'Patatrack_ECALOnlyCPU',
607 '--procModifiers':
'gpu'
610 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly',
611 '--procModifiers':
'gpu'
614 '-s':
'HARVESTING:@ecalOnlyValidation+@ecal'
616 suffix =
'Patatrack_ECALOnlyGPU',
624 '--procModifiers':
'gpu'
627 '-s':
'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly',
628 '--procModifiers':
'gpu',
629 '--customise' :
'RecoLocalCalo/Configuration/customizeEcalOnlyForProfiling.customizeEcalOnlyForProfilingGPUOnly'
632 suffix =
'Patatrack_ECALOnlyGPU_Profiling',
638 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only',
641 '-s':
'HARVESTING:@hcalOnlyValidation+@hcalOnly+@hcal2Only'
643 suffix =
'Patatrack_HCALOnlyCPU',
649 '--procModifiers':
'gpu'
652 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only',
653 '--procModifiers':
'gpu'
656 '-s':
'HARVESTING:@hcalOnlyValidation+@hcalOnly+@hcal2Only'
658 suffix =
'Patatrack_HCALOnlyGPU',
666 '--procModifiers':
'gpu'
669 '-s':
'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly',
670 '--procModifiers':
'gpu',
671 '--customise' :
'RecoLocalCalo/Configuration/customizeHcalOnlyForProfiling.customizeHcalOnlyForProfilingGPUOnly'
674 suffix =
'Patatrack_HCALOnlyGPU_Profiling',
684 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,EI,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
685 '--procModifiers':
'pixelNtupletFit'
689 suffix =
'Patatrack_CPU',
695 '--procModifiers':
'gpu'
699 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,EI,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
700 '--procModifiers':
'pixelNtupletFit,gpu'
704 suffix =
'Patatrack_GPU',
714 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,EI,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
715 '--procModifiers':
'pixelNtupletFit',
716 '--customise' :
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets'
720 suffix =
'Patatrack_TripletsCPU',
726 '--procModifiers':
'gpu',
727 '--customise':
'HLTrigger/Configuration/customizeHLTforPatatrack.enablePatatrackPixelTriplets'
731 '-s':
'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,EI,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM',
732 '--procModifiers':
'pixelNtupletFit,gpu',
733 '--customise':
'RecoPixelVertexing/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets'
737 suffix =
'Patatrack_TripletsGPU',
744 def setup_(self, step, stepName, stepDict, k, properties):
745 if 'GenSimHLBeamSpot14' in step:
746 stepDict[stepName][k] =
merge([{
'--eventcontent':
'RAWSIM',
'--datatier':
'GEN-SIM'},stepDict[step][k]])
747 elif 'Digi' in step
and 'Trigger' not in step:
748 stepDict[stepName][k] =
merge([{
'-s':
'DIGI,L1,DIGI2RAW,HLT:@relval2021',
'--datatier':
'GEN-SIM-RAW',
'--eventcontent':
'RAWSIM'}, stepDict[step][k]])
749 elif 'DigiTrigger' in step:
750 stepDict[stepName][k] =
merge([{
'-s':
'DIGI,L1TrackTrigger,L1,DIGI2RAW,HLT:@fake2',
'--datatier':
'GEN-SIM-RAW',
'--eventcontent':
'RAWSIM'}, stepDict[step][k]])
752 stepDict[stepName][k] =
merge([{
'-s':
'RAW2DIGI,L1Reco,RECO,RECOSIM',
'--datatier':
'AODSIM',
'--eventcontent':
'AODSIM'}, stepDict[step][k]])
753 elif 'MiniAOD' in step:
755 stepDict[stepName][k] = deepcopy(stepDict[step][k])
756 elif 'ALCA' in step
or 'HARVEST' in step:
758 stepDict[stepName][k] =
None
760 stepDict[stepName][k] =
merge([{
'--filein':
'file:step4.root',
'-s':
'NANO',
'--datatier':
'NANOAODSIM',
'--eventcontent':
'NANOEDMAODSIM'}, stepDict[step][k]])
761 def condition(self, fragment, stepList, key, hasHarvest):
762 return fragment==
"TTbar_14TeV" and (
'2026' in key
or '2021' in key)
765 'GenSimHLBeamSpot14',
779 'GenSimHLBeamSpot14',
792 suffix =
'_ProdLike',
797 def setup_(self, step, stepName, stepDict, k, properties):
799 custNew =
"SimG4Core/Application/NeutronBGforMuonsXS_cff.customise"
801 custNew =
"SLHCUpgradeSimulations/Configuration/customise_mixing.customise_Mix_LongLived_Neutrons"
802 stepDict[stepName][k] = deepcopy(stepDict[step][k])
803 if '--customise' in stepDict[stepName][k].
keys():
804 stepDict[stepName][k][
'--customise'] +=
","+custNew
806 stepDict[stepName][k][
'--customise'] = custNew
807 def condition(self, fragment, stepList, key, hasHarvest):
808 return any(fragment==nfrag
for nfrag
in self.neutronFrags)
and any(nkey
in key
for nkey
in self.neutronKeys)
813 'GenSimHLBeamSpot14',
825 upgradeWFs[
'Neutron'].neutronKeys = [x
for x
in upgradeKeys[2026]
if 'PU' not in x]
826 upgradeWFs[
'Neutron'].neutronFrags = [
'ZMM_14',
'MinBias_14TeV']
829 def setup_(self, step, stepName, stepDict, k, properties):
830 stepDict[stepName][k] =
merge([{
'--procModifiers':
'run2_HECollapse_2018'}, stepDict[step][k]])
831 def condition(self, fragment, stepList, key, hasHarvest):
832 return fragment==
"TTbar_13" and '2018' in key
846 suffix =
'_heCollapse',
851 def setup_(self, step, stepName, stepDict, k, properties):
853 mods = {
'--era': stepDict[step][k][
'--era']+
',phase2_ecal_devel'}
855 mods[
'-s'] =
'DIGI:pdigi_valid'
856 stepDict[stepName][k] =
merge([mods, stepDict[step][k]])
857 def condition(self, fragment, stepList, key, hasHarvest):
858 return fragment==
"TTbar_14TeV" and '2026' in key
870 suffix =
'_ecalDevel',
875 def setup_(self, step, stepName, stepDict, k, properties):
876 myGT=stepDict[step][k][
'--conditions']
878 stepDict[stepName][k] =
merge([{
'-n':
'1',
'--magField':
'0T',
'--conditions':myGT}, stepDict[step][k]])
879 def condition(self, fragment, stepList, key, hasHarvest):
880 return (fragment==
"TTbar_13" or fragment==
"TTbar_14TeV")
and (
'2017' in key
or '2018' in key
or '2021' in key)
903 def setup_(self, step, stepName, stepDict, k, properties):
904 if 'Reco' in step
and 'Run2_2018' in stepDict[step][k][
'--era']:
905 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2018,bParking'}, stepDict[step][k]])
906 def condition(self, fragment, stepList, key, hasHarvest):
907 return fragment==
"TTbar_13" and '2018' in key
913 suffix =
'_ParkingBPH',
918 def setup_(self, step, stepName, stepDict, k, properties):
920 stepDict[stepName][k] =
merge([{
'--customise':
'PhysicsTools/NanoAOD/custom_jme_cff.PrepJMECustomNanoAOD_MC'}, stepDict[step][k]])
921 def condition(self, fragment, stepList, key, hasHarvest):
922 return fragment==
"TTbar_13" and (
'2017' in key
or '2018' in key)
935 def setup_(self, step, stepName, stepDict, k, properties):
936 if 'Digi' in step
or 'Reco' in step:
937 stepDict[stepName][k] =
merge([{
'--customise':
'SLHCUpgradeSimulations/Configuration/aging.customise_aging_'+self.lumi}, stepDict[step][k]])
938 def condition(self, fragment, stepList, key, hasHarvest):
939 return fragment==
"TTbar_14TeV" and '2026' in key
956 suffix =
'Aging1000',
959 upgradeWFs[
'Aging1000'].lumi =
'1000'
960 upgradeWFs[
'Aging3000'] = deepcopy(upgradeWFs[
'Aging1000'])
961 upgradeWFs[
'Aging3000'].suffix =
'Aging3000'
962 upgradeWFs[
'Aging3000'].offset = 0.103
963 upgradeWFs[
'Aging3000'].lumi =
'3000'
971 digiPremixLocalPileup = {
972 "--filein":
"file:step1.root",
973 "--pileup_input":
"file:step2.root"
978 def setup_(self, step, stepName, stepDict, k, properties):
980 stepDict[stepName][k] =
merge([stepDict[step][k]])
981 def setupPU_(self, step, stepName, stepDict, k, properties):
983 if "GenSim" in stepName:
984 stepNamePmx = stepName.replace(
'GenSim',
'Premix')
985 if not stepNamePmx
in stepDict: stepDict[stepNamePmx] = {}
986 stepDict[stepNamePmx][k] =
merge([
988 '-s':
'GEN,SIM,DIGI:pdigi_valid',
989 '--datatier':
'PREMIX',
990 '--eventcontent':
'PREMIX',
991 '--procModifiers':
'premix_stage1'
993 stepDict[stepName][k]
995 if "ProdLike" in self.
suffix:
996 stepDict[stepNamePmx][k] =
merge([{
'-s':
'GEN,SIM,DIGI'},stepDict[stepNamePmx][k]])
998 elif "Digi" in step
or "Reco" in step:
1001 if d
is None:
return
1004 for s
in d[
"-s"].
split(
","):
1005 if s ==
"DIGI" or "DIGI:" in s:
1006 tmpsteps.extend([s,
"DATAMIX"])
1010 "--datamix" :
"PreMix",
1011 "--procModifiers":
"premix_stage2"},
1014 if "_PMXS1S2" in self.
suffix:
1015 d =
merge([digiPremixLocalPileup, d])
1016 elif "Reco" in step:
1017 if "--procModifiers" in d:
1018 d[
"--procModifiers"] +=
",premix_stage2"
1020 d[
"--procModifiers"] =
"premix_stage2"
1021 stepDict[stepName][k] = d
1027 filein = d[
"--filein"]
1028 m = re.search(
"step(?P<ind>\d+)_", filein)
1030 d[
"--filein"] = filein.replace(m.group(),
"step%d_"%(int(m.group(
"ind"))+1))
1031 stepDict[stepName][k] = d
1037 if not any(y
in key
for y
in [
'2021',
'2023',
'2024',
'2026']):
1039 if self.suffix.endswith(
"S1"):
1040 return "NuGun" in fragment
1042 def workflow_(self, workflows, num, fragment, stepList, key):
1043 fragmentTmp = fragment
1044 if self.suffix.endswith(
"S1"):
1045 fragmentTmp =
'PREMIXUP' + key[2:].
replace(
"PU",
"").
replace(
"Design",
"") +
'_PU25'
1046 super(UpgradeWorkflowPremix,self).
workflow_(workflows, num, fragmentTmp, stepList, key)
1054 'GenSimHLBeamSpot14',
1080 'GenSimHLBeamSpot14',
1089 suffix =
'_PMXS1S2',
1094 def setupPU_(self, step, stepName, stepDict, k, properties):
1096 if '--pileup' in stepDict[stepName][k]:
1097 stepDict[stepName][k][
'--pileup'] =
'AVE_50_BX_25ns_m3p3'
1098 super(UpgradeWorkflowAdjustPU,self).
setupPU_(step, stepName, stepDict, k, properties)
1101 return super(UpgradeWorkflowAdjustPU,self).
condition(fragment, stepList, key, hasHarvest)
and '2026' in key
1107 'GenSimHLBeamSpot14',
1117 suffix =
'_PMXS1S2PR',
1122 def setup_(self, step, stepName, stepDict, k, properties):
1124 UpgradeWorkflowPremix.setup_(self, step, stepName, stepDict, k, properties)
1125 UpgradeWorkflow_ProdLike.setup_(self, step, stepName, stepDict, k, properties)
1130 for s
in d[
"-s"].
split(
","):
1131 if "DIGI:pdigi_valid" in s:
1132 tmpsteps.append(
"DIGI")
1136 "--eventcontent":
"PREMIXRAW"},
1138 stepDict[stepName][k] = d
1140 stepDict[stepName][k] =
merge([{
'--filein':
'file:step5.root',
'-s':
'NANO',
'--datatier':
'NANOAODSIM',
'--eventcontent':
'NANOEDMAODSIM'}, stepDict[step][k]])
1143 return UpgradeWorkflowPremix.condition(self, fragment, stepList, key, hasHarvest)
and UpgradeWorkflow_ProdLike.condition(self, fragment, stepList, key, hasHarvest)
1161 suffix =
'_PMXS2ProdLike',
1170 'GenSimHLBeamSpot14',
1184 suffix =
'_PMXS1S2ProdLike',
1189 def setup_(self, step, stepName, stepDict, k, properties):
1190 if 'Run3' in stepDict[step][k][
'--era']:
1191 stepDict[stepName][k] =
merge([{
'--geometry':
'DD4hepExtended2021'}, stepDict[step][k]])
1192 elif 'Phase2' in stepDict[step][k][
'--era']:
1194 dd4hepGeom+=stepDict[step][k][
'--geometry']
1195 stepDict[stepName][k] =
merge([{
'--geometry' : dd4hepGeom,
'--procModifiers':
'dd4hep'}, stepDict[step][k]])
1197 return '2021' in key
or '2026' in key
1202 'GenSimHLBeamSpot14',
1217 upgradeWFs[
'DD4hep'].allowReuse =
False
1222 def setup_(self, step, stepName, stepDict, k, properties):
1223 if 'Run3' in stepDict[step][k][
'--era']:
1224 stepDict[stepName][k] =
merge([{
'--conditions':
'auto:phase1_2021_realistic',
'--geometry':
'DB:Extended'}, stepDict[step][k]])
1226 return '2021' in key
1231 'GenSimHLBeamSpot14',
1243 suffix =
'_DD4hepDB',
1246 upgradeWFs[
'DD4hepDB'].allowReuse =
False
1249 def setup_(self, step, stepName, stepDict, k, properties):
1250 if 'Run3' in stepDict[step][k][
'--era']:
1252 tmp_eras = stepDict[step][k][
'--era'].
split(
',')
1253 tmp_eras[tmp_eras.index(
"Run3")] =
'Run3_DDD'
1254 tmp_eras =
','.
join(tmp_eras)
1255 stepDict[stepName][k] =
merge([{
'--conditions':
'auto:phase1_2021_realistic_ddd',
'--geometry':
'DB:Extended',
'--era': tmp_eras}, stepDict[step][k]])
1257 return '2021' in key
1262 'GenSimHLBeamSpot14',
1277 upgradeWFs[
'DDDDB'].allowReuse =
False
1280 def setup_(self, step, stepName, stepDict, k, properties):
1281 stepDict[stepName][k] =
merge([{
'--procModifiers':
'allSonicTriton'}, stepDict[step][k]])
1283 return (fragment==
'TTbar_13' and '2021' in key) \
1284 or (fragment==
'TTbar_14TeV' and '2026' in key)
1289 'GenSimHLBeamSpot14',
1303 'GenSimHLBeamSpot14',
1314 suffix =
'_SonicTriton',
1319 offsets = [specialWF.offset
for specialType,specialWF
in upgradeWFs.items()]
1321 dups = set(x
for x
in offsets
if x
in seen
or seen.add(x))
1323 raise ValueError(
"Duplicate special workflow offsets not allowed: "+
','.
join([
str(x)
for x
in dups]))
1325 upgradeProperties = {}
1327 upgradeProperties[2017] = {
1329 'Geom' :
'DB:Extended',
1330 'GT' :
'auto:phase1_2017_realistic',
1331 'HLTmenu':
'@relval2017',
1332 'Era' :
'Run2_2017',
1333 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT',
'ALCA',
'Nano'],
1336 'Geom' :
'DB:Extended',
1337 'GT' :
'auto:phase1_2017_design',
1338 'HLTmenu':
'@relval2017',
1339 'Era' :
'Run2_2017',
1340 'BeamSpot':
'GaussSigmaZ4cm',
1341 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT'],
1344 'Geom' :
'DB:Extended',
1345 'GT' :
'auto:phase1_2018_realistic',
1346 'HLTmenu':
'@relval2018',
1347 'Era' :
'Run2_2018',
1348 'BeamSpot':
'Realistic25ns13TeVEarly2018Collision',
1349 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT',
'ALCA',
'Nano'],
1352 'Geom' :
'DB:Extended',
1353 'GT' :
'auto:phase1_2018_design',
1354 'HLTmenu':
'@relval2018',
1355 'Era' :
'Run2_2018',
1356 'BeamSpot':
'GaussSigmaZ4cm',
1357 'ScenToRun' : [
'GenSim',
'Digi',
'RecoFakeHLT',
'HARVESTFakeHLT'],
1360 'Geom' :
'DB:Extended',
1361 'GT' :
'auto:phase1_2021_realistic',
1362 'HLTmenu':
'@relval2021',
1364 'BeamSpot':
'Run3RoundOptics25ns13TeVLowSigmaZ',
1365 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
1368 'Geom' :
'DB:Extended',
1369 'GT' :
'auto:phase1_2021_design',
1370 'HLTmenu':
'@relval2021',
1372 'BeamSpot':
'GaussSigmaZ4cm',
1373 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano'],
1376 'Geom' :
'DB:Extended',
1377 'GT' :
'auto:phase1_2023_realistic',
1378 'HLTmenu':
'@relval2021',
1380 'BeamSpot':
'Run3RoundOptics25ns13TeVLowSigmaZ',
1381 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
1384 'Geom' :
'DB:Extended',
1385 'GT' :
'auto:phase1_2024_realistic',
1386 'HLTmenu':
'@relval2021',
1388 'BeamSpot':
'Run3RoundOptics25ns13TeVLowSigmaZ',
1389 'ScenToRun' : [
'GenSim',
'Digi',
'RecoNano',
'HARVESTNano',
'ALCA'],
1394 for key
in list(upgradeProperties[2017].
keys()):
1395 upgradeProperties[2017][key+
'PU'] = deepcopy(upgradeProperties[2017][key])
1396 upgradeProperties[2017][key+
'PU'][
'ScenToRun'] = [
'GenSim',
'DigiPU'] + \
1397 ([
'RecoNanoPU',
'HARVESTNanoPU']
if '202' in key
else [
'RecoFakeHLTPU',
'HARVESTFakeHLTPU']) + \
1398 ([
'Nano']
if 'Nano' in upgradeProperties[2017][key][
'ScenToRun']
else [])
1400 upgradeProperties[2026] = {
1402 'Geom' :
'Extended2026D49',
1403 'HLTmenu':
'@fake2',
1404 'GT' :
'auto:phase2_realistic_T15',
1406 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1409 'Geom' :
'Extended2026D60',
1410 'HLTmenu':
'@fake2',
1411 'GT' :
'auto:phase2_realistic_T15',
1412 'Era' :
'Phase2C10',
1413 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1416 'Geom' :
'Extended2026D68',
1417 'HLTmenu':
'@fake2',
1418 'GT' :
'auto:phase2_realistic_T21',
1419 'Era' :
'Phase2C11',
1420 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1423 'Geom' :
'Extended2026D70',
1424 'HLTmenu':
'@fake2',
1425 'GT' :
'auto:phase2_realistic_T21',
1426 'Era' :
'Phase2C11',
1427 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1430 'Geom' :
'Extended2026D76',
1431 'HLTmenu':
'@fake2',
1432 'GT' :
'auto:phase2_realistic_T21',
1433 'Era' :
'Phase2C11I13M9',
1434 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1437 'Geom' :
'Extended2026D77',
1438 'HLTmenu':
'@fake2',
1439 'GT' :
'auto:phase2_realistic_T21',
1440 'Era' :
'Phase2C11I13M9',
1441 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1444 'Geom' :
'Extended2026D78',
1445 'HLTmenu':
'@fake2',
1446 'GT' :
'auto:phase2_realistic_T22',
1447 'ProcessModifier':
'PixelCPEGeneric',
1448 'Era' :
'Phase2C11I13T22M9',
1449 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1452 'Geom' :
'Extended2026D79',
1453 'HLTmenu':
'@fake2',
1454 'GT' :
'auto:phase2_realistic_T23',
1455 'Era' :
'Phase2C11I13T23M9',
1456 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1459 'Geom' :
'Extended2026D80',
1460 'HLTmenu':
'@fake2',
1461 'GT' :
'auto:phase2_realistic_T25',
1462 'Era' :
'Phase2C11I13T25M9',
1463 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1466 'Geom' :
'Extended2026D81',
1467 'HLTmenu':
'@fake2',
1468 'GT' :
'auto:phase2_realistic_T26',
1469 'Era' :
'Phase2C11I13T26M9',
1470 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1473 'Geom' :
'Extended2026D82',
1474 'HLTmenu':
'@fake2',
1475 'GT' :
'auto:phase2_realistic_T21',
1476 'Era' :
'Phase2C11I13M9',
1477 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1480 'Geom' :
'Extended2026D83',
1481 'HLTmenu':
'@fake2',
1482 'GT' :
'auto:phase2_realistic_T21',
1483 'Era' :
'Phase2C11I13M9',
1484 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1487 'Geom' :
'Extended2026D84',
1488 'HLTmenu':
'@fake2',
1489 'GT' :
'auto:phase2_realistic_T21',
1490 'Era' :
'Phase2C11',
1491 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1494 'Geom' :
'Extended2026D85',
1495 'HLTmenu':
'@fake2',
1496 'GT' :
'auto:phase2_realistic_T21',
1497 'Era' :
'Phase2C11I13M9',
1498 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1501 'Geom' :
'Extended2026D86',
1502 'HLTmenu':
'@fake2',
1503 'GT' :
'auto:phase2_realistic_T21',
1504 'Era' :
'Phase2C11I13M9',
1505 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1508 'Geom' :
'Extended2026D87',
1509 'HLTmenu':
'@fake2',
1510 'GT' :
'auto:phase2_realistic_T27',
1511 'Era' :
'Phase2C11I13T27M9',
1512 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1515 'Geom' :
'Extended2026D88',
1516 'HLTmenu':
'@fake2',
1517 'GT' :
'auto:phase2_realistic_T21',
1518 'Era' :
'Phase2C11I13M9',
1519 'ScenToRun' : [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'],
1524 for key
in list(upgradeProperties[2026].
keys()):
1525 upgradeProperties[2026][key+
'PU'] = deepcopy(upgradeProperties[2026][key])
1526 upgradeProperties[2026][key+
'PU'][
'ScenToRun'] = [
'GenSimHLBeamSpot',
'DigiTriggerPU',
'RecoGlobalPU',
'HARVESTGlobalPU']
1529 defaultDataSets = {}
1530 for year
in upgradeKeys:
1531 for key
in upgradeKeys[year]:
1532 if 'PU' in key:
continue
1533 defaultDataSets[key] =
''
1541 upgradeFragments = OrderedDict([
1543 (
'SingleElectronPt10_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronPt10')),
1544 (
'SingleElectronPt35_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronPt35')),
1545 (
'SingleElectronPt1000_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SingleElectronPt1000')),
1552 (
'FourMuExtendedPt_1_200_pythia8_cfi',
UpgradeFragment(
Kby(10,100),
'FourMuExtendedPt1_200')),
1553 (
'TenMuExtendedE_0_200_pythia8_cfi',
UpgradeFragment(
Kby(10,100),
'TenMuExtendedE_0_200')),
1554 (
'DoubleElectronPt10Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElPt10Extended')),
1555 (
'DoubleElectronPt35Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElPt35Extended')),
1556 (
'DoubleElectronPt1000Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SingleElPt1000Extended')),
1557 (
'DoubleGammaPt10Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleGammaPt10Extended')),
1558 (
'DoubleGammaPt35Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SingleGammaPt35Extended')),
1559 (
'DoubleMuPt1Extended_pythia8_cfi',
UpgradeFragment(
Kby(25,100),
'SingleMuPt1Extended')),
1560 (
'DoubleMuPt10Extended_pythia8_cfi',
UpgradeFragment(
Kby(25,100),
'SingleMuPt10Extended')),
1561 (
'DoubleMuPt100Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleMuPt100Extended')),
1562 (
'DoubleMuPt1000Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleMuPt1000Extended')),
1565 (
'MinBias_13TeV_pythia8_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(90,100),
'MinBias_13')),
1568 (
'QCD_Pt_600_800_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_600_800_13')),
1569 (
'Wjet_Pt_80_120_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'Wjet_Pt_80_120_14TeV')),
1570 (
'Wjet_Pt_3000_3500_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Wjet_Pt_3000_3500_14TeV')),
1572 (
'QCD_Pt_3000_3500_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_3000_3500_14TeV')),
1573 (
'QCD_Pt_80_120_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'QCD_Pt_80_120_14TeV')),
1574 (
'H200ChargedTaus_Tauola_14TeV_cfi',
UpgradeFragment(
Kby(9,100),
'Higgs200ChargedTaus_14TeV')),
1578 (
'ZTT_Tauola_All_hadronic_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,100),
'ZTT_14TeV')),
1579 (
'H130GGgluonfusion_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'H130GGgluonfusion_14TeV')),
1580 (
'PhotonJet_Pt_10_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'PhotonJets_Pt_10_14TeV')),
1581 (
'QQH1352T_Tauola_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'QQH1352T_Tauola_14TeV')),
1585 (
'QCDForPF_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(50,100),
'QCD_FlatPt_15_3000HS_14')),
1587 (
'DYToTauTau_M-50_14TeV_pythia8_tauola_cff',
UpgradeFragment(
Kby(9,100),
'DYtoTauTau_M_50_14TeV')),
1589 (
'QCD_Pt_80_120_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'QCD_Pt_80_120_13')),
1590 (
'H125GGgluonfusion_13TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'H125GGgluonfusion_13')),
1591 (
'QCD_Pt20toInf_MuEnrichedPt15_14TeV_TuneCP5_cff',
UpgradeFragment(
Kby(19565, 217391),
'QCD_Pt20toInfMuEnrichPt15_14')),
1593 (
'QCD_Pt15To7000_Flat_14TeV_TuneCP5_cff',
UpgradeFragment(
Kby(9,50),
'QCD_Pt15To7000_Flat_14')),
1594 (
'H125GGgluonfusion_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'H125GGgluonfusion_14')),
1595 (
'QCD_Pt_600_800_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_600_800_14')),
1598 (
'H200ChargedTaus_Tauola_13TeV_cfi',
UpgradeFragment(
Kby(9,50),
'Higgs200ChargedTaus_13')),
1599 (
'ADDMonoJet_13TeV_d3MD3_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'ADDMonoJet_d3MD3_13')),
1601 (
'QCD_Pt_3000_3500_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_3000_3500_13')),
1608 (
'PhotonJet_Pt_10_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'PhotonJets_Pt_10_13')),
1610 (
'Wjet_Pt_80_120_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Wjet_Pt_80_120_13')),
1611 (
'Wjet_Pt_3000_3500_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Wjet_Pt_3000_3500_13')),
1612 (
'SMS-T1tttt_mGl-1500_mLSP-100_13TeV-pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SMS-T1tttt_mGl-1500_mLSP-100_13')),
1613 (
'QCDForPF_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(50,100),
'QCD_FlatPt_15_3000HS_13')),
1614 (
'PYTHIA8_PhiToMuMu_TuneCUETP8M1_13TeV_cff',
UpgradeFragment(
Kby(9,50),
'PhiToMuMu_13')),
1615 (
'RSKKGluon_m3000GeV_13TeV_TuneCUETP8M1_cff',
UpgradeFragment(
Kby(9,50),
'RSKKGluon_m3000GeV_13')),
1619 (
'Upsilon1SToMuMu_forSTEAM_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Upsilon1SToMuMu_13')),
1620 (
'EtaBToJpsiJpsi_forSTEAM_TuneCUEP8M1_13TeV_cfi',
UpgradeFragment(
Kby(9,50),
'EtaBToJpsiJpsi_13')),
1621 (
'JpsiMuMu_Pt-8_forSTEAM_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(3100,100000),
'JpsiMuMu_Pt-8')),
1622 (
'BuMixing_BMuonFilter_forSTEAM_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(900,10000),
'BuMixing_13')),
1623 (
'HSCPstop_M_200_TuneCUETP8M1_13TeV_pythia8_cff',
UpgradeFragment(
Kby(9,50),
'HSCPstop_M_200_13')),
1624 (
'RSGravitonToGammaGamma_kMpl01_M_3000_TuneCUETP8M1_13TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'RSGravitonToGaGa_13')),
1625 (
'WprimeToENu_M-2000_TuneCUETP8M1_13TeV-pythia8_cff',
UpgradeFragment(
Kby(9,50),
'WpToENu_M-2000_13')),
1626 (
'DisplacedSUSY_stopToBottom_M_800_500mm_TuneCP5_13TeV_pythia8_cff',
UpgradeFragment(
Kby(9,50),
'DisplacedSUSY_stopToB_M_800_500mm_13')),
1628 (
'FlatRandomPtAndDxyGunProducer_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuonsDxy_0_500')),
1630 (
'SinglePiPt25Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SinglePiPt25Eta1p7_2p7')),
1631 (
'SingleMuPt15Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SingleMuPt15Eta1p7_2p7')),
1632 (
'SingleGammaPt25Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SingleGammaPt25Eta1p7_2p7')),
1633 (
'SingleElectronPt15Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronPt15Eta1p7_2p7')),
1635 (
'CloseByParticle_Photon_ERZRanges_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByParticleGun')),
1636 (
'CE_E_Front_300um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_E_Front_300um')),
1637 (
'CE_E_Front_200um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_E_Front_200um')),
1638 (
'CE_E_Front_120um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_E_Front_120um')),
1642 (
'CE_H_Coarse_Scint_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_H_Coarse_Scint')),
1643 (
'CE_H_Coarse_300um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByPGun_CE_H_Coarse_300um')),
1644 (
'SingleElectronFlatPt2To100_cfi',
UpgradeFragment(
Kby(9,100),
'SingleEFlatPt2To100')),
1647 (
'SingleGammaFlatPt8To150_cfi',
UpgradeFragment(
Kby(9,100),
'SingleGammaFlatPt8To150')),
1650 (
'FlatRandomPtAndDxyGunProducer_MuPt2To10_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt2To10')),
1651 (
'FlatRandomPtAndDxyGunProducer_MuPt10To30_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt10To30')),
1652 (
'FlatRandomPtAndDxyGunProducer_MuPt30To100_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt30To100')),
1653 (
'B0ToKstarMuMu_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(304,3030),
'B0ToKstarMuMu_14TeV')),
1655 (
'BsToJpsiGamma_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(2500,25000),
'BsToJpsiGamma_14TeV')),
1656 (
'BsToJpsiPhi_mumuKK_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(910,9090),
'BsToJpsiPhi_mumuKK_14TeV')),
1658 (
'BsToPhiPhi_KKKK_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(556,5555),
'BsToPhiPhi_KKKK_14TeV')),
1659 (
'TauToMuMuMu_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(18939,189393),
'TauToMuMuMu_14TeV')),
1660 (
'BdToKstarEleEle_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(206,2061),
'BdToKstarEleEle_14TeV')),
1662 (
'BuMixing_BMuonFilter_forSTEAM_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(900,10000),
'BuMixing_14')),
1663 (
'Upsilon1SToMuMu_forSTEAM_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'Upsilon1SToMuMu_14')),
1664 (
'TenTau_E_15_500_Eta3p1_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'TenTau_15_500_Eta3p1')),
1665 (
'QCD_Pt_1800_2400_14TeV_TuneCP5_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_1800_2400_14')),
1666 (
'DisplacedSUSY_stopToBottom_M_800_500mm_TuneCP5_14TeV_pythia8_cff',
UpgradeFragment(
Kby(9,50),
'DisplacedSUSY_14TeV')),
1667 (
'GluGluTo2Jets_M_300_2000_14TeV_Exhume_cff',
UpgradeFragment(
Kby(9,100),
'GluGluTo2Jets_14TeV')),
1668 (
'TTbarToDilepton_mt172p5_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'TTbarToDilepton_14TeV')),
1669 (
'QQToHToTauTau_mh125_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'QQToHToTauTau_14TeV')),
1670 (
'ZpToEE_m6000_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'ZpToEE_m6000_14TeV')),
1671 (
'ZpToMM_m6000_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'ZpToMM_m6000_14TeV')),
1672 (
'SMS-T1tttt_mGl-1500_mLSP-100_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SMS-T1tttt_14TeV')),
1673 (
'VBFHZZ4Nu_TuneCP5_14TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'VBFHZZ4Nu_14TeV')),
1674 (
'EtaBToJpsiJpsi_14TeV_TuneCP5_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'EtaBToJpsiJpsi_14TeV')),
1676 (
'WprimeToLNu_M2000_14TeV_TuneCP5_pythia8_cfi',
UpgradeFragment(
Kby(21,50),
'WprimeToLNu_M2000_14TeV')),
1678 (
'DoubleElectronFlatPt1p5To8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronFlatPt1p5To8')),
1679 (
'DoubleMuFlatPt1p5To8Dxy100GunProducer_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt1p5To8Dxy100')),
1680 (
'DoubleMuFlatPt2To100Dxy100GunProducer_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuPt2To100Dxy100')),
bool any(const std::vector< T > &v, const T &what)
boost::dynamic_bitset append(const boost::dynamic_bitset<> &bs1, const boost::dynamic_bitset<> &bs2)
this method takes two bitsets bs1 and bs2 and returns result of bs2 appended to the end of bs1 ...
const uint16_t range(const Frame &aFrame)
static std::string join(char **cmd)