7 from pipe
import pipe
as _pipe
8 from options
import globalTag
9 from itertools
import islice
12 i = iterator.__iter__()
14 l =
list(islice(i, n))
41 if self.config.fragment:
42 self.
labels[
'process'] =
'fragment' 43 self.
labels[
'dict'] =
'fragment.__dict__' 45 self.
labels[
'process'] =
'process' 46 self.
labels[
'dict'] =
'process.__dict__' 48 if self.config.online:
49 self.
labels[
'connect'] =
'frontier://FrontierProd' 51 self.
labels[
'connect'] =
'frontier://FrontierProd' 53 if self.config.prescale
and (self.config.prescale.lower() !=
'none'):
54 self.
labels[
'prescale'] = self.config.prescale
57 from confdbOfflineConverter
import OfflineConverter
58 self.
converter = OfflineConverter(version = self.config.menu.version, database = self.config.menu.database)
66 if not self.config.setup:
69 if ".py" in self.config.setup:
70 self.config.setupFile = self.config.setup.split(
".py")[0]
72 args = [
'--configName', self.config.setup ]
73 args.append(
'--noedsources')
74 args.append(
'--nopaths')
75 for key, vals
in self.options.iteritems():
77 args.extend((
'--'+key,
','.
join(vals)))
79 data, err = self.converter.query( *args )
80 if 'ERROR' in err
or 'Exhausted Resultset' in err
or 'CONFIG_NOT_FOUND' in err:
81 sys.stderr.write(
"%s: error while retrieving the HLT setup menu\n\n" % os.path.basename(sys.argv[0]))
82 sys.stderr.write(err +
"\n\n")
84 self.config.setupFile =
"setup_"+self.config.setup[1:].
replace(
"/",
"_")+
"_cff" 85 file(self.config.setupFile+
".py",
"w+").
write(
"# This file is automatically generated by hltGetConfiguration.\n" + data)
88 if self.config.menu.run:
89 args = [
'--runNumber', self.config.menu.run]
91 args = [
'--configName', self.config.menu.name ]
92 args.append(
'--noedsources')
93 for key, vals
in self.options.iteritems():
95 args.extend((
'--'+key,
','.
join(vals)))
97 data, err = self.converter.query( *args )
98 if 'ERROR' in err
or 'Exhausted Resultset' in err
or 'CONFIG_NOT_FOUND' in err:
99 sys.stderr.write(
"%s: error while retrieving the HLT menu\n\n" % os.path.basename(sys.argv[0]))
100 sys.stderr.write(err +
"\n\n")
105 if self.config.menu.run:
106 args = [
'--runNumber', self.config.menu.run]
108 args = [
'--configName', self.config.menu.name]
118 data, err = self.converter.query( *args )
119 if 'ERROR' in err
or 'Exhausted Resultset' in err
or 'CONFIG_NOT_FOUND' in err:
120 sys.stderr.write(
"%s: error while retrieving the list of paths from the HLT menu\n\n" % os.path.basename(sys.argv[0]))
121 sys.stderr.write(err +
"\n\n")
123 filter = re.compile(
r' *= *cms.(End)?Path.*')
124 paths = [ filter.sub(
'', line)
for line
in data.splitlines()
if filter.search(line) ]
139 filter = re.compile(
r'^' + glob.replace(
'?',
'.').
replace(
'*',
'.*').
replace(
'[!',
'[^') +
r'$')
140 matches.extend( negate + element
for element
in collection
if filter.match(element) )
149 for element
in elements:
150 if element[0] ==
'-':
151 result.add( element )
153 result.discard(
'-' + element )
154 return sorted( element
for element
in result )
161 for element
in elements:
162 if element[0] ==
'-':
163 result.discard( element[1:] )
165 result.add( element )
166 return sorted( element
for element
in result )
172 if self.config.fragment:
173 self.
data = re.sub(
r'\bprocess\b',
'fragment', self.
data )
174 self.
data = re.sub(
r'\bProcess\b',
'ProcessFragment', self.
data )
181 if self.config.fragment:
183 # add specific customizations 184 from HLTrigger.Configuration.customizeHLTforALL import customizeHLTforAll 185 fragment = customizeHLTforAll(fragment,"%s") 186 """ % (self.config.type)
188 if self.config.type==
"Fake":
192 _gtData =
"auto:"+prefix+
"_hlt_"+self.config.type
193 _gtMc =
"auto:"+prefix+
"_mc_" +self.config.type
195 # add specific customizations 197 _customInfo['menuType' ]= "%s" 198 _customInfo['globalTags']= {} 199 _customInfo['globalTags'][True ] = "%s" 200 _customInfo['globalTags'][False] = "%s" 201 _customInfo['inputFiles']={} 202 _customInfo['inputFiles'][True] = "file:RelVal_Raw_%s_DATA.root" 203 _customInfo['inputFiles'][False] = "file:RelVal_Raw_%s_MC.root" 204 _customInfo['maxEvents' ]= %s 205 _customInfo['globalTag' ]= "%s" 206 _customInfo['inputFile' ]= %s 207 _customInfo['realData' ]= %s 208 from HLTrigger.Configuration.customizeHLTforALL import customizeHLTforAll 209 %%(process)s = customizeHLTforAll(%%(process)s,"%s",_customInfo) 210 """ % (self.config.type,_gtData,_gtMc,self.config.type,self.config.type,self.config.events,self.config.globaltag,self.
source,self.config.data,self.config.type)
213 from HLTrigger.Configuration.customizeHLTforCMSSW import customizeHLTforCMSSW 214 %%(process)s = customizeHLTforCMSSW(%%(process)s,"%s") 215 """ % (self.config.type)
219 # Eras-based customisations 220 from HLTrigger.Configuration.Eras import modifyHLTforEras 221 modifyHLTforEras(%(process)s) 224 if self.config.customise:
226 self.
data +=
"#User-defined customization functions\n" 227 for customise
in self.config.customise.split(
","):
228 customiseValues = customise.split(
".")
229 if len(customiseValues)>=3:
raise Exception(
"--customise option cannot contain more than one dot.")
230 if len(customiseValues)==1:
231 customiseValues.append(
"customise")
232 customiseValues[0] = customiseValues[0].
replace(
"/",
".")
233 self.
data +=
"from "+customiseValues[0]+
" import "+customiseValues[1]+
"\n" 234 self.
data +=
"process = "+customiseValues[1]+
"(process)\n" 240 if not self.config.fragment:
244 if self.config.type
in (
'HIon', ):
246 if not self.config.fragment:
247 self.
_fix_parameter( type =
'InputTag', value =
'rawDataCollector', replace =
'rawDataRepacker')
270 if self.config.fragment:
272 # dummyfy hltGetConditions in cff's 273 if 'hltGetConditions' in %(dict)s and 'HLTriggerFirstPath' in %(dict)s : 274 %(process)s.hltDummyConditions = cms.EDFilter( "HLTBool", 275 result = cms.bool( True ) 277 %(process)s.HLTriggerFirstPath.replace(%(process)s.hltGetConditions,%(process)s.hltDummyConditions) 330 # limit the number of events to be processed 331 %%(process)s.maxEvents = cms.untracked.PSet( 332 input = cms.untracked.int32( %d ) 334 """ % self.config.events
336 if not self.config.profiling:
338 # enable TrigReport, TimeReport and MultiThreading 339 %(process)s.options = cms.untracked.PSet( 340 wantSummary = cms.untracked.bool( True ), 341 numberOfThreads = cms.untracked.uint32( 4 ), 342 numberOfStreams = cms.untracked.uint32( 0 ), 343 sizeOfStackForThreadsInKB = cms.untracked.uint32( 10*1024 ) 349 name: parameter name (optional) 350 type: parameter type (look for tracked and untracked variants) 351 value: original value 352 replace: replacement value 356 r'%(name)s = cms(?P<tracked>(?:\.untracked)?)\.%(type)s\( (?P<quote>["\']?)%(value)s(?P=quote)' % args,
357 r'%(name)s = cms\g<tracked>.%(type)s( \g<quote>%(replace)s\g<quote>' % args,
361 r'cms(?P<tracked>(?:\.untracked)?)\.%(type)s\( (?P<quote>["\']?)%(value)s(?P=quote)' % args,
362 r'cms\g<tracked>.%(type)s( \g<quote>%(replace)s\g<quote>' % args,
369 if self.
options[
'paths'][0][0] ==
'-':
371 for minuspath
in self.
options[
'paths']:
373 self.
data = re.sub(
r' cms.PSet\( pathName = cms.string\( "%s" \),\n prescales = cms.vuint32\( .* \)\n \),?\n' % path,
'', self.
data)
377 if path
not in self.
options[
'paths']:
378 self.
data = re.sub(
r' cms.PSet\( pathName = cms.string\( "%s" \),\n prescales = cms.vuint32\( .* \)\n \),?\n' % path,
'', self.
data)
380 if self.config.prescale
and (self.config.prescale.lower() !=
'none'):
383 # force the use of a specific HLT prescale column 384 if 'PrescaleService' in %(dict)s: 385 %(process)s.PrescaleService.forceDefault = True 386 %(process)s.PrescaleService.lvl1DefaultLabel = '%(prescale)s' 393 filters = [ match[1]
for match
in re.findall(
r'(process\.)?\b(\w+) = cms.EDFilter', self.
data) ]
394 re_sequence = re.compile(
r'cms\.(Path|Sequence)\((.*)\)' )
396 self.
data = re_sequence.sub(
lambda line: re.sub(
r'cms\.ignore *\( *((process\.)?\b(\w+)) *\)',
r'\1', line.group(0) ), self.
data )
397 self.
data = re_sequence.sub(
lambda line: re.sub(
r'~',
'', line.group(0) ), self.
data )
399 for some
in splitter(filters, 1000):
400 re_filters = re.compile(
r'\b((process\.)?(' +
r'|'.
join(some) +
r'))\b' )
401 self.
data = re_sequence.sub(
lambda line: re_filters.sub(
r'cms.ignore( \1 )', line.group(0) ), self.
data )
405 if self.config.errortype:
407 self.
_fix_parameter(name =
'SelectedTriggerType', type =
'int32', value =
'1', replace =
'0')
408 self.
_fix_parameter(name =
'SelectedTriggerType', type =
'int32', value =
'2', replace =
'0')
409 self.
_fix_parameter(name =
'SelectedTriggerType', type =
'int32', value =
'3', replace =
'0')
425 # override the GlobalTag, connection string and pfnPrefix 426 if 'GlobalTag' in %(dict)s: 430 if not self.config.data
and not self.config.globaltag:
431 if self.config.type
in globalTag:
432 self.config.globaltag = globalTag[self.config.type]
434 self.config.globaltag = globalTag[
'GRun']
437 if self.config.l1.override:
438 self.config.l1.tag = self.config.l1.override
439 self.config.l1.record =
'L1TUtmTriggerMenuRcd' 440 self.config.l1.connect =
'%(connect)s/CMS_CONDITIONS' 441 self.config.l1.label =
'' 442 if not self.config.l1.snapshotTime:
443 self.config.l1.snapshotTime =
'9999-12-31 23:59:59.000' 444 self.config.l1cond =
'%(tag)s,%(record)s,%(connect)s,%(label)s,%(snapshotTime)s' % self.config.l1.__dict__
446 self.config.l1cond =
None 448 if self.config.globaltag
or self.config.l1cond:
449 text +=
" from Configuration.AlCa.GlobalTag import GlobalTag as customiseGlobalTag\n" 450 text +=
" %(process)s.GlobalTag = customiseGlobalTag(%(process)s.GlobalTag" 451 if self.config.globaltag:
452 text +=
", globaltag = %s" % repr(self.config.globaltag)
453 if self.config.l1cond:
454 text +=
", conditions = %s" % repr(self.config.l1cond)
457 text +=
""" %(process)s.GlobalTag.connect = '%(connect)s/CMS_CONDITIONS' 469 if self.config.l1Xml.XmlFile:
471 # override the GlobalTag's L1T menu from an Xml file 472 from HLTrigger.Configuration.CustomConfigs import L1XML 473 %%(process)s = L1XML(%%(process)s,"%s") 474 """ % (self.config.l1Xml.XmlFile)
479 if self.config.emulator:
481 # run the Full L1T emulator, then repack the data into a new RAW collection, to be used by the HLT 482 from HLTrigger.Configuration.CustomConfigs import L1REPACK 483 %%(process)s = L1REPACK(%%(process)s,"%s") 484 """ % (self.config.emulator)
490 r'\b(process\.)?hltOutput(\w+) *= *cms\.OutputModule\( *"ShmStreamConsumer" *,',
491 r'%(process)s.hltOutput\2 = cms.OutputModule( "PoolOutputModule",\n fileName = cms.untracked.string( "output\2.root" ),\n fastCloning = cms.untracked.bool( False ),\n dataset = cms.untracked.PSet(\n filterName = cms.untracked.string( "" ),\n dataTier = cms.untracked.string( "RAW" )\n ),',
495 if not self.config.fragment
and self.config.output ==
'full':
498 # add a single "keep *" output 499 %(process)s.hltOutputFULL = cms.OutputModule( "PoolOutputModule", 500 fileName = cms.untracked.string( "outputFULL.root" ), 501 fastCloning = cms.untracked.bool( False ), 502 dataset = cms.untracked.PSet( 503 dataTier = cms.untracked.string( 'RECO' ), 504 filterName = cms.untracked.string( '' ) 506 outputCommands = cms.untracked.vstring( 'keep *' ) 508 %(process)s.FULLOutput = cms.EndPath( %(process)s.hltOutputFULL ) 512 if self.config.eras
is None:
514 self.
data = re.sub(
r'process = cms.Process\( *"\w+"',
'from Configuration.StandardSequences.Eras import eras\n\g<0>, '+
', '.
join(
'eras.' + era
for era
in self.config.eras.split(
',')), self.
data)
518 if self.config.setup
is None:
520 processLine = self.data.find(
"\n",self.data.find(
"cms.Process"))
521 self.
data = self.
data[:processLine]+
'\nprocess.load("%s")'%self.config.setupFile+self.
data[processLine:]
525 if self.config.name
is None:
529 self.config.name = self.config.name.replace(
"_",
"")
532 self.
data = re.compile(
r'^(process\s*=\s*cms\.Process\(\s*' + quote +
r')\w+(' + quote +
r'\s*\).*)$', re.MULTILINE).sub(
r'\1%s\2' % self.config.name, self.
data, 1)
536 # adapt HLT modules to the correct process name 537 if 'hltTrigReport' in %%(dict)s: 538 %%(process)s.hltTrigReport.HLTriggerResults = cms.InputTag( 'TriggerResults', '', '%(name)s' ) 540 if 'hltPreExpressCosmicsOutputSmart' in %%(dict)s: 541 %%(process)s.hltPreExpressCosmicsOutputSmart.hltResults = cms.InputTag( 'TriggerResults', '', '%(name)s' ) 543 if 'hltPreExpressOutputSmart' in %%(dict)s: 544 %%(process)s.hltPreExpressOutputSmart.hltResults = cms.InputTag( 'TriggerResults', '', '%(name)s' ) 546 if 'hltPreDQMForHIOutputSmart' in %%(dict)s: 547 %%(process)s.hltPreDQMForHIOutputSmart.hltResults = cms.InputTag( 'TriggerResults', '', '%(name)s' ) 549 if 'hltPreDQMForPPOutputSmart' in %%(dict)s: 550 %%(process)s.hltPreDQMForPPOutputSmart.hltResults = cms.InputTag( 'TriggerResults', '', '%(name)s' ) 552 if 'hltPreHLTDQMResultsOutputSmart' in %%(dict)s: 553 %%(process)s.hltPreHLTDQMResultsOutputSmart.hltResults = cms.InputTag( 'TriggerResults', '', '%(name)s' ) 555 if 'hltPreHLTDQMOutputSmart' in %%(dict)s: 556 %%(process)s.hltPreHLTDQMOutputSmart.hltResults = cms.InputTag( 'TriggerResults', '', '%(name)s' ) 558 if 'hltPreHLTMONOutputSmart' in %%(dict)s: 559 %%(process)s.hltPreHLTMONOutputSmart.hltResults = cms.InputTag( 'TriggerResults', '', '%(name)s' ) 561 if 'hltDQMHLTScalers' in %%(dict)s: 562 %%(process)s.hltDQMHLTScalers.triggerResults = cms.InputTag( 'TriggerResults', '', '%(name)s' ) 563 %%(process)s.hltDQMHLTScalers.processname = '%(name)s' 565 if 'hltDQML1SeedLogicScalers' in %%(dict)s: 566 %%(process)s.hltDQML1SeedLogicScalers.processname = '%(name)s' 567 """ % self.config.__dict__
573 if 'MessageLogger' in %(dict)s: 574 %(process)s.MessageLogger.categories.append('TriggerSummaryProducerAOD') 575 %(process)s.MessageLogger.categories.append('L1GtTrigReport') 576 %(process)s.MessageLogger.categories.append('L1TGlobalSummary') 577 %(process)s.MessageLogger.categories.append('HLTrigReport') 578 %(process)s.MessageLogger.categories.append('FastReport') 586 if 'GlobalTag' in %%(dict)s: 588 for condition
in conditions:
589 self.
data +=
""" %%(process)s.GlobalTag.toGet.append( 591 record = cms.string( '%(record)s' ), 592 tag = cms.string( '%(tag)s' ), 593 label = cms.untracked.string( '%(label)s' ), 594 connect = cms.untracked.string( '%(connect)s' ) 602 if self.config.fragment:
603 return 'from %s import *\n' % module
605 return 'process.load( "%s" )\n' % module
613 self.
data +=
"if '%s' in %%(dict)s:\n" % module
614 for (parameter, value)
in parameters:
615 self.
data +=
" %%(process)s.%s.%s = %s\n" % (module, parameter, value)
620 if self.config.profiling:
624 if not 'hltGetRaw' in self.
data:
627 %(process)s.hltGetRaw = cms.EDAnalyzer( "HLTGetRaw", 628 RawDataCollection = cms.InputTag( "rawDataCollector" ) 632 if not 'hltGetConditions' in self.
data:
635 %(process)s.hltGetConditions = cms.EDAnalyzer( 'EventSetupRecordDataGetter', 636 verbose = cms.untracked.bool( False ), 641 if not 'hltBoolFalse' in self.
data:
644 %(process)s.hltBoolFalse = cms.EDFilter( "HLTBool", 645 result = cms.bool( False ) 652 %(process)s.HLTriggerFirstPath = cms.Path( %(process)s.hltGetRaw + %(process)s.hltGetConditions + %(process)s.hltBoolFalse ) 654 self.
data = re.sub(
r'.*cms\.(End)?Path.*', text +
r'\g<0>', self.
data, 1)
659 if self.config.timing:
661 # instrument the menu with the modules and EndPath needed for timing studies 664 self.
data +=
'\n# configure the FastTimerService\n' 665 if not 'FastTimerService' in self.
data:
666 self.
loadCff(
'HLTrigger.Timer.FastTimerService_cfi')
668 self.
data +=
"""# print a text summary at the end of the job 669 %(process)s.FastTimerService.printJobSummary = True 672 %(process)s.FastTimerService.enableDQM = True 674 # disable per-module DQM plots 675 %(process)s.FastTimerService.enableDQMbyModule = False 677 # enable per-event DQM plots by lumisection 678 %(process)s.FastTimerService.enableDQMbyLumiSection = True 679 %(process)s.FastTimerService.dqmLumiSectionsRange = 2500 681 # set the time resolution of the DQM plots 682 %(process)s.FastTimerService.dqmTimeRange = 1000. 683 %(process)s.FastTimerService.dqmTimeResolution = 5. 684 %(process)s.FastTimerService.dqmPathTimeRange = 100. 685 %(process)s.FastTimerService.dqmPathTimeResolution = 0.5 686 %(process)s.FastTimerService.dqmModuleTimeRange = 40. 687 %(process)s.FastTimerService.dqmModuleTimeResolution = 0.2 689 # set the base DQM folder for the plots 690 %(process)s.FastTimerService.dqmPath = 'HLT/TimerService' 691 %(process)s.FastTimerService.enableDQMbyProcesses = True 696 if not self.config.hilton:
698 if 'hltDQMFileSaver' in self.
data:
699 self.
data = re.sub(
r'\b(process\.)?hltDQMFileSaver \+ ',
'', self.
data)
700 self.
data = re.sub(
r' \+ \b(process\.)?hltDQMFileSaver',
'', self.
data)
701 self.
data = re.sub(
r'\b(process\.)?hltDQMFileSaver',
'', self.
data)
704 dqmstore =
"\n# load the DQMStore and DQMRootOutputModule\n" 706 dqmstore +=
"%(process)s.DQMStore.enableMultiThread = True\n" 708 %(process)s.dqmOutput = cms.OutputModule("DQMRootOutputModule", 709 fileName = cms.untracked.string("DQMIO.root") 713 empty_path = re.compile(
r'.*\b(process\.)?DQMOutput = cms\.EndPath\( *\).*')
714 other_path = re.compile(
r'(.*\b(process\.)?DQMOutput = cms\.EndPath\()(.*)')
715 if empty_path.search(self.
data):
717 self.
data = empty_path.sub(dqmstore +
'\n%(process)s.DQMOutput = cms.EndPath( %(process)s.dqmOutput )\n', self.
data)
718 elif other_path.search(self.
data):
720 self.
data = other_path.sub(dqmstore +
r'\g<1> %(process)s.dqmOutput +\g<3>', self.
data)
723 self.
data += dqmstore
724 self.
data +=
'\n%(process)s.DQMOutput = cms.EndPath( %(process)s.dqmOutput )\n' 729 sys.stderr.write(
'Path selection:\n')
731 sys.stderr.write(
'\t%s\n' % path)
732 sys.stderr.write(
'\n\n')
737 if self.config.paths:
739 paths = self.config.paths.split(
',')
744 if self.config.fragment
or self.config.output
in (
'none',
'full'):
746 if self.config.paths:
751 paths.append(
"-*Output" )
752 paths.append(
"-RatesMonitoring")
753 paths.append(
"-DQMHistograms")
754 elif self.config.output ==
'minimal':
756 if self.config.paths:
757 paths.append(
"HLTDQMResultsOutput" )
759 paths.append(
"-*Output" )
760 paths.append(
"-RatesMonitoring")
761 paths.append(
"-DQMHistograms")
762 paths.append(
"HLTDQMResultsOutput" )
765 if self.config.paths:
766 paths.append(
"*Output" )
771 if self.config.profiling:
772 paths.append(
"-HLTriggerFirstPath" )
773 paths.append(
"-HLTAnalyzerEndpath" )
776 paths.append(
"-OfflineOutput" )
781 if self.config.paths:
785 raise RuntimeError(
'Error: option "--paths %s" does not select any valid paths' % self.config.paths)
801 if not self.config.hilton:
807 if self.config.fragment:
811 self.
options[
'essources'].
append(
"-XMLIdealGeometryESSource" )
816 self.
options[
'esmodules'].
append(
"-AutoMagneticFieldESProducer" )
831 self.
options[
'esmodules'].
append(
"-CaloTowerHardcodeGeometryEP" )
832 self.
options[
'esmodules'].
append(
"-CastorHardcodeGeometryEP" )
835 self.
options[
'esmodules'].
append(
"-EcalElectronicsMappingBuilder" )
837 self.
options[
'esmodules'].
append(
"-EcalLaserCorrectionService" )
838 self.
options[
'esmodules'].
append(
"-EcalPreshowerGeometryEP" )
839 self.
options[
'esmodules'].
append(
"-HcalHardcodeGeometryEP" )
841 self.
options[
'esmodules'].
append(
"-MuonNumberingInitialization" )
842 self.
options[
'esmodules'].
append(
"-ParametrizedMagneticFieldProducer" )
845 self.
options[
'esmodules'].
append(
"-SiStripRecHitMatcherESProducer" )
846 self.
options[
'esmodules'].
append(
"-SiStripQualityESProducer" )
847 self.
options[
'esmodules'].
append(
"-StripCPEfromTrackAngleESProducer" )
848 self.
options[
'esmodules'].
append(
"-TrackerDigiGeometryESModule" )
849 self.
options[
'esmodules'].
append(
"-TrackerGeometricDetESModule" )
850 self.
options[
'esmodules'].
append(
"-VolumeBasedMagneticFieldESProducer" )
853 self.
options[
'esmodules'].
append(
"-L1GtTriggerMaskAlgoTrigTrivialProducer" )
854 self.
options[
'esmodules'].
append(
"-L1GtTriggerMaskTechTrigTrivialProducer" )
855 self.
options[
'esmodules'].
append(
"-hltESPEcalTrigTowerConstituentsMapBuilder" )
856 self.
options[
'esmodules'].
append(
"-hltESPGlobalTrackingGeometryESProducer" )
857 self.
options[
'esmodules'].
append(
"-hltESPMuonDetLayerGeometryESProducer" )
858 self.
options[
'esmodules'].
append(
"-hltESPTrackerRecoGeometryESProducer" )
861 self.
options[
'esmodules'].
append(
"-CaloTowerGeometryFromDBEP" )
862 self.
options[
'esmodules'].
append(
"-CastorGeometryFromDBEP" )
863 self.
options[
'esmodules'].
append(
"-EcalBarrelGeometryFromDBEP" )
864 self.
options[
'esmodules'].
append(
"-EcalEndcapGeometryFromDBEP" )
865 self.
options[
'esmodules'].
append(
"-EcalPreshowerGeometryFromDBEP" )
876 if self.config.fragment
or (self.config.prescale
and (self.config.prescale.lower() ==
'none')):
879 if self.config.fragment
or self.config.timing:
884 if len(filenames) > 255:
891 self.
data +=
" %s = cms.untracked.vstring%s\n" % (name, token_open)
892 for line
in filenames:
893 self.
data +=
" '%s',\n" % line
894 self.
data +=
" %s,\n" % (token_close)
899 if input[0:8] ==
'dataset:':
900 from dasFileQuery
import dasFileQuery
906 files = self.config.input.split(
',')
910 if self.config.input:
913 elif self.config.online:
915 self.
source = [
"file:/tmp/InputCollection.root" ]
916 elif self.config.data:
918 self.
source = [
"file:RelVal_Raw_%s_DATA.root" % self.config.type ]
921 self.
source = [
"file:RelVal_Raw_%s_MC.root" % self.config.type ]
923 if self.config.parent:
928 %(process)s.source = cms.Source( "PoolSource", 934 inputCommands = cms.untracked.vstring( def __init__(self, configuration)
def splitter(iterator, n)
def addGlobalOptions(self)
def getSetupConfigurationFromDB(self)
def overrideProcessName(self)
def instrumentErrorEventType(self)
def replace(string, replacements)
def expand_filenames(self, input)
def updateMessageLogger(self)
def overrideL1MenuXml(self)
def overrideGlobalTag(self)
def specificCustomize(self)
def consolidatePositiveList(elements)
def overrideParameters(self, module, parameters)
def instrumentOpenMode(self)
def getRawConfigurationFromDB(self)
def loadAdditionalConditions(self, comment, conditions)
def loadCffCommand(self, module)
static std::string join(char **cmd)
def loadCff(self, module)
def consolidateNegativeList(elements)
def instrumentTiming(self)
def expandWildcards(globs, collection)
def _fix_parameter(self, args)
def append_filenames(self, name, filenames)
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