2 from AthenaConfiguration.ComponentFactory
import CompFactory
3 from AthenaCommon.Logging
import logging
7 IOVStart=[0,0],IOVEnd=[0x7FFFFFFF,0xFFFFFFFF]):
9 logger = logging.getLogger(
"LArBadFebDBAlgCfg" )
10 from LArGeoAlgsNV.LArGMConfig
import LArGMCfg
13 from LArCabling.LArCablingConfig
import LArOnOffIdMappingCfg
17 if dbname ==
"LAR_ONL":
18 folder=
"/LAR/BadChannels/KnownBADFEBs"
20 folder=
"/LAR/BadChannelsOfl/KnownBADFEBs"
23 if not tag.startswith(
"LAR"):
24 if not tag.startswith(
"-"): tag=
"-"+tag
25 tag=
"".
join(folder.split(
"/"))+tag
30 logger.info(
"Writing to folder %s, tag %s",folder,tag)
31 result.addCondAlgo(CompFactory.LArBadFebCondAlg(
"LArKnownBadFebAlg",ReadKey=
"",InputFileName=InputFile,WriteKey=
"LArBadFeb"))
34 theLArDBAlg=CompFactory.LArBadChannelDBAlg()
35 theLArDBAlg.WritingMode = 1
36 theLArDBAlg.FEBFolder=folder
37 result.addEventAlgo(theLArDBAlg)
39 from RegistrationServices.OutputConditionsAlgConfig
import OutputConditionsAlgCfg
41 ObjectList=[
"AthenaAttributeList#"+folder],
43 Run1=IOVStart[0],LB1=IOVStart[1],
44 Run2=IOVEnd[0],LB2=IOVEnd[1]))
49 if __name__==
"__main__":
51 parser= argparse.ArgumentParser()
52 parser.add_argument(
"inputfile")
53 parser.add_argument(
"--loglevel", default=
None, help=
"logging level (ALL, VERBOSE, DEBUG,INFO, WARNING, ERROR, or FATAL")
54 parser.add_argument(
"-r",
"--runnumber",default=0, type=int, help=
"IOV start (runnumber)")
55 parser.add_argument(
"-l",
"--lbnumber",default=0, type=int, help=
"IOV start (LB number)")
56 parser.add_argument(
"--runnumber2",default=0x7FFFFFFF, type=int, help=
"IOV start (runnumber)")
57 parser.add_argument(
"--lbnumber2",default=0xFFFFFFFF, type=int, help=
"IOV start (LB number)")
58 parser.add_argument(
"-o",
"--output",default=
"BadFebs.db", help=
"sqlite output file name")
59 parser.add_argument(
"-f",
"--folder",default=
None, help=
"database folder to create")
60 parser.add_argument(
"-t",
"--tag",default=
None, help=
"folder-level tag (or tag-suffix) to create")
61 parser.add_argument(
"--MC", action=
'store_true', default=
False, help=
"Work on MC DB")
64 (args,leftover)=parser.parse_known_args(sys.argv[1:])
67 print(
"ERROR, unhandled argument(s):",leftover)
70 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
71 from LArCalibProcessing.LArCalibConfigFlags
import addLArCalibFlags
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
if args.runnumber>0
else 300000]
79 flags.IOVDb.GlobalTag=
"OFLCOND-MC21-SDR-RUN3-11" if args.MC
else "CONDBR2-ES1PA-2023-02"
81 from Campaigns.Utils
import Campaign
82 flags.Input.MCCampaign = Campaign.MC21a
83 from AthenaConfiguration.TestDefaults
import defaultGeometryTags
84 flags.GeoModel.AtlasVersion=defaultGeometryTags.RUN3
86 flags.IOVDb.DBConnection=
"sqlite://;schema="+args.output+
";dbname="+flags.IOVDb.DatabaseInstance
89 from AthenaCommon
import Constants
90 if hasattr(Constants,args.loglevel):
91 flags.Exec.OutputLevel=getattr(Constants,args.loglevel)
93 raise ValueError(
"Unknown log-level, allowed values are ALL, VERBOSE, DEBUG,INFO, WARNING, ERROR, FATAL")
97 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
100 from McEventSelector.McEventSelectorConfig
import McEventSelectorCfg
102 FirstLB=args.lbnumber,
105 InitialTimeStamp = 0,
106 TimeStampInterval = 1))
112 IOVStart=[args.runnumber,args.lbnumber],
113 IOVEnd=[args.runnumber2,args.lbnumber2]