ATLAS Offline Software
LArMissingFebs2Ascii.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 from AthenaConfiguration.ComponentFactory import CompFactory
3 from IOVDbSvc.IOVDbSvcConfig import addFolders
4 
5 
6 def LArBadFebs2AsciiCfg(flags,OutputFile,dbname="LAR_OFL",folder=None,tag=None):
7  from LArGeoAlgsNV.LArGMConfig import LArGMCfg
8  result=LArGMCfg(flags)
9 
10  from LArCabling.LArCablingConfig import LArOnOffIdMappingCfg
11  result.merge(LArOnOffIdMappingCfg(flags))
12 
13  if folder is None:
14  if dbname == "LAR_ONL":
15  folder="/LAR/BadChannels/KnownBADFEBs"
16  else:
17  folder="/LAR/BadChannelsOfl/KnownBADFEBs"
18 
19  if tag is not None:
20  if not tag.startswith("LAR"):
21  if not tag.startswith("-"): tag= "-"+tag
22  tag="".join(folder.split("/"))+tag
23 
24  print("Tag=",tag)
25 
26  result.merge(addFolders(flags,folder,dbname,tag=tag,
27  className="AthenaAttributeList"))
28 
29  result.addCondAlgo(CompFactory.LArBadFebCondAlg("LArKnownBadFebAlg",ReadKey=folder,WriteKey="LArBadFeb"))
30 
31  result.addEventAlgo(CompFactory.LArBadFeb2Ascii(FileName=OutputFile))
32 
33  return result
34 
35 
36 
37 if __name__=="__main__":
38  import sys,argparse
39  parser= argparse.ArgumentParser()
40  parser.add_argument("--loglevel", default=None, help="logging level (ALL, VERBOSE, DEBUG,INFO, WARNING, ERROR, or FATAL")
41  parser.add_argument("-r","--runnumber",default=0x7fffffff, type=int, help="run number to query the DB")
42  parser.add_argument("-l","--lbnumber",default=1, type=int, help="LB number to query the DB")
43  parser.add_argument("-d","--database",default="LAR_OFL", help="Database name or sqlite file name")
44  parser.add_argument("-o","--output",default="bf_output.txt", help="output file name")
45  parser.add_argument("-f","--folder",default=None, help="database folder to read")
46  parser.add_argument("-t","--tag",default=None, help="folder-level tag to read")
47 
48  (args,leftover)=parser.parse_known_args(sys.argv[1:])
49 
50  if len(leftover)>0:
51  print("ERROR, unhandled argument(s):",leftover)
52  sys.exit(-1)
53 
54  from AthenaConfiguration.AllConfigFlags import initConfigFlags
55  from LArCalibProcessing.LArCalibConfigFlags import addLArCalibFlags
57  addLArCalibFlags(flags)
58 
59  flags.Input.isMC = False
60  flags.IOVDb.DatabaseInstance="CONDBR2"
61  flags.LAr.doAlign=False
62  flags.Input.RunNumbers=[args.runnumber]
63  flags.IOVDb.GlobalTag="CONDBR2-ES1PA-2022-06"
64  from AthenaConfiguration.TestDefaults import defaultGeometryTags
65  flags.GeoModel.AtlasVersion=defaultGeometryTags.RUN3
66 
67  if args.loglevel:
68  from AthenaCommon import Constants
69  if hasattr(Constants,args.loglevel):
70  flags.Exec.OutputLevel=getattr(Constants,args.loglevel)
71  else:
72  raise ValueError("Unknown log-level, allowed values are ALL, VERBOSE, DEBUG,INFO, WARNING, ERROR, FATAL")
73 
74  flags.lock()
75 
76  from AthenaConfiguration.MainServicesConfig import MainServicesCfg
77  cfg=MainServicesCfg(flags)
78  #MC Event selector since we have no input data file
79  from McEventSelector.McEventSelectorConfig import McEventSelectorCfg
80  cfg.merge(McEventSelectorCfg(flags,
81  FirstLB=args.lbnumber,
82  EventsPerRun = 1,
83  FirstEvent = 1,
84  InitialTimeStamp = 0,
85  TimeStampInterval = 1))
86 
87  cfg.merge(LArBadFebs2AsciiCfg(flags,args.output,
88  dbname=args.database,
89  folder=args.folder,
90  tag=args.tag))
91 
92 
93 
94  sc=cfg.run(1)
95  if sc.isSuccess():
96  sys.exit(0)
97  else:
98  sys.exit(1)
python.MainServicesConfig.MainServicesCfg
def MainServicesCfg(flags, LoopMgr='AthenaEventLoopMgr')
Definition: MainServicesConfig.py:256
python.McEventSelectorConfig.McEventSelectorCfg
def McEventSelectorCfg(flags, **kwargs)
Definition: McEventSelectorConfig.py:5
python.IOVDbSvcConfig.addFolders
def addFolders(flags, folderStrings, detDb=None, className=None, extensible=False, tag=None, db=None, modifiers='')
Definition: IOVDbSvcConfig.py:72
LArCablingConfig.LArOnOffIdMappingCfg
def LArOnOffIdMappingCfg(configFlags)
Definition: LArCablingConfig.py:62
LArGMConfig.LArGMCfg
def LArGMCfg(flags)
Definition: LArGMConfig.py:8
TCS::join
std::string join(const std::vector< std::string > &v, const char c=',')
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/Root/StringUtils.cxx:10
python.LArMissingFebs2Ascii.LArBadFebs2AsciiCfg
def LArBadFebs2AsciiCfg(flags, OutputFile, dbname="LAR_OFL", folder=None, tag=None)
Definition: LArMissingFebs2Ascii.py:6
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
Muon::print
std::string print(const MuPatSegment &)
Definition: MuonTrackSteering.cxx:28
python.LArCalibConfigFlags.addLArCalibFlags
def addLArCalibFlags(flags, isSC=False)
Definition: LArCalibConfigFlags.py:3