4 from AthenaConfiguration.ComponentFactory 
import CompFactory
 
    5 from AthenaConfiguration.MainServicesConfig 
import MainEvgenServicesCfg
 
    9     from LArGeoAlgsNV.LArGMConfig 
import LArGMCfg
 
   13     from LArCalibUtils.LArHVScaleConfig 
import LArHVScaleCfg
 
   16     result.getCondAlgo(
"LArHVCondAlg").UndoOnlineHVCorr=
False 
   17     result.getCondAlgo(
"LArHVCondAlg").keyOutputCorr=
"NewLArHVScaleCorr" 
   19     from LArCabling.LArCablingConfig 
import LArOnOffIdMappingSCCfg
 
   21     result.addEventAlgo(CompFactory.LArHVCorrToSCHVCorr(ContainerKey=
"NewLArHVScaleCorr",OutputKey=
"NewSCLArHVScaleCorr",
 
   22                                                         OutputFolder=
"/LAR/ElecCalibFlatSC/HVScaleCorrNew",
 
   23                                                         IsHeavyIons=
False,  PatchInHeavyIons=1.0,
 
   24                                                         PhysicsWeights=
"TrigT1CaloCalibUtils/HVcorrPhysicsWeights.txt"))
 
   28     result.addEventAlgo(CompFactory.LArHVCorrMaker(LArHVScaleCorr=
"NewLArHVScaleCorr",folderName=
"/LAR/ElecCalibFlat/HVScaleCorrNew"))
 
   34     from LArCalibTools.LArCalib_HVScale2NtupleConfig 
import LArHVScaleCorr2NtupleCfg
 
   36     result.getEventAlgo(
"LArHVScaleCorr2Ntuple").ContainerKey=
"NewLArHVScaleCorr"  
   37     result.getEventAlgo(
"LArSCHVScaleCorr2Ntuple").ContainerKey=
"NewSCLArHVScaleCorr"  
   38     result.getEventAlgo(
"LArSCHVScaleCorr2Ntuple").NtuplePath=
"/NTUPLES/FILE1/HVSCALESC" 
   41     from RegistrationServices.OutputConditionsAlgConfig 
import OutputConditionsAlgCfg
 
   43                                         outputFile=
"dummy.root",
 
   44                                         ObjectList=[
"CondAttrListCollection#/LAR/ElecCalibFlat/HVScaleCorrNew#/LAR/ElecCalibFlat/HVScaleCorr",
 
   45                                                     "CondAttrListCollection#/LAR/ElecCalibFlatSC/HVScaleCorrNew#/LAR/ElecCalibFlatSC/HVScaleCorr",],
 
   53     result.addService(CompFactory.IOVRegistrationSvc(RecreateFolders = 
True,
 
   55                                                      OverrideNames = [
"HVScaleCorr"],
 
   56                                                      OverrideTypes = [
"Blob16M"],
 
   59     result.getService(
"IOVDbSvc").DBInstance=
"" 
   63 if __name__==
"__main__":
 
   65     from time 
import time,strptime
 
   66     from calendar 
import timegm
 
   68     parser= argparse.ArgumentParser(description=
"Recalclulate HV corrections based on DCS values")
 
   69     parser.add_argument(
'datestamp',help=
"time specification like 2007-05-25:14:01:00")
 
   70     parser.add_argument(
'Run',type=int, nargs=
'?', default=0,help=
"IOV start (run-number)")
 
   71     parser.add_argument(
'LB',type=int, nargs=
'?', default=0,help=
"IOV start (run-number)")
 
   72     parser.add_argument(
'-g', 
'--globaltag', type=str, help=
"Geometry Tag ")
 
   73     parser.add_argument(
'-o', 
'--output',type=str,default=
"hvcorr",help=
"name stub for root and sqlite output files")
 
   74     parser.add_argument(
'-l',
'--olevel',type=int, default=3,help=
"OutputLevel")
 
   76     args = parser.parse_args()
 
   78         ts=strptime(args.datestamp+
'/UTC',
'%Y-%m-%d:%H:%M:%S/%Z')
 
   79         TimeStamp=
int(timegm(ts))
 
   80         TimeStamp_ns=TimeStamp*1000000000
 
   81     except ValueError 
as e:
 
   82         print(
"ERROR in time specification, use e.g. 2007-05-25:14:01:00")
 
   86     from LArCalibProcessing.TimeStampToRunLumi 
import TimeStampToRunLumi
 
   91         print(
"WARNING: Failed to convert time",TimeStamp_ns,
"into a run/lumi number. Using 'infinite' run-number",rlb[0])
 
   94     print(
"---> Working on run",rlb[0],
"LB",rlb[1],
"Timestamp:",TimeStamp)
 
   97         print(
"ERROR: Timestamp in the future???")
 
   99         (days,remainder)=divmod(timediff,24*60*60)
 
  100         (hours,seconds)=divmod(remainder,60*60)
 
  101         print (
"---> Timestamp is %i days %i hours and %i minutes ago" % (days,hours,
int(seconds/60)))
 
  104     print(
"Output IOV will be from run %i lumiblock %i to INF" % (args.Run,args.LB))
 
  106     outputName=args.output
 
  108     from AthenaConfiguration.TestDefaults 
import defaultGeometryTags
 
  109     from AthenaConfiguration.AllConfigFlags 
import initConfigFlags
 
  113         ConfigFlags.IOVDb.GlobalTag=args.globaltag
 
  115     ConfigFlags.Input.RunNumbers=[rlb[0]]
 
  116     ConfigFlags.Input.LumiBlockNumbers=[rlb[1]]
 
  117     ConfigFlags.Input.TimeStamps=[TimeStamp]
 
  118     ConfigFlags.Input.Files=[]
 
  119     ConfigFlags.IOVDb.DatabaseInstance=
"CONDBR2" 
  120     ConfigFlags.IOVDb.DBConnection=
"sqlite://;schema="+outputName+
".sqlite;dbname=CONDBR2" 
  121     ConfigFlags.GeoModel.AtlasVersion=defaultGeometryTags.RUN3
 
  122     ConfigFlags.Exec.OutputLevel=args.olevel
 
  126     cfg.getService(
"EventSelector").FirstLB=ConfigFlags.Input.LumiBlockNumbers[0]
 
  127     cfg.merge(
HVCorrConfig(ConfigFlags,outputName,args.Run,args.LB))
 
  130     print(
"Start running...")
 
  132     sys.exit(cfg.run(1).isFailure())