diff --git a/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/python/KinkedTrackFlags.py b/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/python/KinkedTrackFlags.py index 551fc96ffd8a3fd912ec456ca8654cdd6afa6204..51dfcb2c0b745a918288c6fdca74035b0cb22c66 100644 --- a/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/python/KinkedTrackFlags.py +++ b/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/python/KinkedTrackFlags.py @@ -164,6 +164,7 @@ class KinkedTrack_singleJetMetFilterFlags(JobProperty): 'HLT_xe130_mht_L1XE50' ] cutsEtMin = [80.0*Units.GeV, 40.0*Units.GeV] + cutsEtMinForStublet = [90.0*Units.GeV, 40.0*Units.GeV] cutsEtMinForMultiJets = [60.0*Units.GeV, 60.0*Units.GeV] jetMetPtMin = 40.0*Units.GeV cutMetHt = 0.0 @@ -175,8 +176,10 @@ class KinkedTrack_singleJetMetFilterFlags(JobProperty): leptonPtMax = 20.0*Units.GeV leptonEtaMax = 2.5 cutMetMin = 60.0*Units.GeV # no cut + cutMetMinForStublet = 90.0*Units.GeV # no cut cutMetMinForMultiJets = 170.0*Units.GeV jetMetDphiMin = 1.0 + preScaleStublet = 10 pass primRPVLLDESDM.add_JobProperty(KinkedTrack_singleJetMetFilterFlags) diff --git a/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/share/PhysDESDM_KinkedTrack.py b/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/share/PhysDESDM_KinkedTrack.py index 1c8e914f84554db2add23922ce1086df6e1c270a..d3053c4a4900a412dad2defed3d51621b88870a7 100644 --- a/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/share/PhysDESDM_KinkedTrack.py +++ b/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/share/PhysDESDM_KinkedTrack.py @@ -81,6 +81,7 @@ topSequence += DerivationFramework__DerivationKernel("RPVLL_KinkedTrackJetFilter SkimmingTools = [KinkTrkJetFilterTool]) RPVLLfilterNames.extend(["RPVLL_KinkedTrackJetFilterKernel"]) +# Multi-jets filter KinkTrkMultiJetFilterTool = DerivationFramework__KinkTrkSingleJetMetFilterTool(name = "KinkTrkMultiJetFilterTool", LeptonVeto = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.doLeptonVeto, IsolatedTrack = False, @@ -114,6 +115,42 @@ topSequence += DerivationFramework__DerivationKernel("RPVLL_KinkedTrackMultiJetF SkimmingTools = [KinkTrkTrigMetMultiJetFilterTool]) RPVLLfilterNames.extend(["RPVLL_KinkedTrackMultiJetFilterKernel"]) +# Stublet filter +KinkTrkStubletFilterTool = DerivationFramework__KinkTrkSingleJetMetFilterTool(name = "KinkTrkStubletFilterTool", + LeptonVeto = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.doLeptonVeto, + IsolatedTrack = False, + JetContainerKey = jetContainer, + ElectronContainerKey = electronContainer, + ElectronIDKey = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.electronIDKey, + MuonContainerKey = muonContainer, + MuonIDKey = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.muonIDKey, + MetContainerKey = METContainer, + MetTerm = METTerm, + MetCut = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.cutMetMinForStublet, + JetPtCuts = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.cutsEtMinForStublet, + JetEtaMax = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.cutEtaMax, + JetNumCut = 1, + JetMetDphiMin = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.jetMetDphiMin, + JetMetPtMin = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.jetMetPtMin, + MetHtCut = -1, + LeptonPtCut = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.leptonPtMax, + LeptonEtaMax = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.leptonEtaMax) + +print KinkTrkStubletFilterTool +ToolSvc += KinkTrkStubletFilterTool + +KinkTrkStubletPrescaleTool = DerivationFramework__PrescaleTool(name = "KinkTrkStubletPrescaleTool", + Prescale = primRPVLLDESDM.KinkedTrack_singleJetMetFilterFlags.preScaleStublet) +ToolSvc += KinkTrkStubletPrescaleTool + +KinkTrkStubletFinalFilterTool = DerivationFramework__FilterCombinationAND(name = "KinkTrkStubletFinalFilterTool", + FilterList=[KinkTrkJetTriggerFilterTool, KinkTrkStubletFilterTool, KinkTrkStubletPrescaleTool], + OutputLevel=INFO) +ToolSvc+= KinkTrkStubletFinalFilterTool + +topSequence += DerivationFramework__DerivationKernel("RPVLL_KinkedTrackStubletFilterKernel", + SkimmingTools = [KinkTrkStubletFinalFilterTool]) +RPVLLfilterNames.extend(["RPVLL_KinkedTrackStubletFilterKernel"]) #==================================================================== # Zee/Zmumu filter diff --git a/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/src/KinkTrkSingleJetMetFilterTool.cxx b/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/src/KinkTrkSingleJetMetFilterTool.cxx index 6698ca9bdc345a4122270f48cbd01d85f2d6ffd5..83f0023100c9e4decdd762b0a3cbc8b773f2d780 100644 --- a/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/src/KinkTrkSingleJetMetFilterTool.cxx +++ b/PhysicsAnalysis/SUSYPhys/LongLivedParticleDPDMaker/src/KinkTrkSingleJetMetFilterTool.cxx @@ -232,17 +232,25 @@ bool DerivationFramework::KinkTrkSingleJetMetFilterTool::eventPassesFilter() con if(passIsolatedTracklet==false) continue; - if(TMath::Abs(Tracklet->eta()) < 0.1 || TMath::Abs(Tracklet->eta()) > 1.9) + if(TMath::Abs(Tracklet->eta()) < 0.1 || TMath::Abs(Tracklet->eta()) > 1.9){ + passIsolatedTracklet = false; continue; + } - if(TMath::Prob(Tracklet->chiSquared(), Tracklet->numberDoF()) < 0.1) + if(TMath::Prob(Tracklet->chiSquared(), Tracklet->numberDoF()) < 0.1){ + passIsolatedTracklet = false; continue; - - if(Tracklet->auxdata<UChar_t>("numberOfContribPixelLayers")<4) + } + + if(Tracklet->auxdata<UChar_t>("numberOfContribPixelLayers")<4){ + passIsolatedTracklet = false; continue; + } - if(Tracklet->auxdata<UChar_t>("numberOfPixelSpoiltHits")>0) - continue; + if(Tracklet->auxdata<UChar_t>("numberOfPixelSpoiltHits")>0){ + passIsolatedTracklet = false; + continue; + } if(passIsolatedTracklet) break;