diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkSUSY/share/SUSY3.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkSUSY/share/SUSY3.py index bd6a594c39bf8a6c6863c098c04ae411aa29c4be..827f573fac6552685b3626fc1cc771985185efd7 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkSUSY/share/SUSY3.py +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkSUSY/share/SUSY3.py @@ -16,6 +16,7 @@ from DerivationFrameworkInDet.InDetCommon import * from DerivationFrameworkJetEtMiss.METCommon import * from DerivationFrameworkFlavourTag.FlavourTagCommon import * + ### Set up stream streamName = derivationFlags.WriteDAOD_SUSY3Stream.StreamName fileName = buildFileName( derivationFlags.WriteDAOD_SUSY3Stream ) @@ -88,6 +89,32 @@ SUSY3TauTPThinningTool = DerivationFramework__TauTrackParticleThinning( name ToolSvc += SUSY3TauTPThinningTool thinningTools.append(SUSY3TauTPThinningTool) +# ------------------------------------------------------------------------------------------------------------------------------------------ +# For tau trigger performance studies + +# no TrackParticleThinning can be applied to HLT taus, we need all tau tracks for RNN ID, not only core tracks + +# TauTracks thinning +from DerivationFrameworkSUSY.DerivationFrameworkSUSYConf import DerivationFramework__TauTracksThinning +SUSY3HLTTauTracksThinningTool = DerivationFramework__TauTracksThinning(name = "SUSY3HLTTauTracksThinningTool", + ThinningService = SUSY3ThinningHelper.ThinningSvc(), + TauKey = "HLT_xAOD__TauJetContainer_TrigTauRecMerged", + TauTracksKey = "HLT_xAOD__TauTrackContainer_TrigTauRecMergedTracks", + IDTracksKey = "HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Tau_IDTrig") +ToolSvc += SUSY3HLTTauTracksThinningTool +thinningTools.append(SUSY3HLTTauTracksThinningTool) + +# Jet Calo Cluster thinning, need all clusters from HLT tau seed jet for RNN ID +from DerivationFrameworkCalo.DerivationFrameworkCaloConf import DerivationFramework__JetCaloClusterThinning +SUSY3HLTTauCCThinningTool = DerivationFramework__JetCaloClusterThinning( name = "SUSY3HLTTauCCThinningTool", + ThinningService = SUSY3ThinningHelper.ThinningSvc(), + SGKey = "HLT_xAOD__JetContainer_TrigTauJet", + TopoClCollectionSGKey = "HLT_xAOD__CaloClusterContainer_TrigCaloClusterMaker") +ToolSvc += SUSY3HLTTauCCThinningTool +thinningTools.append(SUSY3HLTTauCCThinningTool) + +# ------------------------------------------------------------------------------------------------------------------------------------------ + #==================================================================== # TRUTH THINNING #==================================================================== @@ -251,10 +278,14 @@ SeqSUSY3 += CfgMgr.DerivationFramework__DerivationKernel( #==================================================================== from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper SUSY3SlimmingHelper = SlimmingHelper("SUSY3SlimmingHelper") + + SUSY3SlimmingHelper.SmartCollections = ["Electrons","Photons","Muons","MET_Reference_AntiKt4EMTopo", "MET_Reference_AntiKt4EMPFlow", "TauJets","AntiKt4EMTopoJets", "AntiKt4EMPFlowJets", "BTagging_AntiKt4EMTopo","BTagging_AntiKt4EMPFlow", "InDetTrackParticles", "PrimaryVertices", "AntiKt4TruthJets"] + SUSY3SlimmingHelper.AllVariables = ["TruthParticles", "TruthEvents", "TruthVertices", "MET_Truth", "MET_Track"] + SUSY3SlimmingHelper.ExtraVariables = ["BTagging_AntiKt4EMTopo.MV1_discriminant.MV1c_discriminant", "Electrons.author.charge.ptcone20.truthOrigin.truthType.bkgMotherPdgId.bkgTruthOrigin.bkgTruthType.firstEgMotherTruthType.firstEgMotherTruthOrigin.firstEgMotherPdgId", "Muons.ptcone30.ptcone20.charge.quality.InnerDetectorPt.MuonSpectrometerPt.CaloLRLikelihood.CaloMuonIDTag", @@ -267,11 +298,16 @@ SUSY3SlimmingHelper.ExtraVariables = ["BTagging_AntiKt4EMTopo.MV1_discriminant.M "TauJets.IsTruthMatched.truthParticleLink.truthOrigin.truthType.truthJetLink.DFCommonTausLoose", "MuonTruthParticles.barcode.decayVtxLink.e.m.pdgId.prodVtxLink.px.py.pz.recoMuonLink.status.truthOrigin.truthType", "HLT_xAOD__JetContainer_SplitJet.pt.eta.phi.m", - "HLT_xAOD__BTaggingContainer_HLTBjetFex.MV2c20_discriminant.MV2c10_discriminant" + "HLT_xAOD__BTaggingContainer_HLTBjetFex.MV2c20_discriminant.MV2c10_discriminant", + # for tau trigger performance studies + "HLT_xAOD__JetContainer_TrigTauJet.pt.eta.phi.m.constituentLinks", + "HLT_xAOD__TauJetContainer_TrigTauRecMerged.pt.eta.phi.m.tauTrackLinks.jetLink.vertexLink.charge.isTauFlags.BDTJetScore.ptFinalCalib.etaFinalCalib.phiFinalCalib.mFinalCalib.BDTJetScoreSigTrans.RNNJetScore.RNNJetScoreSigTrans.isolFrac.ptDetectorAxis.etaDetectorAxis.phiDetectorAxis.mDetectorAxis.ptJetSeed.leadTrkPt.massTrkSys.trFlightPathSig.centFrac.ChPiEMEOverCaloEME.dRmax.etOverPtLeadTrk.EMPOverTrkSysP.innerTrkAvgDist.ipSigLeadTrk.mEflowApprox.ptRatioEflowApprox.SumPtTrkFrac.PSSFraction.etEMAtEMScale.etHadAtEMScale.sumEMCellEtOverLeadTrkPt.hadLeakEt.secMaxStripEt", + "HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Tau_IDTrig.phi.theta.qOverP.z0.d0.vertexLink.vz.chiSquared.numberDoF.expectInnermostPixelLayerHit.expectNextToInnermostPixelLayerHit.numberOfInnermostPixelLayerHits.numberOfNextToInnermostPixelLayerHits.numberOfPixelHits.numberOfPixelHoles.numberOfPixelSharedHits.numberOfPixelDeadSensors.numberOfSCTHits.numberOfSCTHoles.numberOfSCTSharedHits.numberOfSCTDeadSensors", + "HLT_xAOD__CaloClusterContainer_TrigCaloClusterMaker.CENTER_LAMBDA.FIRST_ENG_DENS.EM_PROBABILITY.SECOND_LAMBDA.SECOND_R.e_sampl.eta0.phi0.rawE.rawEta.rawPhi.rawM.altE.altEta.altPhi.altM.calE.calEta.calPhi.calM", + "HLT_xAOD__TauTrackContainer_TrigTauRecMergedTracks.pt.eta.phi.flagSet.trackLinks", + "HLT_xAOD__VertexContainer_xPrimVx.z" ] -#"AntiKt4TruthJets.eta.m.phi.pt.TruthLabelDeltaR_B.TruthLabelDeltaR_C.TruthLabelDeltaR_T.TruthLabelID.ConeTruthLabelID.PartonTruthLabelID.HadronConeExclTruthLabelID", - SUSY3SlimmingHelper.IncludeMuonTriggerContent = True SUSY3SlimmingHelper.IncludeEGammaTriggerContent = True #SUSY3SlimmingHelper.IncludeBPhysTriggerContent = True @@ -281,7 +317,6 @@ SUSY3SlimmingHelper.IncludeTauTriggerContent = True SUSY3SlimmingHelper.IncludeEtMissTriggerContent = True SUSY3SlimmingHelper.IncludeBJetTriggerContent = False - # All standard truth particle collections are provided by DerivationFrameworkMCTruth (TruthDerivationTools.py) # Most of the new containers are centrally added to SlimmingHelper via DerivationFrameworkCore ContainersOnTheFly.py if DerivationFrameworkIsMonteCarlo: @@ -292,4 +327,5 @@ if DerivationFrameworkIsMonteCarlo: SUSY3SlimmingHelper.AllVariables += ["TruthElectrons", "TruthMuons", "TruthTaus", "TruthPhotons", "TruthNeutrinos", "TruthTop", "TruthBSM", "TruthBoson"] + SUSY3SlimmingHelper.AppendContentToStream(SUSY3Stream) diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTau/share/TAUP3.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTau/share/TAUP3.py index df79035cdf8f602f54b62acc61434731ec7314a6..8bc26a8c1d12097b0654c3e7322231cd33b212a8 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTau/share/TAUP3.py +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTau/share/TAUP3.py @@ -123,12 +123,39 @@ TAUP3TauTPThinningTool = DerivationFramework__TauTrackParticleThinning( ToolSvc += TAUP3TauTPThinningTool thinningTools.append(TAUP3TauTPThinningTool) +# ------------------------------------------------------------------------------------------------------------------------------------------ +# For tau trigger performance studies + +# no TrackParticleThinning can be applied to HLT taus, we need all tau tracks for RNN ID, not only core tracks + +# TauTracks thinning +from DerivationFrameworkSUSY.DerivationFrameworkSUSYConf import DerivationFramework__TauTracksThinning +TAUP3HLTTauTracksThinningTool = DerivationFramework__TauTracksThinning(name = "TAUP3HLTTauTracksThinningTool", + ThinningService = "TAUP3ThinningSvc", + TauKey = "HLT_xAOD__TauJetContainer_TrigTauRecMerged", + TauTracksKey = "HLT_xAOD__TauTrackContainer_TrigTauRecMergedTracks", + IDTracksKey = "HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Tau_IDTrig") +ToolSvc += TAUP3HLTTauTracksThinningTool +thinningTools.append(TAUP3HLTTauTracksThinningTool) + +# Jet Calo Cluster thinning, need all clusters from HLT tau seed jet for RNN ID +from DerivationFrameworkCalo.DerivationFrameworkCaloConf import DerivationFramework__JetCaloClusterThinning +TAUP3HLTTauCCThinningTool = DerivationFramework__JetCaloClusterThinning( name = "TAUP3HLTTauCCThinningTool", + ThinningService = "TAUP3ThinningSvc", + SGKey = "HLT_xAOD__JetContainer_TrigTauJet", + TopoClCollectionSGKey = "HLT_xAOD__CaloClusterContainer_TrigCaloClusterMaker") +ToolSvc += TAUP3HLTTauCCThinningTool +thinningTools.append(TAUP3HLTTauCCThinningTool) + +# ------------------------------------------------------------------------------------------------------------------------------------------ + # truth thinning here: import DerivationFrameworkTau.TAUPThinningHelper TAUP3TruthThinningTools = DerivationFrameworkTau.TAUPThinningHelper.setup("TAUP3", "TAUP3ThinningSvc", ToolSvc) thinningTools += TAUP3TruthThinningTools + # ============================================= # Skimming tool # ============================================= @@ -214,6 +241,16 @@ TAUP3SlimmingHelper.ExtraVariables += JetTagConfig.GetExtraPromptTauVariablesFor TAUP3SlimmingHelper.ExtraVariables += ["Muons.PromptLeptonIso.PromptLeptonVeto"] TAUP3SlimmingHelper.ExtraVariables += JetTagConfig.GetExtraPromptVariablesForDxAOD(name="Muons") +# ------------------------------------------------------------------------------------------------------------------------------------------ +# For tau trigger performance studies +TAUP3SlimmingHelper.ExtraVariables += [ "HLT_xAOD__JetContainer_TrigTauJet.pt.eta.phi.m.constituentLinks", + "HLT_xAOD__TauJetContainer_TrigTauRecMerged.pt.eta.phi.m.tauTrackLinks.jetLink.vertexLink.charge.isTauFlags.BDTJetScore.ptFinalCalib.etaFinalCalib.phiFinalCalib.mFinalCalib.BDTJetScoreSigTrans.RNNJetScore.RNNJetScoreSigTrans.isolFrac.ptDetectorAxis.etaDetectorAxis.phiDetectorAxis.mDetectorAxis.ptJetSeed.leadTrkPt.massTrkSys.trFlightPathSig.centFrac.ChPiEMEOverCaloEME.dRmax.etOverPtLeadTrk.EMPOverTrkSysP.innerTrkAvgDist.ipSigLeadTrk.mEflowApprox.ptRatioEflowApprox.SumPtTrkFrac.PSSFraction.etEMAtEMScale.etHadAtEMScale.sumEMCellEtOverLeadTrkPt.hadLeakEt.secMaxStripEt", + "HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Tau_IDTrig.phi.theta.qOverP.z0.d0.vertexLink.vz.chiSquared.numberDoF.expectInnermostPixelLayerHit.expectNextToInnermostPixelLayerHit.numberOfInnermostPixelLayerHits.numberOfNextToInnermostPixelLayerHits.numberOfPixelHits.numberOfPixelHoles.numberOfPixelSharedHits.numberOfPixelDeadSensors.numberOfSCTHits.numberOfSCTHoles.numberOfSCTSharedHits.numberOfSCTDeadSensors", + "HLT_xAOD__CaloClusterContainer_TrigCaloClusterMaker.CENTER_LAMBDA.FIRST_ENG_DENS.EM_PROBABILITY.SECOND_LAMBDA.SECOND_R.e_sampl.eta0.phi0.rawE.rawEta.rawPhi.rawM.altE.altEta.altPhi.altM.calE.calEta.calPhi.calM", + "HLT_xAOD__TauTrackContainer_TrigTauRecMergedTracks.pt.eta.phi.flagSet.trackLinks", + "HLT_xAOD__VertexContainer_xPrimVx.z" ] +# ------------------------------------------------------------------------------------------------------------------------------------------ + if globalflags.DataSource() == "geant4": #TAUP3SlimmingHelper.AppendToDictionary = {'AntiKt4TruthJets':'xAOD::JetContainer','AntiKt4TruthJetsAux':'xAOD::JetAuxContainer'} TAUP3SlimmingHelper.ExtraVariables += ExtraContentTruthTAUP3