ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
LArCalorimeter
LArCabling
python
LArCablingConfig.py
Go to the documentation of this file.
1
# Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
2
3
from
AthenaConfiguration.ComponentFactory
import
CompFactory
4
from
AthenaConfiguration.ComponentAccumulator
import
ComponentAccumulator
5
from
IOVDbSvc.IOVDbSvcConfig
import
IOVDbSvcCfg, addFolders
6
LArOnOffMappingAlg, LArFebRodMappingAlg, LArCalibLineMappingAlg,LArLATOMEMappingAlg=CompFactory.getComps(
"LArOnOffMappingAlg"
,
"LArFebRodMappingAlg"
,
"LArCalibLineMappingAlg"
,
"LArLATOMEMappingAlg"
)
7
8
def
_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
37
def
LArOnOffIdMappingCfg
(configFlags):
38
return
_larCablingCfg
(configFlags,LArOnOffMappingAlg,
"/LAR/Identifier/OnOffIdMap"
)
39
40
def
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
55
def
LArFebRodMappingCfg
(configFlags):
56
return
_larCablingCfg
(configFlags,LArFebRodMappingAlg,
"/LAR/Identifier/FebRodMap"
)
57
58
def
LArCalibIdMappingCfg
(configFlags):
59
return
_larCablingCfg
(configFlags,LArCalibLineMappingAlg,
"/LAR/Identifier/CalibIdMap"
)
60
61
def
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
70
def
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
85
def
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
94
if
__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"
)
LArLATOMEMappingAlg
class to fill SC mapping object from conditions DB
Definition
LArLATOMEMappingAlg.h:21
LArCablingConfig.LArFebRodMappingCfg
LArFebRodMappingCfg(configFlags)
Definition
LArCablingConfig.py:55
LArCablingConfig._larCablingCfg
_larCablingCfg(configFlags, algo, folder, algName=None)
Definition
LArCablingConfig.py:8
LArCablingConfig.LArIdMapCfg
LArIdMapCfg(configFlags)
Definition
LArCablingConfig.py:85
LArCablingConfig.LArLATOMEMappingCfg
LArLATOMEMappingCfg(configFlags)
Definition
LArCablingConfig.py:70
LArCablingConfig.LArCalibIdMappingCfg
LArCalibIdMappingCfg(configFlags)
Definition
LArCablingConfig.py:58
LArCablingConfig.LArOnOffIdMappingSCCfg
LArOnOffIdMappingSCCfg(configFlags)
Definition
LArCablingConfig.py:40
LArCablingConfig.LArCalibIdMappingSCCfg
LArCalibIdMappingSCCfg(configFlags)
Definition
LArCablingConfig.py:61
LArCablingConfig.LArOnOffIdMappingCfg
LArOnOffIdMappingCfg(configFlags)
Definition
LArCablingConfig.py:37
Generated on
for ATLAS Offline Software by
1.17.0