From 9f1dc558dd0a41d7eec142f3dcd2fbca99316b51 Mon Sep 17 00:00:00 2001
From: Lukas Alexander Heinrich <lukas.heinrich@cern.ch>
Date: Wed, 6 May 2020 08:26:29 +0000
Subject: [PATCH] Update packages:DerivationFrameworkPhys from upstream/21.2 to
 upstream/master via pseudo-merge

---
 .../DerivationFrameworkPhys/CMakeLists.txt    |  11 +
 .../python/PHYS_DataCompressionList.py        |   3 +
 .../python/PHYS_MCCompressionList.py          |   3 +
 .../python/__init__.py                        |   1 +
 .../DerivationFrameworkPhys/share/PHYS.py     | 317 ++++++++++++
 .../DerivationFrameworkPhys/share/PHYS2.py    | 365 +++++++++++++
 .../DerivationFrameworkPhys/share/PHYSLITE.py | 481 ++++++++++++++++++
 7 files changed, 1181 insertions(+)
 create mode 100644 PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/CMakeLists.txt
 create mode 100644 PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/python/PHYS_DataCompressionList.py
 create mode 100644 PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/python/PHYS_MCCompressionList.py
 create mode 100644 PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/python/__init__.py
 create mode 100644 PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/share/PHYS.py
 create mode 100644 PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/share/PHYS2.py
 create mode 100644 PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/share/PHYSLITE.py

diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/CMakeLists.txt b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/CMakeLists.txt
new file mode 100644
index 00000000000..59fdd1dc0ac
--- /dev/null
+++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/CMakeLists.txt
@@ -0,0 +1,11 @@
+################################################################################
+# Package: DerivationFrameworkPhys
+################################################################################
+
+# Declare the package name:
+atlas_subdir( DerivationFrameworkPhys )
+
+# Install files from the package:
+atlas_install_python_modules( python/*.py )
+atlas_install_joboptions( share/*.py )
+
diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/python/PHYS_DataCompressionList.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/python/PHYS_DataCompressionList.py
new file mode 100644
index 00000000000..d08346d71d9
--- /dev/null
+++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/python/PHYS_DataCompressionList.py
@@ -0,0 +1,3 @@
+PHYS_DataCompressionList=[ 
+"SoftBVrtClusterTool_Loose_VerticesAux.", "SoftBVrtClusterTool_Medium_VerticesAux.", "SoftBVrtClusterTool_Tight_VerticesAux.", "AntiKt10LCTopoJetsAux.", "AntiKt10LCTopoTrimmedPtFrac5SmallR20JetsAux.", "AntiKt2PV0TrackJetsAux.", "AntiKt4EMPFlowJetsAux.", "AntiKt4EMTopoJetsAux.", "AntiKtVR30Rmax4Rmin02TrackJets_BTagging201903Aux.", "AntiKt4EMPFlowJets_BTagging201810Aux.", "AntiKt4EMPFlowJets_BTagging201903Aux.", "AntiKt4EMTopoJets_BTagging201810Aux.", "xTrigDecisionAux.", "Kt4EMPFlowEventShapeAux.", "Kt4EMTopoOriginEventShapeAux.", "NeutralParticleFlowIsoCentralEventShapeAux.", "NeutralParticleFlowIsoForwardEventShapeAux.", "TopoClusterIsoCentralEventShapeAux.", "TopoClusterIsoForwardEventShapeAux.", "BTagging_AntiKt4EMPFlow_201810Aux.", "BTagging_AntiKt4EMPFlow_201903Aux.", "BTagging_AntiKt4EMTopo_201810Aux.", "BTagging_AntiKtVR30Rmax4Rmin02Track_201903Aux.", "CombinedMuonTrackParticlesAux.", "DiTauJetsAux.", "DiTauJetsLowPtAux.", "ElectronsAux.", "GSFConversionVerticesAux.", "GSFTrackParticlesAux.", "InDetForwardTrackParticlesAux.", "InDetTrackParticlesAux.", "MET_Core_AntiKt4EMPFlowAux.", "MET_Core_AntiKt4EMTopoAux.", "MET_TrackAux.", "MuonSpectrometerTrackParticlesAux.", "MuonsAux.", "PhotonsAux.", "PrimaryVerticesAux.", "TauJetsAux.", "TauTracksAux.", "TrigMatch_HLT_2e12_lhloose_nod0_mu10Aux.", "TrigMatch_HLT_2e17_lhvloose_nod0Aux.", "TrigMatch_HLT_2e17_lhvloose_nod0_L12EM15VHIAux.", "TrigMatch_HLT_2e24_lhvloose_nod0Aux.", "TrigMatch_HLT_2g20_tight_icalovloose_L12EM15VHIAux.", "TrigMatch_HLT_2g22_tightAux.", "TrigMatch_HLT_2g22_tight_L12EM15VHIAux.", "TrigMatch_HLT_2g22_tight_L1EM7_EMPTYAux.", "TrigMatch_HLT_2g22_tight_L1EM7_UNPAIRED_ISOAux.", "TrigMatch_HLT_2g22_tight_icalovlooseAux.", "TrigMatch_HLT_2g25_loose_g15_looseAux.", "TrigMatch_HLT_2g25_tight_L12EM20VHAux.", "TrigMatch_HLT_2g50_loose_L12EM20VHAux.", "TrigMatch_HLT_2mu14Aux.", "TrigMatch_HLT_2mu20_L12MU20_OVERLAYAux.", "TrigMatch_HLT_3g20_looseAux.", "TrigMatch_HLT_3mu3_mu3noL1_L13MU4Aux.", "TrigMatch_HLT_3mu4Aux.", "TrigMatch_HLT_3mu4_mu2noL1Aux.", "TrigMatch_HLT_3mu6Aux.", "TrigMatch_HLT_3mu6_msonlyAux.", "TrigMatch_HLT_3mu6_msonly_L1MU4_UNPAIRED_ISOAux.", "TrigMatch_HLT_3mu6_msonly_L1MU6_EMPTYAux.", "TrigMatch_HLT_4mu4Aux.", "TrigMatch_HLT_e12_lhloose_nod0_2mu10Aux.", "TrigMatch_HLT_e140_lhloose_nod0Aux.", "TrigMatch_HLT_e140_lhloose_nod0_L1EM24VHIAux.", "TrigMatch_HLT_e140_lhvloose_nod0Aux.", "TrigMatch_HLT_e160_lhvloose_nod0Aux.", "TrigMatch_HLT_e17_lhloose_nod0_2e12_lhloose_nod0_L1EM15VH_3EM10VHAux.", "TrigMatch_HLT_e17_lhloose_nod0_mu14Aux.", "TrigMatch_HLT_e17_lhmedium_nod0_ivarloose_tau25_medium1_tracktwoAux.", "TrigMatch_HLT_e17_lhmedium_nod0_ivarloose_tau25_medium1_tracktwoEFAux.", "TrigMatch_HLT_e17_lhmedium_nod0_ivarloose_tau25_medium1_tracktwoEF_L1DR-EM15TAU12I-J25Aux.", "TrigMatch_HLT_e17_lhmedium_nod0_ivarloose_tau25_medium1_tracktwoEF_L1EM15VHI_2TAU12IM_4J12Aux.", "TrigMatch_HLT_e17_lhmedium_nod0_ivarloose_tau25_medium1_tracktwoMVA_L1DR-EM15TAU12I-J25Aux.", "TrigMatch_HLT_e17_lhmedium_nod0_ivarloose_tau25_medium1_tracktwoMVA_L1EM15VHI_2TAU12IM_4J12Aux.", "TrigMatch_HLT_e17_lhmedium_nod0_ivarloose_tau25_medium1_tracktwo_L1DR-EM15TAU12I-J25Aux.", "TrigMatch_HLT_e17_lhmedium_nod0_ivarloose_tau25_medium1_tracktwo_L1EM15VHI_2TAU12IM_4J12Aux.", "TrigMatch_HLT_e17_lhmedium_nod0_ivarloose_tau25_mediumRNN_tracktwoMVAAux.", "TrigMatch_HLT_e17_lhmedium_nod0_ivarloose_tau25_mediumRNN_tracktwoMVA_L1DR-EM15TAU12I-J25Aux.", "TrigMatch_HLT_e17_lhmedium_nod0_ivarloose_tau25_mediumRNN_tracktwoMVA_L1EM15VHI_2TAU12IM_4J12Aux.", "TrigMatch_HLT_e17_lhmedium_nod0_tau80_medium1_tracktwoAux.", "TrigMatch_HLT_e200_etcutAux.", "TrigMatch_HLT_e22_lhvloose_nod0_e12_lhvloose_nod0_e10_lhvloose_nod0_L1EM20VH_2EM10VH_3EM8VHAux.", "TrigMatch_HLT_e24_lhmedium_nod0_ivarloose_tau35_medium1_tracktwoAux.", "TrigMatch_HLT_e24_lhmedium_nod0_ivarloose_tau35_medium1_tracktwoEFAux.", "TrigMatch_HLT_e24_lhmedium_nod0_ivarloose_tau35_medium1_tracktwoMVAAux.", "TrigMatch_HLT_e24_lhmedium_nod0_ivarloose_tau35_mediumRNN_tracktwoMVAAux.", "TrigMatch_HLT_e24_lhtight_nod0_ivarlooseAux.", "TrigMatch_HLT_e24_lhvloose_nod0_2e12_lhvloose_nod0_L1EM20VH_3EM10VHAux.", "TrigMatch_HLT_e26_lhloose_nod0Aux.", "TrigMatch_HLT_e26_lhmedium_nod0_mu8noL1Aux.", "TrigMatch_HLT_e26_lhtight_nod0Aux.", "TrigMatch_HLT_e26_lhtight_nod0_e15_etcut_L1EM7_ZeeAux.", "TrigMatch_HLT_e26_lhtight_nod0_ivarlooseAux.", "TrigMatch_HLT_e28_lhmedium_nod0_mu8noL1Aux.", "TrigMatch_HLT_e28_lhtight_nod0_L1EM22VHIAux.", "TrigMatch_HLT_e28_lhtight_nod0_e15_etcut_L1EM7_ZeeAux.", "TrigMatch_HLT_e28_lhtight_nod0_ivarlooseAux.", "TrigMatch_HLT_e28_lhtight_nod0_noringer_ivarlooseAux.", "TrigMatch_HLT_e300_etcutAux.", "TrigMatch_HLT_e60_lhmedium_nod0Aux.", "TrigMatch_HLT_e60_lhmedium_nod0_L1EM24VHIAux.", "TrigMatch_HLT_e7_lhmedium_nod0_mu24Aux.", "TrigMatch_HLT_e9_lhvloose_nod0_mu20_mu8noL1Aux.", "TrigMatch_HLT_e9_lhvloose_nod0_mu20_mu8noL1_L1EM7_MU20Aux.", "TrigMatch_HLT_g120_looseAux.", "TrigMatch_HLT_g140_looseAux.", "TrigMatch_HLT_g140_tightAux.", "TrigMatch_HLT_g200_etcutAux.", "TrigMatch_HLT_g200_looseAux.", "TrigMatch_HLT_g300_etcutAux.", "TrigMatch_HLT_g300_etcut_L1EM24VHIAux.", "TrigMatch_HLT_g35_loose_g25_looseAux.", "TrigMatch_HLT_g35_loose_g25_loose_L12EM20VHAux.", "TrigMatch_HLT_g35_medium_g25_medium_L12EM20VHAux.", "TrigMatch_HLT_g35_medium_g25_medium_L1EM7_EMPTYAux.", "TrigMatch_HLT_g35_medium_g25_medium_L1EM7_UNPAIRED_ISOAux.", "TrigMatch_HLT_id_cosmicid_L1MU11_EMPTYAux.", "TrigMatch_HLT_mu13_mu13_idperf_ZmumuAux.", "TrigMatch_HLT_mu14_ivarloose_L1MU11_tau35_medium1_tracktwoEF_L1MU11_TAU20IMAux.", "TrigMatch_HLT_mu14_ivarloose_L1MU11_tau35_medium1_tracktwoMVA_L1MU11_TAU20IMAux.", "TrigMatch_HLT_mu14_ivarloose_L1MU11_tau35_medium1_tracktwo_L1MU11_TAU20IMAux.", "TrigMatch_HLT_mu14_ivarloose_L1MU11_tau35_mediumRNN_tracktwoMVA_L1MU11_TAU20IMAux.", "TrigMatch_HLT_mu14_ivarloose_tau25_medium1_tracktwoAux.", "TrigMatch_HLT_mu14_ivarloose_tau25_medium1_tracktwoEFAux.", "TrigMatch_HLT_mu14_ivarloose_tau25_medium1_tracktwoEF_L1DR-MU10TAU12I_TAU12I-J25Aux.", "TrigMatch_HLT_mu14_ivarloose_tau25_medium1_tracktwoEF_L1MU10_TAU12IM_3J12Aux.", "TrigMatch_HLT_mu14_ivarloose_tau25_medium1_tracktwoMVA_L1DR-MU10TAU12I_TAU12I-J25Aux.", "TrigMatch_HLT_mu14_ivarloose_tau25_medium1_tracktwoMVA_L1MU10_TAU12IM_3J12Aux.", "TrigMatch_HLT_mu14_ivarloose_tau25_medium1_tracktwo_L1DR-MU10TAU12I_TAU12I-J25Aux.", "TrigMatch_HLT_mu14_ivarloose_tau25_medium1_tracktwo_L1MU10_TAU12IM_3J12Aux.", "TrigMatch_HLT_mu14_ivarloose_tau25_mediumRNN_tracktwoMVAAux.", "TrigMatch_HLT_mu14_ivarloose_tau25_mediumRNN_tracktwoMVA_L1DR-MU10TAU12I_TAU12I-J25Aux.", "TrigMatch_HLT_mu14_ivarloose_tau25_mediumRNN_tracktwoMVA_L1MU10_TAU12IM_3J12Aux.", "TrigMatch_HLT_mu14_ivarloose_tau35_medium1_tracktwoAux.", "TrigMatch_HLT_mu14_ivarloose_tau35_medium1_tracktwoEFAux.", "TrigMatch_HLT_mu14_ivarloose_tau35_medium1_tracktwoEF_L1MU10_TAU20IM_J25_2J20Aux.", "TrigMatch_HLT_mu14_ivarloose_tau35_medium1_tracktwoMVA_L1MU10_TAU20IM_J25_2J20Aux.", "TrigMatch_HLT_mu14_ivarloose_tau35_medium1_tracktwo_L1MU10_TAU20IM_J25_2J20Aux.", "TrigMatch_HLT_mu14_ivarloose_tau35_mediumRNN_tracktwoMVAAux.", "TrigMatch_HLT_mu14_ivarloose_tau35_mediumRNN_tracktwoMVA_L1MU10_TAU20IM_J25_2J20Aux.", "TrigMatch_HLT_mu20_2mu2noL1_JpsimumuFSAux.", "TrigMatch_HLT_mu20_2mu4_JpsimumuL2Aux.", "TrigMatch_HLT_mu20_2mu4noL1Aux.", "TrigMatch_HLT_mu20_ivarmedium_mu8noL1Aux.", "TrigMatch_HLT_mu20_msonly_iloosems_mu6noL1_msonly_nscan05_L1MU4_UNPAIRED_ISOAux.", "TrigMatch_HLT_mu20_msonly_iloosems_mu6noL1_msonly_nscan05_L1MU6_EMPTYAux.", "TrigMatch_HLT_mu20_msonly_mu15noL1_msonly_nscan05_noCombAux.", "TrigMatch_HLT_mu20_msonly_mu15noL1_msonly_nscan05_noComb_L1MU4_UNPAIRED_ISOAux.", "TrigMatch_HLT_mu20_msonly_mu15noL1_msonly_nscan05_noComb_L1MU6_EMPTYAux.", "TrigMatch_HLT_mu20_msonly_mu6noL1_msonly_nscan05Aux.", "TrigMatch_HLT_mu22_mu8noL1Aux.", "TrigMatch_HLT_mu22_mu8noL1_TagandProbeAux.", "TrigMatch_HLT_mu24_ivarmediumAux.", "TrigMatch_HLT_mu24_mu8noL1Aux.", "TrigMatch_HLT_mu26_ivarmediumAux.", "TrigMatch_HLT_mu50Aux.", "TrigMatch_HLT_mu60Aux.", "TrigMatch_HLT_mu60_0eta105_msonlyAux.", "TrigMatch_HLT_mu6_2mu4Aux.", "TrigMatch_HLT_mu6_dRl1_mu20_msonly_iloosems_mu6noL1_dRl1_msonlyAux.", "TrigMatch_HLT_mu6_nomucomb_2mu4_nomucomb_L1MU6_3MU4Aux.", "TrigMatch_HLT_mu80_msonly_3layersECAux.", "TrigMatch_HLT_tau125_medium1_tracktwoAux.", "TrigMatch_HLT_tau160_medium1_tracktwoAux.", "TrigMatch_HLT_tau160_medium1_tracktwoEF_L1TAU100Aux.", "TrigMatch_HLT_tau160_medium1_tracktwoMVA_L1TAU100Aux.", "TrigMatch_HLT_tau160_medium1_tracktwo_L1TAU100Aux.", "TrigMatch_HLT_tau160_mediumRNN_tracktwoMVA_L1TAU100Aux.", "TrigMatch_HLT_tau35_loose1_tracktwo_tau25_loose1_tracktwoAux.", "TrigMatch_HLT_tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF_03dR30_L1DR-TAU20ITAU12I-J25Aux.", "TrigMatch_HLT_tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF_L1DR-TAU20ITAU12I-J25Aux.", "TrigMatch_HLT_tau35_medium1_tracktwoEF_tau25_medium1_tracktwoEF_L1TAU20IM_2TAU12IM_4J12_0ETA23Aux.", "TrigMatch_HLT_tau35_medium1_tracktwoMVA_tau25_medium1_tracktwoMVA_03dR30_L1DR-TAU20ITAU12I-J25Aux.", "TrigMatch_HLT_tau35_medium1_tracktwoMVA_tau25_medium1_tracktwoMVA_L1DR-TAU20ITAU12I-J25Aux.", "TrigMatch_HLT_tau35_medium1_tracktwoMVA_tau25_medium1_tracktwoMVA_L1TAU20IM_2TAU12IM_4J12_0ETA23Aux.", "TrigMatch_HLT_tau35_medium1_tracktwo_tau25_medium1_tracktwoAux.", "TrigMatch_HLT_tau35_medium1_tracktwo_tau25_medium1_tracktwo_03dR30_L1DR-TAU20ITAU12I-J25Aux.", "TrigMatch_HLT_tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1DR-TAU20ITAU12I-J25Aux.", "TrigMatch_HLT_tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IMAux.", "TrigMatch_HLT_tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM_4J12Aux.", "TrigMatch_HLT_tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM_4J12_0ETA23Aux.", "TrigMatch_HLT_tau35_medium1_tracktwo_tau25_medium1_tracktwo_tautsf_L1DR-TAU20ITAU12I-J25Aux.", "TrigMatch_HLT_tau35_mediumRNN_tracktwoMVA_tau25_mediumRNN_tracktwoMVA_03dR30_L1DR-TAU20ITAU12I-J25Aux.", "TrigMatch_HLT_tau35_mediumRNN_tracktwoMVA_tau25_mediumRNN_tracktwoMVA_L1DR-TAU20ITAU12I-J25Aux.", "TrigMatch_HLT_tau35_mediumRNN_tracktwoMVA_tau25_mediumRNN_tracktwoMVA_L1TAU20IM_2TAU12IM_4J12_0ETA23Aux.", "TrigMatch_HLT_tau40_medium1_tracktwoEF_tau35_medium1_tracktwoEFAux.", "TrigMatch_HLT_tau40_medium1_tracktwoMVA_tau35_medium1_tracktwoMVAAux.", "TrigMatch_HLT_tau40_medium1_tracktwo_tau35_medium1_tracktwoAux.", "TrigMatch_HLT_tau40_mediumRNN_tracktwoMVA_tau35_mediumRNN_tracktwoMVAAux.", "TrigMatch_HLT_tau60_medium1_tracktwo_tau35_medium1_tracktwoAux.", "TrigMatch_HLT_tau80_medium1_tracktwoEF_L1TAU60_tau35_medium1_tracktwoEF_L1TAU12IM_L1TAU60_DR-TAU20ITAU12IAux.", "TrigMatch_HLT_tau80_medium1_tracktwoEF_L1TAU60_tau60_medium1_tracktwoEF_L1TAU40Aux.", "TrigMatch_HLT_tau80_medium1_tracktwoMVA_L1TAU60_tau35_medium1_tracktwoMVA_L1TAU12IM_L1TAU60_DR-TAU20ITAU12IAux.", "TrigMatch_HLT_tau80_medium1_tracktwoMVA_L1TAU60_tau60_medium1_tracktwoMVA_L1TAU40Aux.", "TrigMatch_HLT_tau80_medium1_tracktwo_L1TAU60Aux.", "TrigMatch_HLT_tau80_medium1_tracktwo_L1TAU60_tau35_medium1_tracktwo_L1TAU12IM_L1TAU60_DR-TAU20ITAU12IAux.", "TrigMatch_HLT_tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12Aux.", "TrigMatch_HLT_tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40Aux.", "TrigMatch_HLT_tau80_mediumRNN_tracktwoMVA_L1TAU60_tau35_mediumRNN_tracktwoMVA_L1TAU12IM_L1TAU60_DR-TAU20ITAU12IAux.", "TrigMatch_HLT_tau80_mediumRNN_tracktwoMVA_L1TAU60_tau60_mediumRNN_tracktwoMVA_L1TAU40Aux.", "egammaClustersAux.", "METAssoc_AntiKt4EMPFlowAux.", "METAssoc_AntiKt4EMTopoAux.",
+] 
diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/python/PHYS_MCCompressionList.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/python/PHYS_MCCompressionList.py
new file mode 100644
index 00000000000..fafd173090f
--- /dev/null
+++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/python/PHYS_MCCompressionList.py
@@ -0,0 +1,3 @@
+PHYS_MCCompressionList=[ 
+"SoftBVrtClusterTool_Loose_VerticesAux.", "SoftBVrtClusterTool_Medium_VerticesAux.", "SoftBVrtClusterTool_Tight_VerticesAux.", "AntiKt10LCTopoJetsAux.", "AntiKt10LCTopoTrimmedPtFrac5SmallR20JetsAux.", "AntiKt10TruthTrimmedPtFrac5SmallR20JetsAux.", "AntiKt2PV0TrackJetsAux.", "AntiKt4EMPFlowJetsAux.", "AntiKt4EMTopoJetsAux.", "AntiKt4TruthDressedWZJetsAux.", "AntiKtVR30Rmax4Rmin02TrackJets_BTagging201903Aux.", "AntiKt4EMPFlowJets_BTagging201810Aux.", "AntiKt4EMPFlowJets_BTagging201903Aux.", "AntiKt4EMTopoJets_BTagging201810Aux.", "xTrigDecisionAux.", "Kt4EMPFlowEventShapeAux.", "Kt4EMTopoOriginEventShapeAux.", "NeutralParticleFlowIsoCentralEventShapeAux.", "NeutralParticleFlowIsoForwardEventShapeAux.", "TopoClusterIsoCentralEventShapeAux.", "TopoClusterIsoForwardEventShapeAux.", "BTagging_AntiKt4EMPFlow_201810Aux.", "BTagging_AntiKt4EMPFlow_201903Aux.", "BTagging_AntiKt4EMTopo_201810Aux.", "BTagging_AntiKtVR30Rmax4Rmin02Track_201903Aux.", "BornLeptonsAux.", "CombinedMuonTrackParticlesAux.", "DiTauJetsAux.", "DiTauJetsLowPtAux.", "ElectronsAux.", "GSFConversionVerticesAux.", "GSFTrackParticlesAux.", "HardScatterParticlesAux.", "HardScatterVerticesAux.", "InDetForwardTrackParticlesAux.", "InDetTrackParticlesAux.", "MET_Core_AntiKt4EMPFlowAux.", "MET_Core_AntiKt4EMTopoAux.", "MET_TrackAux.", "MET_TruthAux.", "MuonSpectrometerTrackParticlesAux.", "MuonsAux.", "PhotonsAux.", "PrimaryVerticesAux.", "TauJetsAux.", "TauTracksAux.", "TrigMatch_HLT_2e12_lhloose_nod0_mu10Aux.", "TrigMatch_HLT_2e12_lhloose_nodeta_L12EM10VHAux.", "TrigMatch_HLT_2e12_lhloose_nodphires_L12EM10VHAux.", "TrigMatch_HLT_2e17_lhvloose_nod0Aux.", "TrigMatch_HLT_2e17_lhvloose_nod0_L12EM15VHIAux.", "TrigMatch_HLT_2e17_lhvloose_nod0_ringerAux.", "TrigMatch_HLT_2e17_lhvloose_nod0_ringer_L12EM15VHIAux.", "TrigMatch_HLT_2e24_lhvloose_nod0Aux.", "TrigMatch_HLT_2g20_loose_g15_looseAux.", "TrigMatch_HLT_2g20_tightAux.", "TrigMatch_HLT_2g20_tight_icalovloose_L12EM15VHIAux.", "TrigMatch_HLT_2g22_tightAux.", "TrigMatch_HLT_2g22_tight_L12EM15VHIAux.", "TrigMatch_HLT_2g22_tight_L1EM7_EMPTYAux.", "TrigMatch_HLT_2g22_tight_L1EM7_UNPAIRED_ISOAux.", "TrigMatch_HLT_2g22_tight_icalovlooseAux.", "TrigMatch_HLT_2g25_loose_g15_looseAux.", "TrigMatch_HLT_2g25_tight_L12EM20VHAux.", "TrigMatch_HLT_2g50_loose_L12EM20VHAux.", "TrigMatch_HLT_2mu10Aux.", "TrigMatch_HLT_2mu10_nomucombAux.", "TrigMatch_HLT_2mu14Aux.", "TrigMatch_HLT_2mu14_nomucombAux.", "TrigMatch_HLT_2mu20_L12MU20_OVERLAYAux.", "TrigMatch_HLT_2mu4_mu3_mu2noL1_L13MU4Aux.", "TrigMatch_HLT_2mu4_mu3_mu2noL1_calotag_0eta010_L13MU4Aux.", "TrigMatch_HLT_2mu6_10invm30_pt2_z10Aux.", "TrigMatch_HLT_3g20_looseAux.", "TrigMatch_HLT_3mu3_mu3noL1_L13MU4Aux.", "TrigMatch_HLT_3mu3_mu3noL1_calotag_0eta010_L13MU4Aux.", "TrigMatch_HLT_3mu4Aux.", "TrigMatch_HLT_3mu4_mu2noL1Aux.", "TrigMatch_HLT_3mu4_mu2noL1_calotag_0eta010Aux.", "TrigMatch_HLT_3mu4_nomucombAux.", "TrigMatch_HLT_3mu4_nomucomb_mu2noL1Aux.", "TrigMatch_HLT_3mu6Aux.", "TrigMatch_HLT_3mu6_msonlyAux.", "TrigMatch_HLT_3mu6_msonly_L1MU4_UNPAIRED_ISOAux.", "TrigMatch_HLT_3mu6_msonly_L1MU6_EMPTYAux.", "TrigMatch_HLT_4mu4Aux.", "TrigMatch_HLT_4mu4_nomucombAux.", "TrigMatch_HLT_e120_lhloose_nod0Aux.", "TrigMatch_HLT_e12_lhloose_nod0_2mu10Aux.", "TrigMatch_HLT_e140_lhloose_nod0Aux.", "TrigMatch_HLT_e140_lhloose_nod0_L1EM24VHIAux.", "TrigMatch_HLT_e140_lhloose_nod0_ringerAux.", "TrigMatch_HLT_e140_lhvloose_nod0Aux.", "TrigMatch_HLT_e160_lhvloose_nod0Aux.", "TrigMatch_HLT_e17_lhloose_nod0_2e12_lhloose_nod0_L1EM15VH_3EM10VHAux.", "TrigMatch_HLT_e17_lhloose_nod0_2e9_lhloose_nod0Aux.", "TrigMatch_HLT_e17_lhloose_nod0_mu14Aux.", "TrigMatch_HLT_e17_lhmedium_iloose_tau25_medium1_tracktwoAux.", "TrigMatch_HLT_e17_lhmedium_nod0_iloose_tau25_medium1_tracktwoAux.", "TrigMatch_HLT_e17_lhmedium_nod0_ivarloose_tau25_medium1_tracktwoAux.", "TrigMatch_HLT_e17_lhmedium_nod0_ivarloose_tau25_medium1_tracktwo_L1DR-EM15TAU12I-J25Aux.", "TrigMatch_HLT_e17_lhmedium_nod0_ivarloose_tau25_medium1_tracktwo_L1EM15VHI_2TAU12IM_4J12Aux.", "TrigMatch_HLT_e17_lhmedium_nod0_tau25_medium1_tracktwoAux.", "TrigMatch_HLT_e17_lhmedium_nod0_tau80_medium1_tracktwoAux.", "TrigMatch_HLT_e17_lhmedium_tau25_medium1_tracktwoAux.", "TrigMatch_HLT_e17_lhmedium_tau80_medium1_tracktwoAux.", "TrigMatch_HLT_e200_etcutAux.", "TrigMatch_HLT_e22_lhvloose_nod0_e12_lhvloose_nod0_e10_lhvloose_nod0_L1EM20VH_2EM10VH_3EM8VHAux.", "TrigMatch_HLT_e24_lhmedium_nod0_L1EM20VHI_mu8noL1Aux.", "TrigMatch_HLT_e24_lhmedium_nod0_ivarloose_tau35_medium1_tracktwoAux.", "TrigMatch_HLT_e24_lhtight_nod0_ivarlooseAux.", "TrigMatch_HLT_e24_lhvloose_nod0_2e12_lhvloose_nod0_L1EM20VH_3EM10VHAux.", "TrigMatch_HLT_e26_lhloose_nod0Aux.", "TrigMatch_HLT_e26_lhloose_nod0_ringerAux.", "TrigMatch_HLT_e26_lhmedium_nod0_mu8noL1Aux.", "TrigMatch_HLT_e26_lhtight_cutd0dphideta_ivarlooseAux.", "TrigMatch_HLT_e26_lhtight_nod0Aux.", "TrigMatch_HLT_e26_lhtight_nod0_e15_etcut_L1EM7_ZeeAux.", "TrigMatch_HLT_e26_lhtight_nod0_ivarlooseAux.", "TrigMatch_HLT_e26_lhtight_nod0_ringer_ivarlooseAux.", "TrigMatch_HLT_e28_lhmedium_nod0_mu8noL1Aux.", "TrigMatch_HLT_e28_lhtight_nod0_L1EM22VHIAux.", "TrigMatch_HLT_e28_lhtight_nod0_e15_etcut_L1EM7_ZeeAux.", "TrigMatch_HLT_e28_lhtight_nod0_ivarlooseAux.", "TrigMatch_HLT_e28_lhtight_nod0_noringer_ivarlooseAux.", "TrigMatch_HLT_e28_lhtight_nod0_ringer_ivarlooseAux.", "TrigMatch_HLT_e300_etcutAux.", "TrigMatch_HLT_e60_lhmedium_nod0Aux.", "TrigMatch_HLT_e60_lhmedium_nod0_L1EM24VHIAux.", "TrigMatch_HLT_e60_lhmedium_nod0_ringerAux.", "TrigMatch_HLT_e60_mediumAux.", "TrigMatch_HLT_e7_lhmedium_nod0_mu24Aux.", "TrigMatch_HLT_g120_looseAux.", "TrigMatch_HLT_g140_looseAux.", "TrigMatch_HLT_g140_tightAux.", "TrigMatch_HLT_g200_etcutAux.", "TrigMatch_HLT_g200_looseAux.", "TrigMatch_HLT_g300_etcutAux.", "TrigMatch_HLT_g300_etcut_L1EM24VHIAux.", "TrigMatch_HLT_g35_loose_g25_looseAux.", "TrigMatch_HLT_g35_loose_g25_loose_L12EM20VHAux.", "TrigMatch_HLT_g35_medium_g25_medium_L12EM20VHAux.", "TrigMatch_HLT_g35_medium_g25_medium_L1EM7_EMPTYAux.", "TrigMatch_HLT_g35_medium_g25_medium_L1EM7_UNPAIRED_ISOAux.", "TrigMatch_HLT_id_cosmicid_L1MU11_EMPTYAux.", "TrigMatch_HLT_mu11_2mu4noL1_nscan03_L1MU11_2MU6Aux.", "TrigMatch_HLT_mu11_L1MU10_2mu4noL1_nscan03_L1MU10_2MU6Aux.", "TrigMatch_HLT_mu11_nomucomb_2mu4noL1_nscan03_L1MU11_2MU6Aux.", "TrigMatch_HLT_mu13_mu13_idperf_ZmumuAux.", "TrigMatch_HLT_mu14_iloose_tau25_medium1_tracktwoAux.", "TrigMatch_HLT_mu14_iloose_tau35_medium1_tracktwoAux.", "TrigMatch_HLT_mu14_ivarloose_L1MU11_tau35_medium1_tracktwo_L1MU11_TAU20IMAux.", "TrigMatch_HLT_mu14_ivarloose_tau25_medium1_tracktwoAux.", "TrigMatch_HLT_mu14_ivarloose_tau25_medium1_tracktwo_L1DR-MU10TAU12I_TAU12I-J25Aux.", "TrigMatch_HLT_mu14_ivarloose_tau25_medium1_tracktwo_L1MU10_TAU12IM_3J12Aux.", "TrigMatch_HLT_mu14_ivarloose_tau35_medium1_tracktwoAux.", "TrigMatch_HLT_mu14_ivarloose_tau35_medium1_tracktwo_L1MU10_TAU20IM_J25_2J20Aux.", "TrigMatch_HLT_mu14_tau25_medium1_tracktwoAux.", "TrigMatch_HLT_mu14_tau35_medium1_tracktwoAux.", "TrigMatch_HLT_mu20_2mu2noL1_JpsimumuFSAux.", "TrigMatch_HLT_mu20_2mu4_JpsimumuL2Aux.", "TrigMatch_HLT_mu20_2mu4noL1Aux.", "TrigMatch_HLT_mu20_ivarmedium_mu8noL1Aux.", "TrigMatch_HLT_mu20_msonly_iloosems_mu6noL1_msonly_nscan05_L1MU4_UNPAIRED_ISOAux.", "TrigMatch_HLT_mu20_msonly_iloosems_mu6noL1_msonly_nscan05_L1MU6_EMPTYAux.", "TrigMatch_HLT_mu20_msonly_mu10noL1_msonly_nscan05_noCombAux.", "TrigMatch_HLT_mu20_msonly_mu10noL1_msonly_nscan05_noComb_L1MU4_UNPAIRED_ISOAux.", "TrigMatch_HLT_mu20_msonly_mu10noL1_msonly_nscan05_noComb_L1MU6_EMPTYAux.", "TrigMatch_HLT_mu20_msonly_mu15noL1_msonly_nscan05_noCombAux.", "TrigMatch_HLT_mu20_msonly_mu15noL1_msonly_nscan05_noComb_L1MU4_UNPAIRED_ISOAux.", "TrigMatch_HLT_mu20_msonly_mu15noL1_msonly_nscan05_noComb_L1MU6_EMPTYAux.", "TrigMatch_HLT_mu20_msonly_mu6noL1_msonly_nscan05Aux.", "TrigMatch_HLT_mu20_mu8noL1Aux.", "TrigMatch_HLT_mu20_mu8noL1_calotag_0eta010Aux.", "TrigMatch_HLT_mu20_mu8noL1_e9_lhvloose_nod0Aux.", "TrigMatch_HLT_mu20_mu8noL1_e9_lhvloose_nod0_L1EM7_MU20Aux.", "TrigMatch_HLT_mu20_nomucomb_mu6noL1_nscan03Aux.", "TrigMatch_HLT_mu22_mu8noL1Aux.", "TrigMatch_HLT_mu22_mu8noL1_calotag_0eta010Aux.", "TrigMatch_HLT_mu24_ilooseAux.", "TrigMatch_HLT_mu24_imediumAux.", "TrigMatch_HLT_mu24_ivarlooseAux.", "TrigMatch_HLT_mu24_ivarmediumAux.", "TrigMatch_HLT_mu24_mu8noL1Aux.", "TrigMatch_HLT_mu26_ivarmediumAux.", "TrigMatch_HLT_mu40Aux.", "TrigMatch_HLT_mu50Aux.", "TrigMatch_HLT_mu60Aux.", "TrigMatch_HLT_mu60_0eta105_msonlyAux.", "TrigMatch_HLT_mu6_2mu4Aux.", "TrigMatch_HLT_mu6_dRl1_mu20_msonly_iloosems_mu6noL1_dRl1_msonlyAux.", "TrigMatch_HLT_mu6_iloose_mu6_11invm24_noosAux.", "TrigMatch_HLT_mu6_nomucomb_2mu4_nomucomb_L1MU6_3MU4Aux.", "TrigMatch_HLT_tau125_medium1_trackAux.", "TrigMatch_HLT_tau125_medium1_tracktwoAux.", "TrigMatch_HLT_tau160_medium1_tracktwoAux.", "TrigMatch_HLT_tau160_medium1_tracktwo_L1TAU100Aux.", "TrigMatch_HLT_tau35_loose1_tracktwo_tau25_loose1_tracktwoAux.", "TrigMatch_HLT_tau35_medium1_tracktwo_tau25_medium1_tracktwoAux.", "TrigMatch_HLT_tau35_medium1_tracktwo_tau25_medium1_tracktwo_03dR30Aux.", "TrigMatch_HLT_tau35_medium1_tracktwo_tau25_medium1_tracktwo_03dR30_L1DR-TAU20ITAU12I-J25Aux.", "TrigMatch_HLT_tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1DR-TAU20ITAU12I-J25Aux.", "TrigMatch_HLT_tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IMAux.", "TrigMatch_HLT_tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM_4J12Aux.", "TrigMatch_HLT_tau35_medium1_tracktwo_tau25_medium1_tracktwo_tautsf_L1DR-TAU20ITAU12I-J25Aux.", "TrigMatch_HLT_tau40_medium1_tracktwo_tau35_medium1_tracktwoAux.", "TrigMatch_HLT_tau60_medium1_tracktwo_tau35_medium1_tracktwoAux.", "TrigMatch_HLT_tau80_medium1_tracktwo_L1TAU60Aux.", "TrigMatch_HLT_tau80_medium1_tracktwo_L1TAU60_tau35_medium1_tracktwo_L1TAU12IM_L1TAU60_DR-TAU20ITAU12IAux.", "TrigMatch_HLT_tau80_medium1_tracktwo_L1TAU60_tau50_medium1_tracktwo_L1TAU12Aux.", "TrigMatch_HLT_tau80_medium1_tracktwo_L1TAU60_tau60_medium1_tracktwo_L1TAU40Aux.", "TruthBSMAux.", "TruthBSMWithDecayParticlesAux.", "TruthBSMWithDecayVerticesAux.", "TruthBosonAux.", "TruthBosonsWithDecayParticlesAux.", "TruthBosonsWithDecayVerticesAux.", "TruthBottomAux.", "TruthCharmAux.", "TruthElectronsAux.", "TruthEventsAux.", "TruthForwardProtonsAux.", "TruthHFWithDecayParticlesAux.", "TruthHFWithDecayVerticesAux.", "TruthMuonsAux.", "TruthNeutrinosAux.", "TruthPhotonsAux.", "TruthPrimaryVerticesAux.", "TruthTausAux.", "TruthTopAux.", "egammaClustersAux.", "METAssoc_AntiKt4EMPFlowAux.", "METAssoc_AntiKt4EMTopoAux.",
+] 
diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/python/__init__.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/python/__init__.py
new file mode 100644
index 00000000000..8b137891791
--- /dev/null
+++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/python/__init__.py
@@ -0,0 +1 @@
+
diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/share/PHYS.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/share/PHYS.py
new file mode 100644
index 00000000000..09564d0ec4f
--- /dev/null
+++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/share/PHYS.py
@@ -0,0 +1,317 @@
+# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+
+#====================================================================
+# DAOD_PHYS.py
+# This defines DAOD_PHYS, an unskimmed DAOD format for Run 3.
+# It contains the variables and objects needed for the large majority 
+# of physics analyses in ATLAS.
+# It requires the reductionConf flag PHYS in Reco_tf.py   
+#====================================================================
+
+from DerivationFrameworkCore.DerivationFrameworkMaster import *
+from DerivationFrameworkInDet.InDetCommon import *
+from DerivationFrameworkJetEtMiss.JetCommon import *
+from DerivationFrameworkJetEtMiss.ExtendedJetCommon import *
+from DerivationFrameworkJetEtMiss.METCommon import *
+from DerivationFrameworkMuons.MuonsCommon import *
+from TriggerMenu.api.TriggerAPI import TriggerAPI
+from TriggerMenu.api.TriggerEnums import TriggerPeriod, TriggerType
+
+#====================================================================
+# SET UP STREAM   
+#====================================================================
+streamName = derivationFlags.WriteDAOD_PHYSStream.StreamName
+fileName   = buildFileName( derivationFlags.WriteDAOD_PHYSStream )
+PHYSStream = MSMgr.NewPoolRootStream( streamName, fileName )
+PHYSStream.AcceptAlgs(["PHYSKernel"])
+
+### Thinning and augmentation tools lists
+from DerivationFrameworkCore.ThinningHelper import ThinningHelper
+PHYSThinningHelper = ThinningHelper( "PHYSThinningHelper" )
+PHYSThinningHelper.AppendToStream( PHYSStream )
+thinningTools       = []
+AugmentationTools   = []
+
+# Special sequence 
+SeqPHYS = CfgMgr.AthSequencer("SeqPHYS")
+
+#====================================================================
+# TRIGGER CONTENT   
+#====================================================================
+# See https://twiki.cern.ch/twiki/bin/view/Atlas/TriggerAPI
+# Get single and multi mu, e, photon triggers
+# Jet, tau, multi-object triggers not available in the matching code
+allperiods = TriggerPeriod.y2015 | TriggerPeriod.y2016 | TriggerPeriod.y2017 | TriggerPeriod.y2018 | TriggerPeriod.future2e34
+trig_el  = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.el,  livefraction=0.8)
+trig_mu  = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.mu,  livefraction=0.8)
+trig_g   = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.g,   livefraction=0.8)
+trig_tau = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.tau, livefraction=0.8)
+# Add cross-triggers for some sets
+trig_em = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.el, additionalTriggerType=TriggerType.mu,  livefraction=0.8)
+trig_et = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.el, additionalTriggerType=TriggerType.tau, livefraction=0.8)
+trig_mt = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.mu, additionalTriggerType=TriggerType.tau, livefraction=0.8)
+# Note that this seems to pick up both isolated and non-isolated triggers already, so no need for extra grabs
+trig_txe = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.tau, additionalTriggerType=TriggerType.xe, livefraction=0.8)
+
+# Merge and remove duplicates
+trigger_names_full_notau = list(set(trig_el+trig_mu+trig_g+trig_em+trig_et+trig_mt))
+trigger_names_full_tau = list(set(trig_tau+trig_txe))
+
+# Now reduce the list...
+from RecExConfig.InputFilePeeker import inputFileSummary
+trigger_names_notau = []
+trigger_names_tau = []
+for trig_item in inputFileSummary['metadata']['/TRIGGER/HLT/Menu']:
+    if not 'ChainName' in trig_item: continue
+    if trig_item['ChainName'] in trigger_names_full_notau: trigger_names_notau += [ trig_item['ChainName'] ]
+    if trig_item['ChainName'] in trigger_names_full_tau:   trigger_names_tau   += [ trig_item['ChainName'] ]
+
+
+#====================================================================
+# INNER DETECTOR TRACK THINNING
+#====================================================================
+# See recommedations here: 
+# https://twiki.cern.ch/twiki/bin/viewauth/AtlasProtected/DaodRecommendations
+
+# Inner detector group recommendations for indet tracks in analysis
+# PHYS_thinning_expression = "InDetTrackParticles.DFCommonTightPrimary && abs(DFCommonInDetTrackZ0AtPV)*sin(InDetTrackParticles.theta) < 3.0*mm && InDetTrackParticles.pt > 10*GeV"
+# from DerivationFrameworkInDet.DerivationFrameworkInDetConf import DerivationFramework__TrackParticleThinning
+# PHYSTrackParticleThinningTool = DerivationFramework__TrackParticleThinning(name                    = "PHYSTrackParticleThinningTool",
+#                                                                            ThinningService         = PHYSThinningHelper.ThinningSvc(),
+#                                                                           SelectionString         = PHYS_thinning_expression,
+#                                                                           InDetTrackParticlesKey  = "InDetTrackParticles",
+#                                                                           ApplyAnd                = False)
+
+# ToolSvc += PHYSTrackParticleThinningTool
+# thinningTools.append(PHYSTrackParticleThinningTool)
+
+# Include inner detector tracks associated with muons
+# from DerivationFrameworkInDet.DerivationFrameworkInDetConf import DerivationFramework__MuonTrackParticleThinning
+# PHYSMuonTPThinningTool = DerivationFramework__MuonTrackParticleThinning(name                    = "PHYSMuonTPThinningTool",
+#                                                                        ThinningService         = PHYSThinningHelper.ThinningSvc(),
+#                                                                        MuonKey                 = "Muons",
+#                                                                        InDetTrackParticlesKey  = "InDetTrackParticles",
+#                                                                        ApplyAnd = False)
+
+# ToolSvc += PHYSMuonTPThinningTool
+# thinningTools.append(PHYSMuonTPThinningTool)
+
+# # TauJets thinning
+# tau_thinning_expression = "(TauJets.ptFinalCalib >= 13.*GeV) && (TauJets.nTracks>=1) && (TauJets.nTracks<=3) && (TauJets.RNNJetScoreSigTrans>0.01)"
+# from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__GenericObjectThinning
+# PHYSTauJetsThinningTool = DerivationFramework__GenericObjectThinning(name            = "PHYSTauJetsThinningTool",
+#                                                                      ThinningService = PHYSThinningHelper.ThinningSvc(),
+#                                                                      ContainerName   = "TauJets",
+#                                                                      SelectionString = tau_thinning_expression)
+# ToolSvc += PHYSTauJetsThinningTool
+# thinningTools.append(PHYSTauJetsThinningTool)
+
+# # Only keep tau tracks (and associated ID tracks) classified as charged tracks
+# from DerivationFrameworkInDet.DerivationFrameworkInDetConf import DerivationFramework__TauTrackParticleThinning
+# PHYSTauTPThinningTool = DerivationFramework__TauTrackParticleThinning(name                   = "PHYSTauTPThinningTool",
+#                                                                       ThinningService        = PHYSThinningHelper.ThinningSvc(),
+#                                                                       TauKey                 = "TauJets",
+#                                                                       InDetTrackParticlesKey = "InDetTrackParticles",
+#                                                                       SelectionString        = tau_thinning_expression,
+#                                                                       ApplyAnd               = False,
+#                                                                       DoTauTracksThinning    = True,
+#                                                                       TauTracksKey           = "TauTracks")
+# ToolSvc += PHYSTauTPThinningTool
+# thinningTools.append(PHYSTauTPThinningTool)
+
+# # ID tracks associated with high-pt di-tau
+# from DerivationFrameworkInDet.DerivationFrameworkInDetConf import DerivationFramework__DiTauTrackParticleThinning
+# PHYSDiTauTPThinningTool = DerivationFramework__DiTauTrackParticleThinning(name                    = "PHYSDiTauTPThinningTool",
+#                                                                           ThinningService         = PHYSThinningHelper.ThinningSvc(),
+#                                                                           DiTauKey                = "DiTauJets",
+#                                                                           InDetTrackParticlesKey  = "InDetTrackParticles")
+# ToolSvc += PHYSDiTauTPThinningTool
+# thinningTools.append(PHYSDiTauTPThinningTool)
+
+#====================================================================
+# JET/MET   
+#====================================================================
+
+OutputJets["PHYS"] = ["AntiKt10LCTopoTrimmedPtFrac5SmallR20Jets"]
+reducedJetList = ["AntiKt2PV0TrackJets","AntiKt4PV0TrackJets"]
+
+if (DerivationFrameworkIsMonteCarlo):
+   OutputJets["PHYS"].append("AntiKt10TruthTrimmedPtFrac5SmallR20Jets")
+
+# replaceAODReducedJets(reducedJetList,SeqPHYS,"PHYS")
+# add_largeR_truth_jets = DerivationFrameworkIsMonteCarlo and not hasattr(SeqPHYS,'jetalgAntiKt10TruthTrimmedPtFrac5SmallR20')
+# addDefaultTrimmedJets(SeqPHYS,"PHYS",dotruth=add_largeR_truth_jets)
+
+# Add large-R jet truth labeling
+# if (DerivationFrameworkIsMonteCarlo):
+#   addJetTruthLabel(jetalg="AntiKt10LCTopoTrimmedPtFrac5SmallR20",sequence=SeqPHYS,algname="JetTruthLabelingAlg",labelname="R10TruthLabel_R21Consolidated")
+
+# addQGTaggerTool(jetalg="AntiKt4EMTopo",sequence=SeqPHYS,algname="QGTaggerToolAlg")
+# addQGTaggerTool(jetalg="AntiKt4EMPFlow",sequence=SeqPHYS,algname="QGTaggerToolPFAlg")
+
+# fJVT
+# getPFlowfJVT(jetalg='AntiKt4EMPFlow',sequence=SeqPHYS, algname='PHYSJetForwardPFlowJvtToolAlg')
+
+#====================================================================
+# Add our sequence to the top sequence
+#====================================================================
+# Ideally, this should come at the end of the job, but the tau additions
+# below make it such that we need it here
+DerivationFrameworkJob += SeqPHYS
+
+#====================================================================
+# Tau   
+#====================================================================
+
+# Schedule low-pt di-tau reconstruction (needs AntiKt2PV0TrackJets)
+# from DerivationFrameworkTau.TauCommon import addDiTauLowPt
+# addDiTauLowPt()
+
+# Low-pt di-tau thinning
+# from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__GenericObjectThinning
+# PHYSDiTauLowPtThinningTool = DerivationFramework__GenericObjectThinning(name            = "PHYSDiTauLowPtThinningTool",
+#                                                                         ThinningService = PHYSThinningHelper.ThinningSvc(),
+#                                                                         ContainerName   = "DiTauJetsLowPt",
+#                                                                         SelectionString = "DiTauJetsLowPt.nSubjets > 1")
+# ToolSvc += PHYSDiTauLowPtThinningTool
+# thinningTools.append(PHYSDiTauLowPtThinningTool)
+
+# ID tracks associated with low-pt ditau
+# PHYSDiTauLowPtTPThinningTool = DerivationFramework__DiTauTrackParticleThinning(name                    = "PHYSDiTauLowPtTPThinningTool",
+#                                                                                ThinningService         = PHYSThinningHelper.ThinningSvc(),
+#                                                                                DiTauKey                = "DiTauJetsLowPt",
+#                                                                                InDetTrackParticlesKey  = "InDetTrackParticles",
+#                                                                                SelectionString         = "DiTauJetsLowPt.nSubjets > 1")
+# ToolSvc += PHYSDiTauLowPtTPThinningTool
+# thinningTools.append(PHYSDiTauLowPtTPThinningTool)
+
+#====================================================================
+# CREATE THE DERIVATION KERNEL ALGORITHM   
+#====================================================================
+# Add the kernel for thinning (requires the objects be defined)
+from DerivationFrameworkCore.DerivationFrameworkCoreConf import DerivationFramework__DerivationKernel
+DerivationFrameworkJob += CfgMgr.DerivationFramework__DerivationKernel("PHYSKernel",
+                                                                       ThinningTools = thinningTools)
+
+
+#====================================================================
+# FLAVOUR TAGGING   
+#====================================================================
+# Create variable-R trackjets and dress AntiKt10LCTopo with ghost VR-trkjet 
+# addVRJets(SeqPHYS)
+# addVRJets(SeqPHYS, training='201903')
+#addVRJetsTCC(DerivationFrameworkJob, "AntiKtVR30Rmax4Rmin02Track", "GhostVR30Rmax4Rmin02TrackJet",
+#             VRJetAlg="AntiKt", VRJetRadius=0.4, VRJetInputs="pv0track",
+#             ghostArea = 0 , ptmin = 2000, ptminFilter = 2000,
+#             variableRMinRadius = 0.02, variableRMassScale = 30000, calibOpt = "none")
+# add xbb taggers
+# from DerivationFrameworkFlavourTag.HbbCommon import addRecommendedXbbTaggers
+# addRecommendedXbbTaggers(SeqPHYS, ToolSvc)
+
+# FlavorTagInit(JetCollections  = [ 'AntiKt4EMTopoJets','AntiKt4EMPFlowJets'], Sequencer = SeqPHYS)
+
+#====================================================================
+# TC-LVT Vertices 
+#====================================================================
+
+# from SoftBVrtClusterTool.SoftBVrtConfig import addSoftBVrt
+# addSoftBVrt(SeqPHYS,'Loose')
+# addSoftBVrt(SeqPHYS,'Medium')
+# addSoftBVrt(SeqPHYS,'Tight')
+
+#====================================================================
+# CONTENTS   
+#====================================================================
+from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
+PHYSSlimmingHelper = SlimmingHelper("PHYSSlimmingHelper")
+
+PHYSSlimmingHelper.SmartCollections = ["Electrons",
+                                       "Photons",
+                                       "Muons",
+                                       "PrimaryVertices",
+                                       "InDetTrackParticles",
+                                       "AntiKt4EMTopoJets",
+                                       "AntiKt4EMPFlowJets",
+                                       #"BTagging_AntiKt4EMTopo_201810",
+                                       #"BTagging_AntiKt4EMPFlow_201810",
+                                       #"BTagging_AntiKt4EMPFlow_201903",
+                                       #"MET_Baseline_AntiKt4EMTopo",
+                                       #"MET_Baseline_AntiKt4EMPFlow",
+                                       "TauJets",
+                                       #"DiTauJets",
+                                       #"DiTauJetsLowPt",
+                                       #"AntiKt10LCTopoTrimmedPtFrac5SmallR20Jets",
+                                       #"AntiKtVR30Rmax4Rmin02TrackJets_BTagging201903",
+                                       #"BTagging_AntiKtVR30Rmax4Rmin02Track_201903"
+                                      ]
+
+excludedVertexAuxData = "-vxTrackAtVertex.-MvfFitInfo.-isInitialized.-VTAV"
+StaticContent = []
+StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Tight_Vertices"]
+StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Tight_VerticesAux." + excludedVertexAuxData]
+StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Medium_Vertices"]
+StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Medium_VerticesAux." + excludedVertexAuxData]
+StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Loose_Vertices"]
+StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Loose_VerticesAux." + excludedVertexAuxData]
+
+PHYSSlimmingHelper.StaticContent = StaticContent
+
+# Trigger content
+PHYSSlimmingHelper.IncludeTriggerNavigation = False
+PHYSSlimmingHelper.IncludeJetTriggerContent = False
+PHYSSlimmingHelper.IncludeMuonTriggerContent = False
+PHYSSlimmingHelper.IncludeEGammaTriggerContent = False
+PHYSSlimmingHelper.IncludeJetTauEtMissTriggerContent = False
+PHYSSlimmingHelper.IncludeTauTriggerContent = False
+PHYSSlimmingHelper.IncludeEtMissTriggerContent = False
+PHYSSlimmingHelper.IncludeBJetTriggerContent = False
+PHYSSlimmingHelper.IncludeBPhysTriggerContent = False
+PHYSSlimmingHelper.IncludeMinBiasTriggerContent = False
+
+# Add the jet containers to the stream (defined in JetCommon if import needed)
+#addJetOutputs(PHYSSlimmingHelper,["PHYS"])
+
+# Truth containers
+if DerivationFrameworkIsMonteCarlo:
+   PHYSSlimmingHelper.AppendToDictionary = {'TruthEvents':'xAOD::TruthEventContainer','TruthEventsAux':'xAOD::TruthEventAuxContainer',
+                                            'MET_Truth':'xAOD::MissingETContainer','MET_TruthAux':'xAOD::MissingETAuxContainer',
+                                            'TruthElectrons':'xAOD::TruthParticleContainer','TruthElectronsAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthMuons':'xAOD::TruthParticleContainer','TruthMuonsAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthPhotons':'xAOD::TruthParticleContainer','TruthPhotonsAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthTaus':'xAOD::TruthParticleContainer','TruthTausAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthNeutrinos':'xAOD::TruthParticleContainer','TruthNeutrinosAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthBSM':'xAOD::TruthParticleContainer','TruthBSMAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthBoson':'xAOD::TruthParticleContainer','TruthBosonAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthTop':'xAOD::TruthParticleContainer','TruthTopAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthForwardProtons':'xAOD::TruthParticleContainer','TruthForwardProtonsAux':'xAOD::TruthParticleAuxContainer',
+                                            'BornLeptons':'xAOD::TruthParticleContainer','BornLeptonsAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthBosonsWithDecayParticles':'xAOD::TruthParticleContainer','TruthBosonsWithDecayParticlesAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthBosonsWithDecayVertices':'xAOD::TruthVertexContainer','TruthBosonsWithDecayVerticesAux':'xAOD::TruthVertexAuxContainer',
+                                            'TruthBSMWithDecayParticles':'xAOD::TruthParticleContainer','TruthBSMWithDecayParticlesAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthBSMWithDecayVertices':'xAOD::TruthVertexContainer','TruthBSMWithDecayVerticesAux':'xAOD::TruthVertexAuxContainer',
+                                            'HardScatterParticles':'xAOD::TruthParticleContainer','HardScatterParticlesAux':'xAOD::TruthParticleAuxContainer',
+                                            'HardScatterVertices':'xAOD::TruthVertexContainer','HardScatterVerticesAux':'xAOD::TruthVertexAuxContainer',
+                                            'TruthHFWithDecayParticles':'xAOD::TruthParticleContainer','TruthHFWithDecayParticlesAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthHFWithDecayVertices':'xAOD::TruthVertexContainer','TruthHFWithDecayVerticesAux':'xAOD::TruthVertexAuxContainer',
+                                            'TruthCharm':'xAOD::TruthParticleContainer','TruthCharmAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthPrimaryVertices':'xAOD::TruthVertexContainer','TruthPrimaryVerticesAux':'xAOD::TruthVertexAuxContainer',
+                                            'AntiKt10TruthTrimmedPtFrac5SmallR20Jets':'xAOD::JetContainer', 'AntiKt10TruthTrimmedPtFrac5SmallR20JetsAux':'xAOD::JetAuxContainer'
+                                           }
+
+   # from DerivationFrameworkMCTruth.MCTruthCommon import addTruth3ContentToSlimmerTool
+   # addTruth3ContentToSlimmerTool(PHYSSlimmingHelper)
+   # PHYSSlimmingHelper.AllVariables += ['TruthHFWithDecayParticles','TruthHFWithDecayVertices','TruthCharm']
+
+PHYSSlimmingHelper.ExtraVariables += ["AntiKt10TruthTrimmedPtFrac5SmallR20Jets.Tau1_wta.Tau2_wta.Tau3_wta.D2.GhostBHadronsFinalCount",
+                                      "Electrons.TruthLink",
+                                      "Muons.TruthLink",
+                                      "Photons.TruthLink",
+                                      "AntiKt2PV0TrackJets.pt.eta.phi.m",
+                                      "AntiKt4EMTopoJets.DFCommonJets_QGTagger_truthjet_nCharged.DFCommonJets_QGTagger_truthjet_pt.DFCommonJets_QGTagger_truthjet_eta.DFCommonJets_QGTagger_NTracks.DFCommonJets_QGTagger_TracksWidth.DFCommonJets_QGTagger_TracksC1.PartonTruthLabelID",
+                                      "AntiKt4EMPFlowJets.DFCommonJets_QGTagger_truthjet_nCharged.DFCommonJets_QGTagger_truthjet_pt.DFCommonJets_QGTagger_truthjet_eta.DFCommonJets_QGTagger_NTracks.DFCommonJets_QGTagger_TracksWidth.DFCommonJets_QGTagger_TracksC1.PartonTruthLabelID.DFCommonJets_fJvt",
+                                      "TruthPrimaryVertices.t.x.y.z"]
+
+
+# Final construction of output stream
+PHYSSlimmingHelper.AppendContentToStream(PHYSStream)
+
diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/share/PHYS2.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/share/PHYS2.py
new file mode 100644
index 00000000000..4a7a7c73ebd
--- /dev/null
+++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/share/PHYS2.py
@@ -0,0 +1,365 @@
+# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+
+#====================================================================
+# DAOD_PHYS2.py
+# This defines DAOD_PHYS2, an unskimmed DAOD format for Run 3.
+# It is a clone of DAOD_PHYS but also includes lossy compression
+# In the end it will be merged back into DAOD_PHYS
+# It requires the reductionConf flag PHYS2 in Reco_tf.py   
+#====================================================================
+
+from DerivationFrameworkCore.DerivationFrameworkMaster import *
+from DerivationFrameworkInDet.InDetCommon import *
+from DerivationFrameworkJetEtMiss.JetCommon import *
+from DerivationFrameworkJetEtMiss.ExtendedJetCommon import *
+from DerivationFrameworkJetEtMiss.METCommon import *
+from DerivationFrameworkEGamma.EGammaCommon import *
+from DerivationFrameworkEGamma.ElectronsCPDetailedContent import *
+from DerivationFrameworkMuons.MuonsCommon import *
+from DerivationFrameworkCore.WeightMetadata import *
+from DerivationFrameworkFlavourTag.FlavourTagCommon import FlavorTagInit
+from DerivationFrameworkFlavourTag.HbbCommon import *
+from TriggerMenu.api.TriggerAPI import TriggerAPI
+from TriggerMenu.api.TriggerEnums import TriggerPeriod, TriggerType
+from DerivationFrameworkTrigger.TriggerMatchingHelper import TriggerMatchingHelper
+
+#====================================================================
+# SET UP STREAM   
+#====================================================================
+streamName = derivationFlags.WriteDAOD_PHYS2Stream.StreamName
+fileName   = buildFileName( derivationFlags.WriteDAOD_PHYS2Stream )
+PHYS2Stream = MSMgr.NewPoolRootStream( streamName, fileName )
+PHYS2Stream.AcceptAlgs(["PHYS2Kernel"])
+
+### Thinning and augmentation tools lists
+from DerivationFrameworkCore.ThinningHelper import ThinningHelper
+PHYS2ThinningHelper = ThinningHelper( "PHYS2ThinningHelper" )
+PHYS2ThinningHelper.AppendToStream( PHYS2Stream )
+thinningTools       = []
+AugmentationTools   = []
+
+# Special sequence 
+SeqPHYS2 = CfgMgr.AthSequencer("SeqPHYS2")
+DerivationFrameworkJob += SeqPHYS2
+
+#====================================================================
+# Truth collections
+#====================================================================
+if (DerivationFrameworkIsMonteCarlo):
+   from DerivationFrameworkMCTruth.MCTruthCommon import addStandardTruthContents,addMiniTruthCollectionLinks,addHFAndDownstreamParticles,addPVCollection
+   import DerivationFrameworkHiggs.TruthCategories
+   # Add charm quark collection
+   from DerivationFrameworkMCTruth.DerivationFrameworkMCTruthConf import DerivationFramework__TruthCollectionMaker
+   PHYS2TruthCharmTool = DerivationFramework__TruthCollectionMaker(name                    = "PHYS2TruthCharmTool",
+                                                                  NewCollectionName       = "TruthCharm",
+                                                                  KeepNavigationInfo      = False,
+                                                                  ParticleSelectionString = "(abs(TruthParticles.pdgId) == 4)",
+                                                                  Do_Compress             = True)
+   ToolSvc += PHYS2TruthCharmTool
+   from DerivationFrameworkCore.DerivationFrameworkCoreConf import DerivationFramework__CommonAugmentation
+   SeqPHYS2 += CfgMgr.DerivationFramework__CommonAugmentation("PHYS2TruthCharmKernel",AugmentationTools=[PHYS2TruthCharmTool])
+   # Add HF particles
+   addHFAndDownstreamParticles(SeqPHYS2)
+   # Add standard truth
+   addStandardTruthContents(SeqPHYS2,prefix='PHYS2_')
+   # Update to include charm quarks and HF particles - require a separate instance to be train safe
+   from DerivationFrameworkMCTruth.DerivationFrameworkMCTruthConf import DerivationFramework__TruthNavigationDecorator
+   PHYS2TruthNavigationDecorator = DerivationFramework__TruthNavigationDecorator( name="PHYS2TruthNavigationDecorator",
+          InputCollections=["TruthElectrons", "TruthMuons", "TruthPhotons", "TruthTaus", "TruthNeutrinos", "TruthBSM", "TruthBottom", "TruthTop", "TruthBoson","TruthCharm","TruthHFWithDecayParticles"])
+   ToolSvc += PHYS2TruthNavigationDecorator
+   SeqPHYS2.PHYS2_MCTruthNavigationDecoratorKernel.AugmentationTools = [PHYS2TruthNavigationDecorator]
+   # Re-point links on reco objects
+   addMiniTruthCollectionLinks(SeqPHYS2)
+   addPVCollection(SeqPHYS2)
+   # Set appropriate truth jet collection for tau truth matching
+   ToolSvc.DFCommonTauTruthMatchingTool.TruthJetContainerName = "AntiKt4TruthDressedWZJets"
+   # SUSY signal
+   from DerivationFrameworkSUSY.DecorateSUSYProcess import IsSUSYSignal
+   if IsSUSYSignal():
+      from DerivationFrameworkSUSY.SUSYWeightMetadata import *
+   # Add sumOfWeights metadata for LHE3 multiweights =======
+   from DerivationFrameworkCore.LHE3WeightMetadata import *
+
+#====================================================================
+# TRIGGER CONTENT   
+#====================================================================
+# See https://twiki.cern.ch/twiki/bin/view/Atlas/TriggerAPI
+# Get single and multi mu, e, photon triggers
+# Jet, tau, multi-object triggers not available in the matching code
+allperiods = TriggerPeriod.y2015 | TriggerPeriod.y2016 | TriggerPeriod.y2017 | TriggerPeriod.y2018 | TriggerPeriod.future2e34
+trig_el  = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.el,  livefraction=0.8)
+trig_mu  = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.mu,  livefraction=0.8)
+trig_g   = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.g,   livefraction=0.8)
+trig_tau = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.tau, livefraction=0.8)
+# Add cross-triggers for some sets
+trig_em = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.el, additionalTriggerType=TriggerType.mu,  livefraction=0.8)
+trig_et = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.el, additionalTriggerType=TriggerType.tau, livefraction=0.8)
+trig_mt = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.mu, additionalTriggerType=TriggerType.tau, livefraction=0.8)
+# Note that this seems to pick up both isolated and non-isolated triggers already, so no need for extra grabs
+
+# Merge and remove duplicates
+trigger_names_full = list(set(trig_el+trig_mu+trig_g+trig_tau+trig_em+trig_et+trig_mt))
+
+# Now reduce the list...
+from RecExConfig.InputFilePeeker import inputFileSummary
+trigger_names = []
+for trig_item in inputFileSummary['metadata']['/TRIGGER/HLT/Menu']:
+    if not 'ChainName' in trig_item: continue
+    if trig_item['ChainName'] in trigger_names_full: trigger_names += [ trig_item['ChainName'] ]
+
+# Create trigger matching decorations
+trigmatching_helper = TriggerMatchingHelper(
+        trigger_list = trigger_names, add_to_df_job=True)
+
+#====================================================================
+# INNER DETECTOR TRACK THINNING
+#====================================================================
+# See recommedations here: 
+# https://twiki.cern.ch/twiki/bin/viewauth/AtlasProtected/DaodRecommendations
+
+# Inner detector group recommendations for indet tracks in analysis
+PHYS2_thinning_expression = "InDetTrackParticles.DFCommonTightPrimary && abs(DFCommonInDetTrackZ0AtPV)*sin(InDetTrackParticles.theta) < 3.0*mm && InDetTrackParticles.pt > 10*GeV"
+from DerivationFrameworkInDet.DerivationFrameworkInDetConf import DerivationFramework__TrackParticleThinning
+PHYS2TrackParticleThinningTool = DerivationFramework__TrackParticleThinning(name                    = "PHYS2TrackParticleThinningTool",
+                                                                           ThinningService         = PHYS2ThinningHelper.ThinningSvc(),
+                                                                           SelectionString         = PHYS2_thinning_expression,
+                                                                           InDetTrackParticlesKey  = "InDetTrackParticles",
+                                                                           ApplyAnd                = False)
+
+ToolSvc += PHYS2TrackParticleThinningTool
+thinningTools.append(PHYS2TrackParticleThinningTool)
+
+# Include inner detector tracks associated with muons
+from DerivationFrameworkInDet.DerivationFrameworkInDetConf import DerivationFramework__MuonTrackParticleThinning
+PHYS2MuonTPThinningTool = DerivationFramework__MuonTrackParticleThinning(name                    = "PHYS2MuonTPThinningTool",
+                                                                        ThinningService         = PHYS2ThinningHelper.ThinningSvc(),
+                                                                        MuonKey                 = "Muons",
+                                                                        InDetTrackParticlesKey  = "InDetTrackParticles",
+                                                                        ApplyAnd = False)
+ToolSvc += PHYS2MuonTPThinningTool
+thinningTools.append(PHYS2MuonTPThinningTool)
+
+# TauJets thinning
+tau_thinning_expression = "(TauJets.ptFinalCalib >= 13.*GeV) && (TauJets.nTracks>=1) && (TauJets.nTracks<=3) && (TauJets.RNNJetScoreSigTrans>0.01)"
+from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__GenericObjectThinning
+PHYS2TauJetsThinningTool = DerivationFramework__GenericObjectThinning(name            = "PHYS2TauJetsThinningTool",
+                                                                     ThinningService = PHYS2ThinningHelper.ThinningSvc(),
+                                                                     ContainerName   = "TauJets",
+                                                                     SelectionString = tau_thinning_expression)
+ToolSvc += PHYS2TauJetsThinningTool
+thinningTools.append(PHYS2TauJetsThinningTool)
+
+# Only keep tau tracks (and associated ID tracks) classified as charged tracks
+from DerivationFrameworkInDet.DerivationFrameworkInDetConf import DerivationFramework__TauTrackParticleThinning
+PHYS2TauTPThinningTool = DerivationFramework__TauTrackParticleThinning(name                   = "PHYS2TauTPThinningTool",
+                                                                      ThinningService        = PHYS2ThinningHelper.ThinningSvc(),
+                                                                      TauKey                 = "TauJets",
+                                                                      InDetTrackParticlesKey = "InDetTrackParticles",
+                                                                      SelectionString        = tau_thinning_expression,
+                                                                      ApplyAnd               = False,
+                                                                      DoTauTracksThinning    = True,
+                                                                      TauTracksKey           = "TauTracks")
+ToolSvc += PHYS2TauTPThinningTool
+thinningTools.append(PHYS2TauTPThinningTool)
+
+# ID tracks associated with high-pt di-tau
+from DerivationFrameworkInDet.DerivationFrameworkInDetConf import DerivationFramework__DiTauTrackParticleThinning
+PHYS2DiTauTPThinningTool = DerivationFramework__DiTauTrackParticleThinning(name                    = "PHYS2DiTauTPThinningTool",
+                                                                          ThinningService         = PHYS2ThinningHelper.ThinningSvc(),
+                                                                          DiTauKey                = "DiTauJets",
+                                                                          InDetTrackParticlesKey  = "InDetTrackParticles")
+ToolSvc += PHYS2DiTauTPThinningTool
+thinningTools.append(PHYS2DiTauTPThinningTool)
+
+#====================================================================
+# JET/MET   
+#====================================================================
+
+OutputJets["PHYS2"] = ["AntiKt10LCTopoTrimmedPtFrac5SmallR20Jets"]
+reducedJetList = ["AntiKt2PV0TrackJets","AntiKt4PV0TrackJets"]
+
+if (DerivationFrameworkIsMonteCarlo):
+   OutputJets["PHYS2"].append("AntiKt10TruthTrimmedPtFrac5SmallR20Jets")
+
+replaceAODReducedJets(reducedJetList,SeqPHYS2,"PHYS2")
+addDefaultTrimmedJets(SeqPHYS2,"PHYS2",dotruth=DerivationFrameworkIsMonteCarlo)
+
+# Add large-R jet truth labeling
+if (DerivationFrameworkIsMonteCarlo):
+   addJetTruthLabel(jetalg="AntiKt10LCTopoTrimmedPtFrac5SmallR20",sequence=SeqPHYS2,algname="JetTruthLabelingAlg",labelname="R10TruthLabel_R21Consolidated")
+
+addQGTaggerTool(jetalg="AntiKt4EMTopo",sequence=SeqPHYS2,algname="QGTaggerToolAlg")
+addQGTaggerTool(jetalg="AntiKt4EMPFlow",sequence=SeqPHYS2,algname="QGTaggerToolPFAlg")
+
+# fJVT
+getPFlowfJVT(jetalg='AntiKt4EMPFlow',sequence=DerivationFrameworkJob, algname='PHYS2JetForwardPFlowJvtToolAlg')
+
+#====================================================================
+# Tau   
+#====================================================================
+
+# Schedule low-pt di-tau reconstruction (needs AntiKt2PV0TrackJets)
+from DerivationFrameworkTau.TauCommon import addDiTauLowPt
+addDiTauLowPt()
+
+# Low-pt di-tau thinning
+from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__GenericObjectThinning
+PHYS2DiTauLowPtThinningTool = DerivationFramework__GenericObjectThinning(name            = "PHYS2DiTauLowPtThinningTool",
+                                                                        ThinningService = PHYS2ThinningHelper.ThinningSvc(),
+                                                                        ContainerName   = "DiTauJetsLowPt",
+                                                                        SelectionString = "DiTauJetsLowPt.nSubjets > 1")
+ToolSvc += PHYS2DiTauLowPtThinningTool
+thinningTools.append(PHYS2DiTauLowPtThinningTool)
+
+# ID tracks associated with low-pt ditau
+PHYS2DiTauLowPtTPThinningTool = DerivationFramework__DiTauTrackParticleThinning(name                    = "PHYS2DiTauLowPtTPThinningTool",
+                                                                               ThinningService         = PHYS2ThinningHelper.ThinningSvc(),
+                                                                               DiTauKey                = "DiTauJetsLowPt",
+                                                                               InDetTrackParticlesKey  = "InDetTrackParticles",
+                                                                               SelectionString         = "DiTauJetsLowPt.nSubjets > 1")
+ToolSvc += PHYS2DiTauLowPtTPThinningTool
+thinningTools.append(PHYS2DiTauLowPtTPThinningTool)
+
+#====================================================================
+# CREATE THE DERIVATION KERNEL ALGORITHM   
+#====================================================================
+
+from DerivationFrameworkCore.DerivationFrameworkCoreConf import DerivationFramework__DerivationKernel
+DerivationFrameworkJob += CfgMgr.DerivationFramework__DerivationKernel("PHYS2Kernel",
+                                                                       ThinningTools = thinningTools)
+
+
+#====================================================================
+# FLAVOUR TAGGING   
+#====================================================================
+# Create variable-R trackjets and dress AntiKt10LCTopo with ghost VR-trkjet 
+addVRJets(SeqPHYS2)
+addVRJets(SeqPHYS2, training='201903')
+#addVRJetsTCC(DerivationFrameworkJob, "AntiKtVR30Rmax4Rmin02Track", "GhostVR30Rmax4Rmin02TrackJet",
+#             VRJetAlg="AntiKt", VRJetRadius=0.4, VRJetInputs="pv0track",
+#             ghostArea = 0 , ptmin = 2000, ptminFilter = 2000,
+#             variableRMinRadius = 0.02, variableRMassScale = 30000, calibOpt = "none")
+# add xbb taggers
+from DerivationFrameworkFlavourTag.HbbCommon import addRecommendedXbbTaggers
+addRecommendedXbbTaggers(SeqPHYS2, ToolSvc)
+
+FlavorTagInit(JetCollections  = [ 'AntiKt4EMTopoJets','AntiKt4EMPFlowJets'], Sequencer = SeqPHYS2)
+
+#====================================================================
+# TC-LVT Vertices 
+#====================================================================
+
+from SoftBVrtClusterTool.SoftBVrtConfig import addSoftBVrt
+addSoftBVrt(DerivationFrameworkJob,'Loose')
+addSoftBVrt(DerivationFrameworkJob,'Medium')
+addSoftBVrt(DerivationFrameworkJob,'Tight')
+
+#====================================================================
+# CONTENTS   
+#====================================================================
+from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
+PHYS2SlimmingHelper = SlimmingHelper("PHYS2SlimmingHelper")
+
+PHYS2SlimmingHelper.SmartCollections = ["Electrons",
+                                       "Photons",
+                                       "Muons",
+                                       "PrimaryVertices",
+                                       "InDetTrackParticles",
+                                       "AntiKt4EMTopoJets",
+                                       "AntiKt4EMPFlowJets",
+                                       "BTagging_AntiKt4EMTopo_201810",
+                                       "BTagging_AntiKt4EMPFlow_201810",
+                                       "BTagging_AntiKt4EMPFlow_201903",
+                                       "MET_Baseline_AntiKt4EMTopo",
+                                       "MET_Baseline_AntiKt4EMPFlow",
+                                       "TauJets",
+                                       "DiTauJets",
+                                       "DiTauJetsLowPt",
+                                       "AntiKt10LCTopoTrimmedPtFrac5SmallR20Jets",
+                                       "AntiKtVR30Rmax4Rmin02TrackJets_BTagging201903",
+                                       "BTagging_AntiKtVR30Rmax4Rmin02Track_201903"
+                                      ]
+
+excludedVertexAuxData = "-vxTrackAtVertex.-MvfFitInfo.-isInitialized.-VTAV"
+StaticContent = []
+StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Tight_Vertices"]
+StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Tight_VerticesAux." + excludedVertexAuxData]
+StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Medium_Vertices"]
+StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Medium_VerticesAux." + excludedVertexAuxData]
+StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Loose_Vertices"]
+StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Loose_VerticesAux." + excludedVertexAuxData]
+
+PHYS2SlimmingHelper.StaticContent = StaticContent
+
+# Trigger content
+PHYS2SlimmingHelper.IncludeTriggerNavigation = False
+PHYS2SlimmingHelper.IncludeJetTriggerContent = False
+PHYS2SlimmingHelper.IncludeMuonTriggerContent = False
+PHYS2SlimmingHelper.IncludeEGammaTriggerContent = False
+PHYS2SlimmingHelper.IncludeJetTauEtMissTriggerContent = False
+PHYS2SlimmingHelper.IncludeTauTriggerContent = False
+PHYS2SlimmingHelper.IncludeEtMissTriggerContent = False
+PHYS2SlimmingHelper.IncludeBJetTriggerContent = False
+PHYS2SlimmingHelper.IncludeBPhysTriggerContent = False
+PHYS2SlimmingHelper.IncludeMinBiasTriggerContent = False
+
+# Add the jet containers to the stream (defined in JetCommon if import needed)
+#addJetOutputs(PHYS2SlimmingHelper,["PHYS2"])
+
+# Truth containers
+if DerivationFrameworkIsMonteCarlo:
+   PHYS2SlimmingHelper.AppendToDictionary = {'TruthEvents':'xAOD::TruthEventContainer','TruthEventsAux':'xAOD::TruthEventAuxContainer',
+                                            'MET_Truth':'xAOD::MissingETContainer','MET_TruthAux':'xAOD::MissingETAuxContainer',
+                                            'TruthElectrons':'xAOD::TruthParticleContainer','TruthElectronsAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthMuons':'xAOD::TruthParticleContainer','TruthMuonsAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthPhotons':'xAOD::TruthParticleContainer','TruthPhotonsAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthTaus':'xAOD::TruthParticleContainer','TruthTausAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthNeutrinos':'xAOD::TruthParticleContainer','TruthNeutrinosAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthBSM':'xAOD::TruthParticleContainer','TruthBSMAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthBoson':'xAOD::TruthParticleContainer','TruthBosonAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthTop':'xAOD::TruthParticleContainer','TruthTopAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthForwardProtons':'xAOD::TruthParticleContainer','TruthForwardProtonsAux':'xAOD::TruthParticleAuxContainer',
+                                            'BornLeptons':'xAOD::TruthParticleContainer','BornLeptonsAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthBosonsWithDecayParticles':'xAOD::TruthParticleContainer','TruthBosonsWithDecayParticlesAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthBosonsWithDecayVertices':'xAOD::TruthVertexContainer','TruthBosonsWithDecayVerticesAux':'xAOD::TruthVertexAuxContainer',
+                                            'TruthBSMWithDecayParticles':'xAOD::TruthParticleContainer','TruthBSMWithDecayParticlesAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthBSMWithDecayVertices':'xAOD::TruthVertexContainer','TruthBSMWithDecayVerticesAux':'xAOD::TruthVertexAuxContainer',
+                                            'HardScatterParticles':'xAOD::TruthParticleContainer','HardScatterParticlesAux':'xAOD::TruthParticleAuxContainer',
+                                            'HardScatterVertices':'xAOD::TruthVertexContainer','HardScatterVerticesAux':'xAOD::TruthVertexAuxContainer',
+                                            'TruthHFWithDecayParticles':'xAOD::TruthParticleContainer','TruthHFWithDecayParticlesAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthHFWithDecayVertices':'xAOD::TruthVertexContainer','TruthHFWithDecayVerticesAux':'xAOD::TruthVertexAuxContainer',
+                                            'TruthCharm':'xAOD::TruthParticleContainer','TruthCharmAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthPrimaryVertices':'xAOD::TruthVertexContainer','TruthPrimaryVerticesAux':'xAOD::TruthVertexAuxContainer',
+                                            'AntiKt10TruthTrimmedPtFrac5SmallR20Jets':'xAOD::JetContainer', 'AntiKt10TruthTrimmedPtFrac5SmallR20JetsAux':'xAOD::JetAuxContainer',
+                                            'AntiKtVR30Rmax4Rmin02TrackJets_BTagging201903':'xAOD::JetContainer','BTagging_AntiKtVR30Rmax4Rmin02Track_201903':'xAOD::BTagging'
+                                           }
+
+   from DerivationFrameworkMCTruth.MCTruthCommon import addTruth3ContentToSlimmerTool
+   addTruth3ContentToSlimmerTool(PHYS2SlimmingHelper)
+   PHYS2SlimmingHelper.AllVariables += ['TruthHFWithDecayParticles','TruthHFWithDecayVertices','TruthCharm']
+
+PHYS2SlimmingHelper.ExtraVariables += ["AntiKt10TruthTrimmedPtFrac5SmallR20Jets.Tau1_wta.Tau2_wta.Tau3_wta.D2.GhostBHadronsFinalCount",
+                                      "Electrons.TruthLink",
+                                      "Muons.TruthLink",
+                                      "Photons.TruthLink",
+                                      "AntiKt2PV0TrackJets.pt.eta.phi.m",
+                                      "AntiKt4EMTopoJets.DFCommonJets_QGTagger_truthjet_nCharged.DFCommonJets_QGTagger_truthjet_pt.DFCommonJets_QGTagger_truthjet_eta.DFCommonJets_QGTagger_NTracks.DFCommonJets_QGTagger_TracksWidth.DFCommonJets_QGTagger_TracksC1.PartonTruthLabelID",
+                                      "AntiKt4EMPFlowJets.DFCommonJets_QGTagger_truthjet_nCharged.DFCommonJets_QGTagger_truthjet_pt.DFCommonJets_QGTagger_truthjet_eta.DFCommonJets_QGTagger_NTracks.DFCommonJets_QGTagger_TracksWidth.DFCommonJets_QGTagger_TracksC1.PartonTruthLabelID.DFCommonJets_fJvt",
+                                      "TruthPrimaryVertices.t.x.y.z"]
+
+# Float compression
+from DerivationFrameworkPhys.PHYS_MCCompressionList import PHYS_MCCompressionList
+from DerivationFrameworkPhys.PHYS_DataCompressionList import PHYS_DataCompressionList
+PHYS2_compression_list = []
+if (DerivationFrameworkIsMonteCarlo): PHYS2_compression_list = PHYS_MCCompressionList 
+else: PHYS2_compression_list = PHYS_DataCompressionList
+PHYS2_SeqCompress = CfgMgr.AthSequencer("PHYS2_SeqCompress")
+DerivationFrameworkJob += PHYS2_SeqCompress
+PHYS2_SeqCompress += CfgMgr.DerivationFramework__FloatCompressionAlg("CompressFloatCompression", SGKeys=PHYS2_compression_list)
+
+# Add trigger matching
+trigmatching_helper.add_to_slimming(PHYS2SlimmingHelper)
+
+# Final construction of output stream
+PHYS2SlimmingHelper.AppendContentToStream(PHYS2Stream)
+
diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/share/PHYSLITE.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/share/PHYSLITE.py
new file mode 100644
index 00000000000..3a081d24803
--- /dev/null
+++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/share/PHYSLITE.py
@@ -0,0 +1,481 @@
+# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+#********************************************************************
+# PHYSLITE.py 
+# reductionConf flag PHYSLITE in Reco_tf.py   
+#********************************************************************
+
+from AthenaCommon import Logging
+nanolog = Logging.logging.getLogger('PHYSLITE')
+
+from DerivationFrameworkCore.DerivationFrameworkMaster import *
+from DerivationFrameworkInDet.InDetCommon import *
+from DerivationFrameworkJetEtMiss.JetCommon import *
+from DerivationFrameworkJetEtMiss.ExtendedJetCommon import *
+from DerivationFrameworkJetEtMiss.METCommon import *
+from DerivationFrameworkEGamma.EGammaCommon import *
+from DerivationFrameworkEGamma.ElectronsCPDetailedContent import *
+from DerivationFrameworkMuons.MuonsCommon import *
+from DerivationFrameworkCore.WeightMetadata import *
+from DerivationFrameworkFlavourTag.FlavourTagCommon import FlavorTagInit
+from DerivationFrameworkFlavourTag.HbbCommon import *
+from TriggerMenu.api.TriggerAPI import TriggerAPI
+from TriggerMenu.api.TriggerEnums import TriggerPeriod, TriggerType
+from DerivationFrameworkTrigger.TriggerMatchingHelper import TriggerMatchingHelper
+
+#====================================================================
+# SET UP STREAM   
+#====================================================================
+streamName = derivationFlags.WriteDAOD_PHYSLITEStream.StreamName
+fileName   = buildFileName( derivationFlags.WriteDAOD_PHYSLITEStream )
+PHYSLITEStream = MSMgr.NewPoolRootStream( streamName, fileName )
+PHYSLITEStream.AcceptAlgs(["PHYSLITEKernel"])
+
+### Thinning and augmentation tools lists
+from DerivationFrameworkCore.ThinningHelper import ThinningHelper
+PHYSLITEThinningHelper = ThinningHelper( "PHYSLITEThinningHelper" )
+PHYSLITEThinningHelper.AppendToStream( PHYSLITEStream )
+thinningTools       = []
+AugmentationTools   = []
+
+# Special sequence 
+SeqPHYSLITE = CfgMgr.AthSequencer("SeqPHYSLITE")
+
+#====================================================================
+# TRUTH CONTENT
+#====================================================================
+if DerivationFrameworkIsMonteCarlo:
+  from DerivationFrameworkMCTruth.MCTruthCommon import addStandardTruthContents,addPVCollection
+  addStandardTruthContents(SeqPHYSLITE)
+  addPVCollection(SeqPHYSLITE)
+  from DerivationFrameworkMCTruth.HFHadronsCommon import *
+  # Extra classifiers for the Higgs group
+  import DerivationFrameworkHiggs.TruthCategories
+  # Set appropriate truth jet collection for tau truth matching
+  ToolSvc.DFCommonTauTruthMatchingTool.TruthJetContainerName = "AntiKt4TruthDressedWZJets"
+  # Add sumOfWeights metadata for LHE3 multiweights =======
+  from DerivationFrameworkCore.LHE3WeightMetadata import *
+  from DerivationFrameworkSUSY.DecorateSUSYProcess import IsSUSYSignal
+  if IsSUSYSignal():
+     from DerivationFrameworkSUSY.SUSYWeightMetadata import *
+
+#==============================================================================
+# HEAVY FLAVOR DECORATION
+#==============================================================================
+# PhysicsAnalysis/DerivationFramework/DerivationFrameworkTop/trunk/src/TTbarPlusHeavyFlavorFilterTool.cxx
+# PhysicsAnalysis/DerivationFramework/DerivationFrameworkTop/trunk/src/TopHeavyFlavorFilterAugmentation.cxx
+# these are supposed to mimic the TTbarPlusBFilter, TTbarPlusBBFilter, and TTbarPlusCFilter Filters in https://svnweb.cern.ch/trac/atlasoff/browser/Generators/MC15JobOptions/trunk/common/Filters
+if DerivationFrameworkIsMonteCarlo:
+  from DerivationFrameworkTop.DerivationFrameworkTopConf import DerivationFramework__TTbarPlusHeavyFlavorFilterTool
+
+  PHYSLITEttbarBfiltertool = DerivationFramework__TTbarPlusHeavyFlavorFilterTool("PHYSLITETTbarPlusBFilterTool")
+  PHYSLITEttbarBfiltertool.SelectB = True
+  PHYSLITEttbarBfiltertool.BpTMinCut = 5000
+  PHYSLITEttbarBfiltertool.BMultiplicityCut = 1 # >=
+  ToolSvc += PHYSLITEttbarBfiltertool
+
+  PHYSLITEttbarBBfiltertool = DerivationFramework__TTbarPlusHeavyFlavorFilterTool("PHYSLITETTbarPlusBBFilterTool")
+  PHYSLITEttbarBBfiltertool.SelectB = True
+  PHYSLITEttbarBBfiltertool.BpTMinCut = 15000
+  PHYSLITEttbarBBfiltertool.BMultiplicityCut = 2 # >=
+  ToolSvc += PHYSLITEttbarBBfiltertool
+
+  PHYSLITEttbarCfiltertool = DerivationFramework__TTbarPlusHeavyFlavorFilterTool("PHYSLITETTbarPlusCFilterTool")
+  PHYSLITEttbarCfiltertool.SelectC = True
+  PHYSLITEttbarCfiltertool.CpTMinCut = 15000
+  PHYSLITEttbarCfiltertool.CMultiplicityCut = 1 # >=
+  # these two are the default values
+  # B-hadrons have precedence; if one B is found, it won't pass the CFilter
+  PHYSLITEttbarCfiltertool.BpTMinCut = 5000
+  PHYSLITEttbarCfiltertool.BMultiplicityCut = 1 # >=
+  ToolSvc += PHYSLITEttbarCfiltertool
+
+  from DerivationFrameworkTop.DerivationFrameworkTopConf import DerivationFramework__TopHeavyFlavorFilterAugmentation
+  PHYSLITETopHFFilterAugmentation = DerivationFramework__TopHeavyFlavorFilterAugmentation(name = "PHYSLITETopHFFilterAugmentation")
+  PHYSLITETopHFFilterAugmentation.BFilterTool = PHYSLITEttbarBfiltertool
+  PHYSLITETopHFFilterAugmentation.BBFilterTool = PHYSLITEttbarBBfiltertool
+  PHYSLITETopHFFilterAugmentation.CFilterTool = PHYSLITEttbarCfiltertool
+  ToolSvc += PHYSLITETopHFFilterAugmentation
+  AugmentationTools.append(PHYSLITETopHFFilterAugmentation)
+  nanolog.info("PHYSLITETopHFFilterAugmentationTool: {!s}".format(PHYSLITETopHFFilterAugmentation))
+
+#====================================================================
+# THINNING 
+#====================================================================
+
+# Cluster thinning
+from DerivationFrameworkCalo.DerivationFrameworkCaloConf import DerivationFramework__CaloClusterThinning
+
+# Caloclusters associated to electrons
+PHYSLITEElectronClusterThinningTool = DerivationFramework__CaloClusterThinning( name                    = "PHYSLITEElectronClusterThinningTool",
+                                                                                ThinningService         = PHYSLITEThinningHelper.ThinningSvc(),
+                                                                                SGKey                   = "AnalysisElectrons",
+                                                                                CaloClCollectionSGKey   = "egammaClusters",
+                                                                                TopoClCollectionSGKey   = "CaloCalTopoClusters",
+                                                                                #SelectionString         = "Electrons.pt > 7*GeV",
+                                                                                ConeSize                = 0.4)
+ToolSvc += PHYSLITEElectronClusterThinningTool
+thinningTools.append(PHYSLITEElectronClusterThinningTool)
+
+# Caloclusters associated to photons
+PHYSLITEPhotonClusterThinningTool = DerivationFramework__CaloClusterThinning( name                    = "PHYSLITEPhotonClusterThinningTool",
+                                                                              ThinningService         = PHYSLITEThinningHelper.ThinningSvc(),
+                                                                              SGKey                   = "AnalysisPhotons",
+                                                                              CaloClCollectionSGKey   = "egammaClusters",
+                                                                              TopoClCollectionSGKey   = "CaloCalTopoClusters",
+                                                                              #SelectionString         = ""Photons.pt > 10*GeV"",
+                                                                              ConeSize                = 0.4)
+ToolSvc += PHYSLITEPhotonClusterThinningTool
+thinningTools.append(PHYSLITEPhotonClusterThinningTool)
+
+# GSF track particles thinning
+from DerivationFrameworkInDet.DerivationFrameworkInDetConf import DerivationFramework__EgammaTrackParticleThinning
+
+# GSF track associated to electrons
+PHYSLITEElectronGsfTrackThinningTool = DerivationFramework__EgammaTrackParticleThinning(name                   = "PHYSLITEElectronGsfTrackThinningTool",
+                                                                                        ThinningService        = PHYSLITEThinningHelper.ThinningSvc(),
+                                                                                        SGKey                  = "AnalysisElectrons",
+                                                                                        BestMatchOnly          = False,
+                                                                                        GSFTrackParticlesKey = "GSFTrackParticles")
+ToolSvc += PHYSLITEElectronGsfTrackThinningTool
+thinningTools.append(PHYSLITEElectronGsfTrackThinningTool)
+
+# GSF track associated to photons
+PHYSLITEPhotonGsfTrackThinningTool = DerivationFramework__EgammaTrackParticleThinning(name                   = "PHYSLITEPhotonGsfTrackThinningTool",
+                                                                                      ThinningService        = PHYSLITEThinningHelper.ThinningSvc(),
+                                                                                      SGKey                  = "AnalysisPhotons",
+                                                                                      BestMatchOnly          = False,
+                                                                                      GSFTrackParticlesKey = "GSFTrackParticles")
+ToolSvc += PHYSLITEPhotonGsfTrackThinningTool
+thinningTools.append(PHYSLITEPhotonGsfTrackThinningTool)
+
+# INNER DETECTOR TRACK THINNING
+# See recommedations here: 
+# https://twiki.cern.ch/twiki/bin/viewauth/AtlasProtected/DaodRecommendations
+# Inner detector group recommendations for indet tracks in analysis
+PHYSLITE_thinning_expression = "InDetTrackParticles.DFCommonTightPrimary && abs(DFCommonInDetTrackZ0AtPV)*sin(InDetTrackParticles.theta) < 3.0*mm && InDetTrackParticles.pt > 10*GeV"
+from DerivationFrameworkInDet.DerivationFrameworkInDetConf import DerivationFramework__TrackParticleThinning
+PHYSLITETrackParticleThinningTool = DerivationFramework__TrackParticleThinning(name                    = "PHYSLITETrackParticleThinningTool",
+                                                                               ThinningService         = PHYSLITEThinningHelper.ThinningSvc(),
+                                                                               SelectionString         = PHYSLITE_thinning_expression,
+                                                                               InDetTrackParticlesKey  = "InDetTrackParticles",
+                                                                               ApplyAnd                = False)
+ToolSvc += PHYSLITETrackParticleThinningTool
+thinningTools.append(PHYSLITETrackParticleThinningTool)
+
+
+# Include inner detector tracks associated with muons
+from DerivationFrameworkInDet.DerivationFrameworkInDetConf import DerivationFramework__MuonTrackParticleThinning
+PHYSLITEMuonTPThinningTool = DerivationFramework__MuonTrackParticleThinning(name                    = "PHYSLITEMuonTPThinningTool",
+                                                                            ThinningService         = PHYSLITEThinningHelper.ThinningSvc(),
+                                                                            MuonKey                 = "AnalysisMuons",
+                                                                            InDetTrackParticlesKey  = "InDetTrackParticles",
+                                                                            ApplyAnd = False)
+ToolSvc += PHYSLITEMuonTPThinningTool
+thinningTools.append(PHYSLITEMuonTPThinningTool)
+
+# TauJets thinning
+tau_thinning_expression = "(AnalysisTauJets.ptFinalCalib >= 13.*GeV) && (AnalysisTauJets.nTracks>=1) && (AnalysisTauJets.nTracks<=3) && (AnalysisTauJets.RNNJetScoreSigTrans>0.01)"
+from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__GenericObjectThinning
+PHYSLITETauJetsThinningTool = DerivationFramework__GenericObjectThinning(name            = "PHYSLITETauJetsThinningTool",
+                                                                         ThinningService = PHYSLITEThinningHelper.ThinningSvc(),
+                                                                         ContainerName   = "AnalysisTauJets",
+                                                                         SelectionString = tau_thinning_expression)
+ToolSvc += PHYSLITETauJetsThinningTool
+thinningTools.append(PHYSLITETauJetsThinningTool)
+
+# Only keep tau tracks (and associated ID tracks) classified as charged tracks
+from DerivationFrameworkInDet.DerivationFrameworkInDetConf import DerivationFramework__TauTrackParticleThinning
+PHYSLITETauTPThinningTool = DerivationFramework__TauTrackParticleThinning(name                   = "PHYSLITETauTPThinningTool",
+                                                                          ThinningService        = PHYSLITEThinningHelper.ThinningSvc(),
+                                                                          TauKey                 = "AnalysisTauJets",
+                                                                          InDetTrackParticlesKey = "InDetTrackParticles",
+                                                                          SelectionString        = tau_thinning_expression,
+                                                                          ApplyAnd               = False,
+                                                                          DoTauTracksThinning    = True,
+                                                                          TauTracksKey           = "TauTracks")
+ToolSvc += PHYSLITETauTPThinningTool
+thinningTools.append(PHYSLITETauTPThinningTool)
+
+# Only keep the highest sum pT2 primary vertex
+from DerivationFrameworkInDet.DerivationFrameworkInDetConf import DerivationFramework__VertexThinning
+PHYSLITEVertexThinningTool = DerivationFramework__VertexThinning(name = "PHYSLITEVertexThinningTool",
+                                                                 ThinningService = PHYSLITEThinningHelper.ThinningSvc(),
+                                                                 VertexKey = "PrimaryVertices")
+ToolSvc += PHYSLITEVertexThinningTool
+thinningTools.append(PHYSLITEVertexThinningTool)
+
+#==============================================================================
+# Jet building
+#==============================================================================
+OutputJets["PHYSLITE"] = ["AntiKt10LCTopoTrimmedPtFrac5SmallR20Jets"]
+reducedJetList = ["AntiKt2PV0TrackJets","AntiKt4PV0TrackJets"]
+
+if (DerivationFrameworkIsMonteCarlo):
+   OutputJets["PHYSLITE"].append("AntiKt10TruthTrimmedPtFrac5SmallR20Jets")
+
+replaceAODReducedJets(reducedJetList,SeqPHYSLITE,"PHYSLITE")
+add_largeR_truth_jets = DerivationFrameworkIsMonteCarlo and not hasattr(SeqPHYSLITE,'jetalgAntiKt10TruthTrimmedPtFrac5SmallR20')
+addDefaultTrimmedJets(SeqPHYSLITE,"PHYSLITE",dotruth=add_largeR_truth_jets)
+
+# Add large-R jet truth labeling
+if (DerivationFrameworkIsMonteCarlo):
+   addJetTruthLabel(jetalg="AntiKt10LCTopoTrimmedPtFrac5SmallR20",sequence=SeqPHYSLITE,algname="JetTruthLabelingAlg",labelname="R10TruthLabel_R21Consolidated")
+
+# q/g discrimination
+addQGTaggerTool(jetalg="AntiKt4EMPFlow",sequence=SeqPHYSLITE,algname="QGTaggerToolPFAlg")
+
+# fJVT
+getPFlowfJVT(jetalg='AntiKt4EMPFlow',sequence=SeqPHYSLITE, algname='PHYSLITEJetForwardPFlowJvtToolAlg')
+
+#====================================================================
+# Flavour tagging   
+#====================================================================
+# Create variable-R trackjets and dress AntiKt10LCTopo with ghost VR-trkjet 
+addVRJets(SeqPHYSLITE)
+#addVRJetsTCC(DerivationFrameworkJob, "AntiKtVR30Rmax4Rmin02Track", "GhostVR30Rmax4Rmin02TrackJet",
+#             VRJetAlg="AntiKt", VRJetRadius=0.4, VRJetInputs="pv0track",
+#             ghostArea = 0 , ptmin = 2000, ptminFilter = 2000,
+#             variableRMinRadius = 0.02, variableRMassScale = 30000, calibOpt = "none")
+# add xbb taggers
+from DerivationFrameworkFlavourTag.HbbCommon import addRecommendedXbbTaggers
+addRecommendedXbbTaggers(SeqPHYSLITE, ToolSvc)
+
+FlavorTagInit(JetCollections  = [ 'AntiKt4EMPFlowJets'], Sequencer = SeqPHYSLITE)
+
+#==============================================================================
+# Systematics
+#==============================================================================
+
+# Set up the systematics loader/handler algorithm:
+sysLoader = CfgMgr.CP__SysListLoaderAlg( 'SysLoaderAlg' )
+#sysLoader.sigmaRecommended = 1
+sysLoader.systematicsList= ['']
+SeqPHYSLITE += sysLoader
+
+dataType = "data"
+
+if DerivationFrameworkIsMonteCarlo:
+  dataType = "mc"
+
+#in your c++ code, create a ToolHandle<IPileupReweightingTool>
+#the ToolHandle constructor should be given "CP::PileupReweightingTool/myTool" as its string argument
+from PileupReweighting.AutoconfigurePRW import getLumiCalcFiles
+ToolSvc += CfgMgr.CP__PileupReweightingTool("PHYSLITE_PRWTool",
+                                            ConfigFiles=[],
+                                            UnrepresentedDataAction=2,
+                                            LumiCalcFiles=getLumiCalcFiles())
+SeqPHYSLITE += CfgMgr.CP__PileupReweightingProvider(Tool=ToolSvc.PHYSLITE_PRWTool,RunSystematics=False)
+
+# Include, and then set up the electron analysis sequence:
+from EgammaAnalysisAlgorithms.ElectronAnalysisSequence import \
+    makeElectronAnalysisSequence
+electronSequence = makeElectronAnalysisSequence( dataType, 'LooseLHElectron.NonIso', shallowViewOutput = False, deepCopyOutput = True )
+electronSequence.configure( inputName = 'Electrons',
+                            outputName = 'AnalysisElectrons' )
+print( electronSequence ) # For debugging
+
+# Add the electron sequence to the job:
+SeqPHYSLITE += electronSequence
+
+# Include, and then set up the photon analysis sequence:                                       
+from EgammaAnalysisAlgorithms.PhotonAnalysisSequence import \
+    makePhotonAnalysisSequence
+photonSequence = makePhotonAnalysisSequence( dataType, 'Loose.Undefined', deepCopyOutput = True, recomputeIsEM=True )
+photonSequence.configure( inputName = 'Photons',
+                          outputName = 'AnalysisPhotons' )
+print( photonSequence ) # For debugging
+
+SeqPHYSLITE += photonSequence
+
+# Include, and then set up the muon analysis algorithm sequence:
+ 
+from MuonAnalysisAlgorithms.MuonAnalysisSequence import makeMuonAnalysisSequence
+muonSequence = makeMuonAnalysisSequence( dataType, shallowViewOutput = False, deepCopyOutput = True, workingPoint = 'Loose.NonIso' )
+muonSequence.configure( inputName = 'Muons',
+                        outputName = 'AnalysisMuons' )
+print( muonSequence ) # For debugging
+
+# Add the sequence to the job:
+ 
+SeqPHYSLITE += muonSequence
+
+# Include, and then set up the tau analysis algorithm sequence:                                                    
+from TauAnalysisAlgorithms.TauAnalysisSequence import makeTauAnalysisSequence
+tauSequence = makeTauAnalysisSequence( dataType, 'Baseline', shallowViewOutput = False, deepCopyOutput = True )
+tauSequence.configure( inputName = 'TauJets', outputName = 'AnalysisTauJets' )
+print( tauSequence ) # For debugging                                                                               
+# Add the sequence to the job:                                                                                     
+SeqPHYSLITE += tauSequence
+
+jetContainer = 'AntiKt4EMPFlowJets_BTagging201903'
+
+# Include, and then set up the jet analysis algorithm sequence:
+from JetAnalysisAlgorithms.JetAnalysisSequence import makeJetAnalysisSequence
+jetSequence = makeJetAnalysisSequence( dataType, jetContainer, deepCopyOutput = True, shallowViewOutput = False , runFJvtUpdate = False , runFJvtSelection = False )
+jetSequence.configure( inputName = jetContainer, outputName = 'AnalysisJets' )
+print( jetSequence ) # For debugging
+
+SeqPHYSLITE += jetSequence
+
+# Make sure the MET knows what we've done
+# First we need to rebuild charged pflow objects
+from eflowRec.ScheduleCHSPFlowMods import scheduleCHSPFlowMods
+scheduleCHSPFlowMods(SeqPHYSLITE)
+# Now build MET from our analysis objects
+from DerivationFrameworkJetEtMiss import METCommon
+from METReconstruction.METAssocConfig import METAssocConfig,AssocConfig
+associators = [AssocConfig('PFlowJet', 'AnalysisJets'),
+               AssocConfig('Muon', 'AnalysisMuons'),
+               AssocConfig('Ele', 'AnalysisElectrons'),
+               AssocConfig('Gamma', 'AnalysisPhotons'),
+               AssocConfig('Tau', 'AnalysisTauJets'),
+               AssocConfig('Soft', '')]
+PHYSLITE_cfg = METAssocConfig('AnalysisMET',
+                              associators,
+                              doPFlow=True)
+METCommon.customMETConfigs.setdefault('AnalysisMET',{})[PHYSLITE_cfg.suffix] = PHYSLITE_cfg
+scheduleMETAssocAlg(sequence=SeqPHYSLITE,configlist="AnalysisMET")
+
+#====================================================================
+# TRIGGER CONTENT
+#====================================================================
+# See https://twiki.cern.ch/twiki/bin/view/Atlas/TriggerAPI
+# Get single and multi mu, e, photon triggers
+# Jet, tau, multi-object triggers not available in the matching code
+# Note this comes relatively late as we have to re-do the matching to our analysis objects
+allperiods = TriggerPeriod.y2015 | TriggerPeriod.y2016 | TriggerPeriod.y2017 | TriggerPeriod.y2018 | TriggerPeriod.future2e34
+trig_el  = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.el,  livefraction=0.8)
+trig_mu  = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.mu,  livefraction=0.8)
+trig_g   = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.g,   livefraction=0.8)
+trig_tau = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.tau, livefraction=0.8)
+# Add cross-triggers for some sets
+trig_em = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.el, additionalTriggerType=TriggerType.mu,  livefraction=0.8)
+trig_et = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.el, additionalTriggerType=TriggerType.tau, livefraction=0.8)
+trig_mt = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.mu, additionalTriggerType=TriggerType.tau, livefraction=0.8)
+# Note that this seems to pick up both isolated and non-isolated triggers already, so no need for extra grabs
+trig_txe = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.tau, additionalTriggerType=TriggerType.xe, livefraction=0.8)
+
+# Merge and remove duplicates
+trigger_names_full_notau = list(set(trig_el+trig_mu+trig_g+trig_em+trig_et+trig_mt))
+trigger_names_full_tau = list(set(trig_tau+trig_txe))
+
+# Now reduce the list...
+from RecExConfig.InputFilePeeker import inputFileSummary
+trigger_names_notau = []
+trigger_names_tau = []
+for trig_item in inputFileSummary['metadata']['/TRIGGER/HLT/Menu']:
+    if not 'ChainName' in trig_item: continue
+    if trig_item['ChainName'] in trigger_names_full_notau: trigger_names_notau += [ trig_item['ChainName'] ]
+    if trig_item['ChainName'] in trigger_names_full_tau:   trigger_names_tau   += [ trig_item['ChainName'] ]
+
+# Create trigger matching decorations
+trigmatching_helper_notau = TriggerMatchingHelper(name='PHSYLITETriggerMatchingToolNoTau',
+        OutputContainerPrefix = "Analysis",
+        trigger_list = trigger_names_notau, add_to_df_job=False,
+        InputElectrons="AnalysisElectrons",InputPhotons="AnalysisPhotons",
+        InputMuons="AnalysisMuons",InputTaus="AnalysisTauJets")
+trigmatching_helper_tau = TriggerMatchingHelper(name='PHSYLITETriggerMatchingToolTau',
+        OutputContainerPrefix = "Analysis",
+        trigger_list = trigger_names_tau, add_to_df_job=False, DRThreshold=0.2,
+        InputElectrons="AnalysisElectrons",InputPhotons="AnalysisPhotons",
+        InputMuons="AnalysisMuons",InputTaus="AnalysisTauJets")
+SeqPHYSLITE += trigmatching_helper_notau.alg
+SeqPHYSLITE += trigmatching_helper_tau.alg
+
+#====================================================================
+# MAIN KERNEL
+#====================================================================
+# Put our sequence into the top sequence
+DerivationFrameworkJob += SeqPHYSLITE
+# Add thinning tools kernel
+from DerivationFrameworkCore.DerivationFrameworkCoreConf import DerivationFramework__DerivationKernel
+SeqPHYSLITE += CfgMgr.DerivationFramework__DerivationKernel(
+   "PHYSLITEKernel",
+   AugmentationTools = AugmentationTools,
+   ThinningTools = thinningTools,
+   )
+
+#====================================================================
+# CONTENT LIST  
+#====================================================================
+from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
+PHYSLITESlimmingHelper = SlimmingHelper("PHYSLITESlimmingHelper")
+
+PHYSLITESlimmingHelper.IncludeTriggerNavigation = False
+PHYSLITESlimmingHelper.IncludeJetTriggerContent = False
+PHYSLITESlimmingHelper.IncludeMuonTriggerContent = False
+PHYSLITESlimmingHelper.IncludeEGammaTriggerContent = False
+PHYSLITESlimmingHelper.IncludeJetTauEtMissTriggerContent = False
+PHYSLITESlimmingHelper.IncludeTauTriggerContent = False #True
+PHYSLITESlimmingHelper.IncludeEtMissTriggerContent = False
+PHYSLITESlimmingHelper.IncludeBJetTriggerContent = False
+PHYSLITESlimmingHelper.IncludeBPhysTriggerContent = False
+PHYSLITESlimmingHelper.IncludeMinBiasTriggerContent = False
+
+# Most of the new containers are centrally added to SlimmingHelper via DerivationFrameworkCore ContainersOnTheFly.py
+PHYSLITESlimmingHelper.AppendToDictionary = {
+                                         'TruthEvents':'xAOD::TruthEventContainer','TruthEventsAux':'xAOD::TruthEventAuxContainer',
+                                         'MET_Truth':'xAOD::MissingETContainer','MET_TruthAux':'xAOD::MissingETAuxContainer',
+                                         'TruthElectrons':'xAOD::TruthParticleContainer','TruthElectronsAux':'xAOD::TruthParticleAuxContainer',
+                                         'TruthMuons':'xAOD::TruthParticleContainer','TruthMuonsAux':'xAOD::TruthParticleAuxContainer',
+                                         'TruthPhotons':'xAOD::TruthParticleContainer','TruthPhotonsAux':'xAOD::TruthParticleAuxContainer',
+                                         'TruthTaus':'xAOD::TruthParticleContainer','TruthTausAux':'xAOD::TruthParticleAuxContainer',
+                                         'TruthNeutrinos':'xAOD::TruthParticleContainer','TruthNeutrinosAux':'xAOD::TruthParticleAuxContainer',
+                                         'TruthBSM':'xAOD::TruthParticleContainer','TruthBSMAux':'xAOD::TruthParticleAuxContainer',
+                                         'TruthBoson':'xAOD::TruthParticleContainer','TruthBosonAux':'xAOD::TruthParticleAuxContainer',
+                                         'TruthTop':'xAOD::TruthParticleContainer','TruthTopAux':'xAOD::TruthParticleAuxContainer',
+                                         'TruthForwardProtons':'xAOD::TruthParticleContainer','TruthForwardProtonsAux':'xAOD::TruthParticleAuxContainer',
+                                         'BornLeptons':'xAOD::TruthParticleContainer','BornLeptonsAux':'xAOD::TruthParticleAuxContainer',
+                                         'TruthBosonsWithDecayParticles':'xAOD::TruthParticleContainer','TruthBosonsWithDecayParticlesAux':'xAOD::TruthParticleAuxContainer',
+                                         'TruthBosonsWithDecayVertices':'xAOD::TruthVertexContainer','TruthBosonsWithDecayVerticesAux':'xAOD::TruthVertexAuxContainer',
+                                         'TruthBSMWithDecayParticles':'xAOD::TruthParticleContainer','TruthBSMWithDecayParticlesAux':'xAOD::TruthParticleAuxContainer',
+                                         'TruthBSMWithDecayVertices':'xAOD::TruthVertexContainer','TruthBSMWithDecayVerticesAux':'xAOD::TruthVertexAuxContainer',
+                                         'HardScatterParticles':'xAOD::TruthParticleContainer','HardScatterParticlesAux':'xAOD::TruthParticleAuxContainer',
+                                         'HardScatterVertices':'xAOD::TruthVertexContainer','HardScatterVerticesAux':'xAOD::TruthVertexAuxContainer',
+                                         'TruthPrimaryVertices':'xAOD::TruthVertexContainer','TruthPrimaryVerticesAux':'xAOD::TruthVertexAuxContainer',
+                                         'AnalysisElectrons':'xAOD::ElectronContainer', 'AnalysisElectronsAux':'xAOD::ElectronAuxContainer',
+                                         'AnalysisMuons':'xAOD::MuonContainer', 'AnalysisMuonsAux':'xAOD::MuonAuxContainer',
+                                         'AnalysisJets':'xAOD::JetContainer','AnalysisJetsAux':'xAOD::AuxContainerBase',
+                                         'AnalysisPhotons':'xAOD::PhotonContainer', 'AnalysisPhotonsAux':'xAOD::PhotonAuxContainer',
+                                         'AnalysisTauJets':'xAOD::TauJetContainer', 'AnalysisTauJetsAux':'xAOD::TauJetAuxContainer',
+                                         'MET_Core_AnalysisMET':'xAOD::MissingETContainer', 'MET_Core_AnalysisMETAux':'xAOD::MissingETAuxContainer',
+                                         'METAssoc_AnalysisMET':'xAOD::MissingETAssociationMap', 'METAssoc_AnalysisMETAux':'xAOD::MissingETAuxAssociationMap',
+                                         'AntiKt10TruthTrimmedPtFrac5SmallR20Jets':'xAOD::JetContainer', 'AntiKt10TruthTrimmedPtFrac5SmallR20JetsAux':'xAOD::JetAuxContainer',
+                                         }
+
+# Leaving these as smart collections
+
+PHYSLITESlimmingHelper.SmartCollections = [
+  "InDetTrackParticles",
+  "PrimaryVertices",
+  ]
+
+# Variables to save, per object type
+
+PHYSLITESlimmingHelper.ExtraVariables = [ 
+  "AnalysisElectrons.trackParticleLinks.pt.eta.phi.m.charge.author.DFCommonElectronsLHVeryLoose.DFCommonElectronsLHLoose.DFCommonElectronsLHLooseBL.DFCommonElectronsLHMedium.DFCommonElectronsLHTight.DFCommonElectronsLHVeryLooseIsEMValue.DFCommonElectronsLHLooseIsEMValue.DFCommonElectronsLHLooseBLIsEMValue.DFCommonElectronsLHMediumIsEMValue.DFCommonElectronsLHTightIsEMValue.DFCommonElectronsECIDS.DFCommonElectronsECIDSResult.ptvarcone20.ptvarcone40.topoetcone20.topoetcone20ptCorrection.ptcone20_TightTTVA_pt500.ptcone20_TightTTVA_pt1000.ptvarcone20_TightTTVA_pt1000.ptvarcone30_TightTTVA_pt500.ptvarcone30_TightTTVA_pt1000.caloClusterLinks.ambiguityLink.truthParticleLink.truthOrigin.truthType.truthPdgId.firstEgMotherTruthType.firstEgMotherTruthOrigin.firstEgMotherTruthParticleLink.firstEgMotherPdgId.ambiguityType.OQ",
+  "AnalysisPhotons.pt.eta.phi.m.author.OQ.DFCommonPhotonsIsEMLoose.DFCommonPhotonsIsEMTight.DFCommonPhotonsIsEMTightIsEMValue.DFCommonPhotonsIsEMTightPtIncl.DFCommonPhotonsIsEMTightPtInclIsEMValue.DFCommonPhotonsCleaning.DFCommonPhotonsCleaningNoTime.ptcone20.topoetcone20.topoetcone40.topoetcone20ptCorrection.topoetcone40ptCorrection.caloClusterLinks.vertexLinks.ambiguityLink.truthParticleLink.truthOrigin.truthType",
+  "GSFTrackParticles.chiSquared.phi.d0.theta.qOverP.definingParametersCovMatrix.z0.vz.charge.vertexLink",
+  "CaloCalTopoClusters.rawE.rawEta.rawPhi.rawM.calE.calEta.calPhi.calM.e_sampl",
+  "egammaClusters.calE.calEta.calPhi.e_sampl.eta_sampl.ETACALOFRAME.PHICALOFRAME.ETA2CALOFRAME.PHI2CALOFRAME.constituentClusterLinks",
+  "AnalysisMuons.pt.eta.phi.truthType.truthOrigin.author.muonType.quality.inDetTrackParticleLink.muonSpectrometerTrackParticleLink.combinedTrackParticleLink.InnerDetectorPt.MuonSpectrometerPt.DFCommonGoodMuon.ptcone20.ptcone30.ptcone40.ptvarcone20.ptvarcone30.ptvarcone40.topoetcone20.topoetcone30.topoetcone40.truthParticleLink.charge.extrapolatedMuonSpectrometerTrackParticleLink.allAuthors.ptcone20_TightTTVA_pt1000.ptcone20_TightTTVA_pt500.ptvarcone30_TightTTVA_pt1000.ptvarcone30_TightTTVA_pt500.numberOfPrecisionLayers.combinedTrackOutBoundsPrecisionHits.numberOfPrecisionLayers.numberOfPrecisionHoleLayers.numberOfGoodPrecisionLayers.innerSmallHits.innerLargeHits.middleSmallHits.middleLargeHits.outerSmallHits.outerLargeHits.extendedSmallHits.extendedLargeHits.extendedSmallHoles.isSmallGoodSectors.cscUnspoiledEtaHits.EnergyLoss.energyLossType.momentumBalanceSignificance.scatteringCurvatureSignificance.scatteringNeighbourSignificance",
+  "CombinedMuonTrackParticles.qOverP.d0.z0.vz.phi.theta.truthOrigin.truthType.definingParametersCovMatrix.numberOfPixelDeadSensors.numberOfPixelHits.numberOfPixelHoles.numberOfSCTDeadSensors.numberOfSCTHits.numberOfSCTHoles.numberOfTRTHits.numberOfTRTOutliers.chiSquared.numberDoF",
+  "ExtrapolatedMuonTrackParticles.d0.z0.vz.definingParametersCovMatrix.truthOrigin.truthType.qOverP.theta.phi",
+  "MuonSpectrometerTrackParticles.phi.d0.z0.vz.definingParametersCovMatrix.vertexLink.theta.qOverP.truthParticleLink",
+  "AnalysisTauJets.pt.eta.phi.m.tauTrackLinks.jetLink.charge.isTauFlags.BDTJetScore.BDTEleScore.ptFinalCalib.etaFinalCalib.phiFinalCalib.mFinalCalib.electronLink.EleMatchLikelihoodScore.pt_combined.eta_combined.phi_combined.m_combined.BDTJetScoreSigTrans.BDTEleScoreSigTrans.PanTau_DecayMode.RNNJetScore.RNNJetScoreSigTrans.IsTruthMatched.truthOrigin.truthType.truthParticleLink.truthJetLink",
+  "AnalysisJets.pt.eta.phi.m.JetConstitScaleMomentum_pt.JetConstitScaleMomentum_eta.JetConstitScaleMomentum_phi.JetConstitScaleMomentum_m.NumTrkPt500.SumPtTrkPt500.DetectorEta.Jvt.JVFCorr.JvtRpt.NumTrkPt1000.TrackWidthPt1000.GhostMuonSegmentCount.PartonTruthLabelID.ConeTruthLabelID.HadronConeExclExtendedTruthLabelID.HadronConeExclTruthLabelID.TrueFlavor.DFCommonJets_jetClean_LooseBad.DFCommonJets_jetClean_TightBad.Timing.btagging.btaggingLink.GhostTrack.DFCommonJets_fJvt.DFCommonJets_QGTagger_NTracks.DFCommonJets_QGTagger_TracksWidth.DFCommonJets_QGTagger_TracksC1",
+  "BTagging_AntiKt4EMPFlow_201903.DL1r_pu.DL1rmu_pu.DL1r_pb.DL1rmu_pb.DL1r_pc.DL1rmu_pc",
+  "TruthPrimaryVertices.t.x.y.z",
+  "MET_Core_AnalysisMET.name.mpx.mpy.sumet.source",
+  "METAssoc_AnalysisMET.",
+  ]
+
+if DerivationFrameworkIsMonteCarlo:
+    from DerivationFrameworkMCTruth.MCTruthCommon import addTruth3ContentToSlimmerTool
+    addTruth3ContentToSlimmerTool(PHYSLITESlimmingHelper)
+
+# Extra trigger collections
+trigmatching_helper_notau.add_to_slimming(PHYSLITESlimmingHelper)
+trigmatching_helper_tau.add_to_slimming(PHYSLITESlimmingHelper)
+
+PHYSLITESlimmingHelper.AppendContentToStream(PHYSLITEStream)
-- 
GitLab