CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
relval_upgrade.py
Go to the documentation of this file.
1 # import the definition of the steps and input files:
3 
4 # here only define the workflows as a combination of the steps defined above:
5 workflows = Matrix()
6 
7 # each workflow defines a name and a list of steps to be done.
8 # if no explicit name/label given for the workflow (first arg),
9 # the name of step1 will be used
10 
11 def makeStepNameSim(key,frag,step,suffix):
12  return frag+'_'+key+'_'+step+suffix
13 
14 def makeStepName(key,frag,step,suffix):
15  return step+suffix+'_'+key
16 
17 #just define all of them
18 
19 for year in upgradeKeys:
20  for i,key in enumerate(upgradeKeys[year]):
21  numWF=numWFAll[year][i]
22  for frag,info in upgradeFragments.items():
23  # phase2-specific fragments are skipped in phase1
24  if ("CE_E" in frag or "CE_H" in frag) and year==2017:
25  numWF += 1
26  continue
27  stepList={}
28  for specialType in upgradeWFs.keys():
29  stepList[specialType] = []
30  hasHarvest = False
31  for step in upgradeProperties[year][key]['ScenToRun']:
32  stepMaker = makeStepName
33  if 'Sim' in step:
34  if 'HLBeamSpot' in step:
35  if '14TeV' in frag:
36  step = 'GenSimHLBeamSpot14'
37  if 'CloseByParticle' in frag or 'CE_E' in frag or 'CE_H' in frag:
38  step = 'GenSimHLBeamSpotHGCALCloseBy'
39  stepMaker = makeStepNameSim
40 
41  if 'HARVEST' in step: hasHarvest = True
42 
43  for specialType,specialWF in upgradeWFs.items():
44  if (specialType != 'baseline') and ( ('PU' in step and step.replace('PU','') in specialWF.PU) or (step in specialWF.steps) ):
45  stepList[specialType].append(stepMaker(key,frag[:-4],step,specialWF.suffix))
46  # hack to add an extra step
47  if 'ProdLike' in specialType:
48  if 'Reco' in step: # handles both Reco and RecoGlobal
49  stepList[specialType].append(stepMaker(key,frag[:-4],step.replace('RecoGlobal','MiniAOD').replace('RecoNano','MiniAOD').replace('Reco','MiniAOD'),specialWF.suffix))
50  if 'RecoNano' in step:
51  stepList[specialType].append(stepMaker(key,frag[:-4],step.replace('RecoNano','Nano'),specialWF.suffix))
52  # similar hacks for premixing
53  if 'PMX' in specialType:
54  if 'GenSim' in step:
55  s = step.replace('GenSim','Premix')+'PU' # later processing requires to have PU here
56  if step in specialWF.PU:
57  stepMade = stepMaker(key,'PREMIX',s,specialWF.suffix)
58  # append for combined
59  if 'S2' in specialType: stepList[specialType].append(stepMade)
60  # replace for s1
61  else: stepList[specialType][-1] = stepMade
62  else:
63  stepList[specialType].append(stepMaker(key,frag[:-4],step,''))
64 
65  for specialType,specialWF in upgradeWFs.items():
66  # remove other steps for premixS1
67  if specialType=="PMXS1":
68  stepList[specialType] = stepList[specialType][:1]
69  specialWF.workflow(workflows, numWF, info.dataset, stepList[specialType], key, hasHarvest)
70 
71  numWF+=1
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 ...
CLHEP::HepMatrix Matrix
Definition: matutil.h:62