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 LArOnOffIdMappingCfg(configFlags):
38 return _larCablingCfg(configFlags,LArOnOffMappingAlg,"/LAR/Identifier/OnOffIdMap")
39
40def LArOnOffIdMappingSCCfg(configFlags):
41 result = ComponentAccumulator()
42 # mapping requires the geometry to be loaded
43 from LArGeoAlgsNV.LArGMConfig import LArGMCfg
44 result.merge(LArGMCfg(configFlags))
45 if configFlags.Input.isMC:
46 result.merge(_larCablingCfg(configFlags,LArOnOffMappingAlg,"/LAR/IdentifierOfl/OnOffIdMap_SC","LArOnOffMappingAlgSC"))
47 from IOVDbSvc.IOVDbSvcConfig import addOverride
48 result.merge(addOverride(configFlags, "/LAR/IdentifierOfl/OnOffIdMap_SC", "LARIdentifierOflOnOffIdMap_SC-000")) # FIXME temporary?
49 else:
50 result.merge(_larCablingCfg(configFlags,LArOnOffMappingAlg,"/LAR/Identifier/OnOffIdMap_SC","LArOnOffMappingAlgSC"))
51 result.getCondAlgo("LArOnOffMappingAlgSC").WriteKey = "LArOnOffIdMapSC"
52 result.getCondAlgo("LArOnOffMappingAlgSC").isSuperCell = True
53 return result
54
55def LArFebRodMappingCfg(configFlags):
56 return _larCablingCfg(configFlags,LArFebRodMappingAlg,"/LAR/Identifier/FebRodMap")
57
58def LArCalibIdMappingCfg(configFlags):
59 return _larCablingCfg(configFlags,LArCalibLineMappingAlg,"/LAR/Identifier/CalibIdMap")
60
61def LArCalibIdMappingSCCfg(configFlags):
62 result = ComponentAccumulator()
63 if not configFlags.Input.isMC:
64 result.merge(_larCablingCfg(configFlags,LArCalibLineMappingAlg,"/LAR/Identifier/CalibIdMap_SC","LArCalibLineMappingAlgSC"))
65 result.getCondAlgo("LArCalibLineMappingAlgSC").WriteKey="LArCalibIdMapSC"
66 result.getCondAlgo("LArCalibLineMappingAlgSC").isSuperCell=True
67 result.getCondAlgo("LArCalibLineMappingAlgSC").MaxCL=16
68 return result
69
70def LArLATOMEMappingCfg(configFlags):
71 result=IOVDbSvcCfg(configFlags)
72 folder="/LAR/Identifier/LatomeMapping"
73 fTag=None
74 if not configFlags.IOVDb.UseCREST: fTag="CONDBR2-BLKPA-2026-01-02"
75
76 if configFlags.Input.isMC:
77 #HACK ALERT: Force-reading from CONDBR2 (Real-data DB) even in the MC case
78 result.merge(addFolders(configFlags,folder,tag=fTag, detDb="LAR_ONL",db="CONDBR2",className="CondAttrListCollection"))
79 else:
80 result.merge(addFolders(configFlags,folder,className="CondAttrListCollection",detDb='LAR_ONL'))
81 result.addCondAlgo(LArLATOMEMappingAlg(ReadKey=folder,WriteKey="LArLATOMEMap"))
82
83 return result
84
85def LArIdMapCfg(configFlags):
86 """Return ComponentAccumulator configured with Identifier Map in POOL/COOL"""
87 # replaces LArIdMap_MC_jobOptions.py or LArIdMap_comm_jobOptions.py
88 result = LArOnOffIdMappingCfg(configFlags)
89 result.merge(LArFebRodMappingCfg(configFlags))
90 result.merge(LArCalibIdMappingCfg(configFlags))
91 return result
92
93
94if __name__ == "__main__":
95 from AthenaConfiguration.AllConfigFlags import initConfigFlags
96 from AthenaConfiguration.TestDefaults import defaultTestFiles
97
98 flags=initConfigFlags()
99 flags.Input.Files = defaultTestFiles.RAW_RUN2
100 flags.lock()
101
102 acc = LArOnOffIdMappingCfg( flags )
103 acc.merge(LArFebRodMappingCfg(flags))
104 acc.merge(LArCalibIdMappingCfg(flags))
105 acc.store( open( "test.pkl", "wb" ) )
106 print ("All OK")
class to fill SC mapping object from conditions DB
LArFebRodMappingCfg(configFlags)
_larCablingCfg(configFlags, algo, folder, algName=None)
LArIdMapCfg(configFlags)
LArLATOMEMappingCfg(configFlags)
LArCalibIdMappingCfg(configFlags)
LArOnOffIdMappingSCCfg(configFlags)
LArCalibIdMappingSCCfg(configFlags)
LArOnOffIdMappingCfg(configFlags)