CMS 3D CMS Logo

Public Member Functions | Private Attributes | Static Private Attributes

trigTools::SwitchOnTriggerMatchingStandAlone Class Reference

Inherits FWCore::GuiBrowsers::ConfigToolBase::ConfigToolBase.

List of all members.

Public Member Functions

def __call__
def __init__
def getDefaultParameters
def toolCode

Private Attributes

 _comment
 _parameters

Static Private Attributes

tuple _defaultParameters = dicttypes.SortedKeysDict()
string _label = 'switchOnTriggerMatchingStandAlone'

Detailed Description

Enables trigger matching in PAT
SwitchOnTriggerMatchingStandAlone( [cms.Process], triggerMatchers = [default list], triggerProducer = 'patTrigger', path = '', 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/triggerMatcherExamples_cfi.py)
- triggerProducer: PATTriggerProducer module label;
                   optional, default: 'patTrigger'
- path           : name of path to use;
                   optional, default: ''
- 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 417 of file trigTools.py.


Constructor & Destructor Documentation

def trigTools::SwitchOnTriggerMatchingStandAlone::__init__ (   self)

Definition at line 440 of file trigTools.py.

00441                         :
00442         ConfigToolBase.__init__( self )
00443         self.addParameter( self._defaultParameters, 'triggerMatchers', _exampleTriggerMatchers, _defaultTriggerMatchersComment )
00444         self.addParameter( self._defaultParameters, 'exampleMatchers', False                  , '' )
00445         self.addParameter( self._defaultParameters, 'triggerProducer', _defaultTriggerProducer, _defaultTriggerProducerComment )
00446         self.addParameter( self._defaultParameters, 'path'           , _defaultPath           , _defaultPathComment )
00447         self.addParameter( self._defaultParameters, 'hltProcess'     , _defaultHltProcess     , _defaultHltProcessComment )
00448         self.addParameter( self._defaultParameters, 'outputModule'   , _defaultOutputModule   , _defaultOutputModuleComment )
00449         self.addParameter( self._defaultParameters, 'postfix'        , _defaultPostfix        , _defaultPostfixComment )
00450         self._parameters = copy.deepcopy( self._defaultParameters )
00451         self._comment = ""


Member Function Documentation

def trigTools::SwitchOnTriggerMatchingStandAlone::__call__ (   self,
  process,
  triggerMatchers = None,
  triggerProducer = None,
  path = None,
  hltProcess = None,
  outputModule = None,
  postfix = None 
)

Definition at line 455 of file trigTools.py.

00463                  :
00464         if triggerMatchers is None:
00465             triggerMatchers = self._defaultParameters[ 'triggerMatchers' ].value
00466             self.setParameter( 'exampleMatchers', True )
00467         if triggerProducer is None:
00468             triggerProducer = self._defaultParameters[ 'triggerProducer' ].value
00469         if path is None:
00470             path = self._defaultParameters[ 'path' ].value
00471         if hltProcess is None:
00472             hltProcess = self._defaultParameters[ 'hltProcess' ].value
00473         if outputModule is None:
00474             outputModule = self._defaultParameters[ 'outputModule' ].value
00475         if postfix is None:
00476             postfix = self._defaultParameters[ 'postfix' ].value
00477         self.setParameter( 'triggerMatchers', triggerMatchers )
00478         self.setParameter( 'triggerProducer', triggerProducer )
00479         self.setParameter( 'path'           , path )
00480         self.setParameter( 'hltProcess'     , hltProcess )
00481         self.setParameter( 'outputModule'   , outputModule )
00482         self.setParameter( 'postfix'        , postfix )
00483         self.apply( process )

def trigTools::SwitchOnTriggerMatchingStandAlone::getDefaultParameters (   self)

Definition at line 452 of file trigTools.py.

00453                                     :
00454         return self._defaultParameters

def trigTools::SwitchOnTriggerMatchingStandAlone::toolCode (   self,
  process 
)

Definition at line 484 of file trigTools.py.

00485                                  :
00486         triggerMatchers = self._parameters[ 'triggerMatchers' ].value
00487         exampleMatchers = self._parameters[ 'exampleMatchers' ].value
00488         triggerProducer = self._parameters[ 'triggerProducer' ].value
00489         path            = self._parameters[ 'path' ].value
00490         hltProcess      = self._parameters[ 'hltProcess' ].value
00491         outputModule    = self._parameters[ 'outputModule' ].value
00492         postfix         = self._parameters[ 'postfix' ].value
00493 
00494         # Load default producers from existing config file, if needed
00495         if exampleMatchers:
00496             process.load( "PhysicsTools.PatAlgos.triggerLayer1.triggerMatcherExamples_cfi" )
00497 
00498         # Switch on PAT trigger information if needed
00499         if not hasattr( process, triggerProducer ):
00500             print '%s():'%( self._label )
00501             print '    PAT trigger production switched on automatically using'
00502             print '    switchOnTriggerStandAlone( process, \'%s\', \'%s\', \'%s\', \'%s\' )'%( hltProcess, triggerProducer, path, outputModule )
00503             print _longLine
00504             switchOnTriggerStandAlone( process, triggerProducer, path, hltProcess, outputModule )
00505 
00506         # Maintain configurations
00507         triggerMatchersKnown = []
00508         for matcher in triggerMatchers:
00509             if not hasattr( process, matcher ):
00510                 print '%s():'%( self._label )
00511                 print '    Matcher \'%s\' not known to process'%( matcher )
00512                 print '    ==> skipped'
00513                 print _longLine
00514                 continue
00515             triggerMatchersKnown.append( matcher )
00516             trigMchMod         = getattr( process, matcher )
00517             trigMchMod.src     = cms.InputTag( trigMchMod.src.getModuleLabel() + postfix )
00518             trigMchMod.matched = triggerProducer
00519 
00520         # Add event content
00521         if outputModule is not '':
00522             patTriggerEventContent = []
00523             for matcher in triggerMatchersKnown:
00524                 patTriggerEventContent += [ 'keep patTriggerObjectStandAlonesedmAssociation_%s_*_%s'%( matcher, process.name_() )
00525                                           , 'keep *_%s_*_*'%( getattr( process, matcher ).src.value() )
00526                                           ]
00527             getattr( process, outputModule ).outputCommands = _addEventContent( getattr( process, outputModule ).outputCommands, patTriggerEventContent )


Member Data Documentation

Definition at line 440 of file trigTools.py.

tuple trigTools::SwitchOnTriggerMatchingStandAlone::_defaultParameters = dicttypes.SortedKeysDict() [static, private]

Definition at line 438 of file trigTools.py.

Definition at line 437 of file trigTools.py.

Definition at line 440 of file trigTools.py.