ATLAS Offline Software
LArBadChannelConfig.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.ComponentAccumulator import ComponentAccumulator
4 from AthenaConfiguration.ComponentFactory import CompFactory
5 from LArCabling.LArCablingConfig import LArOnOffIdMappingCfg, LArOnOffIdMappingSCCfg
6 from IOVDbSvc.IOVDbSvcConfig import addFolders, addFoldersSplitOnline
7 
8 def 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 
43 def 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 
63 def LArMaskedSCCfg(configFlags):
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=configFlags.Common.isOnline )) # when run online, need folder to be extensible to force reload each event
71  condAlgo = CompFactory.LArBadChannelCondAlg(name="MaskedSCCondAlg",ReadKey="/LAR/BadChannels/MaskedSC",isSC=True,
72  CablingKey="LArOnOffIdMapSC",WriteKey="LArMaskedSC")
73  result.addCondAlgo(condAlgo)
74  return result
75 
76 
77 if __name__=="__main__":
78 
79  from AthenaConfiguration.AllConfigFlags import initConfigFlags
80  from AthenaCommon.Logging import log
81  from AthenaCommon.Constants import DEBUG
82  log.setLevel(DEBUG)
83 
85  flags.Input.isMC = False
86  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"]
87  flags.lock()
88 
90 
91  cfg.merge(LArBadChannelCfg(flags))
92  cfg.merge(LArBadFebCfg(flags))
93  f=open("LArBCCondAlgos.pkl","wb")
94  cfg.store(f)
95  f.close()
96 
LArCablingConfig.LArOnOffIdMappingSCCfg
def LArOnOffIdMappingSCCfg(configFlags)
Definition: LArCablingConfig.py:65
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.LArBadChannelConfig.LArBadFebCfg
def LArBadFebCfg(configFlags, tag=None, dbname=None)
Definition: LArBadChannelConfig.py:43
python.LArBadChannelConfig.LArBadChannelCfg
def LArBadChannelCfg(configFlags, tag=None, isSC=False)
Definition: LArBadChannelConfig.py:8
Constants
some useful constants -------------------------------------------------—
python.IOVDbSvcConfig.addFolders
def addFolders(flags, folderStrings, detDb=None, className=None, extensible=False, tag=None, db=None, modifiers='')
Definition: IOVDbSvcConfig.py:86
LArCablingConfig.LArOnOffIdMappingCfg
def LArOnOffIdMappingCfg(configFlags)
Definition: LArCablingConfig.py:62
python.LArBadChannelConfig.LArMaskedSCCfg
def LArMaskedSCCfg(configFlags)
Definition: LArBadChannelConfig.py:63
python.IOVDbSvcConfig.addFoldersSplitOnline
def addFoldersSplitOnline(flags, detDb, onlineFolders, offlineFolders, className=None, extensible=False, addMCString='_OFL', splitMC=False, tag=None, forceDb=None, modifiers='')
Definition: IOVDbSvcConfig.py:167
Trk::open
@ open
Definition: BinningType.h:40
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19