ATLAS Offline Software
TCAL2.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 #!/usr/bin/env python
3 
4 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
5 from AthenaConfiguration.ComponentFactory import CompFactory
6 from AthenaConfiguration.Enums import LHCPeriod, MetadataCategory
7 
8 def TCAL2MbtsToVectorsToolCfg(flags, **kwargs):
9  """ Configure the MbtsToVectorsTool augmentation tool """
10 
11  acc = ComponentAccumulator()
12 
13  from TileGeoModel.TileGMConfig import TileGMCfg
14  acc.merge(TileGMCfg(flags))
15 
16  from LArGeoAlgsNV.LArGMConfig import LArGMCfg
17  acc.merge(LArGMCfg(flags))
18 
19  kwargs.setdefault('name', 'TCAL2MbtsToVectorsTool')
20  kwargs.setdefault('Prefix', 'TCAL2_mbts_')
21  kwargs.setdefault('SaveEtaPhiInfo', True)
22  kwargs.setdefault('CellContainer', 'MBTSContainer')
23 
24  MbtsToVectorsTool = CompFactory.DerivationFramework.MbtsToVectorsTool
25  acc.addPublicTool(MbtsToVectorsTool(**kwargs), primary = True)
26 
27  return acc
28 
29 
30 def TCAL2E4prToVectorsToolCfg(flags, **kwargs):
31  """ Configure the E4prToVectorsTool augmentation tool """
32 
33  acc = ComponentAccumulator()
34 
35  from TileGeoModel.TileGMConfig import TileGMCfg
36  acc.merge(TileGMCfg(flags))
37 
38  from LArGeoAlgsNV.LArGMConfig import LArGMCfg
39  acc.merge(LArGMCfg(flags))
40 
41  kwargs.setdefault('name', 'TCAL2E4prToVectorsTool')
42  kwargs.setdefault('Prefix', 'TCAL2_e4pr')
43  kwargs.setdefault('SaveEtaPhiInfo', False)
44  kwargs.setdefault('CellContainer', 'E4prContainer')
45 
46  MbtsToVectorsTool = CompFactory.DerivationFramework.MbtsToVectorsTool
47  acc.addPublicTool(MbtsToVectorsTool(**kwargs), primary = True)
48 
49  return acc
50 
51 
52 def TCAL2KernelCfg(flags, name='TCAL2Kernel', **kwargs):
53  """Configure the TCAL2 derivation framework driving algorithm (kernel)"""
54 
55  acc = ComponentAccumulator()
56 
57  prefix = kwargs.pop('Prefix', 'TCAL2_')
58 
59  cellsToVectorstools = []
60  if flags.GeoModel.Run in [LHCPeriod.Run1, LHCPeriod.Run2, LHCPeriod.Run3]:
61  cellsToVectorstools.append( acc.getPrimaryAndMerge(TCAL2MbtsToVectorsToolCfg(flags, Prefix=f'{prefix}mbts_')) )
62  if flags.GeoModel.Run is LHCPeriod.Run2:
63  cellsToVectorstools += acc.getPrimaryAndMerge(TCAL2E4prToVectorsToolCfg(flags, Prefix=f'{prefix}e4pr_'))
64 
65  DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
66  acc.addEventAlgo(DerivationKernel(name, AugmentationTools = cellsToVectorstools))
67 
68  return acc
69 
70 def TCAL2Cfg(flags):
71  """Configure the TCAL1 derivation framework"""
72 
73  TCAL2Prefix = 'TCAL2_'
74 
75  acc = ComponentAccumulator()
76  acc.merge(TCAL2KernelCfg(flags, name="TCAL2Kernel", StreamName = "StreamDAOD_TCAL2", Prefix=TCAL2Prefix))
77 
78  from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
79  from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
80  from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
81  TCAL2SlimmingHelper = SlimmingHelper("TCAL2SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
82  TCAL2SlimmingHelper.SmartCollections = ["EventInfo"]
83 
84  if flags.GeoModel.Run in [LHCPeriod.Run1, LHCPeriod.Run2, LHCPeriod.Run3]:
85  mbtsItems = [f'std::vector<float>#TCAL2_mbts_{item}' for item in ['energy', 'time', 'eta', 'phi']]
86  mbtsItems += [f'std::vector<int>#TCAL2_mbts_{item}' for item in ['quality', 'module', 'channel', 'type']]
87  TCAL2SlimmingHelper.StaticContent = mbtsItems
88  if flags.GeoModel.Run is LHCPeriod.Run2:
89  e4prItems = [f'std::vector<float>#TCAL2_e4pr_{item}' for item in ['energy', 'time']]
90  e4prItems += ['std::vector<int>#TCAL2_e4pr_{item}' for item in ['quality', 'module', 'channel', 'type']]
91  TCAL2SlimmingHelper.StaticContent += e4prItems
92  TCAL2ItemList = TCAL2SlimmingHelper.GetItemList()
93 
94  acc.merge(OutputStreamCfg(flags, "DAOD_TCAL2", ItemList=TCAL2ItemList, AcceptAlgs=["TCAL2Kernel"]))
95  acc.merge(SetupMetaDataForStreamCfg(flags, "DAOD_TCAL2", AcceptAlgs=["TCAL2Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))
96 
97  return acc
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.OutputStreamConfig.OutputStreamCfg
def OutputStreamCfg(flags, streamName, ItemList=[], MetadataItemList=[], disableEventTag=False, trigNavThinningSvc=None, takeItemsFromInput=False, extendProvenanceRecord=True, AcceptAlgs=[], HelperTools=[])
Definition: OutputStreamConfig.py:12
HION12.DerivationKernel
DerivationKernel
Definition: HION12.py:67
TCAL2.TCAL2MbtsToVectorsToolCfg
def TCAL2MbtsToVectorsToolCfg(flags, **kwargs)
Definition: TCAL2.py:8
TCAL2.TCAL2E4prToVectorsToolCfg
def TCAL2E4prToVectorsToolCfg(flags, **kwargs)
Definition: TCAL2.py:30
TCAL2.TCAL2Cfg
def TCAL2Cfg(flags)
Definition: TCAL2.py:70
LArGMConfig.LArGMCfg
def LArGMCfg(flags)
Definition: LArGMConfig.py:8
TCAL2.TCAL2KernelCfg
def TCAL2KernelCfg(flags, name='TCAL2Kernel', **kwargs)
Definition: TCAL2.py:52
InfileMetaDataConfig.SetupMetaDataForStreamCfg
def SetupMetaDataForStreamCfg(flags, streamName="", AcceptAlgs=None, createMetadata=None, propagateMetadataFromInput=True, *args, **kwargs)
Definition: InfileMetaDataConfig.py:216
SlimmingHelper
Definition: SlimmingHelper.py:1
TileGMConfig.TileGMCfg
def TileGMCfg(flags)
Definition: TileGMConfig.py:7