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, reloadEveryEvent=False):
64 result=ComponentAccumulator()
65 result.merge(LArOnOffIdMappingSCCfg(configFlags))
66 from IOVDbSvc.IOVDbSvcConfig import addFolders
67 result.merge(addFolders(configFlags,"/LAR/BadChannels/MaskedSC","LAR_ONL",
68 tag="LARBadChannelsMaskedSC-RUN3-UPD1-00",
69 className="CondAttrListCollection",
70 extensible=reloadEveryEvent))
71 condAlgo = CompFactory.LArBadChannelCondAlg(name="MaskedSCCondAlg",ReadKey="/LAR/BadChannels/MaskedSC",isSC=True,
72 CablingKey="LArOnOffIdMapSC",WriteKey="LArMaskedSC",
73 ReloadEveryEvent=reloadEveryEvent)
74 result.addCondAlgo(condAlgo)
75 return result
76
77
78if __name__=="__main__":
79
80 from AthenaConfiguration.AllConfigFlags import initConfigFlags
81 from AthenaCommon.Logging import log
82 from AthenaCommon.Constants import DEBUG
83 log.setLevel(DEBUG)
84
85 flags=initConfigFlags()
86 flags.Input.isMC = False
87 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"]
88 flags.lock()
89
90 cfg=ComponentAccumulator()
91
92 cfg.merge(LArBadChannelCfg(flags))
93 cfg.merge(LArBadFebCfg(flags))
94 f=open("LArBCCondAlgos.pkl","wb")
95 cfg.store(f)
96 f.close()
97
LArMaskedSCCfg(configFlags, reloadEveryEvent=False)
LArBadChannelCfg(configFlags, tag=None, isSC=False)
LArBadFebCfg(configFlags, tag=None, dbname=None)