CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Public Attributes
MatrixInjector.MatrixInjector Class Reference
Inheritance diagram for MatrixInjector.MatrixInjector:

Public Member Functions

def __init__
 
def prepare
 
def submit
 
def upload
 
def uploadConf
 

Public Attributes

 chainDicts
 
 couch
 
 couchCache
 
 count
 
 defaultChain
 
 defaultHarvest
 
 defaultInput
 
 defaultScratch
 
 defaultTask
 
 dqmgui
 
 group
 
 keep
 
 label
 
 speciallabel
 
 testMode
 
 user
 
 version
 
 wmagent
 

Detailed Description

Definition at line 36 of file MatrixInjector.py.

Constructor & Destructor Documentation

def MatrixInjector.MatrixInjector.__init__ (   self,
  opt,
  mode = 'init',
  options = '' 
)

Definition at line 38 of file MatrixInjector.py.

38 
39  def __init__(self,opt,mode='init',options=''):
40  self.count=1040
41 
42  self.dqmgui=None
43  self.wmagent=None
44  for k in options.split(','):
45  if k.startswith('dqm:'):
46  self.dqmgui=k.split(':',1)[-1]
47  elif k.startswith('wma:'):
48  self.wmagent=k.split(':',1)[-1]
49 
50  self.testMode=((mode!='submit') and (mode!='force'))
51  self.version =1
52  self.keep = opt.keep
53 
54  #wagemt stuff
55  if not self.wmagent:
56  self.wmagent=os.getenv('WMAGENT_REQMGR')
57  if not self.wmagent:
58  self.wmagent = 'cmsweb.cern.ch'
59 
60  if not self.dqmgui:
61  self.dqmgui="https://cmsweb.cern.ch/dqm/relval"
62  #couch stuff
63  self.couch = 'https://'+self.wmagent+'/couchdb'
64 # self.couchDB = 'reqmgr_config_cache'
65  self.couchCache={} # so that we do not upload like crazy, and recyle cfgs
66  self.user = os.getenv('USER')
67  self.group = 'ppd'
68  self.label = 'RelValSet_'+os.getenv('CMSSW_VERSION').replace('-','')+'_v'+str(self.version)
69  self.speciallabel=''
70  if opt.label:
71  self.speciallabel= '_'+opt.label
72 
73 
74  if not os.getenv('WMCORE_ROOT'):
75  print '\n\twmclient is not setup properly. Will not be able to upload or submit requests.\n'
76  if not self.testMode:
77  print '\n\t QUIT\n'
78  sys.exit(-18)
79  else:
80  print '\n\tFound wmclient\n'
81 
82  self.defaultChain={
83  "RequestType" : "TaskChain", #this is how we handle relvals
84  "Requestor": self.user, #Person responsible
85  "Group": self.group, #group for the request
86  "CMSSWVersion": os.getenv('CMSSW_VERSION'), #CMSSW Version (used for all tasks in chain)
87  "Campaign": os.getenv('CMSSW_VERSION'), # only for wmstat purpose
88  "ScramArch": os.getenv('SCRAM_ARCH'), #Scram Arch (used for all tasks in chain)
89  "ProcessingVersion": self.version, #Processing Version (used for all tasks in chain)
90  "GlobalTag": None, #Global Tag (overridden per task)
91  "CouchURL": self.couch, #URL of CouchDB containing Config Cache
92  "ConfigCacheURL": self.couch, #URL of CouchDB containing Config Cache
93  "DbsUrl": "https://cmsweb.cern.ch/dbs/prod/global/DBSReader",
94  #- Will contain all configs for all Tasks
95  #"SiteWhitelist" : ["T2_CH_CERN", "T1_US_FNAL"], #Site whitelist
96  "TaskChain" : None, #Define number of tasks in chain.
97  "nowmTasklist" : [], #a list of tasks as we put them in
98  "unmergedLFNBase" : "/store/unmerged",
99  "mergedLFNBase" : "/store/relval",
100  "dashboardActivity" : "relval",
101  "Memory" : 2400,
102  "SizePerEvent" : 1234,
103  "TimePerEvent" : 20
104  }
106  self.defaultHarvest={
107  "EnableHarvesting" : "True",
108  "DQMUploadUrl" : self.dqmgui,
109  "DQMConfigCacheID" : None
110  }
111 
112  self.defaultScratch={
113  "TaskName" : None, #Task Name
114  "ConfigCacheID" : None, #Generator Config id
115  "GlobalTag": None,
116  "SplittingAlgo" : "EventBased", #Splitting Algorithm
117  "EventsPerJob" : None, #Size of jobs in terms of splitting algorithm
118  "RequestNumEvents" : None, #Total number of events to generate
119  "Seeding" : "AutomaticSeeding", #Random seeding method
120  "PrimaryDataset" : None, #Primary Dataset to be created
121  "nowmIO": {},
122  "KeepOutput" : False
123  }
124  self.defaultInput={
125  "TaskName" : "DigiHLT", #Task Name
126  "ConfigCacheID" : None, #Processing Config id
127  "GlobalTag": None,
128  "InputDataset" : None, #Input Dataset to be processed
129  "SplittingAlgo" : "LumiBased", #Splitting Algorithm
130  "LumisPerJob" : 10, #Size of jobs in terms of splitting algorithm
131  "nowmIO": {},
132  "KeepOutput" : False
133  }
134  self.defaultTask={
135  "TaskName" : None, #Task Name
136  "InputTask" : None, #Input Task Name (Task Name field of a previous Task entry)
137  "InputFromOutputModule" : None, #OutputModule name in the input task that will provide files to process
138  "ConfigCacheID" : None, #Processing Config id
139  "GlobalTag": None,
140  "SplittingAlgo" : "LumiBased", #Splitting Algorithm
141  "LumisPerJob" : 10, #Size of jobs in terms of splitting algorithm
142  "nowmIO": {},
143  "KeepOutput" : False
144  }
146  self.chainDicts={}
147 

Member Function Documentation

def MatrixInjector.MatrixInjector.prepare (   self,
  mReader,
  directories,
  mode = 'init' 
)

Definition at line 148 of file MatrixInjector.py.

References python.multivaluedict.append(), MatrixInjector.MatrixInjector.chainDicts, MatrixInjector.MatrixInjector.defaultChain, MatrixInjector.MatrixInjector.defaultHarvest, MatrixInjector.MatrixInjector.defaultInput, MatrixInjector.MatrixInjector.defaultScratch, MatrixInjector.MatrixInjector.defaultTask, spr.find(), getHLTprescales.index, MatrixInjector.MatrixInjector.keep, python.multivaluedict.map(), SiPixelLorentzAngle_cfi.read, python.rootplot.root2matplotlib.replace(), MatrixInjector.MatrixInjector.speciallabel, split, and makeHLTPrescaleTable.values.

149  def prepare(self,mReader, directories, mode='init'):
150  try:
151  #from Configuration.PyReleaseValidation.relval_steps import wmsplit
152  wmsplit = {}
153  wmsplit['DIGIHI']=5
154  wmsplit['RECOHI']=5
155  wmsplit['HLTD']=5
156  wmsplit['RECODreHLT']=2
157  wmsplit['DIGIPU']=4
158  wmsplit['DIGIPU1']=4
159  wmsplit['RECOPU1']=1
160  wmsplit['DIGIUP15_PU50']=1
161  wmsplit['RECOUP15_PU50']=1
162  wmsplit['DIGIUP15_PU25']=1
163  wmsplit['RECOUP15_PU25']=1
164  wmsplit['DIGIHISt3']=5
165  wmsplit['RECODSplit']=1
166  wmsplit['SingleMuPt10_ID']=1
167  wmsplit['DIGI_ID']=1
168  wmsplit['RECO_ID']=1
169  wmsplit['TTbar_ID']=1
170  wmsplit['SingleMuPt10FS_ID']=1
171  wmsplit['TTbarFS_ID']=1
172 
173  #import pprint
174  #pprint.pprint(wmsplit)
175  except:
176  print "Not set up for step splitting"
177  wmsplit={}
178 
179  acqEra=False
180  for (n,dir) in directories.items():
181  chainDict=copy.deepcopy(self.defaultChain)
182  print "inspecting",dir
183  nextHasDSInput=None
184  for (x,s) in mReader.workFlowSteps.items():
185  #x has the format (num, prefix)
186  #s has the format (num, name, commands, stepList)
187  if x[0]==n:
188  #print "found",n,s[3]
189  #chainDict['RequestString']='RV'+chainDict['CMSSWVersion']+s[1].split('+')[0]
190  index=0
191  splitForThisWf=None
192  thisLabel=self.speciallabel
193  processStrPrefix=''
194  setPrimaryDs=None
195  for step in s[3]:
196 
197  if 'INPUT' in step or (not isinstance(s[2][index],str)):
198  nextHasDSInput=s[2][index]
199 
200  else:
201 
202  if (index==0):
203  #first step and not input -> gen part
204  chainDict['nowmTasklist'].append(copy.deepcopy(self.defaultScratch))
205  try:
206  chainDict['nowmTasklist'][-1]['nowmIO']=json.loads(open('%s/%s.io'%(dir,step)).read())
207  except:
208  print "Failed to find",'%s/%s.io'%(dir,step),".The workflows were probably not run on cfg not created"
209  return -15
210 
211  chainDict['nowmTasklist'][-1]['PrimaryDataset']='RelVal'+s[1].split('+')[0]
212  if not '--relval' in s[2][index]:
213  print 'Impossible to create task from scratch without splitting information with --relval'
214  return -12
215  else:
216  arg=s[2][index].split()
217  ns=map(int,arg[arg.index('--relval')+1].split(','))
218  chainDict['nowmTasklist'][-1]['RequestNumEvents'] = ns[0]
219  chainDict['nowmTasklist'][-1]['EventsPerJob'] = ns[1]
220  if 'FASTSIM' in s[2][index] or '--fast' in s[2][index]:
221  thisLabel+='_FastSim'
222 
223  elif nextHasDSInput:
224  chainDict['nowmTasklist'].append(copy.deepcopy(self.defaultInput))
225  try:
226  chainDict['nowmTasklist'][-1]['nowmIO']=json.loads(open('%s/%s.io'%(dir,step)).read())
227  except:
228  print "Failed to find",'%s/%s.io'%(dir,step),".The workflows were probably not run on cfg not created"
229  return -15
230  chainDict['nowmTasklist'][-1]['InputDataset']=nextHasDSInput.dataSet
231  splitForThisWf=nextHasDSInput.split
232  chainDict['nowmTasklist'][-1]['LumisPerJob']=splitForThisWf
233  if step in wmsplit:
234  chainDict['nowmTasklist'][-1]['LumisPerJob']=wmsplit[step]
235  # get the run numbers or #events
236  if len(nextHasDSInput.run):
237  chainDict['nowmTasklist'][-1]['RunWhitelist']=nextHasDSInput.run
238  #print "what is s",s[2][index]
239  if '--data' in s[2][index] and nextHasDSInput.label:
240  thisLabel+='_RelVal_%s'%nextHasDSInput.label
241  if 'filter' in chainDict['nowmTasklist'][-1]['nowmIO']:
242  print "This has an input DS and a filter sequence: very likely to be the PyQuen sample"
243  processStrPrefix='PU_'
244  setPrimaryDs = 'RelVal'+s[1].split('+')[0]
245  if setPrimaryDs:
246  chainDict['nowmTasklist'][-1]['PrimaryDataset']=setPrimaryDs
247  nextHasDSInput=None
248  else:
249  #not first step and no inputDS
250  chainDict['nowmTasklist'].append(copy.deepcopy(self.defaultTask))
251  try:
252  chainDict['nowmTasklist'][-1]['nowmIO']=json.loads(open('%s/%s.io'%(dir,step)).read())
253  except:
254  print "Failed to find",'%s/%s.io'%(dir,step),".The workflows were probably not run on cfg not created"
255  return -15
256  if splitForThisWf:
257  chainDict['nowmTasklist'][-1]['LumisPerJob']=splitForThisWf
258  if step in wmsplit:
259  chainDict['nowmTasklist'][-1]['LumisPerJob']=wmsplit[step]
260 
261  #print step
262  chainDict['nowmTasklist'][-1]['TaskName']=step
263  if setPrimaryDs:
264  chainDict['nowmTasklist'][-1]['PrimaryDataset']=setPrimaryDs
265  chainDict['nowmTasklist'][-1]['ConfigCacheID']='%s/%s.py'%(dir,step)
266  chainDict['nowmTasklist'][-1]['GlobalTag']=chainDict['nowmTasklist'][-1]['nowmIO']['GT'] # copy to the proper parameter name
267  chainDict['GlobalTag']=chainDict['nowmTasklist'][-1]['nowmIO']['GT'] #set in general to the last one of the chain
268  if 'pileup' in chainDict['nowmTasklist'][-1]['nowmIO']:
269  chainDict['nowmTasklist'][-1]['MCPileup']=chainDict['nowmTasklist'][-1]['nowmIO']['pileup']
270  if '--pileup' in s[2][index]:
271  processStrPrefix='PU_'
272  if ( s[2][index].split()[ s[2][index].split().index('--pileup')+1 ] ).find('50ns') > 0 :
273  processStrPrefix='PU50ns_'
274  elif ( s[2][index].split()[ s[2][index].split().index('--pileup')+1 ] ).find('25ns') > 0 :
275  processStrPrefix='PU25ns_'
276 
277  if acqEra:
278  #chainDict['AcquisitionEra'][step]=(chainDict['CMSSWVersion']+'-PU_'+chainDict['nowmTasklist'][-1]['GlobalTag']).replace('::All','')+thisLabel
279  chainDict['AcquisitionEra'][step]=chainDict['CMSSWVersion']
280  chainDict['ProcessingString'][step]=processStrPrefix+chainDict['nowmTasklist'][-1]['GlobalTag'].replace('::All','')+thisLabel
281  else:
282  #chainDict['nowmTasklist'][-1]['AcquisitionEra']=(chainDict['CMSSWVersion']+'-PU_'+chainDict['nowmTasklist'][-1]['GlobalTag']).replace('::All','')+thisLabel
283  chainDict['nowmTasklist'][-1]['AcquisitionEra']=chainDict['CMSSWVersion']
284  chainDict['nowmTasklist'][-1]['ProcessingString']=processStrPrefix+chainDict['nowmTasklist'][-1]['GlobalTag'].replace('::All','')+thisLabel
285 
286  index+=1
287  #end of loop through steps
288  chainDict['RequestString']='RV'+chainDict['CMSSWVersion']+s[1].split('+')[0]
289  if processStrPrefix or thisLabel:
290  chainDict['RequestString']+='_'+processStrPrefix+thisLabel
291 
292 
293 
294  #wrap up for this one
295  import pprint
296  #print 'wrapping up'
297  #pprint.pprint(chainDict)
298  #loop on the task list
299  for i_second in reversed(range(len(chainDict['nowmTasklist']))):
300  t_second=chainDict['nowmTasklist'][i_second]
301  #print "t_second taskname", t_second['TaskName']
302  if 'primary' in t_second['nowmIO']:
303  #print t_second['nowmIO']['primary']
304  primary=t_second['nowmIO']['primary'][0].replace('file:','')
305  for i_input in reversed(range(0,i_second)):
306  t_input=chainDict['nowmTasklist'][i_input]
307  for (om,o) in t_input['nowmIO'].items():
308  if primary in o:
309  #print "found",primary,"procuced by",om,"of",t_input['TaskName']
310  t_second['InputTask'] = t_input['TaskName']
311  t_second['InputFromOutputModule'] = om
312  #print 't_second',pprint.pformat(t_second)
313  if t_second['TaskName'].startswith('HARVEST'):
314  chainDict.update(copy.deepcopy(self.defaultHarvest))
315  chainDict['DQMConfigCacheID']=t_second['ConfigCacheID']
316  ## the info are not in the task specific dict but in the general dict
317  #t_input.update(copy.deepcopy(self.defaultHarvest))
318  #t_input['DQMConfigCacheID']=t_second['ConfigCacheID']
319  break
320 
321  ## there is in fact only one acquisition era
322  #if len(set(chainDict['AcquisitionEra'].values()))==1:
323  # print "setting only one acq"
324  if acqEra:
325  chainDict['AcquisitionEra'] = chainDict['AcquisitionEra'].values()[0]
326 
327  ## clean things up now
328  itask=0
329  if self.keep:
330  for i in self.keep:
331  if type(i)==int and i < len(chainDict['nowmTasklist']):
332  chainDict['nowmTasklist'][i]['KeepOutput']=True
333  for (i,t) in enumerate(chainDict['nowmTasklist']):
334  if t['TaskName'].startswith('HARVEST'):
335  continue
336  if not self.keep:
337  t['KeepOutput']=True
338  elif t['TaskName'] in self.keep:
339  t['KeepOutput']=True
340  t.pop('nowmIO')
341  itask+=1
342  chainDict['Task%d'%(itask)]=t
343 
344 
345  ##
346 
347 
348  ## provide the number of tasks
349  chainDict['TaskChain']=itask#len(chainDict['nowmTasklist'])
350 
351  chainDict.pop('nowmTasklist')
352  self.chainDicts[n]=chainDict
353 
354 
355  return 0
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:7
double split
Definition: MVATrainer.cc:139
def MatrixInjector.MatrixInjector.submit (   self)

Definition at line 403 of file MatrixInjector.py.

References MatrixInjector.MatrixInjector.testMode, and MatrixInjector.MatrixInjector.wmagent.

404  def submit(self):
405  try:
406  from modules.wma import makeRequest,approveRequest
407  from wmcontrol import random_sleep
408  print '\n\tFound wmcontrol\n'
409  except:
410  print '\n\tUnable to find wmcontrol modules. Please include it in your python path\n'
411  if not self.testMode:
412  print '\n\t QUIT\n'
413  sys.exit(-17)
414 
415  import pprint
416  for (n,d) in self.chainDicts.items():
417  if self.testMode:
418  print "Only viewing request",n
419  print pprint.pprint(d)
420  else:
421  #submit to wmagent each dict
422  print "For eyes before submitting",n
423  print pprint.pprint(d)
424  print "Submitting",n,"..........."
425  workFlow=makeRequest(self.wmagent,d,encodeDict=True)
426  approveRequest(self.wmagent,workFlow)
427  print "...........",n,"submitted"
428  random_sleep()
429 
430 
431 
def MatrixInjector.MatrixInjector.upload (   self)

Definition at line 383 of file MatrixInjector.py.

References MatrixInjector.MatrixInjector.uploadConf().

384  def upload(self):
385  for (n,d) in self.chainDicts.items():
386  for it in d:
387  if it.startswith("Task") and it!='TaskChain':
388  #upload
389  couchID=self.uploadConf(d[it]['ConfigCacheID'],
390  str(n)+d[it]['TaskName'],
391  d['CouchURL']
392  )
393  print d[it]['ConfigCacheID']," uploaded to couchDB for",str(n),"with ID",couchID
394  d[it]['ConfigCacheID']=couchID
395  if it =='DQMConfigCacheID':
396  couchID=self.uploadConf(d['DQMConfigCacheID'],
397  str(n)+'harvesting',
398  d['CouchURL']
399  )
400  print d['DQMConfigCacheID'],"uploaded to couchDB for",str(n),"with ID",couchID
401  d['DQMConfigCacheID']=couchID
402 
def MatrixInjector.MatrixInjector.uploadConf (   self,
  filePath,
  label,
  where 
)

Definition at line 356 of file MatrixInjector.py.

References MatrixInjector.MatrixInjector.couchCache, TmCcu.count, TmModule.count, TmApvPair.count, TmPsu.count, MatrixInjector.MatrixInjector.count, ValidationMisalignedTracker.count, SiStripDetSummary::Values.count, web_results_display.WebResultsDisplay.count, MD5.count, MatrixInjector.MatrixInjector.group, ElectronLikelihoodCategoryData.label, entry< T >.label, SiPixelFedFillerWordEventNumber.label, TtEvent::HypoClassKeyStringToEnum.label, HcalLutSet.label, DTDQMHarvesting.DTDQMHarvesting.label, DTVDriftMeanTimerCalibration.DTVDriftMeanTimerCalibration.label, DTVDriftSegmentCalibration.DTVDriftSegmentCalibration.label, DTDQMValidation.DTDQMValidation.label, DTAnalysisResiduals.DTAnalysisResiduals.label, L1GtBoardTypeStringToEnum.label, DTResidualCalibration.DTResidualCalibration.label, DTTTrigValid.DTTTrigValid.label, DTTTrigResidualCorr.DTTTrigResidualCorr.label, MatrixInjector.MatrixInjector.label, L1GtPsbQuadStringToEnum.label, ValidationMisalignedTracker.label, L1GtConditionTypeStringToEnum.label, L1GtConditionCategoryStringToEnum.label, PhysicsTools::Calibration::Comparator.label, MatrixInjector.MatrixInjector.testMode, EcalTPGParamReaderFromDB.user, popcon::RPCObPVSSmapData.user, popcon::RpcDataV.user, popcon::RpcDataT.user, popcon::RpcObGasData.user, popcon::RpcDataI.user, popcon::RpcDataS.user, popcon::RpcDataUXC.user, popcon::RpcDataFebmap.user, popcon::RpcDataGasMix.user, and MatrixInjector.MatrixInjector.user.

Referenced by MatrixInjector.MatrixInjector.upload().

357  def uploadConf(self,filePath,label,where):
358  labelInCouch=self.label+'_'+label
359  cacheName=filePath.split('/')[-1]
360  if self.testMode:
361  self.count+=1
362  print '\tFake upload of',filePath,'to couch with label',labelInCouch
363  return self.count
364  else:
365  try:
366  from modules.wma import upload_to_couch,DATABASE_NAME
367  except:
368  print '\n\tUnable to find wmcontrol modules. Please include it in your python path\n'
369  print '\n\t QUIT\n'
370  sys.exit(-16)
371 
372  if cacheName in self.couchCache:
373  print "Not re-uploading",filePath,"to",where,"for",label
374  cacheId=self.couchCache[cacheName]
375  else:
376  print "Loading",filePath,"to",where,"for",label
377  ## totally fork the upload to couch to prevent cross loading of process configurations
378  pool = multiprocessing.Pool(1)
379  cacheIds = pool.map( upload_to_couch_oneArg, [(filePath,labelInCouch,self.user,self.group,where)] )
380  cacheId = cacheIds[0]
381  self.couchCache[cacheName]=cacheId
382  return cacheId

Member Data Documentation

MatrixInjector.MatrixInjector.chainDicts

Definition at line 145 of file MatrixInjector.py.

Referenced by MatrixInjector.MatrixInjector.prepare().

MatrixInjector.MatrixInjector.couch

Definition at line 62 of file MatrixInjector.py.

MatrixInjector.MatrixInjector.couchCache

Definition at line 64 of file MatrixInjector.py.

Referenced by MatrixInjector.MatrixInjector.uploadConf().

MatrixInjector.MatrixInjector.count

Definition at line 39 of file MatrixInjector.py.

Referenced by NodeCut.MatchLessSeen.match(), NodeCut.MatchLessHit.match(), and MatrixInjector.MatrixInjector.uploadConf().

MatrixInjector.MatrixInjector.defaultChain

Definition at line 81 of file MatrixInjector.py.

Referenced by MatrixInjector.MatrixInjector.prepare().

MatrixInjector.MatrixInjector.defaultHarvest

Definition at line 105 of file MatrixInjector.py.

Referenced by MatrixInjector.MatrixInjector.prepare().

MatrixInjector.MatrixInjector.defaultInput

Definition at line 123 of file MatrixInjector.py.

Referenced by MatrixInjector.MatrixInjector.prepare().

MatrixInjector.MatrixInjector.defaultScratch

Definition at line 111 of file MatrixInjector.py.

Referenced by MatrixInjector.MatrixInjector.prepare().

MatrixInjector.MatrixInjector.defaultTask

Definition at line 133 of file MatrixInjector.py.

Referenced by MatrixInjector.MatrixInjector.prepare().

MatrixInjector.MatrixInjector.dqmgui

Definition at line 41 of file MatrixInjector.py.

MatrixInjector.MatrixInjector.group

Definition at line 66 of file MatrixInjector.py.

Referenced by MatrixInjector.MatrixInjector.uploadConf().

MatrixInjector.MatrixInjector.keep

Definition at line 51 of file MatrixInjector.py.

Referenced by MatrixInjector.MatrixInjector.prepare().

MatrixInjector.MatrixInjector.label

Definition at line 67 of file MatrixInjector.py.

Referenced by Vispa.Plugins.ConfigEditor.ConfigDataAccessor.ConfigDataAccessor._sort_list(), python.rootplot.root2matplotlib.Hist.bar(), python.rootplot.root2matplotlib.Hist.barh(), python.rootplot.root2matplotlib.Hist.errorbar(), python.rootplot.root2matplotlib.Hist.errorbarh(), Vispa.Plugins.ConfigEditor.ConfigDataAccessor.ConfigDataAccessor.foundIn(), Vispa.Plugins.ConfigEditor.ConfigDataAccessor.ConfigDataAccessor.fullFilename(), Vispa.Plugins.ConfigEditor.ConfigDataAccessor.ConfigDataAccessor.inputEventContent(), Vispa.Plugins.ConfigEditor.ConfigDataAccessor.ConfigDataAccessor.outputEventContent(), Vispa.Plugins.ConfigEditor.ToolDataAccessor.ToolDataAccessor.properties(), Vispa.Plugins.EdmBrowser.EdmDataAccessor.EdmDataAccessor.properties(), Vispa.Plugins.ConfigEditor.ConfigDataAccessor.ConfigDataAccessor.properties(), Vispa.Plugins.ConfigEditor.ConfigDataAccessor.ConfigDataAccessor.readConnections(), Vispa.Plugins.ConfigEditor.ToolDataAccessor.ToolDataAccessor.updateProcess(), MatrixInjector.MatrixInjector.uploadConf(), and Vispa.Plugins.ConfigEditor.ConfigDataAccessor.ConfigDataAccessor.usedBy().

MatrixInjector.MatrixInjector.speciallabel

Definition at line 68 of file MatrixInjector.py.

Referenced by MatrixInjector.MatrixInjector.prepare().

MatrixInjector.MatrixInjector.testMode

Definition at line 49 of file MatrixInjector.py.

Referenced by MatrixInjector.MatrixInjector.submit(), and MatrixInjector.MatrixInjector.uploadConf().

MatrixInjector.MatrixInjector.user

Definition at line 65 of file MatrixInjector.py.

Referenced by cmsPerfSuite.PerfSuite.optionParse(), and MatrixInjector.MatrixInjector.uploadConf().

MatrixInjector.MatrixInjector.version

Definition at line 50 of file MatrixInjector.py.

Referenced by argparse._VersionAction.__call__(), python.rootplot.argparse._VersionAction.__call__(), argparse.ArgumentParser.__init__(), argparse.ArgumentParser.format_version(), and python.rootplot.argparse.ArgumentParser.format_version().

MatrixInjector.MatrixInjector.wmagent

Definition at line 42 of file MatrixInjector.py.

Referenced by MatrixInjector.MatrixInjector.submit().