![]() |
![]() |
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', 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' - 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 555 of file trigTools.py.
def trigTools::SwitchOnTriggerMatchEmbedding::__init__ | ( | self | ) |
Definition at line 578 of file trigTools.py.
00579 : 00580 ConfigToolBase.__init__( self ) 00581 self.addParameter( self._defaultParameters, 'triggerMatchers', _defaultTriggerMatchers, _defaultTriggerMatchersComment ) 00582 self.addParameter( self._defaultParameters, 'triggerProducer', _defaultTriggerProducer, _defaultTriggerProducerComment ) 00583 self.addParameter( self._defaultParameters, 'sequence' , _defaultSequence , _defaultSequenceComment ) 00584 self.addParameter( self._defaultParameters, 'hltProcess' , _defaultHltProcess , _defaultHltProcessComment ) 00585 self.addParameter( self._defaultParameters, 'outputModule' , _defaultOutputModule , _defaultOutputModuleComment ) 00586 self.addParameter( self._defaultParameters, 'postfix' , _defaultPostfix , _defaultPostfixComment ) 00587 self._parameters = copy.deepcopy( self._defaultParameters ) 00588 self._comment = ""
def trigTools::SwitchOnTriggerMatchEmbedding::__call__ | ( | self, | |
process, | |||
triggerMatchers = None , |
|||
triggerProducer = None , |
|||
sequence = None , |
|||
hltProcess = None , |
|||
outputModule = None , |
|||
postfix = None |
|||
) |
Definition at line 592 of file trigTools.py.
00600 : 00601 if triggerMatchers is None: 00602 triggerMatchers = self._defaultParameters[ 'triggerMatchers' ].value 00603 if triggerProducer is None: 00604 triggerProducer = self._defaultParameters[ 'triggerProducer' ].value 00605 if sequence is None: 00606 sequence = self._defaultParameters[ 'sequence' ].value 00607 if hltProcess is None: 00608 hltProcess = self._defaultParameters[ 'hltProcess' ].value 00609 if outputModule is None: 00610 outputModule = self._defaultParameters[ 'outputModule' ].value 00611 if postfix is None: 00612 postfix = self._defaultParameters[ 'postfix' ].value 00613 self.setParameter( 'triggerMatchers', triggerMatchers ) 00614 self.setParameter( 'triggerProducer', triggerProducer ) 00615 self.setParameter( 'sequence' , sequence ) 00616 self.setParameter( 'hltProcess' , hltProcess ) 00617 self.setParameter( 'outputModule' , outputModule ) 00618 self.setParameter( 'postfix' , postfix ) 00619 self.apply( process )
def trigTools::SwitchOnTriggerMatchEmbedding::getDefaultParameters | ( | self | ) |
Definition at line 589 of file trigTools.py.
def trigTools::SwitchOnTriggerMatchEmbedding::toolCode | ( | self, | |
process | |||
) |
Definition at line 620 of file trigTools.py.
00621 : 00622 triggerMatchers = self._parameters[ 'triggerMatchers' ].value 00623 triggerProducer = self._parameters[ 'triggerProducer' ].value 00624 sequence = self._parameters[ 'sequence' ].value 00625 hltProcess = self._parameters[ 'hltProcess' ].value 00626 outputModule = self._parameters[ 'outputModule' ].value 00627 postfix = self._parameters[ 'postfix' ].value 00628 00629 # Build dictionary of known input collections 00630 dictPatObjects = { 'Photons' : 'PATTriggerMatchPhotonEmbedder' 00631 , 'Electrons': 'PATTriggerMatchElectronEmbedder' 00632 , 'Muons' : 'PATTriggerMatchMuonEmbedder' 00633 , 'Taus' : 'PATTriggerMatchTauEmbedder' 00634 , 'Jets' : 'PATTriggerMatchJetEmbedder' 00635 , 'METs' : 'PATTriggerMatchMETEmbedder' 00636 } 00637 listPatSteps = [ 'pat', 'selectedPat', 'cleanPat' ] 00638 listJetAlgos = [ 'IC5', 'SC5', 'KT4', 'KT6', 'AK5' ] 00639 listJetTypes = [ 'Calo', 'PF', 'JPT' ] 00640 dictEmbedders = {} 00641 for objects in dictPatObjects.keys(): 00642 steps = len( listPatSteps ) 00643 if objects is 'METs': 00644 steps = 1 00645 for step in range( steps ): 00646 coll = listPatSteps[ step ] + objects 00647 dictEmbedders[ coll ] = dictPatObjects[ objects ] 00648 dictEmbedders[ coll + postfix ] = dictPatObjects[ objects ] 00649 if objects is 'Jets': 00650 for jetAlgo in listJetAlgos: 00651 for jetType in listJetTypes: 00652 jetColl = coll + jetAlgo + jetType 00653 dictEmbedders[ jetColl ] = dictPatObjects[ objects ] 00654 dictEmbedders[ jetColl + postfix ] = dictPatObjects[ objects ] 00655 00656 # Build dictionary of matchers and switch on PAT trigger matching if needed 00657 dictConfig = {} 00658 matchingOn = False 00659 for matcher in triggerMatchers: 00660 if matcher not in _modulesInSequence( process, sequence ) and not matchingOn: 00661 print '%s():'%( self._label ) 00662 print ' PAT trigger matching switched on automatically using' 00663 print ' switchOnTriggerMatchingStandAlone( process, %s, %s, %s, %s, %s )'%( hltProcess, triggerMatchers, triggerProducer, sequence, outputModule ) 00664 print _longLine 00665 switchOnTriggerMatchingStandAlone( process, triggerMatchers, triggerProducer, sequence, hltProcess, '', postfix ) 00666 matchingOn = True 00667 trigMchMod = getattr( process, matcher ) 00668 if trigMchMod.src.value() in dictConfig: 00669 dictConfig[ trigMchMod.src.value() ] += [ matcher ] 00670 else: 00671 dictConfig[ trigMchMod.src.value() ] = [ matcher ] 00672 00673 # Maintain configurations 00674 patTriggerEventContent = [] 00675 for srcInput in dictConfig.keys(): 00676 if dictEmbedders.has_key( srcInput ): 00677 # Configure embedder module 00678 dictIndex = srcInput 00679 srcInput += postfix 00680 if dictEmbedders.has_key( srcInput ): 00681 label = srcInput + 'TriggerMatch' 00682 if label in _modulesInSequence( process, sequence ): 00683 print '%s():'%( self._label ) 00684 print ' PAT trigger match embedder %s exists already in sequence %s'%( label, sequence ) 00685 print ' ==> entry moved to proper place' 00686 print _longLine 00687 removeIfInSequence( process, label, sequence + 'Trigger' ) 00688 module = cms.EDProducer( dictEmbedders[ dictIndex ] ) 00689 module.src = cms.InputTag( srcInput ) 00690 module.matches = cms.VInputTag( dictConfig[ dictIndex ] ) 00691 setattr( process, label, module ) 00692 trigEmbMod = getattr( process, label ) 00693 index = len( getattr( process, sequence + 'Trigger' ).moduleNames() ) 00694 getattr( process, sequence + 'Trigger' ).insert( index, trigEmbMod ) 00695 # Add event content 00696 patTriggerEventContent += [ 'drop *_%s_*_*'%( srcInput ) 00697 , 'keep *_%s_*_%s'%( label, process.name_() ) 00698 ] 00699 else: 00700 print '%s():'%( self._label ) 00701 print ' Invalid new input source for trigger match embedding' 00702 print ' ==> %s with matchers %s is skipped'%( srcInput, dictConfig[ dictIndex ] ) 00703 print _longLine 00704 else: 00705 print '%s():'%( self._label ) 00706 print ' Invalid input source for trigger match embedding' 00707 print ' ==> %s with matchers %s is skipped'%( srcInput, dictConfig[ srcInput ] ) 00708 print _longLine 00709 if outputModule is not '': 00710 getattr( process, outputModule ).outputCommands = _addEventContent( getattr( process, outputModule ).outputCommands, patTriggerEventContent )
Definition at line 578 of file trigTools.py.
tuple trigTools::SwitchOnTriggerMatchEmbedding::_defaultParameters = dicttypes.SortedKeysDict() [static, private] |
Definition at line 576 of file trigTools.py.
string trigTools::SwitchOnTriggerMatchEmbedding::_label = 'switchOnTriggerMatchEmbedding' [static, private] |
Definition at line 575 of file trigTools.py.
Definition at line 578 of file trigTools.py.