CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Public Attributes | Private Attributes
ConfigBuilder.ConfigBuilder Class Reference
Inheritance diagram for ConfigBuilder.ConfigBuilder:

Classes

class  MassSearchReplaceProcessNameVisitor
 

Public Member Functions

def __init__ (self, options, process=None, with_output=False, with_input=False)
 
def addCommon (self)
 
def addConditions (self)
 
def addCustomise (self, unsch=0)
 
def addCustomiseCmdLine (self)
 
def addExtraStream (self, name, stream, workflow='full')
 
def addMaxEvents (self)
 
def addOutput (self)
 
def addSource (self)
 
def addStandardSequences (self)
 
def build_production_info (self, evt_type, evtnumber)
 
def completeInputCommand (self)
 
def create_process (self)
 
def define_Configs (self)
 
def executeAndRemember (self, command)
 
def expandMapping (self, seqList, mapping, index=None)
 
def finalizeFastSimHLT (self)
 
def load (self, includeFile)
 
def loadAndRemember (self, includeFile)
 
def loadDefaultOrSpecifiedCFF (self, sequence, defaultCFF)
 
def prepare (self, doChecking=False)
 
def prepare_ALCA (self, sequence=None, workflow='full')
 
def prepare_ALCAHARVEST (self, sequence=None)
 
def prepare_ALCAOUTPUT (self, sequence=None)
 
def prepare_ALCAPRODUCER (self, sequence=None)
 
def prepare_CFWRITER (self, sequence=None)
 
def prepare_DATAMIX (self, sequence=None)
 
def prepare_DIGI (self, sequence=None)
 
def prepare_DIGI2RAW (self, sequence=None)
 
def prepare_DQM (self, sequence='DQMOffline')
 
def prepare_EI (self, sequence=None)
 
def prepare_ENDJOB (self, sequence='endOfProcess')
 
def prepare_FILTER (self, sequence=None)
 
def prepare_GEN (self, sequence=None)
 
def prepare_HARVESTING (self, sequence=None)
 
def prepare_HLT (self, sequence=None)
 
def prepare_L1 (self, sequence=None)
 
def prepare_L1HwVal (self, sequence='L1HwVal')
 
def prepare_L1Reco (self, sequence="L1Reco")
 
def prepare_L1REPACK (self, sequence=None)
 
def prepare_L1TrackTrigger (self, sequence="L1TrackTrigger")
 
def prepare_LHE (self, sequence=None)
 
def prepare_NANO (self, sequence="nanoAOD")
 
def prepare_PAT (self, sequence="miniAOD")
 
def prepare_PATFILTER (self, sequence=None)
 
def prepare_PATGEN (self, sequence="miniGEN")
 
def prepare_POSTRECO (self, sequence=None)
 
def prepare_RAW2DIGI (self, sequence="RawToDigi")
 
def prepare_RAW2RECO (self, sequence=None)
 
def prepare_RECO (self, sequence="reconstruction")
 
def prepare_RECOBEFMIX (self, sequence="reconstruction")
 
def prepare_RECOSIM (self, sequence="recosim")
 
def prepare_REPACK (self, sequence=None)
 
def prepare_SIM (self, sequence=None)
 
def prepare_SKIM (self, sequence="all")
 
def prepare_USER (self, sequence=None)
 
def prepare_VALIDATION (self, sequence='validation')
 
def profileOptions (self)
 
def renameHLTprocessInSequence (self, sequence, proc=None, HLTprocess='HLT')
 
def renameInputTagsInSequence (self, sequence, oldT="rawDataCollector", newT="rawDataRepacker")
 
def scheduleSequence (self, seq, prefix, what='Path')
 
def scheduleSequenceAtEnd (self, seq, prefix)
 

Public Attributes

 addedObjects
 
 additionalCommands
 
 additionalOutputs
 
 ALCADefaultCFF
 
 ALCADefaultSeq
 
 ALCAHARVESTDefaultCFF
 
 ALCAHARVESTDefaultSeq
 
 AlCaPaths
 
 blacklist_paths
 
 CFWRITERDefaultCFF
 
 CFWRITERDefaultSeq
 
 conditionalPaths
 
 ConditionsDefaultCFF
 
 DATAMIXDefaultCFF
 
 DATAMIXDefaultSeq
 
 DIGI2RAWDefaultCFF
 
 DIGI2RAWDefaultSeq
 
 DIGIDefaultCFF
 
 DIGIDefaultSeq
 
 DQMDefaultSeq
 
 DQMOFFLINEDefaultCFF
 
 DQMSaverCFF
 
 EIDefaultCFF
 
 EIDefaultSeq
 
 ENDJOBDefaultCFF
 
 ENDJOBDefaultSeq
 
 EVTCONTDefaultCFF
 
 excludedPaths
 
 GENDefaultCFF
 
 GENDefaultSeq
 
 GeometryCFF
 
 geometryDBLabel
 
 HARVESTINGDefaultCFF
 
 HARVESTINGDefaultSeq
 
 HLTDefaultCFF
 
 HLTDefaultSeq
 
 imports
 
 inliner
 load the relevant part More...
 
 L1DefaultSeq
 
 L1EMDefaultCFF
 
 L1HwValDefaultCFF
 
 L1HwValDefaultSeq
 
 L1MENUDefaultCFF
 
 L1RecoDefaultCFF
 
 L1RecoDefaultSeq
 
 L1REPACKDefaultSeq
 
 L1TrackTriggerDefaultCFF
 
 L1TrackTriggerDefaultSeq
 
 labelsToAssociate
 
 LHEDefaultSeq
 
 magFieldCFF
 
 NANODefaultCFF
 
 NANODefaultSeq
 
 nextScheduleIsConditional
 put the filtering path in the schedule More...
 
 PATDefaultCFF
 
 PATDefaultSeq
 
 PATGENDefaultCFF
 
 PATGENDefaultSeq
 
 POSTRECODefaultCFF
 
 POSTRECODefaultSeq
 
 process
 adding standard sequences might change the inputEventContent option and therefore needs to be finalized after More...
 
 productionFilterSequence
 put it before all the other paths More...
 
 pythonCfgCode
 
 RAW2DIGIDefaultCFF
 
 RAW2DIGIDefaultSeq
 
 RAW2RECODefaultSeq
 
 RECOBEFMIXDefaultCFF
 
 RECOBEFMIXDefaultSeq
 
 RECODefaultCFF
 
 RECODefaultSeq
 
 RECOSIMDefaultCFF
 
 RECOSIMDefaultSeq
 
 REDIGIDefaultSeq
 
 REPACKDefaultCFF
 
 REPACKDefaultSeq
 
 runsAndWeights
 drop LHEXMLStringProduct on input to save memory if appropriate More...
 
 schedule
 
 SIMDefaultCFF
 
 SIMDefaultSeq
 
 SimGeometryCFF
 
 SKIMDefaultCFF
 
 stepKeys
 
 stepMap
 
 USERDefaultCFF
 
 USERDefaultSeq
 
 VALIDATIONDefaultCFF
 
 VALIDATIONDefaultSeq
 
 with_input
 
 with_output
 

Private Attributes

 _options
 

Detailed Description

The main building routines 

Definition at line 191 of file ConfigBuilder.py.

Constructor & Destructor Documentation

def ConfigBuilder.ConfigBuilder.__init__ (   self,
  options,
  process = None,
  with_output = False,
  with_input = False 
)
options taken from old cmsDriver and optparse 

Definition at line 194 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_FILTER().

194  def __init__(self, options, process = None, with_output = False, with_input = False ):
195  """options taken from old cmsDriver and optparse """
196 
197  options.outfile_name = options.dirout+options.fileout
198 
199  self._options = options
200 
201  if self._options.isData and options.isMC:
202  raise Exception("ERROR: You may specify only --data or --mc, not both")
203  #if not self._options.conditions:
204  # raise Exception("ERROR: No conditions given!\nPlease specify conditions. E.g. via --conditions=IDEAL_30X::All")
205 
206  # check that MEtoEDMConverter (running in ENDJOB) and DQMIO don't run in the same job
207  if 'ENDJOB' in self._options.step:
208  if (hasattr(self._options,"outputDefinition") and \
209  self._options.outputDefinition != '' and \
210  any(anyOf(['t','tier','dataTier'],outdic) == 'DQMIO' for outdic in eval(self._options.outputDefinition))) or \
211  (hasattr(self._options,"datatier") and \
212  self._options.datatier and \
213  'DQMIO' in self._options.datatier):
214  print("removing ENDJOB from steps since not compatible with DQMIO dataTier")
215  self._options.step=self._options.step.replace(',ENDJOB','')
216 
217 
218 
219  # what steps are provided by this class?
220  stepList = [re.sub(r'^prepare_', '', methodName) for methodName in ConfigBuilder.__dict__ if methodName.startswith('prepare_')]
221  self.stepMap={}
222  self.stepKeys=[]
223  for step in self._options.step.split(","):
224  if step=='': continue
225  stepParts = step.split(":")
226  stepName = stepParts[0]
227  if stepName not in stepList and not stepName.startswith('re'):
228  raise ValueError("Step "+stepName+" unknown")
229  if len(stepParts)==1:
230  self.stepMap[stepName]=""
231  elif len(stepParts)==2:
232  self.stepMap[stepName]=stepParts[1].split('+')
233  elif len(stepParts)==3:
234  self.stepMap[stepName]=(stepParts[2].split('+'),stepParts[1])
235  else:
236  raise ValueError("Step definition "+step+" invalid")
237  self.stepKeys.append(stepName)
238 
239  #print "map of steps is:",self.stepMap
240 
241  self.with_output = with_output
242  self.process=process
243 
244  if hasattr(self._options,"no_output_flag") and self._options.no_output_flag:
245  self.with_output = False
246  self.with_input = with_input
247  self.imports = []
248  self.create_process()
249  self.define_Configs()
250  self.schedule = list()
251 
252  # we are doing three things here:
253  # creating a process to catch errors
254  # building the code to re-create the process
255 
257  # TODO: maybe a list of to be dumped objects would help as well
258  self.blacklist_paths = []
259  self.addedObjects = []
261 
267 
bool any(const std::vector< T > &v, const T &what)
Definition: ECalSD.cc:37
process
adding standard sequences might change the inputEventContent option and therefore needs to be finaliz...
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:65
def anyOf(listOfKeys, dict, opt=None)
productionFilterSequence
put it before all the other paths
def __init__(self, options, process=None, with_output=False, with_input=False)
double split
Definition: MVATrainer.cc:139
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run
nextScheduleIsConditional
put the filtering path in the schedule

Member Function Documentation

def ConfigBuilder.ConfigBuilder.addCommon (   self)

Definition at line 334 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.profileOptions().

Referenced by ConfigBuilder.ConfigBuilder.prepare().

334  def addCommon(self):
335  if 'HARVESTING' in self.stepMap.keys() or 'ALCAHARVEST' in self.stepMap.keys():
336  self.process.options = cms.untracked.PSet( Rethrow = cms.untracked.vstring('ProductNotFound'),fileMode = cms.untracked.string('FULLMERGE'))
337  else:
338  self.process.options = cms.untracked.PSet( )
339 
340  self.addedObjects.append(("","options"))
341 
342  if self._options.lazy_download:
343  self.process.AdaptorConfig = cms.Service("AdaptorConfig",
344  stats = cms.untracked.bool(True),
345  enable = cms.untracked.bool(True),
346  cacheHint = cms.untracked.string("lazy-download"),
347  readHint = cms.untracked.string("read-ahead-buffered")
348  )
349  self.addedObjects.append(("Setup lazy download","AdaptorConfig"))
350 
351  #self.process.cmsDriverCommand = cms.untracked.PSet( command=cms.untracked.string('cmsDriver.py '+self._options.arguments) )
352  #self.addedObjects.append(("what cmsDriver command was used","cmsDriverCommand"))
353 
354  if self._options.profile:
355  (start, interval, eventFormat, jobFormat)=self.profileOptions()
356  self.process.IgProfService = cms.Service("IgProfService",
357  reportFirstEvent = cms.untracked.int32(start),
358  reportEventInterval = cms.untracked.int32(interval),
359  reportToFileAtPostEvent = cms.untracked.string("| gzip -c > %s"%(eventFormat)),
360  reportToFileAtPostEndJob = cms.untracked.string("| gzip -c > %s"%(jobFormat)))
361  self.addedObjects.append(("Setup IGProf Service for profiling","IgProfService"))
362 
def ConfigBuilder.ConfigBuilder.addConditions (   self)
Add conditions to the process

Definition at line 806 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.ConditionsDefaultCFF, ConfigBuilder.ConfigBuilder.loadAndRemember(), and edm.print().

Referenced by ConfigBuilder.ConfigBuilder.prepare().

806  def addConditions(self):
807  """Add conditions to the process"""
808  if not self._options.conditions: return
809 
810  if 'FrontierConditions_GlobalTag' in self._options.conditions:
811  print('using FrontierConditions_GlobalTag in --conditions is not necessary anymore and will be deprecated soon. please update your command line')
812  self._options.conditions = self._options.conditions.replace("FrontierConditions_GlobalTag,",'')
813 
815  from Configuration.AlCa.GlobalTag import GlobalTag
816  self.process.GlobalTag = GlobalTag(self.process.GlobalTag, self._options.conditions, self._options.custom_conditions)
817  self.additionalCommands.append('from Configuration.AlCa.GlobalTag import GlobalTag')
818  self.additionalCommands.append('process.GlobalTag = GlobalTag(process.GlobalTag, %s, %s)' % (repr(self._options.conditions), repr(self._options.custom_conditions)))
819 
820 
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:65
def loadAndRemember(self, includeFile)
def ConfigBuilder.ConfigBuilder.addCustomise (   self,
  unsch = 0 
)
Include the customise code 

Definition at line 821 of file ConfigBuilder.py.

References FrontierConditions_GlobalTag_cff.file, join(), edm.print(), DTVdriftWorkflow.DTvdriftWorkflow.process, DTTtrigWorkflow.DTttrigWorkflow.process, DTWorkflow.DTWorkflow.process, ConfigBuilder.ConfigBuilder.process, and python.rootplot.root2matplotlib.replace().

Referenced by ConfigBuilder.ConfigBuilder.prepare().

821  def addCustomise(self,unsch=0):
822  """Include the customise code """
823 
824  custOpt=[]
825  if unsch==0:
826  for c in self._options.customisation_file:
827  custOpt.extend(c.split(","))
828  else:
829  for c in self._options.customisation_file_unsch:
830  custOpt.extend(c.split(","))
831 
832  custMap=DictTypes.SortedKeysDict()
833  for opt in custOpt:
834  if opt=='': continue
835  if opt.count('.')>1:
836  raise Exception("more than . in the specification:"+opt)
837  fileName=opt.split('.')[0]
838  if opt.count('.')==0: rest='customise'
839  else:
840  rest=opt.split('.')[1]
841  if rest=='py': rest='customise' #catch the case of --customise file.py
842 
843  if fileName in custMap:
844  custMap[fileName].extend(rest.split('+'))
845  else:
846  custMap[fileName]=rest.split('+')
847 
848  if len(custMap)==0:
849  final_snippet='\n'
850  else:
851  final_snippet='\n# customisation of the process.\n'
852 
853  allFcn=[]
854  for opt in custMap:
855  allFcn.extend(custMap[opt])
856  for fcn in allFcn:
857  if allFcn.count(fcn)!=1:
858  raise Exception("cannot specify twice "+fcn+" as a customisation method")
859 
860  for f in custMap:
861  # let python search for that package and do syntax checking at the same time
862  packageName = f.replace(".py","").replace("/",".")
863  __import__(packageName)
864  package = sys.modules[packageName]
865 
866  # now ask the package for its definition and pick .py instead of .pyc
867  customiseFile = re.sub(r'\.pyc$', '.py', package.__file__)
868 
869  final_snippet+='\n# Automatic addition of the customisation function from '+packageName+'\n'
870  if self._options.inline_custom:
871  for line in file(customiseFile,'r'):
872  if "import FWCore.ParameterSet.Config" in line:
873  continue
874  final_snippet += line
875  else:
876  final_snippet += 'from %s import %s \n'%(packageName,','.join(custMap[f]))
877  for fcn in custMap[f]:
878  print("customising the process with",fcn,"from",f)
879  if not hasattr(package,fcn):
880  #bound to fail at run time
881  raise Exception("config "+f+" has no function "+fcn)
882  #execute the command
883  self.process=getattr(package,fcn)(self.process)
884  #and print it in the configuration
885  final_snippet += "\n#call to customisation function "+fcn+" imported from "+packageName
886  final_snippet += "\nprocess = %s(process)\n"%(fcn,)
887 
888  if len(custMap)!=0:
889  final_snippet += '\n# End of customisation functions\n'
890 
891  ### now for a useful command
892  return final_snippet
893 
process
adding standard sequences might change the inputEventContent option and therefore needs to be finaliz...
def replace(string, replacements)
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:65
def addCustomise(self, unsch=0)
static std::string join(char **cmd)
Definition: RemoteFile.cc:18
def ConfigBuilder.ConfigBuilder.addCustomiseCmdLine (   self)

Definition at line 894 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.executeAndRemember().

Referenced by ConfigBuilder.ConfigBuilder.prepare().

895  final_snippet='\n# Customisation from command line\n'
896  if self._options.customise_commands:
897  import string
898  for com in self._options.customise_commands.split('\\n'):
899  com=string.lstrip(com)
900  self.executeAndRemember(com)
901  final_snippet +='\n'+com
902 
903  return final_snippet
904 
def executeAndRemember(self, command)
def ConfigBuilder.ConfigBuilder.addExtraStream (   self,
  name,
  stream,
  workflow = 'full' 
)

Definition at line 1125 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_SKIM().

1125  def addExtraStream(self,name,stream,workflow='full'):
1126  # define output module and go from there
1127  output = cms.OutputModule("PoolOutputModule")
1128  if stream.selectEvents.parameters_().__len__()!=0:
1129  output.SelectEvents = stream.selectEvents
1130  else:
1131  output.SelectEvents = cms.untracked.PSet()
1132  output.SelectEvents.SelectEvents=cms.vstring()
1133  if isinstance(stream.paths,tuple):
1134  for path in stream.paths:
1135  output.SelectEvents.SelectEvents.append(path.label())
1136  else:
1137  output.SelectEvents.SelectEvents.append(stream.paths.label())
1138 
1139 
1140 
1141  if isinstance(stream.content,str):
1142  evtPset=getattr(self.process,stream.content)
1143  for p in evtPset.parameters_():
1144  setattr(output,p,getattr(evtPset,p))
1145  if not self._options.inlineEventContent:
1146  def doNotInlineEventContent(instance,label = "process."+stream.content+".outputCommands"):
1147  return label
1148  output.outputCommands.__dict__["dumpPython"] = doNotInlineEventContent
1149  else:
1150  output.outputCommands = stream.content
1151 
1152 
1153  output.fileName = cms.untracked.string(self._options.dirout+stream.name+'.root')
1154 
1155  output.dataset = cms.untracked.PSet( dataTier = stream.dataTier,
1156  filterName = cms.untracked.string(stream.name))
1157 
1158  if self._options.filtername:
1159  output.dataset.filterName= cms.untracked.string(self._options.filtername+"_"+stream.name)
1160 
1161  #add an automatic flushing to limit memory consumption
1162  output.eventAutoFlushCompressedSize=cms.untracked.int32(5*1024*1024)
1163 
1164  if workflow in ("producers,full"):
1165  if isinstance(stream.paths,tuple):
1166  for path in stream.paths:
1167  self.schedule.append(path)
1168  else:
1169  self.schedule.append(stream.paths)
1170 
1171 
1172  # in case of relvals we don't want to have additional outputs
1173  if (not self._options.relval) and workflow in ("full","output"):
1174  self.additionalOutputs[name] = output
1175  setattr(self.process,name,output)
1176 
1177  if workflow == 'output':
1178  # adjust the select events to the proper trigger results from previous process
1179  filterList = output.SelectEvents.SelectEvents
1180  for i, filter in enumerate(filterList):
1181  filterList[i] = filter+":"+self._options.triggerResultsProcess
1182 
1183  return output
1184 
def addExtraStream(self, name, stream, workflow='full')
def ConfigBuilder.ConfigBuilder.addMaxEvents (   self)
Here we decide how many evts will be processed

Definition at line 363 of file ConfigBuilder.py.

References createfilelist.int.

Referenced by ConfigBuilder.ConfigBuilder.prepare().

363  def addMaxEvents(self):
364  """Here we decide how many evts will be processed"""
365  self.process.maxEvents=cms.untracked.PSet(input=cms.untracked.int32(int(self._options.number)))
366  if self._options.number_out:
367  self.process.maxEvents.output = cms.untracked.int32(int(self._options.number_out))
368  self.addedObjects.append(("","maxEvents"))
369 
def ConfigBuilder.ConfigBuilder.addOutput (   self)
Add output module to the process 

Definition at line 498 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.AlCaPaths, ConfigBuilder.anyOf(), ConfigBuilder.ConfigBuilder.executeAndRemember(), join(), miniAOD_tools.miniAOD_customizeOutput(), edm.print(), DTVdriftWorkflow.DTvdriftWorkflow.process, DTTtrigWorkflow.DTttrigWorkflow.process, DTWorkflow.DTWorkflow.process, ConfigBuilder.ConfigBuilder.process, python.rootplot.root2matplotlib.replace(), split, and ComparisonHelper.zip().

Referenced by ConfigBuilder.ConfigBuilder.prepare().

498  def addOutput(self):
499  """ Add output module to the process """
500  result=""
501  if self._options.outputDefinition:
502  if self._options.datatier:
503  print("--datatier & --eventcontent options ignored")
504 
505  #new output convention with a list of dict
506  outList = eval(self._options.outputDefinition)
507  for (id,outDefDict) in enumerate(outList):
508  outDefDictStr=outDefDict.__str__()
509  if not isinstance(outDefDict,dict):
510  raise Exception("--output needs to be passed a list of dict"+self._options.outputDefinition+" is invalid")
511  #requires option: tier
512  theTier=anyOf(['t','tier','dataTier'],outDefDict)
513  #optional option: eventcontent, filtername, selectEvents, moduleLabel, filename
514  ## event content
515  theStreamType=anyOf(['e','ec','eventContent','streamType'],outDefDict,theTier)
516  theFilterName=anyOf(['f','ftN','filterName'],outDefDict,'')
517  theSelectEvent=anyOf(['s','sE','selectEvents'],outDefDict,'')
518  theModuleLabel=anyOf(['l','mL','moduleLabel'],outDefDict,'')
519  theExtraOutputCommands=anyOf(['o','oC','outputCommands'],outDefDict,'')
520  # module label has a particular role
521  if not theModuleLabel:
522  tryNames=[theStreamType.replace(theTier.replace('-',''),'')+theTier.replace('-','')+'output',
523  theStreamType.replace(theTier.replace('-',''),'')+theTier.replace('-','')+theFilterName+'output',
524  theStreamType.replace(theTier.replace('-',''),'')+theTier.replace('-','')+theFilterName+theSelectEvent.split(',')[0].replace(':','for').replace(' ','')+'output'
525  ]
526  for name in tryNames:
527  if not hasattr(self.process,name):
528  theModuleLabel=name
529  break
530  if not theModuleLabel:
531  raise Exception("cannot find a module label for specification: "+outDefDictStr)
532  if id==0:
533  defaultFileName=self._options.outfile_name
534  else:
535  defaultFileName=self._options.outfile_name.replace('.root','_in'+theTier+'.root')
536 
537  theFileName=self._options.dirout+anyOf(['fn','fileName'],outDefDict,defaultFileName)
538  if not theFileName.endswith('.root'):
539  theFileName+='.root'
540 
541  if len(outDefDict):
542  raise Exception("unused keys from --output options: "+','.join(outDefDict.keys()))
543  if theStreamType=='DQMIO': theStreamType='DQM'
544  if theStreamType=='ALL':
545  theEventContent = cms.PSet(outputCommands = cms.untracked.vstring('keep *'))
546  else:
547  theEventContent = getattr(self.process, theStreamType+"EventContent")
548 
549 
550  addAlCaSelects=False
551  if theStreamType=='ALCARECO' and not theFilterName:
552  theFilterName='StreamALCACombined'
553  addAlCaSelects=True
554 
555  CppType='PoolOutputModule'
556  if self._options.timeoutOutput:
557  CppType='TimeoutPoolOutputModule'
558  if theStreamType=='DQM' and theTier=='DQMIO': CppType='DQMRootOutputModule'
559  output = cms.OutputModule(CppType,
560  theEventContent.clone(),
561  fileName = cms.untracked.string(theFileName),
562  dataset = cms.untracked.PSet(
563  dataTier = cms.untracked.string(theTier),
564  filterName = cms.untracked.string(theFilterName))
565  )
566  if not theSelectEvent and hasattr(self.process,'generation_step') and theStreamType!='LHE':
567  output.SelectEvents = cms.untracked.PSet(SelectEvents = cms.vstring('generation_step'))
568  if not theSelectEvent and hasattr(self.process,'filtering_step'):
569  output.SelectEvents = cms.untracked.PSet(SelectEvents = cms.vstring('filtering_step'))
570  if theSelectEvent:
571  output.SelectEvents =cms.untracked.PSet(SelectEvents = cms.vstring(theSelectEvent))
572 
573  if addAlCaSelects:
574  if not hasattr(output,'SelectEvents'):
575  output.SelectEvents=cms.untracked.PSet(SelectEvents=cms.vstring())
576  for alca in self.AlCaPaths:
577  output.SelectEvents.SelectEvents.extend(getattr(self.process,'OutALCARECO'+alca).SelectEvents.SelectEvents)
578 
579 
580  if hasattr(self.process,theModuleLabel):
581  raise Exception("the current process already has a module "+theModuleLabel+" defined")
582  #print "creating output module ",theModuleLabel
583  setattr(self.process,theModuleLabel,output)
584  outputModule=getattr(self.process,theModuleLabel)
585  setattr(self.process,theModuleLabel+'_step',cms.EndPath(outputModule))
586  path=getattr(self.process,theModuleLabel+'_step')
587  self.schedule.append(path)
588 
589  if not self._options.inlineEventContent and hasattr(self.process,theStreamType+"EventContent"):
590  def doNotInlineEventContent(instance,label = "cms.untracked.vstring(process."+theStreamType+"EventContent.outputCommands)"):
591  return label
592  outputModule.outputCommands.__dict__["dumpPython"] = doNotInlineEventContent
593  if theExtraOutputCommands:
594  if not isinstance(theExtraOutputCommands,list):
595  raise Exception("extra ouput command in --option must be a list of strings")
596  if hasattr(self.process,theStreamType+"EventContent"):
597  self.executeAndRemember('process.%s.outputCommands.extend(%s)'%(theModuleLabel,theExtraOutputCommands))
598  else:
599  outputModule.outputCommands.extend(theExtraOutputCommands)
600 
601  result+="\nprocess."+theModuleLabel+" = "+outputModule.dumpPython()
602 
603  ##ends the --output options model
604  return result
605 
606  streamTypes=self._options.eventcontent.split(',')
607  tiers=self._options.datatier.split(',')
608  if not self._options.outputDefinition and len(streamTypes)!=len(tiers):
609  raise Exception("number of event content arguments does not match number of datatier arguments")
610 
611  # if the only step is alca we don't need to put in an output
612  if self._options.step.split(',')[0].split(':')[0] == 'ALCA':
613  return "\n"
614 
615  for i,(streamType,tier) in enumerate(zip(streamTypes,tiers)):
616  if streamType=='': continue
617  if streamType == 'ALCARECO' and not 'ALCAPRODUCER' in self._options.step: continue
618  if streamType=='DQMIO': streamType='DQM'
619  eventContent=streamType
620  ## override streamType to eventContent in case NANOEDM
621  if streamType == "NANOEDMAOD" :
622  eventContent = "NANOAOD"
623  elif streamType == "NANOEDMAODSIM" :
624  eventContent = "NANOAODSIM"
625  theEventContent = getattr(self.process, eventContent+"EventContent")
626  if i==0:
627  theFileName=self._options.outfile_name
628  theFilterName=self._options.filtername
629  else:
630  theFileName=self._options.outfile_name.replace('.root','_in'+streamType+'.root')
631  theFilterName=self._options.filtername
632  CppType='PoolOutputModule'
633  if self._options.timeoutOutput:
634  CppType='TimeoutPoolOutputModule'
635  if streamType=='DQM' and tier=='DQMIO': CppType='DQMRootOutputModule'
636  if "NANOAOD" in streamType : CppType='NanoAODOutputModule'
637  output = cms.OutputModule(CppType,
638  theEventContent,
639  fileName = cms.untracked.string(theFileName),
640  dataset = cms.untracked.PSet(dataTier = cms.untracked.string(tier),
641  filterName = cms.untracked.string(theFilterName)
642  )
643  )
644  if hasattr(self.process,"generation_step") and streamType!='LHE':
645  output.SelectEvents = cms.untracked.PSet(SelectEvents = cms.vstring('generation_step'))
646  if hasattr(self.process,"filtering_step"):
647  output.SelectEvents = cms.untracked.PSet(SelectEvents = cms.vstring('filtering_step'))
648 
649  if streamType=='ALCARECO':
650  output.dataset.filterName = cms.untracked.string('StreamALCACombined')
651 
652  if "MINIAOD" in streamType:
653  from PhysicsTools.PatAlgos.slimming.miniAOD_tools import miniAOD_customizeOutput
655 
656  outputModuleName=streamType+'output'
657  setattr(self.process,outputModuleName,output)
658  outputModule=getattr(self.process,outputModuleName)
659  setattr(self.process,outputModuleName+'_step',cms.EndPath(outputModule))
660  path=getattr(self.process,outputModuleName+'_step')
661  self.schedule.append(path)
662 
663  if self._options.outputCommands and streamType!='DQM':
664  for evct in self._options.outputCommands.split(','):
665  if not evct: continue
666  self.executeAndRemember("process.%s.outputCommands.append('%s')"%(outputModuleName,evct.strip()))
667 
668  if not self._options.inlineEventContent:
669  tmpstreamType=streamType
670  if "NANOEDM" in tmpstreamType :
671  tmpstreamType=tmpstreamType.replace("NANOEDM","NANO")
672  def doNotInlineEventContent(instance,label = "process."+tmpstreamType+"EventContent.outputCommands"):
673  return label
674  outputModule.outputCommands.__dict__["dumpPython"] = doNotInlineEventContent
675 
676  result+="\nprocess."+outputModuleName+" = "+outputModule.dumpPython()
677 
678  return result
679 
process
adding standard sequences might change the inputEventContent option and therefore needs to be finaliz...
def replace(string, replacements)
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:65
OutputIterator zip(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp)
def anyOf(listOfKeys, dict, opt=None)
static std::string join(char **cmd)
Definition: RemoteFile.cc:18
def miniAOD_customizeOutput(out)
double split
Definition: MVATrainer.cc:139
def executeAndRemember(self, command)
def ConfigBuilder.ConfigBuilder.addSource (   self)
Here the source is built. Priority: file, generator

Definition at line 370 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder._options, ConfigBuilder.filesFromDASQuery(), ConfigBuilder.filesFromList(), createfilelist.int, edm.print(), split, and ConfigBuilder.ConfigBuilder.stepMap.

Referenced by ConfigBuilder.ConfigBuilder.prepare().

370  def addSource(self):
371  """Here the source is built. Priority: file, generator"""
372  self.addedObjects.append(("Input source","source"))
373 
374  def filesFromOption(self):
375  for entry in self._options.filein.split(','):
376  print("entry",entry)
377  if entry.startswith("filelist:"):
378  filesFromList(entry[9:],self.process.source)
379  elif entry.startswith("dbs:") or entry.startswith("das:"):
380  filesFromDASQuery('file dataset = %s'%(entry[4:]),self._options.dasoption,self.process.source)
381  else:
382  self.process.source.fileNames.append(self._options.dirin+entry)
383  if self._options.secondfilein:
384  if not hasattr(self.process.source,"secondaryFileNames"):
385  raise Exception("--secondfilein not compatible with "+self._options.filetype+"input type")
386  for entry in self._options.secondfilein.split(','):
387  print("entry",entry)
388  if entry.startswith("filelist:"):
389  self.process.source.secondaryFileNames.extend((filesFromList(entry[9:]))[0])
390  elif entry.startswith("dbs:") or entry.startswith("das:"):
391  self.process.source.secondaryFileNames.extend((filesFromDASQuery('file dataset = %s'%(entry[4:]),self._options.dasoption))[0])
392  else:
393  self.process.source.secondaryFileNames.append(self._options.dirin+entry)
394 
395  if self._options.filein or self._options.dasquery:
396  if self._options.filetype == "EDM":
397  self.process.source=cms.Source("PoolSource",
398  fileNames = cms.untracked.vstring(),
399  secondaryFileNames= cms.untracked.vstring())
400  filesFromOption(self)
401  elif self._options.filetype == "DAT":
402  self.process.source=cms.Source("NewEventStreamFileReader",fileNames = cms.untracked.vstring())
403  filesFromOption(self)
404  elif self._options.filetype == "LHE":
405  self.process.source=cms.Source("LHESource", fileNames = cms.untracked.vstring())
406  if self._options.filein.startswith("lhe:"):
407  #list the article directory automatically
408  args=self._options.filein.split(':')
409  article=args[1]
410  print('LHE input from article ',article)
411  location='/store/lhe/'
412  import os
413  textOfFiles=os.popen('cmsLHEtoEOSManager.py -l '+article)
414  for line in textOfFiles:
415  for fileName in [x for x in line.split() if '.lhe' in x]:
416  self.process.source.fileNames.append(location+article+'/'+fileName)
417  #check first if list of LHE files is loaded (not empty)
418  if len(line)<2:
419  print('Issue to load LHE files, please check and try again.')
420  sys.exit(-1)
421  #Additional check to protect empty fileNames in process.source
422  if len(self.process.source.fileNames)==0:
423  print('Issue with empty filename, but can pass line check')
424  sys.exit(-1)
425  if len(args)>2:
426  self.process.source.skipEvents = cms.untracked.uint32(int(args[2]))
427  else:
428  filesFromOption(self)
429 
430  elif self._options.filetype == "DQM":
431  self.process.source=cms.Source("DQMRootSource",
432  fileNames = cms.untracked.vstring())
433  filesFromOption(self)
434 
435  elif self._options.filetype == "DQMDAQ":
436  # FIXME: how to configure it if there are no input files specified?
437  self.process.source=cms.Source("DQMStreamerReader")
438 
439 
440  if ('HARVESTING' in self.stepMap.keys() or 'ALCAHARVEST' in self.stepMap.keys()) and (not self._options.filetype == "DQM"):
441  self.process.source.processingMode = cms.untracked.string("RunsAndLumis")
442 
443  if self._options.dasquery!='':
444  self.process.source=cms.Source("PoolSource", fileNames = cms.untracked.vstring(),secondaryFileNames = cms.untracked.vstring())
445  filesFromDASQuery(self._options.dasquery,self._options.dasoption,self.process.source)
446 
447  if ('HARVESTING' in self.stepMap.keys() or 'ALCAHARVEST' in self.stepMap.keys()) and (not self._options.filetype == "DQM"):
448  self.process.source.processingMode = cms.untracked.string("RunsAndLumis")
449 
450  ##drop LHEXMLStringProduct on input to save memory if appropriate
451  if 'GEN' in self.stepMap.keys():
452  if self._options.inputCommands:
453  self._options.inputCommands+=',drop LHEXMLStringProduct_*_*_*,'
454  else:
455  self._options.inputCommands='keep *, drop LHEXMLStringProduct_*_*_*,'
456 
457  if self.process.source and self._options.inputCommands:
458  if not hasattr(self.process.source,'inputCommands'): self.process.source.inputCommands=cms.untracked.vstring()
459  for command in self._options.inputCommands.split(','):
460  # remove whitespace around the keep/drop statements
461  command = command.strip()
462  if command=='': continue
463  self.process.source.inputCommands.append(command)
464  if not self._options.dropDescendant:
465  self.process.source.dropDescendantsOfDroppedBranches = cms.untracked.bool(False)
466 
467  if self._options.lumiToProcess:
468  import FWCore.PythonUtilities.LumiList as LumiList
469  self.process.source.lumisToProcess = cms.untracked.VLuminosityBlockRange( LumiList.LumiList(self._options.lumiToProcess).getCMSSWString().split(',') )
470 
471  if 'GEN' in self.stepMap.keys() or 'LHE' in self.stepMap or (not self._options.filein and hasattr(self._options, "evt_type")):
472  if self.process.source is None:
473  self.process.source=cms.Source("EmptySource")
474 
475  # modify source in case of run-dependent MC
476  self.runsAndWeights=None
477  if self._options.runsAndWeightsForMC or self._options.runsScenarioForMC :
478  if not self._options.isMC :
479  raise Exception("options --runsAndWeightsForMC and --runsScenarioForMC are only valid for MC")
480  if self._options.runsAndWeightsForMC:
481  self.runsAndWeights = eval(self._options.runsAndWeightsForMC)
482  else:
483  from Configuration.StandardSequences.RunsAndWeights import RunsAndWeights
484  if isinstance(RunsAndWeights[self._options.runsScenarioForMC], str):
485  __import__(RunsAndWeights[self._options.runsScenarioForMC])
486  self.runsAndWeights = sys.modules[RunsAndWeights[self._options.runsScenarioForMC]].runProbabilityDistribution
487  else:
488  self.runsAndWeights = RunsAndWeights[self._options.runsScenarioForMC]
489 
490  if self.runsAndWeights:
491  import SimGeneral.Configuration.ThrowAndSetRandomRun as ThrowAndSetRandomRun
493  self.additionalCommands.append('import SimGeneral.Configuration.ThrowAndSetRandomRun as ThrowAndSetRandomRun')
494  self.additionalCommands.append('ThrowAndSetRandomRun.throwAndSetRandomRun(process.source,%s)'%(self.runsAndWeights))
495 
496  return
497 
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:65
def filesFromDASQuery(query, option="", s=None)
runsAndWeights
drop LHEXMLStringProduct on input to save memory if appropriate
def throwAndSetRandomRun(source, runsAndProbs)
def filesFromList(fileName, s=None)
double split
Definition: MVATrainer.cc:139
def ConfigBuilder.ConfigBuilder.addStandardSequences (   self)
Add selected standard sequences to the process

Definition at line 680 of file ConfigBuilder.py.

References TriggerAnalyzer.__str__(), Mixing.defineMixing(), ConfigBuilder.ConfigBuilder.executeAndRemember(), ConfigBuilder.filesFromDASQuery(), ConfigBuilder.filesFromList(), ConfigBuilder.ConfigBuilder.GeometryCFF, ConfigBuilder.ConfigBuilder.geometryDBLabel, join(), ConfigBuilder.ConfigBuilder.loadAndRemember(), ConfigBuilder.ConfigBuilder.magFieldCFF, edm.print(), ConfigBuilder.ConfigBuilder.SimGeometryCFF, ConfigBuilder.ConfigBuilder.stepKeys, and ConfigBuilder.ConfigBuilder.stepMap.

Referenced by ConfigBuilder.ConfigBuilder.prepare().

681  """
682  Add selected standard sequences to the process
683  """
684  # load the pile up file
685  if self._options.pileup:
686  pileupSpec=self._options.pileup.split(',')[0]
687 
688  # Does the requested pile-up scenario exist?
689  from Configuration.StandardSequences.Mixing import Mixing,defineMixing
690  if not pileupSpec in Mixing and '.' not in pileupSpec and 'file:' not in pileupSpec:
691  message = pileupSpec+' is not a know mixing scenario:\n available are: '+'\n'.join(Mixing.keys())
692  raise Exception(message)
693 
694  # Put mixing parameters in a dictionary
695  if '.' in pileupSpec:
696  mixingDict={'file':pileupSpec}
697  elif pileupSpec.startswith('file:'):
698  mixingDict={'file':pileupSpec[5:]}
699  else:
700  import copy
701  mixingDict=copy.copy(Mixing[pileupSpec])
702  if len(self._options.pileup.split(','))>1:
703  mixingDict.update(eval(self._options.pileup[self._options.pileup.find(',')+1:]))
704 
705  # Load the pu cfg file corresponding to the requested pu scenario
706  if 'file:' in pileupSpec:
707  #the file is local
708  self.process.load(mixingDict['file'])
709  print("inlining mixing module configuration")
710  self._options.inlineObjets+=',mix'
711  else:
712  self.loadAndRemember(mixingDict['file'])
713 
714  mixingDict.pop('file')
715  if not "DATAMIX" in self.stepMap.keys(): # when DATAMIX is present, pileup_input refers to pre-mixed GEN-RAW
716  if self._options.pileup_input:
717  if self._options.pileup_input.startswith('dbs:') or self._options.pileup_input.startswith('das:'):
718  mixingDict['F']=filesFromDASQuery('file dataset = %s'%(self._options.pileup_input[4:],),self._options.pileup_dasoption)[0]
719  elif self._options.pileup_input.startswith("filelist:"):
720  mixingDict['F']=(filesFromList(self._options.pileup_input[9:]))[0]
721  else:
722  mixingDict['F']=self._options.pileup_input.split(',')
723  specialization=defineMixing(mixingDict)
724  for command in specialization:
725  self.executeAndRemember(command)
726  if len(mixingDict)!=0:
727  raise Exception('unused mixing specification: '+mixingDict.keys().__str__())
728 
729 
730  # load the geometry file
731  try:
732  if len(self.stepMap):
733  self.loadAndRemember(self.GeometryCFF)
734  if ('SIM' in self.stepMap or 'reSIM' in self.stepMap) and not self._options.fast:
736  if self.geometryDBLabel:
737  self.executeAndRemember('process.XMLFromDBSource.label = cms.string("%s")'%(self.geometryDBLabel))
738  except ImportError:
739  print("Geometry option",self._options.geometry,"unknown.")
740  raise
741 
742  if len(self.stepMap):
743  self.loadAndRemember(self.magFieldCFF)
744 
745  for stepName in self.stepKeys:
746  stepSpec = self.stepMap[stepName]
747  print("Step:", stepName,"Spec:",stepSpec)
748  if stepName.startswith('re'):
749  ##add the corresponding input content
750  if stepName[2:] not in self._options.donotDropOnInput:
751  self._options.inputEventContent='%s,%s'%(stepName.upper(),self._options.inputEventContent)
752  stepName=stepName[2:]
753  if stepSpec=="":
754  getattr(self,"prepare_"+stepName)(sequence = getattr(self,stepName+"DefaultSeq"))
755  elif isinstance(stepSpec, list):
756  getattr(self,"prepare_"+stepName)(sequence = '+'.join(stepSpec))
757  elif isinstance(stepSpec, tuple):
758  getattr(self,"prepare_"+stepName)(sequence = ','.join([stepSpec[1],'+'.join(stepSpec[0])]))
759  else:
760  raise ValueError("Invalid step definition")
761 
762  if self._options.restoreRNDSeeds!=False:
763  #it is either True, or a process name
764  if self._options.restoreRNDSeeds==True:
765  self.executeAndRemember('process.RandomNumberGeneratorService.restoreStateLabel=cms.untracked.string("randomEngineStateProducer")')
766  else:
767  self.executeAndRemember('process.RandomNumberGeneratorService.restoreStateTag=cms.untracked.InputTag("randomEngineStateProducer","","%s")'%(self._options.restoreRNDSeeds))
768  if self._options.inputEventContent or self._options.inputCommands:
769  if self._options.inputCommands:
770  self._options.inputCommands+='keep *_randomEngineStateProducer_*_*,'
771  else:
772  self._options.inputCommands='keep *_randomEngineStateProducer_*_*,'
773 
774 
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:65
def filesFromDASQuery(query, option="", s=None)
def loadAndRemember(self, includeFile)
static std::string join(char **cmd)
Definition: RemoteFile.cc:18
def defineMixing(dict)
Definition: Mixing.py:182
def filesFromList(fileName, s=None)
def executeAndRemember(self, command)
def ConfigBuilder.ConfigBuilder.build_production_info (   self,
  evt_type,
  evtnumber 
)
Add useful info for the production. 

Definition at line 2046 of file ConfigBuilder.py.

References str.

Referenced by ConfigBuilder.ConfigBuilder.prepare().

2046  def build_production_info(self, evt_type, evtnumber):
2047  """ Add useful info for the production. """
2048  self.process.configurationMetadata=cms.untracked.PSet\
2049  (version=cms.untracked.string("$Revision: 1.19 $"),
2050  name=cms.untracked.string("Applications"),
2051  annotation=cms.untracked.string(evt_type+ " nevts:"+str(evtnumber))
2052  )
2053 
2054  self.addedObjects.append(("Production Info","configurationMetadata"))
2055 
2056 
def build_production_info(self, evt_type, evtnumber)
#define str(s)
def ConfigBuilder.ConfigBuilder.completeInputCommand (   self)

Definition at line 775 of file ConfigBuilder.py.

References DTVdriftWorkflow.DTvdriftWorkflow.process, DTTtrigWorkflow.DTttrigWorkflow.process, DTWorkflow.DTWorkflow.process, and ConfigBuilder.ConfigBuilder.process.

Referenced by ConfigBuilder.ConfigBuilder.prepare().

776  if self._options.inputEventContent:
777  import copy
778  def dropSecondDropStar(iec):
779  #drop occurence of 'drop *' in the list
780  count=0
781  for item in iec:
782  if item=='drop *':
783  if count!=0:
784  iec.remove(item)
785  count+=1
786 
787 
788  ## allow comma separated input eventcontent
789  if not hasattr(self.process.source,'inputCommands'): self.process.source.inputCommands=cms.untracked.vstring()
790  for evct in self._options.inputEventContent.split(','):
791  if evct=='': continue
792  theEventContent = getattr(self.process, evct+"EventContent")
793  if hasattr(theEventContent,'outputCommands'):
794  self.process.source.inputCommands.extend(copy.copy(theEventContent.outputCommands))
795  if hasattr(theEventContent,'inputCommands'):
796  self.process.source.inputCommands.extend(copy.copy(theEventContent.inputCommands))
797 
798  dropSecondDropStar(self.process.source.inputCommands)
799 
800  if not self._options.dropDescendant:
801  self.process.source.dropDescendantsOfDroppedBranches = cms.untracked.bool(False)
802 
803 
804  return
805 
process
adding standard sequences might change the inputEventContent option and therefore needs to be finaliz...
def ConfigBuilder.ConfigBuilder.create_process (   self)

Definition at line 2057 of file ConfigBuilder.py.

2057  def create_process(self):
2058  self.pythonCfgCode = "# Auto generated configuration file\n"
2059  self.pythonCfgCode += "# using: \n# "+__version__[1:-1]+"\n# "+__source__[1:-1]+'\n'
2060  self.pythonCfgCode += "# with command line options: "+self._options.arguments+'\n'
2061  self.pythonCfgCode += "import FWCore.ParameterSet.Config as cms\n\n"
2062 
2063  # now set up the modifies
2064  modifiers=[]
2065  modifierStrings=[]
2066  modifierImports=['from Configuration.StandardSequences.Eras import eras']
2067 
2068  if hasattr(self._options,"era") and self._options.era :
2069  # Multiple eras can be specified in a comma seperated list
2070  from Configuration.StandardSequences.Eras import eras
2071  for requestedEra in self._options.era.split(",") :
2072  modifierStrings.append("eras."+requestedEra)
2073  modifiers.append(getattr(eras,requestedEra))
2074 
2075 
2076  if hasattr(self._options,"procModifiers") and self._options.procModifiers:
2077  import importlib
2078  thingsImported=[]
2079  for pm in self._options.procModifiers.split(','):
2080  modifierStrings.append(pm)
2081  modifierImports.append('from Configuration.ProcessModifiers.'+pm+'_cff import '+pm)
2082  modifiers.append(getattr(importlib.import_module('Configuration.ProcessModifiers.'+pm+'_cff'),pm))
2083 
2084  self.pythonCfgCode += '\n'.join(modifierImports)+'\n\n'
2085  self.pythonCfgCode += "process = cms.Process('"+self._options.name+"'" # Start of the line, finished after the loop
2086 
2087 
2088  if len(modifierStrings)>0:
2089  self.pythonCfgCode+= ','+','.join(modifierStrings)
2090  self.pythonCfgCode+=')\n\n'
2091 
2092  #yes, the cfg code gets out of sync here if a process is passed in. That could be fixed in the future
2093  #assuming there is some way for the fwk to get the list of modifiers (and their stringified name)
2094  if self.process == None:
2095  if len(modifiers)>0:
2096  self.process = cms.Process(self._options.name,*modifiers)
2097  else:
2098  self.process = cms.Process(self._options.name)
2099 
2100 
2101 
2102 
process
adding standard sequences might change the inputEventContent option and therefore needs to be finaliz...
static std::string join(char **cmd)
Definition: RemoteFile.cc:18
def ConfigBuilder.ConfigBuilder.define_Configs (   self)

Definition at line 909 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.loadAndRemember(), edm.print(), and ConfigBuilder.ConfigBuilder.stepMap.

909  def define_Configs(self):
910  if len(self.stepMap):
911  self.loadAndRemember('Configuration/StandardSequences/Services_cff')
912  if self._options.particleTable not in defaultOptions.particleTableList:
913  print('Invalid particle table provided. Options are:')
914  print(defaultOptions.particleTable)
915  sys.exit(-1)
916  else:
917  if len(self.stepMap):
918  self.loadAndRemember('SimGeneral.HepPDTESSource.'+self._options.particleTable+'_cfi')
919 
920  self.loadAndRemember('FWCore/MessageService/MessageLogger_cfi')
921 
922  self.ALCADefaultCFF="Configuration/StandardSequences/AlCaRecoStreams_cff"
923  self.GENDefaultCFF="Configuration/StandardSequences/Generator_cff"
924  self.SIMDefaultCFF="Configuration/StandardSequences/Sim_cff"
925  self.DIGIDefaultCFF="Configuration/StandardSequences/Digi_cff"
926  self.DIGI2RAWDefaultCFF="Configuration/StandardSequences/DigiToRaw_cff"
927  self.L1EMDefaultCFF='Configuration/StandardSequences/SimL1Emulator_cff'
928  self.L1MENUDefaultCFF="Configuration/StandardSequences/L1TriggerDefaultMenu_cff"
929  self.HLTDefaultCFF="Configuration/StandardSequences/HLTtable_cff"
930  self.RAW2DIGIDefaultCFF="Configuration/StandardSequences/RawToDigi_Data_cff"
931  if self._options.isRepacked: self.RAW2DIGIDefaultCFF="Configuration/StandardSequences/RawToDigi_DataMapper_cff"
932  self.L1RecoDefaultCFF="Configuration/StandardSequences/L1Reco_cff"
933  self.L1TrackTriggerDefaultCFF="Configuration/StandardSequences/L1TrackTrigger_cff"
934  self.RECODefaultCFF="Configuration/StandardSequences/Reconstruction_Data_cff"
935  self.RECOSIMDefaultCFF="Configuration/StandardSequences/RecoSim_cff"
936  self.PATDefaultCFF="Configuration/StandardSequences/PAT_cff"
937  self.NANODefaultCFF="PhysicsTools/NanoAOD/nano_cff"
938  self.EIDefaultCFF=None
939  self.SKIMDefaultCFF="Configuration/StandardSequences/Skims_cff"
940  self.POSTRECODefaultCFF="Configuration/StandardSequences/PostRecoGenerator_cff"
941  self.VALIDATIONDefaultCFF="Configuration/StandardSequences/Validation_cff"
942  self.L1HwValDefaultCFF = "Configuration/StandardSequences/L1HwVal_cff"
943  self.DQMOFFLINEDefaultCFF="DQMOffline/Configuration/DQMOffline_cff"
944  self.HARVESTINGDefaultCFF="Configuration/StandardSequences/Harvesting_cff"
945  self.ALCAHARVESTDefaultCFF="Configuration/StandardSequences/AlCaHarvesting_cff"
946  self.ENDJOBDefaultCFF="Configuration/StandardSequences/EndOfProcess_cff"
947  self.ConditionsDefaultCFF = "Configuration/StandardSequences/FrontierConditions_GlobalTag_cff"
948  self.CFWRITERDefaultCFF = "Configuration/StandardSequences/CrossingFrameWriter_cff"
949  self.REPACKDefaultCFF="Configuration/StandardSequences/DigiToRaw_Repack_cff"
950 
951  if "DATAMIX" in self.stepMap.keys():
952  self.DATAMIXDefaultCFF="Configuration/StandardSequences/DataMixer"+self._options.datamix+"_cff"
953  self.DIGIDefaultCFF="Configuration/StandardSequences/DigiDM_cff"
954  self.DIGI2RAWDefaultCFF="Configuration/StandardSequences/DigiToRawDM_cff"
955  self.L1EMDefaultCFF='Configuration/StandardSequences/SimL1EmulatorDM_cff'
956 
957  self.ALCADefaultSeq=None
958  self.LHEDefaultSeq='externalLHEProducer'
959  self.GENDefaultSeq='pgen'
960  self.SIMDefaultSeq='psim'
961  self.DIGIDefaultSeq='pdigi'
963  self.DIGI2RAWDefaultSeq='DigiToRaw'
964  self.HLTDefaultSeq='GRun'
965  self.L1DefaultSeq=None
970  self.RAW2DIGIDefaultSeq='RawToDigi'
971  self.L1RecoDefaultSeq='L1Reco'
972  self.L1TrackTriggerDefaultSeq='L1TrackTrigger'
973  if self._options.fast or ('RAW2DIGI' in self.stepMap and 'RECO' in self.stepMap):
974  self.RECODefaultSeq='reconstruction'
975  else:
976  self.RECODefaultSeq='reconstruction_fromRECO'
977  self.RECOSIMDefaultSeq='recosim'
978  self.EIDefaultSeq='top'
980  self.L1HwValDefaultSeq='L1HwVal'
981  self.DQMDefaultSeq='DQMOffline'
983  self.ENDJOBDefaultSeq='endOfProcess'
984  self.REPACKDefaultSeq='DigiToRawRepack'
985  self.PATDefaultSeq='miniAOD'
986  self.PATGENDefaultSeq='miniGEN'
987  self.NANODefaultSeq='nanoSequence'
988 
989  self.EVTCONTDefaultCFF="Configuration/EventContent/EventContent_cff"
990 
991  if not self._options.beamspot:
992  self._options.beamspot=VtxSmearedDefaultKey
993 
994  # if its MC then change the raw2digi
995  if self._options.isMC==True:
996  self.RAW2DIGIDefaultCFF="Configuration/StandardSequences/RawToDigi_cff"
997  self.RECODefaultCFF="Configuration/StandardSequences/Reconstruction_cff"
998  self.PATDefaultCFF="Configuration/StandardSequences/PATMC_cff"
999  self.PATGENDefaultCFF="Configuration/StandardSequences/PATGEN_cff"
1000  self.DQMOFFLINEDefaultCFF="DQMOffline/Configuration/DQMOfflineMC_cff"
1001  self.ALCADefaultCFF="Configuration/StandardSequences/AlCaRecoStreamsMC_cff"
1002  self.NANODefaultSeq='nanoSequenceMC'
1003  else:
1004  self._options.beamspot = None
1005 
1006  #patch for gen, due to backward incompatibility
1007  if 'reGEN' in self.stepMap:
1008  self.GENDefaultSeq='fixGenInfo'
1009 
1010  if self._options.scenario=='cosmics':
1011  self._options.pileup='Cosmics'
1012  self.DIGIDefaultCFF="Configuration/StandardSequences/DigiCosmics_cff"
1013  self.RECODefaultCFF="Configuration/StandardSequences/ReconstructionCosmics_cff"
1014  self.SKIMDefaultCFF="Configuration/StandardSequences/SkimsCosmics_cff"
1015  self.EVTCONTDefaultCFF="Configuration/EventContent/EventContentCosmics_cff"
1016  self.VALIDATIONDefaultCFF="Configuration/StandardSequences/ValidationCosmics_cff"
1017  self.DQMOFFLINEDefaultCFF="DQMOffline/Configuration/DQMOfflineCosmics_cff"
1018  if self._options.isMC==True:
1019  self.DQMOFFLINEDefaultCFF="DQMOffline/Configuration/DQMOfflineCosmicsMC_cff"
1020  self.HARVESTINGDefaultCFF="Configuration/StandardSequences/HarvestingCosmics_cff"
1021  self.RECODefaultSeq='reconstructionCosmics'
1022  self.DQMDefaultSeq='DQMOfflineCosmics'
1023 
1024  if self._options.scenario=='HeavyIons':
1025  if not self._options.beamspot:
1026  self._options.beamspot=VtxSmearedHIDefaultKey
1027  self.HLTDefaultSeq = 'HIon'
1028  self.VALIDATIONDefaultCFF="Configuration/StandardSequences/ValidationHeavyIons_cff"
1029  self.VALIDATIONDefaultSeq=''
1030  self.EVTCONTDefaultCFF="Configuration/EventContent/EventContentHeavyIons_cff"
1031  self.RECODefaultCFF="Configuration/StandardSequences/ReconstructionHeavyIons_cff"
1032  self.RECODefaultSeq='reconstructionHeavyIons'
1033  self.ALCADefaultCFF = "Configuration/StandardSequences/AlCaRecoStreamsHeavyIons_cff"
1034  self.DQMOFFLINEDefaultCFF="DQMOffline/Configuration/DQMOfflineHeavyIons_cff"
1035  self.DQMDefaultSeq='DQMOfflineHeavyIons'
1036  self.SKIMDefaultCFF="Configuration/StandardSequences/SkimsHeavyIons_cff"
1037  self.HARVESTINGDefaultCFF="Configuration/StandardSequences/HarvestingHeavyIons_cff"
1038  if self._options.isMC==True:
1039  self.DQMOFFLINEDefaultCFF="DQMOffline/Configuration/DQMOfflineHeavyIonsMC_cff"
1040 
1041 
1043 
1044  self.USERDefaultSeq='user'
1045  self.USERDefaultCFF=None
1046 
1047  # the magnetic field
1048  if self._options.isData:
1049  if self._options.magField==defaultOptions.magField:
1050  print("magnetic field option forced to: AutoFromDBCurrent")
1051  self._options.magField='AutoFromDBCurrent'
1052  self.magFieldCFF = 'Configuration/StandardSequences/MagneticField_'+self._options.magField.replace('.','')+'_cff'
1053  self.magFieldCFF = self.magFieldCFF.replace("__",'_')
1054 
1055  # the geometry
1056  self.GeometryCFF='Configuration/StandardSequences/GeometryRecoDB_cff'
1058  simGeometry=''
1059  if self._options.fast:
1060  if 'start' in self._options.conditions.lower():
1061  self.GeometryCFF='FastSimulation/Configuration/Geometries_START_cff'
1062  else:
1063  self.GeometryCFF='FastSimulation/Configuration/Geometries_MC_cff'
1064  else:
1065  def inGeometryKeys(opt):
1066  from Configuration.StandardSequences.GeometryConf import GeometryConf
1067  if opt in GeometryConf:
1068  return GeometryConf[opt]
1069  else:
1070  return opt
1071 
1072  geoms=self._options.geometry.split(',')
1073  if len(geoms)==1: geoms=inGeometryKeys(geoms[0]).split(',')
1074  if len(geoms)==2:
1075  #may specify the reco geometry
1076  if '/' in geoms[1] or '_cff' in geoms[1]:
1077  self.GeometryCFF=geoms[1]
1078  else:
1079  self.GeometryCFF='Configuration/Geometry/Geometry'+geoms[1]+'_cff'
1080 
1081  if (geoms[0].startswith('DB:')):
1082  self.SimGeometryCFF='Configuration/StandardSequences/GeometrySimDB_cff'
1083  self.geometryDBLabel=geoms[0][3:]
1084  print("with DB:")
1085  else:
1086  if '/' in geoms[0] or '_cff' in geoms[0]:
1087  self.SimGeometryCFF=geoms[0]
1088  else:
1089  simGeometry=geoms[0]
1090  if self._options.gflash==True:
1091  self.SimGeometryCFF='Configuration/Geometry/Geometry'+geoms[0]+'GFlash_cff'
1092  else:
1093  self.SimGeometryCFF='Configuration/Geometry/Geometry'+geoms[0]+'_cff'
1094 
1095  # synchronize the geometry configuration and the FullSimulation sequence to be used
1096  if simGeometry not in defaultOptions.geometryExtendedOptions:
1097  self.SIMDefaultCFF="Configuration/StandardSequences/SimIdeal_cff"
1098 
1099  if self._options.scenario=='nocoll' or self._options.scenario=='cosmics':
1100  self.SIMDefaultCFF="Configuration/StandardSequences/SimNOBEAM_cff"
1101  self._options.beamspot='NoSmear'
1102 
1103  # fastsim requires some changes to the default cff files and sequences
1104  if self._options.fast:
1105  self.SIMDefaultCFF = 'FastSimulation.Configuration.SimIdeal_cff'
1106  self.RECODefaultCFF= 'FastSimulation.Configuration.Reconstruction_AftMix_cff'
1107  self.RECOBEFMIXDefaultCFF = 'FastSimulation.Configuration.Reconstruction_BefMix_cff'
1108  self.RECOBEFMIXDefaultSeq = 'reconstruction_befmix'
1109  self.DQMOFFLINEDefaultCFF="FastSimulation.Configuration.DQMOfflineMC_cff"
1110 
1111  # Mixing
1112  if self._options.pileup=='default':
1113  from Configuration.StandardSequences.Mixing import MixingDefaultKey
1114  self._options.pileup=MixingDefaultKey
1115 
1116 
1117  #not driven by a default cff anymore
1118  if self._options.isData:
1119  self._options.pileup=None
1120 
1121 
1123 
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:65
def loadAndRemember(self, includeFile)
static std::string join(char **cmd)
Definition: RemoteFile.cc:18
double split
Definition: MVATrainer.cc:139
def ConfigBuilder.ConfigBuilder.executeAndRemember (   self,
  command 
)
helper routine to remember replace statements

Definition at line 325 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.addCustomiseCmdLine(), ConfigBuilder.ConfigBuilder.addOutput(), ConfigBuilder.ConfigBuilder.addStandardSequences(), ConfigBuilder.ConfigBuilder.prepare_ALCAHARVEST(), ConfigBuilder.ConfigBuilder.prepare_DATAMIX(), ConfigBuilder.ConfigBuilder.prepare_DIGI(), ConfigBuilder.ConfigBuilder.prepare_GEN(), ConfigBuilder.ConfigBuilder.prepare_HLT(), ConfigBuilder.ConfigBuilder.prepare_SIM(), and ConfigBuilder.ConfigBuilder.prepare_VALIDATION().

325  def executeAndRemember(self, command):
326  """helper routine to remember replace statements"""
327  self.additionalCommands.append(command)
328  if not command.strip().startswith("#"):
329  # substitute: process.foo = process.bar -> self.process.foo = self.process.bar
330  import re
331  exec(re.sub(r"([^a-zA-Z_0-9]|^)(process)([^a-zA-Z_0-9])",r"\1self.process\3",command))
332  #exec(command.replace("process.","self.process."))
333 
def executeAndRemember(self, command)
def ConfigBuilder.ConfigBuilder.expandMapping (   self,
  seqList,
  mapping,
  index = None 
)

Definition at line 1909 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_ALCA(), ConfigBuilder.ConfigBuilder.prepare_ALCAHARVEST(), ConfigBuilder.ConfigBuilder.prepare_DQM(), ConfigBuilder.ConfigBuilder.prepare_SKIM(), and ConfigBuilder.ConfigBuilder.prepare_VALIDATION().

1909  def expandMapping(self,seqList,mapping,index=None):
1910  maxLevel=20
1911  level=0
1912  while '@' in repr(seqList) and level<maxLevel:
1913  level+=1
1914  for specifiedCommand in seqList:
1915  if specifiedCommand.startswith('@'):
1916  location=specifiedCommand[1:]
1917  if not location in mapping:
1918  raise Exception("Impossible to map "+location+" from "+repr(mapping))
1919  mappedTo=mapping[location]
1920  if index!=None:
1921  mappedTo=mappedTo[index]
1922  seqList.remove(specifiedCommand)
1923  seqList.extend(mappedTo.split('+'))
1924  break;
1925  if level==maxLevel:
1926  raise Exception("Could not fully expand "+repr(seqList)+" from "+repr(mapping))
1927 
def expandMapping(self, seqList, mapping, index=None)
def ConfigBuilder.ConfigBuilder.finalizeFastSimHLT (   self)

Definition at line 2041 of file ConfigBuilder.py.

2042  self.process.reconstruction = cms.Path(self.process.reconstructionWithFamos)
2043  self.schedule.append(self.process.reconstruction)
2044 
2045 
def ConfigBuilder.ConfigBuilder.load (   self,
  includeFile 
)

Definition at line 311 of file ConfigBuilder.py.

Referenced by MatrixToProcess.MatrixToProcess.getProcess(), MatrixToProcess.MatrixToProcess.listAll(), and ConfigBuilder.ConfigBuilder.prepare_FILTER().

311  def load(self,includeFile):
312  includeFile = includeFile.replace('/','.')
313  self.process.load(includeFile)
314  return sys.modules[includeFile]
315 
def load(self, includeFile)
def ConfigBuilder.ConfigBuilder.loadAndRemember (   self,
  includeFile 
)
helper routine to load am memorize imports

Definition at line 316 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.addConditions(), ConfigBuilder.ConfigBuilder.addStandardSequences(), ConfigBuilder.ConfigBuilder.define_Configs(), ConfigBuilder.ConfigBuilder.loadDefaultOrSpecifiedCFF(), ConfigBuilder.ConfigBuilder.prepare(), ConfigBuilder.ConfigBuilder.prepare_ALCAHARVEST(), ConfigBuilder.ConfigBuilder.prepare_CFWRITER(), ConfigBuilder.ConfigBuilder.prepare_DATAMIX(), ConfigBuilder.ConfigBuilder.prepare_DIGI(), ConfigBuilder.ConfigBuilder.prepare_GEN(), ConfigBuilder.ConfigBuilder.prepare_HLT(), ConfigBuilder.ConfigBuilder.prepare_L1(), ConfigBuilder.ConfigBuilder.prepare_L1REPACK(), ConfigBuilder.ConfigBuilder.prepare_PATFILTER(), ConfigBuilder.ConfigBuilder.prepare_POSTRECO(), and ConfigBuilder.ConfigBuilder.prepare_SIM().

316  def loadAndRemember(self, includeFile):
317  """helper routine to load am memorize imports"""
318  # we could make the imports a on-the-fly data method of the process instance itself
319  # not sure if the latter is a good idea
320  includeFile = includeFile.replace('/','.')
321  self.imports.append(includeFile)
322  self.process.load(includeFile)
323  return sys.modules[includeFile]
324 
def loadAndRemember(self, includeFile)
def ConfigBuilder.ConfigBuilder.loadDefaultOrSpecifiedCFF (   self,
  sequence,
  defaultCFF 
)

Definition at line 1190 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.loadAndRemember(), and edm.print().

Referenced by ConfigBuilder.ConfigBuilder.prepare_ALCA(), ConfigBuilder.ConfigBuilder.prepare_DIGI(), ConfigBuilder.ConfigBuilder.prepare_DIGI2RAW(), ConfigBuilder.ConfigBuilder.prepare_DQM(), ConfigBuilder.ConfigBuilder.prepare_EI(), ConfigBuilder.ConfigBuilder.prepare_ENDJOB(), ConfigBuilder.ConfigBuilder.prepare_GEN(), ConfigBuilder.ConfigBuilder.prepare_L1HwVal(), ConfigBuilder.ConfigBuilder.prepare_L1Reco(), ConfigBuilder.ConfigBuilder.prepare_L1TrackTrigger(), ConfigBuilder.ConfigBuilder.prepare_NANO(), ConfigBuilder.ConfigBuilder.prepare_PAT(), ConfigBuilder.ConfigBuilder.prepare_PATGEN(), ConfigBuilder.ConfigBuilder.prepare_RAW2DIGI(), ConfigBuilder.ConfigBuilder.prepare_RECO(), ConfigBuilder.ConfigBuilder.prepare_RECOBEFMIX(), ConfigBuilder.ConfigBuilder.prepare_RECOSIM(), ConfigBuilder.ConfigBuilder.prepare_REPACK(), ConfigBuilder.ConfigBuilder.prepare_SIM(), ConfigBuilder.ConfigBuilder.prepare_SKIM(), ConfigBuilder.ConfigBuilder.prepare_USER(), and ConfigBuilder.ConfigBuilder.prepare_VALIDATION().

1190  def loadDefaultOrSpecifiedCFF(self, sequence,defaultCFF):
1191  if ( len(sequence.split('.'))==1 ):
1192  l=self.loadAndRemember(defaultCFF)
1193  elif ( len(sequence.split('.'))==2 ):
1194  l=self.loadAndRemember(sequence.split('.')[0])
1195  sequence=sequence.split('.')[1]
1196  else:
1197  print("sub sequence configuration must be of the form dir/subdir/cff.a+b+c or cff.a")
1198  print(sequence,"not recognized")
1199  raise
1200  return l
1201 
def loadDefaultOrSpecifiedCFF(self, sequence, defaultCFF)
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:65
def loadAndRemember(self, includeFile)
def ConfigBuilder.ConfigBuilder.prepare (   self,
  doChecking = False 
)
Prepare the configuration string and add missing pieces.

Definition at line 2103 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.addCommon(), ConfigBuilder.ConfigBuilder.addConditions(), ConfigBuilder.ConfigBuilder.addCustomise(), ConfigBuilder.ConfigBuilder.addCustomiseCmdLine(), ConfigBuilder.ConfigBuilder.addedObjects, ConfigBuilder.ConfigBuilder.additionalCommands, ConfigBuilder.ConfigBuilder.additionalOutputs, ConfigBuilder.ConfigBuilder.addMaxEvents(), ConfigBuilder.ConfigBuilder.addOutput(), ConfigBuilder.ConfigBuilder.addSource(), ConfigBuilder.ConfigBuilder.addStandardSequences(), helpers.associatePatAlgosToolsTask(), ConfigBuilder.ConfigBuilder.blacklist_paths, ConfigBuilder.ConfigBuilder.build_production_info(), ConfigBuilder.ConfigBuilder.completeInputCommand(), ConfigBuilder.ConfigBuilder.conditionalPaths, Utilities.convertToUnscheduled(), earlyDeleteSettings_cff.customiseEarlyDelete(), logErrorHarvester_cff.customiseLogErrorHarvesterUsingOutputCommands(), ConfigBuilder.dumpPython(), ConfigBuilder.ConfigBuilder.EVTCONTDefaultCFF, ConfigBuilder.ConfigBuilder.excludedPaths, ConfigBuilder.ConfigBuilder.imports, mps_monitormerge.items, join(), ConfigBuilder.ConfigBuilder.labelsToAssociate, ConfigBuilder.ConfigBuilder.loadAndRemember(), edm.print(), DTVdriftWorkflow.DTvdriftWorkflow.process, DTTtrigWorkflow.DTttrigWorkflow.process, DTWorkflow.DTWorkflow.process, ConfigBuilder.ConfigBuilder.process, ConfigBuilder.ConfigBuilder.productionFilterSequence, ConfigBuilder.ConfigBuilder.pythonCfgCode, ConfigBuilder.ConfigBuilder.schedule, str, ConfigBuilder.ConfigBuilder.with_input, and ConfigBuilder.ConfigBuilder.with_output.

2103  def prepare(self, doChecking = False):
2104  """ Prepare the configuration string and add missing pieces."""
2105 
2106  self.loadAndRemember(self.EVTCONTDefaultCFF) #load the event contents regardless
2107  self.addMaxEvents()
2108  if self.with_input:
2109  self.addSource()
2110  self.addStandardSequences()
2111  ##adding standard sequences might change the inputEventContent option and therefore needs to be finalized after
2112  self.completeInputCommand()
2113  self.addConditions()
2114 
2115 
2116  outputModuleCfgCode=""
2117  if not 'HARVESTING' in self.stepMap.keys() and not 'ALCAHARVEST' in self.stepMap.keys() and not 'ALCAOUTPUT' in self.stepMap.keys() and self.with_output:
2118  outputModuleCfgCode=self.addOutput()
2119 
2120  self.addCommon()
2121 
2122  self.pythonCfgCode += "# import of standard configurations\n"
2123  for module in self.imports:
2124  self.pythonCfgCode += ("process.load('"+module+"')\n")
2125 
2126  # production info
2127  if not hasattr(self.process,"configurationMetadata"):
2128  self.build_production_info(self._options.evt_type, self._options.number)
2129  else:
2130  #the PSet was added via a load
2131  self.addedObjects.append(("Production Info","configurationMetadata"))
2132 
2133  self.pythonCfgCode +="\n"
2134  for comment,object in self.addedObjects:
2135  if comment!="":
2136  self.pythonCfgCode += "\n# "+comment+"\n"
2137  self.pythonCfgCode += dumpPython(self.process,object)
2138 
2139  # dump the output definition
2140  self.pythonCfgCode += "\n# Output definition\n"
2141  self.pythonCfgCode += outputModuleCfgCode
2142 
2143  # dump all additional outputs (e.g. alca or skim streams)
2144  self.pythonCfgCode += "\n# Additional output definition\n"
2145  #I do not understand why the keys are not normally ordered.
2146  nl=sorted(self.additionalOutputs.keys())
2147  for name in nl:
2148  output = self.additionalOutputs[name]
2149  self.pythonCfgCode += "process.%s = %s" %(name, output.dumpPython())
2150  tmpOut = cms.EndPath(output)
2151  setattr(self.process,name+'OutPath',tmpOut)
2152  self.schedule.append(tmpOut)
2153 
2154  # dump all additional commands
2155  self.pythonCfgCode += "\n# Other statements\n"
2156  for command in self.additionalCommands:
2157  self.pythonCfgCode += command + "\n"
2158 
2159  #comma separated list of objects that deserve to be inlined in the configuration (typically from a modified config deep down)
2160  for object in self._options.inlineObjets.split(','):
2161  if not object:
2162  continue
2163  if not hasattr(self.process,object):
2164  print('cannot inline -'+object+'- : not known')
2165  else:
2166  self.pythonCfgCode +='\n'
2167  self.pythonCfgCode +=dumpPython(self.process,object)
2168 
2169  # dump all paths
2170  self.pythonCfgCode += "\n# Path and EndPath definitions\n"
2171  for path in self.process.paths:
2172  if getattr(self.process,path) not in self.blacklist_paths:
2173  self.pythonCfgCode += dumpPython(self.process,path)
2174 
2175  for endpath in self.process.endpaths:
2176  if getattr(self.process,endpath) not in self.blacklist_paths:
2177  self.pythonCfgCode += dumpPython(self.process,endpath)
2178 
2179  # dump the schedule
2180  self.pythonCfgCode += "\n# Schedule definition\n"
2181  result = "process.schedule = cms.Schedule("
2182 
2183  # handling of the schedule
2184  self.process.schedule = cms.Schedule()
2185  for item in self.schedule:
2186  if not isinstance(item, cms.Schedule):
2187  self.process.schedule.append(item)
2188  else:
2189  self.process.schedule.extend(item)
2190 
2191  if hasattr(self.process,"HLTSchedule"):
2192  beforeHLT = self.schedule[:self.schedule.index(self.process.HLTSchedule)]
2193  afterHLT = self.schedule[self.schedule.index(self.process.HLTSchedule)+1:]
2194  pathNames = ['process.'+p.label_() for p in beforeHLT]
2195  result += ','.join(pathNames)+')\n'
2196  result += 'process.schedule.extend(process.HLTSchedule)\n'
2197  pathNames = ['process.'+p.label_() for p in afterHLT]
2198  result += 'process.schedule.extend(['+','.join(pathNames)+'])\n'
2199  else:
2200  pathNames = ['process.'+p.label_() for p in self.schedule]
2201  result ='process.schedule = cms.Schedule('+','.join(pathNames)+')\n'
2202 
2203  self.pythonCfgCode += result
2204 
2205  for labelToAssociate in self.labelsToAssociate:
2206  self.process.schedule.associate(getattr(self.process, labelToAssociate))
2207  self.pythonCfgCode += 'process.schedule.associate(process.' + labelToAssociate + ')\n'
2208 
2209  from PhysicsTools.PatAlgos.tools.helpers import associatePatAlgosToolsTask
2211  self.pythonCfgCode+="from PhysicsTools.PatAlgos.tools.helpers import associatePatAlgosToolsTask\n"
2212  self.pythonCfgCode+="associatePatAlgosToolsTask(process)\n"
2213 
2214  if self._options.nThreads is not "1":
2215  self.pythonCfgCode +="\n"
2216  self.pythonCfgCode +="#Setup FWK for multithreaded\n"
2217  self.pythonCfgCode +="process.options.numberOfThreads=cms.untracked.uint32("+self._options.nThreads+")\n"
2218  self.pythonCfgCode +="process.options.numberOfStreams=cms.untracked.uint32(0)\n"
2219  #repacked version
2220  if self._options.isRepacked:
2221  self.pythonCfgCode +="\n"
2222  self.pythonCfgCode +="from Configuration.Applications.ConfigBuilder import MassReplaceInputTag\n"
2223  self.pythonCfgCode +="MassReplaceInputTag(process, new=\"rawDataMapperByLabel\", old=\"rawDataCollector\")\n"
2224  MassReplaceInputTag(self.process, new="rawDataMapperByLabel", old="rawDataCollector")
2225 
2226  # special treatment in case of production filter sequence 2/2
2227  if self.productionFilterSequence:
2228  self.pythonCfgCode +='# filter all path with the production filter sequence\n'
2229  self.pythonCfgCode +='for path in process.paths:\n'
2230  if len(self.conditionalPaths):
2231  self.pythonCfgCode +='\tif not path in %s: continue\n'%str(self.conditionalPaths)
2232  if len(self.excludedPaths):
2233  self.pythonCfgCode +='\tif path in %s: continue\n'%str(self.excludedPaths)
2234  self.pythonCfgCode +='\tgetattr(process,path)._seq = process.%s * getattr(process,path)._seq \n'%(self.productionFilterSequence,)
2235  pfs = getattr(self.process,self.productionFilterSequence)
2236  for path in self.process.paths:
2237  if not path in self.conditionalPaths: continue
2238  if path in self.excludedPaths: continue
2239  getattr(self.process,path)._seq = pfs * getattr(self.process,path)._seq
2240 
2241 
2242  # dump customise fragment
2243  self.pythonCfgCode += self.addCustomise()
2244 
2245  if self._options.runUnscheduled:
2246  # prune and delete paths
2247  #this is not supporting the blacklist at this point since I do not understand it
2248  self.pythonCfgCode+="#do not add changes to your config after this point (unless you know what you are doing)\n"
2249  self.pythonCfgCode+="from FWCore.ParameterSet.Utilities import convertToUnscheduled\n"
2250  self.pythonCfgCode+="process=convertToUnscheduled(process)\n"
2251 
2252  from FWCore.ParameterSet.Utilities import convertToUnscheduled
2254 
2255  self.pythonCfgCode += self.addCustomise(1)
2256 
2257  self.pythonCfgCode += self.addCustomiseCmdLine()
2258 
2259  if hasattr(self.process,"logErrorHarvester"):
2260  #configure logErrorHarvester to wait for same EDProducers to finish as the OutputModules
2261  self.pythonCfgCode +="\n#Have logErrorHarvester wait for the same EDProducers to finish as those providing data for the OutputModule\n"
2262  self.pythonCfgCode +="from FWCore.Modules.logErrorHarvester_cff import customiseLogErrorHarvesterUsingOutputCommands\n"
2263  self.pythonCfgCode +="process = customiseLogErrorHarvesterUsingOutputCommands(process)\n"
2264  from FWCore.Modules.logErrorHarvester_cff import customiseLogErrorHarvesterUsingOutputCommands
2266 
2267  # Temporary hack to put the early delete customization after
2268  # everything else
2269  #
2270  # FIXME: remove when no longer needed
2271  self.pythonCfgCode += "\n# Add early deletion of temporary data products to reduce peak memory need\n"
2272  self.pythonCfgCode += "from Configuration.StandardSequences.earlyDeleteSettings_cff import customiseEarlyDelete\n"
2273  self.pythonCfgCode += "process = customiseEarlyDelete(process)\n"
2274  self.pythonCfgCode += "# End adding early deletion\n"
2275  from Configuration.StandardSequences.earlyDeleteSettings_cff import customiseEarlyDelete
2276  self.process = customiseEarlyDelete(self.process)
2277 
2278 
2279  # make the .io file
2280 
2281  if self._options.io:
2282  #io=open(self._options.python_filename.replace('.py','.io'),'w')
2283  if not self._options.io.endswith('.io'): self._option.io+='.io'
2284  io=open(self._options.io,'w')
2285  ioJson={}
2286  if hasattr(self.process.source,"fileNames"):
2287  if len(self.process.source.fileNames.value()):
2288  ioJson['primary']=self.process.source.fileNames.value()
2289  if hasattr(self.process.source,"secondaryFileNames"):
2290  if len(self.process.source.secondaryFileNames.value()):
2291  ioJson['secondary']=self.process.source.secondaryFileNames.value()
2292  if self._options.pileup_input and (self._options.pileup_input.startswith('dbs:') or self._options.pileup_input.startswith('das:')):
2293  ioJson['pileup']=self._options.pileup_input[4:]
2294  for (o,om) in self.process.outputModules_().items():
2295  ioJson[o]=om.fileName.value()
2296  ioJson['GT']=self.process.GlobalTag.globaltag.value()
2297  if self.productionFilterSequence:
2298  ioJson['filter']=self.productionFilterSequence
2299  import json
2300  io.write(json.dumps(ioJson))
2301  return
2302 
2303 
process
adding standard sequences might change the inputEventContent option and therefore needs to be finaliz...
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:65
def build_production_info(self, evt_type, evtnumber)
productionFilterSequence
put it before all the other paths
def addCustomise(self, unsch=0)
def convertToUnscheduled(proc)
Definition: Utilities.py:46
def loadAndRemember(self, includeFile)
static std::string join(char **cmd)
Definition: RemoteFile.cc:18
def dumpPython(process, name)
def prepare(self, doChecking=False)
def associatePatAlgosToolsTask(process)
Definition: helpers.py:25
#define str(s)
def customiseLogErrorHarvesterUsingOutputCommands(process)
def ConfigBuilder.ConfigBuilder.prepare_ALCA (   self,
  sequence = None,
  workflow = 'full' 
)
Enrich the process with alca streams 

Definition at line 1237 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.ALCADefaultCFF, ConfigBuilder.ConfigBuilder.expandMapping(), and ConfigBuilder.ConfigBuilder.loadDefaultOrSpecifiedCFF().

Referenced by ConfigBuilder.ConfigBuilder.prepare_ALCAOUTPUT(), and ConfigBuilder.ConfigBuilder.prepare_ALCAPRODUCER().

1237  def prepare_ALCA(self, sequence = None, workflow = 'full'):
1238  """ Enrich the process with alca streams """
1239  alcaConfig=self.loadDefaultOrSpecifiedCFF(sequence,self.ALCADefaultCFF)
1240  sequence = sequence.split('.')[-1]
1241 
1242  # decide which ALCA paths to use
1243  alcaList = sequence.split("+")
1244  maxLevel=0
1245  from Configuration.AlCa.autoAlca import autoAlca
1246  # support @X from autoAlca.py, and recursion support: i.e T0:@Mu+@EG+...
1247  self.expandMapping(alcaList,autoAlca)
1248  self.AlCaPaths=[]
1249  for name in alcaConfig.__dict__:
1250  alcastream = getattr(alcaConfig,name)
1251  shortName = name.replace('ALCARECOStream','')
1252  if shortName in alcaList and isinstance(alcastream,cms.FilteredStream):
1253  output = self.addExtraStream(name,alcastream, workflow = workflow)
1254  self.executeAndRemember('process.ALCARECOEventContent.outputCommands.extend(process.OutALCARECO'+shortName+'_noDrop.outputCommands)')
1255  self.AlCaPaths.append(shortName)
1256  if 'DQM' in alcaList:
1257  if not self._options.inlineEventContent and hasattr(self.process,name):
1258  self.executeAndRemember('process.' + name + '.outputCommands.append("keep *_MEtoEDMConverter_*_*")')
1259  else:
1260  output.outputCommands.append("keep *_MEtoEDMConverter_*_*")
1261 
1262  #rename the HLT process name in the alca modules
1263  if self._options.hltProcess or 'HLT' in self.stepMap:
1264  if isinstance(alcastream.paths,tuple):
1265  for path in alcastream.paths:
1266  self.renameHLTprocessInSequence(path.label())
1267  else:
1268  self.renameHLTprocessInSequence(alcastream.paths.label())
1269 
1270  for i in range(alcaList.count(shortName)):
1271  alcaList.remove(shortName)
1272 
1273  # DQM needs a special handling
1274  elif name == 'pathALCARECODQM' and 'DQM' in alcaList:
1275  path = getattr(alcaConfig,name)
1276  self.schedule.append(path)
1277  alcaList.remove('DQM')
1278 
1279  if isinstance(alcastream,cms.Path):
1280  #black list the alca path so that they do not appear in the cfg
1281  self.blacklist_paths.append(alcastream)
1282 
1283 
1284  if len(alcaList) != 0:
1285  available=[]
1286  for name in alcaConfig.__dict__:
1287  alcastream = getattr(alcaConfig,name)
1288  if isinstance(alcastream,cms.FilteredStream):
1289  available.append(name.replace('ALCARECOStream',''))
1290  print("The following alcas could not be found "+str(alcaList))
1291  print("available ",available)
1292  #print "verify your configuration, ignoring for now"
1293  raise Exception("The following alcas could not be found "+str(alcaList))
1294 
def expandMapping(self, seqList, mapping, index=None)
def loadDefaultOrSpecifiedCFF(self, sequence, defaultCFF)
process
adding standard sequences might change the inputEventContent option and therefore needs to be finaliz...
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:65
def addExtraStream(self, name, stream, workflow='full')
def renameHLTprocessInSequence(self, sequence, proc=None, HLTprocess='HLT')
def prepare_ALCA(self, sequence=None, workflow='full')
#define str(s)
def executeAndRemember(self, command)
def ConfigBuilder.ConfigBuilder.prepare_ALCAHARVEST (   self,
  sequence = None 
)
Enrich the process with AlCaHarvesting step 

Definition at line 2001 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.ALCAHARVESTDefaultCFF, ConfigBuilder.ConfigBuilder.executeAndRemember(), ConfigBuilder.ConfigBuilder.expandMapping(), ConfigBuilder.ConfigBuilder.loadAndRemember(), edm.print(), and str.

2001  def prepare_ALCAHARVEST(self, sequence = None):
2002  """ Enrich the process with AlCaHarvesting step """
2003  harvestingConfig = self.loadAndRemember(self.ALCAHARVESTDefaultCFF)
2004  sequence=sequence.split(".")[-1]
2005 
2006  # decide which AlcaHARVESTING paths to use
2007  harvestingList = sequence.split("+")
2008 
2009 
2010 
2011  from Configuration.AlCa.autoPCL import autoPCL
2012  self.expandMapping(harvestingList,autoPCL)
2013 
2014  for name in harvestingConfig.__dict__:
2015  harvestingstream = getattr(harvestingConfig,name)
2016  if name in harvestingList and isinstance(harvestingstream,cms.Path):
2017  self.schedule.append(harvestingstream)
2018  if isinstance(getattr(harvestingConfig,"ALCAHARVEST" + name + "_dbOutput"), cms.VPSet) and \
2019  isinstance(getattr(harvestingConfig,"ALCAHARVEST" + name + "_metadata"), cms.VPSet):
2020  self.executeAndRemember("process.PoolDBOutputService.toPut.extend(process.ALCAHARVEST" + name + "_dbOutput)")
2021  self.executeAndRemember("process.pclMetadataWriter.recordsToMap.extend(process.ALCAHARVEST" + name + "_metadata)")
2022  else:
2023  self.executeAndRemember("process.PoolDBOutputService.toPut.append(process.ALCAHARVEST" + name + "_dbOutput)")
2024  self.executeAndRemember("process.pclMetadataWriter.recordsToMap.append(process.ALCAHARVEST" + name + "_metadata)")
2025  harvestingList.remove(name)
2026  # append the common part at the end of the sequence
2027  lastStep = getattr(harvestingConfig,"ALCAHARVESTDQMSaveAndMetadataWriter")
2028  self.schedule.append(lastStep)
2029 
2030  if len(harvestingList) != 0 and 'dummyHarvesting' not in harvestingList :
2031  print("The following harvesting could not be found : ", harvestingList)
2032  raise Exception("The following harvesting could not be found : "+str(harvestingList))
2033 
2034 
2035 
def expandMapping(self, seqList, mapping, index=None)
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:65
def loadAndRemember(self, includeFile)
def prepare_ALCAHARVEST(self, sequence=None)
#define str(s)
def executeAndRemember(self, command)
def ConfigBuilder.ConfigBuilder.prepare_ALCAOUTPUT (   self,
  sequence = None 
)

Definition at line 1234 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.prepare_ALCA().

1234  def prepare_ALCAOUTPUT(self, sequence = None):
1235  self.prepare_ALCA(sequence, workflow = "output")
1236 
def prepare_ALCAOUTPUT(self, sequence=None)
def prepare_ALCA(self, sequence=None, workflow='full')
def ConfigBuilder.ConfigBuilder.prepare_ALCAPRODUCER (   self,
  sequence = None 
)

Definition at line 1231 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.prepare_ALCA().

1231  def prepare_ALCAPRODUCER(self, sequence = None):
1232  self.prepare_ALCA(sequence, workflow = "producers")
1233 
def prepare_ALCAPRODUCER(self, sequence=None)
def prepare_ALCA(self, sequence=None, workflow='full')
def ConfigBuilder.ConfigBuilder.prepare_CFWRITER (   self,
  sequence = None 
)
Enrich the schedule with the crossing frame writer step

Definition at line 1430 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.CFWRITERDefaultCFF, ConfigBuilder.ConfigBuilder.loadAndRemember(), and ConfigBuilder.ConfigBuilder.scheduleSequence().

1430  def prepare_CFWRITER(self, sequence = None):
1431  """ Enrich the schedule with the crossing frame writer step"""
1433  self.scheduleSequence('pcfw','cfwriter_step')
1434  return
1435 
def prepare_CFWRITER(self, sequence=None)
def scheduleSequence(self, seq, prefix, what='Path')
def loadAndRemember(self, includeFile)
def ConfigBuilder.ConfigBuilder.prepare_DATAMIX (   self,
  sequence = None 
)
Enrich the schedule with the digitisation step

Definition at line 1436 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.DATAMIXDefaultCFF, ConfigBuilder.ConfigBuilder.executeAndRemember(), ConfigBuilder.filesFromDASQuery(), ConfigBuilder.filesFromList(), ConfigBuilder.ConfigBuilder.loadAndRemember(), and ConfigBuilder.ConfigBuilder.scheduleSequence().

1436  def prepare_DATAMIX(self, sequence = None):
1437  """ Enrich the schedule with the digitisation step"""
1439  self.scheduleSequence('pdatamix','datamixing_step')
1440 
1441  if self._options.pileup_input:
1442  theFiles=''
1443  if self._options.pileup_input.startswith('dbs:') or self._options.pileup_input.startswith('das:'):
1444  theFiles=filesFromDASQuery('file dataset = %s'%(self._options.pileup_input[4:],),self._options.pileup_dasoption)[0]
1445  elif self._options.pileup_input.startswith("filelist:"):
1446  theFiles= (filesFromList(self._options.pileup_input[9:]))[0]
1447  else:
1448  theFiles=self._options.pileup_input.split(',')
1449  #print theFiles
1450  self.executeAndRemember( "process.mixData.input.fileNames = cms.untracked.vstring(%s)"%( theFiles ) )
1451 
1452  return
1453 
def prepare_DATAMIX(self, sequence=None)
def filesFromDASQuery(query, option="", s=None)
def scheduleSequence(self, seq, prefix, what='Path')
def loadAndRemember(self, includeFile)
def filesFromList(fileName, s=None)
def executeAndRemember(self, command)
def ConfigBuilder.ConfigBuilder.prepare_DIGI (   self,
  sequence = None 
)
Enrich the schedule with the digitisation step

Definition at line 1410 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.DIGIDefaultCFF, ConfigBuilder.ConfigBuilder.executeAndRemember(), ConfigBuilder.ConfigBuilder.loadAndRemember(), ConfigBuilder.ConfigBuilder.loadDefaultOrSpecifiedCFF(), and ConfigBuilder.ConfigBuilder.scheduleSequence().

1410  def prepare_DIGI(self, sequence = None):
1411  """ Enrich the schedule with the digitisation step"""
1412  self.loadDefaultOrSpecifiedCFF(sequence,self.DIGIDefaultCFF)
1413 
1414  if self._options.gflash==True:
1415  self.loadAndRemember("Configuration/StandardSequences/GFlashDIGI_cff")
1416 
1417  if sequence == 'pdigi_valid' or sequence == 'pdigi_hi':
1418  self.executeAndRemember("process.mix.digitizers = cms.PSet(process.theDigitizersValid)")
1419 
1420  if sequence != 'pdigi_nogen' and sequence != 'pdigi_valid_nogen' and sequence != 'pdigi_hi_nogen' and not self.process.source.type_()=='EmptySource':
1421  if self._options.inputEventContent=='':
1422  self._options.inputEventContent='REGEN'
1423  else:
1424  self._options.inputEventContent=self._options.inputEventContent+',REGEN'
1425 
1426 
1427  self.scheduleSequence(sequence.split('.')[-1],'digitisation_step')
1428  return
1429 
def loadDefaultOrSpecifiedCFF(self, sequence, defaultCFF)
def scheduleSequence(self, seq, prefix, what='Path')
def prepare_DIGI(self, sequence=None)
def loadAndRemember(self, includeFile)
def executeAndRemember(self, command)
def ConfigBuilder.ConfigBuilder.prepare_DIGI2RAW (   self,
  sequence = None 
)

Definition at line 1454 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.DIGI2RAWDefaultCFF, ConfigBuilder.ConfigBuilder.loadDefaultOrSpecifiedCFF(), and ConfigBuilder.ConfigBuilder.scheduleSequence().

1454  def prepare_DIGI2RAW(self, sequence = None):
1455  self.loadDefaultOrSpecifiedCFF(sequence,self.DIGI2RAWDefaultCFF)
1456  self.scheduleSequence(sequence.split('.')[-1],'digi2raw_step')
1457  return
1458 
def loadDefaultOrSpecifiedCFF(self, sequence, defaultCFF)
def scheduleSequence(self, seq, prefix, what='Path')
def prepare_DIGI2RAW(self, sequence=None)
def ConfigBuilder.ConfigBuilder.prepare_DQM (   self,
  sequence = 'DQMOffline' 
)

Definition at line 1928 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.DQMOFFLINEDefaultCFF, ConfigBuilder.ConfigBuilder.expandMapping(), edm::eventsetup::heterocontainer.insert(), list(), ConfigBuilder.ConfigBuilder.loadDefaultOrSpecifiedCFF(), edm.print(), DTVdriftWorkflow.DTvdriftWorkflow.process, DTTtrigWorkflow.DTttrigWorkflow.process, DTWorkflow.DTWorkflow.process, ConfigBuilder.ConfigBuilder.process, ConfigBuilder.ConfigBuilder.renameHLTprocessInSequence(), and split.

1928  def prepare_DQM(self, sequence = 'DQMOffline'):
1929  # this one needs replacement
1930 
1932  sequenceList=sequence.split('.')[-1].split('+')
1933  postSequenceList=sequence.split('.')[-1].split('+')
1934  from DQMOffline.Configuration.autoDQM import autoDQM
1935  self.expandMapping(sequenceList,autoDQM,index=0)
1936  self.expandMapping(postSequenceList,autoDQM,index=1)
1937 
1938  if len(set(sequenceList))!=len(sequenceList):
1939  sequenceList=list(set(sequenceList))
1940  print("Duplicate entries for DQM:, using",sequenceList)
1941 
1942  pathName='dqmoffline_step'
1943  for (i,sequence) in enumerate(sequenceList):
1944  if (i!=0):
1945  pathName='dqmoffline_%d_step'%(i)
1946 
1947  if 'HLT' in self.stepMap.keys() or self._options.hltProcess:
1948  self.renameHLTprocessInSequence(sequence)
1949 
1950  setattr(self.process,pathName, cms.EndPath( getattr(self.process,sequence ) ) )
1951  self.schedule.append(getattr(self.process,pathName))
1952 
1953  if hasattr(self.process,"genstepfilter") and len(self.process.genstepfilter.triggerConditions):
1954  #will get in the schedule, smoothly
1955  getattr(self.process,pathName).insert(0,self.process.genstepfilter)
1956 
1957  pathName='dqmofflineOnPAT_step'
1958  for (i,sequence) in enumerate(postSequenceList):
1959  if (i!=0):
1960  pathName='dqmofflineOnPAT_%d_step'%(i)
1961 
1962  setattr(self.process,pathName, cms.EndPath( getattr(self.process, sequence ) ) )
1963  self.schedule.append(getattr(self.process,pathName))
1964 
def expandMapping(self, seqList, mapping, index=None)
def loadDefaultOrSpecifiedCFF(self, sequence, defaultCFF)
process
adding standard sequences might change the inputEventContent option and therefore needs to be finaliz...
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:65
def prepare_DQM(self, sequence='DQMOffline')
def renameHLTprocessInSequence(self, sequence, proc=None, HLTprocess='HLT')
bool insert(Storage &iStorage, ItemType *iItem, const IdTag &iIdTag)
Definition: HCMethods.h:49
double split
Definition: MVATrainer.cc:139
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run
def ConfigBuilder.ConfigBuilder.prepare_EI (   self,
  sequence = None 
)
Enrich the schedule with event interpretation 

Definition at line 1686 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.EIDefaultCFF, ConfigBuilder.ConfigBuilder.loadDefaultOrSpecifiedCFF(), and ConfigBuilder.ConfigBuilder.scheduleSequence().

1686  def prepare_EI(self, sequence = None):
1687  ''' Enrich the schedule with event interpretation '''
1688  from Configuration.StandardSequences.EventInterpretation import EventInterpretation
1689  if sequence in EventInterpretation:
1690  self.EIDefaultCFF = EventInterpretation[sequence]
1691  sequence = 'EIsequence'
1692  else:
1693  raise Exception('Cannot set %s event interpretation'%( sequence) )
1694  self.loadDefaultOrSpecifiedCFF(sequence,self.EIDefaultCFF)
1695  self.scheduleSequence(sequence.split('.')[-1],'eventinterpretaion_step')
1696  return
1697 
def loadDefaultOrSpecifiedCFF(self, sequence, defaultCFF)
def prepare_EI(self, sequence=None)
def scheduleSequence(self, seq, prefix, what='Path')
def ConfigBuilder.ConfigBuilder.prepare_ENDJOB (   self,
  sequence = 'endOfProcess' 
)

Definition at line 2036 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.ENDJOBDefaultCFF, ConfigBuilder.ConfigBuilder.loadDefaultOrSpecifiedCFF(), and ConfigBuilder.ConfigBuilder.scheduleSequenceAtEnd().

2036  def prepare_ENDJOB(self, sequence = 'endOfProcess'):
2037  self.loadDefaultOrSpecifiedCFF(sequence,self.ENDJOBDefaultCFF)
2038  self.scheduleSequenceAtEnd(sequence.split('.')[-1],'endjob_step')
2039  return
2040 
def prepare_ENDJOB(self, sequence='endOfProcess')
def loadDefaultOrSpecifiedCFF(self, sequence, defaultCFF)
def scheduleSequenceAtEnd(self, seq, prefix)
def ConfigBuilder.ConfigBuilder.prepare_FILTER (   self,
  sequence = None 
)
Enrich the schedule with a user defined filter sequence 

Definition at line 1582 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.__init__(), VisualizationOptions.load(), BTagCalibrationReader::BTagCalibrationReaderImpl.load(), BTagCalibrationReader.load(), cond::persistency::KeyList.load(), cond::persistency::GTEditor.load(), cond::persistency::IOVEditor.load(), L1MuDTPtaLut.load(), L1MuDTPhiLut.load(), L1MuDTEtaPatternLut.load(), L1MuDTQualPatternLut.load(), PiecewiseScalingPolynomial.load(), L1MuDTExtLut.load(), cond::persistency::RunInfoProxy.load(), HBHENegativeEFilter.load(), HcalIndexLookup.load(), cond::persistency::GTProxy.load(), cond::persistency::IOVProxy.load(), HBHEChannelGroups.load(), TrackerMap.load(), OOTPileupCorrData.load(), ConfigBuilder.ConfigBuilder.load(), mps_create_file_lists._DasCache.load(), and resolutioncreator_cfi.object.

1582  def prepare_FILTER(self, sequence = None):
1583  ''' Enrich the schedule with a user defined filter sequence '''
1584  ## load the relevant part
1585  filterConfig=self.load(sequence.split('.')[0])
1586  filterSeq=sequence.split('.')[-1]
1587  ## print it in the configuration
1588  class PrintAllModules(object):
1589  def __init__(self):
1590  self.inliner=''
1591  pass
1592  def enter(self,visitee):
1593  try:
1594  label=visitee.label()
1595  ##needs to be in reverse order
1596  self.inliner=label+','+self.inliner
1597  except:
1598  pass
1599  def leave(self,v): pass
1600 
1601  expander=PrintAllModules()
1602  getattr(self.process,filterSeq).visit( expander )
1603  self._options.inlineObjets+=','+expander.inliner
1604  self._options.inlineObjets+=','+filterSeq
1605 
1606  ## put the filtering path in the schedule
1607  self.scheduleSequence(filterSeq,'filtering_step')
1608  self.nextScheduleIsConditional=True
1609  ## put it before all the other paths
1610  self.productionFilterSequence = filterSeq
1611 
1612  return
1613 
def load(self, includeFile)
inliner
load the relevant part
process
adding standard sequences might change the inputEventContent option and therefore needs to be finaliz...
def prepare_FILTER(self, sequence=None)
def visit(visitdir)
Retrieve data from a perf suite output (sub) directory, only examines TimeSize at the moment...
productionFilterSequence
put it before all the other paths
def scheduleSequence(self, seq, prefix, what='Path')
def __init__(self, options, process=None, with_output=False, with_input=False)
nextScheduleIsConditional
put the filtering path in the schedule
def ConfigBuilder.ConfigBuilder.prepare_GEN (   self,
  sequence = None 
)
load the fragment of generator configuration 

Definition at line 1312 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.executeAndRemember(), ConfigBuilder.ConfigBuilder.GENDefaultCFF, ConfigBuilder.ConfigBuilder.GENDefaultSeq, ConfigBuilder.ConfigBuilder.LHEDefaultSeq, ConfigBuilder.ConfigBuilder.loadAndRemember(), ConfigBuilder.ConfigBuilder.loadDefaultOrSpecifiedCFF(), edm.print(), DTVdriftWorkflow.DTvdriftWorkflow.process, DTTtrigWorkflow.DTttrigWorkflow.process, DTWorkflow.DTWorkflow.process, ConfigBuilder.ConfigBuilder.process, ConfigBuilder.ConfigBuilder.productionFilterSequence, python.rootplot.root2matplotlib.replace(), ConfigBuilder.ConfigBuilder.scheduleSequenceAtEnd(), and ConfigBuilder.ConfigBuilder.stepMap.

1312  def prepare_GEN(self, sequence = None):
1313  """ load the fragment of generator configuration """
1314  loadFailure=False
1315  #remove trailing .py
1316  #support old style .cfi by changing into something.cfi into something_cfi
1317  #remove python/ from the name
1318  loadFragment = self._options.evt_type.replace('.py','',).replace('.','_').replace('python/','')
1319  #standard location of fragments
1320  if not '/' in loadFragment:
1321  loadFragment='Configuration.Generator.'+loadFragment
1322  else:
1323  loadFragment=loadFragment.replace('/','.')
1324  try:
1325  print("Loading generator fragment from",loadFragment)
1326  __import__(loadFragment)
1327  except:
1328  loadFailure=True
1329  #if self.process.source and self.process.source.type_()=='EmptySource':
1330  if not (self._options.filein or self._options.dasquery):
1331  raise Exception("Neither gen fragment of input files provided: this is an inconsistent GEN step configuration")
1332 
1333  if not loadFailure:
1334  generatorModule=sys.modules[loadFragment]
1335  genModules=generatorModule.__dict__
1336  #remove lhe producer module since this should have been
1337  #imported instead in the LHE step
1338  if self.LHEDefaultSeq in genModules:
1339  del genModules[self.LHEDefaultSeq]
1340 
1341  if self._options.hideGen:
1342  self.loadAndRemember(loadFragment)
1343  else:
1344  self.process.load(loadFragment)
1345  # expose the objects from that fragment to the configuration
1346  import FWCore.ParameterSet.Modules as cmstypes
1347  for name in genModules:
1348  theObject = getattr(generatorModule,name)
1349  if isinstance(theObject, cmstypes._Module):
1350  self._options.inlineObjets=name+','+self._options.inlineObjets
1351  elif isinstance(theObject, cms.Sequence) or isinstance(theObject, cmstypes.ESProducer):
1352  self._options.inlineObjets+=','+name
1353 
1354  if sequence == self.GENDefaultSeq or sequence == 'pgen_genonly':
1355  if 'ProductionFilterSequence' in genModules and ('generator' in genModules):
1356  self.productionFilterSequence = 'ProductionFilterSequence'
1357  elif 'generator' in genModules:
1358  self.productionFilterSequence = 'generator'
1359 
1360  """ Enrich the schedule with the rest of the generation step """
1361  self.loadDefaultOrSpecifiedCFF(sequence,self.GENDefaultCFF)
1362  genSeqName=sequence.split('.')[-1]
1363 
1364  if True:
1365  try:
1366  from Configuration.StandardSequences.VtxSmeared import VtxSmeared
1367  cffToBeLoaded=VtxSmeared[self._options.beamspot]
1368  self.loadAndRemember(cffToBeLoaded)
1369  except ImportError:
1370  raise Exception("VertexSmearing type or beamspot "+self._options.beamspot+" unknown.")
1371 
1372  if self._options.scenario == 'HeavyIons':
1373  if self._options.pileup=='HiMixGEN':
1374  self.loadAndRemember("Configuration/StandardSequences/GeneratorMix_cff")
1375  else:
1376  self.loadAndRemember("Configuration/StandardSequences/GeneratorHI_cff")
1377 
1378  self.process.generation_step = cms.Path( getattr(self.process,genSeqName) )
1379  self.schedule.append(self.process.generation_step)
1380 
1381  #register to the genstepfilter the name of the path (static right now, but might evolve)
1382  self.executeAndRemember('process.genstepfilter.triggerConditions=cms.vstring("generation_step")')
1383 
1384  if 'reGEN' in self.stepMap:
1385  #stop here
1386  return
1387 
1388  """ Enrich the schedule with the summary of the filter step """
1389  #the gen filter in the endpath
1390  self.loadAndRemember("GeneratorInterface/Core/genFilterSummary_cff")
1391  self.scheduleSequenceAtEnd('genFilterSummary','genfiltersummary_step')
1392  return
1393 
def prepare_GEN(self, sequence=None)
def loadDefaultOrSpecifiedCFF(self, sequence, defaultCFF)
process
adding standard sequences might change the inputEventContent option and therefore needs to be finaliz...
def replace(string, replacements)
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:65
productionFilterSequence
put it before all the other paths
def loadAndRemember(self, includeFile)
def scheduleSequenceAtEnd(self, seq, prefix)
def executeAndRemember(self, command)
def ConfigBuilder.ConfigBuilder.prepare_HARVESTING (   self,
  sequence = None 
)
Enrich the process with harvesting step 

Definition at line 1965 of file ConfigBuilder.py.

1965  def prepare_HARVESTING(self, sequence = None):
1966  """ Enrich the process with harvesting step """
1967  self.DQMSaverCFF='Configuration/StandardSequences/DQMSaver'+self._options.harvesting+'_cff'
1968  self.loadAndRemember(self.DQMSaverCFF)
1969 
1970  harvestingConfig = self.loadDefaultOrSpecifiedCFF(sequence,self.HARVESTINGDefaultCFF)
1971  sequence = sequence.split('.')[-1]
1972 
1973  # decide which HARVESTING paths to use
1974  harvestingList = sequence.split("+")
1975  from DQMOffline.Configuration.autoDQM import autoDQM
1976  from Validation.Configuration.autoValidation import autoValidation
1977  import copy
1978  combined_mapping = copy.deepcopy( autoDQM )
1979  combined_mapping.update( autoValidation )
1980  self.expandMapping(harvestingList,combined_mapping,index=-1)
1981 
1982  if len(set(harvestingList))!=len(harvestingList):
1983  harvestingList=list(set(harvestingList))
1984  print("Duplicate entries for HARVESTING, using",harvestingList)
1985 
1986  for name in harvestingList:
1987  if not name in harvestingConfig.__dict__:
1988  print(name,"is not a possible harvesting type. Available are",harvestingConfig.__dict__.keys())
1989  continue
1990  harvestingstream = getattr(harvestingConfig,name)
1991  if isinstance(harvestingstream,cms.Path):
1992  self.schedule.append(harvestingstream)
1993  self.blacklist_paths.append(harvestingstream)
1994  if isinstance(harvestingstream,cms.Sequence):
1995  setattr(self.process,name+"_step",cms.Path(harvestingstream))
1996  self.schedule.append(getattr(self.process,name+"_step"))
1997 
1998  self.scheduleSequence('DQMSaver','dqmsave_step')
1999  return
2000 
def expandMapping(self, seqList, mapping, index=None)
def prepare_HARVESTING(self, sequence=None)
def loadDefaultOrSpecifiedCFF(self, sequence, defaultCFF)
process
adding standard sequences might change the inputEventContent option and therefore needs to be finaliz...
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:65
def scheduleSequence(self, seq, prefix, what='Path')
def loadAndRemember(self, includeFile)
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run
def ConfigBuilder.ConfigBuilder.prepare_HLT (   self,
  sequence = None 
)
Enrich the schedule with the HLT simulation step

Definition at line 1484 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.executeAndRemember(), join(), ConfigBuilder.ConfigBuilder.loadAndRemember(), edm.print(), DTVdriftWorkflow.DTvdriftWorkflow.process, DTTtrigWorkflow.DTttrigWorkflow.process, DTWorkflow.DTWorkflow.process, ConfigBuilder.ConfigBuilder.process, and CustomConfigs.ProcessName().

1484  def prepare_HLT(self, sequence = None):
1485  """ Enrich the schedule with the HLT simulation step"""
1486  if not sequence:
1487  print("no specification of the hlt menu has been given, should never happen")
1488  raise Exception('no HLT sequence provided')
1489 
1490  if '@' in sequence:
1491  # case where HLT:@something was provided
1492  from Configuration.HLT.autoHLT import autoHLT
1493  key = sequence[1:]
1494  if key in autoHLT:
1495  sequence = autoHLT[key]
1496  else:
1497  raise ValueError('no HLT mapping key "%s" found in autoHLT' % key)
1498 
1499  if ',' in sequence:
1500  #case where HLT:something:something was provided
1501  self.executeAndRemember('import HLTrigger.Configuration.Utilities')
1502  optionsForHLT = {}
1503  if self._options.scenario == 'HeavyIons':
1504  optionsForHLT['type'] = 'HIon'
1505  else:
1506  optionsForHLT['type'] = 'GRun'
1507  optionsForHLTConfig = ', '.join('%s=%s' % (key, repr(val)) for (key, val) in six.iteritems(optionsForHLT))
1508  if sequence == 'run,fromSource':
1509  if hasattr(self.process.source,'firstRun'):
1510  self.executeAndRemember('process.loadHltConfiguration("run:%%d"%%(process.source.firstRun.value()),%s)'%(optionsForHLTConfig))
1511  elif hasattr(self.process.source,'setRunNumber'):
1512  self.executeAndRemember('process.loadHltConfiguration("run:%%d"%%(process.source.setRunNumber.value()),%s)'%(optionsForHLTConfig))
1513  else:
1514  raise Exception('Cannot replace menu to load %s'%(sequence))
1515  else:
1516  self.executeAndRemember('process.loadHltConfiguration("%s",%s)'%(sequence.replace(',',':'),optionsForHLTConfig))
1517  else:
1518  self.loadAndRemember('HLTrigger/Configuration/HLT_%s_cff' % sequence)
1519 
1520  if self._options.isMC:
1521  self._options.customisation_file.append("HLTrigger/Configuration/customizeHLTforMC.customizeHLTforMC")
1522 
1523  if self._options.name != 'HLT':
1524  self.additionalCommands.append('from HLTrigger.Configuration.CustomConfigs import ProcessName')
1525  self.additionalCommands.append('process = ProcessName(process)')
1526  self.additionalCommands.append('')
1527  from HLTrigger.Configuration.CustomConfigs import ProcessName
1528  self.process = ProcessName(self.process)
1529 
1530  self.schedule.append(self.process.HLTSchedule)
1531  [self.blacklist_paths.append(path) for path in self.process.HLTSchedule if isinstance(path,(cms.Path,cms.EndPath))]
1532 
1533  #this is a fake, to be removed with fastim migration and HLT menu dump
1534  if self._options.fast:
1535  if not hasattr(self.process,'HLTEndSequence'):
1536  self.executeAndRemember("process.HLTEndSequence = cms.Sequence( process.dummyModule )")
1537 
1538 
process
adding standard sequences might change the inputEventContent option and therefore needs to be finaliz...
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:65
def ProcessName(process)
Definition: CustomConfigs.py:8
def loadAndRemember(self, includeFile)
static std::string join(char **cmd)
Definition: RemoteFile.cc:18
def prepare_HLT(self, sequence=None)
def executeAndRemember(self, command)
def ConfigBuilder.ConfigBuilder.prepare_L1 (   self,
  sequence = None 
)
Enrich the schedule with the L1 simulation step

Definition at line 1464 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.L1EMDefaultCFF, ConfigBuilder.ConfigBuilder.loadAndRemember(), and ConfigBuilder.ConfigBuilder.scheduleSequence().

1464  def prepare_L1(self, sequence = None):
1465  """ Enrich the schedule with the L1 simulation step"""
1466  assert(sequence == None)
1467  self.loadAndRemember(self.L1EMDefaultCFF)
1468  self.scheduleSequence('SimL1Emulator','L1simulation_step')
1469  return
1470 
def scheduleSequence(self, seq, prefix, what='Path')
def loadAndRemember(self, includeFile)
def prepare_L1(self, sequence=None)
def ConfigBuilder.ConfigBuilder.prepare_L1HwVal (   self,
  sequence = 'L1HwVal' 
)
Enrich the schedule with L1 HW validation 

Definition at line 1563 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.L1HwValDefaultCFF, ConfigBuilder.ConfigBuilder.loadDefaultOrSpecifiedCFF(), and edm.print().

1563  def prepare_L1HwVal(self, sequence = 'L1HwVal'):
1564  ''' Enrich the schedule with L1 HW validation '''
1565  self.loadDefaultOrSpecifiedCFF(sequence,self.L1HwValDefaultCFF)
1566  #self.scheduleSequence(sequence.split('.')[-1],'l1hwval_step')
1567  print('\n\n\n DEPRECATED this has no action \n\n\n')
1568  return
1569 
def loadDefaultOrSpecifiedCFF(self, sequence, defaultCFF)
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:65
def prepare_L1HwVal(self, sequence='L1HwVal')
def ConfigBuilder.ConfigBuilder.prepare_L1Reco (   self,
  sequence = "L1Reco" 
)
Enrich the schedule with L1 reconstruction 

Definition at line 1570 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.L1RecoDefaultCFF, ConfigBuilder.ConfigBuilder.loadDefaultOrSpecifiedCFF(), and ConfigBuilder.ConfigBuilder.scheduleSequence().

1570  def prepare_L1Reco(self, sequence = "L1Reco"):
1571  ''' Enrich the schedule with L1 reconstruction '''
1572  self.loadDefaultOrSpecifiedCFF(sequence,self.L1RecoDefaultCFF)
1573  self.scheduleSequence(sequence.split('.')[-1],'L1Reco_step')
1574  return
1575 
def loadDefaultOrSpecifiedCFF(self, sequence, defaultCFF)
def prepare_L1Reco(self, sequence="L1Reco")
def scheduleSequence(self, seq, prefix, what='Path')
def ConfigBuilder.ConfigBuilder.prepare_L1REPACK (   self,
  sequence = None 
)
Enrich the schedule with the L1 simulation step, running the L1 emulator on data unpacked from the RAW collection, and repacking the result in a new RAW collection

Definition at line 1471 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.loadAndRemember(), edm.print(), ConfigBuilder.ConfigBuilder.renameInputTagsInSequence(), and ConfigBuilder.ConfigBuilder.scheduleSequence().

1471  def prepare_L1REPACK(self, sequence = None):
1472  """ Enrich the schedule with the L1 simulation step, running the L1 emulator on data unpacked from the RAW collection, and repacking the result in a new RAW collection"""
1473  supported = ['GT','GT1','GT2','GCTGT','Full','FullSimTP','FullMC','Full2015Data','uGT','CalouGT']
1474  if sequence in supported:
1475  self.loadAndRemember('Configuration/StandardSequences/SimL1EmulatorRepack_%s_cff'%sequence)
1476  if self._options.scenario == 'HeavyIons':
1477  self.renameInputTagsInSequence("SimL1Emulator","rawDataCollector","rawDataRepacker")
1478  self.scheduleSequence('SimL1Emulator','L1RePack_step')
1479  else:
1480  print("L1REPACK with '",sequence,"' is not supported! Supported choices are: ",supported)
1481  raise Exception('unsupported feature')
1482 
1483 
def prepare_L1REPACK(self, sequence=None)
def renameInputTagsInSequence(self, sequence, oldT="rawDataCollector", newT="rawDataRepacker")
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:65
def scheduleSequence(self, seq, prefix, what='Path')
def loadAndRemember(self, includeFile)
def ConfigBuilder.ConfigBuilder.prepare_L1TrackTrigger (   self,
  sequence = "L1TrackTrigger" 
)
Enrich the schedule with L1 reconstruction 

Definition at line 1576 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.L1TrackTriggerDefaultCFF, ConfigBuilder.ConfigBuilder.loadDefaultOrSpecifiedCFF(), and ConfigBuilder.ConfigBuilder.scheduleSequence().

1576  def prepare_L1TrackTrigger(self, sequence = "L1TrackTrigger"):
1577  ''' Enrich the schedule with L1 reconstruction '''
1579  self.scheduleSequence(sequence.split('.')[-1],'L1TrackTrigger_step')
1580  return
1581 
def loadDefaultOrSpecifiedCFF(self, sequence, defaultCFF)
def scheduleSequence(self, seq, prefix, what='Path')
def prepare_L1TrackTrigger(self, sequence="L1TrackTrigger")
def ConfigBuilder.ConfigBuilder.prepare_LHE (   self,
  sequence = None 
)

Definition at line 1295 of file ConfigBuilder.py.

1295  def prepare_LHE(self, sequence = None):
1296  #load the fragment
1297  ##make it loadable
1298  loadFragment = self._options.evt_type.replace('.py','',).replace('.','_').replace('python/','').replace('/','.')
1299  print("Loading lhe fragment from",loadFragment)
1300  __import__(loadFragment)
1301  self.process.load(loadFragment)
1302  ##inline the modules
1303  self._options.inlineObjets+=','+sequence
1304 
1305  getattr(self.process,sequence).nEvents = int(self._options.number)
1306 
1307  #schedule it
1308  self.process.lhe_step = cms.Path( getattr( self.process,sequence) )
1309  self.excludedPaths.append("lhe_step")
1310  self.schedule.append( self.process.lhe_step )
1311 
def prepare_LHE(self, sequence=None)
def replace(string, replacements)
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:65
def ConfigBuilder.ConfigBuilder.prepare_NANO (   self,
  sequence = "nanoAOD" 
)
Enrich the schedule with NANO 

Definition at line 1671 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.loadDefaultOrSpecifiedCFF(), ConfigBuilder.ConfigBuilder.NANODefaultCFF, and ConfigBuilder.ConfigBuilder.scheduleSequence().

1671  def prepare_NANO(self, sequence = "nanoAOD"):
1672  ''' Enrich the schedule with NANO '''
1673  self.loadDefaultOrSpecifiedCFF(sequence,self.NANODefaultCFF)
1674  self.scheduleSequence(sequence.split('.')[-1],'nanoAOD_step')
1675  custom = "nanoAOD_customizeData" if self._options.isData else "nanoAOD_customizeMC"
1676  if self._options.runUnscheduled:
1677  self._options.customisation_file_unsch.insert(0,"PhysicsTools/NanoAOD/nano_cff."+custom)
1678  else:
1679  self._options.customisation_file.insert(0,"PhysicsTools/NanoAOD/nano_cff."+custom)
1680  if self._options.hltProcess:
1681  if len(self._options.customise_commands) > 1:
1682  self._options.customise_commands = self._options.customise_commands + " \n"
1683  self._options.customise_commands = self._options.customise_commands + "process.unpackedPatTrigger.triggerResults= cms.InputTag( 'TriggerResults::"+self._options.hltProcess+"' )\n"
1684 
1685 
def loadDefaultOrSpecifiedCFF(self, sequence, defaultCFF)
def scheduleSequence(self, seq, prefix, what='Path')
def prepare_NANO(self, sequence="nanoAOD")
def ConfigBuilder.ConfigBuilder.prepare_PAT (   self,
  sequence = "miniAOD" 
)
Enrich the schedule with PAT 

Definition at line 1635 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.loadDefaultOrSpecifiedCFF(), ConfigBuilder.ConfigBuilder.PATDefaultCFF, and ConfigBuilder.ConfigBuilder.prepare_PATFILTER().

1635  def prepare_PAT(self, sequence = "miniAOD"):
1636  ''' Enrich the schedule with PAT '''
1637  self.prepare_PATFILTER(self)
1638  self.loadDefaultOrSpecifiedCFF(sequence,self.PATDefaultCFF)
1639  self.labelsToAssociate.append('patTask')
1640  if not self._options.runUnscheduled:
1641  raise Exception("MiniAOD production can only run in unscheduled mode, please run cmsDriver with --runUnscheduled")
1642  if self._options.isData:
1643  self._options.customisation_file_unsch.insert(0,"PhysicsTools/PatAlgos/slimming/miniAOD_tools.miniAOD_customizeAllData")
1644  else:
1645  if self._options.fast:
1646  self._options.customisation_file_unsch.insert(0,"PhysicsTools/PatAlgos/slimming/miniAOD_tools.miniAOD_customizeAllMCFastSim")
1647  else:
1648  self._options.customisation_file_unsch.insert(0,"PhysicsTools/PatAlgos/slimming/miniAOD_tools.miniAOD_customizeAllMC")
1649 
1650  if self._options.hltProcess:
1651  if len(self._options.customise_commands) > 1:
1652  self._options.customise_commands = self._options.customise_commands + " \n"
1653  self._options.customise_commands = self._options.customise_commands + "process.patTrigger.processName = \""+self._options.hltProcess+"\"\n"
1654  self._options.customise_commands = self._options.customise_commands + "process.slimmedPatTrigger.triggerResults= cms.InputTag( 'TriggerResults::"+self._options.hltProcess+"' )\n"
1655  self._options.customise_commands = self._options.customise_commands + "process.patMuons.triggerResults= cms.InputTag( 'TriggerResults::"+self._options.hltProcess+"' )\n"
1656 
1657 # self.renameHLTprocessInSequence(sequence)
1658 
1659  return
1660 
def loadDefaultOrSpecifiedCFF(self, sequence, defaultCFF)
def prepare_PATFILTER(self, sequence=None)
def prepare_PAT(self, sequence="miniAOD")
def ConfigBuilder.ConfigBuilder.prepare_PATFILTER (   self,
  sequence = None 
)

Definition at line 1557 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.loadAndRemember(), DTVdriftWorkflow.DTvdriftWorkflow.process, DTTtrigWorkflow.DTttrigWorkflow.process, DTWorkflow.DTWorkflow.process, and ConfigBuilder.ConfigBuilder.process.

Referenced by ConfigBuilder.ConfigBuilder.prepare_PAT().

1557  def prepare_PATFILTER(self, sequence=None):
1558  self.loadAndRemember("PhysicsTools/PatAlgos/slimming/metFilterPaths_cff")
1559  from PhysicsTools.PatAlgos.slimming.metFilterPaths_cff import allMetFilterPaths
1560  for filt in allMetFilterPaths:
1561  self.schedule.append(getattr(self.process,'Flag_'+filt))
1562 
process
adding standard sequences might change the inputEventContent option and therefore needs to be finaliz...
def prepare_PATFILTER(self, sequence=None)
def loadAndRemember(self, includeFile)
def ConfigBuilder.ConfigBuilder.prepare_PATGEN (   self,
  sequence = "miniGEN" 
)
Enrich the schedule with PATGEN 

Definition at line 1661 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.loadDefaultOrSpecifiedCFF(), and ConfigBuilder.ConfigBuilder.PATGENDefaultCFF.

1661  def prepare_PATGEN(self, sequence = "miniGEN"):
1662  ''' Enrich the schedule with PATGEN '''
1663  self.loadDefaultOrSpecifiedCFF(sequence,self.PATGENDefaultCFF) #this is unscheduled
1664  self.labelsToAssociate.append('patGENTask')
1665  if not self._options.runUnscheduled:
1666  raise Exception("MiniGEN production can only run in unscheduled mode, please run cmsDriver with --runUnscheduled")
1667  if self._options.isData:
1668  raise Exception("PATGEN step can only run on MC")
1669  return
1670 
def loadDefaultOrSpecifiedCFF(self, sequence, defaultCFF)
def prepare_PATGEN(self, sequence="miniGEN")
def ConfigBuilder.ConfigBuilder.prepare_POSTRECO (   self,
  sequence = None 
)
Enrich the schedule with the postreco step 

Definition at line 1748 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.loadAndRemember(), ConfigBuilder.ConfigBuilder.POSTRECODefaultCFF, and ConfigBuilder.ConfigBuilder.scheduleSequence().

1748  def prepare_POSTRECO(self, sequence = None):
1749  """ Enrich the schedule with the postreco step """
1751  self.scheduleSequence('postreco_generator','postreco_step')
1752  return
1753 
1754 
def prepare_POSTRECO(self, sequence=None)
def scheduleSequence(self, seq, prefix, what='Path')
def loadAndRemember(self, includeFile)
def ConfigBuilder.ConfigBuilder.prepare_RAW2DIGI (   self,
  sequence = "RawToDigi" 
)

Definition at line 1550 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.loadDefaultOrSpecifiedCFF(), ConfigBuilder.ConfigBuilder.RAW2DIGIDefaultCFF, and ConfigBuilder.ConfigBuilder.scheduleSequence().

Referenced by ConfigBuilder.ConfigBuilder.prepare_RAW2RECO().

1550  def prepare_RAW2DIGI(self, sequence = "RawToDigi"):
1551  self.loadDefaultOrSpecifiedCFF(sequence,self.RAW2DIGIDefaultCFF)
1552  self.scheduleSequence(sequence,'raw2digi_step')
1553  # if self._options.isRepacked:
1554  #self.renameInputTagsInSequence(sequence)
1555  return
1556 
def loadDefaultOrSpecifiedCFF(self, sequence, defaultCFF)
def prepare_RAW2DIGI(self, sequence="RawToDigi")
def scheduleSequence(self, seq, prefix, what='Path')
def ConfigBuilder.ConfigBuilder.prepare_RAW2RECO (   self,
  sequence = None 
)

Definition at line 1539 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.prepare_RAW2DIGI(), ConfigBuilder.ConfigBuilder.prepare_RECO(), and edm.print().

1539  def prepare_RAW2RECO(self, sequence = None):
1540  if ','in sequence:
1541  seqReco=sequence.split(',')[1]
1542  seqDigi=sequence.split(',')[0]
1543  else:
1544  print("RAW2RECO requires two specifications",sequence,"insufficient")
1545 
1546  self.prepare_RAW2DIGI(seqDigi)
1547  self.prepare_RECO(seqReco)
1548  return
1549 
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:65
def prepare_RAW2DIGI(self, sequence="RawToDigi")
def prepare_RECO(self, sequence="reconstruction")
def prepare_RAW2RECO(self, sequence=None)
def ConfigBuilder.ConfigBuilder.prepare_RECO (   self,
  sequence = "reconstruction" 
)
Enrich the schedule with reconstruction 

Definition at line 1614 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.loadDefaultOrSpecifiedCFF(), ConfigBuilder.ConfigBuilder.RECODefaultCFF, and ConfigBuilder.ConfigBuilder.scheduleSequence().

Referenced by ConfigBuilder.ConfigBuilder.prepare_RAW2RECO().

1614  def prepare_RECO(self, sequence = "reconstruction"):
1615  ''' Enrich the schedule with reconstruction '''
1616  self.loadDefaultOrSpecifiedCFF(sequence,self.RECODefaultCFF)
1617  self.scheduleSequence(sequence.split('.')[-1],'reconstruction_step')
1618  return
1619 
def loadDefaultOrSpecifiedCFF(self, sequence, defaultCFF)
def prepare_RECO(self, sequence="reconstruction")
def scheduleSequence(self, seq, prefix, what='Path')
def ConfigBuilder.ConfigBuilder.prepare_RECOBEFMIX (   self,
  sequence = "reconstruction" 
)
Enrich the schedule with the part of reconstruction that is done before mixing in FastSim

Definition at line 1626 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.loadDefaultOrSpecifiedCFF(), edm.print(), ConfigBuilder.ConfigBuilder.RECOBEFMIXDefaultCFF, ConfigBuilder.ConfigBuilder.RECOBEFMIXDefaultSeq, and ConfigBuilder.ConfigBuilder.scheduleSequence().

1626  def prepare_RECOBEFMIX(self, sequence = "reconstruction"):
1627  ''' Enrich the schedule with the part of reconstruction that is done before mixing in FastSim'''
1628  if not self._options.fast:
1629  print("ERROR: this step is only implemented for FastSim")
1630  sys.exit()
1632  self.scheduleSequence(sequence.split('.')[-1],'reconstruction_befmix_step')
1633  return
1634 
def loadDefaultOrSpecifiedCFF(self, sequence, defaultCFF)
def prepare_RECOBEFMIX(self, sequence="reconstruction")
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:65
def scheduleSequence(self, seq, prefix, what='Path')
def ConfigBuilder.ConfigBuilder.prepare_RECOSIM (   self,
  sequence = "recosim" 
)
Enrich the schedule with reconstruction 

Definition at line 1620 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.loadDefaultOrSpecifiedCFF(), ConfigBuilder.ConfigBuilder.RECOSIMDefaultCFF, and ConfigBuilder.ConfigBuilder.scheduleSequence().

1620  def prepare_RECOSIM(self, sequence = "recosim"):
1621  ''' Enrich the schedule with reconstruction '''
1622  self.loadDefaultOrSpecifiedCFF(sequence,self.RECOSIMDefaultCFF)
1623  self.scheduleSequence(sequence.split('.')[-1],'recosim_step')
1624  return
1625 
def loadDefaultOrSpecifiedCFF(self, sequence, defaultCFF)
def prepare_RECOSIM(self, sequence="recosim")
def scheduleSequence(self, seq, prefix, what='Path')
def ConfigBuilder.ConfigBuilder.prepare_REPACK (   self,
  sequence = None 
)

Definition at line 1459 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.loadDefaultOrSpecifiedCFF(), ConfigBuilder.ConfigBuilder.REPACKDefaultCFF, and ConfigBuilder.ConfigBuilder.scheduleSequence().

1459  def prepare_REPACK(self, sequence = None):
1460  self.loadDefaultOrSpecifiedCFF(sequence,self.REPACKDefaultCFF)
1461  self.scheduleSequence(sequence.split('.')[-1],'digi2repack_step')
1462  return
1463 
def loadDefaultOrSpecifiedCFF(self, sequence, defaultCFF)
def prepare_REPACK(self, sequence=None)
def scheduleSequence(self, seq, prefix, what='Path')
def ConfigBuilder.ConfigBuilder.prepare_SIM (   self,
  sequence = None 
)
Enrich the schedule with the simulation step

Definition at line 1394 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.executeAndRemember(), ConfigBuilder.ConfigBuilder.loadAndRemember(), ConfigBuilder.ConfigBuilder.loadDefaultOrSpecifiedCFF(), ConfigBuilder.ConfigBuilder.scheduleSequence(), and ConfigBuilder.ConfigBuilder.SIMDefaultCFF.

1394  def prepare_SIM(self, sequence = None):
1395  """ Enrich the schedule with the simulation step"""
1396  self.loadDefaultOrSpecifiedCFF(sequence,self.SIMDefaultCFF)
1397  if not self._options.fast:
1398  if self._options.gflash==True:
1399  self.loadAndRemember("Configuration/StandardSequences/GFlashSIM_cff")
1400 
1401  if self._options.magField=='0T':
1402  self.executeAndRemember("process.g4SimHits.UseMagneticField = cms.bool(False)")
1403  else:
1404  if self._options.magField=='0T':
1405  self.executeAndRemember("process.fastSimProducer.detectorDefinition.magneticFieldZ = cms.untracked.double(0.)")
1406 
1407  self.scheduleSequence(sequence.split('.')[-1],'simulation_step')
1408  return
1409 
def prepare_SIM(self, sequence=None)
def loadDefaultOrSpecifiedCFF(self, sequence, defaultCFF)
def scheduleSequence(self, seq, prefix, what='Path')
def loadAndRemember(self, includeFile)
def executeAndRemember(self, command)
def ConfigBuilder.ConfigBuilder.prepare_SKIM (   self,
  sequence = "all" 
)
Enrich the schedule with skimming fragments

Definition at line 1698 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.addExtraStream(), ConfigBuilder.ConfigBuilder.EVTCONTDefaultCFF, ConfigBuilder.ConfigBuilder.expandMapping(), join(), ConfigBuilder.ConfigBuilder.loadDefaultOrSpecifiedCFF(), edm.print(), and ConfigBuilder.ConfigBuilder.SKIMDefaultCFF.

1698  def prepare_SKIM(self, sequence = "all"):
1699  ''' Enrich the schedule with skimming fragments'''
1700  skimConfig = self.loadDefaultOrSpecifiedCFF(sequence,self.SKIMDefaultCFF)
1701  sequence = sequence.split('.')[-1]
1702 
1703  skimlist=sequence.split('+')
1704  ## support @Mu+DiJet+@Electron configuration via autoSkim.py
1705  from Configuration.Skimming.autoSkim import autoSkim
1706  self.expandMapping(skimlist,autoSkim)
1707 
1708  #print "dictionnary for skims:",skimConfig.__dict__
1709  for skim in skimConfig.__dict__:
1710  skimstream = getattr(skimConfig,skim)
1711  if isinstance(skimstream,cms.Path):
1712  #black list the alca path so that they do not appear in the cfg
1713  self.blacklist_paths.append(skimstream)
1714  if (not isinstance(skimstream,cms.FilteredStream)):
1715  continue
1716  shortname = skim.replace('SKIMStream','')
1717  if (sequence=="all"):
1718  self.addExtraStream(skim,skimstream)
1719  elif (shortname in skimlist):
1720  self.addExtraStream(skim,skimstream)
1721  #add a DQM eventcontent for this guy
1722  if self._options.datatier=='DQM':
1723  self.process.load(self.EVTCONTDefaultCFF)
1724  skimstreamDQM = cms.FilteredStream(
1725  responsible = skimstream.responsible,
1726  name = skimstream.name+'DQM',
1727  paths = skimstream.paths,
1728  selectEvents = skimstream.selectEvents,
1729  content = self._options.datatier+'EventContent',
1730  dataTier = cms.untracked.string(self._options.datatier)
1731  )
1732  self.addExtraStream(skim+'DQM',skimstreamDQM)
1733  for i in range(skimlist.count(shortname)):
1734  skimlist.remove(shortname)
1735 
1736 
1737 
1738  if (skimlist.__len__()!=0 and sequence!="all"):
1739  print('WARNING, possible typo with SKIM:'+'+'.join(skimlist))
1740  raise Exception('WARNING, possible typo with SKIM:'+'+'.join(skimlist))
1741 
def expandMapping(self, seqList, mapping, index=None)
def loadDefaultOrSpecifiedCFF(self, sequence, defaultCFF)
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:65
def addExtraStream(self, name, stream, workflow='full')
def prepare_SKIM(self, sequence="all")
static std::string join(char **cmd)
Definition: RemoteFile.cc:18
def ConfigBuilder.ConfigBuilder.prepare_USER (   self,
  sequence = None 
)
Enrich the schedule with a user defined sequence 

Definition at line 1742 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.loadDefaultOrSpecifiedCFF(), ConfigBuilder.ConfigBuilder.scheduleSequence(), and ConfigBuilder.ConfigBuilder.USERDefaultCFF.

1742  def prepare_USER(self, sequence = None):
1743  ''' Enrich the schedule with a user defined sequence '''
1744  self.loadDefaultOrSpecifiedCFF(sequence,self.USERDefaultCFF)
1745  self.scheduleSequence(sequence.split('.')[-1],'user_step')
1746  return
1747 
def prepare_USER(self, sequence=None)
def loadDefaultOrSpecifiedCFF(self, sequence, defaultCFF)
def scheduleSequence(self, seq, prefix, what='Path')
def ConfigBuilder.ConfigBuilder.prepare_VALIDATION (   self,
  sequence = 'validation' 
)

Definition at line 1755 of file ConfigBuilder.py.

References any(), ConfigBuilder.ConfigBuilder.executeAndRemember(), ConfigBuilder.ConfigBuilder.expandMapping(), ConfigBuilder.ConfigBuilder.loadDefaultOrSpecifiedCFF(), genParticles_cff.map, edm.print(), DTVdriftWorkflow.DTvdriftWorkflow.process, DTTtrigWorkflow.DTttrigWorkflow.process, DTWorkflow.DTWorkflow.process, ConfigBuilder.ConfigBuilder.process, ConfigBuilder.ConfigBuilder.renameHLTprocessInSequence(), split, ConfigBuilder.ConfigBuilder.stepMap, and ConfigBuilder.ConfigBuilder.VALIDATIONDefaultCFF.

1755  def prepare_VALIDATION(self, sequence = 'validation'):
1756  print(sequence,"in preparing validation")
1758  from Validation.Configuration.autoValidation import autoValidation
1759  #in case VALIDATION:something:somethingelse -> something,somethingelse
1760  sequence=sequence.split('.')[-1]
1761  if sequence.find(',')!=-1:
1762  prevalSeqName=sequence.split(',')[0].split('+')
1763  valSeqName=sequence.split(',')[1].split('+')
1764  self.expandMapping(prevalSeqName,autoValidation,index=0)
1765  self.expandMapping(valSeqName,autoValidation,index=1)
1766  else:
1767  if '@' in sequence:
1768  prevalSeqName=sequence.split('+')
1769  valSeqName=sequence.split('+')
1770  self.expandMapping(prevalSeqName,autoValidation,index=0)
1771  self.expandMapping(valSeqName,autoValidation,index=1)
1772  else:
1773  postfix=''
1774  if sequence:
1775  postfix='_'+sequence
1776  prevalSeqName=['prevalidation'+postfix]
1777  valSeqName=['validation'+postfix]
1778  if not hasattr(self.process,valSeqName[0]):
1779  prevalSeqName=['']
1780  valSeqName=[sequence]
1781 
1782  def NFI(index):
1783  ##name from index, required to keep backward compatibility
1784  if index==0:
1785  return ''
1786  else:
1787  return '%s'%index
1788 
1789 
1790  #rename the HLT process in validation steps
1791  if ('HLT' in self.stepMap and not self._options.fast) or self._options.hltProcess:
1792  for s in valSeqName+prevalSeqName:
1793  if s:
1795  for (i,s) in enumerate(prevalSeqName):
1796  if s:
1797  setattr(self.process,'prevalidation_step%s'%NFI(i), cms.Path( getattr(self.process, s)) )
1798  self.schedule.append(getattr(self.process,'prevalidation_step%s'%NFI(i)))
1799 
1800  for (i,s) in enumerate(valSeqName):
1801  setattr(self.process,'validation_step%s'%NFI(i), cms.EndPath( getattr(self.process, s)))
1802  self.schedule.append(getattr(self.process,'validation_step%s'%NFI(i)))
1803 
1804  #needed in case the miniAODValidation sequence is run starting from AODSIM
1805  if 'PAT' in self.stepMap and not 'RECO' in self.stepMap:
1806  return
1807 
1808  if not 'DIGI' in self.stepMap and not self._options.fast and not any(map( lambda s : s.startswith('genvalid'), valSeqName)):
1809  if self._options.restoreRNDSeeds==False and not self._options.restoreRNDSeeds==True:
1810  self._options.restoreRNDSeeds=True
1811 
1812  if not 'DIGI' in self.stepMap and not self._options.fast:
1813  self.executeAndRemember("process.mix.playback = True")
1814  self.executeAndRemember("process.mix.digitizers = cms.PSet()")
1815  self.executeAndRemember("for a in process.aliases: delattr(process, a)")
1816  self._options.customisation_file.append("SimGeneral/MixingModule/fullMixCustomize_cff.setCrossingFrameOn")
1817 
1818  if hasattr(self.process,"genstepfilter") and len(self.process.genstepfilter.triggerConditions):
1819  #will get in the schedule, smoothly
1820  for (i,s) in enumerate(valSeqName):
1821  getattr(self.process,'validation_step%s'%NFI(i))._seq = self.process.genstepfilter * getattr(self.process,'validation_step%s'%NFI(i))._seq
1822 
1823  return
1824 
1825 
def expandMapping(self, seqList, mapping, index=None)
def loadDefaultOrSpecifiedCFF(self, sequence, defaultCFF)
bool any(const std::vector< T > &v, const T &what)
Definition: ECalSD.cc:37
process
adding standard sequences might change the inputEventContent option and therefore needs to be finaliz...
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:65
def renameHLTprocessInSequence(self, sequence, proc=None, HLTprocess='HLT')
def prepare_VALIDATION(self, sequence='validation')
double split
Definition: MVATrainer.cc:139
def executeAndRemember(self, command)
def ConfigBuilder.ConfigBuilder.profileOptions (   self)
addIgProfService
Function to add the igprof profile service so that you can dump in the middle
of the run.

Definition at line 268 of file ConfigBuilder.py.

References createfilelist.int.

Referenced by ConfigBuilder.ConfigBuilder.addCommon().

268  def profileOptions(self):
269  """
270  addIgProfService
271  Function to add the igprof profile service so that you can dump in the middle
272  of the run.
273  """
274  profileOpts = self._options.profile.split(':')
275  profilerStart = 1
276  profilerInterval = 100
277  profilerFormat = None
278  profilerJobFormat = None
279 
280  if len(profileOpts):
281  #type, given as first argument is unused here
282  profileOpts.pop(0)
283  if len(profileOpts):
284  startEvent = profileOpts.pop(0)
285  if not startEvent.isdigit():
286  raise Exception("%s is not a number" % startEvent)
287  profilerStart = int(startEvent)
288  if len(profileOpts):
289  eventInterval = profileOpts.pop(0)
290  if not eventInterval.isdigit():
291  raise Exception("%s is not a number" % eventInterval)
292  profilerInterval = int(eventInterval)
293  if len(profileOpts):
294  profilerFormat = profileOpts.pop(0)
295 
296 
297  if not profilerFormat:
298  profilerFormat = "%s___%s___%s___%s___%s___%s___%%I.gz" % (self._options.evt_type.replace("_cfi", ""),
299  self._options.step,
300  self._options.pileup,
301  self._options.conditions,
302  self._options.datatier,
303  self._options.profileTypeLabel)
304  if not profilerJobFormat and profilerFormat.endswith(".gz"):
305  profilerJobFormat = profilerFormat.replace(".gz", "_EndOfJob.gz")
306  elif not profilerJobFormat:
307  profilerJobFormat = profilerFormat + "_EndOfJob.gz"
308 
309  return (profilerStart,profilerInterval,profilerFormat,profilerJobFormat)
310 
def ConfigBuilder.ConfigBuilder.renameHLTprocessInSequence (   self,
  sequence,
  proc = None,
  HLTprocess = 'HLT' 
)

Definition at line 1895 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.additionalCommands, edm.print(), DTVdriftWorkflow.DTvdriftWorkflow.process, DTTtrigWorkflow.DTttrigWorkflow.process, DTWorkflow.DTWorkflow.process, ConfigBuilder.ConfigBuilder.process, and cmsPerfHarvest.visit().

Referenced by ConfigBuilder.ConfigBuilder.prepare_DQM(), and ConfigBuilder.ConfigBuilder.prepare_VALIDATION().

1895  def renameHLTprocessInSequence(self,sequence,proc=None,HLTprocess='HLT'):
1896  if self._options.hltProcess:
1897  proc=self._options.hltProcess
1898  else:
1899  proc=self.process.name_()
1900  if proc==HLTprocess: return
1901  # look up all module in dqm sequence
1902  print("replacing %s process name - sequence %s will use '%s'" % (HLTprocess,sequence, proc))
1903  getattr(self.process,sequence).visit(ConfigBuilder.MassSearchReplaceProcessNameVisitor(HLTprocess,proc,whitelist = ("subSystemFolder",)))
1904  if 'from Configuration.Applications.ConfigBuilder import ConfigBuilder' not in self.additionalCommands:
1905  self.additionalCommands.append('from Configuration.Applications.ConfigBuilder import ConfigBuilder')
1906  self.additionalCommands.append('process.%s.visit(ConfigBuilder.MassSearchReplaceProcessNameVisitor("%s", "%s", whitelist = ("subSystemFolder",)))'% (sequence,HLTprocess, proc))
1907 
1908 
process
adding standard sequences might change the inputEventContent option and therefore needs to be finaliz...
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:65
def visit(visitdir)
Retrieve data from a perf suite output (sub) directory, only examines TimeSize at the moment...
def renameHLTprocessInSequence(self, sequence, proc=None, HLTprocess='HLT')
def ConfigBuilder.ConfigBuilder.renameInputTagsInSequence (   self,
  sequence,
  oldT = "rawDataCollector",
  newT = "rawDataRepacker" 
)

Definition at line 1885 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.additionalCommands, MassReplace.massSearchReplaceAnyInputTag(), edm.print(), DTVdriftWorkflow.DTvdriftWorkflow.process, DTTtrigWorkflow.DTttrigWorkflow.process, DTWorkflow.DTWorkflow.process, and ConfigBuilder.ConfigBuilder.process.

Referenced by ConfigBuilder.ConfigBuilder.prepare_L1REPACK().

1885  def renameInputTagsInSequence(self,sequence,oldT="rawDataCollector",newT="rawDataRepacker"):
1886  print("Replacing all InputTag %s => %s"%(oldT,newT))
1887  from PhysicsTools.PatAlgos.tools.helpers import massSearchReplaceAnyInputTag
1888  massSearchReplaceAnyInputTag(getattr(self.process,sequence),oldT,newT)
1889  loadMe='from PhysicsTools.PatAlgos.tools.helpers import massSearchReplaceAnyInputTag'
1890  if not loadMe in self.additionalCommands:
1891  self.additionalCommands.append(loadMe)
1892  self.additionalCommands.append('massSearchReplaceAnyInputTag(process.%s,"%s","%s",False,True)'%(sequence,oldT,newT))
1893 
def massSearchReplaceAnyInputTag(sequence, oldInputTag, newInputTag, verbose=False, moduleLabelOnly=False, skipLabelTest=False)
Definition: MassReplace.py:73
def renameInputTagsInSequence(self, sequence, oldT="rawDataCollector", newT="rawDataRepacker")
process
adding standard sequences might change the inputEventContent option and therefore needs to be finaliz...
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:65
def ConfigBuilder.ConfigBuilder.scheduleSequence (   self,
  seq,
  prefix,
  what = 'Path' 
)

Definition at line 1202 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.nextScheduleIsConditional, DTVdriftWorkflow.DTvdriftWorkflow.process, DTTtrigWorkflow.DTttrigWorkflow.process, DTWorkflow.DTWorkflow.process, and ConfigBuilder.ConfigBuilder.process.

Referenced by ConfigBuilder.ConfigBuilder.prepare_CFWRITER(), ConfigBuilder.ConfigBuilder.prepare_DATAMIX(), ConfigBuilder.ConfigBuilder.prepare_DIGI(), ConfigBuilder.ConfigBuilder.prepare_DIGI2RAW(), ConfigBuilder.ConfigBuilder.prepare_EI(), ConfigBuilder.ConfigBuilder.prepare_L1(), ConfigBuilder.ConfigBuilder.prepare_L1Reco(), ConfigBuilder.ConfigBuilder.prepare_L1REPACK(), ConfigBuilder.ConfigBuilder.prepare_L1TrackTrigger(), ConfigBuilder.ConfigBuilder.prepare_NANO(), ConfigBuilder.ConfigBuilder.prepare_POSTRECO(), ConfigBuilder.ConfigBuilder.prepare_RAW2DIGI(), ConfigBuilder.ConfigBuilder.prepare_RECO(), ConfigBuilder.ConfigBuilder.prepare_RECOBEFMIX(), ConfigBuilder.ConfigBuilder.prepare_RECOSIM(), ConfigBuilder.ConfigBuilder.prepare_REPACK(), ConfigBuilder.ConfigBuilder.prepare_SIM(), ConfigBuilder.ConfigBuilder.prepare_USER(), and ConfigBuilder.ConfigBuilder.scheduleSequenceAtEnd().

1202  def scheduleSequence(self,seq,prefix,what='Path'):
1203  if '*' in seq:
1204  #create only one path with all sequences in it
1205  for i,s in enumerate(seq.split('*')):
1206  if i==0:
1207  setattr(self.process,prefix,getattr(cms,what)( getattr(self.process, s) ))
1208  else:
1209  p=getattr(self.process,prefix)
1210  p+=getattr(self.process, s)
1211  self.schedule.append(getattr(self.process,prefix))
1212  return
1213  else:
1214  #create as many path as many sequences
1215  if not '+' in seq:
1216  if self.nextScheduleIsConditional:
1217  self.conditionalPaths.append(prefix)
1218  setattr(self.process,prefix,getattr(cms,what)( getattr(self.process, seq) ))
1219  self.schedule.append(getattr(self.process,prefix))
1220  else:
1221  for i,s in enumerate(seq.split('+')):
1222  sn=prefix+'%d'%(i)
1223  setattr(self.process,sn,getattr(cms,what)( getattr(self.process, s) ))
1224  self.schedule.append(getattr(self.process,sn))
1225  return
1226 
process
adding standard sequences might change the inputEventContent option and therefore needs to be finaliz...
def scheduleSequence(self, seq, prefix, what='Path')
nextScheduleIsConditional
put the filtering path in the schedule
def ConfigBuilder.ConfigBuilder.scheduleSequenceAtEnd (   self,
  seq,
  prefix 
)

Definition at line 1227 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.scheduleSequence().

Referenced by ConfigBuilder.ConfigBuilder.prepare_ENDJOB(), and ConfigBuilder.ConfigBuilder.prepare_GEN().

1227  def scheduleSequenceAtEnd(self,seq,prefix):
1228  self.scheduleSequence(seq,prefix,what='EndPath')
1229  return
1230 
def scheduleSequence(self, seq, prefix, what='Path')
def scheduleSequenceAtEnd(self, seq, prefix)

Member Data Documentation

ConfigBuilder.ConfigBuilder._options
private

Definition at line 199 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.addSource().

ConfigBuilder.ConfigBuilder.addedObjects

Definition at line 259 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare().

ConfigBuilder.ConfigBuilder.additionalOutputs

Definition at line 260 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare().

ConfigBuilder.ConfigBuilder.ALCADefaultCFF

Definition at line 922 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_ALCA().

ConfigBuilder.ConfigBuilder.ALCADefaultSeq

Definition at line 957 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.ALCAHARVESTDefaultCFF

Definition at line 945 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_ALCAHARVEST().

ConfigBuilder.ConfigBuilder.ALCAHARVESTDefaultSeq

Definition at line 968 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.AlCaPaths

Definition at line 1248 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.addOutput().

ConfigBuilder.ConfigBuilder.blacklist_paths

Definition at line 258 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare().

ConfigBuilder.ConfigBuilder.CFWRITERDefaultCFF

Definition at line 948 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_CFWRITER().

ConfigBuilder.ConfigBuilder.CFWRITERDefaultSeq

Definition at line 969 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.conditionalPaths

Definition at line 265 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare().

ConfigBuilder.ConfigBuilder.ConditionsDefaultCFF

Definition at line 947 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.addConditions().

ConfigBuilder.ConfigBuilder.DATAMIXDefaultCFF

Definition at line 952 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_DATAMIX().

ConfigBuilder.ConfigBuilder.DATAMIXDefaultSeq

Definition at line 962 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.DIGI2RAWDefaultCFF

Definition at line 926 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_DIGI2RAW().

ConfigBuilder.ConfigBuilder.DIGI2RAWDefaultSeq

Definition at line 963 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.DIGIDefaultCFF

Definition at line 925 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_DIGI().

ConfigBuilder.ConfigBuilder.DIGIDefaultSeq

Definition at line 961 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.DQMDefaultSeq

Definition at line 981 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.DQMOFFLINEDefaultCFF

Definition at line 943 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_DQM().

ConfigBuilder.ConfigBuilder.DQMSaverCFF

Definition at line 1967 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.EIDefaultCFF

Definition at line 938 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_EI().

ConfigBuilder.ConfigBuilder.EIDefaultSeq

Definition at line 978 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.ENDJOBDefaultCFF

Definition at line 946 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_ENDJOB().

ConfigBuilder.ConfigBuilder.ENDJOBDefaultSeq

Definition at line 983 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.EVTCONTDefaultCFF
ConfigBuilder.ConfigBuilder.excludedPaths

Definition at line 266 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare().

ConfigBuilder.ConfigBuilder.GENDefaultCFF

Definition at line 923 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_GEN().

ConfigBuilder.ConfigBuilder.GENDefaultSeq

Definition at line 959 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_GEN().

ConfigBuilder.ConfigBuilder.GeometryCFF

Definition at line 1056 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.addStandardSequences().

ConfigBuilder.ConfigBuilder.geometryDBLabel

Definition at line 1057 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.addStandardSequences().

ConfigBuilder.ConfigBuilder.HARVESTINGDefaultCFF

Definition at line 944 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.HARVESTINGDefaultSeq

Definition at line 967 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.HLTDefaultCFF

Definition at line 929 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.HLTDefaultSeq

Definition at line 964 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.imports

Definition at line 247 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare().

ConfigBuilder.ConfigBuilder.inliner

load the relevant part

needs to be in reverse order

print it in the configuration

Definition at line 1590 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.L1DefaultSeq

Definition at line 965 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.L1EMDefaultCFF

Definition at line 927 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_L1().

ConfigBuilder.ConfigBuilder.L1HwValDefaultCFF

Definition at line 942 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_L1HwVal().

ConfigBuilder.ConfigBuilder.L1HwValDefaultSeq

Definition at line 980 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.L1MENUDefaultCFF

Definition at line 928 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.L1RecoDefaultCFF

Definition at line 932 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_L1Reco().

ConfigBuilder.ConfigBuilder.L1RecoDefaultSeq

Definition at line 971 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.L1REPACKDefaultSeq

Definition at line 966 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.L1TrackTriggerDefaultCFF
ConfigBuilder.ConfigBuilder.L1TrackTriggerDefaultSeq

Definition at line 972 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.labelsToAssociate

Definition at line 263 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare().

ConfigBuilder.ConfigBuilder.LHEDefaultSeq

Definition at line 958 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_GEN().

ConfigBuilder.ConfigBuilder.magFieldCFF

Definition at line 1052 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.addStandardSequences().

ConfigBuilder.ConfigBuilder.NANODefaultCFF

Definition at line 937 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_NANO().

ConfigBuilder.ConfigBuilder.NANODefaultSeq

Definition at line 987 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.nextScheduleIsConditional

put the filtering path in the schedule

Definition at line 264 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.scheduleSequence().

ConfigBuilder.ConfigBuilder.PATDefaultCFF

Definition at line 936 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_PAT().

ConfigBuilder.ConfigBuilder.PATDefaultSeq

Definition at line 985 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.PATGENDefaultCFF

Definition at line 999 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_PATGEN().

ConfigBuilder.ConfigBuilder.PATGENDefaultSeq

Definition at line 986 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.POSTRECODefaultCFF

Definition at line 940 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_POSTRECO().

ConfigBuilder.ConfigBuilder.POSTRECODefaultSeq

Definition at line 979 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.productionFilterSequence

put it before all the other paths

Definition at line 262 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare(), and ConfigBuilder.ConfigBuilder.prepare_GEN().

ConfigBuilder.ConfigBuilder.pythonCfgCode

Definition at line 2058 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare().

ConfigBuilder.ConfigBuilder.RAW2DIGIDefaultCFF

Definition at line 930 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_RAW2DIGI().

ConfigBuilder.ConfigBuilder.RAW2DIGIDefaultSeq

Definition at line 970 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.RAW2RECODefaultSeq

Definition at line 1042 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.RECOBEFMIXDefaultCFF

Definition at line 1107 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_RECOBEFMIX().

ConfigBuilder.ConfigBuilder.RECOBEFMIXDefaultSeq

Definition at line 1108 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_RECOBEFMIX().

ConfigBuilder.ConfigBuilder.RECODefaultCFF

Definition at line 934 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_RECO().

ConfigBuilder.ConfigBuilder.RECODefaultSeq

Definition at line 974 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.RECOSIMDefaultCFF

Definition at line 935 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_RECOSIM().

ConfigBuilder.ConfigBuilder.RECOSIMDefaultSeq

Definition at line 977 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.REDIGIDefaultSeq

Definition at line 1122 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.REPACKDefaultCFF

Definition at line 949 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_REPACK().

ConfigBuilder.ConfigBuilder.REPACKDefaultSeq

Definition at line 984 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.runsAndWeights

drop LHEXMLStringProduct on input to save memory if appropriate

Definition at line 476 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.schedule
ConfigBuilder.ConfigBuilder.SIMDefaultCFF

Definition at line 924 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_SIM().

ConfigBuilder.ConfigBuilder.SIMDefaultSeq

Definition at line 960 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.SimGeometryCFF

Definition at line 1082 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.addStandardSequences().

ConfigBuilder.ConfigBuilder.SKIMDefaultCFF

Definition at line 939 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_SKIM().

ConfigBuilder.ConfigBuilder.stepKeys

Definition at line 222 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.addStandardSequences().

ConfigBuilder.ConfigBuilder.USERDefaultCFF

Definition at line 1045 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_USER().

ConfigBuilder.ConfigBuilder.USERDefaultSeq

Definition at line 1044 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.VALIDATIONDefaultCFF

Definition at line 941 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_VALIDATION().

ConfigBuilder.ConfigBuilder.VALIDATIONDefaultSeq

Definition at line 982 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.with_input

Definition at line 246 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare().

ConfigBuilder.ConfigBuilder.with_output

Definition at line 241 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare().