7 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
8 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
9 from AthenaConfiguration.ComponentFactory
import CompFactory
10 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
15 if "StatusInputFile" not in kwargs:
16 kwargs.setdefault(
"StatusInputFile",
"straws.txt")
18 from IOVDbSvc.IOVDbSvcConfig
import IOVDbSvcCfg
21 from RegistrationServices.OutputConditionsAlgConfig
import OutputConditionsAlgCfg
24 name=
"OutputConditionsAlg",
25 outputFile=
"pooloutputfile.root",
26 ObjectList=objectList,
37 from AthenaPoolCnvSvc.PoolWriteConfig
import PoolWriteCfg
40 acc.addEventAlgo(CompFactory.TRTStrawStatusWrite(name=name, **kwargs))
44 def TRTStrawStatusReadCfg(flags, name="TRTStrawStatusRead", statusTag="", permTag="", htTag="", ReadCOOL=True, **kwargs):
47 if "OutputFile" not in kwargs:
48 kwargs.setdefault(
"OutputFile",
"caliboutput.txt")
50 if "TRT_StrawStatusSummaryTool" not in kwargs:
51 from TRT_ConditionsServices.TRT_ConditionsServicesConfig
import TRT_StrawStatusSummaryToolCfg
56 from IOVDbSvc.IOVDbSvcConfig
import addOverride
57 if kwargs[
"FolderToPrint"] ==
"Status":
58 acc.merge(
addOverride( flags,
"/TRT/Cond/Status", tag=statusTag, db=flags.IOVDb.DBConnection))
60 if kwargs[
"FolderToPrint"] ==
"StatusPermanent":
61 acc.merge(
addOverride( flags,
"/TRT/Cond/StatusPermanent", tag=permTag, db=flags.IOVDb.DBConnection))
63 if kwargs[
"FolderToPrint"] ==
"StatusHT":
64 acc.merge(
addOverride( flags,
"/TRT/Cond/StatusHT", tag=htTag, db=flags.IOVDb.DBConnection))
67 from IOVDbSvc.IOVDbSvcConfig
import addFoldersSplitOnline
69 onlineFolders = [
"/TRT/Onl/Cond/Status",
70 "/TRT/Onl/Cond/StatusPermanent",
71 "/TRT/Onl/Cond/StatusHT"],
72 offlineFolders = [
"/TRT/Cond/Status",
73 "/TRT/Cond/StatusPermanent",
74 "/TRT/Cond/StatusHT"],
75 className =
"TRTCond::StrawStatusMultChanContainer"))
78 TRTStrawStatusRead = CompFactory.TRTStrawStatusRead(name=name, **kwargs)
79 acc.addEventAlgo(TRTStrawStatusRead)
83 if __name__ ==
"__main__":
86 parser = argparse.ArgumentParser(prog=
'python -m TRT_ConditionsAlgs.TRT_StatusPoolGenerator',
87 description=
"Write or Read TRT conditions. For writing you can provide the three folder, however for reading must be one by one")
89 parser.add_argument(
'-r',
'--read',action=
'store_true' ,help=
"By default writes. If set the it reads from local DB")
90 parser.add_argument(
'-m',
'--isMC',action=
'store_true' ,help=
"This is to tell athena if it is MC or Data (OFLP200 or CONDBR2)")
91 parser.add_argument(
'--status' ,action=
'store_false' ,help=
"For straw status tag")
92 parser.add_argument(
'--permanent',action=
'store_true' ,help=
"For permanent straws")
93 parser.add_argument(
'--ht' ,action=
'store_true',help=
"For HT straws")
94 parser.add_argument(
'-f',
'--inputFile', default=
"straws.txt" ,help=
"DB folder name for reader")
95 parser.add_argument(
'-c',
'--condRunNumber', type=int, default=-1, help=
" choose the IoV covering this run number")
96 parser.add_argument(
'--dbname', default=
"mycool.db" ,help=
"DB folder name for reader")
97 parser.add_argument(
'--outputtxt', default=
"" ,help=
"Output file for the TRT")
99 args = parser.parse_args()
102 if not args.status
and not args.permanent
and not args.ht:
103 print(
"ERROR: you should provide at least one folder --status and/or --permanent and/or --ht")
108 from AthenaConfiguration.TestDefaults
import defaultGeometryTags, defaultTestFiles, defaultConditionsTags
109 flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN3
112 flags.Input.Files = defaultTestFiles.RDO_RUN3
113 flags.IOVDb.GlobalTag = defaultConditionsTags.RUN3_MC
115 flags.Input.Files = defaultTestFiles.RAW_RUN3
116 flags.IOVDb.GlobalTag = defaultConditionsTags.RUN3_DATA
120 textOutput = args.outputtxt
if args.outputtxt
else "caliboutput.txt"
121 if args.condRunNumber > 0:
122 flags.Input.RunNumbers = [args.condRunNumber]
123 flags.Input.OverrideRunNumber=
True
125 textOutput = args.outputtxt
if args.outputtxt
else f
"caliboutput_{args.condRunNumber}.txt"
127 flags.IOVDb.DBConnection = f
"sqlite://;schema={args.dbname};dbname=" + (
"OFLP200" if args.isMC
else "CONDBR2")
129 flags.Detector.GeometryTRT =
True
130 flags.Detector.EnableTRT =
True
131 flags.Output.ESDFileName =
"trtcalibout.pool.root"
132 flags.Exec.MaxEvents = 1
135 flags.Exec.OutputLevel = 3
144 from AtlasGeoModel.GeoModelConfig
import GeoModelCfg
152 folder2read =
"Status"
153 mytagList.append(
"TextStatus")
154 myobjectList.append(
"TRTCond::StrawStatusMultChanContainer#/TRT/Cond/Status")
158 acc.merge(
TRTStrawStatusWriteCfg(flags, StatusInputFile=args.inputFile, tagList=mytagList, objectList=myobjectList))
160 acc.merge(
TRTStrawStatusReadCfg(flags, statusTag=
"TextStatus", permTag=
"TextPermanent", htTag=
"TextHT", ReadCOOL=ReadCOOL, OutputFile=textOutput, FolderToPrint=folder2read))
165 with open(
"TRT_StatusPoolGenerator.pkl",
"wb")
as f:
170 sys.exit(
not acc.run().isSuccess())