1 from copy
import deepcopy
2 from collections
import OrderedDict
4 from .MatrixUtil
import merge
57 numWFConflict = [[25000,26000],[50000,51000]]
63 for year
in upgradeKeys:
64 for i
in range(0,len(upgradeKeys[year])):
65 numWFtmp = numWFStart[year]
if i==0
else (numWFAll[year][i-1] + numWFSkip)
66 for conflict
in numWFConflict:
67 if numWFtmp>=conflict[0]
and numWFtmp<conflict[1]:
68 numWFtmp = conflict[1]
70 numWFAll[year].
append(numWFtmp)
83 raise ValueError(
"Special workflow offset must be between 0.0 and 1.0")
85 for step
in self.
steps:
86 stepName = step + self.
suffix 87 stepDict[stepName] = {}
89 stepName = step +
'PU' + self.
suffix 90 stepDict[stepName] = {}
91 stepNamePmx = step +
'PUPRMX' + self.
suffix 92 stepDict[stepNamePmx] = {}
93 stepDict[stepNamePmx+
'Combined'] = {}
94 def setup(self, stepDict, k, properties):
95 for step
in self.
steps:
96 stepName = step + self.
suffix 97 self.
setup_(step, stepName, stepDict, k, properties)
98 def setup_(self, step, stepName, stepDict, k, properties):
100 def workflow(self, workflows, num, fragment, stepList, key, hasHarvest):
101 if self.condition(fragment, stepList, key, hasHarvest):
102 self.workflow_(workflows, num, fragment, stepList)
103 def workflow_(self, workflows, num, fragment, stepList):
104 workflows[num+self.
offset] = [ fragment, stepList ]
105 def condition(self, fragment, stepList, key, hasHarvest):
107 upgradeWFs = OrderedDict()
110 def setup_(self, step, stepName, stepDict, k, properties):
111 cust=properties.get(
'Custom',
None)
112 era=properties.get(
'Era',
None)
113 if cust
is not None: stepDict[stepName][k][
'--customise']=cust
114 if era
is not None: stepDict[stepName][k][
'--era']=era
115 def condition(self, fragment, stepList, key, hasHarvest):
120 'GenSimHLBeamSpotFull',
121 'GenSimHLBeamSpotFull14',
152 def condition(self, fragment, stepList, key, hasHarvest):
153 result = (fragment==
"TTbar_13" or fragment==
"TTbar_14TeV")
and not 'PU' in key
and hasHarvest
and self.
condition_(fragment, stepList, key, hasHarvest)
156 skipList = [s
for s
in stepList
if ((
"ALCA" in s)
or (
"Nano" in s))]
157 for skip
in skipList:
158 stepList.remove(skip)
164 def setup_(self, step, stepName, stepDict, k, properties):
165 if 'Reco' in step: stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
166 elif 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@trackingOnlyDQM'}, stepDict[step][k]])
175 suffix =
'_trackingOnly',
178 upgradeWFs[
'trackingOnly'].step3 = {
179 '-s':
'RAW2DIGI,RECO:reconstruction_trackingOnly,VALIDATION:@trackingOnlyValidation,DQM:@trackingOnlyDQM',
180 '--datatier':
'GEN-SIM-RECO,DQMIO',
181 '--eventcontent':
'RECOSIM,DQM',
184 step3_trackingOnly = upgradeWFs[
'trackingOnly'].step3
187 def setup_(self, step, stepName, stepDict, k, properties):
188 if 'Reco' in step
and stepDict[step][k][
'--era']==
'Run2_2017':
189 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2017_trackingRun2'}, stepDict[step][k]])
197 suffix =
'_trackingRun2',
202 def setup_(self, step, stepName, stepDict, k, properties):
203 if 'Reco' in step
and stepDict[step][k][
'--era']==
'Run2_2017':
204 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2017_trackingRun2'}, self.
step3, stepDict[step][k]])
205 elif 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@trackingOnlyDQM'}, stepDict[step][k]])
214 suffix =
'_trackingOnlyRun2',
217 upgradeWFs[
'trackingOnlyRun2'].step3 = upgradeWFs[
'trackingOnly'].step3
220 def setup_(self, step, stepName, stepDict, k, properties):
221 if 'Reco' in step
and stepDict[step][k][
'--era']==
'Run2_2017':
222 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2017_trackingLowPU'}, stepDict[step][k]])
230 suffix =
'_trackingLowPU',
235 def setup_(self, step, stepName, stepDict, k, properties):
236 if 'Reco' in step: stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
237 elif 'HARVEST' in step: stepDict[stepName][k] =
merge([{
'-s':
'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM'}, stepDict[step][k]])
239 return '2017' in key
or '2018' in key
248 suffix =
'_pixelTrackingOnly',
251 upgradeWFs[
'pixelTrackingOnly'].step3 = {
252 '-s':
'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
253 '--datatier':
'GEN-SIM-RECO,DQMIO',
254 '--eventcontent':
'RECOSIM,DQM',
258 def setup_(self, step, stepName, stepDict, k, properties):
259 if 'Reco' in step: stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
261 return '2017' in key
or '2021' in key
268 suffix =
'_trackingMkFit',
271 upgradeWFs[
'trackingMkFit'].step3 = {
272 '--customise':
'RecoTracker/MkFit/customizeInitialStepToMkFit.customizeInitialStepToMkFit' 276 def setup_(self, step, stepName, stepDict, k, properties):
278 stepDict[stepName][k] =
merge([{
'-s':
'RAW2DIGI,L1Reco,RECO,RECOSIM',
'--datatier':
'AODSIM',
'--eventcontent':
'AODSIM'}, stepDict[step][k]])
279 elif 'MiniAOD' in step:
281 stepDict[stepName][k] = deepcopy(stepDict[step][k])
282 if 'HARVEST' in step:
284 stepDict[stepName][k] =
None 285 def condition(self, fragment, stepList, key, hasHarvest):
286 return fragment==
"TTbar_14TeV" and '2026' in key
298 suffix =
'_ProdLike',
303 def setup_(self, step, stepName, stepDict, k, properties):
305 custNew =
"SimG4Core/Application/NeutronBGforMuonsXS_cff.customise" 307 custNew =
"SLHCUpgradeSimulations/Configuration/customise_mixing.customise_Mix_LongLived_Neutrons" 308 stepDict[stepName][k] = deepcopy(stepDict[step][k])
309 if '--customise' in stepDict[stepName][k].
keys():
310 stepDict[stepName][k][
'--customise'] +=
","+custNew
312 stepDict[stepName][k][
'--customise'] = custNew
313 def condition(self, fragment, stepList, key, hasHarvest):
318 'GenSimHLBeamSpotFull',
319 'GenSimHLBeamSpotFull14',
331 upgradeWFs[
'Neutron'].neutronKeys = [x
for x
in upgradeKeys[2026]
if 'PU' not in x]
332 upgradeWFs[
'Neutron'].neutronFrags = [
'ZMM_14',
'MinBias_14TeV']
335 def setup_(self, step, stepName, stepDict, k, properties):
336 stepDict[stepName][k] =
merge([{
'--procModifiers':
'run2_HECollapse_2018'}, stepDict[step][k]])
337 def condition(self, fragment, stepList, key, hasHarvest):
338 return fragment==
"TTbar_13" and '2018' in key
352 suffix =
'_heCollapse',
357 def setup_(self, step, stepName, stepDict, k, properties):
358 if 'Reco' in step
and 'Run2_2018' in stepDict[step][k][
'--era']:
359 stepDict[stepName][k] =
merge([{
'--era':
'Run2_2018,bParking'}, stepDict[step][k]])
360 def condition(self, fragment, stepList, key, hasHarvest):
361 return fragment==
"TTbar_13" and '2018' in key
367 suffix =
'_ParkingBPH',
372 def setup_(self, step, stepName, stepDict, k, properties):
373 if 'Reco' in step: stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
374 def condition(self, fragment, stepList, key, hasHarvest):
375 result = (fragment==
"CloseByParticleGun")
and (
'2026' in key)
377 skipList = [s
for s
in stepList
if (
"HARVEST" in s)]
378 for skip
in skipList:
379 stepList.remove(skip)
387 suffix =
'_TICLOnly',
390 upgradeWFs[
'TICLOnly'].step3 = {
391 '--customise' :
'RecoHGCal/TICL/ticl_iterations.TICL_iterations' 395 def setup_(self, step, stepName, stepDict, k, properties):
396 if 'Reco' in step: stepDict[stepName][k] =
merge([self.
step3, stepDict[step][k]])
397 def condition(self, fragment, stepList, key, hasHarvest):
398 return (fragment==
"CloseByParticleGun")
and (
'2026' in key)
405 suffix =
'_TICLFullReco',
408 upgradeWFs[
'TICLFullReco'].step3 = {
409 '--customise' :
'RecoHGCal/TICL/ticl_iterations.TICL_iterations_withReco' 414 def setup_(self, step, stepName, stepDict, k, properties):
415 if 'Digi' in step
or 'Reco' in step:
416 stepDict[stepName][k] =
merge([{
'--customise':
'SLHCUpgradeSimulations/Configuration/aging.customise_aging_'+self.
lumi}, stepDict[step][k]])
417 def condition(self, fragment, stepList, key, hasHarvest):
418 return fragment==
"TTbar_14TeV" and '2026' in key
435 suffix =
'Aging1000',
438 upgradeWFs[
'Aging1000'].lumi =
'1000' 439 upgradeWFs[
'Aging3000'] = deepcopy(upgradeWFs[
'Aging1000'])
440 upgradeWFs[
'Aging3000'].suffix =
'Aging3000' 441 upgradeWFs[
'Aging3000'].offset = 0.103
442 upgradeWFs[
'Aging3000'].lumi =
'3000' 450 'PremixHLBeamSpotFull',
451 'PremixHLBeamSpotFull14',
460 suffix =
'_premixS2',
467 suffix =
'_premixS1S2',
472 offsets = [specialWF.offset
for specialType,specialWF
in six.iteritems(upgradeWFs)]
474 dups = set(x
for x
in offsets
if x
in seen
or seen.add(x))
476 raise ValueError(
"Duplicate special workflow offsets not allowed: "+
','.
join([
str(x)
for x
in dups]))
478 upgradeProperties = {}
480 upgradeProperties[2017] = {
482 'Geom' :
'DB:Extended',
483 'GT' :
'auto:phase1_2017_realistic',
484 'HLTmenu':
'@relval2017',
486 'ScenToRun' : [
'GenSimFull',
'DigiFull',
'RecoFull',
'HARVESTFull',
'ALCAFull',
'NanoFull'],
489 'Geom' :
'DB:Extended',
490 'GT' :
'auto:phase1_2017_design',
491 'HLTmenu':
'@relval2017',
493 'BeamSpot':
'GaussSigmaZ4cm',
494 'ScenToRun' : [
'GenSimFull',
'DigiFull',
'RecoFull',
'HARVESTFull'],
497 'Geom' :
'DB:Extended',
498 'GT' :
'auto:phase1_2018_realistic',
499 'HLTmenu':
'@relval2018',
501 'BeamSpot':
'Realistic25ns13TeVEarly2018Collision',
502 'ScenToRun' : [
'GenSimFull',
'DigiFull',
'RecoFull',
'HARVESTFull',
'ALCAFull',
'NanoFull'],
505 'Geom' :
'DB:Extended',
506 'GT' :
'auto:phase1_2018_design',
507 'HLTmenu':
'@relval2018',
509 'BeamSpot':
'GaussSigmaZ4cm',
510 'ScenToRun' : [
'GenSimFull',
'DigiFull',
'RecoFull',
'HARVESTFull'],
513 'Geom' :
'DB:Extended',
514 'GT' :
'auto:phase1_2021_realistic',
515 'HLTmenu':
'@relval2021',
517 'BeamSpot':
'Run3RoundOptics25ns13TeVLowSigmaZ',
518 'ScenToRun' : [
'GenSimFull',
'DigiFull',
'RecoFull',
'HARVESTFull',
'ALCAFull'],
521 'Geom' :
'DB:Extended',
522 'GT' :
'auto:phase1_2021_design',
523 'HLTmenu':
'@relval2021',
525 'BeamSpot':
'GaussSigmaZ4cm',
526 'ScenToRun' : [
'GenSimFull',
'DigiFull',
'RecoFull',
'HARVESTFull'],
529 'Geom' :
'DB:Extended',
530 'GT' :
'auto:phase1_2023_realistic',
531 'HLTmenu':
'@relval2021',
533 'BeamSpot':
'Run3RoundOptics25ns13TeVLowSigmaZ',
534 'ScenToRun' : [
'GenSimFull',
'DigiFull',
'RecoFull',
'HARVESTFull',
'ALCAFull'],
537 'Geom' :
'DB:Extended',
538 'GT' :
'auto:phase1_2024_realistic',
539 'HLTmenu':
'@relval2021',
541 'BeamSpot':
'Run3RoundOptics25ns13TeVLowSigmaZ',
542 'ScenToRun' : [
'GenSimFull',
'DigiFull',
'RecoFull',
'HARVESTFull',
'ALCAFull'],
547 for key
in list(upgradeProperties[2017].
keys()):
548 upgradeProperties[2017][key+
'PU'] = deepcopy(upgradeProperties[2017][key])
549 upgradeProperties[2017][key+
'PU'][
'ScenToRun'] = [
'GenSimFull',
'DigiFullPU',
'RecoFullPU',
'HARVESTFullPU'] + \
550 ([
'NanoFull']
if 'Design' not in key
else [])
552 upgradeProperties[2026] = {
554 'Geom' :
'Extended2026D35',
556 'GT' :
'auto:phase2_realistic_T6',
558 'ScenToRun' : [
'GenSimHLBeamSpotFull',
'DigiFullTrigger',
'RecoFullGlobal',
'HARVESTFullGlobal'],
561 'Geom' :
'Extended2026D41',
563 'GT' :
'auto:phase2_realistic_T14',
565 'ScenToRun' : [
'GenSimHLBeamSpotFull',
'DigiFullTrigger',
'RecoFullGlobal',
'HARVESTFullGlobal'],
568 'Geom' :
'Extended2026D43',
570 'GT' :
'auto:phase2_realistic_T14',
572 'ScenToRun' : [
'GenSimHLBeamSpotFull',
'DigiFullTrigger',
'RecoFullGlobal',
'HARVESTFullGlobal'],
575 'Geom' :
'Extended2026D44',
577 'GT' :
'auto:phase2_realistic_T14',
579 'ScenToRun' : [
'GenSimHLBeamSpotFull',
'DigiFullTrigger',
'RecoFullGlobal',
'HARVESTFullGlobal'],
582 'Geom' :
'Extended2026D45',
584 'GT' :
'auto:phase2_realistic_T15',
586 'ScenToRun' : [
'GenSimHLBeamSpotFull',
'DigiFullTrigger',
'RecoFullGlobal',
'HARVESTFullGlobal'],
589 'Geom' :
'Extended2026D46',
591 'GT' :
'auto:phase2_realistic_T15',
593 'ScenToRun' : [
'GenSimHLBeamSpotFull',
'DigiFullTrigger',
'RecoFullGlobal',
'HARVESTFullGlobal'],
596 'Geom' :
'Extended2026D47',
598 'GT' :
'auto:phase2_realistic_T15',
600 'ScenToRun' : [
'GenSimHLBeamSpotFull',
'DigiFullTrigger',
'RecoFullGlobal',
'HARVESTFullGlobal'],
603 'Geom' :
'Extended2026D48',
605 'GT' :
'auto:phase2_realistic_T15',
607 'ScenToRun' : [
'GenSimHLBeamSpotFull',
'DigiFullTrigger',
'RecoFullGlobal',
'HARVESTFullGlobal'],
610 'Geom' :
'Extended2026D49',
612 'GT' :
'auto:phase2_realistic_T15',
614 'ScenToRun' : [
'GenSimHLBeamSpotFull',
'DigiFullTrigger',
'RecoFullGlobal',
'HARVESTFullGlobal'],
619 for key
in list(upgradeProperties[2026].
keys()):
620 upgradeProperties[2026][key+
'PU'] = deepcopy(upgradeProperties[2026][key])
621 upgradeProperties[2026][key+
'PU'][
'ScenToRun'] = [
'GenSimHLBeamSpotFull',
'DigiFullTriggerPU',
'RecoFullGlobalPU',
'HARVESTFullGlobalPU']
625 for year
in upgradeKeys:
626 for key
in upgradeKeys[year]:
627 if 'PU' in key:
continue 628 defaultDataSets[key] =
'' 637 upgradeFragments = OrderedDict([
641 (
'SingleElectronPt1000_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SingleElectronPt1000')),
648 (
'FourMuExtendedPt_1_200_pythia8_cfi',
UpgradeFragment(
Kby(10,100),
'FourMuExtendedPt1_200')),
649 (
'TenMuExtendedE_0_200_pythia8_cfi',
UpgradeFragment(
Kby(10,100),
'TenMuExtendedE_0_200')),
650 (
'DoubleElectronPt10Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronPt10Extended')),
651 (
'DoubleElectronPt35Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronPt35Extended')),
652 (
'DoubleElectronPt1000Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SingleElectronPt1000Extended')),
653 (
'DoubleGammaPt10Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleGammaPt10Extended')),
654 (
'DoubleGammaPt35Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SingleGammaPt35Extended')),
655 (
'DoubleMuPt1Extended_pythia8_cfi',
UpgradeFragment(
Kby(25,100),
'SingleMuPt1Extended')),
656 (
'DoubleMuPt10Extended_pythia8_cfi',
UpgradeFragment(
Kby(25,100),
'SingleMuPt10Extended')),
657 (
'DoubleMuPt100Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleMuPt100Extended')),
658 (
'DoubleMuPt1000Extended_pythia8_cfi',
UpgradeFragment(
Kby(9,100),
'SingleMuPt1000Extended')),
661 (
'MinBias_13TeV_pythia8_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(90,100),
'MinBias_13')),
664 (
'QCD_Pt_600_800_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_600_800_13')),
665 (
'Wjet_Pt_80_120_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'Wjet_Pt_80_120_14TeV')),
666 (
'Wjet_Pt_3000_3500_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Wjet_Pt_3000_3500_14TeV')),
668 (
'QCD_Pt_3000_3500_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_3000_3500_14TeV')),
669 (
'QCD_Pt_80_120_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'QCD_Pt_80_120_14TeV')),
670 (
'H200ChargedTaus_Tauola_14TeV_cfi',
UpgradeFragment(
Kby(9,100),
'Higgs200ChargedTaus_14TeV')),
674 (
'ZTT_Tauola_All_hadronic_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'ZTT_14TeV')),
675 (
'H130GGgluonfusion_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'H130GGgluonfusion_14TeV')),
676 (
'PhotonJet_Pt_10_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'PhotonJets_Pt_10_14TeV')),
677 (
'QQH1352T_Tauola_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'QQH1352T_Tauola_14TeV')),
678 (
'MinBias_14TeV_pythia8_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(90,100),
'MinBias_14TeV')),
681 (
'QCDForPF_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(50,100),
'QCD_FlatPt_15_3000HS_14')),
683 (
'DYToTauTau_M-50_14TeV_pythia8_tauola_cff',
UpgradeFragment(
Kby(9,100),
'DYtoTauTau_M_50_14TeV')),
685 (
'QCD_Pt_80_120_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,100),
'QCD_Pt_80_120_13')),
686 (
'H125GGgluonfusion_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'H125GGgluonfusion_13')),
687 (
'QCD_Pt-20toInf_MuEnrichedPt15_TuneCUETP8M1_14TeV_pythia8_cff',
UpgradeFragment(
Kby(9,100),
'QCD_Pt-20toInf_MuEnrichedPt15_14TeV')),
689 (
'QCD_Pt-15To7000_TuneCUETP8M1_Flat_14TeV-pythia8_cff',
UpgradeFragment(
Kby(9,50),
'QCD_Pt-15To7000_Flat_14TeV')),
690 (
'H125GGgluonfusion_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'H125GGgluonfusion_14')),
691 (
'QCD_Pt_600_800_14TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_600_800_14')),
694 (
'H200ChargedTaus_Tauola_13TeV_cfi',
UpgradeFragment(
Kby(9,50),
'Higgs200ChargedTaus_13')),
695 (
'ADDMonoJet_13TeV_d3MD3_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'ADDMonoJet_d3MD3_13')),
697 (
'QCD_Pt_3000_3500_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'QCD_Pt_3000_3500_13')),
704 (
'PhotonJet_Pt_10_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'PhotonJets_Pt_10_13')),
706 (
'Wjet_Pt_80_120_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Wjet_Pt_80_120_13')),
707 (
'Wjet_Pt_3000_3500_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Wjet_Pt_3000_3500_13')),
708 (
'SMS-T1tttt_mGl-1500_mLSP-100_13TeV-pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'SMS-T1tttt_mGl-1500_mLSP-100_13')),
709 (
'QCDForPF_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(50,100),
'QCD_FlatPt_15_3000HS_13')),
710 (
'PYTHIA8_PhiToMuMu_TuneCUETP8M1_13TeV_cff',
UpgradeFragment(
Kby(9,50),
'PhiToMuMu_13')),
711 (
'RSKKGluon_m3000GeV_13TeV_TuneCUETP8M1_cff',
UpgradeFragment(
Kby(9,50),
'RSKKGluon_m3000GeV_13')),
715 (
'Upsilon1SToMuMu_forSTEAM_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(9,50),
'Upsilon1SToMuMu_13')),
716 (
'EtaBToJpsiJpsi_forSTEAM_TuneCUEP8M1_13TeV_cfi',
UpgradeFragment(
Kby(9,50),
'EtaBToJpsiJpsi_13')),
717 (
'JpsiMuMu_Pt-8_forSTEAM_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(3100,100000),
'JpsiMuMu_Pt-8')),
718 (
'BuMixing_BMuonFilter_forSTEAM_13TeV_TuneCUETP8M1_cfi',
UpgradeFragment(
Kby(900,10000),
'BuMixing_13')),
719 (
'HSCPstop_M_200_TuneCUETP8M1_13TeV_pythia8_cff',
UpgradeFragment(
Kby(9,50),
'HSCPstop_M_200_13')),
720 (
'RSGravitonToGammaGamma_kMpl01_M_3000_TuneCUETP8M1_13TeV_pythia8_cfi',
UpgradeFragment(
Kby(9,50),
'RSGravitonToGaGa_13')),
721 (
'WprimeToENu_M-2000_TuneCUETP8M1_13TeV-pythia8_cff',
UpgradeFragment(
Kby(9,50),
'WpToENu_M-2000_13')),
722 (
'DisplacedSUSY_stopToBottom_M_300_1000mm_TuneCUETP8M1_13TeV_pythia8_cff',
UpgradeFragment(
Kby(9,50),
'DisplacedSUSY_stopToBottom_M_300_1000mm_13')),
724 (
'FlatRandomPtAndDxyGunProducer_cfi',
UpgradeFragment(
Kby(9,100),
'DisplacedMuonsDxy_0_500')),
728 (
'SingleGammaPt25Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SingleGammaPt25Eta1p7_2p7')),
729 (
'SingleElectronPt15Eta1p7_2p7_cfi',
UpgradeFragment(
Kby(9,100),
'SingleElectronPt15Eta1p7_2p7')),
731 (
'CloseByParticle_Photon_ERZRanges_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByParticleGun')),
732 (
'CE_E_Front_300um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByParticleGun_CE_E_Front_300um')),
733 (
'CE_E_Front_200um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByParticleGun_CE_E_Front_200um')),
734 (
'CE_E_Front_120um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByParticleGun_CE_E_Front_120um')),
735 (
'CE_H_Fine_300um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByParticleGun_CE_H_Fine_300um')),
736 (
'CE_H_Fine_200um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByParticleGun_CE_H_Fine_200um')),
737 (
'CE_H_Fine_120um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByParticleGun_CE_H_Fine_120um')),
738 (
'CE_H_Coarse_Scint_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByParticleGun_CE_H_Coarse_Scint')),
739 (
'CE_H_Coarse_300um_cfi',
UpgradeFragment(
Kby(9,100),
'CloseByParticleGun_CE_H_Coarse_300um')),
def setup_(self, step, stepName, stepDict, k, properties)
bool any(const std::vector< T > &v, const T &what)
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 setup_(self, step, stepName, stepDict, k, properties)
def condition_(self, fragment, stepList, key, hasHarvest)
def __init__(self, howMuch, dataset)
def condition(self, fragment, stepList, key, hasHarvest)
def workflow(self, workflows, num, fragment, stepList, key, hasHarvest)
def setup_(self, step, stepName, stepDict, k, properties)
def setup_(self, step, stepName, stepDict, k, properties)
def 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 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)
static std::string join(char **cmd)
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 condition_(self, fragment, stepList, key, hasHarvest)
def workflow_(self, workflows, num, fragment, stepList)
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 Kby(N, s)
Standard release validation samples ####.
def __init__(self, steps, PU, suffix, offset)
def setup_(self, step, stepName, stepDict, k, properties)
def condition(self, fragment, stepList, key, hasHarvest)
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run