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

Member Function Documentation

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

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

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

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

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

Definition at line 405 of file MatrixInjector.py.

References MatrixInjector.MatrixInjector.uploadConf().

406  def upload(self):
407  for (n,d) in self.chainDicts.items():
408  for it in d:
409  if it.startswith("Task") and it!='TaskChain':
410  #upload
411  couchID=self.uploadConf(d[it]['ConfigCacheID'],
412  str(n)+d[it]['TaskName'],
413  d['CouchURL']
414  )
415  print d[it]['ConfigCacheID']," uploaded to couchDB for",str(n),"with ID",couchID
416  d[it]['ConfigCacheID']=couchID
417  if it =='DQMConfigCacheID':
418  couchID=self.uploadConf(d['DQMConfigCacheID'],
419  str(n)+'harvesting',
420  d['CouchURL']
421  )
422  print d['DQMConfigCacheID'],"uploaded to couchDB for",str(n),"with ID",couchID
423  d['DQMConfigCacheID']=couchID
424 
def MatrixInjector.MatrixInjector.uploadConf (   self,
  filePath,
  label,
  where 
)

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

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

Member Data Documentation

MatrixInjector.MatrixInjector.chainDicts

Definition at line 153 of file MatrixInjector.py.

Referenced by MatrixInjector.MatrixInjector.prepare().

MatrixInjector.MatrixInjector.couch

Definition at line 67 of file MatrixInjector.py.

MatrixInjector.MatrixInjector.couchCache

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

Definition at line 59 of file MatrixInjector.py.

MatrixInjector.MatrixInjector.defaultChain

Definition at line 86 of file MatrixInjector.py.

Referenced by MatrixInjector.MatrixInjector.prepare().

MatrixInjector.MatrixInjector.defaultHarvest

Definition at line 113 of file MatrixInjector.py.

Referenced by MatrixInjector.MatrixInjector.prepare().

MatrixInjector.MatrixInjector.defaultInput

Definition at line 131 of file MatrixInjector.py.

Referenced by MatrixInjector.MatrixInjector.prepare().

MatrixInjector.MatrixInjector.defaultScratch

Definition at line 119 of file MatrixInjector.py.

Referenced by MatrixInjector.MatrixInjector.prepare().

MatrixInjector.MatrixInjector.defaultTask

Definition at line 141 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 71 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 72 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(), core.AutoHandle.AutoHandle.ReallyLoad(), Vispa.Plugins.ConfigEditor.ToolDataAccessor.ToolDataAccessor.updateProcess(), MatrixInjector.MatrixInjector.uploadConf(), and Vispa.Plugins.ConfigEditor.ConfigDataAccessor.ConfigDataAccessor.usedBy().

MatrixInjector.MatrixInjector.speciallabel

Definition at line 73 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 70 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__(), validation.Sample.datasetpattern(), validation.Sample.filename(), 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().