Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-11-25 02:30:04

0001 # As of 1 Feb 2017:
0002 # This configuration appears to be already broken in more
0003 # than one way. It fails to even run only under python.
0004 # For this reason, it was not converted to use Tasks.
0005 # If it is ever fixed, it will also need to be migrated
0006 # to use Tasks.
0007 
0008 #
0009 # This file contains the Top PAG reference selection work-flow for mu + jets analysis.
0010 # as defined in
0011 # https://twiki.cern.ch/twiki/bin/view/CMS/TWikiTopRefEventSel#mu_jets_Channel
0012 #
0013 # Command line arguments:
0014 # - standard command line arguments as defined in FWCore.ParameterSet.VarParsing.VarParsing( 'standard' )
0015 #   + 'maxEvent' (int , default: -1)
0016 # - 'runOnMC'          (bool, default: True ): decide if run on MC or real data
0017 # - 'runOnMiniAOD'     (bool, default: True ): decide if run on miniAOD or AOD input
0018 # - 'useElecEAIsoCorr' (bool, default: True ): decide, if EA (rho) or Delta beta corrections are used for electron isolation
0019 # - 'useCalibElec'     (bool, default: False): decide, if electron re-calibration using regression energies is used
0020 # - 'addTriggerMatch'  (bool, default: True ): decide, if trigger objects are matched to signal muons
0021 #
0022 
0023 
0024 import sys
0025 
0026 import FWCore.ParameterSet.Config as cms
0027 
0028 
0029 # Command line parsing
0030 
0031 import FWCore.ParameterSet.VarParsing as VarParsing
0032 options = VarParsing.VarParsing ( 'standard' )
0033 options.register( 'runOnMC'         , True , VarParsing.VarParsing.multiplicity.singleton, VarParsing.VarParsing.varType.bool, 'decide, if run on MC or real data' )
0034 options.register( 'runOnMiniAOD'    , True , VarParsing.VarParsing.multiplicity.singleton, VarParsing.VarParsing.varType.bool, 'decide, if run on miniAOD or AOD input' )
0035 options.register( 'useElecEAIsoCorr', True , VarParsing.VarParsing.multiplicity.singleton, VarParsing.VarParsing.varType.bool, 'decide, if EA (rho) or Delta beta corrections are used for electron isolation is used' )
0036 options.register( 'useCalibElec'    , False, VarParsing.VarParsing.multiplicity.singleton, VarParsing.VarParsing.varType.bool, 'decide, if electron re-calibration using regression energies is used' )
0037 options.register( 'addTriggerMatch' , True , VarParsing.VarParsing.multiplicity.singleton, VarParsing.VarParsing.varType.bool, 'decide, if trigger objects are matched to signal muons' )
0038 # parsing command line arguments
0039 if( hasattr( sys, 'argv' ) ):
0040   if( len( sys.argv ) > 2 ):
0041     print('Parsing command line arguments:')
0042   for args in sys.argv :
0043     arg = args.split(',')
0044     for val in arg:
0045       val = val.split( '=' )
0046       if( len( val ) == 2 ):
0047         print('Setting "', val[0], '" to:', val[1])
0048         setattr( options, val[0], val[1] )
0049 
0050 
0051 process = cms.Process( 'USER' )
0052 #process.Tracer = cms.Service( "Tracer" )
0053 
0054 
0055 ### ======================================================================== ###
0056 ###                                                                          ###
0057 ###                                 Constants                                ###
0058 ###                            (user job steering)                           ###
0059 ###                                                                          ###
0060 ### ======================================================================== ###
0061 
0062 
0063 from TopQuarkAnalysis.Configuration.patRefSel_refMuJets import *
0064 
0065 inputFiles = []
0066 
0067 
0068 ### Selection steps
0069 # If a step is switched off here, its results will still be available in the coreespondinng TriggerResults of this process.
0070 
0071 # Event filter
0072 # This parameter defines the level, at which events will be filtered for output.
0073 # The available levels (paths) are (ordered!):
0074 # 0a. pTrigger
0075 # 0b. pEventCleaning
0076 # 0c. pGoodVertex
0077 # 1.  pSignalMuon
0078 # 2.  pLooseMuonVeto
0079 # 3.  pElectronVeto
0080 # 4a. p1Jet
0081 # 4b. p2Jets
0082 # 4c. p3Jets
0083 # 5.  p4Jets
0084 # 6.  pBTags
0085 # Each level includes the former ones, but also the corresponding stand-alone selection steps are available, adding a
0086 # 'StandAlone' after the prefix 'p' (e.g. 'pLooseMuonVeto' --> 'pStandAloneLooseMuonVeto').
0087 # All corresponding flags are available in the TriggerResults collection produced by this process later.
0088 selectEvents = 'pGoodVertex'
0089 
0090 # Step 0
0091 #triggerSelectionData = ''
0092 #triggerSelectionMC   = ''
0093 
0094 # Step 1
0095 #muonCut       = ''
0096 #signalMuonCut = ''
0097 #muonVertexMaxDZ = 0.5
0098 
0099 # Step 2
0100 
0101 # Step 3
0102 useElecEAIsoCorr = options.useElecEAIsoCorr
0103 useCalibElec     = options.useCalibElec
0104 #electronGsfCut   = ''
0105 #electronCalibCut = ''
0106 electronCut = electronGsfCut
0107 
0108 # Step 4
0109 
0110 #jetCut = ''
0111 # Step4a
0112 #veryTightJetCut = ''
0113 # Step4b
0114 #tightJetCut     = ''
0115 # Step4c
0116 #looseJetCut     = ''
0117 
0118 # Step 5
0119 #veryLooseJetCut = ''
0120 
0121 # Step 6
0122 bTagSrc = 'selectedJets'
0123 #bTagCut = ''
0124 minBTags = 2
0125 
0126 # TriggerMatching
0127 addTriggerMatch = options.addTriggerMatch
0128 #triggerObjectSelectionData = 'type("TriggerMuon") && ( path("%s") )'%( triggerSelectionData )
0129 #triggerObjectSelectionMC   = 'type("TriggerMuon") && ( path("%s") )'%( triggerSelectionMC )
0130 
0131 
0132 ### Input
0133 
0134 runOnMC      = options.runOnMC
0135 runOnMiniAOD = options.runOnMiniAOD
0136 
0137 # maximum number of events
0138 maxEvents = options.maxEvents
0139 
0140 ### Conditions
0141 
0142 # GlobalTags
0143 globalTagMC   = 'DEFAULT'
0144 globalTagData = 'DEFAULT'
0145 
0146 ### Output
0147 
0148 # output file
0149 outputFile = 'patRefSel_muJets.root'
0150 
0151 # event frequency of Fwk report
0152 fwkReportEvery = max( 1, int( maxEvents / 100 ) )
0153 
0154 # switch for 'TrigReport'/'TimeReport' at job end
0155 wantSummary = True
0156 
0157 
0158 ### ======================================================================== ###
0159 ###                                                                          ###
0160 ###                              End of constants                            ###
0161 ###                            (user job steering)                           ###
0162 ###                                                                          ###
0163 ### ======================================================================== ###
0164 
0165 
0166 triggerSelection       = triggerSelectionData
0167 triggerObjectSelection = triggerObjectSelectionData
0168 if runOnMC:
0169   triggerSelection       = triggerSelectionMC
0170   triggerObjectSelection = triggerObjectSelectionMC
0171 
0172 
0173 ###
0174 ### Basic configuration
0175 ###
0176 
0177 process.load( "TopQuarkAnalysis.Configuration.patRefSel_basics_cff" )
0178 process.MessageLogger.cerr.FwkReport.reportEvery = fwkReportEvery
0179 process.options.wantSummary = wantSummary
0180 from Configuration.AlCa.GlobalTag import GlobalTag
0181 if runOnMC:
0182   if globalTagMC == 'DEFAULT':
0183     process.GlobalTag = GlobalTag( process.GlobalTag, 'auto:run2_mc' )
0184   else:
0185     process.GlobalTag.globaltag = globalTagMC
0186 else:
0187   if globalTagData == 'DEFAULT':
0188     process.GlobalTag = GlobalTag( process.GlobalTag, 'auto:run2_data' )
0189   else:
0190     process.GlobalTag.globaltag = globalTagData
0191 
0192 
0193 ###
0194 ### Input configuration
0195 ###
0196 
0197 if len( inputFiles ) == 0:
0198   if runOnMiniAOD:
0199     if runOnMC:
0200       from PhysicsTools.PatAlgos.patInputFiles_cff import filesRelValTTbarPileUpMINIAODSIM
0201       inputFiles = filesRelValTTbarPileUpMINIAODSIM
0202     else:
0203       from PhysicsTools.PatAlgos.patInputFiles_cff import filesRelValSingleMuMINIAOD
0204       inputFiles = filesRelValSingleMuMINIAOD
0205   else:
0206     if runOnMC:
0207       from PhysicsTools.PatAlgos.patInputFiles_cff import filesRelValProdTTbarAODSIM
0208       inputFiles = filesRelValProdTTbarAODSIM
0209     else:
0210       from PhysicsTools.PatAlgos.patInputFiles_cff import filesSingleMuRECO # not available at CERN
0211       inputFiles = filesSingleMuRECO
0212 process.load( "TopQuarkAnalysis.Configuration.patRefSel_inputModule_cfi" )
0213 process.source.fileNames = inputFiles
0214 process.maxEvents.input  = maxEvents
0215 
0216 
0217 ###
0218 ### PAT configuration
0219 ###
0220 
0221 if not runOnMiniAOD:
0222   process.load( "PhysicsTools.PatAlgos.producersLayer1.patCandidates_cff" )
0223 
0224 
0225 
0226 ###
0227 ### Output configuration
0228 ###
0229 
0230 process.load( "TopQuarkAnalysis.Configuration.patRefSel_outputModule_cff" )
0231 # output file name
0232 process.out.fileName = outputFile
0233 from TopQuarkAnalysis.Configuration.patRefSel_eventContent_cff import refMuJets_eventContent
0234 process.out.outputCommands += refMuJets_eventContent
0235 if runOnMiniAOD:
0236   from TopQuarkAnalysis.Configuration.patRefSel_eventContent_cff import miniAod_eventContent
0237   process.out.outputCommands += miniAod_eventContent
0238 else:
0239   from TopQuarkAnalysis.Configuration.patRefSel_eventContent_cff import aod_eventContent
0240   process.out.outputCommands += aod_eventContent
0241 # clear event selection
0242 process.out.SelectEvents.SelectEvents = cms.vstring( selectEvents )
0243 
0244 
0245 ###
0246 ### Selection configuration
0247 ###
0248 
0249 # Individual steps
0250 
0251 # Step 0
0252 
0253 from TopQuarkAnalysis.Configuration.patRefSel_triggerSelection_cff import triggerResults
0254 process.triggerSelection = triggerResults.clone( triggerConditions = [ triggerSelection ] )
0255 process.sStandAloneTrigger = cms.Sequence( process.triggerSelection
0256                                          )
0257 process.pStandAloneTrigger = cms.Path( process.sStandAloneTrigger )
0258 
0259 process.load( 'TopQuarkAnalysis.Configuration.patRefSel_eventCleaning_cff' )
0260 process.sStandAloneEventCleaning = cms.Sequence()
0261 if runOnMiniAOD:
0262   process.sStandAloneEventCleaning += process.eventCleaningMiniAOD
0263   if runOnMC:
0264     process.sStandAloneEventCleaning += process.eventCleaningMiniAODMC
0265   else:
0266     process.sStandAloneEventCleaning += process.eventCleaningMiniAODData
0267 else:
0268   process.sStandAloneEventCleaning += process.eventCleaning
0269   if runOnMC:
0270     process.sStandAloneEventCleaning += process.eventCleaningMC
0271   else:
0272     process.sStandAloneEventCleaning += process.eventCleaningData
0273 process.pStandAloneEventCleaning = cms.Path( process.sStandAloneEventCleaning )
0274 
0275 from CommonTools.ParticleFlow.goodOfflinePrimaryVertices_cfi import goodOfflinePrimaryVertices
0276 process.goodOfflinePrimaryVertices = goodOfflinePrimaryVertices.clone( filter = True )
0277 if runOnMiniAOD:
0278   process.goodOfflinePrimaryVertices.src = 'offlineSlimmedPrimaryVertices'
0279 process.sStandAloneGoodVertex = cms.Sequence( process.goodOfflinePrimaryVertices
0280                                             )
0281 process.pStandAloneGoodVertex = cms.Path( process.sStandAloneGoodVertex )
0282 
0283 # Step 1
0284 
0285 from TopQuarkAnalysis.Configuration.patRefSel_refMuJets_cfi import selectedMuons, preSignalMuons, signalMuons, standAloneSignalMuonFilter
0286 process.selectedMuons = selectedMuons.clone( cut = muonCut )
0287 if runOnMiniAOD:
0288   process.selectedMuons.src = 'slimmedMuons'
0289 process.preSignalMuons = preSignalMuons.clone( cut = signalMuonCut )
0290 process.signalMuons = signalMuons.clone( maxDZ = muonVertexMaxDZ )
0291 if runOnMiniAOD:
0292   process.signalMuons.vertexSource = 'offlineSlimmedPrimaryVertices'
0293 process.standAloneSignalMuonFilter = standAloneSignalMuonFilter.clone()
0294 process.sStandAloneSignalMuon = cms.Sequence( process.standAloneSignalMuonFilter )
0295 process.pStandAloneSignalMuon = cms.Path( process.sStandAloneSignalMuon )
0296 
0297 # Step 2
0298 
0299 from TopQuarkAnalysis.Configuration.patRefSel_refMuJets_cfi import standAloneLooseMuonVetoFilter
0300 process.standAloneLooseMuonVetoFilter = standAloneLooseMuonVetoFilter.clone()
0301 process.sStandAloneLooseMuonVeto = cms.Sequence( process.standAloneLooseMuonVetoFilter )
0302 process.pStandAloneLooseMuonVeto = cms.Path( process.sStandAloneLooseMuonVeto )
0303 
0304 # Step 3
0305 
0306 if not runOnMiniAOD:
0307   from PhysicsTools.SelectorUtils.tools.vid_id_tools import switchOnVIDElectronIdProducer, setupAllVIDIdsInModule, setupVIDElectronSelection
0308   electron_ids = [ 'RecoEgamma.ElectronIdentification.Identification.cutBasedElectronID_CSA14_50ns_V1_cff'
0309                  , 'RecoEgamma.ElectronIdentification.Identification.cutBasedElectronID_CSA14_PU20bx25_V0_cff'
0310                   ]
0311   switchOnVIDElectronIdProducer( process )
0312   process.electronIDValueMapProducer.ebReducedRecHitCollection = cms.InputTag( 'reducedEcalRecHitsEB' )
0313   process.electronIDValueMapProducer.eeReducedRecHitCollection = cms.InputTag( 'reducedEcalRecHitsEE' )
0314   process.electronIDValueMapProducer.esReducedRecHitCollection = cms.InputTag( 'reducedEcalRecHitsES' )
0315   for idmod in electron_ids:
0316     setupAllVIDIdsInModule( process, idmod, setupVIDElectronSelection )
0317 
0318 if useElecEAIsoCorr:
0319   from EgammaAnalysis.ElectronTools.electronIsolatorFromEffectiveArea_cfi import elPFIsoValueEA03
0320   if runOnMiniAOD:
0321     process.patElPFIsoValueEA03 = elPFIsoValueEA03.clone( gsfElectrons = ''
0322                                                         , pfElectrons  = ''
0323                                                         , patElectrons = cms.InputTag( 'slimmedElectrons' )
0324                                                         , rhoIso       = cms.InputTag( 'fixedGridRhoFastjetAll' )
0325                                                         )
0326     from EgammaAnalysis.ElectronTools.patElectronEAIsoCorrectionProducer_cfi import patElectronEAIso03CorrectionProducer
0327     process.electronsWithEA03Iso = patElectronEAIso03CorrectionProducer.clone( patElectrons  = 'slimmedElectrons'
0328                                                                              , eaIsolator    = 'patElPFIsoValueEA03'
0329                                                                              )
0330   else:
0331     process.elPFIsoValueEA03 = elPFIsoValueEA03.clone( gsfElectrons = 'gedGsfElectrons'
0332                                                      , pfElectrons  = ''
0333                                                      , rhoIso       = cms.InputTag( 'fixedGridRhoFastjetAll' )
0334                                                      )
0335     process.patElectrons.isolationValues.user = cms.VInputTag( cms.InputTag( 'elPFIsoValueEA03' ) )
0336 else:
0337   electronGsfCut.replace( '-1.0*userIsolation("User1Iso")', '-0.5*puChargedHadronIso' )
0338   electronCalibCut.replace( '-1.0*userIsolation("User1Iso")', '-0.5*puChargedHadronIso' )
0339   electronCut.replace( '-1.0*userIsolation("User1Iso")', '-0.5*puChargedHadronIso' )
0340 
0341 if useCalibElec:
0342   from TopQuarkAnalysis.Configuration.patRefSel_refMuJets_cfi import electronsWithRegression, calibratedElectrons
0343   process.electronsWithRegression = electronsWithRegression.clone()
0344   if runOnMiniAOD:
0345     if useElecEAIsoCorr:
0346       process.electronsWithRegression.inputElectronsTag = 'electronsWithEA03Iso'
0347     else:
0348       process.electronsWithRegression.inputElectronsTag = 'slimmedElectrons'
0349     process.electronsWithRegression.vertexCollection  = 'offlineSlimmedPrimaryVertices'
0350   process.calibratedElectrons = calibratedElectrons.clone( isMC = runOnMC )
0351   if runOnMC:
0352     process.calibratedElectrons.inputDataset = 'Summer12_LegacyPaper' # FIXME: Update as soon as available
0353   else:
0354     process.calibratedElectrons.inputDataset = '22Jan2013ReReco' # FIXME: Update as soon as available
0355   process.RandomNumberGeneratorService = cms.Service( "RandomNumberGeneratorService"
0356                                                     , calibratedElectrons = cms.PSet( initialSeed = cms.untracked.uint32( 1 )
0357                                                                                     , engineName  = cms.untracked.string('TRandom3')
0358                                                                                     )
0359                                                     )
0360   electronCut = electronCalibCut
0361 
0362 from TopQuarkAnalysis.Configuration.patRefSel_refMuJets_cfi import selectedElectrons, standAloneElectronVetoFilter
0363 process.selectedElectrons = selectedElectrons.clone( cut = electronCut )
0364 if useCalibElec:
0365   process.selectedElectrons.src = 'calibratedElectrons'
0366 elif useElecEAIsoCorr and runOnMiniAOD:
0367   process.selectedElectrons.src = 'electronsWithEA03Iso'
0368 elif runOnMiniAOD:
0369   process.selectedElectrons.src = 'slimmedElectrons'
0370 
0371 process.standAloneElectronVetoFilter = standAloneElectronVetoFilter.clone()
0372 process.sStandAloneElectronVeto = cms.Sequence( process.standAloneElectronVetoFilter )
0373 process.pStandAloneElectronVeto = cms.Path( process.sStandAloneElectronVeto )
0374 
0375 # Step 4
0376 
0377 from TopQuarkAnalysis.Configuration.patRefSel_refMuJets_cfi import selectedJets
0378 process.selectedJets = selectedJets.clone( cut = jetCut )
0379 if runOnMiniAOD:
0380   process.selectedJets.src = 'slimmedJets'
0381 
0382 from TopQuarkAnalysis.Configuration.patRefSel_refMuJets_cfi import signalVeryTightJets, standAloneSignalVeryTightJetsFilter
0383 process.signalVeryTightJets = signalVeryTightJets.clone( cut = veryTightJetCut )
0384 process.standAloneSignalVeryTightJetsFilter = standAloneSignalVeryTightJetsFilter.clone()
0385 process.sStandAlone1Jet = cms.Sequence( process.standAloneSignalVeryTightJetsFilter )
0386 process.pStandAlone1Jet = cms.Path( process.sStandAlone1Jet )
0387 
0388 from TopQuarkAnalysis.Configuration.patRefSel_refMuJets_cfi import signalTightJets, standAloneSignalTightJetsFilter
0389 process.signalTightJets = signalTightJets.clone( cut = tightJetCut )
0390 process.standAloneSignalTightJetsFilter = standAloneSignalTightJetsFilter.clone()
0391 process.sStandAlone2Jets = cms.Sequence( process.standAloneSignalTightJetsFilter )
0392 process.pStandAlone2Jets = cms.Path( process.sStandAlone2Jets )
0393 
0394 from TopQuarkAnalysis.Configuration.patRefSel_refMuJets_cfi import signalLooseJets, standAloneSignalLooseJetsFilter
0395 process.signalLooseJets = signalLooseJets.clone( cut = looseJetCut )
0396 process.standAloneSignalLooseJetsFilter = standAloneSignalLooseJetsFilter.clone()
0397 process.sStandAlone3Jets = cms.Sequence( process.standAloneSignalLooseJetsFilter )
0398 process.pStandAlone3Jets = cms.Path( process.sStandAlone3Jets )
0399 
0400 # Step 5
0401 
0402 from TopQuarkAnalysis.Configuration.patRefSel_refMuJets_cfi import signalVeryLooseJets, standAloneSignalVeryLooseJetsFilter
0403 process.signalVeryLooseJets = signalVeryLooseJets.clone( cut = veryLooseJetCut )
0404 process.standAloneSignalVeryLooseJetsFilter = standAloneSignalVeryLooseJetsFilter.clone()
0405 process.sStandAlone4Jets = cms.Sequence( process.standAloneSignalVeryLooseJetsFilter )
0406 process.pStandAlone4Jets = cms.Path( process.sStandAlone4Jets )
0407 
0408 # Step 6
0409 
0410 from TopQuarkAnalysis.Configuration.patRefSel_refMuJets_cfi import selectedBTagJets, standAloneSignalBTagsFilter
0411 process.selectedBTagJets = selectedBTagJets.clone( src = bTagSrc
0412                                                  , cut = bTagCut
0413                                                  )
0414 process.standAloneSignalBTagsFilter = standAloneSignalBTagsFilter.clone( minNumber = minBTags )
0415 process.sStandAloneBTags = cms.Sequence( process.standAloneSignalBTagsFilter )
0416 process.pStandAloneBTags = cms.Path( process.sStandAloneBTags )
0417 
0418 # Consecutive steps
0419 
0420 process.sTrigger       = cms.Sequence( process.sStandAloneTrigger
0421                                      )
0422 process.sEventCleaning = cms.Sequence( process.sTrigger
0423                                      + process.sStandAloneEventCleaning
0424                                      )
0425 process.sGoodVertex    = cms.Sequence( process.sEventCleaning
0426                                      + process.sStandAloneGoodVertex
0427                                      )
0428 process.sSignalMuon    = cms.Sequence( process.sGoodVertex
0429                                      + process.sStandAloneSignalMuon
0430                                      )
0431 process.sLooseMuonVeto = cms.Sequence( process.sSignalMuon
0432                                      + process.sStandAloneLooseMuonVeto
0433                                      )
0434 process.sElectronVeto  = cms.Sequence( process.sLooseMuonVeto
0435                                      + process.sStandAloneElectronVeto
0436                                      )
0437 process.s1Jet          = cms.Sequence( process.sElectronVeto
0438                                      + process.sStandAlone1Jet
0439                                      )
0440 process.s2Jets         = cms.Sequence( process.s1Jet
0441                                      + process.sStandAlone2Jets
0442                                      )
0443 process.s3Jets         = cms.Sequence( process.s2Jets
0444                                      + process.sStandAlone2Jets
0445                                      )
0446 process.s4Jets         = cms.Sequence( process.s3Jets
0447                                      + process.sStandAlone4Jets
0448                                      )
0449 process.sBTags         = cms.Sequence( process.s4Jets
0450                                      + process.sStandAloneBTags
0451                                      )
0452 
0453 process.pTrigger       = cms.Path( process.sTrigger )
0454 process.pEventCleaning = cms.Path( process.sEventCleaning )
0455 process.pGoodVertex    = cms.Path( process.sGoodVertex )
0456 process.pSignalMuon    = cms.Path( process.sSignalMuon )
0457 process.pLooseMuonVeto = cms.Path( process.sLooseMuonVeto )
0458 process.pElectronVeto  = cms.Path( process.sElectronVeto )
0459 process.p1Jet          = cms.Path( process.s1Jet )
0460 process.p2Jets         = cms.Path( process.s2Jets )
0461 process.p3Jets         = cms.Path( process.s2Jets )
0462 process.p4Jets         = cms.Path( process.s4Jets )
0463 process.pBTags         = cms.Path( process.sBTags )
0464 
0465 # Trigger matching
0466 
0467 if addTriggerMatch:
0468   from TopQuarkAnalysis.Configuration.patRefSel_triggerMatching_cff import muonTriggerMatch
0469   process.muonTriggerMatch = muonTriggerMatch.clone( matchedCuts = triggerObjectSelection )
0470   if not runOnMiniAOD:
0471     from PhysicsTools.PatAlgos.tools.trigTools import switchOnTriggerMatchEmbedding
0472     switchOnTriggerMatchEmbedding( process, triggerMatchers = [ 'muonTriggerMatch' ] )
0473   else:
0474     from TopQuarkAnalysis.Configuration.patRefSel_triggerMatching_cff import unpackedPatTrigger
0475     process.selectedTriggerUnpacked = unpackedPatTrigger.clone()
0476     process.muonTriggerMatch.matched = 'selectedTriggerUnpacked'
0477     from TopQuarkAnalysis.Configuration.patRefSel_triggerMatching_cff import signalMuonsTriggerMatch
0478     process.signalMuonsTriggerMatch = signalMuonsTriggerMatch.clone()
0479     process.out.outputCommands += [ 'drop *_signalMuons_*_*'
0480                                   , 'keep *_signalMuonsTriggerMatch_*_*'
0481                                   ]
0482