CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Classes | Public Member Functions | Public Attributes | Static Public Attributes | Private Attributes
ConfigBuilder.ConfigBuilder Class Reference
Inheritance diagram for ConfigBuilder.ConfigBuilder:

Classes

class  MassSearchReplaceProcessNameVisitor
 
class  PrintAllModules
 print it in the configuration More...
 

Public Member Functions

def __init__
 
def addCommon
 
def addConditions
 
def addCustomise
 
def addExtraStream
 
def addMaxEvents
 
def addOutput
 
def addSource
 
def addStandardSequences
 
def anyOf
 
def build_production_info
 
def completeInputCommand
 
def define_Configs
 
def doNotInlineEventContent
 
def doNotInlineEventContent
 
def executeAndRemember
 
def expandMapping
 
def filesFromOption
 
def finalizeFastSimHLT
 
def inGeometryKeys
 
def load
 
def loadAndRemember
 
def loadDefaultOrSpecifiedCFF
 
def prepare
 
def prepare_ALCA
 
def prepare_ALCAHARVEST
 
def prepare_ALCAOUTPUT
 
def prepare_ALCAPRODUCER
 
def prepare_CFWRITER
 
def prepare_DATAMIX
 
def prepare_DIGI
 
def prepare_DIGI2RAW
 
def prepare_DQM
 
def prepare_ENDJOB
 
def prepare_FASTSIM
 
def prepare_FILTER
 
def prepare_GEN
 
def prepare_HARVESTING
 
def prepare_HLT
 
def prepare_L1
 
def prepare_L1HwVal
 
def prepare_L1Reco
 
def prepare_L1REPACK
 
def prepare_LHE
 
def prepare_POSTRECO
 
def prepare_RAW2DIGI
 
def prepare_RAW2RECO
 
def prepare_RECO
 put the filtering path in the schedule More...
 
def prepare_REPACK
 
def prepare_SIM
 
def prepare_SKIM
 
def prepare_USER
 
def prepare_VALIDATION
 
def profileOptions
 
def renameHLTprocessInSequence
 
def renameInputTagsInSequence
 
def scheduleSequence
 
def scheduleSequenceAtEnd
 

Public Attributes

 ALCADefaultCFF
 
 ALCADefaultSeq
 
 ALCAHARVESTDefaultCFF
 
 CFWRITERDefaultCFF
 
 ConditionsDefaultCFF
 
 DATAMIXDefaultCFF
 
 DIGI2RAWDefaultCFF
 
 DIGIDefaultCFF
 
 DQMOFFLINEDefaultCFF
 
 EDMtoMECFF
 
 ENDJOBDefaultCFF
 
 GENDefaultCFF
 
 HARVESTINGDefaultCFF
 
 HLTDefaultCFF
 
 L1EMDefaultCFF
 
 L1HwValDefaultCFF
 
 L1MENUDefaultCFF
 
 L1RecoDefaultCFF
 
 POSTRECODefaultCFF
 
 process
 
 RAW2DIGIDefaultCFF
 
 RECODefaultCFF
 
 REPACKDefaultCFF
 
 SIMDefaultCFF
 
 SKIMDefaultCFF
 
 VALIDATIONDefaultCFF
 

Static Public Attributes

list afterHLT = self.schedule[self.schedule.index(self.process.HLTSchedule)+1:]
 
tuple alcastream = getattr(alcaConfig,name)
 
list allFcn = []
 
list available = []
 
list beforeHLT = self.schedule[:self.schedule.index(self.process.HLTSchedule)]
 
tuple com = string.lstrip(com)
 
tuple command = command.strip()
 
string CppType = 'PoolOutputModule'
 
tuple customiseFile = re.sub(r'\.pyc$', '.py', package.__file__)
 
 defaultFileName = self._options.outfile_name
 
tuple defaultFileName = self._options.outfile_name.replace('.root','_in'+theTier+'.root')
 
tuple fileName = opt.split('.')
 
tuple filterConfig = self.load(sequence.split('.')[0])
 load the relevant part More...
 
tuple filterSeq = sequence.split('.')
 
string final_snippet = '\n'
 
list generatorModule = sys.modules[loadFragment]
 
 genModules = generatorModule.__dict__
 
tuple genSeqName = sequence.split('.')
 
tuple harvestingConfig = self.loadDefaultOrSpecifiedCFF(sequence,self.HARVESTINGDefaultCFF)
 
tuple harvestingList = sequence.split("+")
 
tuple harvestingstream = getattr(harvestingConfig,name)
 
tuple io = open(self._options.io,'w')
 
dictionary ioJson = {}
 
tuple lastStep = getattr(harvestingConfig,"ALCAHARVESTDQMSaveAndMetadataWriter")
 
 loadFailure = True
 
tuple loadFragment = self._options.evt_type.replace('.py','',)
 
string loadFragment = 'Configuration.Generator.'
 
dictionary mixingDict = {'file':pileupSpec}
 
tuple mixingDict = copy.copy(Mixing[pileupSpec])
 
tuple nl = self.additionalOutputs.keys()
 
tuple outDefDictStr = outDefDict.__str__()
 
tuple outList = eval(self._options.outputDefinition)
 
tuple output
 
list output = self.additionalOutputs[name]
 
tuple outputModule = getattr(self.process,theModuleLabel)
 
string outputModuleCfgCode = ""
 adding standard sequences might change the inputEventContent option and therefore needs to be finalized after More...
 
tuple outputModuleCfgCode = self.addOutput()
 
string outputModuleName = streamType+'output'
 
list package = sys.modules[packageName]
 
tuple packageName = f.replace(".py","")
 
tuple path = getattr(self.process,theModuleLabel+'_step')
 
string pathName = 'dqmoffline_step'
 
list pathNames = ['process.'+p.label_() for p in beforeHLT]
 
tuple pfs = getattr(self.process,self.productionFilterSequence)
 
tuple pileupSpec = self._options.pileup.split(',')
 
tuple rest = opt.split('.')
 
string result = "process.schedule = cms.Schedule("
 
tuple sequence = sequence.split('.')
 
tuple sequenceList = list(set(sequenceList))
 
tuple shortName = name.replace('ALCARECOStream','')
 
tuple shortname = skim.replace('SKIMStream','')
 
string simGeometry = ''
 
list simGeometry = geoms[0]
 
tuple skimstream = getattr(skimConfig,skim)
 
tuple skimstreamDQM
 
tuple specialization = defineMixing(mixingDict,'FASTSIM' in self.stepMap)
 
list stepList = [re.sub(r'^prepare_', '', methodName) for methodName in ConfigBuilder.__dict__ if methodName.startswith('prepare_')]
 
list stepName = stepParts[0]
 add the corresponding input content More...
 
tuple stepParts = step.split(":")
 
list stepSpec = self.stepMap[stepName]
 
tuple streamTypes = self._options.eventcontent.split(',')
 ends the –output options model More...
 
tuple theEventContent = cms.PSet(outputCommands = cms.untracked.vstring('keep *'))
 
tuple theExtraOutputCommands = anyOf(['o','oC','outputCommands'],outDefDict,'')
 
tuple theFileName = self._options.dirout+anyOf(['fn','fileName'],outDefDict,defaultFileName)
 
 theFileName = self._options.outfile_name
 
tuple theFilterName = anyOf(['f','ftN','filterName'],outDefDict,'')
 
string theFilterName = 'StreamALCACombined'
 
 theFilterName = self._options.filtername
 
tuple theModuleLabel = anyOf(['l','mL','moduleLabel'],outDefDict,'')
 
 theModuleLabel = name
 
tuple theObject = getattr(generatorModule,name)
 
tuple theSelectEvent = anyOf(['s','sE','selectEvents'],outDefDict,'')
 
tuple theStreamType = anyOf(['e','ec','eventContent','streamType'],outDefDict,theTier)
 event content More...
 
tuple theTier = anyOf(['t','tier','dataTier'],outDefDict)
 
tuple tiers = self._options.datatier.split(',')
 
tuple tmpOut = cms.EndPath(output)
 
list tryNames
 

Private Attributes

 _options
 

Detailed Description

The main building routines 

Definition at line 153 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 156 of file ConfigBuilder.py.

157  def __init__(self, options, process = None, with_output = False, with_input = False ):
158  """options taken from old cmsDriver and optparse """
159 
160  options.outfile_name = options.dirout+options.fileout
162  self._options = options
163 
164  if self._options.isData and options.isMC:
165  raise Exception("ERROR: You may specify only --data or --mc, not both")
166  #if not self._options.conditions:
167  # raise Exception("ERROR: No conditions given!\nPlease specify conditions. E.g. via --conditions=IDEAL_30X::All")

Member Function Documentation

def ConfigBuilder.ConfigBuilder.addCommon (   self)

Definition at line 285 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.profileOptions().

286  def addCommon(self):
287  if 'HARVESTING' in self.stepMap.keys() or 'ALCAHARVEST' in self.stepMap.keys():
288  self.process.options = cms.untracked.PSet( Rethrow = cms.untracked.vstring('ProductNotFound'),fileMode = cms.untracked.string('FULLMERGE'))
289  else:
290  self.process.options = cms.untracked.PSet( )
291  self.addedObjects.append(("","options"))
292 
293  if self._options.lazy_download:
294  self.process.AdaptorConfig = cms.Service("AdaptorConfig",
295  stats = cms.untracked.bool(True),
296  enable = cms.untracked.bool(True),
297  cacheHint = cms.untracked.string("lazy-download"),
298  readHint = cms.untracked.string("read-ahead-buffered")
299  )
300  self.addedObjects.append(("Setup lazy download","AdaptorConfig"))
301 
302  #self.process.cmsDriverCommand = cms.untracked.PSet( command=cms.untracked.string('cmsDriver.py '+self._options.arguments) )
303  #self.addedObjects.append(("what cmsDriver command was used","cmsDriverCommand"))
304 
305  if self._options.profile:
306  (start, interval, eventFormat, jobFormat)=self.profileOptions()
307  self.process.IgProfService = cms.Service("IgProfService",
308  reportFirstEvent = cms.untracked.int32(start),
309  reportEventInterval = cms.untracked.int32(interval),
310  reportToFileAtPostEvent = cms.untracked.string("| gzip -c > %s"%(eventFormat)),
311  reportToFileAtPostEndJob = cms.untracked.string("| gzip -c > %s"%(jobFormat)))
312  self.addedObjects.append(("Setup IGProf Service for profiling","IgProfService"))
def ConfigBuilder.ConfigBuilder.addConditions (   self)
Add conditions to the process

Definition at line 714 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare().

715  def addConditions(self):
"""Add conditions to the process"""
def ConfigBuilder.ConfigBuilder.addCustomise (   self)
Include the customise code 

Definition at line 733 of file ConfigBuilder.py.

734  def addCustomise(self):
735  """Include the customise code """
736 
custOpt=self._options.customisation_file.split(",")
def ConfigBuilder.ConfigBuilder.addExtraStream (   self,
  name,
  stream,
  workflow = 'full' 
)

Definition at line 1032 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.doNotInlineEventContent(), DTTTrigProd.DTTTrigProd.process, DTDqm.DTDqm.process, DTDQMMerge.DTDQMMerge.process, DTValidSummary.DTValidSummary.process, DTVDriftSegmentCalibration.DTVDriftSegmentCalibration.process, DTDQMHarvesting.DTDQMHarvesting.process, DTVDriftMeanTimerCalibration.DTVDriftMeanTimerCalibration.process, DTNoiseCalibration.DTNoiseCalibration.process, DTResidualCalibration.DTResidualCalibration.process, DTDQMValidation.DTDQMValidation.process, DTTTrigValid.DTTTrigValid.process, DTT0DBValidation.DTT0DBValidation.process, DTVDriftSegmentWriter.DTVDriftSegmentWriter.process, DTVDriftMeanTimerWriter.DTVDriftMeanTimerWriter.process, DTTTrigResidualCorr.DTTTrigResidualCorr.process, DTTTrigCorrFirst.DTTTrigCorrFirst.process, DTTTrigTimeBoxesWriter.DTTTrigTimeBoxesWriter.process, and ConfigBuilder.ConfigBuilder.process.

1033  def addExtraStream(self,name,stream,workflow='full'):
1034  # define output module and go from there
1035  output = cms.OutputModule("PoolOutputModule")
1036  if stream.selectEvents.parameters_().__len__()!=0:
1037  output.SelectEvents = stream.selectEvents
1038  else:
1039  output.SelectEvents = cms.untracked.PSet()
1040  output.SelectEvents.SelectEvents=cms.vstring()
1041  if isinstance(stream.paths,tuple):
1042  for path in stream.paths:
1043  output.SelectEvents.SelectEvents.append(path.label())
1044  else:
1045  output.SelectEvents.SelectEvents.append(stream.paths.label())
1046 
1047 
1048 
1049  if isinstance(stream.content,str):
1050  evtPset=getattr(self.process,stream.content)
1051  for p in evtPset.parameters_():
1052  setattr(output,p,getattr(evtPset,p))
1053  if not self._options.inlineEventContent:
1054  def doNotInlineEventContent(instance,label = "process."+stream.content+".outputCommands"):
1055  return label
1056  output.outputCommands.__dict__["dumpPython"] = doNotInlineEventContent
1057  else:
1058  output.outputCommands = stream.content
1059 
1060 
1061  output.fileName = cms.untracked.string(self._options.dirout+stream.name+'.root')
1062 
1063  output.dataset = cms.untracked.PSet( dataTier = stream.dataTier,
1064  filterName = cms.untracked.string(stream.name))
1065 
1066  if self._options.filtername:
1067  output.dataset.filterName= cms.untracked.string(self._options.filtername+"_"+stream.name)
1068 
1069  #add an automatic flushing to limit memory consumption
1070  output.eventAutoFlushCompressedSize=cms.untracked.int32(5*1024*1024)
1071 
1072  if workflow in ("producers,full"):
1073  if isinstance(stream.paths,tuple):
1074  for path in stream.paths:
1075  self.schedule.append(path)
1076  else:
1077  self.schedule.append(stream.paths)
1078 
1079 
1080  # in case of relvals we don't want to have additional outputs
1081  if (not self._options.relval) and workflow in ("full","output"):
1082  self.additionalOutputs[name] = output
1083  setattr(self.process,name,output)
1084 
1085  if workflow == 'output':
1086  # adjust the select events to the proper trigger results from previous process
1087  filterList = output.SelectEvents.SelectEvents
1088  for i, filter in enumerate(filterList):
1089  filterList[i] = filter+":"+self._options.triggerResultsProcess
1090 
1091  return output
def ConfigBuilder.ConfigBuilder.addMaxEvents (   self)
Here we decide how many evts will be processed

Definition at line 313 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare().

314  def addMaxEvents(self):
315  """Here we decide how many evts will be processed"""
316  self.process.maxEvents=cms.untracked.PSet(input=cms.untracked.int32(int(self._options.number)))
317  self.addedObjects.append(("","maxEvents"))
def ConfigBuilder.ConfigBuilder.addOutput (   self)
Add output module to the process 

Definition at line 431 of file ConfigBuilder.py.

432  def addOutput(self):
""" Add output module to the process """
def ConfigBuilder.ConfigBuilder.addSource (   self)
Here the source is built. Priority: file, generator

Definition at line 318 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare().

319  def addSource(self):
320  """Here the source is built. Priority: file, generator"""
321  self.addedObjects.append(("Input source","source"))
def ConfigBuilder.ConfigBuilder.addStandardSequences (   self)
Add selected standard sequences to the process

Definition at line 590 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare().

591  def addStandardSequences(self):
592  """
593  Add selected standard sequences to the process
594  """
# load the pile up file
def ConfigBuilder.ConfigBuilder.anyOf (   listOfKeys,
  dict,
  opt = None 
)

Definition at line 438 of file ConfigBuilder.py.

References join().

439  def anyOf(listOfKeys,dict,opt=None):
440  for k in listOfKeys:
441  if k in dict:
442  toReturn=dict[k]
443  dict.pop(k)
444  return toReturn
445  if opt!=None:
446  return opt
447  else:
448  raise Exception("any of "+','.join(listOfKeys)+" are mandatory entries of --output options")
static std::string join(char **cmd)
Definition: RemoteFile.cc:18
def ConfigBuilder.ConfigBuilder.build_production_info (   self,
  evt_type,
  evtnumber 
)
Add useful info for the production. 

Definition at line 1855 of file ConfigBuilder.py.

1856  def build_production_info(self, evt_type, evtnumber):
1857  """ Add useful info for the production. """
1858  self.process.configurationMetadata=cms.untracked.PSet\
1859  (version=cms.untracked.string("$Revision: 1.381.2.28 $"),
1860  name=cms.untracked.string("PyReleaseValidation"),
1861  annotation=cms.untracked.string(evt_type+ " nevts:"+str(evtnumber))
1862  )
1863 
1864  self.addedObjects.append(("Production Info","configurationMetadata"))
1865 
def ConfigBuilder.ConfigBuilder.completeInputCommand (   self)

Definition at line 675 of file ConfigBuilder.py.

References DTTTrigProd.DTTTrigProd.process, DTDqm.DTDqm.process, DTDQMMerge.DTDQMMerge.process, DTValidSummary.DTValidSummary.process, DTDQMHarvesting.DTDQMHarvesting.process, DTVDriftSegmentCalibration.DTVDriftSegmentCalibration.process, DTVDriftMeanTimerCalibration.DTVDriftMeanTimerCalibration.process, DTNoiseCalibration.DTNoiseCalibration.process, DTResidualCalibration.DTResidualCalibration.process, DTDQMValidation.DTDQMValidation.process, DTTTrigValid.DTTTrigValid.process, DTT0DBValidation.DTT0DBValidation.process, DTVDriftSegmentWriter.DTVDriftSegmentWriter.process, DTVDriftMeanTimerWriter.DTVDriftMeanTimerWriter.process, DTTTrigResidualCorr.DTTTrigResidualCorr.process, DTTTrigCorrFirst.DTTTrigCorrFirst.process, DTTTrigTimeBoxesWriter.DTTTrigTimeBoxesWriter.process, and ConfigBuilder.ConfigBuilder.process.

Referenced by ConfigBuilder.ConfigBuilder.prepare().

676  def completeInputCommand(self):
677  if self._options.inputEventContent:
678  import copy
679  def dropSecondDropStar(iec):
680  #drop occurence of 'drop *' in the list
681  count=0
682  for item in iec:
683  if item=='drop *':
684  if count!=0:
685  iec.remove(item)
686  count+=1
687 
688 
689  ## allow comma separated input eventcontent
690  if not hasattr(self.process.source,'inputCommands'): self.process.source.inputCommands=cms.untracked.vstring()
691  for evct in self._options.inputEventContent.split(','):
692  if evct=='': continue
693  theEventContent = getattr(self.process, evct+"EventContent")
694  if hasattr(theEventContent,'outputCommands'):
695  self.process.source.inputCommands.extend(copy.copy(theEventContent.outputCommands))
696  if hasattr(theEventContent,'inputCommands'):
697  self.process.source.inputCommands.extend(copy.copy(theEventContent.inputCommands))
698 
699  dropSecondDropStar(self.process.source.inputCommands)
700 
701  if not self._options.dropDescendant:
702  self.process.source.dropDescendantsOfDroppedBranches = cms.untracked.bool(False)
703 
704  #re-order the input commands to put drop first
705  ## drop is before keep: so just sort
706  ## commented out to make the reGEN work correctly..
707  #self.process.source.inputCommands.sort()
708  #remove that inconsistency: cannot be dropping * and keeping *
709  if 'keep *' in self.process.source.inputCommands and 'drop *' in self.process.source.inputCommands:
710  self.process.source.inputCommands.remove( 'keep *' )
711 
712 
713  return
def ConfigBuilder.ConfigBuilder.define_Configs (   self)

Definition at line 811 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.loadAndRemember().

812  def define_Configs(self):
813  if len(self.stepMap):
814  self.loadAndRemember('Configuration/StandardSequences/Services_cff')
815  if self._options.particleTable not in defaultOptions.particleTableList:
816  print 'Invalid particle table provided. Options are:'
817  print defaultOptions.particleTable
818  sys.exit(-1)
819  else:
820  if len(self.stepMap):
821  self.loadAndRemember('SimGeneral.HepPDTESSource.'+self._options.particleTable+'_cfi')
822 
823  self.loadAndRemember('FWCore/MessageService/MessageLogger_cfi')
825  self.ALCADefaultCFF="Configuration/StandardSequences/AlCaRecoStreams_cff"
826  self.GENDefaultCFF="Configuration/StandardSequences/Generator_cff"
827  self.SIMDefaultCFF="Configuration/StandardSequences/Sim_cff"
828  self.DIGIDefaultCFF="Configuration/StandardSequences/Digi_cff"
829  self.DIGI2RAWDefaultCFF="Configuration/StandardSequences/DigiToRaw_cff"
830  self.L1EMDefaultCFF='Configuration/StandardSequences/SimL1Emulator_cff'
831  self.L1MENUDefaultCFF="Configuration/StandardSequences/L1TriggerDefaultMenu_cff"
832  self.HLTDefaultCFF="Configuration/StandardSequences/HLTtable_cff"
833  self.RAW2DIGIDefaultCFF="Configuration/StandardSequences/RawToDigi_Data_cff"
834  self.L1RecoDefaultCFF="Configuration/StandardSequences/L1Reco_cff"
835  self.RECODefaultCFF="Configuration/StandardSequences/Reconstruction_Data_cff"
836  self.SKIMDefaultCFF="Configuration/StandardSequences/Skims_cff"
837  self.POSTRECODefaultCFF="Configuration/StandardSequences/PostRecoGenerator_cff"
838  self.VALIDATIONDefaultCFF="Configuration/StandardSequences/Validation_cff"
839  self.L1HwValDefaultCFF = "Configuration/StandardSequences/L1HwVal_cff"
840  self.DQMOFFLINEDefaultCFF="DQMOffline/Configuration/DQMOffline_cff"
841  self.HARVESTINGDefaultCFF="Configuration/StandardSequences/Harvesting_cff"
842  self.ALCAHARVESTDefaultCFF="Configuration/StandardSequences/AlCaHarvesting_cff"
843  self.ENDJOBDefaultCFF="Configuration/StandardSequences/EndOfProcess_cff"
844  self.ConditionsDefaultCFF = "Configuration/StandardSequences/FrontierConditions_GlobalTag_cff"
845  self.CFWRITERDefaultCFF = "Configuration/StandardSequences/CrossingFrameWriter_cff"
846  self.REPACKDefaultCFF="Configuration/StandardSequences/DigiToRaw_Repack_cff"
847 
848  if "DATAMIX" in self.stepMap.keys():
849  self.DATAMIXDefaultCFF="Configuration/StandardSequences/DataMixer"+self._options.datamix+"_cff"
850  self.DIGIDefaultCFF="Configuration/StandardSequences/DigiDM_cff"
851  self.DIGI2RAWDefaultCFF="Configuration/StandardSequences/DigiToRawDM_cff"
852  self.L1EMDefaultCFF='Configuration/StandardSequences/SimL1EmulatorDM_cff'
self.ALCADefaultSeq=None
def ConfigBuilder.ConfigBuilder.doNotInlineEventContent (   instance,
  label = "cms.untracked.vstring(process."+theStreamType+"EventContent.outputCommands)" 
)

Definition at line 522 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.executeAndRemember(), DTTTrigProd.DTTTrigProd.process, DTDqm.DTDqm.process, DTDQMMerge.DTDQMMerge.process, DTValidSummary.DTValidSummary.process, DTVDriftSegmentCalibration.DTVDriftSegmentCalibration.process, DTDQMHarvesting.DTDQMHarvesting.process, DTVDriftMeanTimerCalibration.DTVDriftMeanTimerCalibration.process, DTNoiseCalibration.DTNoiseCalibration.process, DTResidualCalibration.DTResidualCalibration.process, DTDQMValidation.DTDQMValidation.process, DTTTrigValid.DTTTrigValid.process, DTT0DBValidation.DTT0DBValidation.process, DTVDriftSegmentWriter.DTVDriftSegmentWriter.process, DTVDriftMeanTimerWriter.DTVDriftMeanTimerWriter.process, DTTTrigResidualCorr.DTTTrigResidualCorr.process, DTTTrigCorrFirst.DTTTrigCorrFirst.process, DTTTrigTimeBoxesWriter.DTTTrigTimeBoxesWriter.process, and ConfigBuilder.ConfigBuilder.process.

Referenced by ConfigBuilder.ConfigBuilder.addExtraStream(), and ConfigBuilder.ConfigBuilder.doNotInlineEventContent().

523  def doNotInlineEventContent(instance,label = "cms.untracked.vstring(process."+theStreamType+"EventContent.outputCommands)"):
return label
def ConfigBuilder.ConfigBuilder.doNotInlineEventContent (   instance,
  label = "process."+streamType+"EventContent.outputCommands" 
)

Definition at line 582 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.doNotInlineEventContent().

583  def doNotInlineEventContent(instance,label = "process."+streamType+"EventContent.outputCommands"):
return label
def ConfigBuilder.ConfigBuilder.executeAndRemember (   self,
  command 
)
helper routine to remember replace statements

Definition at line 278 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.doNotInlineEventContent(), ConfigBuilder.ConfigBuilder.prepare_ALCAHARVEST(), ConfigBuilder.ConfigBuilder.prepare_DIGI(), ConfigBuilder.ConfigBuilder.prepare_FASTSIM(), ConfigBuilder.ConfigBuilder.prepare_HLT(), ConfigBuilder.ConfigBuilder.prepare_SIM(), and ConfigBuilder.ConfigBuilder.prepare_VALIDATION().

279  def executeAndRemember(self, command):
280  """helper routine to remember replace statements"""
281  self.additionalCommands.append(command)
282  if not command.strip().startswith("#"):
283  # substitute: process.foo = process.bar -> self.process.foo = self.process.bar
284  exec(command.replace("process.","self.process."))
def ConfigBuilder.ConfigBuilder.expandMapping (   self,
  seqList,
  mapping,
  index = None 
)

Definition at line 1692 of file ConfigBuilder.py.

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

1693  def expandMapping(self,seqList,mapping,index=None):
1694  maxLevel=20
1695  level=0
1696  while '@' in repr(seqList) and level<maxLevel:
1697  level+=1
1698  for specifiedCommand in seqList:
1699  if specifiedCommand.startswith('@'):
1700  location=specifiedCommand[1:]
1701  if not location in mapping:
1702  raise Exception("Impossible to map "+location+" from "+repr(mapping))
1703  mappedTo=mapping[location]
1704  if index!=None:
1705  mappedTo=mappedTo[index]
1706  seqList.remove(specifiedCommand)
1707  seqList.extend(mappedTo.split('+'))
1708  break;
1709  if level==maxLevel:
1710  raise Exception("Could not fully expand "+repr(seqList)+" from "+repr(mapping))
def ConfigBuilder.ConfigBuilder.filesFromOption (   self)

Definition at line 322 of file ConfigBuilder.py.

References ConfigBuilder.filesFromDASQuery(), and ConfigBuilder.filesFromList().

323  def filesFromOption(self):
324  for entry in self._options.filein.split(','):
325  print "entry",entry
326  if entry.startswith("filelist:"):
327  filesFromList(entry[9:],self.process.source)
328  elif entry.startswith("dbs:") or entry.startswith("das:"):
329  filesFromDASQuery('file dataset = %s'%(entry[4:]),self.process.source)
330  else:
331  self.process.source.fileNames.append(self._options.dirin+entry)
332  if self._options.secondfilein:
333  if not hasattr(self.process.source,"secondaryFileNames"):
334  raise Exception("--secondfilein not compatible with "+self._options.filetype+"input type")
335  for entry in self._options.secondfilein.split(','):
336  print "entry",entry
337  if entry.startswith("filelist:"):
338  self.process.source.secondaryFileNames.extend((filesFromList(entry[9:]))[0])
339  elif entry.startswith("dbs:") or entry.startswith("das:"):
340  self.process.source.secondaryFileNames.extend((filesFromDASQuery('file dataset = %s'%(entry[4:])))[0])
341  else:
342  self.process.source.secondaryFileNames.append(self._options.dirin+entry)
343 
344  if self._options.filein or self._options.dasquery:
345  if self._options.filetype == "EDM":
346  self.process.source=cms.Source("PoolSource",
347  fileNames = cms.untracked.vstring(),
348  secondaryFileNames= cms.untracked.vstring())
349  filesFromOption(self)
350  elif self._options.filetype == "DAT":
351  self.process.source=cms.Source("NewEventStreamFileReader",fileNames = cms.untracked.vstring())
352  filesFromOption(self)
353  elif self._options.filetype == "LHE":
354  self.process.source=cms.Source("LHESource", fileNames = cms.untracked.vstring())
355  if self._options.filein.startswith("lhe:"):
356  #list the article directory automatically
357  args=self._options.filein.split(':')
358  article=args[1]
359  print 'LHE input from article ',article
360  location='/store/lhe/'
361  import os
362  textOfFiles=os.popen('cmsLHEtoEOSManager.py -l '+article)
363  for line in textOfFiles:
364  for fileName in [x for x in line.split() if '.lhe' in x]:
365  self.process.source.fileNames.append(location+article+'/'+fileName)
366  if len(args)>2:
367  self.process.source.skipEvents = cms.untracked.uint32(int(args[2]))
368  else:
369  filesFromOption(self)
370 
371 
372  elif self._options.filetype == "DQM":
373  self.process.source=cms.Source("DQMRootSource",
374  fileNames = cms.untracked.vstring())
375  filesFromOption(self)
376 
377  if ('HARVESTING' in self.stepMap.keys() or 'ALCAHARVEST' in self.stepMap.keys()) and (not self._options.filetype == "DQM"):
378  self.process.source.processingMode = cms.untracked.string("RunsAndLumis")
def ConfigBuilder.ConfigBuilder.finalizeFastSimHLT (   self)

Definition at line 1806 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_FASTSIM().

1807  def finalizeFastSimHLT(self):
1808  self.process.reconstruction = cms.Path(self.process.reconstructionWithFamos)
1809  self.schedule.append(self.process.reconstruction)
def ConfigBuilder.ConfigBuilder.inGeometryKeys (   opt)

Definition at line 964 of file ConfigBuilder.py.

References split.

965  def inGeometryKeys(opt):
966  from Configuration.StandardSequences.GeometryConf import GeometryConf
967  if opt in GeometryConf:
968  return GeometryConf[opt]
969  else:
970  return opt
def ConfigBuilder.ConfigBuilder.load (   self,
  includeFile 
)

Definition at line 264 of file ConfigBuilder.py.

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

265  def load(self,includeFile):
266  includeFile = includeFile.replace('/','.')
267  self.process.load(includeFile)
268  return sys.modules[includeFile]
def ConfigBuilder.ConfigBuilder.loadAndRemember (   self,
  includeFile 
)
helper routine to load am memorize imports

Definition at line 269 of file ConfigBuilder.py.

Referenced by 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_FASTSIM(), ConfigBuilder.ConfigBuilder.prepare_HLT(), ConfigBuilder.ConfigBuilder.prepare_L1(), ConfigBuilder.ConfigBuilder.prepare_L1REPACK(), ConfigBuilder.ConfigBuilder.prepare_POSTRECO(), and ConfigBuilder.ConfigBuilder.prepare_SIM().

270  def loadAndRemember(self, includeFile):
271  """helper routine to load am memorize imports"""
272  # we could make the imports a on-the-fly data method of the process instance itself
273  # not sure if the latter is a good idea
274  includeFile = includeFile.replace('/','.')
275  self.imports.append(includeFile)
276  self.process.load(includeFile)
277  return sys.modules[includeFile]
def ConfigBuilder.ConfigBuilder.loadDefaultOrSpecifiedCFF (   self,
  sequence,
  defaultCFF 
)

Definition at line 1097 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.loadAndRemember().

Referenced by ConfigBuilder.ConfigBuilder.prepare_ALCA(), ConfigBuilder.ConfigBuilder.prepare_DIGI(), ConfigBuilder.ConfigBuilder.prepare_DIGI2RAW(), ConfigBuilder.ConfigBuilder.prepare_DQM(), ConfigBuilder.ConfigBuilder.prepare_ENDJOB(), ConfigBuilder.ConfigBuilder.prepare_L1HwVal(), ConfigBuilder.ConfigBuilder.prepare_L1Reco(), ConfigBuilder.ConfigBuilder.prepare_RAW2DIGI(), ConfigBuilder.ConfigBuilder.prepare_RECO(), ConfigBuilder.ConfigBuilder.prepare_REPACK(), ConfigBuilder.ConfigBuilder.prepare_SKIM(), ConfigBuilder.ConfigBuilder.prepare_USER(), and ConfigBuilder.ConfigBuilder.prepare_VALIDATION().

1098  def loadDefaultOrSpecifiedCFF(self, sequence,defaultCFF):
1099  if ( len(sequence.split('.'))==1 ):
1100  l=self.loadAndRemember(defaultCFF)
1101  elif ( len(sequence.split('.'))==2 ):
1102  l=self.loadAndRemember(sequence.split('.')[0])
1103  sequence=sequence.split('.')[1]
1104  else:
1105  print "sub sequence configuration must be of the form dir/subdir/cff.a+b+c or cff.a"
1106  print sequence,"not recognized"
1107  raise
1108  return l
def ConfigBuilder.ConfigBuilder.prepare (   self,
  doChecking = False 
)
Prepare the configuration string and add missing pieces.

Definition at line 1866 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.addConditions(), ConfigBuilder.ConfigBuilder.addMaxEvents(), ConfigBuilder.ConfigBuilder.addSource(), ConfigBuilder.ConfigBuilder.addStandardSequences(), ConfigBuilder.ConfigBuilder.completeInputCommand(), and ConfigBuilder.ConfigBuilder.loadAndRemember().

1867  def prepare(self, doChecking = False):
1868  """ Prepare the configuration string and add missing pieces."""
1869 
1870  self.loadAndRemember(self.EVTCONTDefaultCFF) #load the event contents regardless
self.addMaxEvents()
def ConfigBuilder.ConfigBuilder.prepare_ALCA (   self,
  sequence = None,
  workflow = 'full' 
)
Enrich the process with alca streams 

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

1147  def prepare_ALCA(self, sequence = None, workflow = 'full'):
1148  """ Enrich the process with alca streams """
1149  alcaConfig=self.loadDefaultOrSpecifiedCFF(sequence,self.ALCADefaultCFF)
1150  sequence = sequence.split('.')[-1]
1151 
1152  # decide which ALCA paths to use
alcaList = sequence.split("+")
def ConfigBuilder.ConfigBuilder.prepare_ALCAHARVEST (   self,
  sequence = None 
)
Enrich the process with AlCaHarvesting step 

Definition at line 1777 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.ALCAHARVESTDefaultCFF, ConfigBuilder.ConfigBuilder.executeAndRemember(), and ConfigBuilder.ConfigBuilder.loadAndRemember().

1778  def prepare_ALCAHARVEST(self, sequence = None):
1779  """ Enrich the process with AlCaHarvesting step """
1780  harvestingConfig = self.loadAndRemember(self.ALCAHARVESTDefaultCFF)
1781  sequence=sequence.split(".")[-1]
1782 
1783  # decide which AlcaHARVESTING paths to use
1784  harvestingList = sequence.split("+")
1785  for name in harvestingConfig.__dict__:
1786  harvestingstream = getattr(harvestingConfig,name)
1787  if name in harvestingList and isinstance(harvestingstream,cms.Path):
1788  self.schedule.append(harvestingstream)
1789  self.executeAndRemember("process.PoolDBOutputService.toPut.append(process.ALCAHARVEST" + name + "_dbOutput)")
1790  self.executeAndRemember("process.pclMetadataWriter.recordsToMap.append(process.ALCAHARVEST" + name + "_metadata)")
harvestingList.remove(name)
def ConfigBuilder.ConfigBuilder.prepare_ALCAOUTPUT (   self,
  sequence = None 
)

Definition at line 1143 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.prepare_ALCA().

1144  def prepare_ALCAOUTPUT(self, sequence = None):
1145  self.prepare_ALCA(sequence, workflow = "output")
def ConfigBuilder.ConfigBuilder.prepare_ALCAPRODUCER (   self,
  sequence = None 
)

Definition at line 1140 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.prepare_ALCA().

1141  def prepare_ALCAPRODUCER(self, sequence = None):
1142  self.prepare_ALCA(sequence, workflow = "producers")
def ConfigBuilder.ConfigBuilder.prepare_CFWRITER (   self,
  sequence = None 
)
Enrich the schedule with the crossing frame writer step

Definition at line 1325 of file ConfigBuilder.py.

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

1326  def prepare_CFWRITER(self, sequence = None):
1327  """ Enrich the schedule with the crossing frame writer step"""
1329  self.scheduleSequence('pcfw','cfwriter_step')
1330  return
def ConfigBuilder.ConfigBuilder.prepare_DATAMIX (   self,
  sequence = None 
)
Enrich the schedule with the digitisation step

Definition at line 1331 of file ConfigBuilder.py.

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

1332  def prepare_DATAMIX(self, sequence = None):
1333  """ Enrich the schedule with the digitisation step"""
1335  self.scheduleSequence('pdatamix','datamixing_step')
1336  return
def ConfigBuilder.ConfigBuilder.prepare_DIGI (   self,
  sequence = None 
)
Enrich the schedule with the digitisation step

Definition at line 1309 of file ConfigBuilder.py.

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

1310  def prepare_DIGI(self, sequence = None):
1311  """ Enrich the schedule with the digitisation step"""
1312  self.loadDefaultOrSpecifiedCFF(sequence,self.DIGIDefaultCFF)
1313 
1314  if self._options.gflash==True:
1315  self.loadAndRemember("Configuration/StandardSequences/GFlashDIGI_cff")
def ConfigBuilder.ConfigBuilder.prepare_DIGI2RAW (   self,
  sequence = None 
)

Definition at line 1337 of file ConfigBuilder.py.

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

1338  def prepare_DIGI2RAW(self, sequence = None):
1339  self.loadDefaultOrSpecifiedCFF(sequence,self.DIGI2RAWDefaultCFF)
1340  self.scheduleSequence(sequence.split('.')[-1],'digi2raw_step')
1341  return
def ConfigBuilder.ConfigBuilder.prepare_DQM (   self,
  sequence = 'DQMOffline' 
)

Definition at line 1711 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.DQMOFFLINEDefaultCFF, ConfigBuilder.ConfigBuilder.expandMapping(), ConfigBuilder.ConfigBuilder.loadDefaultOrSpecifiedCFF(), runtimedef.set(), and split.

1712  def prepare_DQM(self, sequence = 'DQMOffline'):
1713  # this one needs replacement
1714 
sequenceList=sequence.split('.')[-1].split('+')
double split
Definition: MVATrainer.cc:139
def ConfigBuilder.ConfigBuilder.prepare_ENDJOB (   self,
  sequence = 'endOfProcess' 
)

Definition at line 1801 of file ConfigBuilder.py.

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

1802  def prepare_ENDJOB(self, sequence = 'endOfProcess'):
1803  self.loadDefaultOrSpecifiedCFF(sequence,self.ENDJOBDefaultCFF)
1804  self.scheduleSequenceAtEnd(sequence.split('.')[-1],'endjob_step')
1805  return
def ConfigBuilder.ConfigBuilder.prepare_FASTSIM (   self,
  sequence = "all" 
)
Enrich the schedule with fastsim

Definition at line 1810 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.executeAndRemember(), ConfigBuilder.ConfigBuilder.finalizeFastSimHLT(), ConfigBuilder.ConfigBuilder.loadAndRemember(), ConfigBuilder.ConfigBuilder.prepare_HLT(), DTTTrigProd.DTTTrigProd.process, DTValidSummary.DTValidSummary.process, DTDqm.DTDqm.process, DTDQMMerge.DTDQMMerge.process, DTVDriftMeanTimerCalibration.DTVDriftMeanTimerCalibration.process, DTVDriftSegmentCalibration.DTVDriftSegmentCalibration.process, DTDQMHarvesting.DTDQMHarvesting.process, DTResidualCalibration.DTResidualCalibration.process, DTNoiseCalibration.DTNoiseCalibration.process, DTTTrigValid.DTTTrigValid.process, DTDQMValidation.DTDQMValidation.process, DTT0DBValidation.DTT0DBValidation.process, DTVDriftMeanTimerWriter.DTVDriftMeanTimerWriter.process, DTVDriftSegmentWriter.DTVDriftSegmentWriter.process, DTTTrigResidualCorr.DTTTrigResidualCorr.process, DTTTrigCorrFirst.DTTTrigCorrFirst.process, DTTTrigTimeBoxesWriter.DTTTrigTimeBoxesWriter.process, and ConfigBuilder.ConfigBuilder.process.

1811  def prepare_FASTSIM(self, sequence = "all"):
1812  """Enrich the schedule with fastsim"""
1813  self.loadAndRemember("FastSimulation/Configuration/FamosSequences_cff")
1814 
1815  if sequence in ('all','allWithHLTFiltering',''):
1816  if not 'HLT' in self.stepMap.keys():
1817  self.prepare_HLT(sequence=None)
1818 
1819  self.executeAndRemember("process.famosSimHits.SimulateCalorimetry = True")
1820  self.executeAndRemember("process.famosSimHits.SimulateTracking = True")
1821 
1822  self.executeAndRemember("process.simulation = cms.Sequence(process.simulationWithFamos)")
1823  self.executeAndRemember("process.HLTEndSequence = cms.Sequence(process.reconstructionWithFamos)")
1824 
1825  # since we have HLT here, the process should be called HLT
1826  self._options.name = "HLT"
1827 
1828  # if we don't want to filter after HLT but simulate everything regardless of what HLT tells, we have to add reconstruction explicitly
1829  if sequence == 'all' and not 'HLT' in self.stepMap.keys(): #(a)
1830  self.finalizeFastSimHLT()
1831  elif sequence == 'famosWithEverything':
1832  self.process.fastsim_step = cms.Path( getattr(self.process, "famosWithEverything") )
1833  self.schedule.append(self.process.fastsim_step)
1834 
1835  # now the additional commands we need to make the config work
1836  self.executeAndRemember("process.VolumeBasedMagneticFieldESProducer.useParametrizedTrackerField = True")
1837  else:
1838  print "FastSim setting", sequence, "unknown."
1839  raise ValueError
1840 
1841  if 'Flat' in self._options.beamspot:
1842  beamspotType = 'Flat'
1843  elif 'Gauss' in self._options.beamspot:
1844  beamspotType = 'Gaussian'
1845  else:
1846  beamspotType = 'BetaFunc'
1847  self.loadAndRemember('IOMC.EventVertexGenerators.VtxSmearedParameters_cfi')
1848  beamspotName = 'process.%sVtxSmearingParameters' %(self._options.beamspot)
1849  self.executeAndRemember(beamspotName+'.type = cms.string("%s")'%(beamspotType))
self.executeAndRemember('process.famosSimHits.VertexGenerator = '+beamspotName)
def ConfigBuilder.ConfigBuilder.prepare_FILTER (   self,
  sequence = None 
)
Enrich the schedule with a user defined filter sequence 

Definition at line 1470 of file ConfigBuilder.py.

1471  def prepare_FILTER(self, sequence = None):
''' Enrich the schedule with a user defined filter sequence '''
def ConfigBuilder.ConfigBuilder.prepare_GEN (   self,
  sequence = None 
)
load the fragment of generator configuration 

Definition at line 1218 of file ConfigBuilder.py.

1219  def prepare_GEN(self, sequence = None):
""" load the fragment of generator configuration """
def ConfigBuilder.ConfigBuilder.prepare_HARVESTING (   self,
  sequence = None 
)
Enrich the process with harvesting step 

Definition at line 1744 of file ConfigBuilder.py.

1745  def prepare_HARVESTING(self, sequence = None):
1746  """ Enrich the process with harvesting step """
1747  self.EDMtoMECFF='Configuration/StandardSequences/EDMtoME'+self._options.harvesting+'_cff'
self.loadAndRemember(self.EDMtoMECFF)
def ConfigBuilder.ConfigBuilder.prepare_HLT (   self,
  sequence = None 
)
Enrich the schedule with the HLT simulation step

Definition at line 1372 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.executeAndRemember(), join(), and ConfigBuilder.ConfigBuilder.loadAndRemember().

Referenced by ConfigBuilder.ConfigBuilder.prepare_FASTSIM().

1373  def prepare_HLT(self, sequence = None):
1374  """ Enrich the schedule with the HLT simulation step"""
1375  if not sequence:
1376  print "no specification of the hlt menu has been given, should never happen"
1377  raise Exception('no HLT sequence provided')
1378 
1379  if '@' in sequence:
1380  # case where HLT:@something was provided
1381  from Configuration.HLT.autoHLT import autoHLT
1382  key = sequence[1:]
1383  if key in autoHLT:
1384  sequence = autoHLT[key]
1385  else:
1386  raise ValueError('no HLT mapping key "%s" found in autoHLT' % key)
1387 
1388  if ',' in sequence:
1389  # case where HLT:something:something was provided transcribed in sequence = something,something
1390  self.executeAndRemember('import HLTrigger.Configuration.Utilities')
1391  optionsForHLT = {}
1392  if self._options.scenario == 'HeavyIons':
1393  optionsForHLT['type'] = 'HIon'
1394  else:
1395  optionsForHLT['type'] = 'GRun'
1396  optionsForHLTConfig = ', '.join('%s=%s' % (key, repr(val)) for (key, val) in optionsForHLT.iteritems())
1397  if sequence == 'run,fromSource':
1398  if hasattr(self.process.source,'firstRun'):
1399  self.executeAndRemember('process.loadHltConfiguration("run:%%d" %% (process.source.firstRun.value()), %s)' % (optionsForHLTConfig))
1400  elif hasattr(self.process.source,'setRunNumber'):
1401  self.executeAndRemember('process.loadHltConfiguration("run:%%d" %% (process.source.setRunNumber.value()), %s)' % (optionsForHLTConfig))
1402  else:
1403  raise Exception('Cannot replace menu to load %s'%(sequence))
1404  elif sequence == 'cached,fromSource':
1405  self.executeAndRemember('import Configuration.HLT.cachedHLT')
1406  if hasattr(self.process.source,'firstRun'):
1407  self.executeAndRemember('process.loadCachedHltConfiguration( process.source.firstRun.value(), %s )' % ('FASTSIM' in self.stepMap))
1408  elif hasattr(self.process.source,'setRunNumber'):
1409  self.executeAndRemember('process.loadCachedHltConfiguration( process.source.setRunNumber.value(), %s )' % ('FASTSIM' in self.stepMap))
1410  else:
1411  raise Exception('Cannot replace menu to load %s'%(sequence))
1412  elif sequence.startswith( 'cached,' ):
1413  run = int( sequence.split(',')[1] )
1414  self.executeAndRemember('import Configuration.HLT.cachedHLT')
1415  self.executeAndRemember('process.loadCachedHltConfiguration( %d, %s )' % (run, 'FASTSIM' in self.stepMap))
1416  else:
1417  self.executeAndRemember('process.loadHltConfiguration("%s",%s)'%(sequence.replace(',',':'),optionsForHLTConfig))
1418  else:
1419  if 'FASTSIM' in self.stepMap:
1420  self.loadAndRemember('HLTrigger/Configuration/HLT_%s_Famos_cff' % sequence)
1421  else:
1422  self.loadAndRemember('HLTrigger/Configuration/HLT_%s_cff' % sequence)
1423 
1424  if self._options.isMC:
1425  self._options.customisation_file+=",HLTrigger/Configuration/customizeHLTforMC.customizeHLTforMC"
1426 
1427  if self._options.name != 'HLT':
1428  self.additionalCommands.append('from HLTrigger.Configuration.CustomConfigs import ProcessName')
1429  self.additionalCommands.append('process = ProcessName(process)')
1430  self.additionalCommands.append('')
1431  from HLTrigger.Configuration.CustomConfigs import ProcessName
1432  self.process = ProcessName(self.process)
1433 
1434  self.schedule.append(self.process.HLTSchedule)
1435  [self.blacklist_paths.append(path) for path in self.process.HLTSchedule if isinstance(path,(cms.Path,cms.EndPath))]
1436  if ('FASTSIM' in self.stepMap and 'HLT' in self.stepMap):
1437  self.finalizeFastSimHLT()
1438 
static std::string join(char **cmd)
Definition: RemoteFile.cc:18
def ConfigBuilder.ConfigBuilder.prepare_L1 (   self,
  sequence = None 
)
Enrich the schedule with the L1 simulation step

Definition at line 1347 of file ConfigBuilder.py.

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

1348  def prepare_L1(self, sequence = None):
1349  """ Enrich the schedule with the L1 simulation step"""
1350  if not sequence:
1351  self.loadAndRemember(self.L1EMDefaultCFF)
1352  else:
1353  # let the L1 package decide for the scenarios available
1354  from L1Trigger.Configuration.ConfigBuilder import getConfigsForScenario
1355  listOfImports = getConfigsForScenario(sequence)
1356  for file in listOfImports:
1357  self.loadAndRemember(file)
1358  self.scheduleSequence('SimL1Emulator','L1simulation_step')
1359  return
def getConfigsForScenario
def ConfigBuilder.ConfigBuilder.prepare_L1HwVal (   self,
  sequence = 'L1HwVal' 
)
Enrich the schedule with L1 HW validation 

Definition at line 1457 of file ConfigBuilder.py.

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

1458  def prepare_L1HwVal(self, sequence = 'L1HwVal'):
1459  ''' Enrich the schedule with L1 HW validation '''
self.loadDefaultOrSpecifiedCFF(sequence,self.L1HwValDefaultCFF)
def ConfigBuilder.ConfigBuilder.prepare_L1Reco (   self,
  sequence = "L1Reco" 
)
Enrich the schedule with L1 reconstruction 

Definition at line 1464 of file ConfigBuilder.py.

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

1465  def prepare_L1Reco(self, sequence = "L1Reco"):
1466  ''' Enrich the schedule with L1 reconstruction '''
self.loadDefaultOrSpecifiedCFF(sequence,self.L1RecoDefaultCFF)
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 1360 of file ConfigBuilder.py.

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

1361  def prepare_L1REPACK(self, sequence = None):
1362  """ 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"""
1363  if sequence is not 'GT':
1364  print 'Running the full L1 emulator is not supported yet'
1365  raise Exception('unsupported feature')
1366  if sequence is 'GT':
1367  self.loadAndRemember('Configuration/StandardSequences/SimL1EmulatorRepack_GT_cff')
1368  if self._options.scenario == 'HeavyIons':
1369  self.renameInputTagsInSequence("SimL1Emulator","rawDataCollector","rawDataRepacker")
1370  self.scheduleSequence('SimL1Emulator','L1simulation_step')
1371 
def ConfigBuilder.ConfigBuilder.prepare_LHE (   self,
  sequence = None 
)

Definition at line 1202 of file ConfigBuilder.py.

References DTTTrigProd.DTTTrigProd.process, DTDqm.DTDqm.process, DTDQMMerge.DTDQMMerge.process, DTValidSummary.DTValidSummary.process, DTVDriftSegmentCalibration.DTVDriftSegmentCalibration.process, DTDQMHarvesting.DTDQMHarvesting.process, DTVDriftMeanTimerCalibration.DTVDriftMeanTimerCalibration.process, DTNoiseCalibration.DTNoiseCalibration.process, DTResidualCalibration.DTResidualCalibration.process, DTDQMValidation.DTDQMValidation.process, DTTTrigValid.DTTTrigValid.process, DTT0DBValidation.DTT0DBValidation.process, DTVDriftSegmentWriter.DTVDriftSegmentWriter.process, DTVDriftMeanTimerWriter.DTVDriftMeanTimerWriter.process, DTTTrigResidualCorr.DTTTrigResidualCorr.process, DTTTrigCorrFirst.DTTTrigCorrFirst.process, DTTTrigTimeBoxesWriter.DTTTrigTimeBoxesWriter.process, ConfigBuilder.ConfigBuilder.process, and linker.replace().

1203  def prepare_LHE(self, sequence = None):
1204  #load the fragment
1205  ##make it loadable
1206  loadFragment = self._options.evt_type.replace('.py','',).replace('.','_').replace('python/','').replace('/','.')
1207  print "Loading lhe fragment from",loadFragment
1208  __import__(loadFragment)
1209  self.process.load(loadFragment)
1210  ##inline the modules
1211  self._options.inlineObjets+=','+sequence
1212 
1213  getattr(self.process,sequence).nEvents = int(self._options.number)
1214 
1215  #schedule it
1216  self.process.lhe_step = cms.Path( getattr( self.process,sequence) )
1217  self.schedule.append( self.process.lhe_step )
def replace
Definition: linker.py:10
def ConfigBuilder.ConfigBuilder.prepare_POSTRECO (   self,
  sequence = None 
)
Enrich the schedule with the postreco step 

Definition at line 1558 of file ConfigBuilder.py.

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

1559  def prepare_POSTRECO(self, sequence = None):
1560  """ Enrich the schedule with the postreco step """
self.loadAndRemember(self.POSTRECODefaultCFF)
def ConfigBuilder.ConfigBuilder.prepare_RAW2DIGI (   self,
  sequence = "RawToDigi" 
)

Definition at line 1450 of file ConfigBuilder.py.

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

Referenced by ConfigBuilder.ConfigBuilder.prepare_RAW2RECO().

1451  def prepare_RAW2DIGI(self, sequence = "RawToDigi"):
1452  self.loadDefaultOrSpecifiedCFF(sequence,self.RAW2DIGIDefaultCFF)
1453  self.scheduleSequence(sequence,'raw2digi_step')
1454  # if self._options.isRepacked:
1455  #self.renameInputTagsInSequence(sequence)
1456  return
def ConfigBuilder.ConfigBuilder.prepare_RAW2RECO (   self,
  sequence = None 
)

Definition at line 1439 of file ConfigBuilder.py.

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

1440  def prepare_RAW2RECO(self, sequence = None):
1441  if ','in sequence:
1442  seqReco=sequence.split(',')[1]
1443  seqDigi=sequence.split(',')[0]
1444  else:
1445  print "RAW2RECO requires two specifications",sequence,"insufficient"
1446 
1447  self.prepare_RAW2DIGI(seqDigi)
1448  self.prepare_RECO(seqReco)
1449  return
def prepare_RECO
put the filtering path in the schedule
def ConfigBuilder.ConfigBuilder.prepare_RECO (   self,
  sequence = "reconstruction" 
)

put the filtering path in the schedule

put it before all the other paths

Enrich the schedule with reconstruction 

Definition at line 1502 of file ConfigBuilder.py.

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

Referenced by ConfigBuilder.ConfigBuilder.prepare_RAW2RECO().

1503  def prepare_RECO(self, sequence = "reconstruction"):
1504  ''' Enrich the schedule with reconstruction '''
self.loadDefaultOrSpecifiedCFF(sequence,self.RECODefaultCFF)
def prepare_RECO
put the filtering path in the schedule
def ConfigBuilder.ConfigBuilder.prepare_REPACK (   self,
  sequence = None 
)

Definition at line 1342 of file ConfigBuilder.py.

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

1343  def prepare_REPACK(self, sequence = None):
1344  self.loadDefaultOrSpecifiedCFF(sequence,self.REPACKDefaultCFF)
1345  self.scheduleSequence(sequence.split('.')[-1],'digi2repack_step')
1346  return
def ConfigBuilder.ConfigBuilder.prepare_SIM (   self,
  sequence = None 
)
Enrich the schedule with the summary of the filter step 
Enrich the schedule with the simulation step

Definition at line 1291 of file ConfigBuilder.py.

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

1292  def prepare_SIM(self, sequence = None):
1293  """ Enrich the schedule with the simulation step"""
1294  self.loadAndRemember(self.SIMDefaultCFF)
1295  if self._options.gflash==True:
1296  self.loadAndRemember("Configuration/StandardSequences/GFlashSIM_cff")
1297 
1298  if self._options.magField=='0T':
1299  self.executeAndRemember("process.g4SimHits.UseMagneticField = cms.bool(False)")
1300 
1301  if self._options.himix==True:
1302  if self._options.geometry in defaultOptions.geometryExtendedOptions:
1303  self.loadAndRemember("SimGeneral/MixingModule/himixSIMExtended_cff")
1304  else:
1305  self.loadAndRemember("SimGeneral/MixingModule/himixSIMIdeal_cff")
def ConfigBuilder.ConfigBuilder.prepare_SKIM (   self,
  sequence = "all" 
)
Enrich the schedule with skimming fragments

Definition at line 1508 of file ConfigBuilder.py.

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

1509  def prepare_SKIM(self, sequence = "all"):
1510  ''' Enrich the schedule with skimming fragments'''
1511  skimConfig = self.loadDefaultOrSpecifiedCFF(sequence,self.SKIMDefaultCFF)
1512  sequence = sequence.split('.')[-1]
1513 
1514  skimlist=sequence.split('+')
## support @Mu+DiJet+@Electron configuration via autoSkim.py
def ConfigBuilder.ConfigBuilder.prepare_USER (   self,
  sequence = None 
)
Enrich the schedule with a user defined sequence 

Definition at line 1552 of file ConfigBuilder.py.

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

1553  def prepare_USER(self, sequence = None):
1554  ''' Enrich the schedule with a user defined sequence '''
self.loadDefaultOrSpecifiedCFF(sequence,self.USERDefaultCFF)
def ConfigBuilder.ConfigBuilder.prepare_VALIDATION (   self,
  sequence = 'validation' 
)

Definition at line 1565 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.executeAndRemember(), ConfigBuilder.ConfigBuilder.loadDefaultOrSpecifiedCFF(), DTTTrigProd.DTTTrigProd.process, DTDQMMerge.DTDQMMerge.process, DTDqm.DTDqm.process, DTValidSummary.DTValidSummary.process, DTVDriftMeanTimerCalibration.DTVDriftMeanTimerCalibration.process, DTVDriftSegmentCalibration.DTVDriftSegmentCalibration.process, DTDQMHarvesting.DTDQMHarvesting.process, DTResidualCalibration.DTResidualCalibration.process, DTNoiseCalibration.DTNoiseCalibration.process, DTDQMValidation.DTDQMValidation.process, DTTTrigValid.DTTTrigValid.process, DTT0DBValidation.DTT0DBValidation.process, DTVDriftMeanTimerWriter.DTVDriftMeanTimerWriter.process, DTVDriftSegmentWriter.DTVDriftSegmentWriter.process, DTTTrigResidualCorr.DTTTrigResidualCorr.process, DTTTrigCorrFirst.DTTTrigCorrFirst.process, DTTTrigTimeBoxesWriter.DTTTrigTimeBoxesWriter.process, ConfigBuilder.ConfigBuilder.process, ConfigBuilder.ConfigBuilder.renameHLTprocessInSequence(), and ConfigBuilder.ConfigBuilder.VALIDATIONDefaultCFF.

1566  def prepare_VALIDATION(self, sequence = 'validation'):
1568  #in case VALIDATION:something:somethingelse -> something,somethingelse
1569  sequence=sequence.split('.')[-1]
1570  if sequence.find(',')!=-1:
1571  prevalSeqName=sequence.split(',')[0]
1572  valSeqName=sequence.split(',')[1]
1573  else:
1574  postfix=''
1575  if sequence:
1576  postfix='_'+sequence
1577  prevalSeqName='prevalidation'+postfix
1578  valSeqName='validation'+postfix
1579  if not hasattr(self.process,valSeqName):
1580  prevalSeqName=''
1581  valSeqName=sequence
1582 
1583  if not 'DIGI' in self.stepMap and not 'FASTSIM' in self.stepMap and not valSeqName.startswith('genvalid'):
1584  if self._options.restoreRNDSeeds==False and not self._options.restoreRNDSeeds==True:
1585  self._options.restoreRNDSeeds=True
1586 
1587  #rename the HLT process in validation steps
1588  if ('HLT' in self.stepMap and not 'FASTSIM' in self.stepMap) or self._options.hltProcess:
1589  self.renameHLTprocessInSequence(valSeqName)
1590  if prevalSeqName:
1591  self.renameHLTprocessInSequence(prevalSeqName)
1592 
1593  if prevalSeqName:
1594  self.process.prevalidation_step = cms.Path( getattr(self.process, prevalSeqName ) )
1595  self.schedule.append(self.process.prevalidation_step)
1596 
1597  self.process.validation_step = cms.EndPath( getattr(self.process,valSeqName ) )
1598  self.schedule.append(self.process.validation_step)
1599 
1600  if not 'DIGI' in self.stepMap and not 'FASTSIM' in self.stepMap:
1601  self.executeAndRemember("process.mix.playback = True")
1602 
1603  if hasattr(self.process,"genstepfilter") and len(self.process.genstepfilter.triggerConditions):
1604  #will get in the schedule, smoothly
1605  self.process.validation_step._seq = self.process.genstepfilter * self.process.validation_step._seq
1606 
1607  return
1608 
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 221 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.addCommon().

222  def profileOptions(self):
223  """
224  addIgProfService
225  Function to add the igprof profile service so that you can dump in the middle
226  of the run.
227  """
228  profileOpts = self._options.profile.split(':')
229  profilerStart = 1
230  profilerInterval = 100
231  profilerFormat = None
232  profilerJobFormat = None
233 
234  if len(profileOpts):
235  #type, given as first argument is unused here
236  profileOpts.pop(0)
237  if len(profileOpts):
238  startEvent = profileOpts.pop(0)
239  if not startEvent.isdigit():
240  raise Exception("%s is not a number" % startEvent)
241  profilerStart = int(startEvent)
242  if len(profileOpts):
243  eventInterval = profileOpts.pop(0)
244  if not eventInterval.isdigit():
245  raise Exception("%s is not a number" % eventInterval)
246  profilerInterval = int(eventInterval)
247  if len(profileOpts):
248  profilerFormat = profileOpts.pop(0)
249 
250 
251  if not profilerFormat:
252  profilerFormat = "%s___%s___%s___%s___%s___%s___%%I.gz" % (self._options.evt_type.replace("_cfi", ""),
253  self._options.step,
254  self._options.pileup,
255  self._options.conditions,
256  self._options.datatier,
257  self._options.profileTypeLabel)
258  if not profilerJobFormat and profilerFormat.endswith(".gz"):
259  profilerJobFormat = profilerFormat.replace(".gz", "_EndOfJob.gz")
260  elif not profilerJobFormat:
261  profilerJobFormat = profilerFormat + "_EndOfJob.gz"
262 
263  return (profilerStart,profilerInterval,profilerFormat,profilerJobFormat)
def ConfigBuilder.ConfigBuilder.renameHLTprocessInSequence (   self,
  sequence,
  proc = None,
  HLTprocess = 'HLT' 
)

Definition at line 1678 of file ConfigBuilder.py.

References DTTTrigProd.DTTTrigProd.process, DTDqm.DTDqm.process, DTDQMMerge.DTDQMMerge.process, DTValidSummary.DTValidSummary.process, DTDQMHarvesting.DTDQMHarvesting.process, DTVDriftSegmentCalibration.DTVDriftSegmentCalibration.process, DTVDriftMeanTimerCalibration.DTVDriftMeanTimerCalibration.process, DTNoiseCalibration.DTNoiseCalibration.process, DTResidualCalibration.DTResidualCalibration.process, DTDQMValidation.DTDQMValidation.process, DTTTrigValid.DTTTrigValid.process, DTT0DBValidation.DTT0DBValidation.process, DTVDriftSegmentWriter.DTVDriftSegmentWriter.process, DTVDriftMeanTimerWriter.DTVDriftMeanTimerWriter.process, DTTTrigResidualCorr.DTTTrigResidualCorr.process, DTTTrigCorrFirst.DTTTrigCorrFirst.process, DTTTrigTimeBoxesWriter.DTTTrigTimeBoxesWriter.process, ConfigBuilder.ConfigBuilder.process, and cmsPerfHarvest.visit().

Referenced by ConfigBuilder.ConfigBuilder.prepare_VALIDATION().

1679  def renameHLTprocessInSequence(self,sequence,proc=None,HLTprocess='HLT'):
1680  if self._options.hltProcess:
1681  proc=self._options.hltProcess
1682  else:
1683  proc=self.process.name_()
1684  if proc==HLTprocess: return
1685  # look up all module in dqm sequence
1686  print "replacing %s process name - sequence %s will use '%s'" % (HLTprocess,sequence, proc)
1687  getattr(self.process,sequence).visit(ConfigBuilder.MassSearchReplaceProcessNameVisitor(HLTprocess,proc,whitelist = ("subSystemFolder",)))
1688  if 'from Configuration.PyReleaseValidation.ConfigBuilder import ConfigBuilder' not in self.additionalCommands:
1689  self.additionalCommands.append('from Configuration.PyReleaseValidation.ConfigBuilder import ConfigBuilder')
1690  self.additionalCommands.append('process.%s.visit(ConfigBuilder.MassSearchReplaceProcessNameVisitor("%s", "%s", whitelist = ("subSystemFolder",)))'% (sequence,HLTprocess, proc))
1691 
def visit
Retrieve data from a perf suite output (sub) directory, only examines TimeSize at the moment...
def ConfigBuilder.ConfigBuilder.renameInputTagsInSequence (   self,
  sequence,
  oldT = "rawDataCollector",
  newT = "rawDataRepacker" 
)

Definition at line 1668 of file ConfigBuilder.py.

References helpers.massSearchReplaceAnyInputTag(), DTTTrigProd.DTTTrigProd.process, DTDQMMerge.DTDQMMerge.process, DTDqm.DTDqm.process, DTValidSummary.DTValidSummary.process, DTVDriftSegmentCalibration.DTVDriftSegmentCalibration.process, DTDQMHarvesting.DTDQMHarvesting.process, DTVDriftMeanTimerCalibration.DTVDriftMeanTimerCalibration.process, DTNoiseCalibration.DTNoiseCalibration.process, DTResidualCalibration.DTResidualCalibration.process, DTDQMValidation.DTDQMValidation.process, DTTTrigValid.DTTTrigValid.process, DTT0DBValidation.DTT0DBValidation.process, DTVDriftMeanTimerWriter.DTVDriftMeanTimerWriter.process, DTVDriftSegmentWriter.DTVDriftSegmentWriter.process, DTTTrigResidualCorr.DTTTrigResidualCorr.process, DTTTrigCorrFirst.DTTTrigCorrFirst.process, DTTTrigTimeBoxesWriter.DTTTrigTimeBoxesWriter.process, and ConfigBuilder.ConfigBuilder.process.

Referenced by ConfigBuilder.ConfigBuilder.prepare_L1REPACK().

1669  def renameInputTagsInSequence(self,sequence,oldT="rawDataCollector",newT="rawDataRepacker"):
1670  print "Replacing all InputTag %s => %s"%(oldT,newT)
1671  from PhysicsTools.PatAlgos.tools.helpers import massSearchReplaceAnyInputTag
1672  massSearchReplaceAnyInputTag(getattr(self.process,sequence),oldT,newT)
1673  loadMe='from PhysicsTools.PatAlgos.tools.helpers import massSearchReplaceAnyInputTag'
1674  if not loadMe in self.additionalCommands:
1675  self.additionalCommands.append(loadMe)
1676  self.additionalCommands.append('massSearchReplaceAnyInputTag(process.%s,"%s","%s",False,True)'%(sequence,oldT,newT))
def massSearchReplaceAnyInputTag
Definition: helpers.py:218
def ConfigBuilder.ConfigBuilder.scheduleSequence (   self,
  seq,
  prefix,
  what = 'Path' 
)

Definition at line 1109 of file ConfigBuilder.py.

References DTTTrigProd.DTTTrigProd.process, DTDqm.DTDqm.process, DTDQMMerge.DTDQMMerge.process, DTValidSummary.DTValidSummary.process, DTDQMHarvesting.DTDQMHarvesting.process, DTVDriftSegmentCalibration.DTVDriftSegmentCalibration.process, DTVDriftMeanTimerCalibration.DTVDriftMeanTimerCalibration.process, DTNoiseCalibration.DTNoiseCalibration.process, DTResidualCalibration.DTResidualCalibration.process, DTDQMValidation.DTDQMValidation.process, DTTTrigValid.DTTTrigValid.process, DTT0DBValidation.DTT0DBValidation.process, DTVDriftSegmentWriter.DTVDriftSegmentWriter.process, DTVDriftMeanTimerWriter.DTVDriftMeanTimerWriter.process, DTTTrigResidualCorr.DTTTrigResidualCorr.process, DTTTrigCorrFirst.DTTTrigCorrFirst.process, DTTTrigTimeBoxesWriter.DTTTrigTimeBoxesWriter.process, and ConfigBuilder.ConfigBuilder.process.

Referenced by ConfigBuilder.ConfigBuilder.PrintAllModules.leave(), ConfigBuilder.ConfigBuilder.prepare_CFWRITER(), ConfigBuilder.ConfigBuilder.prepare_DATAMIX(), ConfigBuilder.ConfigBuilder.prepare_DIGI(), ConfigBuilder.ConfigBuilder.prepare_DIGI2RAW(), ConfigBuilder.ConfigBuilder.prepare_L1(), ConfigBuilder.ConfigBuilder.prepare_L1Reco(), ConfigBuilder.ConfigBuilder.prepare_L1REPACK(), ConfigBuilder.ConfigBuilder.prepare_POSTRECO(), ConfigBuilder.ConfigBuilder.prepare_RAW2DIGI(), ConfigBuilder.ConfigBuilder.prepare_RECO(), ConfigBuilder.ConfigBuilder.prepare_REPACK(), ConfigBuilder.ConfigBuilder.prepare_SIM(), ConfigBuilder.ConfigBuilder.prepare_USER(), and ConfigBuilder.ConfigBuilder.scheduleSequenceAtEnd().

1110  def scheduleSequence(self,seq,prefix,what='Path'):
1111  if not what in ['Path','EndPath']:
1112  raise Exception("Can only schedule a Path or and EndPath."+str(what)+"is not allowed")
1113  if '*' in seq:
1114  #create only one path with all sequences in it
1115  for i,s in enumerate(seq.split('*')):
1116  if i==0:
1117  setattr(self.process,prefix,getattr(cms,what)( getattr(self.process, s) ))
1118  else:
1119  p=getattr(self.process,prefix)
1120  p+=getattr(self.process, s)
1121  self.schedule.append(getattr(self.process,prefix))
1122  return
1123  else:
1124  #create as many path as many sequences
1125  if not '+' in seq:
1126  if self.nextScheduleIsConditional and what=='Path':
1127  self.conditionalPaths.append(prefix)
1128  setattr(self.process,prefix,getattr(cms,what)( getattr(self.process, seq) ))
1129  self.schedule.append(getattr(self.process,prefix))
1130  else:
1131  for i,s in enumerate(seq.split('+')):
1132  sn=prefix+'%d'%(i)
1133  setattr(self.process,sn,getattr(cms,what)( getattr(self.process, s) ))
1134  self.schedule.append(getattr(self.process,sn))
1135  return
def ConfigBuilder.ConfigBuilder.scheduleSequenceAtEnd (   self,
  seq,
  prefix 
)

Definition at line 1136 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.scheduleSequence().

Referenced by ConfigBuilder.ConfigBuilder.prepare_ENDJOB().

1137  def scheduleSequenceAtEnd(self,seq,prefix):
1138  self.scheduleSequence(seq,prefix,what='EndPath')
1139  return

Member Data Documentation

ConfigBuilder.ConfigBuilder._options
private

Definition at line 161 of file ConfigBuilder.py.

list ConfigBuilder.ConfigBuilder.afterHLT = self.schedule[self.schedule.index(self.process.HLTSchedule)+1:]
static

Definition at line 1964 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.ALCADefaultCFF

Definition at line 824 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_ALCA().

ConfigBuilder.ConfigBuilder.ALCADefaultSeq

Definition at line 853 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.ALCAHARVESTDefaultCFF

Definition at line 841 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_ALCAHARVEST().

tuple ConfigBuilder.ConfigBuilder.alcastream = getattr(alcaConfig,name)
static

Definition at line 1159 of file ConfigBuilder.py.

list ConfigBuilder.ConfigBuilder.allFcn = []
static

Definition at line 758 of file ConfigBuilder.py.

list ConfigBuilder.ConfigBuilder.available = []
static

Definition at line 1192 of file ConfigBuilder.py.

list ConfigBuilder.ConfigBuilder.beforeHLT = self.schedule[:self.schedule.index(self.process.HLTSchedule)]
static

Definition at line 1963 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.CFWRITERDefaultCFF

Definition at line 844 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_CFWRITER().

tuple ConfigBuilder.ConfigBuilder.com = string.lstrip(com)
static

Definition at line 801 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.command = command.strip()
static

Definition at line 387 of file ConfigBuilder.py.

Referenced by cmsRelvalreport.Profile._profile_edmsize(), cmsRelvalreport.Profile._profile_igprof(), cmsRelvalreport.Profile._profile_Memcheck_Valgrind(), cmsRelvalreport.Profile._profile_None(), cmsRelvalreport.Profile._profile_valgrindfce(), and cmsRelvalreport.Profile._save_output().

ConfigBuilder.ConfigBuilder.ConditionsDefaultCFF

Definition at line 843 of file ConfigBuilder.py.

string ConfigBuilder.ConfigBuilder.CppType = 'PoolOutputModule'
static

Definition at line 496 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.customiseFile = re.sub(r'\.pyc$', '.py', package.__file__)
static

Definition at line 772 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.DATAMIXDefaultCFF

Definition at line 848 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_DATAMIX().

ConfigBuilder.ConfigBuilder.defaultFileName = self._options.outfile_name
static

Definition at line 477 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.defaultFileName = self._options.outfile_name.replace('.root','_in'+theTier+'.root')
static

Definition at line 479 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.DIGI2RAWDefaultCFF

Definition at line 828 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_DIGI2RAW().

ConfigBuilder.ConfigBuilder.DIGIDefaultCFF

Definition at line 827 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_DIGI().

ConfigBuilder.ConfigBuilder.DQMOFFLINEDefaultCFF

Definition at line 839 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_DQM().

ConfigBuilder.ConfigBuilder.EDMtoMECFF

Definition at line 1746 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.ENDJOBDefaultCFF

Definition at line 842 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_ENDJOB().

tuple ConfigBuilder.ConfigBuilder.fileName = opt.split('.')
static

Definition at line 742 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.filterConfig = self.load(sequence.split('.')[0])
static

load the relevant part

Definition at line 1473 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.filterSeq = sequence.split('.')
static

Definition at line 1474 of file ConfigBuilder.py.

string ConfigBuilder.ConfigBuilder.final_snippet = '\n'
static

Definition at line 754 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.GENDefaultCFF

Definition at line 825 of file ConfigBuilder.py.

list ConfigBuilder.ConfigBuilder.generatorModule = sys.modules[loadFragment]
static

Definition at line 1240 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.genModules = generatorModule.__dict__
static

Definition at line 1241 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.genSeqName = sequence.split('.')
static
Enrich the schedule with the rest of the generation step 

Definition at line 1263 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.harvestingConfig = self.loadDefaultOrSpecifiedCFF(sequence,self.HARVESTINGDefaultCFF)
static

Definition at line 1750 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.HARVESTINGDefaultCFF

Definition at line 840 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.harvestingList = sequence.split("+")
static

Definition at line 1754 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.harvestingstream = getattr(harvestingConfig,name)
static

Definition at line 1766 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.HLTDefaultCFF

Definition at line 831 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.io = open(self._options.io,'w')
static

Definition at line 2003 of file ConfigBuilder.py.

dictionary ConfigBuilder.ConfigBuilder.ioJson = {}
static

Definition at line 2004 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.L1EMDefaultCFF

Definition at line 829 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_L1().

ConfigBuilder.ConfigBuilder.L1HwValDefaultCFF

Definition at line 838 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_L1HwVal().

ConfigBuilder.ConfigBuilder.L1MENUDefaultCFF

Definition at line 830 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.L1RecoDefaultCFF

Definition at line 833 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_L1Reco().

tuple ConfigBuilder.ConfigBuilder.lastStep = getattr(harvestingConfig,"ALCAHARVESTDQMSaveAndMetadataWriter")
static

Definition at line 1792 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.loadFailure = True
static

Definition at line 1234 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.loadFragment = self._options.evt_type.replace('.py','',)
static

Definition at line 1224 of file ConfigBuilder.py.

string ConfigBuilder.ConfigBuilder.loadFragment = 'Configuration.Generator.'
static

Definition at line 1227 of file ConfigBuilder.py.

dictionary ConfigBuilder.ConfigBuilder.mixingDict = {'file':pileupSpec}
static

Definition at line 601 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.mixingDict = copy.copy(Mixing[pileupSpec])
static

Definition at line 606 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.nl = self.additionalOutputs.keys()
static

Definition at line 1916 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.outDefDictStr = outDefDict.__str__()
static

Definition at line 452 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.outList = eval(self._options.outputDefinition)
static

Definition at line 450 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.output
static
Initial value:
1 = cms.OutputModule(CppType,
2  theEventContent.clone(),
3  fileName = cms.untracked.string(theFileName),
4  dataset = cms.untracked.PSet(
5  dataTier = cms.untracked.string(theTier),
6  filterName = cms.untracked.string(theFilterName))
7  )

Definition at line 498 of file ConfigBuilder.py.

list ConfigBuilder.ConfigBuilder.output = self.additionalOutputs[name]
static

Definition at line 1919 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.outputModule = getattr(self.process,theModuleLabel)
static

Definition at line 516 of file ConfigBuilder.py.

string ConfigBuilder.ConfigBuilder.outputModuleCfgCode = ""
static

adding standard sequences might change the inputEventContent option and therefore needs to be finalized after

Definition at line 1880 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.outputModuleCfgCode = self.addOutput()
static

Definition at line 1882 of file ConfigBuilder.py.

string ConfigBuilder.ConfigBuilder.outputModuleName = streamType+'output'
static

Definition at line 574 of file ConfigBuilder.py.

list ConfigBuilder.ConfigBuilder.package = sys.modules[packageName]
static

Definition at line 769 of file ConfigBuilder.py.

Referenced by Vispa.Plugins.ConfigEditor.ConfigDataAccessor.ConfigDataAccessor.properties().

tuple ConfigBuilder.ConfigBuilder.packageName = f.replace(".py","")
static

Definition at line 767 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.path = getattr(self.process,theModuleLabel+'_step')
static

Definition at line 518 of file ConfigBuilder.py.

Referenced by python.rootplot.rootmath.Target.__repr__().

string ConfigBuilder.ConfigBuilder.pathName = 'dqmoffline_step'
static

Definition at line 1722 of file ConfigBuilder.py.

list ConfigBuilder.ConfigBuilder.pathNames = ['process.'+p.label_() for p in beforeHLT]
static

Definition at line 1965 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.pfs = getattr(self.process,self.productionFilterSequence)
static

Definition at line 1990 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.pileupSpec = self._options.pileup.split(',')
static

Definition at line 596 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.POSTRECODefaultCFF

Definition at line 836 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_POSTRECO().

ConfigBuilder.ConfigBuilder.process

Definition at line 1431 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.addExtraStream(), ConfigBuilder.ConfigBuilder.completeInputCommand(), ConfigBuilder.ConfigBuilder.doNotInlineEventContent(), Vispa.Plugins.ConfigEditor.ConfigDataAccessor.ConfigDataAccessor.dumpPython(), ConfigBuilder.ConfigBuilder.PrintAllModules.leave(), Vispa.Plugins.ConfigEditor.ConfigDataAccessor.ConfigDataAccessor.open(), Vispa.Plugins.ConfigEditor.ConfigDataAccessor.ConfigDataAccessor.outputEventContent(), ConfigBuilder.ConfigBuilder.prepare_FASTSIM(), ConfigBuilder.ConfigBuilder.prepare_LHE(), ConfigBuilder.ConfigBuilder.prepare_VALIDATION(), ConfigBuilder.ConfigBuilder.renameHLTprocessInSequence(), ConfigBuilder.ConfigBuilder.renameInputTagsInSequence(), ConfigBuilder.ConfigBuilder.scheduleSequence(), Vispa.Plugins.ConfigEditor.ConfigDataAccessor.ConfigDataAccessor.setProcess(), and Vispa.Plugins.ConfigEditor.ConfigDataAccessor.ConfigDataAccessor.setProperty().

ConfigBuilder.ConfigBuilder.RAW2DIGIDefaultCFF

Definition at line 832 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_RAW2DIGI().

ConfigBuilder.ConfigBuilder.RECODefaultCFF

Definition at line 834 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_RECO().

ConfigBuilder.ConfigBuilder.REPACKDefaultCFF

Definition at line 845 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_REPACK().

tuple ConfigBuilder.ConfigBuilder.rest = opt.split('.')
static

Definition at line 745 of file ConfigBuilder.py.

string ConfigBuilder.ConfigBuilder.result = "process.schedule = cms.Schedule("
static

Definition at line 1952 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.sequence = sequence.split('.')
static

Definition at line 1751 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.sequenceList = list(set(sequenceList))
static

Definition at line 1720 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.shortName = name.replace('ALCARECOStream','')
static

Definition at line 1160 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.shortname = skim.replace('SKIMStream','')
static

Definition at line 1526 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.SIMDefaultCFF

Definition at line 826 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_SIM().

string ConfigBuilder.ConfigBuilder.simGeometry = ''
static

Definition at line 957 of file ConfigBuilder.py.

list ConfigBuilder.ConfigBuilder.simGeometry = geoms[0]
static

Definition at line 988 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.SKIMDefaultCFF

Definition at line 835 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_SKIM().

tuple ConfigBuilder.ConfigBuilder.skimstream = getattr(skimConfig,skim)
static

Definition at line 1520 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.skimstreamDQM
static
Initial value:
1 = cms.FilteredStream(
2  responsible = skimstream.responsible,
3  name = skimstream.name+'DQM',
4  paths = skimstream.paths,
5  selectEvents = skimstream.selectEvents,
6  content = self._options.datatier+'EventContent',
7  dataTier = cms.untracked.string(self._options.datatier)
8  )

Definition at line 1534 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.specialization = defineMixing(mixingDict,'FASTSIM' in self.stepMap)
static

Definition at line 623 of file ConfigBuilder.py.

list ConfigBuilder.ConfigBuilder.stepList = [re.sub(r'^prepare_', '', methodName) for methodName in ConfigBuilder.__dict__ if methodName.startswith('prepare_')]
static

Definition at line 172 of file ConfigBuilder.py.

list ConfigBuilder.ConfigBuilder.stepName = stepParts[0]
static

add the corresponding input content

Definition at line 178 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.stepParts = step.split(":")
static

Definition at line 177 of file ConfigBuilder.py.

list ConfigBuilder.ConfigBuilder.stepSpec = self.stepMap[stepName]
static

Definition at line 647 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.streamTypes = self._options.eventcontent.split(',')
static

ends the –output options model

Definition at line 538 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.theEventContent = cms.PSet(outputCommands = cms.untracked.vstring('keep *'))
static

Definition at line 489 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.theExtraOutputCommands = anyOf(['o','oC','outputCommands'],outDefDict,'')
static

Definition at line 463 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.theFileName = self._options.dirout+anyOf(['fn','fileName'],outDefDict,defaultFileName)
static

Definition at line 481 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.theFileName = self._options.outfile_name
static

Definition at line 552 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.theFilterName = anyOf(['f','ftN','filterName'],outDefDict,'')
static

Definition at line 460 of file ConfigBuilder.py.

string ConfigBuilder.ConfigBuilder.theFilterName = 'StreamALCACombined'
static

Definition at line 494 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.theFilterName = self._options.filtername
static

Definition at line 553 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.theModuleLabel = anyOf(['l','mL','moduleLabel'],outDefDict,'')
static

Definition at line 462 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.theModuleLabel = name
static

Definition at line 472 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.theObject = getattr(generatorModule,name)
static

Definition at line 1249 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.theSelectEvent = anyOf(['s','sE','selectEvents'],outDefDict,'')
static

Definition at line 461 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.theStreamType = anyOf(['e','ec','eventContent','streamType'],outDefDict,theTier)
static

event content

Definition at line 459 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.theTier = anyOf(['t','tier','dataTier'],outDefDict)
static

Definition at line 456 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.tiers = self._options.datatier.split(',')
static

Definition at line 539 of file ConfigBuilder.py.

tuple ConfigBuilder.ConfigBuilder.tmpOut = cms.EndPath(output)
static

Definition at line 1921 of file ConfigBuilder.py.

list ConfigBuilder.ConfigBuilder.tryNames
static
Initial value:
1 = [theStreamType.replace(theTier.replace('-',''),'')+theTier.replace('-','')+'output',
2  theStreamType.replace(theTier.replace('-',''),'')+theTier.replace('-','')+theFilterName+'output',
3  theStreamType.replace(theTier.replace('-',''),'')+theTier.replace('-','')+theFilterName+theSelectEvent.split(',')[0].replace(':','for').replace(' ','')+'output'
4  ]

Definition at line 466 of file ConfigBuilder.py.

ConfigBuilder.ConfigBuilder.VALIDATIONDefaultCFF

Definition at line 837 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.prepare_VALIDATION().