CMS 3D CMS Logo

Public Member Functions | Private Attributes | Static Private Attributes

trigTools::SwitchOnTrigger 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 = 'switchOnTrigger'

Detailed Description

Enables trigger information in PAT
SwitchOnTrigger( [cms.Process], triggerProducer = 'patTrigger', triggerEventProducer = 'patTriggerEvent', sequence = 'patDefaultSequence', hltProcess = 'HLT', outputModule = 'out' )
- [cms.Process]       : the 'cms.Process'
- 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'
Using None as any argument restores its default value.

Definition at line 58 of file trigTools.py.


Constructor & Destructor Documentation

def trigTools::SwitchOnTrigger::__init__ (   self)

Definition at line 78 of file trigTools.py.

00079                         :
00080         ConfigToolBase.__init__( self )
00081         self.addParameter( self._defaultParameters, 'triggerProducer'     , _defaultTriggerProducer     , _defaultTriggerProducerComment )
00082         self.addParameter( self._defaultParameters, 'triggerEventProducer', _defaultTriggerEventProducer, _defaultTriggerEventProducerComment )
00083         self.addParameter( self._defaultParameters, 'sequence'            , _defaultSequence            , _defaultSequenceComment )
00084         self.addParameter( self._defaultParameters, 'hltProcess'          , _defaultHltProcess          , _defaultHltProcessComment )
00085         self.addParameter( self._defaultParameters, 'outputModule'        , _defaultOutputModule        , _defaultOutputModuleComment )
00086         self._parameters = copy.deepcopy( self._defaultParameters )
00087         self._comment = ""


Member Function Documentation

def trigTools::SwitchOnTrigger::__call__ (   self,
  process,
  triggerProducer = None,
  triggerEventProducer = None,
  sequence = None,
  hltProcess = None,
  outputModule = None 
)

Definition at line 91 of file trigTools.py.

00098                  :
00099         if triggerProducer is None:
00100             triggerProducer = self._defaultParameters[ 'triggerProducer' ].value
00101         if triggerEventProducer is None:
00102             triggerEventProducer = self._defaultParameters[ 'triggerEventProducer' ].value
00103         if sequence is None:
00104             sequence = self._defaultParameters[ 'sequence' ].value
00105         if hltProcess is None:
00106             hltProcess = self._defaultParameters[ 'hltProcess' ].value
00107         if outputModule is None:
00108             outputModule = self._defaultParameters[ 'outputModule' ].value
00109         self.setParameter( 'triggerProducer'     , triggerProducer )
00110         self.setParameter( 'triggerEventProducer', triggerEventProducer )
00111         self.setParameter( 'sequence'            , sequence )
00112         self.setParameter( 'hltProcess'          , hltProcess )
00113         self.setParameter( 'outputModule'        , outputModule )
00114         self.apply( process )

def trigTools::SwitchOnTrigger::getDefaultParameters (   self)

Definition at line 88 of file trigTools.py.

00089                                     :
00090         return self._defaultParameters

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

Definition at line 115 of file trigTools.py.

00116                                  :
00117         triggerProducer      = self._parameters[ 'triggerProducer' ].value
00118         triggerEventProducer = self._parameters[ 'triggerEventProducer' ].value
00119         sequence             = self._parameters[ 'sequence' ].value
00120         hltProcess           = self._parameters[ 'hltProcess' ].value
00121         outputModule         = self._parameters[ 'outputModule' ].value
00122 
00123         # Load default producers from existing config files, if needed
00124         if not hasattr( process, triggerProducer ):
00125             if triggerProducer is self.getDefaultParameters()[ 'triggerProducer' ].value:
00126                 process.load( "PhysicsTools.PatAlgos.triggerLayer1.triggerProducer_cfi" )
00127         if not hasattr( process, triggerEventProducer ):
00128             if triggerEventProducer is self.getDefaultParameters()[ 'triggerEventProducer' ].value:
00129                 process.load( "PhysicsTools.PatAlgos.triggerLayer1.triggerEventProducer_cfi" )
00130 
00131         # Maintain configurations
00132         prodSequence            = getattr( process, sequence )
00133         trigProdMod             = getattr( process, triggerProducer )
00134         trigProdMod.processName = hltProcess
00135         if triggerProducer in _modulesInSequence( process, sequence ):
00136             print '%s():'%( self._label )
00137             print '    PATTriggerProducer module %s exists already in sequence %s'%( triggerProducer, sequence )
00138             print '    ==> entry re-used'
00139             if trigProdMod.onlyStandAlone.value() is True:
00140                 trigProdMod.onlyStandAlone = False
00141                 print '    configuration parameter automatically changed'
00142                 print '    PATTriggerProducer %s.onlyStandAlone --> %s'%( triggerProducer, trigProdMod.onlyStandAlone )
00143             print _longLine
00144         else:
00145             # Sequence arithmetics for PATTriggerProducer module
00146             if hasattr( process, sequence + 'Trigger' ):
00147                 index = len( getattr( process, sequence + 'Trigger' ).moduleNames() )
00148                 getattr( process, sequence + 'Trigger' ).insert( index, trigProdMod )
00149             else:
00150                 patTriggerSequence = cms.Sequence( trigProdMod )
00151                 setattr( process, sequence + 'Trigger', patTriggerSequence )
00152                 prodSequence *= getattr( process, sequence + 'Trigger' )
00153         trigEvtProdMod             = getattr( process, triggerEventProducer )
00154         trigEvtProdMod.processName = hltProcess
00155         if hasattr( trigEvtProdMod, 'patTriggerProducer' ):
00156             trigEvtProdMod.patTriggerProducer = triggerProducer
00157         else:
00158             trigEvtProdMod.patTriggerProducer = cms.InputTag( triggerProducer )
00159         if triggerEventProducer in _modulesInSequence( process, sequence ):
00160             print '%s():'%( self._label )
00161             print '    PATTriggerEventProducer module %s exists already in sequence %s'%( triggerEventProducer, sequence )
00162             print '    ==> entry re-used'
00163             print _longLine
00164         else:
00165             # Sequence arithmetics for PATTriggerEventProducer module
00166             if hasattr( process, sequence + 'TriggerEvent' ):
00167                 index = len( getattr( process, sequence + 'Trigger' ).moduleNames() )
00168                 getattr( process, sequence + 'TriggerEvent' ).insert( index, trigEvtProdMod )
00169             else:
00170                 patTriggerEventSequence = cms.Sequence( trigEvtProdMod )
00171                 setattr( process, sequence + 'TriggerEvent', patTriggerEventSequence )
00172                 prodSequence *= getattr( process, sequence + 'TriggerEvent' )
00173 
00174         # Add event content
00175         if outputModule is not '':
00176             patTriggerEventContent = [ 'keep patTriggerObjects_%s_*_%s'%( triggerProducer, process.name_() )
00177                                      , 'keep patTriggerFilters_%s_*_%s'%( triggerProducer, process.name_() )
00178                                      , 'keep patTriggerPaths_%s_*_%s'%( triggerProducer, process.name_() )
00179                                      , 'keep patTriggerEvent_%s_*_%s'%( triggerEventProducer, process.name_() )
00180                                      ]
00181             if hasattr( trigProdMod, 'addL1Algos' ) and trigProdMod.addL1Algos.value() is True:
00182                 patTriggerEventContent += [ 'keep patTriggerConditions_%s_*_%s'%( triggerProducer, process.name_() )
00183                                           , 'keep patTriggerAlgorithms_%s_*_%s'%( triggerProducer, process.name_() )
00184                                           ]
00185             if hasattr( trigProdMod, 'saveL1Refs' ) and trigProdMod.saveL1Refs.value() is True:
00186                 patTriggerEventContent += patTriggerL1RefsEventContent
00187             getattr( process, outputModule ).outputCommands = _addEventContent( getattr( process, outputModule ).outputCommands, patTriggerEventContent )


Member Data Documentation

Definition at line 78 of file trigTools.py.

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

Definition at line 76 of file trigTools.py.

Definition at line 75 of file trigTools.py.

Definition at line 78 of file trigTools.py.