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 63 of file trigTools.py.


Constructor & Destructor Documentation

def trigTools::SwitchOnTrigger::__init__ (   self)

Definition at line 83 of file trigTools.py.

00084                         :
00085         ConfigToolBase.__init__( self )
00086         self.addParameter( self._defaultParameters, 'triggerProducer'     , _defaultTriggerProducer     , _defaultTriggerProducerComment )
00087         self.addParameter( self._defaultParameters, 'triggerEventProducer', _defaultTriggerEventProducer, _defaultTriggerEventProducerComment )
00088         self.addParameter( self._defaultParameters, 'sequence'            , _defaultSequence            , _defaultSequenceComment )
00089         self.addParameter( self._defaultParameters, 'hltProcess'          , _defaultHltProcess          , _defaultHltProcessComment )
00090         self.addParameter( self._defaultParameters, 'outputModule'        , _defaultOutputModule        , _defaultOutputModuleComment )
00091         self._parameters = copy.deepcopy( self._defaultParameters )
00092         self._comment = ""


Member Function Documentation

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

Definition at line 96 of file trigTools.py.

00103                  :
00104         if triggerProducer is None:
00105             triggerProducer = self._defaultParameters[ 'triggerProducer' ].value
00106         if triggerEventProducer is None:
00107             triggerEventProducer = self._defaultParameters[ 'triggerEventProducer' ].value
00108         if sequence is None:
00109             sequence = self._defaultParameters[ 'sequence' ].value
00110         if hltProcess is None:
00111             hltProcess = self._defaultParameters[ 'hltProcess' ].value
00112         if outputModule is None:
00113             outputModule = self._defaultParameters[ 'outputModule' ].value
00114         self.setParameter( 'triggerProducer'     , triggerProducer )
00115         self.setParameter( 'triggerEventProducer', triggerEventProducer )
00116         self.setParameter( 'sequence'            , sequence )
00117         self.setParameter( 'hltProcess'          , hltProcess )
00118         self.setParameter( 'outputModule'        , outputModule )
00119         self.apply( process )

def trigTools::SwitchOnTrigger::getDefaultParameters (   self)

Definition at line 93 of file trigTools.py.

00094                                     :
00095         return self._defaultParameters

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

Definition at line 120 of file trigTools.py.

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


Member Data Documentation

Definition at line 83 of file trigTools.py.

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

Definition at line 81 of file trigTools.py.

Definition at line 80 of file trigTools.py.

Definition at line 83 of file trigTools.py.