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.ROD.NumberOfCollisions = mu
19 flags.LAr.ROD.nSamples = nsamp
22 msg = logging.getLogger(
"CaloComputeNoiseCfg")
26 minbiastag=
"LARElecCalibMCMinBias-mc16-Epos-A3-s3687"
27 fsampltag=
"LARElecCalibMCfSampl-G4101-20371-FTFP_BERT_BIRK_v2"
28 shapetag=
"LARElecCalibMCShapeLArPileupShape-RUN2-2018"
29 hvcorrtag=
"LARElecCalibMCHVScaleCorr-IOVDEP-02"
31 msg.info(
"Noise computing for mu=%i and dt=%i" , mu,dt)
35 from LArGeoAlgsNV.LArGMConfig
import LArGMCfg
37 from TileGeoModel.TileGMConfig
import TileGMCfg
40 from LArRecUtils.LArADC2MeVCondAlgConfig
import LArADC2MeVCondAlgCfg
41 from LArRecUtils.LArRecUtilsConfig
import LArOFCCondAlgCfg
47 from IOVDbSvc.IOVDbSvcConfig
import addOverride
48 result.merge(
addOverride(flags,
"/LAR/ElecCalibMC/MinBias", minbiastag))
49 result.merge(
addOverride(flags,
"/LAR/ElecCalibMC/fSampl", fsampltag))
50 result.merge(
addOverride(flags,
"/LAR/ElecCalibMC/Shape", shapetag))
51 result.merge(
addOverride(flags,
"/LAR/ElecCalibMC/HVScaleCorr", hvcorrtag))
52 result.merge(
addOverride(flags,
"/LAR/NoiseOfl/CellNoise",
"LARNoiseOflCellNoise-empty"))
53 result.merge(
addOverride(flags,
"/TILE/OFL02/NOISE/CELL",
"TileOfl02NoiseCell-OF2-05-25ns-R2-single-IOV"))
54 result.merge(
addOverride(flags,
"/CALO/Ofl/Noise/CellNoise",
"CaloOflNoiseCellnoise-empty"))
58 iovdbsvc=result.getService(
"IOVDbSvc")
60 folder=
"/LAR/ElecCalibMC/Pedestal"
61 for i
in range(0,len(iovdbsvc.Folders)):
62 if (iovdbsvc.Folders[i].
find(folder)>=0):
63 del iovdbsvc.Folders[i]
65 condInputLoader=result.getCondAlgo(
"CondInputLoader")
66 for cil_Loadval
in condInputLoader.Load:
67 if folder
in cil_Loadval:
68 condInputLoader.Load.remove(cil_Loadval)
72 dfolder=
"/LAR/ElecCalibFlat/Pedestal"
73 iovdbsvc.Folders.append(dfolder+
"<db>COOLONL_LAR/CONDBR2</db>")
74 condInputLoader.Load.add((
"CondAttrListCollection",dfolder))
75 result.addCondAlgo(CompFactory.getComp(
"LArFlatConditionsAlg<LArPedestalFlat>")(ReadKey=dfolder,WriteKey=
"LArPedestal"))
77 result.addEventAlgo(CompFactory.CaloNoiseCompCondAlg(NMinBias=flags.Calo.Noise.fixedLumiForNoise))
79 result.addEventAlgo(CompFactory.CaloRescaleNoise(absScaling=
True,
80 ElecNoiseKey=
"elecNoise",PileupNoiseKey=
"pileupNoise"))
82 result.getCondAlgo(
"LArADC2MeVCondAlg").LArHVScaleCorrKey =
""
85 if os.path.exists(output):
87 result.addService(CompFactory.THistSvc(Output = [
"file1 DATAFILE='"+output+
"' OPT='RECREATE'"]))
88 result.setAppProperty(
"HistogramPersistency",
"ROOT")
93 if __name__==
"__main__":
95 parser= argparse.ArgumentParser(description=
"(Compute noise")
97 parser.add_argument(
'-r',
'--run', type=int, default=358013, help=
"Which run number to use ")
98 parser.add_argument(
'-t',
'--globaltag', type=str, default=
"OFLCOND-MC21-SDR-RUN3-12",help=
"Global conditions tag ")
99 parser.add_argument(
'-o',
'--output',type=str,default=
"cellnoise_data.root",help=
"name stub for root and sqlite output files")
100 parser.add_argument(
'-m',
'--mu', type=int, default=60, help=
"Which mu to use ")
101 parser.add_argument(
'-n',
'--nsamples', type=int, default=4, help=
"Number of samples for OFC/Autocorr ")
102 parser.add_argument(
'--olevel', type=int, default=3, help=
"Output level to use ")
104 args = parser.parse_args()
108 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
110 flags.Input.RunNumbers=[args.run]
111 print(
"set the runnumber: ",flags.Input.RunNumbers)
113 flags.IOVDb.DatabaseInstance=
"OFLP200"
114 flags.Input.isMC=
True
115 from Campaigns.Utils
import Campaign
116 flags.Input.MCCampaign=Campaign.Unknown
117 from AthenaConfiguration.TestDefaults
import defaultGeometryTags
118 flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN3
120 flags.LAr.ROD.UseHighestGainAutoCorr =
True
123 flags.IOVDb.GlobalTag=args.globaltag
127 from McEventSelector.McEventSelectorConfig
import McEventSelectorCfg
132 InitialTimeStamp = 0,
133 TimeStampInterval = 1))
138 cfg.getCondAlgo(
"LArADC2MeVCondAlg").LArHVScaleCorrKey=
""
140 cfg.getService(
"DetectorStore").Dump=
True
141 cfg.getService(
"ConditionStore").Dump=
True
143 cfg.getService(
"MessageSvc").OutputLevel=args.olevel
145 cfg.getCondAlgo(
"LArAutoCorrTotalCondAlg").OutputLevel=3
146 cfg.getCondAlgo(
"LArOFCCondAlg").OutputLevel=3
147 cfg.getService(
"MessageSvc").defaultLimit=999999999
149 cfg.printConfig(withDetails=
True)
151 print(
"Start running...")