ATLAS Offline Software
Loading...
Searching...
No Matches
HION2.py
Go to the documentation of this file.
1# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2# HION2.py
3
4from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
5from AthenaConfiguration.ComponentFactory import CompFactory
6from AthenaConfiguration.Enums import MetadataCategory
7from AthenaCommon.CFElements import seqAND
8from InDetConfig.InDetTrackSelectionToolConfig import InDetTrackSelectionTool_HITight_Cfg
9
10
13 """Configure the example skimming tool"""
14 acc = ComponentAccumulator()
15
16 ExtraData = []
17 ExtraData += ['xAOD::MuonContainer/Muons']
18 ExtraData += ['xAOD::ElectronContainer/Electrons']
19 ExtraData += ['xAOD::VertexContainer/PrimaryVertices']
20
21 acc.addSequence( seqAND("HION2Sequence") )
22 acc.getSequence("HION2Sequence").ExtraDataForDynamicConsumers = ExtraData
23 acc.getSequence("HION2Sequence").ProcessDynamicDataDependencies = True
24
25 #Building jet skimming triggers
26 from DerivationFrameworkHI import ListTriggers
27
28 triggers = []
29 triggers += ListTriggers.HION2MinBiasOxygenOxygen2025()
30
31 expression = ' ( ' +' || '.join(triggers) + ' )'
32
33 from DerivationFrameworkTools.DerivationFrameworkToolsConfig import (
34 xAODStringSkimmingToolCfg)
35 acc.addPublicTool(acc.getPrimaryAndMerge(xAODStringSkimmingToolCfg(
36 flags, name = "HION2StringSkimmingTool", expression = expression)), primary = True)
37 return(acc)
38
39
41 """Configure the example augmentation tool"""
42 acc = ComponentAccumulator()
43
44 from InDetConfig.InDetTrackSelectionToolConfig import InDetTrackSelectionTool_HILoose_Cfg
45
46 TrkSelTool_hi_loose = acc.popToolsAndMerge(InDetTrackSelectionTool_HILoose_Cfg(flags,
47 name = "TrackSelectionTool_hi_loose",
48 minPt = 100))
49
50 TrkSelTool_hi_tight = acc.popToolsAndMerge(InDetTrackSelectionTool_HITight_Cfg(flags,
51 name = "TrackSelectionTool_hi_tight",
52 minPt = 100))
53 acc.addPublicTool(TrkSelTool_hi_loose)
54 acc.addPublicTool(TrkSelTool_hi_tight)
55
56 # Configure magnetic field conditions for vertex fitting
57 from MagFieldServices.MagFieldServicesConfig import AtlasFieldCacheCondAlgCfg
58 acc.merge(AtlasFieldCacheCondAlgCfg(flags))
59
60 # Configure TrkToLeptonPVTool for chi2 calculation
61 vkalVrtFitter = CompFactory.Trk.TrkVKalVrtFitter(name="HION2_VKalVrtFitter")
62 acc.addPublicTool(vkalVrtFitter)
63
64 trkToLeptonPVTool = CompFactory.TrkToLeptonPVTool(
65 name="HION2_TrkToLeptonPVTool",
66 VertexFitter=vkalVrtFitter
67 )
68 acc.addPublicTool(trkToLeptonPVTool)
69
70 acc.addPublicTool(CompFactory.DerivationFramework.HITrackQualityAugmentationTool(name= "HION2AugmentationTool",
71 TrackSelectionTool_pp = TrkSelTool_hi_loose, #didnt find a tool for minbias
72 TrackSelectionTool_hi_loose =TrkSelTool_hi_loose,
73 TrackSelectionTool_hi_tight =TrkSelTool_hi_tight,
74 TrkToLeptonPVTool = trkToLeptonPVTool),
75 primary = True)
76 return(acc)
77
78def HION2KernelCfg(flags, name='HION2Kernel', **kwargs):
79 """Configure the derivation framework driving algorithm (kernel)"""
80 acc = ComponentAccumulator()
81
82 skimmingTool = acc.getPrimaryAndMerge(HION2SkimmingToolCfg(flags))
83 augmentationTool = acc.getPrimaryAndMerge(HION2AugmentationToolCfg(flags))
84
85 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
86 acc.addEventAlgo(DerivationKernel(name,
87 SkimmingTools = [skimmingTool],
88 AugmentationTools = [augmentationTool]),
89 sequenceName = "HION2Sequence")
90
91 return acc
92
93def HION2Cfg(flags):
94
95 acc = ComponentAccumulator()
96 acc.merge(HION2KernelCfg(flags, name="HION2Kernel",StreamName = "StreamDAOD_HION2"))
97
98 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
99 from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
100 from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
101
102
104 from DerivationFrameworkHI import ListSlimming
105
106 HION2SlimmingHelper = SlimmingHelper("HION2SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
107
108 AllVar = []
109 AllVar += ListSlimming.HION2AllVariablesGeneral()
110 AllVar += ListSlimming.HION2AllVariablesPbPb_2015_5TeV()
111 AllVar += ListSlimming.HION2AllVariablespPb_2016()
112
113 ExtraVar = []
114 ExtraVar += ListSlimming.HION2ExtraVariablesGeneral()
115 ExtraVar += ListSlimming.HION2ExtraVariablesPbPb_2015_5TeV()
116
117 HION2SlimmingHelper.AllVariables = AllVar
118 HION2SlimmingHelper.ExtraVariables = ExtraVar
119
120 HION2ItemList = HION2SlimmingHelper.GetItemList()
121
122 acc.merge(OutputStreamCfg(flags, "DAOD_HION2", ItemList=HION2ItemList, AcceptAlgs=["HION2Kernel"]))
123 acc.merge(SetupMetaDataForStreamCfg(flags, "DAOD_HION2", AcceptAlgs=["HION2Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))
124
125 return acc
HION2SkimmingToolCfg(flags)
Skiming.
Definition HION2.py:12
HION2AugmentationToolCfg(flags)
Definition HION2.py:40
HION2Cfg(flags)
Definition HION2.py:93
HION2KernelCfg(flags, name='HION2Kernel', **kwargs)
Definition HION2.py:78