ATLAS Offline Software
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 
4 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
5 from AthenaConfiguration.ComponentFactory import CompFactory
6 from AthenaConfiguration.Enums import MetadataCategory
7 from AthenaCommon.CFElements import seqAND
8 from 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 
80 def 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 
95 def 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
python.OutputStreamConfig.OutputStreamCfg
def OutputStreamCfg(flags, streamName, ItemList=None, MetadataItemList=None, disableEventTag=False, trigNavThinningSvc=None, takeItemsFromInput=False, extendProvenanceRecord=True, keepProvenanceTagsRegEx=None, AcceptAlgs=None, HelperTools=None)
Definition: OutputStreamConfig.py:13
python.HION2.HION2Cfg
def HION2Cfg(flags)
Definition: HION2.py:95
python.HION2.HION2KernelCfg
def HION2KernelCfg(flags, name='HION2Kernel', **kwargs)
Definition: HION2.py:80
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:342
python.HION2.HION2SkimmingToolCfg
def HION2SkimmingToolCfg(flags)
Skiming.
Definition: HION2.py:12
python.HION2.HION2AugmentationToolCfg
def HION2AugmentationToolCfg(flags)
Definition: HION2.py:42
python.InDetTrackSelectionToolConfig.InDetTrackSelectionTool_HITight_Cfg
def InDetTrackSelectionTool_HITight_Cfg(flags, name="InDetTrackSelectionTool_HITight", **kwargs)
Definition: InDetTrackSelectionToolConfig.py:73
TCS::join
std::string join(const std::vector< std::string > &v, const char c=',')
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/Root/StringUtils.cxx:10
python.TriggerInterface.TrigDecisionToolCfg
def TrigDecisionToolCfg(flags)
Definition: TriggerInterface.py:14
python.InDetTrackSelectionToolConfig.InDetTrackSelectionTool_HILoose_Cfg
def InDetTrackSelectionTool_HILoose_Cfg(flags, name="InDetTrackSelectionTool_HILoose", **kwargs)
Definition: InDetTrackSelectionToolConfig.py:68
python.CFElements.seqAND
def seqAND(name, subs=[], invert=False)
Definition: CFElements.py:27
python.MagFieldServicesConfig.AtlasFieldCacheCondAlgCfg
def AtlasFieldCacheCondAlgCfg(flags, **kwargs)
Definition: MagFieldServicesConfig.py:8
InfileMetaDataConfig.SetupMetaDataForStreamCfg
def SetupMetaDataForStreamCfg(flags, streamName="", AcceptAlgs=None, createMetadata=None, propagateMetadataFromInput=True, *args, **kwargs)
Definition: InfileMetaDataConfig.py:222
SlimmingHelper
Definition: SlimmingHelper.py:1
python.HION12.DerivationKernel
DerivationKernel
Definition: HION12.py:66