3 from AthenaConfiguration.ComponentFactory
import CompFactory
4 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
5 from AthenaConfiguration.MainServicesConfig
import MainEvgenServicesCfg
7 from LArCalibUtils.LArHVScaleConfig
import LArHVScaleCfg
8 from AthenaCommon.Logging
import logging
13 raise RuntimeError(
"At this point (early run 3), only a dt of 25ns is supported")
17 flags.Calo.Noise.fixedLumiForNoise=mu
18 flags.LAr.doHVCorr =
False
19 flags.LAr.ROD.NumberOfCollisions = mu
20 flags.LAr.ROD.nSamples = nsamp
23 msg = logging.getLogger(
"CaloComputeNoiseCfg")
27 minbiastag=
"LARElecCalibMCMinBias-mc16-Epos-A3-s3687"
28 fsampltag=
"LARElecCalibMCfSampl-G4101-20371-FTFP_BERT_BIRK_v2"
29 shapetag=
"LARElecCalibMCShapeLArPileupShape-RUN2-2018"
30 hvcorrtag=
"LARElecCalibMCHVScaleCorr-IOVDEP-02"
32 msg.info(
"Noise computing for mu=%i and dt=%i" , mu,dt)
36 from LArGeoAlgsNV.LArGMConfig
import LArGMCfg
38 from TileGeoModel.TileGMConfig
import TileGMCfg
41 from LArRecUtils.LArADC2MeVCondAlgConfig
import LArADC2MeVCondAlgCfg
42 from LArRecUtils.LArRecUtilsConfig
import LArOFCCondAlgCfg
48 from IOVDbSvc.IOVDbSvcConfig
import addOverride
49 result.merge(
addOverride(flags,
"/LAR/ElecCalibMC/MinBias", minbiastag))
50 result.merge(
addOverride(flags,
"/LAR/ElecCalibMC/fSampl", fsampltag))
51 result.merge(
addOverride(flags,
"/LAR/ElecCalibMC/Shape", shapetag))
52 result.merge(
addOverride(flags,
"/LAR/ElecCalibMC/HVScaleCorr", hvcorrtag))
53 result.merge(
addOverride(flags,
"/LAR/NoiseOfl/CellNoise",
"LARNoiseOflCellNoise-empty"))
54 result.merge(
addOverride(flags,
"/TILE/OFL02/NOISE/CELL",
"TileOfl02NoiseCell-OF2-05-25ns-R2-single-IOV"))
55 result.merge(
addOverride(flags,
"/CALO/Ofl/Noise/CellNoise",
"CaloOflNoiseCellnoise-empty"))
59 iovdbsvc=result.getService(
"IOVDbSvc")
61 folder=
"/LAR/ElecCalibMC/Pedestal"
62 for i
in range(0,len(iovdbsvc.Folders)):
63 if (iovdbsvc.Folders[i].
find(folder)>=0):
64 del iovdbsvc.Folders[i]
66 condInputLoader=result.getCondAlgo(
"CondInputLoader")
67 for cil_Loadval
in condInputLoader.Load:
68 if folder
in cil_Loadval:
69 condInputLoader.Load.remove(cil_Loadval)
73 dfolder=
"/LAR/ElecCalibFlat/Pedestal"
74 iovdbsvc.Folders.append(dfolder+
"<db>COOLONL_LAR/CONDBR2</db>")
75 condInputLoader.Load.add((
"CondAttrListCollection",dfolder))
76 result.addCondAlgo(CompFactory.getComp(
"LArFlatConditionsAlg<LArPedestalFlat>")(ReadKey=dfolder,WriteKey=
"LArPedestal"))
78 result.addEventAlgo(CompFactory.CaloNoiseCompCondAlg(NMinBias=flags.Calo.Noise.fixedLumiForNoise))
80 result.addEventAlgo(CompFactory.CaloRescaleNoise(absScaling=
True,
81 ElecNoiseKey=
"elecNoise",PileupNoiseKey=
"pileupNoise"))
84 if os.path.exists(output):
86 result.addService(CompFactory.THistSvc(Output = [
"file1 DATAFILE='"+output+
"' OPT='RECREATE'"]))
87 result.setAppProperty(
"HistogramPersistency",
"ROOT")
92 if __name__==
"__main__":
94 parser= argparse.ArgumentParser(description=
"(Compute noise")
96 parser.add_argument(
'-r',
'--run', type=int, default=358013, help=
"Which run number to use ")
97 parser.add_argument(
'-t',
'--globaltag', type=str, default=
"OFLCOND-MC21-SDR-RUN3-12",help=
"Global conditions tag ")
98 parser.add_argument(
'-o',
'--output',type=str,default=
"cellnoise_data.root",help=
"name stub for root and sqlite output files")
99 parser.add_argument(
'-m',
'--mu', type=int, default=60, help=
"Which mu to use ")
100 parser.add_argument(
'-n',
'--nsamples', type=int, default=4, help=
"Number of samples for OFC/Autocorr ")
101 parser.add_argument(
'--olevel', type=int, default=3, help=
"Output level to use ")
103 args = parser.parse_args()
107 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
109 flags.Input.RunNumbers=[args.run]
110 print(
"set the runnumber: ",flags.Input.RunNumbers)
112 flags.IOVDb.DatabaseInstance=
"OFLP200"
113 flags.Input.isMC=
True
114 from Campaigns.Utils
import Campaign
115 flags.Input.MCCampaign=Campaign.Unknown
116 from AthenaConfiguration.TestDefaults
import defaultGeometryTags
117 flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN3
119 flags.LAr.ROD.UseHighestGainAutoCorr =
True
122 flags.IOVDb.GlobalTag=args.globaltag
126 from McEventSelector.McEventSelectorConfig
import McEventSelectorCfg
131 InitialTimeStamp = 0,
132 TimeStampInterval = 1))
137 cfg.getCondAlgo(
"LArADC2MeVCondAlg").LArHVScaleCorrKey=
""
139 cfg.getService(
"DetectorStore").Dump=
True
140 cfg.getService(
"ConditionStore").Dump=
True
142 cfg.getService(
"MessageSvc").OutputLevel=args.olevel
144 cfg.getCondAlgo(
"LArAutoCorrTotalCondAlg").OutputLevel=3
145 cfg.getCondAlgo(
"LArOFCCondAlg").OutputLevel=3
146 cfg.getService(
"MessageSvc").defaultLimit=999999999
148 cfg.printConfig(withDetails=
True)
150 print(
"Start running...")