CMS 3D CMS Logo

upgradeWorkflowComponents.py
Go to the documentation of this file.
1 from copy import deepcopy
2 from collections import OrderedDict
3 import six
4 from .MatrixUtil import merge, Kby
5 
6 # DON'T CHANGE THE ORDER, only append new keys. Otherwise the numbering for the runTheMatrix tests will change.
7 
8 upgradeKeys = {}
9 
10 upgradeKeys[2017] = [
11  '2017',
12  '2017PU',
13  '2017Design',
14  '2017DesignPU',
15  '2018',
16  '2018PU',
17  '2018Design',
18  '2018DesignPU',
19  '2021',
20  '2021PU',
21  '2021Design',
22  '2021DesignPU',
23  '2023',
24  '2023PU',
25  '2024',
26  '2024PU',
27 ]
28 
29 upgradeKeys[2026] = [
30  '2026D35',
31  '2026D35PU',
32  '2026D41',
33  '2026D41PU',
34  '2026D43',
35  '2026D43PU',
36  '2026D44',
37  '2026D44PU',
38  '2026D45',
39  '2026D45PU',
40  '2026D46',
41  '2026D46PU',
42  '2026D47',
43  '2026D47PU',
44  '2026D48',
45  '2026D48PU',
46  '2026D49',
47  '2026D49PU',
48  '2026D51',
49  '2026D51PU',
50  '2026D53',
51  '2026D53PU',
52  '2026D54',
53  '2026D54PU',
54  '2026D55',
55  '2026D55PU',
56  '2026D56',
57  '2026D56PU',
58  '2026D57',
59  '2026D57PU',
60  '2026D58',
61  '2026D58PU',
62 ]
63 
64 # pre-generation of WF numbers
65 numWFStart={
66  2017: 10000,
67  2026: 20000,
68 }
69 numWFSkip=200
70 # temporary measure to keep other WF numbers the same
71 numWFConflict = [[24000,24400],[25000,26000],[50000,51000]]
72 numWFAll={
73  2017: [],
74  2026: []
75 }
76 
77 for year in upgradeKeys:
78  for i in range(0,len(upgradeKeys[year])):
79  numWFtmp = numWFStart[year] if i==0 else (numWFAll[year][i-1] + numWFSkip)
80  for conflict in numWFConflict:
81  if numWFtmp>=conflict[0] and numWFtmp<conflict[1]:
82  numWFtmp = conflict[1]
83  break
84  numWFAll[year].append(numWFtmp)
85 
86 # workflows for baseline and for variations
87 # setup() automatically loops over all steps and applies any customizations specified in setup_() -> called in relval_steps.py
88 # workflow() adds a concrete workflow to the list based on condition() -> called in relval_upgrade.py
89 # every special workflow gets its own derived class, which must then be added to the global dict upgradeWFs
91  def __init__(self,steps,PU,suffix,offset):
92  self.steps = steps
93  self.PU = PU
94  self.suffix = suffix
95  self.offset = offset
96  if self.offset < 0.0 or self.offset > 1.0:
97  raise ValueError("Special workflow offset must be between 0.0 and 1.0")
98  def init(self, stepDict):
99  for step in self.steps:
100  stepName = step + self.suffix
101  stepDict[stepName] = {}
102  for step in self.PU:
103  stepName = step + 'PU' + self.suffix
104  stepDict[stepName] = {}
105  stepNamePmx = step + 'PUPRMX' + self.suffix
106  stepDict[stepNamePmx] = {}
107  stepDict[stepNamePmx+'Combined'] = {}
108  def setup(self, stepDict, k, properties):
109  for step in self.steps:
110  stepName = step + self.suffix
111  self.setup_(step, stepName, stepDict, k, properties)
112  def setup_(self, step, stepName, stepDict, k, properties):
113  pass
114  def workflow(self, workflows, num, fragment, stepList, key, hasHarvest):
115  if self.condition(fragment, stepList, key, hasHarvest):
116  self.workflow_(workflows, num, fragment, stepList)
117  def workflow_(self, workflows, num, fragment, stepList):
118  workflows[num+self.offset] = [ fragment, stepList ]
119  def condition(self, fragment, stepList, key, hasHarvest):
120  return False
121 upgradeWFs = OrderedDict()
122 
124  def setup_(self, step, stepName, stepDict, k, properties):
125  cust=properties.get('Custom', None)
126  era=properties.get('Era', None)
127  modifier=properties.get('ProcessModifier',None)
128  if cust is not None: stepDict[stepName][k]['--customise']=cust
129  if era is not None: stepDict[stepName][k]['--era']=era
130  if modifier is not None: stepDict[stepName][k]['--procModifier']=modifier
131  def condition(self, fragment, stepList, key, hasHarvest):
132  return True
133 upgradeWFs['baseline'] = UpgradeWorkflow_baseline(
134  steps = [
135  'GenSimFull',
136  'GenSimHLBeamSpotFull',
137  'GenSimHLBeamSpotFull14',
138  'DigiFull',
139  'DigiFullTrigger',
140  'RecoFullLocal',
141  'RecoFull',
142  'RecoFullGlobal',
143  'HARVESTFull',
144  'FastSim',
145  'HARVESTFast',
146  'HARVESTFullGlobal',
147  'ALCAFull',
148  'NanoFull',
149  'MiniAODFullGlobal',
150  ],
151  PU = [
152  'DigiFullTrigger',
153  'RecoFullLocal',
154  'RecoFullGlobal',
155  'DigiFull',
156  'RecoFull',
157  'HARVESTFull',
158  'HARVESTFullGlobal',
159  'MiniAODFullGlobal',
160  'NanoFull',
161  ],
162  suffix = '',
163  offset = 0.0,
164 )
165 
166 # some commonalities among tracking WFs
168  def condition(self, fragment, stepList, key, hasHarvest):
169  result = (fragment=="TTbar_13" or fragment=="TTbar_14TeV") and not 'PU' in key and hasHarvest and self.condition_(fragment, stepList, key, hasHarvest)
170  if result:
171  # skip ALCA and Nano
172  skipList = [s for s in stepList if (("ALCA" in s) or ("Nano" in s))]
173  for skip in skipList:
174  stepList.remove(skip)
175  return result
176  def condition_(self, fragment, stepList, key, hasHarvest):
177  return True
178 
180  def setup_(self, step, stepName, stepDict, k, properties):
181  if 'Reco' in step: stepDict[stepName][k] = merge([self.step3, stepDict[step][k]])
182  elif 'HARVEST' in step: stepDict[stepName][k] = merge([{'-s': 'HARVESTING:@trackingOnlyValidation+@trackingOnlyDQM'}, stepDict[step][k]])
183 upgradeWFs['trackingOnly'] = UpgradeWorkflow_trackingOnly(
184  steps = [
185  'RecoFull',
186  'HARVESTFull',
187  'RecoFullGlobal',
188  'HARVESTFullGlobal',
189  ],
190  PU = [],
191  suffix = '_trackingOnly',
192  offset = 0.1,
193 )
194 upgradeWFs['trackingOnly'].step3 = {
195  '-s': 'RAW2DIGI,RECO:reconstruction_trackingOnly,VALIDATION:@trackingOnlyValidation,DQM:@trackingOnlyDQM',
196  '--datatier':'GEN-SIM-RECO,DQMIO',
197  '--eventcontent':'RECOSIM,DQM',
198 }
199 # used outside of upgrade WFs
200 step3_trackingOnly = upgradeWFs['trackingOnly'].step3
201 
203  def setup_(self, step, stepName, stepDict, k, properties):
204  if 'Reco' in step and stepDict[step][k]['--era']=='Run2_2017':
205  stepDict[stepName][k] = merge([{'--era': 'Run2_2017_trackingRun2'}, stepDict[step][k]])
206  def condition_(self, fragment, stepList, key, hasHarvest):
207  return '2017' in key
208 upgradeWFs['trackingRun2'] = UpgradeWorkflow_trackingRun2(
209  steps = [
210  'RecoFull',
211  ],
212  PU = [],
213  suffix = '_trackingRun2',
214  offset = 0.2,
215 )
216 
218  def setup_(self, step, stepName, stepDict, k, properties):
219  if 'Reco' in step and stepDict[step][k]['--era']=='Run2_2017':
220  stepDict[stepName][k] = merge([{'--era': 'Run2_2017_trackingRun2'}, self.step3, stepDict[step][k]])
221  elif 'HARVEST' in step: stepDict[stepName][k] = merge([{'-s': 'HARVESTING:@trackingOnlyValidation+@trackingOnlyDQM'}, stepDict[step][k]])
222  def condition_(self, fragment, stepList, key, hasHarvest):
223  return '2017' in key
224 upgradeWFs['trackingOnlyRun2'] = UpgradeWorkflow_trackingOnlyRun2(
225  steps = [
226  'RecoFull',
227  'HARVESTFull',
228  ],
229  PU = [],
230  suffix = '_trackingOnlyRun2',
231  offset = 0.3,
232 )
233 upgradeWFs['trackingOnlyRun2'].step3 = upgradeWFs['trackingOnly'].step3
234 
236  def setup_(self, step, stepName, stepDict, k, properties):
237  if 'Reco' in step and stepDict[step][k]['--era']=='Run2_2017':
238  stepDict[stepName][k] = merge([{'--era': 'Run2_2017_trackingLowPU'}, stepDict[step][k]])
239  def condition_(self, fragment, stepList, key, hasHarvest):
240  return '2017' in key
241 upgradeWFs['trackingLowPU'] = UpgradeWorkflow_trackingLowPU(
242  steps = [
243  'RecoFull',
244  ],
245  PU = [],
246  suffix = '_trackingLowPU',
247  offset = 0.4,
248 )
249 
251  def setup_(self, step, stepName, stepDict, k, properties):
252  if 'Reco' in step: stepDict[stepName][k] = merge([self.step3, stepDict[step][k]])
253  elif 'HARVEST' in step: stepDict[stepName][k] = merge([{'-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM'}, stepDict[step][k]])
254  def condition_(self, fragment, stepList, key, hasHarvest):
255  return '2017' in key or '2018' in key or '2021' in key
256 upgradeWFs['pixelTrackingOnly'] = UpgradeWorkflow_pixelTrackingOnly(
257  steps = [
258  'RecoFull',
259  'HARVESTFull',
260  'RecoFullGlobal',
261  'HARVESTFullGlobal',
262  ],
263  PU = [],
264  suffix = '_pixelTrackingOnly',
265  offset = 0.5,
266 )
267 upgradeWFs['pixelTrackingOnly'].step3 = {
268  '-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
269  '--datatier': 'GEN-SIM-RECO,DQMIO',
270  '--eventcontent': 'RECOSIM,DQM',
271 }
272 
274  def setup_(self, step, stepName, stepDict, k, properties):
275  if 'Reco' in step: stepDict[stepName][k] = merge([self.step3, stepDict[step][k]])
276  def condition_(self, fragment, stepList, key, hasHarvest):
277  return '2017' in key or '2021' in key
278 upgradeWFs['trackingMkFit'] = UpgradeWorkflow_trackingMkFit(
279  steps = [
280  'RecoFull',
281  'RecoFullGlobal',
282  ],
283  PU = [],
284  suffix = '_trackingMkFit',
285  offset = 0.7,
286 )
287 upgradeWFs['trackingMkFit'].step3 = {
288  '--procModifiers': 'trackingMkFit'
289 }
290 
291 # Patatrack workflows
293  def condition(self, fragment, stepList, key, hasHarvest):
294  is_2018_ttbar = ('2018' in key and fragment=="TTbar_13")
295  is_2021_ttbar = ('2021' in key and fragment=="TTbar_14TeV")
296  is_2018_zmumu = ('2018' in key and fragment=="ZMM_13")
297  is_2021_zmumu = ('2021' in key and fragment=="ZMM_14")
298  result = any((is_2018_ttbar, is_2021_ttbar, is_2018_zmumu, is_2021_zmumu)) and hasHarvest and self.condition_(fragment, stepList, key, hasHarvest)
299  if result:
300  # skip ALCA and Nano
301  skipList = [s for s in stepList if (("ALCA" in s) or ("Nano" in s))]
302  for skip in skipList:
303  stepList.remove(skip)
304  return result
305  def condition_(self, fragment, stepList, key, hasHarvest):
306  return True
307 
309  def setup_(self, step, stepName, stepDict, k, properties):
310  if 'Reco' in step:
311  stepDict[stepName][k] = merge([self.step3, stepDict[step][k]])
312  elif 'HARVEST' in step:
313  stepDict[stepName][k] = merge([{'-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM'}, stepDict[step][k]])
314 
315  def condition_(self, fragment, stepList, key, hasHarvest):
316  return '2018' in key or '2021' in key
317 
318 upgradeWFs['PatatrackPixelOnlyCPU'] = UpgradeWorkflowPatatrack_PixelOnlyCPU(
319  steps = [
320  'RecoFull',
321  'HARVESTFull',
322  'RecoFullGlobal',
323  'HARVESTFullGlobal',
324  ],
325  PU = [],
326  suffix = 'Patatrack_PixelOnlyCPU',
327  offset = 0.501,
328 )
329 
330 upgradeWFs['PatatrackPixelOnlyCPU'].step3 = {
331  '-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
332  '--datatier': 'GEN-SIM-RECO,DQMIO',
333  '--eventcontent': 'RECOSIM,DQM',
334  '--procModifiers': 'pixelNtupleFit'
335 }
336 
338  def setup_(self, step, stepName, stepDict, k, properties):
339  if 'Reco' in step:
340  stepDict[stepName][k] = merge([self.step3, stepDict[step][k]])
341  elif 'HARVEST' in step:
342  stepDict[stepName][k] = merge([{'-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM'}, stepDict[step][k]])
343 
344  def condition_(self, fragment, stepList, key, hasHarvest):
345  return '2018' in key or '2021' in key
346 
347 upgradeWFs['PatatrackPixelOnlyGPU'] = UpgradeWorkflowPatatrack_PixelOnlyGPU(
348  steps = [
349  'RecoFull',
350  'HARVESTFull',
351  'RecoFullGlobal',
352  'HARVESTFullGlobal',
353  ],
354  PU = [],
355  suffix = 'Patatrack_PixelOnlyGPU',
356  offset = 0.502,
357 )
358 
359 upgradeWFs['PatatrackPixelOnlyGPU'].step3 = {
360  '-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM',
361  '--datatier': 'GEN-SIM-RECO,DQMIO',
362  '--eventcontent': 'RECOSIM,DQM',
363  '--procModifiers': 'gpu'
364 }
365 
367  def setup_(self, step, stepName, stepDict, k, properties):
368  if 'Reco' in step:
369  stepDict[stepName][k] = merge([self.step3, stepDict[step][k]])
370  elif 'HARVEST' in step:
371  stepDict[stepName][k] = merge([{'-s': 'HARVESTING:@ecalOnlyValidation+@ecal'}, stepDict[step][k]])
372 
373  def condition_(self, fragment, stepList, key, hasHarvest):
374  return '2018' in key or '2021' in key
375 
376 upgradeWFs['PatatrackECALOnlyCPU'] = UpgradeWorkflowPatatrack_ECALOnlyCPU(
377  steps = [
378  'RecoFull',
379  'HARVESTFull',
380  'RecoFullGlobal',
381  'HARVESTFullGlobal',
382  ],
383  PU = [],
384  suffix = 'Patatrack_ECALOnlyCPU',
385  offset = 0.511,
386 )
387 
388 upgradeWFs['PatatrackECALOnlyCPU'].step3 = {
389  '-s': 'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly',
390  '--datatier': 'GEN-SIM-RECO,DQMIO',
391  '--eventcontent': 'RECOSIM,DQM',
392 }
393 
395  def setup_(self, step, stepName, stepDict, k, properties):
396  if 'Reco' in step:
397  stepDict[stepName][k] = merge([self.step3, stepDict[step][k]])
398  elif 'HARVEST' in step:
399  stepDict[stepName][k] = merge([{'-s': 'HARVESTING:@ecalOnlyValidation+@ecal'}, stepDict[step][k]])
400 
401  def condition_(self, fragment, stepList, key, hasHarvest):
402  return '2018' in key or '2021' in key
403 
404 upgradeWFs['PatatrackECALOnlyGPU'] = UpgradeWorkflowPatatrack_ECALOnlyGPU(
405  steps = [
406  'RecoFull',
407  'HARVESTFull',
408  'RecoFullGlobal',
409  'HARVESTFullGlobal',
410  ],
411  PU = [],
412  suffix = 'Patatrack_ECALOnlyGPU',
413  offset = 0.512,
414 )
415 
416 upgradeWFs['PatatrackECALOnlyGPU'].step3 = {
417  '-s': 'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly',
418  '--datatier': 'GEN-SIM-RECO,DQMIO',
419  '--eventcontent': 'RECOSIM,DQM',
420  '--procModifiers': 'gpu'
421 }
422 
424  def setup_(self, step, stepName, stepDict, k, properties):
425  if 'Reco' in step:
426  stepDict[stepName][k] = merge([self.step3, stepDict[step][k]])
427  elif 'HARVEST' in step:
428  stepDict[stepName][k] = merge([{'-s': 'HARVESTING:@hcalOnlyValidation+@hcalOnly+@hcal2Only'}, stepDict[step][k]])
429 
430  def condition_(self, fragment, stepList, key, hasHarvest):
431  return '2018' in key or '2021' in key
432 
433 upgradeWFs['PatatrackHCALOnlyCPU'] = UpgradeWorkflowPatatrack_HCALOnlyCPU(
434  steps = [
435  'RecoFull',
436  'HARVESTFull',
437  'RecoFullGlobal',
438  'HARVESTFullGlobal',
439  ],
440  PU = [],
441  suffix = 'Patatrack_HCALOnlyCPU',
442  offset = 0.521,
443 )
444 
445 upgradeWFs['PatatrackHCALOnlyCPU'].step3 = {
446  '-s': 'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only',
447  '--datatier': 'GEN-SIM-RECO,DQMIO',
448  '--eventcontent': 'RECOSIM,DQM',
449 }
450 
452  def setup_(self, step, stepName, stepDict, k, properties):
453  if 'Reco' in step:
454  stepDict[stepName][k] = merge([self.step3, stepDict[step][k]])
455  elif 'HARVEST' in step:
456  stepDict[stepName][k] = merge([{'-s': 'HARVESTING:@hcalOnlyValidation+@hcalOnly+@hcal2Only'}, stepDict[step][k]])
457 
458  def condition_(self, fragment, stepList, key, hasHarvest):
459  return '2018' in key or '2021' in key
460 
461 upgradeWFs['PatatrackHCALOnlyGPU'] = UpgradeWorkflowPatatrack_HCALOnlyGPU(
462  steps = [
463  'RecoFull',
464  'HARVESTFull',
465  'RecoFullGlobal',
466  'HARVESTFullGlobal',
467  ],
468  PU = [],
469  suffix = 'Patatrack_HCALOnlyGPU',
470  offset = 0.522,
471 )
472 
473 upgradeWFs['PatatrackHCALOnlyGPU'].step3 = {
474  '-s': 'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only',
475  '--datatier': 'GEN-SIM-RECO,DQMIO',
476  '--eventcontent': 'RECOSIM,DQM',
477  '--procModifiers': 'gpu'
478 }
479 
480 # end of Patatrack workflows
481 
483  def setup_(self, step, stepName, stepDict, k, properties):
484  if 'Digi' in step and 'Trigger' not in step:
485  stepDict[stepName][k] = merge([{'-s': 'DIGI,L1,DIGI2RAW,HLT:@relval2021', '--datatier':'GEN-SIM-DIGI-RAW', '--eventcontent':'RAWSIM'}, stepDict[step][k]])
486  elif 'Reco' in step:
487  stepDict[stepName][k] = merge([{'-s': 'RAW2DIGI,L1Reco,RECO,RECOSIM', '--datatier':'AODSIM', '--eventcontent':'AODSIM'}, stepDict[step][k]])
488  elif 'MiniAOD' in step:
489  # the separate miniAOD step is used here
490  stepDict[stepName][k] = deepcopy(stepDict[step][k])
491  if 'ALCA' in step or 'HARVEST' in step:
492  # remove step
493  stepDict[stepName][k] = None
494  if 'Nano' in step:
495  stepDict[stepName][k] = merge([{'--filein':'file:step4.root'}, stepDict[step][k]])
496  def condition(self, fragment, stepList, key, hasHarvest):
497  return fragment=="TTbar_14TeV" and ('2026' in key or '2021' in key)
498 upgradeWFs['ProdLike'] = UpgradeWorkflow_ProdLike(
499  steps = [
500  'DigiFull',
501  'RecoFull',
502  'RecoFullGlobal',
503  'HARVESTFull',
504  'HARVESTFullGlobal',
505  'MiniAODFullGlobal',
506  'ALCAFull',
507  'NanoFull',
508  ],
509  PU = [
510  'DigiFull',
511  'RecoFull',
512  'RecoFullGlobal',
513  'HARVESTFull',
514  'HARVESTFullGlobal',
515  'MiniAODFullGlobal',
516  'ALCAFull',
517  'NanoFull',
518  ],
519  suffix = '_ProdLike',
520  offset = 0.21,
521 )
522 
524  def setup_(self, step, stepName, stepDict, k, properties):
525  if 'GenSim' in step:
526  custNew = "SimG4Core/Application/NeutronBGforMuonsXS_cff.customise"
527  else:
528  custNew = "SLHCUpgradeSimulations/Configuration/customise_mixing.customise_Mix_LongLived_Neutrons"
529  stepDict[stepName][k] = deepcopy(stepDict[step][k])
530  if '--customise' in stepDict[stepName][k].keys():
531  stepDict[stepName][k]['--customise'] += ","+custNew
532  else:
533  stepDict[stepName][k]['--customise'] = custNew
534  def condition(self, fragment, stepList, key, hasHarvest):
535  return any(fragment==nfrag for nfrag in self.neutronFrags) and any(nkey in key for nkey in self.neutronKeys)
536 upgradeWFs['Neutron'] = UpgradeWorkflow_Neutron(
537  steps = [
538  'GenSimFull',
539  'GenSimHLBeamSpotFull',
540  'GenSimHLBeamSpotFull14',
541  'DigiFull',
542  'DigiFullTrigger',
543  ],
544  PU = [
545  'DigiFull',
546  'DigiFullTrigger',
547  ],
548  suffix = '_Neutron',
549  offset = 0.12,
550 )
551 # add some extra info
552 upgradeWFs['Neutron'].neutronKeys = [x for x in upgradeKeys[2026] if 'PU' not in x]
553 upgradeWFs['Neutron'].neutronFrags = ['ZMM_14','MinBias_14TeV']
554 
556  def setup_(self, step, stepName, stepDict, k, properties):
557  stepDict[stepName][k] = merge([{'--procModifiers': 'run2_HECollapse_2018'}, stepDict[step][k]])
558  def condition(self, fragment, stepList, key, hasHarvest):
559  return fragment=="TTbar_13" and '2018' in key
560 upgradeWFs['heCollapse'] = UpgradeWorkflow_heCollapse(
561  steps = [
562  'GenSimFull',
563  'DigiFull',
564  'RecoFull',
565  'HARVESTFull',
566  'ALCAFull',
567  ],
568  PU = [
569  'DigiFull',
570  'RecoFull',
571  'HARVESTFull',
572  ],
573  suffix = '_heCollapse',
574  offset = 0.6,
575 )
576 
578  def setup_(self, step, stepName, stepDict, k, properties):
579  if 'Reco' in step and 'Run2_2018' in stepDict[step][k]['--era']:
580  stepDict[stepName][k] = merge([{'--era': 'Run2_2018,bParking'}, stepDict[step][k]])
581  def condition(self, fragment, stepList, key, hasHarvest):
582  return fragment=="TTbar_13" and '2018' in key
583 upgradeWFs['ParkingBPH'] = UpgradeWorkflow_ParkingBPH(
584  steps = [
585  'RecoFull',
586  ],
587  PU = [],
588  suffix = '_ParkingBPH',
589  offset = 0.8,
590 )
591 
593  def setup_(self, step, stepName, stepDict, k, properties):
594  if 'Nano' in step:
595  stepDict[stepName][k] = merge([{'--customise': 'PhysicsTools/NanoAOD/custom_jme_cff.PrepJMECustomNanoAOD_MC'}, stepDict[step][k]])
596  def condition(self, fragment, stepList, key, hasHarvest):
597  return fragment=="TTbar_13" and ('2017' in key or '2018' in key)
598 upgradeWFs['JMENano'] = UpgradeWorkflow_JMENano(
599  steps = [
600  'NanoFull',
601  ],
602  PU = [],
603  suffix = '_JMENano',
604  offset = 0.15,
605 )
606 
607 
608 # common operations for aging workflows
610  def setup_(self, step, stepName, stepDict, k, properties):
611  if 'Digi' in step or 'Reco' in step:
612  stepDict[stepName][k] = merge([{'--customise': 'SLHCUpgradeSimulations/Configuration/aging.customise_aging_'+self.lumi}, stepDict[step][k]])
613  def condition(self, fragment, stepList, key, hasHarvest):
614  return fragment=="TTbar_14TeV" and '2026' in key
615 # define several of them
616 upgradeWFs['Aging1000'] = UpgradeWorkflowAging(
617  steps = [
618  'DigiFull',
619  'DigiFullTrigger',
620  'RecoFullLocal',
621  'RecoFull',
622  'RecoFullGlobal',
623  ],
624  PU = [
625  'DigiFull',
626  'DigiFullTrigger',
627  'RecoFullLocal',
628  'RecoFull',
629  'RecoFullGlobal',
630  ],
631  suffix = 'Aging1000',
632  offset = 0.101,
633 )
634 upgradeWFs['Aging1000'].lumi = '1000'
635 upgradeWFs['Aging3000'] = deepcopy(upgradeWFs['Aging1000'])
636 upgradeWFs['Aging3000'].suffix = 'Aging3000'
637 upgradeWFs['Aging3000'].offset = 0.103
638 upgradeWFs['Aging3000'].lumi = '3000'
639 
640 # for premix, just use base class to store information
641 # actual operations happen in relval_steps.py and relval_upgrade.py
642 upgradeWFs['Premix'] = UpgradeWorkflow(
643  steps = [],
644  PU = [
645  'PremixFull',
646  'PremixHLBeamSpotFull',
647  'PremixHLBeamSpotFull14',
648  ],
649  suffix = '_Premix',
650  offset = 0.97,
651 )
652 # Premix stage2 is derived from baseline+PU in relval_upgrade.py
653 upgradeWFs['premixS2'] = UpgradeWorkflow(
654  steps = [],
655  PU = [],
656  suffix = '_premixS2',
657  offset = 0.98,
658 )
659 # Premix combined stage1+stage2 is derived for Premix+PU and baseline+PU in relval_upgrade.py
660 upgradeWFs['premixS1S2'] = UpgradeWorkflow(
661  steps = [],
662  PU = [],
663  suffix = '_premixS1S2',
664  offset = 0.99,
665 )
666 
668  def setup_(self, step, stepName, stepDict, k, properties):
669  if 'Reco' in step:
670  # use existing DIGI-RAW file from old release
671  # re-emulate the full L1 trigger when running on 11_0 DIGI, i.e. replace L1Reco with L1TrackTrigger,L1
672  mods = {
673  '--filein': 'das:/RelValTTbar_14TeV/CMSSW_11_0_0_pre13-110X_mcRun4_realistic_v2_2026D49noPU-v1/GEN-SIM-DIGI-RAW',
674  '--customise': "L1Trigger/Configuration/customisePhase2TTNoMC.customisePhase2TTNoMC",
675  }
676  # for prodlike case
677  if self.prodlike:
678  mods['-s'] = 'RAW2DIGI,L1TrackTrigger,L1,RECO,RECOSIM'
679  mods['--datatier'] = 'AODSIM'
680  mods['--eventcontent'] = 'AODSIM'
681  else:
682  mods['-s'] = stepDict[step][k]['-s'].replace("L1Reco","L1TrackTrigger,L1")
683  stepDict[stepName][k] = merge([mods, stepDict[step][k]])
684  # handle separate PU input
685  stepNamePU = step + 'PU' + self.suffix
686  mods['--filein'] = 'das:/RelValTTbar_14TeV/CMSSW_11_0_0_pre13-PU25ns_110X_mcRun4_realistic_v2_2026D49PU200-v2/GEN-SIM-DIGI-RAW'
687  stepDict[stepNamePU][k] = merge([mods,stepDict[stepName][k]])
688  elif 'GenSim' in step or 'Digi' in step:
689  # remove step
690  stepDict[stepName][k] = None
691 
692  # other prodlike adjustments
693  if self.prodlike:
694  if 'MiniAOD' in step and self.prodlike:
695  # the separate miniAOD step is used here
696  stepDict[stepName][k] = deepcopy(stepDict[step][k])
697  elif 'ALCA' in step or 'HARVEST' in step:
698  # remove step
699  stepDict[stepName][k] = None
700  elif 'Nano' in step:
701  stepDict[stepName][k] = merge([{'--filein':'file:step4.root'}, stepDict[step][k]])
702  def condition(self, fragment, stepList, key, hasHarvest):
703  # limited to HLT TDR production geometry
704  return fragment=="TTbar_14TeV" and '2026D49' in key
705  def workflow_(self, workflows, num, fragment, stepList):
706  UpgradeWorkflow.workflow_(self, workflows, num, fragment, stepList)
707 upgradeWFs['TestOldDigi'] = UpgradeWorkflow_TestOldDigi(
708  steps = [
709  'GenSimHLBeamSpotFull',
710  'GenSimHLBeamSpotFull14',
711  'DigiFullTrigger',
712  'RecoFullGlobal',
713  ],
714  PU = [
715  'DigiFullTrigger',
716  'RecoFullGlobal',
717  ],
718  suffix = '_TestOldDigi',
719  offset = 0.1001,
720 )
721 upgradeWFs['TestOldDigi'].prodlike = False
722 upgradeWFs['TestOldDigiProdLike'] = UpgradeWorkflow_TestOldDigi(
723  steps = [
724  'GenSimHLBeamSpotFull',
725  'GenSimHLBeamSpotFull14',
726  'DigiFullTrigger',
727  'RecoFullGlobal',
728  'HARVESTFullGlobal',
729  'MiniAODFullGlobal',
730  ],
731  PU = [
732  'DigiFullTrigger',
733  'RecoFullGlobal',
734  'HARVESTFullGlobal',
735  'MiniAODFullGlobal',
736  ],
737  suffix = '_TestOldDigiProdLike',
738  offset = 0.1002,
739 )
740 upgradeWFs['TestOldDigiProdLike'].prodlike = True
741 
742 # check for duplicate offsets
743 offsets = [specialWF.offset for specialType,specialWF in six.iteritems(upgradeWFs)]
744 seen = set()
745 dups = set(x for x in offsets if x in seen or seen.add(x))
746 if len(dups)>0:
747  raise ValueError("Duplicate special workflow offsets not allowed: "+','.join([str(x) for x in dups]))
748 
749 upgradeProperties = {}
750 
751 upgradeProperties[2017] = {
752  '2017' : {
753  'Geom' : 'DB:Extended',
754  'GT' : 'auto:phase1_2017_realistic',
755  'HLTmenu': '@relval2017',
756  'Era' : 'Run2_2017',
757  'ScenToRun' : ['GenSimFull','DigiFull','RecoFull','HARVESTFull','ALCAFull','NanoFull'],
758  },
759  '2017Design' : {
760  'Geom' : 'DB:Extended',
761  'GT' : 'auto:phase1_2017_design',
762  'HLTmenu': '@relval2017',
763  'Era' : 'Run2_2017',
764  'BeamSpot': 'GaussSigmaZ4cm',
765  'ScenToRun' : ['GenSimFull','DigiFull','RecoFull','HARVESTFull'],
766  },
767  '2018' : {
768  'Geom' : 'DB:Extended',
769  'GT' : 'auto:phase1_2018_realistic',
770  'HLTmenu': '@relval2018',
771  'Era' : 'Run2_2018',
772  'BeamSpot': 'Realistic25ns13TeVEarly2018Collision',
773  'ScenToRun' : ['GenSimFull','DigiFull','RecoFull','HARVESTFull','ALCAFull','NanoFull'],
774  },
775  '2018Design' : {
776  'Geom' : 'DB:Extended',
777  'GT' : 'auto:phase1_2018_design',
778  'HLTmenu': '@relval2018',
779  'Era' : 'Run2_2018',
780  'BeamSpot': 'GaussSigmaZ4cm',
781  'ScenToRun' : ['GenSimFull','DigiFull','RecoFull','HARVESTFull'],
782  },
783  '2021' : {
784  'Geom' : 'DB:Extended',
785  'GT' : 'auto:phase1_2021_realistic',
786  'HLTmenu': '@relval2021',
787  'Era' : 'Run3',
788  'BeamSpot': 'Run3RoundOptics25ns13TeVLowSigmaZ',
789  'ScenToRun' : ['GenSimFull','DigiFull','RecoFull','HARVESTFull','ALCAFull'],
790  },
791  '2021Design' : {
792  'Geom' : 'DB:Extended',
793  'GT' : 'auto:phase1_2021_design',
794  'HLTmenu': '@relval2021',
795  'Era' : 'Run3',
796  'BeamSpot': 'GaussSigmaZ4cm',
797  'ScenToRun' : ['GenSimFull','DigiFull','RecoFull','HARVESTFull'],
798  },
799  '2023' : {
800  'Geom' : 'DB:Extended',
801  'GT' : 'auto:phase1_2023_realistic',
802  'HLTmenu': '@relval2021',
803  'Era' : 'Run3',
804  'BeamSpot': 'Run3RoundOptics25ns13TeVLowSigmaZ',
805  'ScenToRun' : ['GenSimFull','DigiFull','RecoFull','HARVESTFull','ALCAFull'],
806  },
807  '2024' : {
808  'Geom' : 'DB:Extended',
809  'GT' : 'auto:phase1_2024_realistic',
810  'HLTmenu': '@relval2021',
811  'Era' : 'Run3',
812  'BeamSpot': 'Run3RoundOptics25ns13TeVLowSigmaZ',
813  'ScenToRun' : ['GenSimFull','DigiFull','RecoFull','HARVESTFull','ALCAFull'],
814  },
815 }
816 
817 # standard PU sequences
818 for key in list(upgradeProperties[2017].keys()):
819  upgradeProperties[2017][key+'PU'] = deepcopy(upgradeProperties[2017][key])
820  upgradeProperties[2017][key+'PU']['ScenToRun'] = ['GenSimFull','DigiFullPU','RecoFullPU','HARVESTFullPU'] + \
821  (['NanoFull'] if 'Design' not in key else [])
822 
823 upgradeProperties[2026] = {
824  '2026D35' : {
825  'Geom' : 'Extended2026D35',
826  'HLTmenu': '@fake2',
827  'GT' : 'auto:phase2_realistic_T6',
828  'Era' : 'Phase2C4',
829  'ScenToRun' : ['GenSimHLBeamSpotFull','DigiFullTrigger','RecoFullGlobal', 'HARVESTFullGlobal'],
830  },
831  '2026D41' : {
832  'Geom' : 'Extended2026D41',
833  'HLTmenu': '@fake2',
834  'GT' : 'auto:phase2_realistic_T14',
835  'Era' : 'Phase2C8',
836  'ScenToRun' : ['GenSimHLBeamSpotFull','DigiFullTrigger','RecoFullGlobal', 'HARVESTFullGlobal'],
837  },
838  '2026D43' : {
839  'Geom' : 'Extended2026D43',
840  'HLTmenu': '@fake2',
841  'GT' : 'auto:phase2_realistic_T14',
842  'Era' : 'Phase2C4',
843  'ScenToRun' : ['GenSimHLBeamSpotFull','DigiFullTrigger','RecoFullGlobal', 'HARVESTFullGlobal'],
844  },
845  '2026D44' : {
846  'Geom' : 'Extended2026D44',
847  'HLTmenu': '@fake2',
848  'GT' : 'auto:phase2_realistic_T14',
849  'Era' : 'Phase2C6',
850  'ScenToRun' : ['GenSimHLBeamSpotFull','DigiFullTrigger','RecoFullGlobal', 'HARVESTFullGlobal'],
851  },
852  '2026D45' : {
853  'Geom' : 'Extended2026D45',
854  'HLTmenu': '@fake2',
855  'GT' : 'auto:phase2_realistic_T15',
856  'Era' : 'Phase2C8',
857  'ScenToRun' : ['GenSimHLBeamSpotFull','DigiFullTrigger','RecoFullGlobal', 'HARVESTFullGlobal'],
858  },
859  '2026D46' : {
860  'Geom' : 'Extended2026D46',
861  'HLTmenu': '@fake2',
862  'GT' : 'auto:phase2_realistic_T15',
863  'Era' : 'Phase2C9',
864  'ScenToRun' : ['GenSimHLBeamSpotFull','DigiFullTrigger','RecoFullGlobal', 'HARVESTFullGlobal'],
865  },
866  '2026D47' : {
867  'Geom' : 'Extended2026D47',
868  'HLTmenu': '@fake2',
869  'GT' : 'auto:phase2_realistic_T15',
870  'Era' : 'Phase2C10',
871  'ScenToRun' : ['GenSimHLBeamSpotFull','DigiFullTrigger','RecoFullGlobal', 'HARVESTFullGlobal'],
872  },
873  '2026D48' : {
874  'Geom' : 'Extended2026D48',
875  'HLTmenu': '@fake2',
876  'GT' : 'auto:phase2_realistic_T15',
877  'Era' : 'Phase2C9',
878  'ScenToRun' : ['GenSimHLBeamSpotFull','DigiFullTrigger','RecoFullGlobal', 'HARVESTFullGlobal'],
879  },
880  '2026D49' : {
881  'Geom' : 'Extended2026D49',
882  'HLTmenu': '@relval2026',
883  'GT' : 'auto:phase2_realistic_T15',
884  'Era' : 'Phase2C9',
885  'ScenToRun' : ['GenSimHLBeamSpotFull','DigiFullTrigger','RecoFullGlobal', 'HARVESTFullGlobal'],
886  },
887  '2026D51' : {
888  'Geom' : 'Extended2026D51',
889  'HLTmenu': '@fake2',
890  'GT' : 'auto:phase2_realistic_T15',
891  'Era' : 'Phase2C9',
892  'ScenToRun' : ['GenSimHLBeamSpotFull','DigiFullTrigger','RecoFullGlobal', 'HARVESTFullGlobal'],
893  },
894  '2026D53' : {
895  'Geom' : 'Extended2026D53',
896  'HLTmenu': '@fake2',
897  'GT' : 'auto:phase2_realistic_T15',
898  'Era' : 'Phase2C9',
899  'ScenToRun' : ['GenSimHLBeamSpotFull','DigiFullTrigger','RecoFullGlobal', 'HARVESTFullGlobal'],
900  },
901  '2026D54' : {
902  'Geom' : 'Extended2026D54',
903  'HLTmenu': '@fake2',
904  'GT' : 'auto:phase2_realistic_T19',
905  'ProcessModifier': 'phase2_PixelCPEGeneric',
906  'Era' : 'Phase2C9',
907  'ScenToRun' : ['GenSimHLBeamSpotFull','DigiFullTrigger','RecoFullGlobal', 'HARVESTFullGlobal'],
908  },
909  '2026D55' : {
910  'Geom' : 'Extended2026D55',
911  'HLTmenu': '@fake2',
912  'GT' : 'auto:phase2_realistic_T19',
913  'ProcessModifier': 'phase2_PixelCPEGeneric',
914  'Era' : 'Phase2C9',
915  'ScenToRun' : ['GenSimHLBeamSpotFull','DigiFullTrigger','RecoFullGlobal', 'HARVESTFullGlobal'],
916  },
917  '2026D56' : {
918  'Geom' : 'Extended2026D56',
919  'HLTmenu': '@fake2',
920  'GT' : 'auto:phase2_realistic_T15',
921  'Era' : 'Phase2C9',
922  'ScenToRun' : ['GenSimHLBeamSpotFull','DigiFullTrigger','RecoFullGlobal', 'HARVESTFullGlobal'],
923  },
924  '2026D57' : {
925  'Geom' : 'Extended2026D57',
926  'HLTmenu': '@fake2',
927  'GT' : 'auto:phase2_realistic_T15',
928  'Era' : 'Phase2C9',
929  'ScenToRun' : ['GenSimHLBeamSpotFull','DigiFullTrigger','RecoFullGlobal', 'HARVESTFullGlobal'],
930  },
931  '2026D58' : {
932  'Geom' : 'Extended2026D58',
933  'HLTmenu': '@fake2',
934  'GT' : 'auto:phase2_realistic_T15',
935  'Era' : 'Phase2C10',
936  'ScenToRun' : ['GenSimHLBeamSpotFull','DigiFullTrigger','RecoFullGlobal', 'HARVESTFullGlobal'],
937  },
938 }
939 
940 # standard PU sequences
941 for key in list(upgradeProperties[2026].keys()):
942  upgradeProperties[2026][key+'PU'] = deepcopy(upgradeProperties[2026][key])
943  upgradeProperties[2026][key+'PU']['ScenToRun'] = ['GenSimHLBeamSpotFull','DigiFullTriggerPU','RecoFullGlobalPU', 'HARVESTFullGlobalPU']
944 
945 # for relvals
946 defaultDataSets = {}
947 for year in upgradeKeys:
948  for key in upgradeKeys[year]:
949  if 'PU' in key: continue
950  defaultDataSets[key] = ''
951 
952 
954  def __init__(self, howMuch, dataset):
955  self.howMuch = howMuch
956  self.dataset = dataset
957 
958 upgradeFragments = OrderedDict([
959  ('FourMuPt_1_200_pythia8_cfi', UpgradeFragment(Kby(10,100),'FourMuPt1_200')),
960  ('SingleElectronPt10_pythia8_cfi', UpgradeFragment(Kby(9,100),'SingleElectronPt10')),
961  ('SingleElectronPt35_pythia8_cfi', UpgradeFragment(Kby(9,100),'SingleElectronPt35')),
962  ('SingleElectronPt1000_pythia8_cfi', UpgradeFragment(Kby(9,50),'SingleElectronPt1000')),
963  ('SingleGammaPt10_pythia8_cfi', UpgradeFragment(Kby(9,100),'SingleGammaPt10')),
964  ('SingleGammaPt35_pythia8_cfi', UpgradeFragment(Kby(9,50),'SingleGammaPt35')),
965  ('SingleMuPt1_pythia8_cfi', UpgradeFragment(Kby(25,100),'SingleMuPt1')),
966  ('SingleMuPt10_Eta2p85_cfi', UpgradeFragment(Kby(9,100),'SingleMuPt10')),
967  ('SingleMuPt100_Eta2p85_cfi', UpgradeFragment(Kby(9,100),'SingleMuPt100')),
968  ('SingleMuPt1000_Eta2p85_cfi', UpgradeFragment(Kby(9,100),'SingleMuPt1000')),
969  ('FourMuExtendedPt_1_200_pythia8_cfi', UpgradeFragment(Kby(10,100),'FourMuExtendedPt1_200')),
970  ('TenMuExtendedE_0_200_pythia8_cfi', UpgradeFragment(Kby(10,100),'TenMuExtendedE_0_200')),
971  ('DoubleElectronPt10Extended_pythia8_cfi', UpgradeFragment(Kby(9,100),'SingleElPt10Extended')),
972  ('DoubleElectronPt35Extended_pythia8_cfi', UpgradeFragment(Kby(9,100),'SingleElPt35Extended')),
973  ('DoubleElectronPt1000Extended_pythia8_cfi', UpgradeFragment(Kby(9,50),'SingleElPt1000Extended')),
974  ('DoubleGammaPt10Extended_pythia8_cfi', UpgradeFragment(Kby(9,100),'SingleGammaPt10Extended')),
975  ('DoubleGammaPt35Extended_pythia8_cfi', UpgradeFragment(Kby(9,50),'SingleGammaPt35Extended')),
976  ('DoubleMuPt1Extended_pythia8_cfi', UpgradeFragment(Kby(25,100),'SingleMuPt1Extended')),
977  ('DoubleMuPt10Extended_pythia8_cfi', UpgradeFragment(Kby(25,100),'SingleMuPt10Extended')),
978  ('DoubleMuPt100Extended_pythia8_cfi', UpgradeFragment(Kby(9,100),'SingleMuPt100Extended')),
979  ('DoubleMuPt1000Extended_pythia8_cfi', UpgradeFragment(Kby(9,100),'SingleMuPt1000Extended')),
980  ('TenMuE_0_200_pythia8_cfi', UpgradeFragment(Kby(10,100),'TenMuE_0_200')),
981  ('SinglePiE50HCAL_pythia8_cfi', UpgradeFragment(Kby(50,500),'SinglePiE50HCAL')),
982  ('MinBias_13TeV_pythia8_TuneCUETP8M1_cfi', UpgradeFragment(Kby(90,100),'MinBias_13')),
983  ('TTbar_13TeV_TuneCUETP8M1_cfi', UpgradeFragment(Kby(9,50),'TTbar_13')),
984  ('ZEE_13TeV_TuneCUETP8M1_cfi', UpgradeFragment(Kby(9,100),'ZEE_13')),
985  ('QCD_Pt_600_800_13TeV_TuneCUETP8M1_cfi', UpgradeFragment(Kby(9,50),'QCD_Pt_600_800_13')),
986  ('Wjet_Pt_80_120_14TeV_TuneCUETP8M1_cfi', UpgradeFragment(Kby(9,100),'Wjet_Pt_80_120_14TeV')),
987  ('Wjet_Pt_3000_3500_14TeV_TuneCUETP8M1_cfi', UpgradeFragment(Kby(9,50),'Wjet_Pt_3000_3500_14TeV')),
988  ('LM1_sfts_14TeV_cfi', UpgradeFragment(Kby(9,100),'LM1_sfts_14TeV')),
989  ('QCD_Pt_3000_3500_14TeV_TuneCUETP8M1_cfi', UpgradeFragment(Kby(9,50),'QCD_Pt_3000_3500_14TeV')),
990  ('QCD_Pt_80_120_14TeV_TuneCUETP8M1_cfi', UpgradeFragment(Kby(9,100),'QCD_Pt_80_120_14TeV')),
991  ('H200ChargedTaus_Tauola_14TeV_cfi', UpgradeFragment(Kby(9,100),'Higgs200ChargedTaus_14TeV')),
992  ('JpsiMM_14TeV_TuneCUETP8M1_cfi', UpgradeFragment(Kby(66,100),'JpsiMM_14TeV')),
993  ('TTbar_14TeV_TuneCP5_cfi', UpgradeFragment(Kby(9,100),'TTbar_14TeV')),
994  ('WE_14TeV_TuneCUETP8M1_cfi', UpgradeFragment(Kby(9,100),'WE_14TeV')),
995  ('ZTT_Tauola_All_hadronic_14TeV_TuneCP5_cfi', UpgradeFragment(Kby(9,100),'ZTT_14TeV')),
996  ('H130GGgluonfusion_14TeV_TuneCUETP8M1_cfi', UpgradeFragment(Kby(9,100),'H130GGgluonfusion_14TeV')),
997  ('PhotonJet_Pt_10_14TeV_TuneCUETP8M1_cfi', UpgradeFragment(Kby(9,100),'PhotonJets_Pt_10_14TeV')),
998  ('QQH1352T_Tauola_14TeV_TuneCUETP8M1_cfi', UpgradeFragment(Kby(9,100),'QQH1352T_Tauola_14TeV')),
999  ('MinBias_14TeV_pythia8_TuneCP5_cfi', UpgradeFragment(Kby(90,100),'MinBias_14TeV')),
1000  ('WM_14TeV_TuneCUETP8M1_cfi', UpgradeFragment(Kby(9,100),'WM_14TeV')),
1001  ('ZMM_13TeV_TuneCUETP8M1_cfi', UpgradeFragment(Kby(18,100),'ZMM_13')),
1002  ('QCDForPF_14TeV_TuneCP5_cfi', UpgradeFragment(Kby(50,100),'QCD_FlatPt_15_3000HS_14')),
1003  ('DYToLL_M-50_14TeV_pythia8_cff', UpgradeFragment(Kby(9,100),'DYToLL_M_50_14TeV')),
1004  ('DYToTauTau_M-50_14TeV_pythia8_tauola_cff', UpgradeFragment(Kby(9,100),'DYtoTauTau_M_50_14TeV')),
1005  ('ZEE_14TeV_TuneCP5_cfi', UpgradeFragment(Kby(9,100),'ZEE_14')),
1006  ('QCD_Pt_80_120_13TeV_TuneCUETP8M1_cfi', UpgradeFragment(Kby(9,100),'QCD_Pt_80_120_13')),
1007  ('H125GGgluonfusion_13TeV_TuneCP5_cfi', UpgradeFragment(Kby(9,50),'H125GGgluonfusion_13')),
1008  ('QCD_Pt20toInf_MuEnrichedPt15_14TeV_TuneCP5_cff', UpgradeFragment(Kby(19565, 217391),'QCD_Pt20toInfMuEnrichPt15_14')), # effi = 4.6e-4, local=8.000e-04
1009  ('ZMM_14TeV_TuneCP5_cfi', UpgradeFragment(Kby(18,100),'ZMM_14')),
1010  ('QCD_Pt15To7000_Flat_14TeV_TuneCP5_cff', UpgradeFragment(Kby(9,50),'QCD_Pt15To7000_Flat_14')),
1011  ('H125GGgluonfusion_14TeV_TuneCP5_cfi', UpgradeFragment(Kby(9,50),'H125GGgluonfusion_14')),
1012  ('QCD_Pt_600_800_14TeV_TuneCUETP8M1_cfi', UpgradeFragment(Kby(9,50),'QCD_Pt_600_800_14')),
1013  ('UndergroundCosmicSPLooseMu_cfi', UpgradeFragment(Kby(9,50),'CosmicsSPLoose')),
1014  ('BeamHalo_13TeV_cfi', UpgradeFragment(Kby(9,50),'BeamHalo_13')),
1015  ('H200ChargedTaus_Tauola_13TeV_cfi', UpgradeFragment(Kby(9,50),'Higgs200ChargedTaus_13')),
1016  ('ADDMonoJet_13TeV_d3MD3_TuneCUETP8M1_cfi', UpgradeFragment(Kby(9,50),'ADDMonoJet_d3MD3_13')),
1017  ('ZpMM_13TeV_TuneCUETP8M1_cfi', UpgradeFragment(Kby(9,50),'ZpMM_13')),
1018  ('QCD_Pt_3000_3500_13TeV_TuneCUETP8M1_cfi', UpgradeFragment(Kby(9,50),'QCD_Pt_3000_3500_13')),
1019  ('WpM_13TeV_TuneCUETP8M1_cfi', UpgradeFragment(Kby(9,50),'WpM_13')),
1020  ('SingleNuE10_cfi', UpgradeFragment(Kby(9,50),'NuGun')),
1021  ('TTbarLepton_13TeV_TuneCUETP8M1_cfi', UpgradeFragment(Kby(9,50),'TTbarLepton_13')),
1022  ('WE_13TeV_TuneCUETP8M1_cfi', UpgradeFragment(Kby(9,50),'WE_13')),
1023  ('WM_13TeV_TuneCUETP8M1_cfi', UpgradeFragment(Kby(9,50),'WM_13')),
1024  ('ZTT_All_hadronic_13TeV_TuneCUETP8M1_cfi', UpgradeFragment(Kby(9,50),'ZTT_13')),
1025  ('PhotonJet_Pt_10_13TeV_TuneCUETP8M1_cfi', UpgradeFragment(Kby(9,50),'PhotonJets_Pt_10_13')),
1026  ('QQH1352T_13TeV_TuneCUETP8M1_cfi', UpgradeFragment(Kby(9,50),'QQH1352T_13')),
1027  ('Wjet_Pt_80_120_13TeV_TuneCUETP8M1_cfi', UpgradeFragment(Kby(9,50),'Wjet_Pt_80_120_13')),
1028  ('Wjet_Pt_3000_3500_13TeV_TuneCUETP8M1_cfi', UpgradeFragment(Kby(9,50),'Wjet_Pt_3000_3500_13')),
1029  ('SMS-T1tttt_mGl-1500_mLSP-100_13TeV-pythia8_cfi', UpgradeFragment(Kby(9,50),'SMS-T1tttt_mGl-1500_mLSP-100_13')),
1030  ('QCDForPF_13TeV_TuneCUETP8M1_cfi', UpgradeFragment(Kby(50,100),'QCD_FlatPt_15_3000HS_13')),
1031  ('PYTHIA8_PhiToMuMu_TuneCUETP8M1_13TeV_cff', UpgradeFragment(Kby(9,50),'PhiToMuMu_13')),
1032  ('RSKKGluon_m3000GeV_13TeV_TuneCUETP8M1_cff', UpgradeFragment(Kby(9,50),'RSKKGluon_m3000GeV_13')),
1033  ('ZpMM_2250_13TeV_TuneCUETP8M1_cfi', UpgradeFragment(Kby(9,50),'ZpMM_2250_13')),
1034  ('ZpEE_2250_13TeV_TuneCUETP8M1_cfi', UpgradeFragment(Kby(9,50),'ZpEE_2250_13')),
1035  ('ZpTT_1500_13TeV_TuneCUETP8M1_cfi', UpgradeFragment(Kby(9,50),'ZpTT_1500_13')),
1036  ('Upsilon1SToMuMu_forSTEAM_13TeV_TuneCUETP8M1_cfi', UpgradeFragment(Kby(9,50),'Upsilon1SToMuMu_13')),
1037  ('EtaBToJpsiJpsi_forSTEAM_TuneCUEP8M1_13TeV_cfi', UpgradeFragment(Kby(9,50),'EtaBToJpsiJpsi_13')),
1038  ('JpsiMuMu_Pt-8_forSTEAM_13TeV_TuneCUETP8M1_cfi', UpgradeFragment(Kby(3100,100000),'JpsiMuMu_Pt-8')),
1039  ('BuMixing_BMuonFilter_forSTEAM_13TeV_TuneCUETP8M1_cfi', UpgradeFragment(Kby(900,10000),'BuMixing_13')),
1040  ('HSCPstop_M_200_TuneCUETP8M1_13TeV_pythia8_cff', UpgradeFragment(Kby(9,50),'HSCPstop_M_200_13')),
1041  ('RSGravitonToGammaGamma_kMpl01_M_3000_TuneCUETP8M1_13TeV_pythia8_cfi', UpgradeFragment(Kby(9,50),'RSGravitonToGaGa_13')),
1042  ('WprimeToENu_M-2000_TuneCUETP8M1_13TeV-pythia8_cff', UpgradeFragment(Kby(9,50),'WpToENu_M-2000_13')),
1043  ('DisplacedSUSY_stopToBottom_M_300_1000mm_TuneCUETP8M1_13TeV_pythia8_cff', UpgradeFragment(Kby(9,50),'DisplacedSUSY_stopToB_M_300_1000mm_13')),
1044  ('TenE_E_0_200_pythia8_cfi', UpgradeFragment(Kby(9,100),'TenE_0_200')),
1045  ('FlatRandomPtAndDxyGunProducer_cfi', UpgradeFragment(Kby(9,100),'DisplacedMuonsDxy_0_500')),
1046  ('TenTau_E_15_500_pythia8_cfi', UpgradeFragment(Kby(9,100),'TenTau_15_500')),
1047  ('SinglePiPt25Eta1p7_2p7_cfi', UpgradeFragment(Kby(9,100),'SinglePiPt25Eta1p7_2p7')),
1048  ('SingleMuPt15Eta1p7_2p7_cfi', UpgradeFragment(Kby(9,100),'SingleMuPt15Eta1p7_2p7')),
1049  ('SingleGammaPt25Eta1p7_2p7_cfi', UpgradeFragment(Kby(9,100),'SingleGammaPt25Eta1p7_2p7')),
1050  ('SingleElectronPt15Eta1p7_2p7_cfi', UpgradeFragment(Kby(9,100),'SingleElectronPt15Eta1p7_2p7')),
1051  ('ZTT_All_hadronic_14TeV_TuneCP5_cfi', UpgradeFragment(Kby(9,50),'ZTT_14')),
1052  ('CloseByParticle_Photon_ERZRanges_cfi', UpgradeFragment(Kby(9,100),'CloseByParticleGun')),
1053  ('CE_E_Front_300um_cfi', UpgradeFragment(Kby(9,100),'CloseByPGun_CE_E_Front_300um')),
1054  ('CE_E_Front_200um_cfi', UpgradeFragment(Kby(9,100),'CloseByPGun_CE_E_Front_200um')),
1055  ('CE_E_Front_120um_cfi', UpgradeFragment(Kby(9,100),'CloseByPGun_CE_E_Front_120um')),
1056  ('CE_H_Fine_300um_cfi', UpgradeFragment(Kby(9,100),'CloseByPGun_CE_H_Fine_300um')),
1057  ('CE_H_Fine_200um_cfi', UpgradeFragment(Kby(9,100),'CloseByPGun_CE_H_Fine_200um')),
1058  ('CE_H_Fine_120um_cfi', UpgradeFragment(Kby(9,100),'CloseByPGun_CE_H_Fine_120um')),
1059  ('CE_H_Coarse_Scint_cfi', UpgradeFragment(Kby(9,100),'CloseByPGun_CE_H_Coarse_Scint')),
1060  ('CE_H_Coarse_300um_cfi', UpgradeFragment(Kby(9,100),'CloseByPGun_CE_H_Coarse_300um')),
1061  ('SingleElectronFlatPt2To100_cfi', UpgradeFragment(Kby(9,100),'SingleEFlatPt2To100')),
1062  ('SingleMuFlatPt0p7To10_cfi', UpgradeFragment(Kby(9,100),'SingleMuFlatPt0p7To10')),
1063  ('SingleMuFlatPt2To100_cfi', UpgradeFragment(Kby(9,100),'SingleMuFlatPt2To100')),
1064  ('SingleGammaFlatPt8To150_cfi', UpgradeFragment(Kby(9,100),'SingleGammaFlatPt8To150')),
1065  ('SinglePiFlatPt0p7To10_cfi', UpgradeFragment(Kby(9,100),'SinglePiFlatPt0p7To10')),
1066  ('SingleTauFlatPt2To150_cfi', UpgradeFragment(Kby(9,100),'SingleTauFlatPt2To150')),
1067  ('FlatRandomPtAndDxyGunProducer_MuPt2To10_cfi', UpgradeFragment(Kby(9,100),'DisplacedMuPt2To10')),
1068  ('FlatRandomPtAndDxyGunProducer_MuPt10To30_cfi', UpgradeFragment(Kby(9,100),'DisplacedMuPt10To30')),
1069  ('FlatRandomPtAndDxyGunProducer_MuPt30To100_cfi', UpgradeFragment(Kby(9,100),'DisplacedMuPt30To100')),
1070  ('B0ToKstarMuMu_14TeV_TuneCP5_cfi', UpgradeFragment(Kby(304,3030),'B0ToKstarMuMu_14TeV')), # 3.3%
1071  ('BsToEleEle_14TeV_TuneCP5_cfi', UpgradeFragment(Kby(223,2222),'BsToEleEle_14TeV')), # 4.5%
1072  ('BsToJpsiGamma_14TeV_TuneCP5_cfi', UpgradeFragment(Kby(2500,25000),'BsToJpsiGamma_14TeV')), # 0.4%
1073  ('BsToJpsiPhi_mumuKK_14TeV_TuneCP5_cfi', UpgradeFragment(Kby(910,9090),'BsToJpsiPhi_mumuKK_14TeV')), # 1.1%
1074  ('BsToMuMu_14TeV_TuneCP5_cfi', UpgradeFragment(Kby(313,3125),'BsToMuMu_14TeV')), # 3.2%
1075  ('BsToPhiPhi_KKKK_14TeV_TuneCP5_cfi', UpgradeFragment(Kby(556,5555),'BsToPhiPhi_KKKK_14TeV')), # 1.8%
1076  ('TauToMuMuMu_14TeV_TuneCP5_cfi', UpgradeFragment(Kby(18939,189393),'TauToMuMuMu_14TeV')), # effi = 5.280e-04
1077  ('BdToKstarEleEle_14TeV_TuneCP5_cfi', UpgradeFragment(Kby(206,2061),'BdToKstarEleEle_14TeV')), #effi = 4.850e-02
1078  ('ZpTT_1500_14TeV_TuneCP5_cfi', UpgradeFragment(Kby(9,50),'ZpTT_1500_14')),
1079  ('BuMixing_BMuonFilter_forSTEAM_14TeV_TuneCP5_cfi', UpgradeFragment(Kby(900,10000),'BuMixing_14')),
1080  ('Upsilon1SToMuMu_forSTEAM_14TeV_TuneCP5_cfi', UpgradeFragment(Kby(9,50),'Upsilon1SToMuMu_14')),
1081  ('TenTau_E_15_500_Eta3p1_pythia8_cfi', UpgradeFragment(Kby(9,100),'TenTau_15_500_Eta3p1')),
1082 ])
1083 
upgradeWorkflowComponents.UpgradeWorkflow_trackingRun2.condition_
def condition_(self, fragment, stepList, key, hasHarvest)
Definition: upgradeWorkflowComponents.py:206
upgradeWorkflowComponents.UpgradeWorkflow.offset
offset
Definition: upgradeWorkflowComponents.py:95
upgradeWorkflowComponents.UpgradeWorkflowPatatrack_HCALOnlyCPU.step3
step3
Definition: upgradeWorkflowComponents.py:445
upgradeWorkflowComponents.UpgradeWorkflow_trackingMkFit.condition_
def condition_(self, fragment, stepList, key, hasHarvest)
Definition: upgradeWorkflowComponents.py:276
FastTimerService_cff.range
range
Definition: FastTimerService_cff.py:34
upgradeWorkflowComponents.UpgradeWorkflow_JMENano.condition
def condition(self, fragment, stepList, key, hasHarvest)
Definition: upgradeWorkflowComponents.py:596
upgradeWorkflowComponents.UpgradeWorkflow_TestOldDigi.prodlike
prodlike
Definition: upgradeWorkflowComponents.py:721
resolutioncreator_cfi.object
object
Definition: resolutioncreator_cfi.py:4
upgradeWorkflowComponents.UpgradeWorkflow_TestOldDigi.setup_
def setup_(self, step, stepName, stepDict, k, properties)
Definition: upgradeWorkflowComponents.py:668
upgradeWorkflowComponents.UpgradeWorkflow.suffix
suffix
Definition: upgradeWorkflowComponents.py:94
upgradeWorkflowComponents.UpgradeWorkflow.steps
steps
Definition: upgradeWorkflowComponents.py:92
upgradeWorkflowComponents.UpgradeWorkflow.setup
def setup(self, stepDict, k, properties)
Definition: upgradeWorkflowComponents.py:108
upgradeWorkflowComponents.UpgradeWorkflow_ProdLike.setup_
def setup_(self, step, stepName, stepDict, k, properties)
Definition: upgradeWorkflowComponents.py:483
upgradeWorkflowComponents.UpgradeWorkflow_trackingOnly
Definition: upgradeWorkflowComponents.py:179
upgradeWorkflowComponents.UpgradeWorkflowPatatrack_ECALOnlyCPU.condition_
def condition_(self, fragment, stepList, key, hasHarvest)
Definition: upgradeWorkflowComponents.py:373
upgradeWorkflowComponents.UpgradeWorkflow_Neutron.condition
def condition(self, fragment, stepList, key, hasHarvest)
Definition: upgradeWorkflowComponents.py:534
upgradeWorkflowComponents.UpgradeWorkflow_trackingOnlyRun2.setup_
def setup_(self, step, stepName, stepDict, k, properties)
Definition: upgradeWorkflowComponents.py:218
upgradeWorkflowComponents.UpgradeWorkflowPatatrack_ECALOnlyCPU.setup_
def setup_(self, step, stepName, stepDict, k, properties)
Definition: upgradeWorkflowComponents.py:367
upgradeWorkflowComponents.UpgradeFragment
Definition: upgradeWorkflowComponents.py:953
upgradeWorkflowComponents.UpgradeWorkflow_baseline
Definition: upgradeWorkflowComponents.py:123
upgradeWorkflowComponents.UpgradeWorkflowPatatrack_PixelOnlyCPU.setup_
def setup_(self, step, stepName, stepDict, k, properties)
Definition: upgradeWorkflowComponents.py:309
upgradeWorkflowComponents.UpgradeWorkflowPatatrack_HCALOnlyGPU.step3
step3
Definition: upgradeWorkflowComponents.py:473
upgradeWorkflowComponents.UpgradeWorkflowPatatrack_HCALOnlyCPU.setup_
def setup_(self, step, stepName, stepDict, k, properties)
Definition: upgradeWorkflowComponents.py:424
join
static std::string join(char **cmd)
Definition: RemoteFile.cc:17
upgradeWorkflowComponents.UpgradeWorkflowPatatrack_PixelOnlyGPU.condition_
def condition_(self, fragment, stepList, key, hasHarvest)
Definition: upgradeWorkflowComponents.py:344
upgradeWorkflowComponents.UpgradeWorkflow.workflow_
def workflow_(self, workflows, num, fragment, stepList)
Definition: upgradeWorkflowComponents.py:117
upgradeWorkflowComponents.UpgradeFragment.dataset
dataset
Definition: upgradeWorkflowComponents.py:956
upgradeWorkflowComponents.UpgradeWorkflowPatatrack_PixelOnlyCPU.condition_
def condition_(self, fragment, stepList, key, hasHarvest)
Definition: upgradeWorkflowComponents.py:315
upgradeWorkflowComponents.UpgradeWorkflowPatatrack_PixelOnlyCPU.step3
step3
Definition: upgradeWorkflowComponents.py:330
relativeConstraints.keys
keys
Definition: relativeConstraints.py:89
upgradeWorkflowComponents.UpgradeWorkflow_Neutron
Definition: upgradeWorkflowComponents.py:523
upgradeWorkflowComponents.UpgradeWorkflow_ParkingBPH
Definition: upgradeWorkflowComponents.py:577
upgradeWorkflowComponents.UpgradeWorkflowPatatrack_PixelOnlyCPU
Definition: upgradeWorkflowComponents.py:308
upgradeWorkflowComponents.UpgradeWorkflowAging
Definition: upgradeWorkflowComponents.py:609
upgradeWorkflowComponents.UpgradeWorkflowPatatrack_PixelOnlyGPU
Definition: upgradeWorkflowComponents.py:337
upgradeWorkflowComponents.UpgradeWorkflow_pixelTrackingOnly.condition_
def condition_(self, fragment, stepList, key, hasHarvest)
Definition: upgradeWorkflowComponents.py:254
any
bool any(const std::vector< T > &v, const T &what)
Definition: ECalSD.cc:34
upgradeWorkflowComponents.UpgradeWorkflow.init
def init(self, stepDict)
Definition: upgradeWorkflowComponents.py:98
upgradeWorkflowComponents.UpgradeWorkflow_Neutron.setup_
def setup_(self, step, stepName, stepDict, k, properties)
Definition: upgradeWorkflowComponents.py:524
upgradeWorkflowComponents.UpgradeWorkflow_trackingOnly.step3
step3
Definition: upgradeWorkflowComponents.py:194
upgradeWorkflowComponents.UpgradeWorkflow.condition
def condition(self, fragment, stepList, key, hasHarvest)
Definition: upgradeWorkflowComponents.py:119
upgradeWorkflowComponents.UpgradeWorkflowAging.condition
def condition(self, fragment, stepList, key, hasHarvest)
Definition: upgradeWorkflowComponents.py:613
upgradeWorkflowComponents.UpgradeWorkflow_TestOldDigi.condition
def condition(self, fragment, stepList, key, hasHarvest)
Definition: upgradeWorkflowComponents.py:702
upgradeWorkflowComponents.UpgradeWorkflow_trackingOnlyRun2.condition_
def condition_(self, fragment, stepList, key, hasHarvest)
Definition: upgradeWorkflowComponents.py:222
upgradeWorkflowComponents.UpgradeWorkflowPatatrack.condition
def condition(self, fragment, stepList, key, hasHarvest)
Definition: upgradeWorkflowComponents.py:293
str
#define str(s)
Definition: TestProcessor.cc:48
upgradeWorkflowComponents.UpgradeWorkflow_heCollapse
Definition: upgradeWorkflowComponents.py:555
upgradeWorkflowComponents.UpgradeWorkflowPatatrack_ECALOnlyGPU.step3
step3
Definition: upgradeWorkflowComponents.py:416
upgradeWorkflowComponents.UpgradeWorkflow_trackingLowPU.setup_
def setup_(self, step, stepName, stepDict, k, properties)
Definition: upgradeWorkflowComponents.py:236
upgradeWorkflowComponents.UpgradeWorkflow.__init__
def __init__(self, steps, PU, suffix, offset)
Definition: upgradeWorkflowComponents.py:91
upgradeWorkflowComponents.UpgradeWorkflow_trackingOnly.setup_
def setup_(self, step, stepName, stepDict, k, properties)
Definition: upgradeWorkflowComponents.py:180
upgradeWorkflowComponents.UpgradeWorkflow_trackingRun2
Definition: upgradeWorkflowComponents.py:202
upgradeWorkflowComponents.UpgradeWorkflow_ProdLike
Definition: upgradeWorkflowComponents.py:482
upgradeWorkflowComponents.UpgradeFragment.__init__
def __init__(self, howMuch, dataset)
Definition: upgradeWorkflowComponents.py:954
upgradeWorkflowComponents.UpgradeWorkflow_heCollapse.setup_
def setup_(self, step, stepName, stepDict, k, properties)
Definition: upgradeWorkflowComponents.py:556
upgradeWorkflowComponents.UpgradeWorkflow_trackingLowPU
Definition: upgradeWorkflowComponents.py:235
upgradeWorkflowComponents.UpgradeWorkflow_trackingMkFit.setup_
def setup_(self, step, stepName, stepDict, k, properties)
Definition: upgradeWorkflowComponents.py:274
upgradeWorkflowComponents.UpgradeWorkflow_trackingMkFit
Definition: upgradeWorkflowComponents.py:273
upgradeWorkflowComponents.UpgradeWorkflowTracking
Definition: upgradeWorkflowComponents.py:167
mps_setup.append
append
Definition: mps_setup.py:85
upgradeWorkflowComponents.UpgradeFragment.howMuch
howMuch
Definition: upgradeWorkflowComponents.py:955
upgradeWorkflowComponents.UpgradeWorkflow.PU
PU
Definition: upgradeWorkflowComponents.py:93
upgradeWorkflowComponents.UpgradeWorkflowPatatrack
Definition: upgradeWorkflowComponents.py:292
upgradeWorkflowComponents.UpgradeWorkflow_trackingOnlyRun2
Definition: upgradeWorkflowComponents.py:217
upgradeWorkflowComponents.UpgradeWorkflow_baseline.setup_
def setup_(self, step, stepName, stepDict, k, properties)
Definition: upgradeWorkflowComponents.py:124
upgradeWorkflowComponents.UpgradeWorkflowPatatrack_ECALOnlyCPU
Definition: upgradeWorkflowComponents.py:366
upgradeWorkflowComponents.UpgradeWorkflowPatatrack_ECALOnlyGPU
Definition: upgradeWorkflowComponents.py:394
upgradeWorkflowComponents.UpgradeWorkflow_heCollapse.condition
def condition(self, fragment, stepList, key, hasHarvest)
Definition: upgradeWorkflowComponents.py:558
upgradeWorkflowComponents.UpgradeWorkflowPatatrack_ECALOnlyGPU.condition_
def condition_(self, fragment, stepList, key, hasHarvest)
Definition: upgradeWorkflowComponents.py:401
upgradeWorkflowComponents.UpgradeWorkflowTracking.condition
def condition(self, fragment, stepList, key, hasHarvest)
Definition: upgradeWorkflowComponents.py:168
upgradeWorkflowComponents.UpgradeWorkflowAging.lumi
lumi
Definition: upgradeWorkflowComponents.py:634
upgradeWorkflowComponents.UpgradeWorkflowPatatrack_PixelOnlyGPU.step3
step3
Definition: upgradeWorkflowComponents.py:359
upgradeWorkflowComponents.UpgradeWorkflow
Definition: upgradeWorkflowComponents.py:90
upgradeWorkflowComponents.UpgradeWorkflow_pixelTrackingOnly.step3
step3
Definition: upgradeWorkflowComponents.py:267
upgradeWorkflowComponents.UpgradeWorkflowPatatrack.condition_
def condition_(self, fragment, stepList, key, hasHarvest)
Definition: upgradeWorkflowComponents.py:305
upgradeWorkflowComponents.UpgradeWorkflow_JMENano
Definition: upgradeWorkflowComponents.py:592
upgradeWorkflowComponents.UpgradeWorkflow_trackingOnlyRun2.step3
step3
Definition: upgradeWorkflowComponents.py:233
upgradeWorkflowComponents.UpgradeWorkflow_Neutron.neutronKeys
neutronKeys
Definition: upgradeWorkflowComponents.py:552
upgradeWorkflowComponents.UpgradeWorkflowPatatrack_HCALOnlyCPU.condition_
def condition_(self, fragment, stepList, key, hasHarvest)
Definition: upgradeWorkflowComponents.py:430
upgradeWorkflowComponents.UpgradeWorkflowPatatrack_ECALOnlyGPU.setup_
def setup_(self, step, stepName, stepDict, k, properties)
Definition: upgradeWorkflowComponents.py:395
upgradeWorkflowComponents.UpgradeWorkflowPatatrack_PixelOnlyGPU.setup_
def setup_(self, step, stepName, stepDict, k, properties)
Definition: upgradeWorkflowComponents.py:338
upgradeWorkflowComponents.UpgradeWorkflowPatatrack_HCALOnlyGPU.condition_
def condition_(self, fragment, stepList, key, hasHarvest)
Definition: upgradeWorkflowComponents.py:458
upgradeWorkflowComponents.UpgradeWorkflow_TestOldDigi.workflow_
def workflow_(self, workflows, num, fragment, stepList)
Definition: upgradeWorkflowComponents.py:705
upgradeWorkflowComponents.UpgradeWorkflow_trackingRun2.setup_
def setup_(self, step, stepName, stepDict, k, properties)
Definition: upgradeWorkflowComponents.py:203
upgradeWorkflowComponents.UpgradeWorkflow_ProdLike.condition
def condition(self, fragment, stepList, key, hasHarvest)
Definition: upgradeWorkflowComponents.py:496
upgradeWorkflowComponents.UpgradeWorkflowAging.setup_
def setup_(self, step, stepName, stepDict, k, properties)
Definition: upgradeWorkflowComponents.py:610
upgradeWorkflowComponents.UpgradeWorkflow_TestOldDigi
Definition: upgradeWorkflowComponents.py:667
upgradeWorkflowComponents.UpgradeWorkflowPatatrack_HCALOnlyCPU
Definition: upgradeWorkflowComponents.py:423
upgradeWorkflowComponents.UpgradeWorkflowPatatrack_HCALOnlyGPU
Definition: upgradeWorkflowComponents.py:451
upgradeWorkflowComponents.UpgradeWorkflow.setup_
def setup_(self, step, stepName, stepDict, k, properties)
Definition: upgradeWorkflowComponents.py:112
list
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
upgradeWorkflowComponents.UpgradeWorkflow_baseline.condition
def condition(self, fragment, stepList, key, hasHarvest)
Definition: upgradeWorkflowComponents.py:131
upgradeWorkflowComponents.UpgradeWorkflow_trackingLowPU.condition_
def condition_(self, fragment, stepList, key, hasHarvest)
Definition: upgradeWorkflowComponents.py:239
upgradeWorkflowComponents.UpgradeWorkflow_trackingMkFit.step3
step3
Definition: upgradeWorkflowComponents.py:287
upgradeWorkflowComponents.UpgradeWorkflow.workflow
def workflow(self, workflows, num, fragment, stepList, key, hasHarvest)
Definition: upgradeWorkflowComponents.py:114
upgradeWorkflowComponents.UpgradeWorkflow_ParkingBPH.setup_
def setup_(self, step, stepName, stepDict, k, properties)
Definition: upgradeWorkflowComponents.py:578
upgradeWorkflowComponents.UpgradeWorkflowPatatrack_HCALOnlyGPU.setup_
def setup_(self, step, stepName, stepDict, k, properties)
Definition: upgradeWorkflowComponents.py:452
upgradeWorkflowComponents.UpgradeWorkflow_pixelTrackingOnly.setup_
def setup_(self, step, stepName, stepDict, k, properties)
Definition: upgradeWorkflowComponents.py:251
upgradeWorkflowComponents.UpgradeWorkflow_JMENano.setup_
def setup_(self, step, stepName, stepDict, k, properties)
Definition: upgradeWorkflowComponents.py:593
upgradeWorkflowComponents.UpgradeWorkflow_Neutron.neutronFrags
neutronFrags
Definition: upgradeWorkflowComponents.py:553
upgradeWorkflowComponents.UpgradeWorkflowPatatrack_ECALOnlyCPU.step3
step3
Definition: upgradeWorkflowComponents.py:388
MatrixUtil.Kby
def Kby(N, s)
Standard release validation samples ####.
Definition: MatrixUtil.py:224
merge
Definition: merge.py:1
upgradeWorkflowComponents.UpgradeWorkflow_ParkingBPH.condition
def condition(self, fragment, stepList, key, hasHarvest)
Definition: upgradeWorkflowComponents.py:581
python.rootplot.root2matplotlib.replace
def replace(string, replacements)
Definition: root2matplotlib.py:444
upgradeWorkflowComponents.UpgradeWorkflow_pixelTrackingOnly
Definition: upgradeWorkflowComponents.py:250
upgradeWorkflowComponents.UpgradeWorkflowTracking.condition_
def condition_(self, fragment, stepList, key, hasHarvest)
Definition: upgradeWorkflowComponents.py:176