![]() |
![]() |
Inherits FWCore::GuiBrowsers::ConfigToolBase::ConfigToolBase.
Public Member Functions | |
def | __call__ |
def | __init__ |
def | getDefaultParameters |
def | toolCode |
Private Attributes | |
_comment | |
_parameters | |
Static Private Attributes | |
tuple | _defaultParameters = dicttypes.SortedKeysDict() |
string | _label = 'switchOnTriggerMatching' |
Enables trigger matching in PAT SwitchOnTriggerMatching( [cms.Process], triggerMatchers = [default list], triggerProducer = 'patTrigger', triggerEventProducer = 'patTriggerEvent', sequence = 'patDefaultSequence', hltProcess = 'HLT', outputModule = 'out', postfix = '' ) - [cms.Process] : the 'cms.Process' - triggerMatchers : PAT trigger matcher module labels (list) optional; default: defined in 'triggerMatchingDefaultSequence' (s. PhysicsTools/PatAlgos/python/triggerLayer1/triggerMatcher_cfi.py) - triggerProducer : PATTriggerProducer module label; optional, default: 'patTrigger' - triggerEventProducer: PATTriggerEventProducer module label; optional, default: 'patTriggerEvent' - sequence : name of sequence to use; optional, default: 'patDefaultSequence' - hltProcess : HLT process name; optional, default: 'HLT' - outputModule : output module label; empty label indicates no output; optional, default: 'out' - postfix : postfix to apply to PAT module labels; optional, default: '' Using None as any argument restores its default value.
Definition at line 288 of file trigTools.py.
def trigTools::SwitchOnTriggerMatching::__init__ | ( | self | ) |
Definition at line 313 of file trigTools.py.
00314 : 00315 ConfigToolBase.__init__( self ) 00316 self.addParameter( self._defaultParameters, 'triggerMatchers' , _defaultTriggerMatchers , _defaultTriggerMatchersComment ) 00317 self.addParameter( self._defaultParameters, 'triggerProducer' , _defaultTriggerProducer , _defaultTriggerProducerComment ) 00318 self.addParameter( self._defaultParameters, 'triggerEventProducer', _defaultTriggerEventProducer, _defaultTriggerEventProducerComment ) 00319 self.addParameter( self._defaultParameters, 'sequence' , _defaultSequence , _defaultSequenceComment ) 00320 self.addParameter( self._defaultParameters, 'hltProcess' , _defaultHltProcess , _defaultHltProcessComment ) 00321 self.addParameter( self._defaultParameters, 'outputModule' , _defaultOutputModule , _defaultOutputModuleComment ) 00322 self.addParameter( self._defaultParameters, 'postfix' , _defaultPostfix , _defaultPostfixComment ) 00323 self._parameters = copy.deepcopy( self._defaultParameters ) 00324 self._comment = ""
def trigTools::SwitchOnTriggerMatching::__call__ | ( | self, | |
process, | |||
triggerMatchers = None , |
|||
triggerProducer = None , |
|||
triggerEventProducer = None , |
|||
sequence = None , |
|||
hltProcess = None , |
|||
outputModule = None , |
|||
postfix = None |
|||
) |
Definition at line 328 of file trigTools.py.
00337 : 00338 if triggerMatchers is None: 00339 triggerMatchers = self._defaultParameters[ 'triggerMatchers' ].value 00340 if triggerProducer is None: 00341 triggerProducer = self._defaultParameters[ 'triggerProducer' ].value 00342 if triggerEventProducer is None: 00343 triggerEventProducer = self._defaultParameters[ 'triggerEventProducer' ].value 00344 if sequence is None: 00345 sequence = self._defaultParameters[ 'sequence' ].value 00346 if hltProcess is None: 00347 hltProcess = self._defaultParameters[ 'hltProcess' ].value 00348 if outputModule is None: 00349 outputModule = self._defaultParameters[ 'outputModule' ].value 00350 if postfix is None: 00351 postfix = self._defaultParameters[ 'postfix' ].value 00352 self.setParameter( 'triggerMatchers' , triggerMatchers ) 00353 self.setParameter( 'triggerProducer' , triggerProducer ) 00354 self.setParameter( 'triggerEventProducer', triggerEventProducer ) 00355 self.setParameter( 'sequence' , sequence ) 00356 self.setParameter( 'hltProcess' , hltProcess ) 00357 self.setParameter( 'outputModule' , outputModule ) 00358 self.setParameter( 'postfix' , postfix ) 00359 self.apply( process )
def trigTools::SwitchOnTriggerMatching::getDefaultParameters | ( | self | ) |
Definition at line 325 of file trigTools.py.
def trigTools::SwitchOnTriggerMatching::toolCode | ( | self, | |
process | |||
) |
Definition at line 360 of file trigTools.py.
00361 : 00362 triggerMatchers = self._parameters[ 'triggerMatchers' ].value 00363 triggerProducer = self._parameters[ 'triggerProducer' ].value 00364 triggerEventProducer = self._parameters[ 'triggerEventProducer' ].value 00365 sequence = self._parameters[ 'sequence' ].value 00366 hltProcess = self._parameters[ 'hltProcess' ].value 00367 outputModule = self._parameters[ 'outputModule' ].value 00368 postfix = self._parameters[ 'postfix' ].value 00369 00370 # Load default producers from existing config file, if needed 00371 if not hasattr( process, 'triggerMatchingDefaultSequence' ): 00372 for matcher in triggerMatchers: 00373 if matcher in self.getDefaultParameters()[ 'triggerMatchers' ].value: 00374 process.load( "PhysicsTools.PatAlgos.triggerLayer1.triggerMatcher_cfi" ) 00375 break 00376 00377 # Switch on PAT trigger information if needed 00378 if ( triggerProducer not in _modulesInSequence( process, sequence ) or triggerEventProducer not in _modulesInSequence( process, sequence ) ): 00379 print '%s():'%( self._label ) 00380 print ' PAT trigger production switched on automatically using' 00381 print ' switchOnTrigger( process, %s, %s, %s, %s, %s )'%( hltProcess, triggerProducer, triggerEventProducer, sequence, outputModule ) 00382 print _longLine 00383 switchOnTrigger( process, triggerProducer, triggerEventProducer, sequence, hltProcess, outputModule ) 00384 00385 # Maintain configurations 00386 prodSequence = getattr( process, sequence ) 00387 trigEvtProdMod = getattr( process, triggerEventProducer ) 00388 if trigEvtProdMod.patTriggerProducer.value() is not triggerProducer: 00389 print '%s():'%( self._label ) 00390 print ' Configuration conflict found' 00391 print ' triggerProducer = %s'%( triggerProducer ) 00392 print ' differs from' 00393 print ' %s.patTriggerProducer = %s'%( triggerEventProducer, trigEvtProdMod.patTriggerProducer ) 00394 print ' parameter automatically changed' 00395 print ' ==> triggerProducer --> %s'%( trigEvtProdMod.patTriggerProducer ) 00396 triggerProducer = trigEvtProdMod.patTriggerProducer 00397 for matcher in triggerMatchers: 00398 trigMchMod = getattr( process, matcher ) 00399 trigMchMod.src = cms.InputTag( trigMchMod.src.getModuleLabel() + postfix ) 00400 trigMchMod.matched = triggerProducer 00401 if matcher in _modulesInSequence( process, sequence ): 00402 print '%s():'%( self._label ) 00403 print ' PAT trigger matcher %s exists already in sequence %s'%( matcher, sequence ) 00404 print ' ==> entry re-used' 00405 print _longLine 00406 else: 00407 # Sequence arithmetics for PAT trigger matcher modules 00408 index = len( getattr( process, sequence + 'Trigger' ).moduleNames() ) 00409 getattr( process, sequence + 'Trigger' ).insert( index, trigMchMod ) 00410 matchers = getattr( trigEvtProdMod, 'patTriggerMatches' ) 00411 if len( matchers ) > 0: 00412 print '%s():'%( self._label ) 00413 print ' PAT trigger matchers already attached to existing PATTriggerEventProducer %s'%( triggerEventProducer ) 00414 print ' configuration parameters automatically changed' 00415 for matcher in matchers: 00416 trigMchMod = getattr( process, matcher ) 00417 if trigMchMod.matched.value() is not triggerProducer: 00418 removeIfInSequence( process, matcher, sequence + 'Trigger' ) 00419 trigMchMod.matched = triggerProducer 00420 index = len( getattr( process, sequence + 'Trigger' ).moduleNames() ) 00421 getattr( process, sequence + 'Trigger' ).insert( index, trigMchMod ) 00422 print ' PAT trigger matcher %s.matched --> %s'%( matcher, trigMchMod.matched ) 00423 print _longLine 00424 else: 00425 trigEvtProdMod.patTriggerMatches = cms.VInputTag() 00426 for matcher in triggerMatchers: 00427 trigEvtProdMod.patTriggerMatches.append( cms.InputTag( matcher ) ) 00428 00429 # Add event content 00430 if outputModule is not '': 00431 patTriggerEventContent = [] 00432 for matcher in triggerMatchers: 00433 patTriggerEventContent += [ 'keep patTriggerObjectsedmAssociation_%s_%s_%s'%( triggerEventProducer, matcher, process.name_() ) 00434 , 'keep *_%s_*_*'%( getattr( process, matcher ).src.value() ) 00435 ] 00436 getattr( process, outputModule ).outputCommands = _addEventContent( getattr( process, outputModule ).outputCommands, patTriggerEventContent )
Definition at line 313 of file trigTools.py.
tuple trigTools::SwitchOnTriggerMatching::_defaultParameters = dicttypes.SortedKeysDict() [static, private] |
Definition at line 311 of file trigTools.py.
string trigTools::SwitchOnTriggerMatching::_label = 'switchOnTriggerMatching' [static, private] |
Definition at line 310 of file trigTools.py.
Definition at line 313 of file trigTools.py.