ATLAS Offline Software
Loading...
Searching...
No Matches
LArCablingConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
2
3from AthenaConfiguration.ComponentFactory import CompFactory
4from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
5from IOVDbSvc.IOVDbSvcConfig import IOVDbSvcCfg, addFolders
6LArOnOffMappingAlg, LArFebRodMappingAlg, LArCalibLineMappingAlg,LArLATOMEMappingAlg=CompFactory.getComps("LArOnOffMappingAlg","LArFebRodMappingAlg","LArCalibLineMappingAlg","LArLATOMEMappingAlg")
7
8def _larCablingCfg(configFlags,algo,folder,algName=None):
9 result=ComponentAccumulator()
10
11 result.merge(IOVDbSvcCfg(configFlags))
12
13 #MC folder-tag hack (See also ATCONDDB-49)
14 tagsperFolder={"/LAR/Identifier/OnOffIdMap":"LARIdentifierOnOffIdMap-012",
15 "/LAR/Identifier/FebRodMap":"LARIdentifierFebRodMap-005",
16 "/LAR/Identifier/CalibIdMap":"LARIdentifierCalibIdMap-012",
17 }
18
19 if configFlags.Input.isMC:
20 db='LAR_OFL'
21 if folder in tagsperFolder:
22 ft=tagsperFolder[folder]
23 folderwithtag=folder+"<tag>"+ft+"</tag>"
24 else:
25 folderwithtag=folder
26 else:
27 db='LAR_ONL'
28 folderwithtag=folder
29
30 if algName is None:
31 result.addCondAlgo(algo(ReadKey=folder),primary=True)
32 else:
33 result.addCondAlgo(algo(name=algName, ReadKey=folder),primary=True)
34 result.merge(addFolders(configFlags,folderwithtag,className="AthenaAttributeList",detDb=db))
35 return result
36
37def _larLatomeCfg(configFlags,algo,folder,outkey):
38 result=ComponentAccumulator()
39
40 result.merge(IOVDbSvcCfg(configFlags))
41
42 if configFlags.Input.isMC:
43 result.merge(addFolders(configFlags,folder,tag="CONDBR2-BLKPA-2026-01-02",detDb="LAR_ONL",db="CONDBR2",className="CondAttrListCollection"))
44 else:
45 result.merge(addFolders(configFlags,folder,className="CondAttrListCollection",detDb='LAR_ONL'))
46
47 result.addCondAlgo(algo(ReadKey=folder,WriteKey=outkey),primary=True)
48 return result
49
50def LArOnOffIdMappingCfg(configFlags):
51 return _larCablingCfg(configFlags,LArOnOffMappingAlg,"/LAR/Identifier/OnOffIdMap")
52
53def LArOnOffIdMappingSCCfg(configFlags):
54 result = ComponentAccumulator()
55 # mapping requires the geometry to be loaded
56 from LArGeoAlgsNV.LArGMConfig import LArGMCfg
57 result.merge(LArGMCfg(configFlags))
58 if configFlags.Input.isMC:
59 result.merge(_larCablingCfg(configFlags,LArOnOffMappingAlg,"/LAR/IdentifierOfl/OnOffIdMap_SC","LArOnOffMappingAlgSC"))
60 from IOVDbSvc.IOVDbSvcConfig import addOverride
61 result.merge(addOverride(configFlags, "/LAR/IdentifierOfl/OnOffIdMap_SC", "LARIdentifierOflOnOffIdMap_SC-000")) # FIXME temporary?
62 else:
63 result.merge(_larCablingCfg(configFlags,LArOnOffMappingAlg,"/LAR/Identifier/OnOffIdMap_SC","LArOnOffMappingAlgSC"))
64 result.getCondAlgo("LArOnOffMappingAlgSC").WriteKey = "LArOnOffIdMapSC"
65 result.getCondAlgo("LArOnOffMappingAlgSC").isSuperCell = True
66 return result
67
68def LArFebRodMappingCfg(configFlags):
69 return _larCablingCfg(configFlags,LArFebRodMappingAlg,"/LAR/Identifier/FebRodMap")
70
71def LArCalibIdMappingCfg(configFlags):
72 return _larCablingCfg(configFlags,LArCalibLineMappingAlg,"/LAR/Identifier/CalibIdMap")
73
74def LArCalibIdMappingSCCfg(configFlags):
75 result = ComponentAccumulator()
76 if not configFlags.Input.isMC:
77 result.merge(_larCablingCfg(configFlags,LArCalibLineMappingAlg,"/LAR/Identifier/CalibIdMap_SC","LArCalibLineMappingAlgSC"))
78 result.getCondAlgo("LArCalibLineMappingAlgSC").WriteKey="LArCalibIdMapSC"
79 result.getCondAlgo("LArCalibLineMappingAlgSC").isSuperCell=True
80 result.getCondAlgo("LArCalibLineMappingAlgSC").MaxCL=16
81 return result
82
83def LArLATOMEMappingCfg(configFlags):
84 result = ComponentAccumulator()
85 result.merge(_larLatomeCfg(configFlags,LArLATOMEMappingAlg,"/LAR/Identifier/LatomeMapping","LArLATOMEMap"))
86 return result
87
88def LArIdMapCfg(configFlags):
89 """Return ComponentAccumulator configured with Identifier Map in POOL/COOL"""
90 # replaces LArIdMap_MC_jobOptions.py or LArIdMap_comm_jobOptions.py
91 result = LArOnOffIdMappingCfg(configFlags)
92 result.merge(LArFebRodMappingCfg(configFlags))
93 result.merge(LArCalibIdMappingCfg(configFlags))
94 return result
95
96
97if __name__ == "__main__":
98 from AthenaConfiguration.AllConfigFlags import initConfigFlags
99 from AthenaConfiguration.TestDefaults import defaultTestFiles
100
101 flags=initConfigFlags()
102 flags.Input.Files = defaultTestFiles.RAW_RUN2
103 flags.lock()
104
105 acc = LArOnOffIdMappingCfg( flags )
106 acc.merge(LArFebRodMappingCfg(flags))
107 acc.merge(LArCalibIdMappingCfg(flags))
108 acc.store( open( "test.pkl", "wb" ) )
109 print ("All OK")
LArLATOMEMappingCfg(configFlags)
_larCablingCfg(configFlags, algo, folder, algName=None)
LArCalibIdMappingSCCfg(configFlags)
LArCalibIdMappingCfg(configFlags)
LArFebRodMappingCfg(configFlags)
_larLatomeCfg(configFlags, algo, folder, outkey)
LArOnOffIdMappingCfg(configFlags)
LArOnOffIdMappingSCCfg(configFlags)
LArIdMapCfg(configFlags)