4 from AthenaConfiguration.ComponentFactory
import CompFactory
7 if __name__==
'__main__':
13 parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
14 parser.add_argument(
'-r',
'--run', dest=
'run', default=0x7fffffff, help=
'Run number', type=int)
15 parser.add_argument(
'--sqlite', dest=
'sqlite', default=
None, help=
'sqlite file to read from (default: oracle)', type=str)
16 parser.add_argument(
'-t',
'--tag',dest=
'dbtag',default=
None,help=
"Global conditions tag", type=str)
17 parser.add_argument(
'-f',
'--ftag',dest=
'ftag',default=
None,help=
"folder tag suffig", type=str)
18 parser.add_argument(
'-o',
'--out', dest=
'out', default=
"LArConditions.root", help=
'Output root file', type=str)
19 parser.add_argument(
'--ofcfolder',dest=
'ofcfolder',default=
"", help=
"OFC flavor",type=str)
20 parser.add_argument(
'-s',
'--isSC', dest=
'isSC', action=
'store_true', default=
False, help=
'is SC?')
21 parser.add_argument(
'-m',
'--isMC', dest=
'isMC', action=
'store_true', default=
False, help=
'is MC?')
23 parser.add_argument(
"--objects",dest=
"objects",default=
"PEDESTAL,RAMP",help=
"List of conditions types to be dumped",type=str)
24 parser.add_argument(
"--folders",dest=
"folders",default=
"/LAR/ElecCalibFlat/Pedestal,/LAR/ElecCalibFlat/Ramp",help=
"List of folders to be taken from sqlite",type=str)
25 parser.add_argument(
'--offline',dest=
"offline", action=
'store_true', default=
False, help=
'is offline folder?')
27 args = parser.parse_args()
28 if help
in args
and args.help
is not None and args.help:
34 objTable={
"RAMP":
"Ramp",
37 "PEDESTAL":
"Pedestal",
41 "MPHYSOVERMCAL":
"MphysOverMcal",
42 "MPHYSMCAL":
"MphysOverMcal",
43 "MPMC":
"MphysOverMcal",
46 "HVSCALECORR":
"HVScaleCorr",
47 "HVSCALE":
"HVScaleCorr",
49 "AUTOCORR":
"AutoCorr",
51 "CALIWAVE":
"CaliWave",
52 "PHYSWAVE":
"PhysWave",
58 for obj
in args.objects.split(
","):
60 if objU
not in objTable:
61 print(
"ERROR: Unknown conditions type",obj)
64 objects.add(objTable[objU])
65 if "OFCCALI" not in obj.upper()
and 'WAVE' not in obj.upper()
and not args.offline:
66 objectsOnl.add(objTable[objU])
69 for fld
in args.folders.split(
","):
72 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
74 from LArCalibProcessing.LArCalibConfigFlags
import addLArCalibFlags
77 flags.Input.RunNumbers=[args.run]
78 from AthenaConfiguration.TestDefaults
import defaultGeometryTags
79 flags.GeoModel.AtlasVersion=defaultGeometryTags.RUN3
83 flags.Input.isMC=args.isMC
84 flags.LArCalib.isSC=args.isSC
86 flags.LAr.doAlign=
False
88 flags.LAr.OFCShapeFolder=args.ofcfolder
90 from AthenaConfiguration.Enums
import LHCPeriod
91 if flags.Input.RunNumbers[0] < 222222:
93 flags.GeoModel.Run=LHCPeriod.Run1
94 flags.IOVDb.DatabaseInstance=
"OFLP200" if flags.Input.isMC
else "COMP200"
96 flags.GeoModel.Run=LHCPeriod.Run2
97 flags.IOVDb.DatabaseInstance=
"OFLP200" if flags.Input.isMC
else "CONDBR2"
100 flags.IOVDb.GlobalTag=args.dbtag
101 elif flags.Input.isMC:
102 flags.IOVDb.GlobalTag=
"OFLCOND-MC16-SDR-20"
103 elif flags.IOVDb.DatabaseInstance ==
"COMP200":
104 flags.IOVDb.GlobalTag=
"COMCOND-BLKPA-RUN1-09"
106 flags.IOVDb.GlobalTag=
"CONDBR2-ES1PA-2024-01"
111 flags.IOVDb.SqliteInput=args.sqlite
112 flags.IOVDb.SqliteFolders=tuple(flds)
113 if len(objects)!=len(objectsOnl):
114 flags.IOVDb.DBConnection=
"COOLOFL_LAR/CONDBR2"
118 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
122 from McEventSelector.McEventSelectorConfig
import McEventSelectorCfg
126 InitialTimeStamp = 0,
127 TimeStampInterval = 1))
132 from LArGeoAlgsNV.LArGMConfig
import LArGMCfg
135 if flags.LArCalib.isSC:
137 from LArCabling.LArCablingConfig
import LArOnOffIdMappingSCCfg, LArCalibIdMappingSCCfg, LArLATOMEMappingCfg
142 from LArConfiguration.LArElecCalibDBConfig
import LArElecCalibDBSCCfg
146 from LArCabling.LArCablingConfig
import LArOnOffIdMappingCfg, LArCalibIdMappingCfg
150 from LArConfiguration.LArElecCalibDBConfig
import LArElecCalibDBCfg
153 from LArBadChannelTool.LArBadChannelConfig
import LArBadChannelCfg
156 bcKey =
"LArBadChannelSC" if flags.LArCalib.isSC
else "LArBadChannel"
158 if "Pedestal" in objects:
159 ckey =
"LArPedestalSC" if flags.LArCalib.isSC
else "LArPedestal"
160 cfg.addEventAlgo(CompFactory.LArPedestals2Ntuple(ContainerKey = ckey,
161 AddFEBTempInfo =
False,
163 isSC = flags.LArCalib.isSC,
167 if "AutoCorr" in objects:
168 ckey=
"LArAutoCorrSC" if flags.LArCalib.isSC
else "LArAutoCorr"
169 cfg.addEventAlgo(CompFactory.LArAutoCorr2Ntuple(ContainerKey =
"LArAutoCorrSym" if flags.Input.isMC
else ckey,
170 AddFEBTempInfo =
False,
172 isSC = flags.LArCalib.isSC,
175 if "Ramp" in objects:
176 ckey =
"LArRampSC" if flags.LArCalib.isSC
else "LArRamp"
177 cfg.addEventAlgo(CompFactory.LArRamps2Ntuple(RampKey=
"LArRampSym" if flags.Input.isMC
else ckey,
178 AddFEBTempInfo =
False,
180 isSC = flags.LArCalib.isSC,
186 from IOVDbSvc.IOVDbSvcConfig
import addFolders
190 cfg.merge(
addFolders(flags,fld,tag=
"".
join(foldername.split(
'/')) + args.ftag))
193 ckey=
'LArOFC' if '1phase' in fld
else 'LArLArOFCPhys4samples'
196 ckey =
"LArOFCSC" if flags.LArCalib.isSC
else "LArOFC"
197 cfg.addEventAlgo(CompFactory.LArOFC2Ntuple(AddFEBTempInfo =
False,
199 isSC = flags.LArCalib.isSC,
203 if "OFCCali" in objects:
205 from IOVDbSvc.IOVDbSvcConfig
import addFolders
209 cfg.merge(
addFolders(flags,fld,tag=
"".
join(foldername.split(
'/')) + args.ftag))
212 ckey=
'LArOFC' if '1phase' in fld
else 'LArOFC'
215 ckey =
"LArOFCSCCali" if flags.LArCalib.isSC
else "LArOFCCali"
216 fldr =
"/LAR/ElecCalibFlatSC/OFCCali" if flags.LArCalib.isSC
else "/LAR/ElecCalibFlat/OFCCali"
217 dbString =
"<db>sqlite://;schema="+args.sqlite+
";dbname=CONDBR2" if args.sqlite
else "<db>COOLONL_LAR/CONDBR2</db>"
218 from IOVDbSvc.IOVDbSvcConfig
import addFolders
219 cfg.merge(
addFolders(flags,fldr,detDb=dbString,className=
"CondAttrListCollection"))
220 LArOFCSCCondAlg = CompFactory.getComp(
"LArFlatConditionsAlg<LArOFCSC>")(
"LArOFCSCCaliCondAlg")
221 LArOFCSCCondAlg.ReadKey=fldr
222 LArOFCSCCondAlg. WriteKey=ckey
223 cfg.addCondAlgo(LArOFCSCCondAlg)
225 cfg.addEventAlgo(CompFactory.LArOFC2Ntuple(
"LArOFC2NtupleCali",
226 AddFEBTempInfo =
False,
228 NtupleName=
"OFCCali",
229 isSC = flags.LArCalib.isSC,
234 if "Shape" in objects:
235 ckey =
"LArShapeSC" if flags.LArCalib.isSC
else "LArShape"
238 cfg.addEventAlgo(CompFactory.LArShape2Ntuple(ContainerKey=ckey,
239 AddFEBTempInfo =
False,
241 isSC = flags.LArCalib.isSC,
245 if "MphysOverMcal" in objects:
246 cfg.addEventAlgo(CompFactory.LArMphysOverMcal2Ntuple(ContainerKey =
"LArMphysOverMcalSC" if flags.LArCalib.isSC
else "LArMphysOverMcal",
247 AddFEBTempInfo =
False,
249 isSC = flags.LArCalib.isSC,
254 if "DAC2uA" in objects
or "uA2MeV" in objects:
255 uackey =
"LAruA2MeVSC" if flags.LArCalib.isSC
else "LAruA2MeV"
256 dackey =
"LArDAC2uASC" if flags.LArCalib.isSC
else "LArDAC2uA"
257 ua2MeVKey=
"LAruA2MeVSym" if flags.Input.isMC
else uackey
258 dac2uAKey=
"LArDAC2uASym" if flags.Input.isMC
else dackey
260 cfg.addEventAlgo(CompFactory.LAruA2MeV2Ntuple(uA2MeVKey=ua2MeVKey
if "uA2MeV" in objects
else "",
261 DAC2uAKey=dac2uAKey
if "DAC2uA" in objects
else "",
262 isSC = flags.LArCalib.isSC,
267 if "HVScaleCorr" in objects:
268 cfg.addEventAlgo(CompFactory.LArHVScaleCorr2Ntuple(ContainerKey=
"LArHVScaleCorrSC" if flags.LArCalib.isSC
else "LArHVScaleCorr",
269 AddFEBTempInfo =
False,
270 isSC = flags.LArCalib.isSC,
274 if "fSampl" in objects:
275 cfg.addEventAlgo(CompFactory.LArfSampl2Ntuple(ContainerKey=
"LArfSamplSC" if flags.LArCalib.isSC
else "LArfSamplSym",
276 isSC=flags.LArCalib.isSC
279 if "CaliWave" in objects:
281 print(
'No CaliWave in MC')
283 fld =
"/LAR/ElecCalibOflSC/CaliWaves/CaliWave" if flags.LArCalib.isSC
else "/LAR/ElecCalibOfl/CaliWaves/CaliWave"
284 from IOVDbSvc.IOVDbSvcConfig
import addFolders
287 cfg.addEventAlgo(CompFactory.LArCaliWaves2Ntuple(KeyList = [
"LArCaliWave"],
288 NtupleName =
"CALIWAVE",
289 AddFEBTempInfo =
False,
290 SaveDerivedInfo =
True,
294 isSC = flags.LArCalib.isSC,
298 if "PhysWave" in objects:
300 print(
'No PhysWave in MC yet')
302 fld =
"/LAR/ElecCalibOflSC/PhysWaves/RTM" if flags.LArCalib.isSC
else "/LAR/ElecCalibOfl/PhysWaves/RTM"
303 from IOVDbSvc.IOVDbSvcConfig
import addFolders
306 cfg.addEventAlgo(CompFactory.LArPhysWaves2Ntuple(KeyList = [
"LArPhysWave"],
307 NtupleName =
"PHYSWAVE",
308 AddFEBTempInfo =
False,
309 SaveDerivedInfo =
True,
312 isSC = flags.LArCalib.isSC,
317 if os.path.exists(rootfile):
319 cfg.addService(CompFactory.NTupleSvc(Output = [
"FILE1 DATAFILE='"+rootfile+
"' OPT='NEW'" ]))
320 cfg.setAppProperty(
"HistogramPersistency",
"ROOT")
322 if args.dbtag
and 'CALIB' in args.dbtag:
323 cfg.getService(
"IOVDbSvc").DBInstance=
""