![]() |
![]() |
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 = 'switchOnTriggerMatchEmbedding' |
Enables embedding of trigger matches into PAT objects SwitchOnTriggerMatchEmbedding( [cms.Process], triggerMatchers = [default list], triggerProducer = 'patTrigger', sequence = 'patDefaultSequence', hltProcess = 'HLT', outputModule = 'out' ) - [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' - 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' Using None as any argument restores its default value.
Definition at line 532 of file trigTools.py.
def trigTools::SwitchOnTriggerMatchEmbedding::__init__ | ( | self | ) |
Definition at line 553 of file trigTools.py.
00554 : 00555 ConfigToolBase.__init__( self ) 00556 self.addParameter( self._defaultParameters, 'triggerMatchers', _defaultTriggerMatchers, _defaultTriggerMatchersComment ) 00557 self.addParameter( self._defaultParameters, 'triggerProducer', _defaultTriggerProducer, _defaultTriggerProducerComment ) 00558 self.addParameter( self._defaultParameters, 'sequence' , _defaultSequence , _defaultSequenceComment ) 00559 self.addParameter( self._defaultParameters, 'hltProcess' , _defaultHltProcess , _defaultHltProcessComment ) 00560 self.addParameter( self._defaultParameters, 'outputModule' , _defaultOutputModule , _defaultOutputModuleComment ) 00561 self._parameters = copy.deepcopy( self._defaultParameters ) 00562 self._comment = ""
def trigTools::SwitchOnTriggerMatchEmbedding::__call__ | ( | self, | |
process, | |||
triggerMatchers = None , |
|||
triggerProducer = None , |
|||
sequence = None , |
|||
hltProcess = None , |
|||
outputModule = None |
|||
) |
Definition at line 566 of file trigTools.py.
00573 : 00574 if triggerMatchers is None: 00575 triggerMatchers = self._defaultParameters[ 'triggerMatchers' ].value 00576 if triggerProducer is None: 00577 triggerProducer = self._defaultParameters[ 'triggerProducer' ].value 00578 if sequence is None: 00579 sequence = self._defaultParameters[ 'sequence' ].value 00580 if hltProcess is None: 00581 hltProcess = self._defaultParameters[ 'hltProcess' ].value 00582 if outputModule is None: 00583 outputModule = self._defaultParameters[ 'outputModule' ].value 00584 self.setParameter( 'triggerMatchers', triggerMatchers ) 00585 self.setParameter( 'triggerProducer', triggerProducer ) 00586 self.setParameter( 'sequence' , sequence ) 00587 self.setParameter( 'hltProcess' , hltProcess ) 00588 self.setParameter( 'outputModule' , outputModule ) 00589 self.apply( process )
def trigTools::SwitchOnTriggerMatchEmbedding::getDefaultParameters | ( | self | ) |
Definition at line 563 of file trigTools.py.
def trigTools::SwitchOnTriggerMatchEmbedding::toolCode | ( | self, | |
process | |||
) |
Definition at line 590 of file trigTools.py.
00591 : 00592 triggerMatchers = self._parameters[ 'triggerMatchers' ].value 00593 triggerProducer = self._parameters[ 'triggerProducer' ].value 00594 sequence = self._parameters[ 'sequence' ].value 00595 hltProcess = self._parameters[ 'hltProcess' ].value 00596 outputModule = self._parameters[ 'outputModule' ].value 00597 00598 # Build dictionary of known input collections 00599 dictPatObjects = { 'Photons' : 'PATTriggerMatchPhotonEmbedder' 00600 , 'Electrons': 'PATTriggerMatchElectronEmbedder' 00601 , 'Muons' : 'PATTriggerMatchMuonEmbedder' 00602 , 'Taus' : 'PATTriggerMatchTauEmbedder' 00603 , 'Jets' : 'PATTriggerMatchJetEmbedder' 00604 , 'METs' : 'PATTriggerMatchMETEmbedder' 00605 } 00606 listPatSteps = [ 'pat', 'selectedPat', 'cleanPat' ] 00607 listJetAlgos = [ 'IC5', 'SC5', 'KT4', 'KT6', 'AK5' ] 00608 listJetTypes = [ 'Calo', 'PF', 'JPT' ] 00609 dictEmbedders = {} 00610 for objects in dictPatObjects.keys(): 00611 steps = len( listPatSteps ) 00612 if objects is 'METs': 00613 steps = 1 00614 for step in range( steps ): 00615 coll = listPatSteps[ step ] + objects 00616 dictEmbedders[ coll ] = dictPatObjects[ objects ] 00617 if objects is 'Jets': 00618 for jetAlgo in listJetAlgos: 00619 for jetType in listJetTypes: 00620 jetColl = coll + jetAlgo + jetType 00621 dictEmbedders[ jetColl ] = dictPatObjects[ objects ] 00622 00623 # Switch on PAT trigger matching if needed 00624 for matcher in triggerMatchers: 00625 if matcher not in _modulesInSequence( process, sequence ): 00626 print '%s():'%( self._label ) 00627 print ' PAT trigger matching switched on automatically using' 00628 print ' switchOnTriggerMatchingStandAlone( process, %s, %s, %s, %s, %s )'%( hltProcess, triggerMatchers, triggerProducer, sequence, outputModule ) 00629 print _longLine 00630 switchOnTriggerMatchingStandAlone( process, triggerMatchers, triggerProducer, sequence, hltProcess, '' ) 00631 break 00632 00633 # Maintain configurations 00634 dictConfig = {} 00635 for matcher in triggerMatchers: 00636 trigMchMod = getattr( process, matcher ) 00637 if trigMchMod.src.value() in dictConfig: 00638 dictConfig[ trigMchMod.src.value() ] += [ matcher ] 00639 else: 00640 dictConfig[ trigMchMod.src.value() ] = [ matcher ] 00641 patTriggerEventContent = [] 00642 for srcInput in dictConfig.keys(): 00643 if dictEmbedders.has_key( srcInput ): 00644 label = srcInput + 'TriggerMatch' 00645 if label in _modulesInSequence( process, sequence ): 00646 print '%s():'%( self._label ) 00647 print ' PAT trigger match embedder %s exists already in sequence %s'%( label, sequence ) 00648 print ' ==> entry moved to proper place' 00649 print _longLine 00650 removeIfInSequence( process, label, 'patTriggerSequence' ) 00651 # Configure embedder module 00652 module = cms.EDProducer( dictEmbedders[ srcInput ] ) 00653 module.src = cms.InputTag( srcInput ) 00654 module.matches = cms.VInputTag( dictConfig[ srcInput ] ) 00655 setattr( process, label, module ) 00656 trigEmbMod = getattr( process, label ) 00657 process.patTriggerSequence *= trigEmbMod 00658 # Add event content 00659 patTriggerEventContent += [ 'drop *_%s_*_*'%( srcInput ) 00660 , 'keep *_%s_*_%s'%( label, process.name_() ) 00661 ] 00662 else: 00663 print '%s():'%( self._label ) 00664 print ' Invalid input source for trigger match embedding' 00665 print ' ==> %s with matchers %s is skipped'%( srcInput, dictConfig[ srcInput ] ) 00666 print _longLine 00667 if outputModule is not '': 00668 getattr( process, outputModule ).outputCommands = _addEventContent( getattr( process, outputModule ).outputCommands, patTriggerEventContent )
Definition at line 553 of file trigTools.py.
tuple trigTools::SwitchOnTriggerMatchEmbedding::_defaultParameters = dicttypes.SortedKeysDict() [static, private] |
Definition at line 551 of file trigTools.py.
string trigTools::SwitchOnTriggerMatchEmbedding::_label = 'switchOnTriggerMatchEmbedding' [static, private] |
Definition at line 550 of file trigTools.py.
Definition at line 553 of file trigTools.py.