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

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

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

Definition at line 404 of file MatrixInjector.py.

References MatrixInjector.MatrixInjector.uploadConf().

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

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

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