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(), cmsHarvester.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  if 'lhe' in s[2][index] in s[2][index]:
223  chainDict['nowmTasklist'][-1]['LheInputFiles'] =True
224 
225  elif nextHasDSInput:
226  chainDict['nowmTasklist'].append(copy.deepcopy(self.defaultInput))
227  try:
228  chainDict['nowmTasklist'][-1]['nowmIO']=json.loads(open('%s/%s.io'%(dir,step)).read())
229  except:
230  print "Failed to find",'%s/%s.io'%(dir,step),".The workflows were probably not run on cfg not created"
231  return -15
232  chainDict['nowmTasklist'][-1]['InputDataset']=nextHasDSInput.dataSet
233  splitForThisWf=nextHasDSInput.split
234  chainDict['nowmTasklist'][-1]['LumisPerJob']=splitForThisWf
235  if step in wmsplit:
236  chainDict['nowmTasklist'][-1]['LumisPerJob']=wmsplit[step]
237  # get the run numbers or #events
238  if len(nextHasDSInput.run):
239  chainDict['nowmTasklist'][-1]['RunWhitelist']=nextHasDSInput.run
240  #print "what is s",s[2][index]
241  if '--data' in s[2][index] and nextHasDSInput.label:
242  thisLabel+='_RelVal_%s'%nextHasDSInput.label
243  if 'filter' in chainDict['nowmTasklist'][-1]['nowmIO']:
244  print "This has an input DS and a filter sequence: very likely to be the PyQuen sample"
245  processStrPrefix='PU_'
246  setPrimaryDs = 'RelVal'+s[1].split('+')[0]
247  if setPrimaryDs:
248  chainDict['nowmTasklist'][-1]['PrimaryDataset']=setPrimaryDs
249  nextHasDSInput=None
250  else:
251  #not first step and no inputDS
252  chainDict['nowmTasklist'].append(copy.deepcopy(self.defaultTask))
253  try:
254  chainDict['nowmTasklist'][-1]['nowmIO']=json.loads(open('%s/%s.io'%(dir,step)).read())
255  except:
256  print "Failed to find",'%s/%s.io'%(dir,step),".The workflows were probably not run on cfg not created"
257  return -15
258  if splitForThisWf:
259  chainDict['nowmTasklist'][-1]['LumisPerJob']=splitForThisWf
260  if step in wmsplit:
261  chainDict['nowmTasklist'][-1]['LumisPerJob']=wmsplit[step]
262 
263  #print step
264  chainDict['nowmTasklist'][-1]['TaskName']=step
265  if setPrimaryDs:
266  chainDict['nowmTasklist'][-1]['PrimaryDataset']=setPrimaryDs
267  chainDict['nowmTasklist'][-1]['ConfigCacheID']='%s/%s.py'%(dir,step)
268  chainDict['nowmTasklist'][-1]['GlobalTag']=chainDict['nowmTasklist'][-1]['nowmIO']['GT'] # copy to the proper parameter name
269  chainDict['GlobalTag']=chainDict['nowmTasklist'][-1]['nowmIO']['GT'] #set in general to the last one of the chain
270  if 'pileup' in chainDict['nowmTasklist'][-1]['nowmIO']:
271  chainDict['nowmTasklist'][-1]['MCPileup']=chainDict['nowmTasklist'][-1]['nowmIO']['pileup']
272  if '--pileup ' in s[2][index]: # catch --pileup (scenarion) and not --pileup_ (dataset to be mixed) => works also making PRE-MIXed dataset
273  processStrPrefix='PU_' # take care of pu overlay done with GEN-SIM mixing
274  if ( s[2][index].split()[ s[2][index].split().index('--pileup')+1 ] ).find('25ns') > 0 :
275  processStrPrefix='PU25ns_'
276  elif ( s[2][index].split()[ s[2][index].split().index('--pileup')+1 ] ).find('50ns') > 0 :
277  processStrPrefix='PU50ns_'
278  if 'DIGIPREMIX_S2' in s[2][index] : # take care of pu overlay done with DIGI mixing of premixed events
279  if s[2][index].split()[ s[2][index].split().index('--pileup_input')+1 ].find('25ns') > 0 :
280  processStrPrefix='PUpmx25ns_'
281  elif s[2][index].split()[ s[2][index].split().index('--pileup_input')+1 ].find('50ns') > 0 :
282  processStrPrefix='PUpmx50ns_'
283 
284  if acqEra:
285  #chainDict['AcquisitionEra'][step]=(chainDict['CMSSWVersion']+'-PU_'+chainDict['nowmTasklist'][-1]['GlobalTag']).replace('::All','')+thisLabel
286  chainDict['AcquisitionEra'][step]=chainDict['CMSSWVersion']
287  chainDict['ProcessingString'][step]=processStrPrefix+chainDict['nowmTasklist'][-1]['GlobalTag'].replace('::All','')+thisLabel
288  else:
289  #chainDict['nowmTasklist'][-1]['AcquisitionEra']=(chainDict['CMSSWVersion']+'-PU_'+chainDict['nowmTasklist'][-1]['GlobalTag']).replace('::All','')+thisLabel
290  chainDict['nowmTasklist'][-1]['AcquisitionEra']=chainDict['CMSSWVersion']
291  chainDict['nowmTasklist'][-1]['ProcessingString']=processStrPrefix+chainDict['nowmTasklist'][-1]['GlobalTag'].replace('::All','')+thisLabel
292 
293  index+=1
294  #end of loop through steps
295  chainDict['RequestString']='RV'+chainDict['CMSSWVersion']+s[1].split('+')[0]
296  if processStrPrefix or thisLabel:
297  chainDict['RequestString']+='_'+processStrPrefix+thisLabel
298 
299 
300 
301  #wrap up for this one
302  import pprint
303  #print 'wrapping up'
304  #pprint.pprint(chainDict)
305  #loop on the task list
306  for i_second in reversed(range(len(chainDict['nowmTasklist']))):
307  t_second=chainDict['nowmTasklist'][i_second]
308  #print "t_second taskname", t_second['TaskName']
309  if 'primary' in t_second['nowmIO']:
310  #print t_second['nowmIO']['primary']
311  primary=t_second['nowmIO']['primary'][0].replace('file:','')
312  for i_input in reversed(range(0,i_second)):
313  t_input=chainDict['nowmTasklist'][i_input]
314  for (om,o) in t_input['nowmIO'].items():
315  if primary in o:
316  #print "found",primary,"procuced by",om,"of",t_input['TaskName']
317  t_second['InputTask'] = t_input['TaskName']
318  t_second['InputFromOutputModule'] = om
319  #print 't_second',pprint.pformat(t_second)
320  if t_second['TaskName'].startswith('HARVEST'):
321  chainDict.update(copy.deepcopy(self.defaultHarvest))
322  chainDict['DQMConfigCacheID']=t_second['ConfigCacheID']
323  ## the info are not in the task specific dict but in the general dict
324  #t_input.update(copy.deepcopy(self.defaultHarvest))
325  #t_input['DQMConfigCacheID']=t_second['ConfigCacheID']
326  break
327 
328  ## there is in fact only one acquisition era
329  #if len(set(chainDict['AcquisitionEra'].values()))==1:
330  # print "setting only one acq"
331  if acqEra:
332  chainDict['AcquisitionEra'] = chainDict['AcquisitionEra'].values()[0]
333 
334  ## clean things up now
335  itask=0
336  if self.keep:
337  for i in self.keep:
338  if type(i)==int and i < len(chainDict['nowmTasklist']):
339  chainDict['nowmTasklist'][i]['KeepOutput']=True
340  for (i,t) in enumerate(chainDict['nowmTasklist']):
341  if t['TaskName'].startswith('HARVEST'):
342  continue
343  if not self.keep:
344  t['KeepOutput']=True
345  elif t['TaskName'] in self.keep:
346  t['KeepOutput']=True
347  t.pop('nowmIO')
348  itask+=1
349  chainDict['Task%d'%(itask)]=t
350 
351 
352  ##
353 
354 
355  ## provide the number of tasks
356  chainDict['TaskChain']=itask#len(chainDict['nowmTasklist'])
357 
358  chainDict.pop('nowmTasklist')
359  self.chainDicts[n]=chainDict
360 
361 
362  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 410 of file MatrixInjector.py.

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

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

Definition at line 390 of file MatrixInjector.py.

References MatrixInjector.MatrixInjector.uploadConf().

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

Definition at line 363 of file MatrixInjector.py.

References MatrixInjector.MatrixInjector.couchCache, TmCcu.count, TmApvPair.count, TmModule.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, conddblib.GlobalTagMap.label, MatrixInjector.MatrixInjector.testMode, EcalTPGParamReaderFromDB.user, popcon::RPCObPVSSmapData.user, popcon::RpcDataT.user, popcon::RpcObGasData.user, popcon::RpcDataV.user, popcon::RpcDataI.user, popcon::RpcDataGasMix.user, popcon::RpcDataFebmap.user, popcon::RpcDataUXC.user, popcon::RpcDataS.user, MatrixInjector.MatrixInjector.user, and conddblib.TimeType.user.

Referenced by MatrixInjector.MatrixInjector.upload().

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