ATLAS Offline Software
Loading...
Searching...
No Matches
LArMissingFeb2Ascii.py
Go to the documentation of this file.
1# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2
3from AthenaConfiguration.ComponentFactory import CompFactory
4
5def LArMissingFeb2AsciiCfg(flags,OutputFile,dbname="LAR_OFL",folder=None,tag=None,summaryfile=""):
6 from LArGeoAlgsNV.LArGMConfig import LArGMCfg
7 result=LArGMCfg(flags)
8
9 #Setup regular cabling
10 from LArCabling.LArCablingConfig import LArOnOffIdMappingCfg
11 result.merge(LArOnOffIdMappingCfg(flags))
12
13
14 if folder is None:
15 if dbname in ("LAR","LAR_ONL") or flags.Input.isMC:
16 folder="/LAR/BadChannels/MissingFEBs"
17 else:
18 folder="/LAR/BadChannelsOfl/MissingFEBs"
19
20 if tag is not None:
21 if not tag.startswith("LAR"):
22 if not tag.startswith("-"): tag= "-"+tag
23 tag="".join(folder.split("/"))+tag
24
25 print("Tag=",tag)
26
27 if 'MissingFEBs' in folder:
28 from LArBadChannelTool.LArBadChannelConfig import LArBadFebCfg
29 result.merge(LArBadFebCfg(flags, tag=tag, dbname=dbname))
30 ReadKey='LArBadFeb'
31 elif 'KnownBADFEBs' in folder:
32 from LArBadChannelTool.LArBadFebsConfig import LArKnownBadFebCfg
33 result.merge(LArKnownBadFebCfg(flags,tag=tag, dbname=dbname))
34 ReadKey='LArKnownBadFEBs'
35 elif 'KnownMNBFEBs' in folder:
36 from LArBadChannelTool.LArBadFebsConfig import LArKnownMNBFebCfg
37 result.merge(LArKnownMNBFebCfg(flags,tag=tag, dbname=dbname))
38 ReadKey='LArKnownMNBFEBs'
39 else:
40 print('Unknown folder: ',folder,' exiting !!!')
41 import sys
42 sys.exit(-1)
43
44 theLArMF2Ascii=CompFactory.LArBadFeb2Ascii(FileName=OutputFile,BFKey=ReadKey)
45 result.addEventAlgo(theLArMF2Ascii)
46
47 return result
48
49
50
51if __name__=="__main__":
52 import sys,argparse
53 parser= argparse.ArgumentParser()
54 parser.add_argument("--loglevel", default=None, help="logging level (ALL, VERBOSE, DEBUG,INFO, WARNING, ERROR, or FATAL")
55 parser.add_argument("-r","--runnumber",default=0x7fffffff, type=int, help="run number to query the DB")
56 parser.add_argument("-l","--lbnumber",default=1, type=int, help="LB number to query the DB")
57 parser.add_argument("-d","--database",default="LAR_OFL", help="Database name or sqlite file name")
58 parser.add_argument("-o","--output",default="bc_output.txt", help="output file name")
59 parser.add_argument("-f","--folder",default=None, help="database folder to read")
60 parser.add_argument("-t","--tag",default=None, help="folder-level tag to read")
61 parser.add_argument("-s","--summary",default="", help="Executive summary file")
62 parser.add_argument("--MC", action='store_true', default=False, help="Work on MC DB")
63
64 (args,leftover)=parser.parse_known_args(sys.argv[1:])
65
66 if len(leftover)>0:
67 print("ERROR, unhandled argument(s):",leftover)
68 sys.exit(-1)
69
70 from AthenaConfiguration.AllConfigFlags import initConfigFlags
71 from LArCalibProcessing.LArCalibConfigFlags import addLArCalibFlags
72 flags=initConfigFlags()
73 addLArCalibFlags(flags)
74 flags.Input.Files = []
75 flags.Input.isMC = args.MC
76 flags.IOVDb.DatabaseInstance="OFLP200" if args.MC else "CONDBR2"
77 flags.LAr.doAlign=False
78 flags.Input.RunNumbers=[args.runnumber]
79 flags.IOVDb.GlobalTag="OFLCOND-MC21-SDR-RUN3-11" if args.MC else "CONDBR2-ES1PA-2023-02"
80 if args.MC:
81 from Campaigns.Utils import Campaign
82 flags.Input.MCCampaign = Campaign.MC21a
83 from AthenaConfiguration.TestDefaults import defaultGeometryTags
84 flags.GeoModel.AtlasVersion=defaultGeometryTags.RUN3
85
86 if args.loglevel:
87 from AthenaCommon import Constants
88 if hasattr(Constants,args.loglevel):
89 flags.Exec.OutputLevel=getattr(Constants,args.loglevel)
90 else:
91 raise ValueError("Unknown log-level, allowed values are ALL, VERBOSE, DEBUG,INFO, WARNING, ERROR, FATAL")
92
93 if ".db" in args.database:
94 flags.IOVDb.SqliteInput=args.database
95 if args.folder is None:
96 flags.IOVDb.SqliteFolders=("/LAR/BadChannelsOfl/MissingFEBs")
97 else:
98 flags.IOVDb.SqliteFolders=(args.folder)
99 flags.lock()
100
101 from AthenaConfiguration.MainServicesConfig import MainServicesCfg
102 cfg=MainServicesCfg(flags)
103 #MC Event selector since we have no input data file
104 from McEventSelector.McEventSelectorConfig import McEventSelectorCfg
105 cfg.merge(McEventSelectorCfg(flags,
106 FirstLB=args.lbnumber,
107 EventsPerRun = 1,
108 FirstEvent = 1,
109 InitialTimeStamp = 0,
110 TimeStampInterval = 1))
111
112 cfg.merge(LArMissingFeb2AsciiCfg(flags,args.output,
113 dbname=args.database,
114 folder=args.folder,
115 tag=args.tag,
116 summaryfile=args.summary))
117
118
119
120 sc=cfg.run(1)
121 if sc.isSuccess():
122 sys.exit(0)
123 else:
124 sys.exit(1)
void print(char *figname, TCanvas *c1)
LArMissingFeb2AsciiCfg(flags, OutputFile, dbname="LAR_OFL", folder=None, tag=None, summaryfile="")