ATLAS Offline Software
Loading...
Searching...
No Matches
LArBadChannelConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2
3from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4from AthenaConfiguration.ComponentFactory import CompFactory
5from LArCabling.LArCablingConfig import LArOnOffIdMappingCfg, LArOnOffIdMappingSCCfg
6from IOVDbSvc.IOVDbSvcConfig import addFolders, addFoldersSplitOnline
7
8def LArBadChannelCfg(configFlags, tag=None, isSC=False):
9
10
11
12 result=ComponentAccumulator()
13 if not isSC:
14 result.merge(LArOnOffIdMappingCfg(configFlags))
15 rekey="/LAR/BadChannels/BadChannels"
16 algname="LArBadChannelCondAlg"
17 else:
18 result.merge(LArOnOffIdMappingSCCfg(configFlags))
19 rekey="/LAR/BadChannels/BadChannelsSC"
20 algname="LArBadChannelCondSCAlg"
21
22 if configFlags.Input.isMC:
23 folder = "/LAR/BadChannels/BadChannelsSC" if isSC else "/LAR/BadChannels/BadChannels"
24 result.merge(addFolders(configFlags,folder,"LAR_OFL",tag=tag,
25 className="CondAttrListCollection"))
26 else:
27 if not isSC:
28 result.merge(addFoldersSplitOnline(configFlags,"LAR","/LAR/BadChannels/BadChannels",
29 f"/LAR/BadChannelsOfl/BadChannels<key>{rekey}</key>",tag=tag,
30 className="CondAttrListCollection"))
31 else :
32 result.merge(addFolders(configFlags,"/LAR/BadChannels/BadChannelsSC",
33 "LAR_ONL",tag=tag,
34 className="CondAttrListCollection"))
35 theLArBadChannelCondAlgo=CompFactory.LArBadChannelCondAlg(name=algname,ReadKey=rekey,isSC=isSC)
36 if isSC:
37 theLArBadChannelCondAlgo.WriteKey="LArBadChannelSC"
38 theLArBadChannelCondAlgo.CablingKey="LArOnOffIdMapSC"
39 result.addCondAlgo(theLArBadChannelCondAlgo)
40 return result
41
42
43def LArBadFebCfg(configFlags, tag=None, dbname=None):
44 result=ComponentAccumulator()
45 rekey="/LAR/BadChannels/MissingFEBs"
46
47 if configFlags.Input.isMC:
48 result.merge(addFolders(configFlags,"/LAR/BadChannels/MissingFEBs","LAR_OFL",tag=tag,
49 className="AthenaAttributeList"))
50 else:
51 if dbname is None:
52 result.merge(addFoldersSplitOnline(configFlags,"LAR","/LAR/BadChannels/MissingFEBs",
53 f"/LAR/BadChannelsOfl/MissingFEBs<key>{rekey}</key>",tag=tag,
54 className="AthenaAttributeList"))
55 else:
56 result.merge(addFolders(configFlags,"/LAR/BadChannelsOfl/MissingFEBs","LAR_OFL",
57 modifiers=f"<key>{rekey}</key>",tag=tag,
58 className="AthenaAttributeList"))
59 pass
60 result.addCondAlgo(CompFactory.LArBadFebCondAlg(ReadKey=rekey))
61 return result
62
63def LArMaskedSCCfg(configFlags):
64
65 reloadEveryEvent = (configFlags.Common.isOnline and configFlags.DQ.doMonitoring)
66
67 result=ComponentAccumulator()
68 result.merge(LArOnOffIdMappingSCCfg(configFlags))
69 from IOVDbSvc.IOVDbSvcConfig import addFolders
70 result.merge(addFolders(configFlags,"/LAR/BadChannels/MaskedSC","LAR_ONL",
71 tag="LARBadChannelsMaskedSC-RUN3-UPD1-00",
72 className="CondAttrListCollection",
73 extensible=reloadEveryEvent))
74 condAlgo = CompFactory.LArBadChannelCondAlg(name="MaskedSCCondAlg",ReadKey="/LAR/BadChannels/MaskedSC",isSC=True,
75 CablingKey="LArOnOffIdMapSC",WriteKey="LArMaskedSC",
76 ReloadEveryEvent=reloadEveryEvent)
77 result.addCondAlgo(condAlgo)
78 return result
79
80
81if __name__=="__main__":
82
83 from AthenaConfiguration.AllConfigFlags import initConfigFlags
84 from AthenaCommon.Logging import log
85 from AthenaCommon.Constants import DEBUG
86 log.setLevel(DEBUG)
87
88 flags=initConfigFlags()
89 flags.Input.isMC = False
90 flags.Input.Files = ["/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/Tier0ChainTests/data17_13TeV.00330470.physics_Main.daq.RAW._lb0310._SFO-1._0001.data"]
91 flags.lock()
92
93 cfg=ComponentAccumulator()
94
95 cfg.merge(LArBadChannelCfg(flags))
96 cfg.merge(LArBadFebCfg(flags))
97 f=open("LArBCCondAlgos.pkl","wb")
98 cfg.store(f)
99 f.close()
100
LArBadChannelCfg(configFlags, tag=None, isSC=False)
LArBadFebCfg(configFlags, tag=None, dbname=None)