CMS 3D CMS Logo

List of all members | Public Member Functions | Public Attributes
MatrixReader.MatrixReader Class Reference
Inheritance diagram for MatrixReader.MatrixReader:

Public Member Functions

def __init__ (self, opt)
 
def createWorkFlows (self, fileNameIn)
 
def makeCmd (self, step)
 
def makeStep (self, step, overrides)
 
def prepare (self, useInput=None, refRel='', fromScratch=None)
 
def readMatrix (self, fileNameIn, useInput=None, refRel=None, fromScratch=None)
 
def reset (self, what='all')
 
def show (self, selected=None, extended=True, cafVeto=True)
 
def showRaw (self, useInput, refRel=None, fromScratch=None, what='all', step1Only=False, selected=None)
 
def showWorkFlows (self, selected=None, extended=True, cafVeto=True)
 
def updateDB (self)
 
def workFlowsByLocation (self, cafVeto=True)
 

Public Attributes

 addCommand
 
 apply
 
 commandLineWf
 
 files
 
 filesDefault
 
 filesPrefMap
 
 nameList
 
 noRun
 
 overWrite
 
 relvalModule
 
 revertDqmio
 maybe we want too level deep input More...
 
 what
 
 wm
 
 workFlows
 
 workFlowSteps
 

Detailed Description

Definition at line 17 of file MatrixReader.py.

Constructor & Destructor Documentation

◆ __init__()

def MatrixReader.MatrixReader.__init__ (   self,
  opt 
)

Definition at line 19 of file MatrixReader.py.

19  def __init__(self, opt):
20 
21  self.reset(opt.what)
22 
23  self.wm=opt.wmcontrol
24  self.revertDqmio=opt.revertDqmio
25  self.addCommand=opt.command
26  self.apply=opt.apply
27  self.commandLineWf=opt.workflow
28  self.overWrite=opt.overWrite
29 
30  self.noRun = opt.noRun
31  return
32 

References PuppiAlgo.reset(), TPedResult.reset(), BinningPointByMap.reset(), AlcaBeamSpotManager.reset(), RPCFebConnector.reset(), EcalCondHeader.reset(), VEcalCalibBlock.reset(), ApvLatencyAnalysis.reset(), SiPixelStatusManager.reset(), SiStripMiscalibrate::Entry.reset(), MatrixReader.MatrixReader.reset(), IMACalibBlock.reset(), TB06Tree.reset(), SamplingAnalysis.reset(), FactorizedJetCorrectorCalculator::VariableValues.reset(), L3CalibBlock.reset(), pos::PixelROCStatus.reset(), FedTimingAnalysis.reset(), L1MuDTTFMasks.reset(), L1MuDTTFParameters.reset(), SiStripPI::Entry.reset(), L1MuDTPtaLut.reset(), RPCDCCLink.reset(), RPCAMCLink.reset(), L1MuDTPhiLut.reset(), FedCablingAnalysis.reset(), L1MuDTEtaPatternLut.reset(), L1MuDTQualPatternLut.reset(), PedsOnlyAnalysis.reset(), L1MuDTExtLut.reset(), TB06Reco.reset(), coral_bridge::AuthenticationCredentialSet.reset(), PhysicsTools::Calibration::Histogram2D< Value_t, AxisX_t, AxisY_t >.reset(), VpspScanAnalysis.reset(), PhysicsTools::Calibration::Histogram< Value_t, Axis_t >.reset(), NoiseAnalysis.reset(), PedestalsAnalysis.reset(), OptoScanAnalysis.reset(), CalibrationScanAnalysis.reset(), ApvTimingAnalysis.reset(), TB06TreeH2.reset(), DaqScopeModeAnalysis.reset(), cond::persistency::RunInfoProxy.reset(), FastFedCablingAnalysis.reset(), PhysicsTools::Calibration::Histogram3D< Value_t, AxisX_t, AxisY_t, AxisZ_t >.reset(), RPCLBLink.reset(), cond::persistency::GTProxy.reset(), AlignableBeamSpot.reset(), CalibrationAnalysis.reset(), PedsFullNoiseAnalysis.reset(), CommissioningAnalysis.reset(), TB06RecoH2.reset(), cond::XMLAuthenticationService::XMLAuthenticationService.reset(), cond::persistency::IOVProxy.reset(), TrackerMap.reset(), data_sources.json_list.reset(), DTTFBitArray< N >.reset(), LHCInfoImpl::LumiSectionFilter.reset(), and tkal_create_file_lists._DasCache.reset().

Member Function Documentation

◆ createWorkFlows()

def MatrixReader.MatrixReader.createWorkFlows (   self,
  fileNameIn 
)

Definition at line 451 of file MatrixReader.py.

451  def createWorkFlows(self, fileNameIn):
452 
453  prefixIn = self.filesPrefMap[fileNameIn]
454 
455  # get through the list of items and update the requested workflows only
456  keyList = self.workFlowSteps.keys()
457  ids = []
458  for item in keyList:
459  id, pref = item
460  if pref != prefixIn : continue
461  ids.append(id)
462  ids.sort()
463  for key in ids:
464  val = self.workFlowSteps[(key,prefixIn)]
465  num, name, commands, stepList = val
466  nameId = str(num)+'_'+name
467  if nameId in self.nameList:
468  print("==> duplicate name found for ", nameId)
469  print(' keeping : ', self.nameList[nameId])
470  print(' ignoring : ', val)
471  else:
472  self.nameList[nameId] = val
473 
474  self.workFlows.append(WorkFlow(num, name, commands=commands))
475 
476  return
477 

References mps_setup.append, MatrixReader.MatrixReader.filesPrefMap, relativeConstraints.keys, MatrixReader.MatrixReader.nameList, edm.print(), str, MatrixReader.MatrixReader.workFlows, and MatrixReader.MatrixReader.workFlowSteps.

Referenced by MatrixReader.MatrixReader.prepare().

◆ makeCmd()

def MatrixReader.MatrixReader.makeCmd (   self,
  step 
)

Definition at line 94 of file MatrixReader.py.

94  def makeCmd(self, step):
95 
96  cmd = ''
97  cfg = None
98  input = None
99  for k,v in step.items():
100  if 'no_exec' in k : continue # we want to really run it ...
101  if k.lower() == 'cfg':
102  cfg = v
103  continue # do not append to cmd, return separately
104  if k.lower() == 'input':
105  input = v
106  continue # do not append to cmd, return separately
107 
108  #chain the configs
109  #if k.lower() == '--python':
110  # v = 'step%d_%s'%(index,v)
111  cmd += ' ' + k + ' ' + str(v)
112  return cfg, input, cmd
113 

References str.

Referenced by MatrixReader.MatrixReader.readMatrix().

◆ makeStep()

def MatrixReader.MatrixReader.makeStep (   self,
  step,
  overrides 
)

Definition at line 114 of file MatrixReader.py.

114  def makeStep(self,step,overrides):
116  if len(overrides) > 0:
117  copyStep=merge([overrides]+[step])
118  return copyStep
119  else:
120  return step
121 

Referenced by MatrixReader.MatrixReader.readMatrix().

◆ prepare()

def MatrixReader.MatrixReader.prepare (   self,
  useInput = None,
  refRel = '',
  fromScratch = None 
)

Definition at line 478 of file MatrixReader.py.

478  def prepare(self, useInput=None, refRel='', fromScratch=None):
479 
480  for matrixFile in self.files:
481  if self.what != 'all' and self.what not in matrixFile:
482  print("ignoring non-requested file",matrixFile)
483  continue
484  if self.what == 'all' and not self.filesDefault[matrixFile]:
485  print("ignoring",matrixFile,"from default matrix")
486  continue
487 
488  try:
489  self.readMatrix(matrixFile, useInput, refRel, fromScratch)
490  except Exception as e:
491  print("ERROR reading file:", matrixFile, str(e))
492  raise
493 
494  try:
495  self.createWorkFlows(matrixFile)
496  except Exception as e:
497  print("ERROR creating workflows :", str(e))
498  raise
499 
500 

References MatrixReader.MatrixReader.createWorkFlows(), MatrixReader.MatrixReader.files, MatrixReader.MatrixReader.filesDefault, edm.print(), MatrixReader.MatrixReader.readMatrix(), str, and MatrixReader.MatrixReader.what.

◆ readMatrix()

def MatrixReader.MatrixReader.readMatrix (   self,
  fileNameIn,
  useInput = None,
  refRel = None,
  fromScratch = None 
)

Definition at line 122 of file MatrixReader.py.

122  def readMatrix(self, fileNameIn, useInput=None, refRel=None, fromScratch=None):
123 
124  prefix = self.filesPrefMap[fileNameIn]
125 
126  print("processing", fileNameIn)
127 
128  try:
129  _tmpMod = __import__( 'Configuration.PyReleaseValidation.'+fileNameIn )
130  self.relvalModule = sys.modules['Configuration.PyReleaseValidation.'+fileNameIn]
131  except Exception as e:
132  print("ERROR importing file ", fileNameIn, str(e))
133  return
134 
135  if useInput is not None:
136  print("request for INPUT for ", useInput)
137 
138 
139  fromInput={}
140 
141  if useInput:
142  for i in useInput:
143  if ':' in i:
144  (ik,il)=i.split(':')
145  if ik=='all':
146  for k in self.relvalModule.workflows.keys():
147  fromInput[float(k)]=int(il)
148  else:
149  fromInput[float(ik)]=int(il)
150  else:
151  if i=='all':
152  for k in self.relvalModule.workflows.keys():
153  fromInput[float(k)]=0
154  else:
155  fromInput[float(i)]=0
156 
157  if fromScratch:
158  fromScratch=map(float,fromScratch)
159  for num in fromScratch:
160  if num in fromInput:
161  fromInput.pop(num)
162  #overwrite steps
163  if self.overWrite:
164  for p in self.overWrite:
165  self.relvalModule.steps.overwrite(p)
166 
167  #change the origin of dataset on the fly
168  if refRel:
169  if ',' in refRel:
170  refRels=refRel.split(',')
171  if len(refRels)!=len(self.relvalModule.baseDataSetRelease):
172  return
173  self.relvalModule.changeRefRelease(
174  self.relvalModule.steps,
175  list(zip(self.relvalModule.baseDataSetRelease,refRels))
176  )
177  else:
178  self.relvalModule.changeRefRelease(
179  self.relvalModule.steps,
180  [(x,refRel) for x in self.relvalModule.baseDataSetRelease]
181  )
182 
183 
184  for num, wfInfo in self.relvalModule.workflows.items():
185  commands=[]
186  wfName = wfInfo[0]
187  stepList = wfInfo[1]
188  stepOverrides=wfInfo.overrides
189  # if no explicit name given for the workflow, use the name of step1
190  if wfName.strip() == '': wfName = stepList[0]
191  # option to specialize the wf as the third item in the WF list
192  addTo=None
193  addCom=None
194  if len(wfInfo)>=3:
195  addCom=wfInfo[2]
196  if not isinstance(addCom, list): addCom=[addCom]
197  #print 'added dict',addCom
198  if len(wfInfo)>=4:
199  addTo=wfInfo[3]
200  #pad with 0
201  while len(addTo)!=len(stepList):
202  addTo.append(0)
203 
204  name=wfName
205  stepIndex=0
206  ranStepList=[]
207 
208  #first resolve INPUT possibilities
209  if num in fromInput:
210  ilevel=fromInput[num]
211  #print num,ilevel
212  for (stepIr,step) in enumerate(reversed(stepList)):
213  stepName=step
214  stepI=(len(stepList)-stepIr)-1
215  #print stepIr,step,stepI,ilevel
216  if stepI>ilevel:
217  #print "ignoring"
218  continue
219  if stepI!=0:
220  testName='__'.join(stepList[0:stepI+1])+'INPUT'
221  else:
222  testName=step+'INPUT'
223  #print "JR",stepI,stepIr,testName,stepList
224  if testName in self.relvalModule.steps.keys():
225  #print "JR",stepI,stepIr
226  stepList[stepI]=testName
227  #pop the rest in the list
228  #print "\tmod prepop",stepList
229  for p in range(stepI):
230  stepList.pop(0)
231  #print "\t\tmod",stepList
232  break
233 
234 
235  for (stepI,step) in enumerate(stepList):
236  stepName=step
237  if self.relvalModule.steps[stepName] is None:
238  continue
239  if self.wm:
240  #cannot put a certain number of things in wm
241  if stepName in ['SKIMD','SKIMCOSD','SKIMDreHLT']:
242  continue
243 
244  #replace stepName is needed
245  #if stepName in self.replaceStep
246  if len(name) > 0 : name += '+'
247  #any step can be mirrored with INPUT
248 
249  """
250  if num in fromInput:
251  if step+'INPUT' in self.relvalModule.steps.keys():
252  stepName = step+"INPUT"
253  stepList.remove(step)
254  stepList.insert(stepIndex,stepName)
255  """
256  name += stepName
257  if addCom and (not addTo or addTo[stepIndex]==1):
259  copyStep=merge(addCom+[self.makeStep(self.relvalModule.steps[stepName],stepOverrides)])
260  cfg, input, opts = self.makeCmd(copyStep)
261  else:
262  cfg, input, opts = self.makeCmd(self.makeStep(self.relvalModule.steps[stepName],stepOverrides))
263 
264  if input and cfg :
265  msg = "FATAL ERROR: found both cfg and input for workflow "+str(num)+' step '+stepName
266  raise MatrixException(msg)
267 
268  if input:
269  cmd = input
270  if self.noRun:
271  cmd.run=[]
272  else:
273  if cfg:
274  cmd = 'cmsDriver.py '+cfg+' '+opts
275  else:
276  cmd = 'cmsDriver.py step'+str(stepIndex+1)+' '+opts
277  if self.wm:
278  cmd+=' --io %s.io --python %s.py'%(stepName,stepName)
279  if self.addCommand:
280  if self.apply:
281  if stepIndex in self.apply or stepName in self.apply:
282  cmd +=' '+self.addCommand
283  else:
284  cmd +=' '+self.addCommand
285  if self.wm and self.revertDqmio=='yes':
286  cmd=cmd.replace('DQMIO','DQM')
287  cmd=cmd.replace('--filetype DQM','')
288  commands.append(cmd)
289  ranStepList.append(stepName)
290  stepIndex+=1
291 
292  self.workFlowSteps[(num,prefix)] = (num, name, commands, ranStepList)
293 
294  return
295 
296 

References MatrixReader.MatrixReader.addCommand, MatrixReader.MatrixReader.apply, MatrixUtil.changeRefRelease(), MatrixReader.MatrixReader.filesPrefMap, dqmMemoryStats.float, createfilelist.int, join(), list(), MatrixReader.MatrixReader.makeCmd(), MatrixReader.MatrixReader.makeStep(), genParticles_cff.map, MatrixReader.MatrixReader.noRun, MatrixReader.MatrixReader.overWrite, edm.print(), FastTimerService_cff.range, MatrixReader.MatrixReader.relvalModule, MatrixReader.MatrixReader.revertDqmio, str, MatrixReader.MatrixReader.wm, MatrixReader.MatrixReader.workFlowSteps, and ComparisonHelper.zip().

Referenced by MatrixReader.MatrixReader.prepare(), and MatrixReader.MatrixReader.showRaw().

◆ reset()

def MatrixReader.MatrixReader.reset (   self,
  what = 'all' 
)

Definition at line 33 of file MatrixReader.py.

33  def reset(self, what='all'):
34 
35  self.what = what
36 
37  #a bunch of information, but not yet the WorkFlow object
38  self.workFlowSteps = {}
39  #the actual WorkFlow objects
40  self.workFlows = []
41  self.nameList = {}
42 
43  self.filesPrefMap = {'relval_standard' : 'std-' ,
44  'relval_highstats': 'hi-' ,
45  'relval_pileup': 'PU-' ,
46  'relval_generator': 'gen-',
47  'relval_extendedgen': 'genExt-',
48  'relval_production': 'prod-' ,
49  'relval_ged': 'ged-',
50  'relval_upgrade':'upg-',
51  'relval_2017':'2017-',
52  'relval_2026':'2026-',
53  'relval_identity':'id-',
54  'relval_machine': 'mach-',
55  'relval_unsch': 'unsch-',
56  'relval_premix': 'premix-'
57  }
58 
59  self.files = ['relval_standard' ,
60  'relval_highstats',
61  'relval_pileup',
62  'relval_generator',
63  'relval_extendedgen',
64  'relval_production',
65  'relval_ged',
66  'relval_upgrade',
67  'relval_2017',
68  'relval_2026',
69  'relval_identity',
70  'relval_machine',
71  'relval_unsch',
72  'relval_premix'
73  ]
74  self.filesDefault = {'relval_standard':True ,
75  'relval_highstats':True ,
76  'relval_pileup':True,
77  'relval_generator':True,
78  'relval_extendedgen':True,
79  'relval_production':True,
80  'relval_ged':True,
81  'relval_upgrade':False,
82  'relval_2017':True,
83  'relval_2026':True,
84  'relval_identity':False,
85  'relval_machine':True,
86  'relval_unsch':True,
87  'relval_premix':True
88  }
89 
90  self.relvalModule = None
91 
92  return
93 

Referenced by MatrixReader.MatrixReader.__init__(), and MatrixReader.MatrixReader.showRaw().

◆ show()

def MatrixReader.MatrixReader.show (   self,
  selected = None,
  extended = True,
  cafVeto = True 
)

Definition at line 501 of file MatrixReader.py.

501  def show(self, selected=None, extended=True, cafVeto=True):
502 
503  self.showWorkFlows(selected, extended, cafVeto)
504  print('\n','-'*80,'\n')
505 
506 

References edm.print(), and MatrixReader.MatrixReader.showWorkFlows().

◆ showRaw()

def MatrixReader.MatrixReader.showRaw (   self,
  useInput,
  refRel = None,
  fromScratch = None,
  what = 'all',
  step1Only = False,
  selected = None 
)

Definition at line 297 of file MatrixReader.py.

297  def showRaw(self, useInput, refRel=None, fromScratch=None, what='all',step1Only=False,selected=None):
298 
299  if selected:
300  selected=map(float,selected)
301  for matrixFile in self.files:
302 
303  self.reset(what)
304 
305  if self.what != 'all' and self.what not in matrixFile:
306  print("ignoring non-requested file",matrixFile)
307  continue
308 
309  if self.what == 'all' and not self.filesDefault[matrixFile]:
310  print("ignoring file not used by default (enable with -w)",matrixFile)
311  continue
312 
313  try:
314  self.readMatrix(matrixFile, useInput, refRel, fromScratch)
315  except Exception as e:
316  print("ERROR reading file:", matrixFile, str(e))
317  raise
318 
319  if not self.workFlowSteps: continue
320 
321  dataFileName = matrixFile.replace('relval_', 'cmsDriver_')+'_hlt.txt'
322  outFile = open(dataFileName,'w')
323 
324  print("found ", len(self.workFlowSteps), ' workflows for ', dataFileName)
325  ids = sorted(self.workFlowSteps.keys())
326  indexAndSteps=[]
327 
328  writtenWF=0
329  for key in ids:
330  if selected and not (key[0] in selected):
331  continue
332  #trick to skip the HImix IB test
333  if key[0]==203.1 or key[0]==204.1 or key[0]==205.1 or key[0]==4.51 or key[0]==4.52: continue
334  num, name, commands, stepList = self.workFlowSteps[key]
335 
336  wfName,stepNames= name.split('+',1)
337 
338  stepNames=stepNames.replace('+SKIMCOSD','')
339  stepNames=stepNames.replace('+SKIMD','')
340  if 'HARVEST' in stepNames:
341  #find out automatically what to remove
342  exactb=stepNames.index('+HARVEST')
343  exacte=stepNames.index('+',exactb+1) if ('+' in stepNames[exactb+1:]) else (len(stepNames))
344  stepNames=stepNames.replace(stepNames[exactb:exacte],'')
345  otherSteps = None
346  if '+' in stepNames:
347  step1,otherSteps = stepNames.split('+',1)
348 
349  line = str(num) + ' ++ '+ wfName
350  if otherSteps and not step1Only:
351  line += ' ++ ' +otherSteps.replace('+',',')
352  else:
353  line += ' ++ none'
354  inputInfo=None
355  if not isinstance(commands[0],str):
356  inputInfo=commands[0]
357  if otherSteps:
358  for (i,c) in enumerate(otherSteps.split('+')):
359  #pad with set
360  for p in range(len(indexAndSteps),i+2):
361  indexAndSteps.append(set())
362  indexAndSteps[i+1].add((c,commands[i+1]))
363 
364  if inputInfo :
365  #skip the samples from INPUT when step1Only is on
366  if step1Only: continue
367  line += ' ++ REALDATA: '+inputInfo.dataSet
368  if inputInfo.run!=[]: line += ', RUN:'+'|'.join(map(str,inputInfo.run))
369  line += ', FILES: ' +str(inputInfo.files)
370  line += ', EVENTS: '+str(inputInfo.events)
371  if inputInfo.label!='':
372  line += ', LABEL: ' +inputInfo.label
373  line += ', LOCATION:'+inputInfo.location
374  line += ' @@@'
375  else:
376  line += ' @@@ '+commands[0]
377  if self.revertDqmio=='yes':
378  line=line.replace('DQMIO','DQM')
379  writtenWF+=1
380  outFile.write(line+'\n')
381 
382 
383  outFile.write('\n'+'\n')
384  if step1Only: continue
385 
386  for (index,s) in enumerate(indexAndSteps):
387  for (stepName,cmd) in s:
388  stepIndex=index+1
389  if 'dasquery.log' in cmd: continue
390  line = 'STEP%d ++ '%(stepIndex,) +stepName + ' @@@ '+cmd
391  if self.revertDqmio=='yes':
392  line=line.replace('DQMIO','DQM')
393  outFile.write(line+'\n')
394  outFile.write('\n'+'\n')
395  outFile.close()
396  print("wrote ",writtenWF, ' workflow'+('s' if (writtenWF!=1) else ''),' to ', outFile.name)
397  return
398 

References PVValHelper.add(), MatrixReader.MatrixReader.files, MatrixReader.MatrixReader.filesDefault, join(), relativeConstraints.keys, genParticles_cff.map, edm.print(), FastTimerService_cff.range, MatrixReader.MatrixReader.readMatrix(), PuppiAlgo.reset(), TPedResult.reset(), BinningPointByMap.reset(), AlcaBeamSpotManager.reset(), RPCFebConnector.reset(), EcalCondHeader.reset(), VEcalCalibBlock.reset(), ApvLatencyAnalysis.reset(), SiPixelStatusManager.reset(), SiStripMiscalibrate::Entry.reset(), MatrixReader.MatrixReader.reset(), TB06Tree.reset(), IMACalibBlock.reset(), SamplingAnalysis.reset(), FactorizedJetCorrectorCalculator::VariableValues.reset(), L3CalibBlock.reset(), pos::PixelROCStatus.reset(), FedTimingAnalysis.reset(), L1MuDTTFMasks.reset(), L1MuDTTFParameters.reset(), SiStripPI::Entry.reset(), L1MuDTPtaLut.reset(), RPCAMCLink.reset(), RPCDCCLink.reset(), L1MuDTPhiLut.reset(), FedCablingAnalysis.reset(), L1MuDTEtaPatternLut.reset(), L1MuDTQualPatternLut.reset(), PedsOnlyAnalysis.reset(), L1MuDTExtLut.reset(), TB06Reco.reset(), coral_bridge::AuthenticationCredentialSet.reset(), VpspScanAnalysis.reset(), PhysicsTools::Calibration::Histogram2D< Value_t, AxisX_t, AxisY_t >.reset(), PhysicsTools::Calibration::Histogram< Value_t, Axis_t >.reset(), NoiseAnalysis.reset(), PedestalsAnalysis.reset(), OptoScanAnalysis.reset(), CalibrationScanAnalysis.reset(), ApvTimingAnalysis.reset(), TB06TreeH2.reset(), DaqScopeModeAnalysis.reset(), cond::persistency::RunInfoProxy.reset(), FastFedCablingAnalysis.reset(), RPCLBLink.reset(), PhysicsTools::Calibration::Histogram3D< Value_t, AxisX_t, AxisY_t, AxisZ_t >.reset(), cond::persistency::GTProxy.reset(), AlignableBeamSpot.reset(), PedsFullNoiseAnalysis.reset(), CalibrationAnalysis.reset(), CommissioningAnalysis.reset(), cond::XMLAuthenticationService::XMLAuthenticationService.reset(), TB06RecoH2.reset(), cond::persistency::IOVProxy.reset(), TrackerMap.reset(), data_sources.json_list.reset(), DTTFBitArray< N >.reset(), LHCInfoImpl::LumiSectionFilter.reset(), tkal_create_file_lists._DasCache.reset(), MatrixReader.MatrixReader.revertDqmio, str, MatrixReader.MatrixReader.what, and MatrixReader.MatrixReader.workFlowSteps.

◆ showWorkFlows()

def MatrixReader.MatrixReader.showWorkFlows (   self,
  selected = None,
  extended = True,
  cafVeto = True 
)

Definition at line 414 of file MatrixReader.py.

414  def showWorkFlows(self, selected=None, extended=True, cafVeto=True):
415  if selected: selected = list(map(float,selected))
416  wfs = self.workFlowsByLocation(cafVeto)
417  maxLen = 100 # for summary, limit width of output
418  fmt1 = "%-6s %-35s [1]: %s ..."
419  fmt2 = " %35s [%d]: %s ..."
420  print("\nfound a total of ", len(wfs), ' workflows:')
421  if selected:
422  print(" of which the following", len(selected), 'were selected:')
423  #-ap for now:
424  maxLen = -1 # for individual listing, no limit on width
425  fmt1 = "%-6s %-35s [1]: %s "
426  fmt2 = " %35s [%d]: %s"
427 
428  N=[]
429  for wf in wfs:
430  if selected and float(wf.numId) not in selected: continue
431  if extended: print('')
432  #pad with zeros
433  for i in range(len(N),len(wf.cmds)): N.append(0)
434  N[len(wf.cmds)-1]+=1
435  wfName, stepNames = wf.nameId.split('+',1)
436  for i,s in enumerate(wf.cmds):
437  if extended:
438  if i==0:
439  print(fmt1 % (wf.numId, stepNames, (str(s)+' ')[:maxLen]))
440  else:
441  print(fmt2 % ( ' ', i+1, (str(s)+' ')[:maxLen]))
442  else:
443  print("%-6s %-35s "% (wf.numId, stepNames))
444  break
445  print('')
446  for i,n in enumerate(N):
447  if n: print(n,'workflows with',i+1,'steps')
448 
449  return
450 

References dqmMemoryStats.float, list(), genParticles_cff.map, edm.print(), FastTimerService_cff.range, str, and MatrixReader.MatrixReader.workFlowsByLocation().

Referenced by MatrixReader.MatrixReader.show().

◆ updateDB()

def MatrixReader.MatrixReader.updateDB (   self)

Definition at line 507 of file MatrixReader.py.

507  def updateDB(self):
508 
509  import pickle
510  pickle.dump(self.workFlows, open('theMatrix.pkl', 'w') )
511 
512  return
513 

References MatrixReader.MatrixReader.workFlows.

◆ workFlowsByLocation()

def MatrixReader.MatrixReader.workFlowsByLocation (   self,
  cafVeto = True 
)

Definition at line 399 of file MatrixReader.py.

399  def workFlowsByLocation(self, cafVeto=True):
400  # Check if we are on CAF
401  onCAF = False
402  if 'cms/caf/cms' in os.environ['CMS_PATH']:
403  onCAF = True
404 
405  workflows = []
406  for workflow in self.workFlows:
407  if isinstance(workflow.cmds[0], InputInfo):
408  if cafVeto and (workflow.cmds[0].location == 'CAF' and not onCAF):
409  continue
410  workflows.append(workflow)
411 
412  return workflows
413 

References MatrixReader.MatrixReader.workFlows.

Referenced by MatrixReader.MatrixReader.showWorkFlows().

Member Data Documentation

◆ addCommand

MatrixReader.MatrixReader.addCommand

Definition at line 25 of file MatrixReader.py.

Referenced by MatrixReader.MatrixReader.readMatrix().

◆ apply

MatrixReader.MatrixReader.apply

◆ commandLineWf

MatrixReader.MatrixReader.commandLineWf

Definition at line 27 of file MatrixReader.py.

◆ files

MatrixReader.MatrixReader.files

◆ filesDefault

MatrixReader.MatrixReader.filesDefault

◆ filesPrefMap

MatrixReader.MatrixReader.filesPrefMap

◆ nameList

MatrixReader.MatrixReader.nameList

Definition at line 41 of file MatrixReader.py.

Referenced by MatrixReader.MatrixReader.createWorkFlows().

◆ noRun

MatrixReader.MatrixReader.noRun

Definition at line 30 of file MatrixReader.py.

Referenced by MatrixReader.MatrixReader.readMatrix().

◆ overWrite

MatrixReader.MatrixReader.overWrite

Definition at line 28 of file MatrixReader.py.

Referenced by MatrixReader.MatrixReader.readMatrix().

◆ relvalModule

MatrixReader.MatrixReader.relvalModule

Definition at line 90 of file MatrixReader.py.

Referenced by MatrixReader.MatrixReader.readMatrix().

◆ revertDqmio

MatrixReader.MatrixReader.revertDqmio

maybe we want too level deep input

Definition at line 24 of file MatrixReader.py.

Referenced by MatrixReader.MatrixReader.readMatrix(), and MatrixReader.MatrixReader.showRaw().

◆ what

MatrixReader.MatrixReader.what

◆ wm

MatrixReader.MatrixReader.wm

Definition at line 23 of file MatrixReader.py.

Referenced by MatrixReader.MatrixReader.readMatrix().

◆ workFlows

MatrixReader.MatrixReader.workFlows

◆ workFlowSteps

MatrixReader.MatrixReader.workFlowSteps
FastTimerService_cff.range
range
Definition: FastTimerService_cff.py:34
dqmMemoryStats.float
float
Definition: dqmMemoryStats.py:127
relval_steps
join
static std::string join(char **cmd)
Definition: RemoteFile.cc:17
relativeConstraints.keys
keys
Definition: relativeConstraints.py:89
runTheMatrix.showRaw
def showRaw(opt)
Definition: runTheMatrix.py:11
str
#define str(s)
Definition: TestProcessor.cc:48
MatrixUtil.changeRefRelease
def changeRefRelease(steps, listOfPairs)
Definition: MatrixUtil.py:229
PVValHelper::add
void add(std::map< std::string, TH1 * > &h, TH1 *hist)
Definition: PVValidationHelpers.cc:12
mps_setup.append
append
Definition: mps_setup.py:85
createfilelist.int
int
Definition: createfilelist.py:10
edm::print
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:66
ComparisonHelper::zip
OutputIterator zip(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp)
Definition: L1TStage2CaloLayer1.h:38
WorkFlow
Definition: WorkFlow.py:1
reset
void reset(double vett[256])
Definition: TPedValues.cc:11
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
genParticles_cff.map
map
Definition: genParticles_cff.py:11
merge
Definition: merge.py:1