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