5from AthenaConfiguration.ComponentFactory
import CompFactory
6from AthenaConfiguration.MainServicesConfig
import MainEvgenServicesCfg
10 from LArGeoAlgsNV.LArGMConfig
import LArGMCfg
11 result=LArGMCfg(flags)
14 from LArCalibUtils.LArHVScaleConfig
import LArHVScaleCfg
16 result.merge(LArHVScaleCfg(flags))
17 result.getCondAlgo(
"LArHVCondAlg").UndoOnlineHVCorr=
False
18 result.getCondAlgo(
"LArHVCondAlg").keyOutputCorr=
"NewLArHVScaleCorr"
20 from LArCabling.LArCablingConfig
import LArOnOffIdMappingSCCfg
21 result.merge(LArOnOffIdMappingSCCfg(flags))
22 result.addEventAlgo(CompFactory.LArHVCorrToSCHVCorr(ContainerKey=
"NewLArHVScaleCorr",OutputKey=
"NewSCLArHVScaleCorr",
23 OutputFolder=
"/LAR/ElecCalibFlatSC/HVScaleCorrNew",
24 IsHeavyIons=
False, PatchInHeavyIons=1.0,
25 PhysicsWeights=
"TrigT1CaloCalibUtils/HVcorrPhysicsWeights.txt"))
29 result.addEventAlgo(CompFactory.LArHVCorrMaker(LArHVScaleCorr=
"NewLArHVScaleCorr",folderName=
"/LAR/ElecCalibFlat/HVScaleCorrNew"))
35 from LArCalibTools.LArCalib_HVScale2NtupleConfig
import LArHVScaleCorr2NtupleCfg
36 result.merge(LArHVScaleCorr2NtupleCfg(flags,rootfile=outputName+
'_ntuple.root',addSC=
True))
37 result.getEventAlgo(
"LArHVScaleCorr2Ntuple").ContainerKey=
"NewLArHVScaleCorr"
38 result.getEventAlgo(
"LArSCHVScaleCorr2Ntuple").ContainerKey=
"NewSCLArHVScaleCorr"
39 result.getEventAlgo(
"LArSCHVScaleCorr2Ntuple").NtuplePath=
"/NTUPLES/FILE1/HVSCALESC"
42 from RegistrationServices.OutputConditionsAlgConfig
import OutputConditionsAlgCfg
43 result.merge(OutputConditionsAlgCfg(flags,
44 outputFile=
"dummy.root",
45 ObjectList=[
"CondAttrListCollection#/LAR/ElecCalibFlat/HVScaleCorrNew#/LAR/ElecCalibFlat/HVScaleCorr",
46 "CondAttrListCollection#/LAR/ElecCalibFlatSC/HVScaleCorrNew#/LAR/ElecCalibFlatSC/HVScaleCorr",],
54 result.addService(CompFactory.IOVRegistrationSvc(RecreateFolders =
True,
56 OverrideNames = [
"HVScaleCorr"],
57 OverrideTypes = [
"Blob16M"],
60 result.getService(
"IOVDbSvc").DBInstance=
""
64if __name__==
"__main__":
66 from time
import time,strptime
67 from calendar
import timegm
69 parser= argparse.ArgumentParser(description=
"Recalclulate HV corrections based on DCS values")
70 parser.add_argument(
'datestamp',help=
"time specification like 2007-05-25:14:01:00")
71 parser.add_argument(
'Run',type=int, nargs=
'?', default=0,help=
"IOV start (run-number)")
72 parser.add_argument(
'LB',type=int, nargs=
'?', default=0,help=
"IOV start (run-number)")
73 parser.add_argument(
'-g',
'--globaltag', type=str, help=
"Geometry Tag ")
74 parser.add_argument(
'-o',
'--output',type=str,default=
"hvcorr",help=
"name stub for root and sqlite output files")
75 parser.add_argument(
'-l',
'--olevel',type=int, default=3,help=
"OutputLevel")
77 args = parser.parse_args()
79 ts=strptime(args.datestamp+
'/UTC',
'%Y-%m-%d:%H:%M:%S/%Z')
80 TimeStamp=int(timegm(ts))
81 TimeStamp_ns=TimeStamp*1000000000
82 except ValueError
as e:
83 print(
"ERROR in time specification, use e.g. 2007-05-25:14:01:00")
87 from LArCalibProcessing.TimeStampToRunLumi
import TimeStampToRunLumi
89 rlb=TimeStampToRunLumi(TimeStamp_ns)
92 print(
"WARNING: Failed to convert time",TimeStamp_ns,
"into a run/lumi number. Using 'infinite' run-number",rlb[0])
95 print(
"---> Working on run",rlb[0],
"LB",rlb[1],
"Timestamp:",TimeStamp)
96 timediff=int(time()-TimeStamp)
98 print(
"ERROR: Timestamp in the future???")
100 (days,remainder)=divmod(timediff,24*60*60)
101 (hours,seconds)=divmod(remainder,60*60)
102 print (
"---> Timestamp is %i days %i hours and %i minutes ago" % (days,hours,int(seconds/60)))
105 print(
"Output IOV will be from run %i lumiblock %i to INF" % (args.Run,args.LB))
107 outputName=args.output
109 from AthenaConfiguration.TestDefaults
import defaultGeometryTags
110 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
111 ConfigFlags=initConfigFlags()
114 ConfigFlags.IOVDb.GlobalTag=args.globaltag
116 ConfigFlags.Input.RunNumbers=[rlb[0]]
117 ConfigFlags.Input.LumiBlockNumbers=[rlb[1]]
118 ConfigFlags.Input.TimeStamps=[TimeStamp]
119 ConfigFlags.Input.Files=[]
120 ConfigFlags.IOVDb.DatabaseInstance=
"CONDBR2"
121 ConfigFlags.IOVDb.DBConnection=
"sqlite://;schema="+outputName+
".sqlite;dbname=CONDBR2"
122 ConfigFlags.GeoModel.AtlasVersion=defaultGeometryTags.RUN3
123 ConfigFlags.Exec.OutputLevel=args.olevel
125 cfg=MainEvgenServicesCfg(ConfigFlags)
127 cfg.getService(
"EventSelector").FirstLB=ConfigFlags.Input.LumiBlockNumbers[0]
128 cfg.merge(
HVCorrConfig(ConfigFlags,outputName,args.Run,args.LB))
131 print(
"Start running...")
133 sys.exit(cfg.run(1).isFailure())
void print(char *figname, TCanvas *c1)
HVCorrConfig(flags, outputName="hvcorr", runOut=0, lbOut=0)