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