ATLAS Offline Software
Loading...
Searching...
No Matches
LArCalib_HVScale2NtupleConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2
3from AthenaConfiguration.ComponentFactory import CompFactory
4from AthenaConfiguration.MainServicesConfig import MainEvgenServicesCfg
5
6def LArHVScaleCorr2NtupleCfg(flags, rootfile="hvcorr_read.root", addSC=False):
7
8 from LArGeoAlgsNV.LArGMConfig import LArGMCfg
9 result=LArGMCfg(flags)
10
11 from LArCabling.LArCablingConfig import LArOnOffIdMappingCfg
12 result.merge(LArOnOffIdMappingCfg(flags))
13
14 from LArBadChannelTool.LArBadChannelConfig import LArBadChannelCfg
15 result.merge(LArBadChannelCfg(flags))
16
17 from LArConfiguration.LArElecCalibDBConfig import LArElecCalibDBCfg
18 result.merge(LArElecCalibDBCfg(flags,["HVScaleCorr"]))
19
20 result.addEventAlgo(CompFactory.LArHVScaleCorr2Ntuple("LArHVScaleCorr2Ntuple", AddFEBTempInfo = False, OffId=True))
21
22 if addSC:
23 from LArConfiguration.LArElecCalibDBConfig import LArElecCalibDBSCCfg
24 result.merge(LArElecCalibDBSCCfg(flags,["HVScaleCorr"]))
25
26 from LArCabling.LArCablingConfig import LArOnOffIdMappingSCCfg
27 result.merge(LArOnOffIdMappingSCCfg(flags))
28
29 result.merge(LArBadChannelCfg(flags, isSC=True))
30
31 result.addEventAlgo(CompFactory.LArHVScaleCorr2Ntuple("LArSCHVScaleCorr2Ntuple", AddFEBTempInfo = False, OffId=True,
32 ContainerKey="LArHVScaleCorrSC",isSC = True, BadChanKey = "LArBadChannelSC"))
33
34
35 import os
36 if os.path.exists(rootfile):
37 os.remove(rootfile)
38 result.addService(CompFactory.NTupleSvc(Output = [ "FILE1 DATAFILE='"+rootfile+"' OPT='NEW'" ]))
39 result.setAppProperty("HistogramPersistency","ROOT")
40
41 return result
42
43if __name__=="__main__":
44 import sys
45 from time import strptime
46 from calendar import timegm
47
48 if len(sys.argv)<2:
49 print("Usage:")
50 print("%s <time> <outputfile> <globaltag>" % sys.argv[0])
51 sys.exit(-1)
52
53
54 try:
55 ts=strptime(sys.argv[1]+'/UTC','%Y-%m-%d:%H:%M:%S/%Z')
56 TimeStamp=int(timegm(ts))
57 TimeStamp_ns=TimeStamp*1000000000
58 except ValueError as e:
59 print("ERROR in time specification, use e.g. 2007-05-25:14:01:00")
60 print(e)
61 sys.exit(-1)
62
63 from LArCalibProcessing.TimeStampToRunLumi import TimeStampToRunLumi
64
65 rlb=TimeStampToRunLumi(TimeStamp_ns)
66 if rlb is None:
67 rlb=[0xFFFFFFF-1,0]
68 print("WARNING: Failed to convert time",TimeStamp_ns,"into a run/lumi number. Using 'infinite' run-number",rlb[0])
69
70
71 from AthenaConfiguration.AllConfigFlags import initConfigFlags
72 flags = initConfigFlags()
73 from LArCalibProcessing.LArCalibConfigFlags import addLArCalibFlags
74 addLArCalibFlags(flags)
75
76 flags.Input.RunNumbers=[rlb[0]]
77 flags.Input.TimeStamps=[TimeStamp]
78 flags.Input.Files=[]
79 flags.IOVDb.DatabaseInstance="CONDBR2"
80 from AthenaConfiguration.TestDefaults import defaultGeometryTags, defaultConditionsTags
81 flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN3
82 flags.IOVDb.GlobalTag = defaultConditionsTags.RUN3_DATA
83
84 rootfile="hvcorr_read.root"
85 if len(sys.argv)>2:
86 rootFile=sys.argv[2]
87
88 if len(sys.argv)>3:
89 flags.IOVDb.GlobalTag=sys.argv[3]
90
91 flags.lock()
92 cfg=MainEvgenServicesCfg(flags)
93 cfg.merge(LArHVScaleCorr2NtupleCfg(flags))
94
95
96 print("Start running...")
97 cfg.run(1)
void print(char *figname, TCanvas *c1)
LArHVScaleCorr2NtupleCfg(flags, rootfile="hvcorr_read.root", addSC=False)