ATLAS Offline Software
Loading...
Searching...
No Matches
TileHid2RESrcIDConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2
3"""Define methods to construct configured TileHid2ReSrcIDCondAlg conditions algorithm"""
4
5from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
6from AthenaConfiguration.ComponentFactory import CompFactory
7from IOVDbSvc.IOVDbSvcConfig import addFolders
8
9def TileHid2RESrcIDCondAlg(ForHLT=False, **kwargs):
10 """Configure TileHid2ReSrcIDCondAlg conditions algorithm"""
11
12 hid2RESrcID = 'TileHid2RESrcIDHLT' if ForHLT else 'TileHid2RESrcID'
13 hid2RESrcIDCondAlg = f'{hid2RESrcID}CondAlg'
14 from AthenaCommon.AlgSequence import AthSequencer
15 condSequence = AthSequencer("AthCondSeq")
16 if hasattr(condSequence, hid2RESrcIDCondAlg):
17 return #Already there....
18
19 from TileByteStream.TileByteStreamConf import TileHid2RESrcIDCondAlg
20 condSequence += TileHid2RESrcIDCondAlg(name=hid2RESrcIDCondAlg, ForHLT=ForHLT, TileHid2RESrcID=hid2RESrcID, **kwargs)
21 return
22
23
24def TileHid2RESrcIDCondAlgCfg(flags, source='COOL', **kwargs):
25 """Return component accumulator with configured TileHid2ReSrcIDCondAlg conditions algorithm"""
26
27 forHLT = kwargs.get('ForHLT', False)
28 hid2RESrcID = 'TileHid2RESrcIDHLT' if forHLT else 'TileHid2RESrcID'
29 kwargs.setdefault('TileHid2RESrcID', hid2RESrcID)
30 kwargs.setdefault('name', f'{hid2RESrcID}CondAlg')
31
32 acc = ComponentAccumulator()
33
34 from TileGeoModel.TileGMConfig import TileGMCfg
35 acc.merge( TileGMCfg(flags) )
36
37 if source == 'COOL':
38 rodFolder = None
39 # Connect COOL Tile conditions proxies to the tool
40 if flags.IOVDb.DatabaseInstance == 'COMP200':
41 # In the COMP200 DB there is no conditions with ROD status
42 kwargs['FullTileMode'] = 1 # Configure predifined mapping for Run1
43 elif flags.Input.isMC:
44 rodFolder = '/TILE/OFL02/STATUS/ROD'
45 # Temporary tag is hardcoded until it is connected to the global tags
46 acc.merge(addFolders(flags, rodFolder, 'TILE_OFL', tag='TileOfl02StatusRod-RUN3-00', className='CondAttrListCollection'))
47 else:
48 rodFolder = '/TILE/ONL01/STATUS/ROD'
49 acc.merge(addFolders(flags, rodFolder, 'TILE', className='CondAttrListCollection'))
50
51 if rodFolder:
52 TileCondProxyCoolInt = CompFactory.getComp("TileCondProxyCool<TileCalibDrawerInt>")
53 rodStatusProxy = TileCondProxyCoolInt('TileCondProxyCool_ROD', Source=rodFolder)
54 kwargs['RODStatusProxy'] = rodStatusProxy
55
56 elif source == 'FILE':
57 TileCondProxyFileInt = CompFactory.getComp("TileCondProxyFile<TileCalibDrawerInt>")
58 rodStatusProxy = TileCondProxyFileInt('TileCondProxyFile_ROD', Source='TileDefault.fullrod')
59 kwargs['RODStatusProxy'] = rodStatusProxy
60
61 TileHid2ReSrcIDCondAlg = CompFactory.TileHid2RESrcIDCondAlg
62 acc.addCondAlgo( TileHid2ReSrcIDCondAlg(**kwargs) )
63
64 return acc
65
66
67
68if __name__ == "__main__":
69
70 from AthenaConfiguration.AllConfigFlags import initConfigFlags
71 from AthenaConfiguration.TestDefaults import defaultGeometryTags, defaultTestFiles
72 from AthenaCommon.Logging import log
73 from AthenaCommon.Constants import INFO
74
75 # Test setup
76 log.setLevel(INFO)
77
78 flags = initConfigFlags()
79 flags.Input.Files = defaultTestFiles.RAW_RUN2
80 flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN2
81 flags.lock()
82
83 # Initialize configuration object, add accumulator, merge, and run.
84 from AthenaConfiguration.MainServicesConfig import MainServicesCfg
85 cfg = MainServicesCfg(flags)
86
87 from ByteStreamCnvSvc.ByteStreamConfig import ByteStreamReadCfg
88 cfg.merge( ByteStreamReadCfg(flags) )
89
90 cfg.merge( TileHid2RESrcIDCondAlgCfg(flags, ForHLT=True) )
91
92 cfg.printConfig(withDetails = True, summariseProps = True)
93 cfg.store( open('TileHid2ReSrcIDCondAlg.pkl','wb') )
94
95 sc = cfg.run(3)
96
97 import sys
98 # Success should be 0
99 sys.exit(not sc.isSuccess())
ClassName: AthSequencer.
Condition algorithm to prepare TileHid2RESrcID conditions object and put it into conditions store.
TileHid2RESrcIDCondAlgCfg(flags, source='COOL', **kwargs)
TileHid2RESrcIDCondAlg(ForHLT=False, **kwargs)