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  "SubRequestType" : "RelVal", #this is how we handle relvals, now that TaskChain is also used for central MC production
85  "RequestPriority": 999999,
86  "Requestor": self.user, #Person responsible
87  "Group": self.group, #group for the request
88  "CMSSWVersion": os.getenv('CMSSW_VERSION'), #CMSSW Version (used for all tasks in chain)
89  "Campaign": os.getenv('CMSSW_VERSION'), # only for wmstat purpose
90  "ScramArch": os.getenv('SCRAM_ARCH'), #Scram Arch (used for all tasks in chain)
91  "ProcessingVersion": self.version, #Processing Version (used for all tasks in chain)
92  "GlobalTag": None, #Global Tag (overridden per task)
93  "CouchURL": self.couch, #URL of CouchDB containing Config Cache
94  "ConfigCacheURL": self.couch, #URL of CouchDB containing Config Cache
95  "DbsUrl": "https://cmsweb.cern.ch/dbs/prod/global/DBSReader",
96  #- Will contain all configs for all Tasks
97  #"SiteWhitelist" : ["T2_CH_CERN", "T1_US_FNAL"], #Site whitelist
98  "TaskChain" : None, #Define number of tasks in chain.
99  "nowmTasklist" : [], #a list of tasks as we put them in
100  "unmergedLFNBase" : "/store/unmerged",
101  "mergedLFNBase" : "/store/relval",
102  "dashboardActivity" : "relval",
103  "Memory" : 3000,
104  "SizePerEvent" : 1234,
105  "TimePerEvent" : 0.1
106  }
108  self.defaultHarvest={
109  "EnableHarvesting" : "True",
110  "DQMUploadUrl" : self.dqmgui,
111  "DQMConfigCacheID" : None
112  }
113 
114  self.defaultScratch={
115  "TaskName" : None, #Task Name
116  "ConfigCacheID" : None, #Generator Config id
117  "GlobalTag": None,
118  "SplittingAlgo" : "EventBased", #Splitting Algorithm
119  "EventsPerJob" : None, #Size of jobs in terms of splitting algorithm
120  "RequestNumEvents" : None, #Total number of events to generate
121  "Seeding" : "AutomaticSeeding", #Random seeding method
122  "PrimaryDataset" : None, #Primary Dataset to be created
123  "nowmIO": {},
124  "KeepOutput" : False
125  }
126  self.defaultInput={
127  "TaskName" : "DigiHLT", #Task Name
128  "ConfigCacheID" : None, #Processing Config id
129  "GlobalTag": None,
130  "InputDataset" : None, #Input Dataset to be processed
131  "SplittingAlgo" : "LumiBased", #Splitting Algorithm
132  "LumisPerJob" : 10, #Size of jobs in terms of splitting algorithm
133  "nowmIO": {},
134  "KeepOutput" : False
135  }
136  self.defaultTask={
137  "TaskName" : None, #Task Name
138  "InputTask" : None, #Input Task Name (Task Name field of a previous Task entry)
139  "InputFromOutputModule" : None, #OutputModule name in the input task that will provide files to process
140  "ConfigCacheID" : None, #Processing Config id
141  "GlobalTag": None,
142  "SplittingAlgo" : "LumiBased", #Splitting Algorithm
143  "LumisPerJob" : 10, #Size of jobs in terms of splitting algorithm
144  "nowmIO": {},
145  "KeepOutput" : False
146  }
148  self.chainDicts={}
149 

Member Function Documentation

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

Definition at line 150 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.

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

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

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

Definition at line 395 of file MatrixInjector.py.

References MatrixInjector.MatrixInjector.uploadConf().

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

Definition at line 368 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().

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

Member Data Documentation

MatrixInjector.MatrixInjector.chainDicts

Definition at line 147 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 107 of file MatrixInjector.py.

Referenced by MatrixInjector.MatrixInjector.prepare().

MatrixInjector.MatrixInjector.defaultInput

Definition at line 125 of file MatrixInjector.py.

Referenced by MatrixInjector.MatrixInjector.prepare().

MatrixInjector.MatrixInjector.defaultScratch

Definition at line 113 of file MatrixInjector.py.

Referenced by MatrixInjector.MatrixInjector.prepare().

MatrixInjector.MatrixInjector.defaultTask

Definition at line 135 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().