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())