ATLAS Offline Software
Loading...
Searching...
No Matches
TileTriggerCalibAlgConfig.py
Go to the documentation of this file.
2# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3#
4'''
5@file TileTriggerCalibAlgConfig.py
6@brief Python configuration of TileTriggerDefaultCalibTool tool for the Run III
7'''
8
9from AthenaConfiguration.Enums import Format
10from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
11from TileConfiguration.TileConfigFlags import TileRunType
12
13def TileTriggerDefaulCalibToolCfg(flags, **kwargs):
14
15 ''' Function to configure TileTriggerDefaultCalibTool tool'''
16
17 kwargs.setdefault('TileRawChannelContainer', 'TileRawChannelFit')
18 kwargs.setdefault('TriggerTowerContainer', 'xAODTriggerTowers')
19
20 acc = ComponentAccumulator()
21
22 from TileConditions.TileCablingSvcConfig import TileCablingSvcCfg
23 acc.merge( TileCablingSvcCfg(flags) )
24
25 if 'TileCondToolEmscale' not in kwargs:
26 from TileConditions.TileEMScaleConfig import TileCondToolEmscaleCfg
27 emScaleTool = acc.popToolsAndMerge( TileCondToolEmscaleCfg(flags) )
28 kwargs['TileCondToolEmscale'] = emScaleTool
29
30 from TileGeoModel.TileGMConfig import TileGMCfg
31 acc.merge(TileGMCfg( flags ))
32
33 from TileRecUtils.TileDQstatusConfig import TileDQstatusAlgCfg
34 acc.merge( TileDQstatusAlgCfg(flags) )
35
36 # For running on bytestream data
37 if flags.Input.Format is Format.BS:
38 from TriggerJobOpts.TriggerByteStreamConfig import ByteStreamReadCfg
39 acc.merge(ByteStreamReadCfg(flags, type_names=['xAOD::TriggerTowerContainer/xAODTriggerTowers',
40 'xAOD::TriggerTowerAuxContainer/xAODTriggerTowersAux.']))
41
42 from AthenaConfiguration.ComponentFactory import CompFactory
43 TileTriggerDefalutCalibTool = CompFactory.TileTriggerDefaultCalibTool
44
45 acc.setPrivateTools(TileTriggerDefalutCalibTool(**kwargs))
46
47 return acc
48
49
50'''
51@brief Python configuration of TileTriggerCalibAlg algorithm for the Run III
52'''
53def TileTriggerCalibAlgCfg(flags, **kwargs):
54
55 ''' Function to configure TileTriggerCalibAlg algorithm'''
56
57 kwargs.setdefault('name', 'TileTriggerCalibAlg')
58 kwargs.setdefault('RunType', TileRunType.CIS.getIntValue())
59 kwargs.setdefault('RunNumber', flags.Input.RunNumbers[0])
60
61 acc = ComponentAccumulator()
62
63 if 'TileCalibTools' not in kwargs:
64 triggerCalibTool = acc.popToolsAndMerge( TileTriggerDefaulCalibToolCfg(flags) )
65 kwargs['TileCalibTools'] = [triggerCalibTool]
66
67 from AthenaConfiguration.ComponentFactory import CompFactory
68 TileTopCalibAlg = CompFactory.TileTopCalibAlg
69
70 acc.addEventAlgo(TileTopCalibAlg(**kwargs), primary=True)
71
72 return acc
73
74if __name__=='__main__':
75
76 # Setup logs
77 from AthenaCommon.Logging import log
78 from AthenaCommon.Constants import INFO
79 log.setLevel(INFO)
80
81 # Set the Athena configuration flags
82 from AthenaConfiguration.AllConfigFlags import initConfigFlags
83 from AthenaConfiguration.TestDefaults import defaultConditionsTags, defaultGeometryTags, defaultTestFiles
84 flags = initConfigFlags()
85 flags.Input.Files = defaultTestFiles.RAW_RUN2
86 flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN2
87 flags.IOVDb.GlobalTag = defaultConditionsTags.RUN2_DATA
88 flags.Tile.doFit = True
89 flags.Tile.RunType = TileRunType.CIS
90 flags.Exec.MaxEvents = 3
91 flags.fillFromArgs()
92 flags.lock()
93
94 # Initialize configuration object, add accumulator, merge, and run.
95 from AthenaConfiguration.MainServicesConfig import MainServicesCfg
96 cfg = MainServicesCfg(flags)
97
98 from TileByteStream.TileByteStreamConfig import TileRawDataReadingCfg
99 cfg.merge( TileRawDataReadingCfg(flags) )
100
101 from TileRecUtils.TileRawChannelMakerConfig import TileRawChannelMakerCfg
102 cfg.merge( TileRawChannelMakerCfg(flags) )
103
104 cfg.merge( TileTriggerCalibAlgCfg(flags) )
105
106 cfg.printConfig(withDetails = True, summariseProps = True)
107 flags.dump()
108
109 cfg.store( open('TileTriggerCalibAlg.pkl','wb') )
110
111 sc = cfg.run()
112
113 import sys
114 # Success should be 0
115 sys.exit(not sc.isSuccess())