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]: # catch --pileup (scenarion) and not --pileup_ (dataset to be mixed) => works also making PRE-MIXed dataset
271  processStrPrefix='PU_' # take care of pu overlay done with GEN-SIM mixing
272  if ( s[2][index].split()[ s[2][index].split().index('--pileup')+1 ] ).find('25ns') > 0 :
273  processStrPrefix='PU25ns_'
274  elif ( s[2][index].split()[ s[2][index].split().index('--pileup')+1 ] ).find('50ns') > 0 :
275  processStrPrefix='PU50ns_'
276  if 'DIGIPREMIX_S2' in s[2][index] : # take care of pu overlay done with DIGI mixing of premixed events
277  if s[2][index].split()[ s[2][index].split().index('--pileup_input')+1 ].find('25ns') > 0 :
278  processStrPrefix='PUpmx25ns_'
279  elif s[2][index].split()[ s[2][index].split().index('--pileup_input')+1 ].find('50ns') > 0 :
280  processStrPrefix='PUpmx50ns_'
281 
282  if acqEra:
283  #chainDict['AcquisitionEra'][step]=(chainDict['CMSSWVersion']+'-PU_'+chainDict['nowmTasklist'][-1]['GlobalTag']).replace('::All','')+thisLabel
284  chainDict['AcquisitionEra'][step]=chainDict['CMSSWVersion']
285  chainDict['ProcessingString'][step]=processStrPrefix+chainDict['nowmTasklist'][-1]['GlobalTag'].replace('::All','')+thisLabel
286  else:
287  #chainDict['nowmTasklist'][-1]['AcquisitionEra']=(chainDict['CMSSWVersion']+'-PU_'+chainDict['nowmTasklist'][-1]['GlobalTag']).replace('::All','')+thisLabel
288  chainDict['nowmTasklist'][-1]['AcquisitionEra']=chainDict['CMSSWVersion']
289  chainDict['nowmTasklist'][-1]['ProcessingString']=processStrPrefix+chainDict['nowmTasklist'][-1]['GlobalTag'].replace('::All','')+thisLabel
290 
291  index+=1
292  #end of loop through steps
293  chainDict['RequestString']='RV'+chainDict['CMSSWVersion']+s[1].split('+')[0]
294  if processStrPrefix or thisLabel:
295  chainDict['RequestString']+='_'+processStrPrefix+thisLabel
296 
297 
298 
299  #wrap up for this one
300  import pprint
301  #print 'wrapping up'
302  #pprint.pprint(chainDict)
303  #loop on the task list
304  for i_second in reversed(range(len(chainDict['nowmTasklist']))):
305  t_second=chainDict['nowmTasklist'][i_second]
306  #print "t_second taskname", t_second['TaskName']
307  if 'primary' in t_second['nowmIO']:
308  #print t_second['nowmIO']['primary']
309  primary=t_second['nowmIO']['primary'][0].replace('file:','')
310  for i_input in reversed(range(0,i_second)):
311  t_input=chainDict['nowmTasklist'][i_input]
312  for (om,o) in t_input['nowmIO'].items():
313  if primary in o:
314  #print "found",primary,"procuced by",om,"of",t_input['TaskName']
315  t_second['InputTask'] = t_input['TaskName']
316  t_second['InputFromOutputModule'] = om
317  #print 't_second',pprint.pformat(t_second)
318  if t_second['TaskName'].startswith('HARVEST'):
319  chainDict.update(copy.deepcopy(self.defaultHarvest))
320  chainDict['DQMConfigCacheID']=t_second['ConfigCacheID']
321  ## the info are not in the task specific dict but in the general dict
322  #t_input.update(copy.deepcopy(self.defaultHarvest))
323  #t_input['DQMConfigCacheID']=t_second['ConfigCacheID']
324  break
325 
326  ## there is in fact only one acquisition era
327  #if len(set(chainDict['AcquisitionEra'].values()))==1:
328  # print "setting only one acq"
329  if acqEra:
330  chainDict['AcquisitionEra'] = chainDict['AcquisitionEra'].values()[0]
331 
332  ## clean things up now
333  itask=0
334  if self.keep:
335  for i in self.keep:
336  if type(i)==int and i < len(chainDict['nowmTasklist']):
337  chainDict['nowmTasklist'][i]['KeepOutput']=True
338  for (i,t) in enumerate(chainDict['nowmTasklist']):
339  if t['TaskName'].startswith('HARVEST'):
340  continue
341  if not self.keep:
342  t['KeepOutput']=True
343  elif t['TaskName'] in self.keep:
344  t['KeepOutput']=True
345  t.pop('nowmIO')
346  itask+=1
347  chainDict['Task%d'%(itask)]=t
348 
349 
350  ##
351 
352 
353  ## provide the number of tasks
354  chainDict['TaskChain']=itask#len(chainDict['nowmTasklist'])
355 
356  chainDict.pop('nowmTasklist')
357  self.chainDicts[n]=chainDict
358 
359 
360  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 408 of file MatrixInjector.py.

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

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

Definition at line 388 of file MatrixInjector.py.

References MatrixInjector.MatrixInjector.uploadConf().

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

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

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