12 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
13 from AthenaConfiguration.ComponentFactory
import CompFactory
14 from AthenaConfiguration.Enums
import MetadataCategory
16 TRIG8MergedElectronContainer =
"StdWithLRTElectrons"
17 TRIG8MergedMuonContainer =
"StdWithLRTMuons"
21 """Configure the derivation framework driving algorithm (kernel) for TRIG8"""
27 from DerivationFrameworkInDet.InDetToolsConfig
import InDetLRTMergeCfg
31 from DerivationFrameworkLLP.LLPToolsConfig
import LRTMuonMergerAlg
33 PromptMuonLocation =
"Muons",
34 LRTMuonLocation =
"MuonsLRT",
35 OutputMuonLocation = TRIG8MergedMuonContainer,
36 CreateViewCollection =
True))
39 from DerivationFrameworkLLP.LLPToolsConfig
import LRTElectronMergerAlg
41 PromptElectronLocation =
"Electrons",
42 LRTElectronLocation =
"LRTElectrons",
43 OutputCollectionName = TRIG8MergedElectronContainer,
45 CreateViewCollection =
True))
48 augmentationTools = [ ]
51 from DerivationFrameworkPhys.PhysCommonConfig
import PhysCommonAugmentationsCfg
55 from DerivationFrameworkEGamma.EGammaLRTConfig
import EGammaLRTCfg
58 from DerivationFrameworkLLP.LLPToolsConfig
import LRTElectronLHSelectorsCfg
62 from DerivationFrameworkMuons.MuonsCommonConfig
import MuonsCommonCfg
66 from TriggerMenuMT.TriggerAPI.TriggerAPI
import TriggerAPI
67 from TriggerMenuMT.TriggerAPI.TriggerEnums
import TriggerPeriod
69 allperiods = TriggerPeriod.y2015 | TriggerPeriod.y2016 | TriggerPeriod.y2017 | TriggerPeriod.y2018 | TriggerPeriod.future2e34
70 TriggerAPI.setConfigFlags(flags)
71 trig_all =
list(TriggerAPI.getAllHLT(allperiods).
keys())
74 TriggerListsHelper = kwargs[
'TriggerListsHelper']
75 trig_all += TriggerListsHelper.Run3TriggerNames
78 displaced_jet_triggers = [t
for t
in trig_all
if "dispjet" in t]
79 bjet_veto = [
"HLT_e26_lhtight_ivarloose_2j20_0eta290_020jvt_boffperf_pf_ftf_L1EM22VHI"]
80 bjet_triggers = [t
for t
in trig_all
if "boffperf" in t
and t
not in bjet_veto]
83 from DerivationFrameworkInDet.InDetToolsConfig
import TrackParticleThinningCfg
84 from DerivationFrameworkTools.DerivationFrameworkToolsConfig
import GenericObjectThinningCfg
85 from DerivationFrameworkTrigger.TriggerGenericObjectThinningConfig
import TriggerGenericThinningCfg
92 name =
"TRIG8PhotonsThinningTool",
93 StreamName = kwargs[
'StreamName'],
94 ContainerName =
"Photons",
95 SelectionString =
"Photons.pt >= 1000000."))
99 name =
"TRIG8TrackParticleThinningTool",
100 StreamName = kwargs[
'StreamName'],
101 SelectionString =
"InDetTrackParticles.pt > 1*GeV",
102 InDetTrackParticlesKey =
"InDetTrackParticles"))
106 name =
"TRIG8LRTTrackParticleThinningTool",
107 StreamName = kwargs[
'StreamName'],
108 SelectionString =
"InDetLargeD0TrackParticles.pt > 1*GeV",
109 InDetTrackParticlesKey =
"InDetLargeD0TrackParticles"))
112 thinningTools = [TRIG8PhotonsThinningTool,
113 TRIG8TrackParticleThinningTool,
114 TRIG8LRTTrackParticleThinningTool]
116 if((
not flags.Input.isMC)
or "HLT_AntiKt4EMTopoJets_subjesIS" in flags.Input.Collections):
119 name =
"TRIG8JetThinningTool",
120 StreamName = kwargs[
'StreamName'],
121 ContainerName =
"HLT_AntiKt4EMTopoJets_subjesIS",
122 TriggerListOR =
sorted(
list(
set(displaced_jet_triggers + bjet_triggers)))
125 thinningTools.append(TRIG8JETThinningTool)
131 idtrig_keys = [
'idperf',
'boffperf',
'ivarperf',
'idtp']
133 idtrig_veto = [
'HLT_e26_lhtight_ivarloose_2j20_0eta290_020jvt_boffperf_pf_ftf_L1EM22VHI']
135 additional_triggers = [
137 "HLT_j45_pf_ftf_preselj20_L1J15",
138 "HLT_xe80_tcpufit_isotrk120_medium_iaggrmedium_L1XE55",
139 "HLT_xe80_tcpufit_isotrk140_medium_iaggrmedium_L1XE55",
140 "HLT_xe80_tcpufit_dedxtrk50_medium_L1XE50",
141 "HLT_xe80_tcpufit_distrk20_medium_L1XE50",
142 "HLT_xe80_tcpufit_distrk20_tight_L1XE50",
145 idtrig_keys += additional_triggers
146 idtrig_keys += displaced_jet_triggers
148 triggers = [t
for t
in trig_all
for k
in idtrig_keys
if k
in t]
149 for veto
in idtrig_veto:
151 triggers.remove(veto)
153 print(f
"Warning, {veto} already removed from trigger list.")
157 print(
'TRIG8 list of triggers used for skimming:')
158 for trig
in triggers:
print(trig)
160 TriggerSkimmingTool = CompFactory.DerivationFramework.TriggerSkimmingTool
161 TRIG8TriggerSkimmingTool = TriggerSkimmingTool(name =
"TRIG8TriggerPreSkimmingTool",
163 TriggerListOR = triggers)
164 acc.addPublicTool(TRIG8TriggerSkimmingTool)
166 skimmingTools.append(TRIG8TriggerSkimmingTool)
168 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
170 SkimmingTools = skimmingTools,
171 ThinningTools = thinningTools,
172 AugmentationTools = augmentationTools))
185 from DerivationFrameworkPhys.TriggerListsHelper
import TriggerListsHelper
186 TRIG8TriggerListsHelper = TriggerListsHelper(flags)
189 acc.merge(
TRIG8KernelCfg(flags, name=
"TRIG8Kernel", StreamName =
'StreamDAOD_TRIG8', TriggerListsHelper = TRIG8TriggerListsHelper))
195 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
196 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
197 from DerivationFrameworkCore.SlimmingHelper
import SlimmingHelper
199 TRIG8SlimmingHelper =
SlimmingHelper(
"TRIG8SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
201 TRIG8SlimmingHelper.SmartCollections = [
"EventInfo",
208 "InDetTrackParticles",
209 "InDetLargeD0TrackParticles",
211 "AntiKt4EMPFlowJets",
212 "BTagging_AntiKt4EMTopo",
213 "BTagging_AntiKt4EMPFlow",
217 TRIG8SlimmingHelper.AllVariables = [
"HLT_IDTrack_Electron_FTF",
218 "HLT_IDTrack_ElecLRT_FTF",
219 "HLT_IDTrack_Electron_IDTrig",
220 "HLT_IDTrack_ElecLRT_IDTrig",
221 "HLT_IDTrack_Electron_GSF",
222 "HLT_IDTrack_Electron_LRTGSF",
223 "HLT_IDTrack_Muon_FTF",
224 "HLT_IDTrack_Muon_IDTrig",
225 "HLT_IDTrack_MuonLRT_IDTrig",
226 "HLT_IDTrack_MuonIso_FTF",
227 "HLT_IDTrack_MuonIso_IDTrig",
228 "HLT_IDTrack_MuonLRT_FTF",
229 "HLT_IDTrack_Bmumux_FTF",
230 "HLT_IDTrack_Bmumux_IDTrig",
231 "HLT_IDTrack_TauCore_FTF",
232 "HLT_IDTrack_TauLRT_FTF",
233 "HLT_IDTrack_TauIso_FTF",
234 "HLT_IDTrack_Tau_IDTrig",
235 "HLT_IDTrack_TauLRT_IDTrig",
236 "HLT_IDTrack_FS_FTF",
237 "HLT_IDTrack_FSLRT_FTF",
238 "HLT_IDTrack_FSLRT_IDTrig",
239 "HLT_IDTrack_DVLRT_FTF",
240 "HLT_IDTrack_BeamSpot_FTF",
241 "HLT_IDTrack_JetSuper_FTF",
242 "HLT_IDTrack_Bjet_FTF",
243 "HLT_IDTrack_Bjet_IDTrig",
244 "HLT_IDTrack_MinBias_IDTrig",
245 "HLT_IDTrack_Cosmic_FTF",
246 "HLT_IDTrack_Cosmic_IDTrig",
247 "HLT_IDTrack_DJLRT_FTF",
248 "BTagging_AntiKt4EMPFlowSecVtx",
249 "HLT_AntiKt4EMPFlowJets_subresjesgscIS_ftf_BTaggingSecVtx",
251 "HLT_IDVertex_JetSuper",
255 "InDetDisappearingTrackParticles" ]
259 TRIG8SlimmingHelper.StaticContent = [
260 "TrigRoiDescriptorCollection#HLT_FSRoI",
261 "TrigRoiDescriptorCollection#HLT_MURoIs",
262 "TrigRoiDescriptorCollection#HLT_eEMRoIs",
263 "TrigRoiDescriptorCollection#HLT_eTAURoIs",
264 "TrigRoiDescriptorCollection#HLT_jTAURoIs",
265 "TrigRoiDescriptorCollection#HLT_cTAURoIs",
266 "TrigRoiDescriptorCollection#HLT_jEMRoIs",
267 "TrigRoiDescriptorCollection#HLT_jJRoIs",
268 "TrigRoiDescriptorCollection#HLT_jLJRoIs",
269 "TrigRoiDescriptorCollection#HLT_gJRoIs",
270 "TrigRoiDescriptorCollection#HLT_gLJRoIs",
271 "TrigRoiDescriptorCollection#HLT_EMRoIs",
272 "TrigRoiDescriptorCollection#HLT_METRoI",
273 "TrigRoiDescriptorCollection#HLT_JETRoI",
274 "TrigRoiDescriptorCollection#HLT_TAURoI",
275 "TrigRoiDescriptorCollection#HLT_Roi_LArPEBHLT",
276 "TrigRoiDescriptorCollection#HLT_Roi_IDCalibPEB",
277 "TrigRoiDescriptorCollection#HLT_Roi_FastElectron",
278 "TrigRoiDescriptorCollection#HLT_Roi_FastElectron_probe",
279 "TrigRoiDescriptorCollection#HLT_Roi_FastElectron_LRT",
280 "TrigRoiDescriptorCollection#HLT_Roi_FastElectron_LRT_probe",
281 "TrigRoiDescriptorCollection#HLT_Roi_FastPhoton",
282 "TrigRoiDescriptorCollection#HLT_Roi_FastPhoton_probe",
283 "TrigRoiDescriptorCollection#HLT_Roi_Bmumux",
284 "TrigRoiDescriptorCollection#MuonCandidates_FS_ROIs",
285 "TrigRoiDescriptorCollection#HLT_Roi_L2SAMuon",
286 "TrigRoiDescriptorCollection#HLT_Roi_L2SAMuon_probe",
287 "TrigRoiDescriptorCollection#HLT_Roi_L2SAMuon_LRT",
288 "TrigRoiDescriptorCollection#HLT_Roi_L2SAMuon_LRT_probe",
289 "TrigRoiDescriptorCollection#HLT_Roi_L2SAMuonForEF",
290 "TrigRoiDescriptorCollection#HLT_Roi_L2SAMuonForEF_probe",
291 "TrigRoiDescriptorCollection#HLT_Roi_MuonIso",
292 "TrigRoiDescriptorCollection#HLT_Roi_MuonIso_probe",
293 "TrigRoiDescriptorCollection#HLT_Roi_Tau",
294 "TrigRoiDescriptorCollection#HLT_Roi_Tau_probe",
295 "TrigRoiDescriptorCollection#HLT_Roi_TauCore",
296 "TrigRoiDescriptorCollection#HLT_Roi_TauCore_probe",
297 "TrigRoiDescriptorCollection#HLT_Roi_TauLRT",
298 "TrigRoiDescriptorCollection#HLT_Roi_TauLRT_probe",
299 "TrigRoiDescriptorCollection#HLT_Roi_TauIso",
300 "TrigRoiDescriptorCollection#HLT_Roi_TauIso_probe",
301 "TrigRoiDescriptorCollection#HLT_Roi_TauIsoBDT",
302 "TrigRoiDescriptorCollection#HLT_Roi_TauIsoBDT_probe",
303 "TrigRoiDescriptorCollection#HLT_Roi_JetPEBPhysicsTLA",
304 "TrigRoiDescriptorCollection#HLT_Roi_DV",
305 "TrigRoiDescriptorCollection#HLT_Roi_Bjet",
306 "TrigRoiDescriptorCollection#HLT_Roi_FS",
307 "TrigRoiDescriptorCollection#HLT_Roi_JetSuper",
308 "TrigRoiDescriptorCollection#HLT_Roi_DJ",
309 "TrigInDetTrackTruthMap#TrigInDetTrackTruthMap" ]
311 TRIG8SlimmingHelper.ExtraVariables += [
312 "Electrons.Tight.Medium.Loose.LHTight.LHMedium.LHLoose",
313 "LRTElectrons.Tight.Medium.Loose.LHTight.LHMedium.LHLoose",
314 "egammaClusters.phi_sampl.eta0.phi0",
315 "LRTegammaClusters.phi_sampl.eta0.phi0",
316 "TruthPrimaryVertices.t.x.y.z",
317 "PrimaryVertices.t.x.y.z.numberDoF.chiSquared.covariance.trackParticleLinks",
318 "InDetTrackParticles.d0.z0.vz.vx.vy.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.truthParticleLink.truthMatchProbability.radiusOfFirstHit.hitPattern.trackFitter.patternRecoInfo.numberDoF.numberOfTRTHits.numberOfTRTOutliers.numberOfBLayerHits.expectBLayerHit.numberOfPixelDeadSensors.numberOfSCTDeadSensors.numberOfTRTHighThresholdHits.expectInnermostPixelLayerHit",
319 "InDetLargeD0TrackParticles.d0.z0.vz.vx.vy.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.truthParticleLink.truthMatchProbability.radiusOfFirstHit.hitPattern.trackFitter.patternRecoInfo.numberDoF.numberOfTRTHits.numberOfTRTOutliers.numberOfBLayerHits.expectBLayerHit.numberOfPixelDeadSensors.numberOfSCTDeadSensors.numberOfTRTHighThresholdHits.expectInnermostPixelLayerHit",
320 "GSFTrackParticles.d0.z0.vz.vx.vy.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.truthParticleLink.truthMatchProbability.radiusOfFirstHit.numberOfPixelHoles.numberOfSCTHoles.numberDoF.chiSquared.trackFitter.patternRecoInfo.hitPattern.numberOfTRTHits.numberOfTRTOutliers.numberOfBLayerHits.expectBLayerHit.numberOfPixelDeadSensors.numberOfSCTDeadSensors.numberOfTRTHighThresholdHits.expectInnermostPixelLayerHit",
321 "LRTGSFTrackParticles.d0.z0.vz.vx.vy.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.truthParticleLink.truthMatchProbability.radiusOfFirstHit.numberOfPixelHoles.numberOfSCTHoles.numberDoF.chiSquared.trackFitter.patternRecoInfo.hitPattern.numberOfTRTHits.numberOfTRTOutliers.numberOfBLayerHits.expectBLayerHit.numberOfPixelDeadSensors.numberOfSCTDeadSensors.numberOfTRTHighThresholdHits.expectInnermostPixelLayerHit",
322 "EventInfo.hardScatterVertexLink.timeStampNSOffset",
323 "TauJets.dRmax.etOverPtLeadTrk",
324 "HLT_AntiKt4EMTopoJets_subjesIS.m.pt.eta.phi"]
329 from DerivationFrameworkMCTruth.MCTruthCommonConfig
import addTruth3ContentToSlimmerTool
331 TRIG8SlimmingHelper.AllVariables += [
'TruthHFWithDecayParticles',
'TruthHFWithDecayVertices',
'TruthCharm',
'TruthPileupParticles',
'InTimeAntiKt4TruthJets',
'OutOfTimeAntiKt4TruthJets']
332 TRIG8SlimmingHelper.ExtraVariables += [
"Electrons.TruthLink",
333 "LRTElectrons.TruthLink",
335 "MuonsLRT.TruthLink",
341 TRIG8SlimmingHelper.IncludeTriggerNavigation =
True
342 TRIG8SlimmingHelper.IncludeAdditionalTriggerContent =
True
343 TRIG8SlimmingHelper.IncludeJetTriggerContent =
False
344 TRIG8SlimmingHelper.IncludeMuonTriggerContent =
False
345 TRIG8SlimmingHelper.IncludeEGammaTriggerContent =
False
346 TRIG8SlimmingHelper.IncludeJetTauEtMissTriggerContent =
False
347 TRIG8SlimmingHelper.IncludeTauTriggerContent =
False
348 TRIG8SlimmingHelper.IncludeEtMissTriggerContent =
False
349 TRIG8SlimmingHelper.IncludeBJetTriggerContent =
False
350 TRIG8SlimmingHelper.IncludeBPhysTriggerContent =
False
351 TRIG8SlimmingHelper.IncludeMinBiasTriggerContent =
False
355 if flags.Trigger.EDMVersion == 2:
356 from DerivationFrameworkLLP.LLPToolsConfig
import LLP1TriggerMatchingToolRun2Cfg
358 name =
"LRTTriggerMatchingTool",
359 OutputContainerPrefix =
"LRTTrigMatch_",
360 TriggerList = TRIG8TriggerListsHelper.Run2TriggerNamesNoTau,
361 InputElectrons=TRIG8MergedElectronContainer,
362 InputMuons=TRIG8MergedMuonContainer
364 from DerivationFrameworkPhys.TriggerMatchingCommonConfig
import AddRun2TriggerMatchingToSlimmingHelper
366 OutputContainerPrefix =
"TrigMatch_",
367 TriggerList = TRIG8TriggerListsHelper.Run2TriggerNamesTau)
369 OutputContainerPrefix =
"TrigMatch_",
370 TriggerList = TRIG8TriggerListsHelper.Run2TriggerNamesNoTau)
372 OutputContainerPrefix =
"LRTTrigMatch_",
373 TriggerList = TRIG8TriggerListsHelper.Run2TriggerNamesNoTau,
374 InputElectrons=TRIG8MergedElectronContainer,
375 InputMuons=TRIG8MergedMuonContainer
378 elif flags.Trigger.EDMVersion == 3:
379 from TrigNavSlimmingMT.TrigNavSlimmingMTConfig
import AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
383 TRIG8ItemList = TRIG8SlimmingHelper.GetItemList()
384 acc.merge(
OutputStreamCfg(flags,
"DAOD_TRIG8", ItemList=TRIG8ItemList, AcceptAlgs=[
"TRIG8Kernel"]))
385 acc.merge(
SetupMetaDataForStreamCfg(flags,
"DAOD_TRIG8", AcceptAlgs=[
"TRIG8Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))