12 def addDefaultSUSYPAT(process,mcInfo=True,HLTMenu='HLT',jetMetCorrections=['L2Relative', 'L3Absolute'],mcVersion='',theJetNames = ['AK5PF'],doValidation=False,extMatch=False,doSusyTopProjection=False,doType1MetCorrection=True,doType0MetCorrection=False):
13 loadPF2PAT(process,mcInfo,jetMetCorrections,extMatch,doSusyTopProjection,doType1MetCorrection,doType0MetCorrection,
'PF')
17 loadPAT(process,jetMetCorrections,extMatch)
18 addJetMET(process,theJetNames,jetMetCorrections,mcVersion)
23 process.eventCountProducer = cms.EDProducer(
"EventCountProducer")
27 process.susyPatDefaultSequence = cms.Sequence( process.eventCountProducer
30 * process.patPF2PATSequence
31 * process.patPF2PATSequencePF
34 if mcInfo
and extMatch:
36 process.susyPatDefaultSequence.replace(process.patDefaultSequence, process.extensiveMatching+process.patDefaultSequence)
40 process.susyPatDefaultSequence.replace(process.patPF2PATSequencePF, process.patPF2PATSequencePF * process.ak5CaloJetsL2L3 * process.metJESCorAK5CaloJet * process.RecoSusyValidation * process.PatSusyValidation*process.MEtoEDMConverter)
43 process.load(
"SimGeneral.TrackingAnalysis.trackingParticlesNoSimHits_cfi")
44 process.load(
"SimMuon.MCTruth.MuonAssociatorByHits_cfi")
45 process.mergedTruth = cms.EDProducer(
"GenPlusSimParticleProducer",
46 src = cms.InputTag(
"g4SimHits"),
47 setStatus = cms.int32(5),
48 filter = cms.vstring(
"pt > 0.0"),
49 genParticles = cms.InputTag(
"genParticles")
51 process.load(
"MuonAnalysis.MuonAssociators.muonClassificationByHits_cfi")
53 from MuonAnalysis.MuonAssociators.muonClassificationByHits_cfi
import addUserData
as addClassByHits
54 addClassByHits(process.patMuons,labels=[
'classByHitsGlb'],extraInfo=
True)
55 addClassByHits(process.patMuonsPF,labels=[
'classByHitsGlb'],extraInfo=
True)
57 process.extensiveMatching = cms.Sequence(process.mergedTruth+process.muonClassificationByHits)
59 def loadPAT(process,jetMetCorrections,extMatch):
61 from PhysicsTools.PatAlgos.tools.pfTools
import usePFIso
63 process.patElectrons.isolationValues = cms.PSet(
64 pfNeutralHadrons = cms.InputTag(
"elPFIsoValueNeutral03PFIdPFIso"),
65 pfChargedAll = cms.InputTag(
"elPFIsoValueChargedAll03PFIdPFIso"),
66 pfPUChargedHadrons = cms.InputTag(
"elPFIsoValuePU03PFIdPFIso"),
67 pfPhotons = cms.InputTag(
"elPFIsoValueGamma03PFIdPFIso"),
68 pfChargedHadrons = cms.InputTag(
"elPFIsoValueCharged03PFIdPFIso")
70 process.patElectrons.isolationValuesNoPFId = cms.PSet(
71 pfNeutralHadrons = cms.InputTag(
"elPFIsoValueNeutral03NoPFIdPFIso"),
72 pfChargedAll = cms.InputTag(
"elPFIsoValueChargedAll03NoPFIdPFIso"),
73 pfPUChargedHadrons = cms.InputTag(
"elPFIsoValuePU03NoPFIdPFIso"),
74 pfPhotons = cms.InputTag(
"elPFIsoValueGamma03NoPFIdPFIso"),
75 pfChargedHadrons = cms.InputTag(
"elPFIsoValueCharged03NoPFIdPFIso")
77 process.patDefaultSequence.replace(process.patElectrons,process.eleIsoSequence+process.patElectrons)
78 process.patDefaultSequence.replace(process.patMuons,process.muIsoSequence+process.patMuons)
81 process.cleanPatPhotons.checkOverlaps.electrons.requireNoOverlaps =
False
84 process.patElectrons.embedTrack =
True
85 process.patMuons.embedTrack =
True
93 process.load(
"ElectroWeakAnalysis.WENu.simpleEleIdSequence_cff")
94 process.patElectrons.electronIDSources = cms.PSet(
95 eidTight = cms.InputTag(
"eidTight"),
96 eidLoose = cms.InputTag(
"eidLoose"),
97 eidRobustTight = cms.InputTag(
"eidRobustTight"),
98 eidRobustHighEnergy = cms.InputTag(
"eidRobustHighEnergy"),
99 eidRobustLoose = cms.InputTag(
"eidRobustLoose"),
100 simpleEleId95relIso= cms.InputTag(
"simpleEleId95relIso"),
101 simpleEleId90relIso= cms.InputTag(
"simpleEleId90relIso"),
102 simpleEleId85relIso= cms.InputTag(
"simpleEleId85relIso"),
103 simpleEleId80relIso= cms.InputTag(
"simpleEleId80relIso"),
104 simpleEleId70relIso= cms.InputTag(
"simpleEleId70relIso"),
105 simpleEleId60relIso= cms.InputTag(
"simpleEleId60relIso"),
106 simpleEleId95cIso= cms.InputTag(
"simpleEleId95cIso"),
107 simpleEleId90cIso= cms.InputTag(
"simpleEleId90cIso"),
108 simpleEleId85cIso= cms.InputTag(
"simpleEleId85cIso"),
109 simpleEleId80cIso= cms.InputTag(
"simpleEleId80cIso"),
110 simpleEleId70cIso= cms.InputTag(
"simpleEleId70cIso"),
111 simpleEleId60cIso= cms.InputTag(
"simpleEleId60cIso"))
112 process.patDefaultSequence.replace(process.patElectrons,process.simpleEleIdSequence+process.patElectrons)
116 process.electronMatch.checkCharge =
False
117 process.electronMatch.maxDeltaR = cms.double(0.2)
118 process.electronMatch.maxDPtRel = cms.double(999999.)
119 process.muonMatch.checkCharge =
False
120 process.muonMatch.maxDeltaR = cms.double(0.2)
121 process.muonMatch.maxDPtRel = cms.double(999999.)
124 process.patJetPartonMatch.maxDeltaR = cms.double(0.25)
125 process.patJetPartonMatch.maxDPtRel = cms.double(999999.)
126 process.patJetGenJetMatch.maxDeltaR = cms.double(0.25)
127 process.patJetGenJetMatch.maxDPtRel = cms.double(999999.)
129 process.electronMatch.mcStatus = cms.vint32(1,5)
130 process.electronMatch.matched =
"mergedTruth"
131 process.muonMatch.mcStatus = cms.vint32(1,5)
132 process.muonMatch.matched =
"mergedTruth"
133 process.patJetPartonMatch.matched =
"mergedTruth"
134 process.patJetPartons.src =
"mergedTruth"
135 process.photonMatch.matched =
"mergedTruth"
161 if (
"L1FastJet" in jetMetCorrections):
162 process.pfJets.doAreaFastjet =
True
163 process.pfJetsPF.doAreaFastjet =
True
165 def loadPF2PAT(process,mcInfo,jetMetCorrections,extMatch,doSusyTopProjection,doType1MetCorrection,doType0MetCorrection,postfix):
167 process.load(
"PhysicsTools.PatAlgos.patSequences_cff")
169 process.patJetCorrFactors.levels = jetMetCorrections
171 from PhysicsTools.PatAlgos.tools.pfTools
import usePF2PAT
174 runOnMC = (mcInfo==1),
176 jetCorrections = (
'AK5PFchs', jetMetCorrections),
177 typeIMetCorrections = doType1MetCorrection)
179 if doType0MetCorrection:
180 getattr(process,
'patType1CorrectedPFMet'+postfix).srcType1Corrections = cms.VInputTag(
181 cms.InputTag(
"patPFJetMETtype1p2Corr"+postfix,
"type1"),
182 cms.InputTag(
"patPFMETtype0Corr"+postfix)
189 process.patElectronsPF.embedTrack =
True
190 process.patMuonsPF.embedTrack =
True
191 process.electronMatchPF.maxDeltaR = cms.double(0.2)
192 process.electronMatchPF.maxDPtRel = cms.double(999999.)
193 process.electronMatchPF.checkCharge =
False
194 process.muonMatchPF.maxDeltaR = cms.double(0.2)
195 process.muonMatchPF.maxDPtRel = cms.double(999999.)
196 process.muonMatchPF.checkCharge =
False
198 process.electronMatchPF.mcStatus = cms.vint32(1,5)
199 process.electronMatchPF.matched =
"mergedTruth"
200 process.muonMatchPF.mcStatus = cms.vint32(1,5)
201 process.muonMatchPF.matched =
"mergedTruth"
202 process.genParticlesForJets.src =
"mergedTruth"
203 process.genParticlesForJetsNoMuNoNu.src =
"mergedTruth"
204 process.genParticlesForJetsNoNu.src =
"mergedTruth"
205 process.patJetPartonMatchPF.matched =
"mergedTruth"
206 process.patJetPartonsPF.src =
"mergedTruth"
207 process.photonMatchPF.matched =
"mergedTruth"
249 process.goodVertices = cms.EDFilter(
"VertexSelector",
250 src = cms.InputTag(
"offlinePrimaryVertices"),
251 cut = cms.string(
"!isFake && ndof > 4 && abs(z) <= 24 && position.Rho <= 2"),
252 filter = cms.bool(
False),
255 process.pfPileUpPF.Vertices =
"goodVertices"
256 process.pfPileUpPF.Enable =
True
258 process.pfNoPileUpSequencePF.replace(process.pfPileUpPF,
259 process.goodVertices + process.pfPileUpPF)
261 if not doSusyTopProjection:
266 process.pfElectronsFromVertexPF.dzCut = 9999.0
267 process.pfElectronsFromVertexPF.d0Cut = 9999.0
268 process.pfSelectedElectronsPF.cut =
""
269 process.pfRelaxedElectronsPF = process.pfIsolatedElectronsPF.clone(isolationCut = 3.)
270 process.pfIsolatedElectronsPF.isolationCut = 0.15
272 process.pfElectronsFromGoodVertex = cms.EDFilter(
273 "IPCutPFCandidateSelector",
274 src = cms.InputTag(
"pfIsolatedElectronsPF"),
275 vertices = cms.InputTag(
"goodVertices"),
276 d0Cut = cms.double(0.04),
277 dzCut = cms.double(1.),
278 d0SigCut = cms.double(99.),
279 dzSigCut = cms.double(99.),
282 electronSelection =
"abs( eta ) < 2.5 & pt > 5"
283 electronSelection +=
" & mva_e_pi > 0.4"
286 electronSelection +=
" & gsfTrackRef().isNonnull() & gsfTrackRef().trackerExpectedHitsInner().numberOfHits() <= 0"
287 process.pfUnclusteredElectronsPF = cms.EDFilter(
"GenericPFCandidateSelector",
288 src = cms.InputTag(
"pfElectronsFromGoodVertex"),
289 cut = cms.string(electronSelection)
291 process.pfElectronSequencePF.replace(process.pfIsolatedElectronsPF,
292 process.pfIsolatedElectronsPF +
293 process.goodVertices * process.pfElectronsFromGoodVertex +
294 process.pfUnclusteredElectronsPF + process.pfRelaxedElectronsPF)
295 process.patElectronsPF.pfElectronSource =
"pfRelaxedElectronsPF"
296 process.pfNoElectronPF.topCollection =
"pfUnclusteredElectronsPF"
299 process.pfMuonsFromVertexPF.dzCut = 9999.0
300 process.pfMuonsFromVertexPF.d0Cut = 9999.0
301 process.pfSelectedMuonsPF.cut =
""
302 process.pfRelaxedMuonsPF = process.pfIsolatedMuonsPF.clone(isolationCut = 3)
303 process.pfIsolatedMuonsPF.isolationCut = 0.15
305 process.pfMuonsFromGoodVertex = cms.EDFilter(
306 "IPCutPFCandidateSelector",
307 src = cms.InputTag(
"pfIsolatedMuonsPF"),
308 vertices = cms.InputTag(
"goodVertices"),
309 d0Cut = cms.double(0.02),
310 dzCut = cms.double(1.),
311 d0SigCut = cms.double(99.),
312 dzSigCut = cms.double(99.),
314 muonSelection =
"abs( eta ) < 2.5 & pt > 5"
316 muonSelection +=
" & muonRef().isNonnull & muonRef().isGlobalMuon()"
317 muonSelection +=
" & muonRef().isTrackerMuon() & muonRef().numberOfMatches > 1"
318 muonSelection +=
" & muonRef().globalTrack().normalizedChi2() < 10"
319 muonSelection +=
" & muonRef().track().numberOfValidHits() > 10"
320 muonSelection +=
" & muonRef().globalTrack().hitPattern().numberOfValidMuonHits() > 0"
321 muonSelection +=
" & muonRef().innerTrack().hitPattern().numberOfValidPixelHits() > 0"
322 process.pfUnclusteredMuonsPF = cms.EDFilter(
"GenericPFCandidateSelector",
323 src = cms.InputTag(
"pfMuonsFromGoodVertex"),
324 cut = cms.string(muonSelection)
326 process.pfMuonSequencePF.replace(process.pfIsolatedMuonsPF,
327 process.pfIsolatedMuonsPF +
328 process.goodVertices * process.pfMuonsFromGoodVertex +
329 process.pfUnclusteredMuonsPF + process.pfRelaxedMuonsPF)
330 process.patMuonsPF.pfMuonSource =
"pfRelaxedMuonsPF"
331 process.pfNoMuonPF.topCollection =
"pfUnclusteredMuonsPF"
342 def loadPATTriggers(process,HLTMenu,theJetNames,electronMatches,muonMatches,tauMatches,jetMatches,photonMatches):
344 def pfSwitchOnTriggerMatchEmbedding(process, matches, src, embedder, sequence='patDefaultSequencePF'):
345 setattr(process,src.replace(
'PF',
'TriggerMatchPF'),getattr(process,embedder).
clone(src=src, matches=matches))
346 theSequence = getattr(process,sequence)
347 theSequence += getattr(process,src.replace(
'PF',
'TriggerMatchPF'))
348 from PhysicsTools.PatAlgos.tools.trigTools
import switchOnTrigger, switchOnTriggerMatchEmbedding
349 switchOnTrigger(process, triggerProducer=
'patTrigger', triggerEventProducer=
'patTriggerEvent', sequence=
'patDefaultSequence', hltProcess=HLTMenu)
350 process.patTriggerPF = process.patTrigger.clone()
351 process.patTriggerEventPF = process.patTriggerEvent.clone()
352 process.patDefaultSequencePF += process.patTriggerPF
353 process.patDefaultSequencePF += process.patTriggerEventPF
354 switchOnTrigger(process, triggerProducer=
'patTriggerPF', triggerEventProducer=
'patTriggerEventPF', sequence=
'patDefaultSequencePF', hltProcess=HLTMenu)
357 process.patElectronMatch = cleanElectronTriggerMatchHLTEle20SWL1R.clone(matchedCuts = cms.string( electronMatches ))
358 process.patElectronMatchPF = cleanElectronTriggerMatchHLTEle20SWL1R.clone(matchedCuts = cms.string( electronMatches ), src=
'selectedPatElectronsPF')
359 process.patDefaultSequencePF += process.patElectronMatchPF
361 pfSwitchOnTriggerMatchEmbedding( process, [
'patElectronMatchPF'],
'selectedPatElectronsPF',
'cleanPatElectronsTriggerMatch' )
364 process.patMuonMatch = cleanMuonTriggerMatchHLTMu9.clone(matchedCuts = cms.string( muonMatches ))
365 process.patMuonMatchPF = cleanMuonTriggerMatchHLTMu9.clone(matchedCuts = cms.string( muonMatches ),src =
'selectedPatMuonsPF',matched=
'patTriggerPF')
366 process.patDefaultSequencePF += process.patMuonMatchPF
368 pfSwitchOnTriggerMatchEmbedding( process, [
'patMuonMatchPF'],
'selectedPatMuonsPF',
'cleanPatMuonsTriggerMatch' )
371 process.patPhotonMatch = cleanPhotonTriggerMatchHLTPhoton20CleanedL1R.clone(matchedCuts = cms.string( photonMatches ))
375 process.patJetMatchAK5Calo = cleanJetTriggerMatchHLTJet15U.clone(matchedCuts = cms.string( jetMatches ),src=
'cleanPatJetsAK5Calo')
377 for jetType
in theJetNames:
378 setattr(process,
'patJetMatch'+jetType,cleanJetTriggerMatchHLTJet15U.clone(matchedCuts = cms.string( jetMatches ),src =
'cleanPatJets'+jetType))
379 process.patJetMatchPF = cleanJetTriggerMatchHLTJet15U.clone(src=
'selectedPatJetsPF', matchedCuts = cms.string( jetMatches ))
380 process.patDefaultSequencePF += process.patJetMatchPF
381 for jetType
in theJetNames:
383 pfSwitchOnTriggerMatchEmbedding( process, [
'patJetMatchPF'],
'selectedPatJetsPF',
'cleanPatJetsAK5CaloTriggerMatch' )
386 process.patTauMatch = cleanTauTriggerMatchHLTDoubleLooseIsoTau15.clone(matchedCuts = cms.string( tauMatches ))
387 process.patTauMatchPF = cleanTauTriggerMatchHLTDoubleLooseIsoTau15.clone(src=
'selectedPatTausPF', matchedCuts = cms.string( tauMatches ))
388 process.patDefaultSequencePF += process.patTauMatchPF
390 pfSwitchOnTriggerMatchEmbedding( process, [
'patTauMatchPF'],
'selectedPatTausPF',
'cleanPatTausTriggerMatch' )
393 process.load(
"JetMETCorrections.Type1MET.pfMETCorrections_cff")
399 process.Type1METSequence = cms.Sequence(process.producePFMETCorrections)
405 process.metJESCorAK5CaloJetTypeII = metJESCorAK5CaloJet.clone()
406 process.metJESCorAK5CaloJetTypeII.useTypeII =
True
407 process.metJESCorAK5CaloJetTypeII.hasMuonsCorr =
False
409 process.metJESCorAK5CaloJetMuonsTypeII = process.metJESCorAK5CaloJetMuons.clone(
410 uncorMETInputTag = cms.InputTag(
'metJESCorAK5CaloJetTypeII')
413 process.patMETCorrections.replace(
414 process.metJESCorAK5CaloJet,
415 (process.metJESCorAK5CaloJetTypeII*
416 process.metJESCorAK5CaloJetMuonsTypeII)+
417 process.metJESCorAK5CaloJet
420 process.patMETsAK5CaloTypeII = process.patMETs.clone(
421 metSource = cms.InputTag(
"metJESCorAK5CaloJetMuonsTypeII")
424 process.patDefaultSequence.replace(
425 process.patMETsAK5Calo,
426 process.patMETsAK5Calo+
427 process.patMETsAK5CaloTypeII
432 switchJetCollection( process,
433 jetCollection=cms.InputTag(
'ak5CaloJets'),
434 jetCorrLabel=(
'AK5Calo', jetMetCorrections))
436 def addSUSYJetCollection(process,jetMetCorrections,jets = 'IC5Calo',mcVersion='',doJTA=True,doType1MET=True,doJetID=True,jetIdLabel=None):
438 algorithm = jets[0:3]
439 type = jets[3:len(jets)]
440 jetCorrLabel = (jets,cms.vstring(jetMetCorrections))
441 if 'IC' in algorithm: collection = algorithm.replace(
'IC',
'iterativeCone')
442 elif 'SC' in algorithm: collection = algorithm.replace(
'SC',
'sisCone')
443 elif 'AK' in algorithm: collection = algorithm.replace(
'AK',
'ak')
444 elif 'KT' in algorithm: collection = algorithm.replace(
'KT',
'kt')
445 else:
raise ValueError,
"Unknown jet algorithm: %s" % (jets)
446 jetIdLabel = algorithm.lower()
448 jetCollection =
'%(collection)sCaloJets' % locals()
449 if not 'AK7' in algorithm:
452 jetCollection =
'%(collection)sPFJets' % locals()
455 if 'IC' in algorithm: collectionJPT = algorithm.replace(
'IC',
'Icone')
456 elif 'SC' in algorithm: collectionJPT = algorithm.replace(
'SC',
'Siscone')
457 elif 'AK' in algorithm: collectionJPT = algorithm.replace(
'AK',
'AntiKt')
458 else:
raise ValueError,
"Unknown jet algorithm: %s" % (jets)
459 jetCollection =
'JetPlusTrackZSPCorJet%(collectionJPT)s' % locals()
460 elif type ==
'Track':
461 jetCollection =
'%(collection)sTrackJets' % locals()
464 else:
raise ValueError,
"Unknown jet type: %s" % (jets)
466 addJetCollection(process, cms.InputTag(jetCollection),
470 jetCorrLabel = jetCorrLabel,
471 doType1MET = doType1MET,
475 jetIdLabel = jetIdLabel,
476 genJetCollection = cms.InputTag(
'%(collection)sGenJets' % locals())
479 def addJetMET(process,theJetNames,jetMetCorrections,mcVersion):
482 for jetName
in theJetNames:
486 theJetNames.append(
'')
487 for jetName
in theJetNames:
488 module = getattr(process,
'patJets'+jetName)
489 module.addTagInfos =
False
490 module.embedGenJetMatch =
False
495 from PhysicsTools.PatAlgos.tools.metTools
import addTcMET
496 addTcMET(process,
'TC')
500 process.cleanPatJetsAK5Calo = process.cleanPatJets
501 process.patMETsAK5Calo = process.patMETs
507 process.patHemispheres.patJets = process.cleanPatJetsAK5Calo.label()
508 process.countPatJets.src = process.cleanPatJetsAK5Calo.label()
511 process.patCandidateSummary.candidates.remove(cms.InputTag(
'patMETs'))
512 process.patCandidateSummary.candidates.append(cms.InputTag(
'patMETsAK5Calo'))
513 process.patCandidateSummary.candidates.append(cms.InputTag(
'patMHTsAK5Calo'))
514 process.cleanPatCandidateSummary.candidates.remove(cms.InputTag(
'cleanPatJets'))
515 process.cleanPatCandidateSummary.candidates.append(cms.InputTag(
'cleanPatJetsAK5Calo'))
517 for jets
in theJetNames:
518 process.patCandidateSummary.candidates.append(cms.InputTag(
'patJets'+jets))
519 process.selectedPatCandidateSummary.candidates.append(cms.InputTag(
'selectedPatJets'+jets))
520 process.cleanPatCandidateSummary.candidates.append(cms.InputTag(
'cleanPatJets'+jets))
525 removeMCMatching(process, [
'All'])
528 process.load(
"JetMETCorrections.Configuration.JetCorrectionProducers_cff")
529 process.load(
"DQM.Physics.susyValidation_cfi")
530 process.load(
"DQMServices.Components.MEtoEDMConverter_cfi")
531 process.load(
"DQMServices.Core.DQM_cfg")
532 process.load(
"DQMServices.Components.DQMEnvironment_cfi")
533 process.DQMStore = cms.Service(
"DQMStore")
534 process.DQMStore.collateHistograms = cms.untracked.bool(
True)
535 process.options = cms.untracked.PSet(
536 fileMode = cms.untracked.string(
'NOMERGE')
540 from PhysicsTools.PatAlgos.patEventContent_cff
import patEventContent, patExtraAodEventContent, patTriggerEventContent, patTriggerStandAloneEventContent, patEventContentTriggerMatch
542 susyAddEventContent = [
545 'keep *_selectedPatMuonsPF_*_*',
546 'keep *_selectedPatElectronsPF_*_*',
547 'keep *_selectedPatTausPF_*_*',
548 'keep *_selectedPatJetsPF_*_*',
550 'keep L1GlobalTriggerObjectMapRecord_*_*_*',
551 'keep L1GlobalTriggerReadoutRecord_*_*_*',
553 'keep recoGenJets_*GenJets*_*_*',
554 'keep recoGenMETs_*_*_*',
556 'keep edmMergeableCounter_eventCountProducer_*_*',
557 'keep recoRecoChargedRefCandidates_trackRefsForJets_*_*',
559 'keep *_electronMergedSeeds_*_*',
560 'keep *_Conversions_*_*',
561 'keep recoPFCandidates_particleFlow_*_*',
566 'keep recoConversions_conversions_*_*',
567 'keep recoTracks_*onversions_*_*',
568 'keep HcalNoiseSummary_*_*_*',
569 'keep *BeamHaloSummary_*_*_*',
571 'keep *_offlinePrimaryVerticesGap_*_*',
572 'keep *_offlinePrimaryVerticesGapWithBS_*_*',
574 'keep *_MEtoEDMConverter_*_PAT',
575 'drop recoTracks_generalTracks*_*_*',
576 'drop *_towerMaker_*_*',
577 'keep *_pfType1CorrectedMet*_*_*',
579 keepList.extend(patEventContent)
580 keepList.extend(patExtraAodEventContent)
581 keepList.extend(patTriggerEventContent)
582 keepList.extend(patEventContentTriggerMatch)
583 keepList.extend(susyAddEventContent)
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)
def getSUSY_pattuple_outputCommands