Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add EventsPerLumi for relvals workflows and prod-like concurrentLS relvals #29318

Merged
merged 3 commits into from Apr 6, 2020
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
12 changes: 12 additions & 0 deletions Configuration/PyReleaseValidation/python/MatrixInjector.py
Expand Up @@ -53,6 +53,7 @@ def __init__(self,opt,mode='init',options=''):
self.keep = opt.keep
self.memoryOffset = opt.memoryOffset
self.memPerCore = opt.memPerCore
self.numberEventsInLuminosityBlock = opt.numberEventsInLuminosityBlock
self.batchName = ''
self.batchTime = str(int(time.time()))
if(opt.batchName):
Expand Down Expand Up @@ -128,6 +129,7 @@ def __init__(self,opt,mode='init',options=''):
"GlobalTag": None,
"SplittingAlgo" : "EventBased", #Splitting Algorithm
"EventsPerJob" : None, #Size of jobs in terms of splitting algorithm
"EventsPerLumi" : None,
"RequestNumEvents" : None, #Total number of events to generate
"Seeding" : "AutomaticSeeding", #Random seeding method
"PrimaryDataset" : None, #Primary Dataset to be created
Expand Down Expand Up @@ -356,6 +358,16 @@ def prepare(self,mReader, directories, mode='init'):
ns=map(int,arg[arg.index('--relval')+1].split(','))
chainDict['nowmTasklist'][-1]['RequestNumEvents'] = ns[0]
chainDict['nowmTasklist'][-1]['EventsPerJob'] = ns[1]
chainDict['nowmTasklist'][-1]['EventsPerLumi'] = ns[1]
#overwrite EventsPerLumi if numberEventsInLuminosityBlock is set in cmsDriver
if 'numberEventsInLuminosityBlock' in s[2][index]:
nEventsInLuminosityBlock = (((s[2][index].replace(" ","").replace("numberEventsInLuminosityBlock=cms.untracked.uint32("," ")).split()[1]).split(')'))[0]
srimanob marked this conversation as resolved.
Show resolved Hide resolved
if nEventsInLuminosityBlock.isdigit() and int(nEventsInLuminosityBlock) < ns[1]:
#print('Overwrite EventsPerLumi using cmsDriver customisation')
srimanob marked this conversation as resolved.
Show resolved Hide resolved
chainDict['nowmTasklist'][-1]['EventsPerLumi'] = nEventsInLuminosityBlock
if(self.numberEventsInLuminosityBlock > 0 and self.numberEventsInLuminosityBlock < ns[1]):
#print('Overwrite EventsPerLumi (again) using runTheMatrix parameter')
srimanob marked this conversation as resolved.
Show resolved Hide resolved
chainDict['nowmTasklist'][-1]['EventsPerLumi'] = self.numberEventsInLuminosityBlock
if 'FASTSIM' in s[2][index] or '--fast' in s[2][index]:
thisLabel+='_FastSim'
if 'lhe' in s[2][index] in s[2][index]:
Expand Down
9 changes: 6 additions & 3 deletions Configuration/PyReleaseValidation/python/relval_standard.py
Expand Up @@ -32,12 +32,15 @@

#####Prod2018
#workflows[1301.18] = ['', ['ProdMinBias_13UP18','DIGIUP18PROD1','RECOPRODUP18']]
workflows[1302.18] = ['', ['ProdTTbar_13UP18','DIGIUP18PROD1','RECOPRODUP18']]
workflows[1302.18] = ['', ['ProdTTbar_13UP18','DIGIUP18PROD1','RECOPRODUP18','MINIAODMCUP18','NANOPRODUP18']]
#workflows[1303.18] = ['', ['ProdQCD_Pt_3000_3500_13UP18','DIGIUP18PROD1','RECOPRODUP18']]
workflows[1304.18] = ['', ['ProdZEE_13UP18','DIGIUP18PROD1','RECOPRODUP18','MINIAODMCUP18']]
workflows[1304.181] = ['', ['ProdZEE_13UP18','DIGIUP18PROD1','RECOPRODUP18bParking','MINIAODMCUP18bParking']]
workflows[1304.18] = ['', ['ProdZEE_13UP18','DIGIUP18PROD1','RECOPRODUP18','MINIAODMCUP18','NANOPRODUP18']]
workflows[1304.182] = ['', ['ProdZEE_13UP18','DIGIUP18PROD1','RECOPRODUP18bParking','MINIAODMCUP18bParking']]
#workflows.addOverride(1303.17,overridesEv5)

#####Prod2018 with concurrentlumi
workflows[1302.181] = ['', ['ProdTTbar_13UP18ml','DIGIUP18PROD1ml','RECOPRODUP18ml','MINIAODMCUP18ml','NANOPRODUP18ml']]
workflows[1304.181] = ['', ['ProdZEE_13UP18ml','DIGIUP18PROD1ml','RECOPRODUP18ml','MINIAODMCUP18ml','NANOPRODUP18ml']]

### data ###
workflows[4.5] = ['', ['RunCosmicsA','RECOCOSD','ALCACOSD','HARVESTDC']]
Expand Down
10 changes: 10 additions & 0 deletions Configuration/PyReleaseValidation/python/relval_steps.py
Expand Up @@ -508,6 +508,9 @@ def gen2018(fragment,howMuch):
def gen2018prod(fragment,howMuch):
global step1Up2018ProdDefaults
return merge([{'cfg':fragment},howMuch,step1Up2018ProdDefaults])
def gen2018prodml(fragment,howMuch): #Prod with concurrentLumis
global step1Up2018ProdDefaults
return merge([{'cfg':fragment},howMuch,{'--customise_commands': '"process.source.numberEventsInLuminosityBlock=cms.untracked.uint32(5)"'},concurrentLumis,step1Up2018ProdDefaults]) #this setting is to allow job to cross LS in IB
def gen2018hiprod(fragment,howMuch):
global step1Up2018HiProdDefaults
return merge([{'cfg':fragment},howMuch,step1Up2018HiProdDefaults])
Expand Down Expand Up @@ -606,8 +609,10 @@ def gen2021hiprod(fragment,howMuch):
### 2018 wf: only the ones for premixing (for the moment)
steps['NuGun_UP18']=gen2018('SingleNuE10_cfi.py',Kby(9,50))
steps['ProdTTbar_13UP18']=gen2018prod('TTbar_13TeV_TuneCUETP8M1_cfi',Kby(9,50))
steps['ProdTTbar_13UP18ml']=gen2018prodml('TTbar_13TeV_TuneCUETP8M1_cfi',Kby(9,50))
steps['TTbar_13UP18']=gen2018('TTbar_13TeV_TuneCUETP8M1_cfi',Kby(9,50))
steps['ProdZEE_13UP18']=gen2018prod('ZEE_13TeV_TuneCUETP8M1_cfi',Kby(9,50))
steps['ProdZEE_13UP18ml']=gen2018prodml('ZEE_13TeV_TuneCUETP8M1_cfi',Kby(9,50))
steps['ZEE_13UP18']=gen2018('ZEE_13TeV_TuneCUETP8M1_cfi',Kby(9,50))
steps['ProdZMM_13UP18']=gen2018prod('ZMM_13TeV_TuneCUETP8M1_cfi',Kby(18,100))
steps['ZMM_13UP18']=gen2018('ZMM_13TeV_TuneCUETP8M1_cfi',Kby(18,100))
Expand Down Expand Up @@ -1643,6 +1648,7 @@ def lhegensim2018ml(fragment,howMuch):
steps['DIGIUP18ml']=merge([concurrentLumis,step2Upg2018Defaults])
steps['DIGIUP17PROD1']=merge([{'-s':'DIGI,L1,DIGI2RAW,HLT:@relval2017','--eventcontent':'RAWSIM','--datatier':'GEN-SIM-RAW'},step2Upg2017Defaults])
steps['DIGIUP18PROD1']=merge([{'-s':'DIGI,L1,DIGI2RAW,HLT:@relval2018','--eventcontent':'RAWSIM','--datatier':'GEN-SIM-RAW'},step2Upg2018Defaults])
steps['DIGIUP18PROD1ml']=merge([concurrentLumis,steps['DIGIUP18PROD1']])
steps['DIGIUP17_PU25']=merge([PU25UP17,step2Upg2017Defaults])
steps['DIGIUP18_PU25']=merge([PU25UP18,step2Upg2018Defaults])

Expand Down Expand Up @@ -2338,6 +2344,7 @@ def gen2021HiMix(fragment,howMuch):
steps['RECOPRODUP17']=merge([{ '--era' :'Run2_2017','--conditions': 'auto:phase1_2017_realistic'},steps['RECOPRODUP15']])
## for 2018 PROD
steps['RECOPRODUP18']=merge([{ '-s':'RAW2DIGI,L1Reco,RECO,RECOSIM,EI','--era' :'Run2_2018','--conditions': 'auto:phase1_2018_realistic','--datatier':'AODSIM','--eventcontent':'AODSIM'},step3Up2015Defaults])
steps['RECOPRODUP18ml']=merge([concurrentLumis,steps['RECOPRODUP18']])
steps['RECOPRODUP18bParking']=merge([{ '-s':'RAW2DIGI,L1Reco,RECO,RECOSIM,EI','--era' :'Run2_2018,bParking','--conditions': 'auto:phase1_2018_realistic','--datatier':'AODSIM','--eventcontent':'AODSIM'},step3Up2015Defaults])
##
steps['RECOCOS']=merge([{'-s':'RAW2DIGI,L1Reco,RECO,DQM','--scenario':'cosmics','--datatier':'GEN-SIM-RECO,DQMIO','--eventcontent':'RECOSIM,DQM'},stCond,step3Defaults])
Expand Down Expand Up @@ -3009,6 +3016,7 @@ def gen2021HiMix(fragment,howMuch):
steps['MINIAODMCUP18'] =merge([{'--conditions':'auto:phase1_2018_realistic','--era':'Run2_2018'},stepMiniAODMC])
steps['MINIAODMCUP18bParking'] =merge([{'--conditions':'auto:phase1_2018_realistic','--era':'Run2_2018,bParking'},stepMiniAODMC])
steps['MINIAODMCUP18FS'] =merge([{'--filein':'file:step1.root','--fast':'','--conditions':'auto:phase1_2018_realistic','--era':'Run2_2018_FastSim'},stepMiniAODMC])
steps['MINIAODMCUP18ml'] =merge([concurrentLumis,steps['MINIAODMCUP18']])

stepNanoAODDefaults = { '-s': 'NANO,DQM:@nanoAODDQM', '-n': 1000 }
stepNanoAODData = merge([{ '--data':'', '--eventcontent' : 'NANOAOD,DQM' ,'--datatier': 'NANOAOD,DQMIO' }, stepNanoAODDefaults ])
Expand Down Expand Up @@ -3045,7 +3053,9 @@ def gen2021HiMix(fragment,howMuch):
steps['NANOUP17Had']=merge([{'--filein':'file:step4_inMINIAODSIM.root'},steps['NANOUP17']])
steps['NANOUP18'] = merge([{'--conditions': 'auto:phase1_2018_realistic', '--era': 'Run2_2018','-n':'10', '--filein':'file:step3_inMINIAODSIM.root', '--nThreads':'2'}, stepNanoEDMMCProd ])
steps['NANOUP18Had']=merge([{'--filein':'file:step4_inMINIAODSIM.root'},steps['NANOUP18']])
steps['NANOPRODUP18']=merge([{'--filein':'file:step4.root'},steps['NANOUP18']])
steps['NANOUP18ml']=merge([concurrentLumis,steps['NANOUP18']])
steps['NANOPRODUP18ml']=merge([{'--filein':'file:step4.root'},steps['NANOUP18ml']])
steps['NANOEDM2017'] = merge([{'--conditions': 'auto:run2_data_relval', '--era': 'Run2_2017'}, stepNanoEDMData ])
steps['NANOEDM2017_94XMiniAODv1'] = merge([{'--era': 'Run2_2017,run2_nanoAOD_94XMiniAODv1'}, steps['NANOEDM2017'] ])
steps['NANOEDM2017_94XMiniAODv2'] = merge([{'--era': 'Run2_2017,run2_nanoAOD_94XMiniAODv2'}, steps['NANOEDM2017'] ])
Expand Down
6 changes: 6 additions & 0 deletions Configuration/PyReleaseValidation/scripts/runTheMatrix.py
Expand Up @@ -127,6 +127,11 @@ def runSelected(opt):
dest='nThreads',
default=1
)
parser.add_option('--numberEventsInLuminosityBlock',
help='number of events in a luminosity block',
dest='numberEventsInLuminosityBlock',
default=-1
)

parser.add_option('-n','--showMatrix',
help='Only show the worflows. Use --ext to show more',
Expand Down Expand Up @@ -335,6 +340,7 @@ def stepOrIndex(s):
if opt.fromScratch: opt.fromScratch = opt.fromScratch.split(',')
if opt.nProcs: opt.nProcs=int(opt.nProcs)
if opt.nThreads: opt.nThreads=int(opt.nThreads)
if (opt.numberEventsInLuminosityBlock): opt.numberEventsInLuminosityBlock=int(opt.numberEventsInLuminosityBlock)
if (opt.memoryOffset): opt.memoryOffset=int(opt.memoryOffset)
if (opt.memPerCore): opt.memPerCore=int(opt.memPerCore)

Expand Down