8 from AthenaConfiguration.AllConfigFlags 
import initConfigFlags
 
    9 from AthenaConfiguration.MainServicesConfig 
import MainServicesCfg
 
   10 from AthenaConfiguration.ComponentFactory 
import CompFactory
 
   11 from AthenaConfiguration.ComponentAccumulator 
import ComponentAccumulator
 
   13 def TRTCondWriterCfg(flags, name="TRTCondStoreText", rtTag="Textrt", t0Tag="Textt0", **kwargs):
 
   17     if "CalibInputFile" not in kwargs:
 
   18         kwargs.setdefault(
'CalibInputFile', 
"dbconst.txt")
 
   20     from IOVDbSvc.IOVDbSvcConfig 
import IOVDbSvcCfg
 
   25         "TRTCond::RtRelationMultChanContainer#/TRT/Calib/RT",
 
   26         "TRTCond::StrawT0MultChanContainer#/TRT/Calib/T0" 
   28     tagList = [rtTag, t0Tag]
 
   30     from RegistrationServices.OutputConditionsAlgConfig 
import OutputConditionsAlgCfg
 
   33         name=
"TRT_OutputConditionsAlg",
 
   34         outputFile=
"pooloutputfile.root",
 
   35         ObjectList=objectList,
 
   46     from AthenaPoolCnvSvc.PoolWriteConfig 
import PoolWriteCfg
 
   50     TRTCondStoreText = CompFactory.TRTCondStoreText(name=name, **kwargs)
 
   51     acc.addCondAlgo(TRTCondStoreText)
 
   55 def TRTCondReaderCfg(flags, name="TRTCondRead", rtTag="Textrt", t0Tag="Textt0", ReadCOOL=True, **kwargs):
 
   58     if "CalibOutputFile" not in kwargs:
 
   59         kwargs.setdefault(
'CalibOutputFile', 
"caliboutput.txt")
 
   61     from IOVDbSvc.IOVDbSvcConfig 
import addOverride
 
   66         acc.merge(
addOverride( flags, 
"/TRT/Calib/T0", tag=t0Tag, db=flags.IOVDb.DBConnection))    
 
   67         acc.merge(
addOverride( flags, 
"/TRT/Calib/RT", tag=rtTag, db=flags.IOVDb.DBConnection))
 
   69     if "TRTCalDbTool" not in kwargs:
 
   70         from TRT_ConditionsServices.TRT_ConditionsServicesConfig 
import TRT_CalDbToolCfg
 
   71         kwargs.setdefault(
"TRTCalDbTool", acc.popToolsAndMerge(
TRT_CalDbToolCfg(flags)))
 
   74     TRTCondRead = CompFactory.TRTCondRead(name=name, **kwargs)
 
   75     acc.addEventAlgo(TRTCondRead)
 
   79 if __name__ == 
"__main__":
 
   82     parser = argparse.ArgumentParser(prog=
'python -m TRT_ConditionsAlgs.TRT_PoolGenerator --read --condRunNumber 450000',
 
   83                                      description=
"Write or Read TRT conditions")
 
   85     parser.add_argument(
'-r',
'--read',action=
'store_true' ,help=
"By default writes. If set the it reads from local DB")
 
   86     parser.add_argument(
'-m',
'--isMC',action=
'store_true' ,help=
"This is to tell athena if it is MC or Data (OFLP200 or CONDBR2)")
 
   87     parser.add_argument(
'--tagRT', default=
"Textrt" ,help=
"Tag for RT folder")
 
   88     parser.add_argument(
'--tagT0', default=
"Textt0" ,help=
"Tag for T0 folder")
 
   89     parser.add_argument(
'--dbname', default=
"mycool.db" ,help=
"DB folder name for reader")
 
   90     parser.add_argument(
'-f',
'--inputFile', default=
"dbconst.txt" ,help=
"Input file constants for writer")
 
   91     parser.add_argument(
'--outputtxt', default=
"" ,help=
"Output file for the TRT")
 
   92     parser.add_argument(
'--condRunNumber', type=int, default=-1, help=
" choose the IoV covering this run number")
 
   93     args = parser.parse_args()
 
   97     from AthenaConfiguration.TestDefaults 
import defaultGeometryTags, defaultTestFiles, defaultConditionsTags
 
   98     flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN3
 
  101         flags.Input.Files = defaultTestFiles.RDO_RUN3 
 
  102         flags.IOVDb.GlobalTag = defaultConditionsTags.RUN3_MC
 
  104         flags.Input.Files = defaultTestFiles.RAW_RUN3
 
  105         flags.IOVDb.GlobalTag = defaultConditionsTags.RUN3_DATA
 
  108     textOutput = args.outputtxt 
if args.outputtxt 
else "caliboutput.txt" 
  109     if args.condRunNumber > 0:
 
  110         flags.Input.RunNumbers = [args.condRunNumber]
 
  111         flags.Input.OverrideRunNumber=
True 
  113         textOutput = args.outputtxt 
if args.outputtxt 
else f
"caliboutput_{args.condRunNumber}.txt" 
  115         flags.IOVDb.DBConnection = f
"sqlite://;schema={args.dbname};dbname=" + (
"OFLP200" if args.isMC 
else "CONDBR2")
 
  118     flags.Detector.GeometryTRT = 
True 
  119     flags.Detector.EnableTRT = 
True 
  120     flags.Output.ESDFileName = 
"trtcalibout.pool.root" 
  123     flags.Exec.OutputLevel = 3
 
  125     flags.Exec.MaxEvents = 1
 
  133     from AtlasGeoModel.GeoModelConfig 
import GeoModelCfg
 
  138         acc.merge(
TRTCondWriterCfg(flags, rtTag=args.tagRT, t0Tag=args.tagT0, CalibInputFile=args.inputFile))
 
  140         acc.merge(
TRTCondReaderCfg(flags, rtTag=args.tagRT, t0Tag=args.tagT0, ReadCOOL=ReadCOOL, CalibOutputFile=textOutput))
 
  143     with open(
"TRT_PoolGenerator.pkl", 
"wb") 
as f:
 
  148     sys.exit(
not acc.run().isSuccess())