ATLAS Offline Software
Loading...
Searching...
No Matches
TriggerEDMRun4.py
Go to the documentation of this file.
1# Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
2
3# ------------------------------------------------------------
4# Definition of trigger EDM for Run 4
5
6# Concept of categories is kept similar to TriggerEDMRun3.py, categories are:
7# AllowedCategories = ['Bjet', 'Bphys', 'Egamma', 'ID', 'Jet', 'L1', 'MET', 'MinBias', 'Muon', 'Steer', 'Tau', 'Calo', 'UTT']
8
9# ------------------------------------------------------------
10
11from AthenaCommon.Logging import logging
12__log = logging.getLogger('TriggerEDMRun4Config')
13
14# ------------------------------------------------------------
15# Additional properties for EDM collections
16# ------------------------------------------------------------
17from TrigEDMConfig.TriggerEDMDefs import InViews, Alias # Import when needed, allowTruncation
18
19# ------------------------------------------------------------
20# Lists of variables to be kept in the collections
21# ------------------------------------------------------------
22
23cPFOVarsToKeep = [
24 'IsInDenseEnvironment',
25 'TracksExpectedEnergyDeposit',
26]
27nPFOVarsToKeep = [
28 'AVG_LAR_Q', 'AVG_TILE_Q', 'BADLARQ_FRAC',
29 'CENTER_LAMBDA', 'CENTER_MAG',
30 'EM_PROBABILITY',
31 'N_BAD_CELLS', 'ENG_BAD_CELLS', 'ENG_POS',
32 'ISOLATION',
33 'LAYERENERGY_EMB1', 'LAYERENERGY_EMB2', 'LAYERENERGY_EMB3',
34 'LAYERENERGY_EME1', 'LAYERENERGY_EME2', 'LAYERENERGY_EME3',
35 'LAYERENERGY_FCAL0', 'LAYERENERGY_FCAL1', 'LAYERENERGY_FCAL2',
36 'LAYERENERGY_HEC0', 'LAYERENERGY_HEC1', 'LAYERENERGY_HEC2', 'LAYERENERGY_HEC3',
37 'LAYERENERGY_MINIFCAL0', 'LAYERENERGY_MINIFCAL1', 'LAYERENERGY_MINIFCAL2', 'LAYERENERGY_MINIFCAL3',
38 'LAYERENERGY_PreSamplerB', 'LAYERENERGY_PreSamplerE',
39 'LAYERENERGY_TILE0',
40 'LAYERENERGY_TileBar0', 'LAYERENERGY_TileBar1', 'LAYERENERGY_TileBar2',
41 'LAYERENERGY_TileExt0', 'LAYERENERGY_TileExt1', 'LAYERENERGY_TileExt2',
42 'LAYERENERGY_TileGap1', 'LAYERENERGY_TileGap2', 'LAYERENERGY_TileGap3',
43 'SECOND_LAMBDA', 'SECOND_R',
44 'TIMING',
45]
46
47
48# ===========
49# === Tau ===
50def getTauIDVars(name: str, wps: list[str] | None = None, extra_wps: list[str] | None = None) -> list[str]:
51 if wps is None: wps = ['VeryLoose', 'Loose', 'Medium', 'Tight']
52 if extra_wps is not None: wps += extra_wps
53 # Default list of variables required for all triggers, according to the naming convention
54 return [f'{name}_{sfx}' for sfx in ['Score', 'ScoreSigTrans'] + wps]
55
56TauJet_vars = []
57TauJet_vars += getTauIDVars('GNTau')
58TauJet_vars += getTauIDVars('GNTauDev1', wps=['Loose', 'Medium'])
59TauJet_vars_str = '.'.join(TauJet_vars)
60
61TauTrack_vars = ['pt', 'eta', 'phi', 'flagSet', 'trackLinks', 'd0TJVA', 'd0SigTJVA', 'z0sinthetaTJVA', 'z0sinthetaSigTJVA']
62TauTrack_vars_str = '.'.join(TauTrack_vars)
63
64
65TriggerHLTListRun4 = [
66
67 # framework/steering
68 #('xAOD::TrigDecision#xTrigDecision' , 'ESD AODFULL AODSLIM', 'Steer'),
69
70 # Collections for Run 4 calorimeter studies
71 ('xAOD::TrigRingerRingsContainer#Ringer2sigGlobal', 'BS ESD AODFULL', 'Calo'),
72 ('xAOD::TrigRingerRingsAuxContainer#Ringer2sigGlobalAux.', 'BS ESD AODFULL', 'Calo'),
73
74 ('xAOD::TrigEMClusterContainer#CaloClusters2sigGlobal', 'BS ESD AODFULL', 'Calo'),
75 ('xAOD::TrigEMClusterAuxContainer#CaloClusters2sigGlobalAux.', 'BS ESD AODFULL', 'Calo'),
76
77 ('xAOD::TrigRingerRingsContainer#RingerGlobal', 'BS ESD AODFULL', 'Calo'),
78 ('xAOD::TrigRingerRingsAuxContainer#RingerGlobalAux.', 'BS ESD AODFULL', 'Calo'),
79
80 ('xAOD::TrigEMClusterContainer#CaloClustersGlobal', 'BS ESD AODFULL', 'Calo'),
81 ('xAOD::TrigEMClusterAuxContainer#CaloClustersGlobalAux.', 'BS ESD AODFULL', 'Calo'),
82
83 ('CaloCellContainer#SeedLessFS', 'ESD AODFULL', 'Calo'),
84
85 # Placeholder output collections from GlobalSimulation
86 ('std::vector<float>#L1_eFEXeta', 'ESD AODFULL', 'L1'),
87 ('std::vector<float>#L1_eFEXphi', 'ESD AODFULL', 'L1'),
88 ('std::vector<float>#L1_FailedeFEXeta', 'ESD AODFULL', 'L1'),
89 ('std::vector<float>#L1_FailedeFEXphi', 'ESD AODFULL', 'L1'),
90 ('std::vector<float>#L1_eGamma1BDT', 'ESD AODFULL', 'L1'),
91
92 # HitZ preselection, in its own super-RoI step ahead of the tracking
93 ('TrigRoiDescriptorCollection#HLT_Roi_JetSuperHitZ', 'BS ESD AODFULL', 'Jet'),
94 ('xAOD::JetContainer#HLT_AntiKt4EMTopoJets_subjesIS_hitz', 'BS ESD AODFULL', 'Jet', [Alias('JetContainerShallowCopy')]),
95 ('xAOD::ShallowAuxContainer#HLT_AntiKt4EMTopoJets_subjesIS_hitzAux.pt.eta.phi.m.HitZ_z0.HitZ_z0_sigma', 'BS ESD AODFULL', 'Jet'),
96
97 # Particle Flow Objects, for assessing performance with ITk (and perhaps HGTD)
98 ('xAOD::FlowElementContainer#HLT_ftfChargedParticleFlowObjects', 'BS ESD', 'Jet'),
99 ('xAOD::FlowElementAuxContainer#HLT_ftfChargedParticleFlowObjectsAux.'+'.'.join(cPFOVarsToKeep), 'BS ESD', 'Jet'),
100 ('xAOD::FlowElementContainer#HLT_ftfNeutralParticleFlowObjects', 'BS ESD', 'Jet'),
101 ('xAOD::FlowElementAuxContainer#HLT_ftfNeutralParticleFlowObjectsAux.'+'.'.join(nPFOVarsToKeep), 'BS ESD', 'Jet'),
102
103 # New EDM for Run 4 muons
104 # EF Fast Reco muons (SA)
105 ('xAOD::MuonContainer#HLT_FastMuons_RoI', 'BS ESD AODFULL AODSLIM', 'Muon', [InViews('L2MuFastReco_RoIViews')]),
106 ('xAOD::MuonAuxContainer#HLT_FastMuons_RoIAux.', 'BS ESD AODFULL AODSLIM', 'Muon'),
107
108 # EF Precise Reco muons (SA) in RoI views
109 ('xAOD::MuonContainer#HLT_Muons_RoI', 'BS ESD AODFULL AODSLIM', 'Muon', [InViews('EFMuMSReco_RoIViews'),InViews('EFMuMSReco_RoIPhIIViews')]),
110 ('xAOD::MuonAuxContainer#HLT_Muons_RoIAux.', 'BS ESD AODFULL AODSLIM', 'Muon'),
111 ('xAOD::MuonContainer#HLT_Muons_RoIPhII_newFast', 'BS ESD AODFULL AODSLIM', 'Muon', [InViews("EFMuMSReco_RoIPhII_newFastViews")]),
112 ('xAOD::MuonAuxContainer#HLT_Muons_RoIPhII_newFastAux.', 'BS ESD AODFULL AODSLIM', 'Muon'),
113
114 ('xAOD::MuonContainer#HLT_Muons_RoIPhII_mlbkt', 'BS ESD AODFULL AODSLIM', 'Muon', [InViews("EFMuMSReco_RoIPhII_mlbktViews")]),
115 ('xAOD::MuonAuxContainer#HLT_Muons_RoIPhII_mlbktAux.', 'BS ESD AODFULL AODSLIM', 'Muon'),
116
117 # EF Precise Reco muons (SA) in FS views
118 ('xAOD::MuonContainer#HLT_Muons_FS', 'BS ESD AODFULL AODSLIM', 'Muon', [InViews('EFMuMSReco_FSViews'),InViews('EFMuMSReco_FSPhIIViews')]),
119 ('xAOD::MuonAuxContainer#HLT_Muons_FSAux.', 'BS ESD AODFULL AODSLIM', 'Muon'),
120 ('xAOD::MuonContainer#HLT_Muons_FSPhII_newFast', 'BS ESD AODFULL AODSLIM', 'Muon', [InViews("EFMuMSReco_FSPhII_newFastViews")]),
121 ('xAOD::MuonAuxContainer#HLT_Muons_FSPhII_newFastAux.', 'BS ESD AODFULL AODSLIM', 'Muon'),
122
123 ('xAOD::MuonContainer#HLT_Muons_FSPhII_mlbkt', 'BS ESD AODFULL AODSLIM', 'Muon', [InViews("EFMuMSReco_FSPhII_mlbktViews")]),
124 ('xAOD::MuonAuxContainer#HLT_Muons_FSPhII_mlbktAux.', 'BS ESD AODFULL AODSLIM', 'Muon'),
125
126 # EF Precise Reco muon tracks (SA) in RoI views
127 ('xAOD::TrackParticleContainer#HLT_MuonMSTrackParticles_RoIPhII', 'BS ESD AODFULL', 'Muon', [InViews('EFMuMSReco_RoIPhIIViews')]),
128 ('xAOD::TrackParticleAuxContainer#HLT_MuonMSTrackParticles_RoIPhIIAux.', 'BS ESD AODFULL', 'Muon'),
129
130 ('xAOD::TrackParticleContainer#HLT_MuonMSTrackParticles_RoIPhII_newFast', 'BS ESD AODFULL', 'Muon', [InViews('EFMuMSReco_RoIPhII_newFastViews')]),
131 ('xAOD::TrackParticleAuxContainer#HLT_MuonMSTrackParticles_RoIPhII_newFastAux.','BS ESD AODFULL', 'Muon'),
132
133 ('xAOD::TrackParticleContainer#HLT_MuonMSTrackParticles_RoIPhII_mlbkt', 'BS ESD AODFULL', 'Muon', [InViews('EFMuMSReco_RoIPhII_mlbktViews')]),
134 ('xAOD::TrackParticleAuxContainer#HLT_MuonMSTrackParticles_RoIPhII_mlbktAux.', 'BS ESD AODFULL', 'Muon'),
135
136 # EF Precise Reco muon tracks (SA) in FS views
137 ('xAOD::TrackParticleContainer#HLT_MuonMSTrackParticles_FSPhII', 'BS ESD AODFULL', 'Muon', [InViews('EFMuMSReco_FSPhIIViews')]),
138 ('xAOD::TrackParticleAuxContainer#HLT_MuonMSTrackParticles_FSPhIIAux.', 'BS ESD AODFULL', 'Muon'),
139
140 ('xAOD::TrackParticleContainer#HLT_MuonMSTrackParticles_FSPhII_newFast', 'BS ESD AODFULL', 'Muon', [InViews('EFMuMSReco_FSPhII_newFastViews')]),
141 ('xAOD::TrackParticleAuxContainer#HLT_MuonMSTrackParticles_FSPhII_newFastAux.', 'BS ESD AODFULL', 'Muon'),
142
143 ('xAOD::TrackParticleContainer#HLT_MuonMSTrackParticles_FSPhII_mlbkt', 'BS ESD AODFULL', 'Muon', [InViews('EFMuMSReco_FSPhII_mlbktViews')]),
144 ('xAOD::TrackParticleAuxContainer#HLT_MuonMSTrackParticles_FSPhII_mlbktAux.', 'BS ESD AODFULL', 'Muon'),
145
146 # EF Displaced Vertex inference outputs
147 ('xAOD::TrigCompositeContainer#EF_MuonDVInferenceOutput', 'BS ESD AODFULL', 'Muon'),
148 ('xAOD::TrigCompositeAuxContainer#EF_MuonDVInferenceOutputAux.Score', 'BS ESD AODFULL', 'Muon'),
149
150 # Tau
151 ('xAOD::CaloClusterContainer#HLT_TopoCaloClustersEM', 'BS ESD AODFULL', 'Tau', [InViews('tauCaloEMMVAViews')]),
152 ('xAOD::CaloClusterTrigAuxContainer#HLT_TopoCaloClustersEMAux.nCells', 'BS ESD AODFULL', 'Tau'),
153
154 ('xAOD::TrackParticleContainer#HLT_IDTrack_TauCoreEM_FTF', 'BS ESD AODFULL', 'Tau', [InViews('tauFastTrackCoreEMViews')]),
155 ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_TauCoreEM_FTFAux.', 'BS ESD AODFULL', 'Tau'),
156
157 ('xAOD::TrackParticleContainer#HLT_IDTrack_TauIsoEM_FTF', 'BS ESD AODFULL', 'Tau', [InViews('tauFastTrackIsoEMViews')]),
158 ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_TauIsoEM_FTFAux.', 'BS ESD AODFULL', 'Tau'),
159
160 ('TrigRoiDescriptorCollection#HLT_Roi_TauCoreEM', 'BS ESD AODFULL', 'Tau'),
161 ('TrigRoiDescriptorCollection#HLT_Roi_TauIsoEM', 'BS ESD AODFULL', 'Tau'),
162
163 ('xAOD::TauJetContainer#HLT_TrigTauRecMerged_CaloEMOnly', 'BS ESD AODFULL', 'Tau', [InViews('tauCaloEMMVAViews')]),
164 ('xAOD::TauJetAuxContainer#HLT_TrigTauRecMerged_CaloEMOnlyAux.', 'BS ESD AODFULL', 'Tau'),
165
166 ('xAOD::TauJetContainer#HLT_TrigTauRecMerged_EM', 'BS ESD AODFULL', 'Tau', [InViews('precEMTauViews'), InViews('tauPrecisionReco_EMViews')]),
167 ('xAOD::TauJetAuxContainer#HLT_TrigTauRecMerged_EMAux.' + TauJet_vars_str, 'BS ESD AODFULL', 'Tau'),
168
169 # tau tracks
170 ('xAOD::TauTrackContainer#HLT_tautrack_EM', 'BS ESD AODFULL', 'Tau', [InViews('precEMTauViews'), InViews('tauPrecisionReco_EMViews')]),
171 ('xAOD::TauTrackAuxContainer#HLT_tautrack_EMAux.' + TauTrack_vars_str, 'BS ESD AODFULL', 'Tau'),
172
173
174]
175
176#-------------------------------------------------------------------------------
177# EDM details list to store the transient-persistent version
178#-------------------------------------------------------------------------------
179EDMDetailsRun4 = {}
180
181# xAOD versions are auto-detected at serialisation, but T/P classes need to specify P version here
182EDMDetailsRun4[ "TrigRoiDescriptorCollection" ] = {'persistent':"TrigRoiDescriptorCollection_p3"}
183EDMDetailsRun4[ "Muon::NSW_TrigRawDataContainer" ] = {'persistent':"Muon::NSW_TrigRawDataContainer_p1"}
184
185EDMDetailsRun4[ "xAOD::TrigDecisionAuxInfo" ] = {'parent':"xAOD::TrigDecision"}
186EDMDetailsRun4[ "xAOD::CaloClusterTrigAuxContainer" ] = {'parent':"xAOD::CaloClusterContainer"}
list[str] getTauIDVars(str name, list[str]|None wps=None, list[str]|None extra_wps=None)