ATLAS Offline Software
Loading...
Searching...
No Matches
LArR4ElecCalibCalcConfig.py
Go to the documentation of this file.
1#!/usr/bin/env athena.py
2# Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
4from AthenaConfiguration.ComponentFactory import CompFactory
5from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
6from AthenaConfiguration.MainServicesConfig import MainServicesCfg
7
9 #Get basic services and cond-algos
10 result=ComponentAccumulator()
11
12 from LArGeoAlgsNV.LArGMConfig import LArGMCfg
13 result.merge(LArGMCfg(flags))
14 from LArCabling.LArCablingConfig import LArOnOffIdMappingCfg
15 result.merge(LArOnOffIdMappingCfg(flags))
16
17
18 from LArRecUtils.LArRecUtilsConfig import LArMCSymCondAlgCfg
19 result.merge (LArMCSymCondAlgCfg (flags))
20
21 from LArConfiguration.LArElecCalibDBConfig import LArElecCalibDBCfg
22 result.merge(LArElecCalibDBCfg(flags,["DAC2uA","uA2MeV"]))
23
24
25 theLArElecCalibCalculator = CompFactory.LArR4ElecCalibCalculator(OutputLevel=1,
26 CRESTDB="crest_fs:./larCalibTest")
27
28 result.addEventAlgo(theLArElecCalibCalculator)
29
30
31 #Output (POOL + sqlite) file writing:
32 from RegistrationServices.OutputConditionsAlgConfig import OutputConditionsAlgCfg
33 result.merge(OutputConditionsAlgCfg(flags,
34 outputFile=flags.LArCalib.Output.POOLFile,
35 ObjectList=["LArRampMC#LArRamp#/LAR/ElecCalibMC/Ramp",
36 "LArPedestalMC#LArPedestal#/LAR/ElecCalibMC/Pedestal",
37 "LArNoiseMC#LArNoise#/LAR/ElecCalibMC/Noise"],
38 IOVTagList=["LARElecCalibMCRamp-R4-00",
39 "LARElecCalibMCPedestal-R4-00",
40 "LARElecCalibMCNoise-R4-00"],
41 Run1=flags.LArCalib.IOVStart,
42 Run2=flags.LArCalib.IOVEnd
43 ))
44
45 #RegistrationSvc
46 result.addService(CompFactory.IOVRegistrationSvc(RecreateFolders = True))
47
48
49 #ROOT ntuple writing:
50 rootfile=flags.LArCalib.Output.ROOTFile
51
52 if rootfile != "":
53 result.addEventAlgo(CompFactory.LArNoise2Ntuple(ContainerKey="LArNoiseSym",
54 nGains=2,
55 AddFEBTempInfo = False,
56 RealGeometry = False,
57 OffId = True,
58 BadChanKey = "",
59 ))
60
61
62 result.addEventAlgo(CompFactory.LArRamps2Ntuple( RampKey="LArRampSym",
63 nGains=2,
64 ContainerKey = [], #for RawRamp
65 AddFEBTempInfo = False,
66 RealGeometry = False,
67 OffId = True,
68 AddCalib = False,
69 RawRamp = False,
70 SaveAllSamples = False,
71 BadChanKey = "",
72 ApplyCorr=False,
73 ))
74 import os
75 if os.path.exists(rootfile):
76 os.remove(rootfile)
77 result.addService(CompFactory.NTupleSvc(Output = [ "FILE1 DATAFILE='"+rootfile+"' OPT='NEW'" ]))
78 result.setAppProperty("HistogramPersistency","ROOT")
79 pass # end if ROOT ntuple writing
80
81
82 from LArRecUtils.LArADC2MeVCondAlgConfig import LArADC2MeVCondAlgCfg
83 result.merge(LArADC2MeVCondAlgCfg(flags))
84 result.getCondAlgo("LArADC2MeVCondAlg").OutputLevel=2
85 result.addEventAlgo(CompFactory.LArADC2MeV2Ntuple( OffId=True,
86 AddBadChannelInfo=False,
87 nGains=2,
88 ))
89
90
91 result.addEventAlgo(CompFactory.LAruA2MeV2Ntuple(uA2MeVKey="LAruA2MeVSym",
92 DAC2uAKey="LArDAC2uASym",
93 isSC = False,
94 OffId=True,
95 nGains=2,
96 AddBadChannelInfo=False
97 ))
98
99
100 #MC Event selector since we have no input data file
101 from McEventSelector.McEventSelectorConfig import McEventSelectorCfg
102 result.merge(McEventSelectorCfg(flags,
103 RunNumber = 500000,
104 EventsPerRun = 1,
105 FirstEvent = 1,
106 InitialTimeStamp = 0,
107 TimeStampInterval = 1))
108
109 from PerfMonComps.PerfMonCompsConfig import PerfMonMTSvcCfg
110 result.merge(PerfMonMTSvcCfg(flags))
111
112 return result
113
114
115if __name__ == "__main__":
116 from AthenaConfiguration.AllConfigFlags import initConfigFlags
117 from AthenaConfiguration.TestDefaults import defaultGeometryTags
118 from LArCalibProcessing.LArCalibConfigFlags import addLArCalibFlags
119 import sys
120 ConfigFlags=initConfigFlags()
121 addLArCalibFlags(ConfigFlags)
122
123 ConfigFlags.LArCalib.Input.Database="LArR4ElecCalib.sqlite"
124 ConfigFlags.LArCalib.Output.POOLFile="LArR4ElecCalib.pool.root"
125 ConfigFlags.LArCalib.Output.ROOTFile="LArR4ElecCalib.root"
126
127 ConfigFlags.IOVDb.DBConnection="sqlite://;schema=output.sqlite;dbname=OFLP200"
128 ConfigFlags.IOVDb.GlobalTag="OFLCOND-MC23-SDR-RUN3-11"
129 #ConfigFlags.IOVDb.GlobalTag="LARCALIB-RUN2-00"
130 ConfigFlags.GeoModel.AtlasVersion=defaultGeometryTags.RUN4
131 ConfigFlags.Input.isMC=True
132 ConfigFlags.Common.MsgSuppression = False
133 ConfigFlags.fillFromArgs()
134
135 print ("Input files to be processed:")
136 for f in ConfigFlags.Input.Files:
137 print (f)
138
139 ConfigFlags.lock()
140 cfg=MainServicesCfg(ConfigFlags)
141 cfg.merge(LArR4ElecCalibCalcCfg (ConfigFlags))
142 cfg.getService("IOVDbSvc").DBInstance=""
143 print("Start running...")
144 sys.exit(cfg.run(1).isFailure())
145
void print(char *figname, TCanvas *c1)