Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2022-04-20 23:56:26

0001 # import the definition of the steps and input files:
0002 from  Configuration.PyReleaseValidation.relval_steps import *
0003 
0004 # here only define the workflows as a combination of the steps defined above:
0005 workflows = Matrix()
0006 
0007 # each workflow defines a name and a list of steps to be done. 
0008 # if no explicit name/label given for the workflow (first arg),
0009 # the name of step1 will be used
0010 
0011 def makeStepNameSim(key,frag,step,suffix):
0012     return frag+'_'+key+'_'+step+suffix
0013 
0014 def makeStepName(key,frag,step,suffix):
0015    return step+suffix+'_'+key
0016 
0017 #just define all of them
0018 
0019 for year in upgradeKeys:
0020     for i,key in enumerate(upgradeKeys[year]):
0021         numWF=numWFAll[year][i]
0022         for frag,info in upgradeFragments.items():
0023             # phase2-specific fragments are skipped in phase1
0024             if ("CE_E" in frag or "CE_H" in frag) and year==2017:
0025                 numWF += 1
0026                 continue
0027             stepList={}
0028             for specialType in upgradeWFs.keys():
0029                 stepList[specialType] = []
0030             hasHarvest = False
0031             for step in upgradeProperties[year][key]['ScenToRun']:
0032                 stepMaker = makeStepName
0033                 if 'Sim' in step:
0034                     if 'HLBeamSpot' in step:
0035                         if '14TeV' in frag:
0036                             step = 'GenSimHLBeamSpot14'
0037                         if 'CloseByParticle' in frag or 'CE_E' in frag or 'CE_H' in frag:
0038                             step = 'GenSimHLBeamSpotHGCALCloseBy'
0039                     stepMaker = makeStepNameSim
0040                 
0041                 if 'HARVEST' in step: hasHarvest = True
0042 
0043                 for specialType,specialWF in upgradeWFs.items():
0044                     if (specialType != 'baseline') and ( ('PU' in step and step.replace('PU','') in specialWF.PU) or (step in specialWF.steps) ):
0045                         stepList[specialType].append(stepMaker(key,frag[:-4],step,specialWF.suffix))
0046                         # hack to add an extra step
0047                         if 'ProdLike' in specialType:
0048                             if 'Reco' in step: # handles both Reco and RecoGlobal
0049                                 stepList[specialType].append(stepMaker(key,frag[:-4],step.replace('RecoGlobal','MiniAOD').replace('RecoNano','MiniAOD').replace('Reco','MiniAOD'),specialWF.suffix))
0050                                 if 'RecoNano' in step:
0051                                     stepList[specialType].append(stepMaker(key,frag[:-4],step.replace('RecoNano','Nano'),specialWF.suffix))
0052                         # hack to add extra HLT75e33 step for Phase-2
0053                         if 'HLT75e33' in specialType:
0054                             if 'RecoGlobal' in step:
0055                                 stepList[specialType].append(stepMaker(key,frag[:-4],step.replace('RecoGlobal','HLT75e33'),specialWF.suffix))
0056                         # similar hacks for premixing
0057                         if 'PMX' in specialType:
0058                             if 'GenSim' in step:
0059                                 s = step.replace('GenSim','Premix')+'PU' # later processing requires to have PU here
0060                                 if step in specialWF.PU:
0061                                     stepMade = stepMaker(key,'PREMIX',s,specialWF.suffix)
0062                                     # append for combined
0063                                     if 'S2' in specialType: stepList[specialType].append(stepMade)
0064                                     # replace for s1
0065                                     else: stepList[specialType][-1] = stepMade
0066                     else:
0067                         stepList[specialType].append(stepMaker(key,frag[:-4],step,''))
0068 
0069             for specialType,specialWF in upgradeWFs.items():
0070                 # remove other steps for premixS1
0071                 if specialType=="PMXS1":
0072                     stepList[specialType] = stepList[specialType][:1]
0073                 specialWF.workflow(workflows, numWF, info.dataset, stepList[specialType], key, hasHarvest)
0074 
0075             numWF+=1