ATLAS Offline Software
Loading...
Searching...
No Matches
LArMissingFebs2Ascii.py
Go to the documentation of this file.
1# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2from AthenaConfiguration.ComponentFactory import CompFactory
3from IOVDbSvc.IOVDbSvcConfig import addFolders
4
5
6def 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
37if __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
56 flags=initConfigFlags()
57 addLArCalibFlags(flags)
58 flags.Input.Files = []
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)
void print(char *figname, TCanvas *c1)
LArBadFebs2AsciiCfg(flags, OutputFile, dbname="LAR_OFL", folder=None, tag=None)