113 result=ComponentAccumulator()
115 kwargs.setdefault(
"MeasureTimes", flags.CaloRecGPU.ActiveConfig.MeasureTimes)
116 kwargs.setdefault(
"TimeFileOutput", name +
"Times.txt")
118 kwargs.setdefault(
"CalorimeterNames", flags.CaloRecGPU.ActiveConfig.GrowingCalorimeterNames)
120 kwargs.setdefault(
"SeedSamplingNames", flags.CaloRecGPU.ActiveConfig.GrowingSeedSamplingNames)
122 kwargs.setdefault(
"SeedThresholdOnEorAbsEinSigma", flags.CaloRecGPU.ActiveConfig.SeedThreshold)
123 kwargs.setdefault(
"NeighborThresholdOnEorAbsEinSigma", flags.CaloRecGPU.ActiveConfig.GrowThreshold)
124 kwargs.setdefault(
"CellThresholdOnEorAbsEinSigma", flags.CaloRecGPU.ActiveConfig.TermThreshold)
126 kwargs.setdefault(
"SeedCutsInAbsE", flags.CaloRecGPU.ActiveConfig.UseAbsSeedThreshold)
127 kwargs.setdefault(
"NeighborCutsInAbsE", flags.CaloRecGPU.ActiveConfig.UseAbsGrowThreshold)
128 kwargs.setdefault(
"CellCutsInAbsE", flags.CaloRecGPU.ActiveConfig.UseAbsTermThreshold)
130 kwargs.setdefault(
"TwoGaussianNoise", flags.CaloRecGPU.ActiveConfig.doTwoGaussianNoise)
132 kwargs.setdefault(
"SeedCutsInT", flags.CaloRecGPU.ActiveConfig.doTimeCut)
133 kwargs.setdefault(
"CutOOTseed", flags.CaloRecGPU.ActiveConfig.doTimeCut
and flags.CaloRecGPU.ActiveConfig.extendTimeCut)
134 kwargs.setdefault(
"UseTimeCutUpperLimit", flags.CaloRecGPU.ActiveConfig.useUpperLimitForTimeCut)
135 kwargs.setdefault(
"TimeCutUpperLimit", flags.CaloRecGPU.ActiveConfig.timeCutUpperLimit)
137 kwargs.setdefault(
"SeedThresholdOnTAbs", flags.CaloRecGPU.ActiveConfig.GrowingTimeCutSeedThreshold)
139 kwargs.setdefault(
"TreatL1PredictedCellsAsGood", flags.CaloRecGPU.ActiveConfig.GrowingTreatL1PredictedCellsAsGood)
141 kwargs.setdefault(
"XTalkEM2", flags.CaloRecGPU.ActiveConfig.xtalkEM2)
142 kwargs.setdefault(
"XTalkDeltaT", flags.CaloRecGPU.ActiveConfig.xtalkDeltaT)
146 kwargs.setdefault(
"NeighborOption", flags.CaloRecGPU.ActiveConfig.GrowingNeighborOption)
148 kwargs.setdefault(
"RestrictHECIWandFCalNeighbors", flags.CaloRecGPU.ActiveConfig.GrowingRestrictHECIWandFCalNeighbors)
150 kwargs.setdefault(
"RestrictPSNeighbors", flags.CaloRecGPU.ActiveConfig.GrowingRestrictPSNeighbors)
152 kwargs.setdefault(
"StreamTool", result.popToolsAndMerge(StreamToolCfg(flags)))
154 TAClusterMaker = CompFactory.TopoAutomatonClustering(name, **kwargs)
155 result.setPrivateTools(TAClusterMaker)
159 result=ComponentAccumulator()
161 kwargs.setdefault(
"CellsName", cellsname)
163 kwargs.setdefault(
"CalorimeterNames", flags.CaloRecGPU.ActiveConfig.GrowingCalorimeterNames)
164 kwargs.setdefault(
"SeedSamplingNames", flags.CaloRecGPU.ActiveConfig.GrowingSeedSamplingNames)
166 kwargs.setdefault(
"NeighborOption", flags.CaloRecGPU.ActiveConfig.GrowingNeighborOption)
167 kwargs.setdefault(
"RestrictHECIWandFCalNeighbors", flags.CaloRecGPU.ActiveConfig.GrowingRestrictHECIWandFCalNeighbors)
168 kwargs.setdefault(
"RestrictPSNeighbors", flags.CaloRecGPU.ActiveConfig.GrowingRestrictPSNeighbors)
170 kwargs.setdefault(
"SeedThresholdOnEorAbsEinSigma", flags.CaloRecGPU.ActiveConfig.SeedThreshold)
171 kwargs.setdefault(
"NeighborThresholdOnEorAbsEinSigma", flags.CaloRecGPU.ActiveConfig.GrowThreshold)
172 kwargs.setdefault(
"CellThresholdOnEorAbsEinSigma", flags.CaloRecGPU.ActiveConfig.TermThreshold)
174 kwargs.setdefault(
"SeedCutsInAbsE", flags.CaloRecGPU.ActiveConfig.UseAbsSeedThreshold)
175 kwargs.setdefault(
"NeighborCutsInAbsE", flags.CaloRecGPU.ActiveConfig.UseAbsGrowThreshold)
176 kwargs.setdefault(
"CellCutsInAbsE", flags.CaloRecGPU.ActiveConfig.UseAbsTermThreshold)
178 kwargs.setdefault(
"SeedCutsInT", flags.CaloRecGPU.ActiveConfig.doTimeCut)
179 kwargs.setdefault(
"CutOOTseed", flags.CaloRecGPU.ActiveConfig.doTimeCut
and flags.CaloRecGPU.ActiveConfig.extendTimeCut)
180 kwargs.setdefault(
"UseTimeCutUpperLimit", flags.CaloRecGPU.ActiveConfig.useUpperLimitForTimeCut)
181 kwargs.setdefault(
"TimeCutUpperLimit", flags.CaloRecGPU.ActiveConfig.timeCutUpperLimit)
182 kwargs.setdefault(
"XTalkEM2", flags.CaloRecGPU.ActiveConfig.xtalkEM2)
183 kwargs.setdefault(
"XTalkEM2D", flags.CaloRecGPU.ActiveConfig.xtalkEM2D)
184 kwargs.setdefault(
"XTalkEM2n", flags.CaloRecGPU.ActiveConfig.xtalkEM2n)
185 kwargs.setdefault(
"XTalkEM3", flags.CaloRecGPU.ActiveConfig.xtalkEM3)
186 kwargs.setdefault(
"XTalkEMEta", flags.CaloRecGPU.ActiveConfig.xtalkEMEta)
187 kwargs.setdefault(
"XTalkDeltaT", flags.CaloRecGPU.ActiveConfig.xtalkDeltaT)
188 kwargs.setdefault(
"XTalk2Eratio1", flags.CaloRecGPU.ActiveConfig.xtalk2Eratio1)
189 kwargs.setdefault(
"XTalk2Eratio2", flags.CaloRecGPU.ActiveConfig.xtalk2Eratio2)
190 kwargs.setdefault(
"XTalk3Eratio", flags.CaloRecGPU.ActiveConfig.xtalk3Eratio)
191 kwargs.setdefault(
"XTalkEtaEratio", flags.CaloRecGPU.ActiveConfig.xtalkEtaEratio)
192 kwargs.setdefault(
"XTalk2DEratio", flags.CaloRecGPU.ActiveConfig.xtalk2DEratio)
194 kwargs.setdefault(
"ClusterCutsInAbsEt", flags.CaloRecGPU.ActiveConfig.PostGrowingClusterCutClustersInAbsEt)
195 kwargs.setdefault(
"ClusterEtorAbsEtCut", flags.CaloRecGPU.ActiveConfig.PostGrowingClusterEnergyCut)
197 kwargs.setdefault(
"TwoGaussianNoise", flags.CaloRecGPU.ActiveConfig.doTwoGaussianNoise)
199 kwargs.setdefault(
"SeedThresholdOnTAbs", flags.CaloRecGPU.ActiveConfig.GrowingTimeCutSeedThreshold)
201 kwargs.setdefault(
"TreatL1PredictedCellsAsGood", flags.CaloRecGPU.ActiveConfig.GrowingTreatL1PredictedCellsAsGood)
203 kwargs.setdefault(
"UseGPUCriteria",
not flags.CaloRecGPU.ActiveConfig.UseOriginalCriteria)
205 TopoMaker = CompFactory.CaloTopoClusterMaker(name, **kwargs)
206 result.setPrivateTools(TopoMaker)
210 result=ComponentAccumulator()
212 kwargs.setdefault(
"MeasureTimes", flags.CaloRecGPU.ActiveConfig.MeasureTimes)
213 kwargs.setdefault(
"TimeFileOutput", name +
"Times.txt")
215 kwargs.setdefault(
"NumberOfCellsCut", flags.CaloRecGPU.ActiveConfig.SplittingNumberOfCellsCut)
216 kwargs.setdefault(
"EnergyCut", flags.CaloRecGPU.ActiveConfig.SplittingEnergyCut)
217 kwargs.setdefault(
"SamplingNames", flags.CaloRecGPU.ActiveConfig.SplittingSamplingNames)
218 kwargs.setdefault(
"SecondarySamplingNames", flags.CaloRecGPU.ActiveConfig.SplittingSecondarySamplingNames)
219 kwargs.setdefault(
"ShareBorderCells", flags.CaloRecGPU.ActiveConfig.SplittingShareBorderCells)
220 kwargs.setdefault(
"EMShowerScale", flags.CaloRecGPU.ActiveConfig.SplittingEMShowerScale)
221 kwargs.setdefault(
"WeightingOfNegClusters", flags.CaloRecGPU.ActiveConfig.SplittingUseNegativeClusters)
223 kwargs.setdefault(
"TreatL1PredictedCellsAsGood", flags.CaloRecGPU.ActiveConfig.SplittingTreatL1PredictedCellsAsGood)
225 kwargs.setdefault(
"NeighborOption", flags.CaloRecGPU.ActiveConfig.SplittingNeighborOption)
226 kwargs.setdefault(
"RestrictHECIWandFCalNeighbors", flags.CaloRecGPU.ActiveConfig.SplittingRestrictHECIWandFCalNeighbors)
227 kwargs.setdefault(
"RestrictPSNeighbors", flags.CaloRecGPU.ActiveConfig.GPUSplittingRestrictPSNeighbors)
230 kwargs.setdefault(
"StreamTool", result.popToolsAndMerge(StreamToolCfg(flags)))
232 Splitter = CompFactory.TopoAutomatonSplitting(name, **kwargs)
233 result.setPrivateTools(Splitter)
237 result=ComponentAccumulator()
239 kwargs.setdefault(
"NeighborOption", flags.CaloRecGPU.ActiveConfig.SplittingNeighborOption)
240 kwargs.setdefault(
"RestrictHECIWandFCalNeighbors", flags.CaloRecGPU.ActiveConfig.SplittingRestrictHECIWandFCalNeighbors)
242 kwargs.setdefault(
"NumberOfCellsCut", flags.CaloRecGPU.ActiveConfig.SplittingNumberOfCellsCut)
243 kwargs.setdefault(
"EnergyCut", flags.CaloRecGPU.ActiveConfig.SplittingEnergyCut)
245 kwargs.setdefault(
"SamplingNames", flags.CaloRecGPU.ActiveConfig.SplittingSamplingNames)
246 kwargs.setdefault(
"SecondarySamplingNames", flags.CaloRecGPU.ActiveConfig.SplittingSecondarySamplingNames)
248 kwargs.setdefault(
"ShareBorderCells", flags.CaloRecGPU.ActiveConfig.SplittingShareBorderCells)
249 kwargs.setdefault(
"EMShowerScale", flags.CaloRecGPU.ActiveConfig.SplittingEMShowerScale)
251 kwargs.setdefault(
"TreatL1PredictedCellsAsGood", flags.CaloRecGPU.ActiveConfig.SplittingTreatL1PredictedCellsAsGood)
253 kwargs.setdefault(
"WeightingOfNegClusters", flags.CaloRecGPU.ActiveConfig.SplittingUseNegativeClusters)
255 kwargs.setdefault(
"UseGPUCriteria",
not flags.CaloRecGPU.ActiveConfig.UseOriginalCriteria)
257 TopoSplitter = CompFactory.CaloTopoClusterSplitter(name, **kwargs)
258 result.setPrivateTools(TopoSplitter)
262 result=ComponentAccumulator()
264 kwargs.setdefault(
"MeasureTimes", flags.CaloRecGPU.ActiveConfig.MeasureTimes)
265 kwargs.setdefault(
"TimeFileOutput", name +
"Times.txt")
267 kwargs.setdefault(
"WeightingOfNegClusters", flags.CaloRecGPU.ActiveConfig.MomentsUseAbsEnergy)
269 kwargs.setdefault(
"MaxAxisAngle", flags.CaloRecGPU.ActiveConfig.MomentsMaxAxisAngle)
271 kwargs.setdefault(
"TwoGaussianNoise", flags.CaloRecGPU.ActiveConfig.doTwoGaussianNoise)
273 kwargs.setdefault(
"MinBadLArQuality", flags.CaloRecGPU.ActiveConfig.MomentsMinBadLArQuality)
275 kwargs.setdefault(
"MinRLateral", flags.CaloRecGPU.ActiveConfig.MomentsMinRLateral)
276 kwargs.setdefault(
"MinLLongitudinal", flags.CaloRecGPU.ActiveConfig.MomentsMinLLongitudinal)
278 kwargs.setdefault(
"StreamTool", result.popToolsAndMerge(StreamToolCfg(flags)))
280 GPUTopoMoments = CompFactory.GPUClusterInfoAndMomentsCalculator(name, **kwargs)
281 result.setPrivateTools(GPUTopoMoments)
285 result=ComponentAccumulator()
287 kwargs.setdefault(
"WeightingOfNegClusters", flags.CaloRecGPU.ActiveConfig.MomentsUseAbsEnergy)
289 kwargs.setdefault(
"MaxAxisAngle", flags.CaloRecGPU.ActiveConfig.MomentsMaxAxisAngle)
291 kwargs.setdefault(
"TwoGaussianNoise", flags.CaloRecGPU.ActiveConfig.doTwoGaussianNoise)
293 kwargs.setdefault(
"MinBadLArQuality", flags.CaloRecGPU.ActiveConfig.MomentsMinBadLArQuality)
295 kwargs.setdefault(
"MomentsNames", flags.CaloRecGPU.ActiveConfig.MomentsToCalculate)
297 kwargs.setdefault(
"MinRLateral", flags.CaloRecGPU.ActiveConfig.MomentsMinRLateral)
298 kwargs.setdefault(
"MinLLongitudinal", flags.CaloRecGPU.ActiveConfig.MomentsMinLLongitudinal)
300 kwargs.setdefault(
"UseGPUCriteria",
not flags.CaloRecGPU.ActiveConfig.UseOriginalCriteria)
302 TopoMoments = CompFactory.CaloClusterMomentsMaker(name, **kwargs)
304 if not flags.Common.isOnline
and not instantiateForTrigger
and "LArHVFraction" not in kwargs:
307 from LArConfiguration.LArElecCalibDBConfig
import LArElecCalibDBCfg
308 result.merge(LArElecCalibDBCfg(flags,[
"HVScaleCorr"]))
310 TopoMoments.LArHVFraction=CompFactory.LArHVFraction(HVScaleCorrKey=
"LArHVScaleCorr")
312 TopoMoments.LArHVFraction=CompFactory.LArHVFraction(HVScaleCorrKey=
"LArHVScaleCorrRecomputed")
314 result.setPrivateTools(TopoMoments)
374 result=ComponentAccumulator()
375 kwargs.setdefault(
"FileName",
"event_info.txt")
376 kwargs.setdefault(
"CellsName", cellsname)
378 kwargs.setdefault(
"SeedThresholdOnEorAbsEinSigma", flags.CaloRecGPU.ActiveConfig.SeedThreshold)
379 kwargs.setdefault(
"NeighborThresholdOnEorAbsEinSigma", flags.CaloRecGPU.ActiveConfig.GrowThreshold)
380 kwargs.setdefault(
"CellThresholdOnEorAbsEinSigma", flags.CaloRecGPU.ActiveConfig.TermThreshold)
382 kwargs.setdefault(
"GrowingNeighborOption", flags.CaloRecGPU.ActiveConfig.GrowingNeighborOption)
383 kwargs.setdefault(
"GrowingRestrictHECIWandFCalNeighbors", flags.CaloRecGPU.ActiveConfig.GrowingRestrictHECIWandFCalNeighbors)
384 kwargs.setdefault(
"GrowingRestrictPSNeighbors", flags.CaloRecGPU.ActiveConfig.GrowingRestrictPSNeighbors)
387 kwargs.setdefault(
"SplittingNeighborOption", flags.CaloRecGPU.ActiveConfig.SplittingNeighborOption)
388 kwargs.setdefault(
"SplittingRestrictHECIWandFCalNeighbors", flags.CaloRecGPU.ActiveConfig.SplittingRestrictHECIWandFCalNeighbors)
389 kwargs.setdefault(
"SplittingRestrictPSNeighbors", flags.CaloRecGPU.ActiveConfig.GPUSplittingRestrictPSNeighbors)
391 kwargs.setdefault(
"SeedCutsInAbsE", flags.CaloRecGPU.ActiveConfig.UseAbsSeedThreshold)
392 kwargs.setdefault(
"NeighborCutsInAbsE", flags.CaloRecGPU.ActiveConfig.UseAbsGrowThreshold)
393 kwargs.setdefault(
"CellCutsInAbsE", flags.CaloRecGPU.ActiveConfig.UseAbsTermThreshold)
395 GPUCount = CompFactory.CaloPerformancePropertiesOutput(name, **kwargs)
396 result.setPrivateTools(GPUCount)
468 result=ComponentAccumulator()
470 CaloClusterLocalCalib=CompFactory.CaloClusterLocalCalib
473 LCClassify = CompFactory.CaloLCClassificationTool(prefix +
"LCClassify")
474 LCClassify.ClassificationKey =
"EMFracClassify"
475 LCClassify.UseSpread =
False
476 LCClassify.MaxProbability = 0.85
if flags.GeoModel.AtlasVersion.startswith(
"Rome")
and instantiateForTrigger
else 0.5
477 LCClassify.StoreClassificationProbabilityInAOD =
True
478 if instantiateForTrigger:
479 LCClassify.UseNormalizedEnergyDensity =
not flags.GeoModel.AtlasVersion.startswith(
"Rome")
480 if not instantiateForTrigger:
481 LCClassify.WeightingOfNegClusters = flags.CaloRecGPU.ActiveConfig.CalibrationUseAbsEnergy
483 LCWeight = CompFactory.CaloLCWeightTool(prefix +
"LCWeight")
484 LCWeight.CorrectionKey =
"H1ClusterCellWeights"
485 LCWeight.SignalOverNoiseCut = 2.0
486 LCWeight.UseHadProbability =
True
488 LocalCalib = CaloClusterLocalCalib (prefix +
"LocalCalib")
489 LocalCalib.ClusterClassificationTool = [LCClassify]
490 LocalCalib.ClusterRecoStatus = [1,2]
491 LocalCalib.LocalCalibTools = [LCWeight]
492 if not instantiateForTrigger:
493 LocalCalib.WeightingOfNegClusters = flags.CaloRecGPU.ActiveConfig.CalibrationUseAbsEnergy
496 LCOut = CompFactory.CaloLCOutOfClusterTool(prefix +
"LCOut")
497 LCOut.CorrectionKey =
"OOCCorrection"
498 LCOut.UseEmProbability =
False
499 LCOut.UseHadProbability =
True
501 OOCCalib = CaloClusterLocalCalib (prefix +
"OOCCalib")
502 OOCCalib.ClusterRecoStatus = [1,2]
503 OOCCalib.LocalCalibTools = [LCOut]
504 if not instantiateForTrigger:
505 OOCCalib.WeightingOfNegClusters = flags.CaloRecGPU.ActiveConfig.CalibrationUseAbsEnergy
507 LCOutPi0 = CompFactory.CaloLCOutOfClusterTool(prefix +
"LCOutPi0")
508 LCOutPi0.CorrectionKey =
"OOCPi0Correction"
509 LCOutPi0.UseEmProbability =
True
510 LCOutPi0.UseHadProbability =
False
512 OOCPi0Calib = CaloClusterLocalCalib (prefix +
"OOCPi0Calib")
513 OOCPi0Calib.ClusterRecoStatus = [1,2]
514 OOCPi0Calib.LocalCalibTools = [LCOutPi0]
515 if not instantiateForTrigger:
516 OOCPi0Calib.WeightingOfNegClusters = flags.CaloRecGPU.ActiveConfig.CalibrationUseAbsEnergy
519 LCDeadMaterial = CompFactory.CaloLCDeadMaterialTool(prefix +
"LCDeadMaterial")
520 LCDeadMaterial.HadDMCoeffKey =
"HadDMCoeff2"
521 LCDeadMaterial.ClusterRecoStatus = 0
522 LCDeadMaterial.WeightModeDM = 2
523 LCDeadMaterial.UseHadProbability =
True
524 if not instantiateForTrigger:
525 LCDeadMaterial.WeightingOfNegClusters = flags.CaloRecGPU.ActiveConfig.CalibrationUseAbsEnergy
527 DMCalib = CaloClusterLocalCalib (prefix +
"DMCalib")
528 DMCalib.ClusterRecoStatus = [1,2]
529 DMCalib.LocalCalibTools = [LCDeadMaterial]
530 if not instantiateForTrigger:
531 DMCalib.WeightingOfNegClusters = flags.CaloRecGPU.ActiveConfig.CalibrationUseAbsEnergy
539 result.setPrivateTools(lccalibtools)
546 clustersname = None, clustersnapname="CaloTopoClusters", name="HybridClusterProcessor",
547 PlotterTool = None, addAsPrimary = True, ReallyUseGPUTools = True):
549 doLCCalib = flags.CaloRecGPU.ActiveConfig.doTopoClusterLocalCalib
551 if clustersname
is None:
552 clustersname =
"CaloCalTopoClusters" if doLCCalib
else "CaloTopoClusters"
554 if clustersname ==
"CaloTopoClusters" and doLCCalib:
555 raise RuntimeError(
"Inconsistent arguments: clustersname must not be 'CaloTopoClusters' if doTopoClusterLocalCalib is True")
557 clustersname_final = clustersname
558 if flags.CaloRecGPU.ActiveConfig.applyClusterTimingCut:
559 clustersname = f
"{clustersname}BeforeTimingCut"
561 result = ComponentAccumulator()
563 if not instantiateForTrigger:
565 from LArGeoAlgsNV.LArGMConfig
import LArGMCfg
566 from TileGeoModel.TileGMConfig
import TileGMCfg
567 from CaloTools.CaloNoiseCondAlgConfig
import CaloNoiseCondAlgCfg
569 result.merge(CaloNoiseCondAlgCfg(flags,
"totalNoise"))
570 result.merge(CaloNoiseCondAlgCfg(flags,
"electronicNoise"))
572 result.merge(LArGMCfg(flags))
573 result.merge(TileGMCfg(flags))
576 HybridClusterProcessor = CompFactory.CaloGPUHybridClusterProcessor(name)
577 HybridClusterProcessor.ClustersOutputName = clustersname
579 HybridClusterProcessor.WriteTriggerSpecificInfo = instantiateForTrigger
581 HybridClusterProcessor.MeasureTimes = flags.CaloRecGPU.ActiveConfig.MeasureTimes
583 HybridClusterProcessor.TimeFileOutput =
"GlobalTimes.txt"
585 HybridClusterProcessor.DeferConstantDataPreparationToFirstEvent =
True
586 HybridClusterProcessor.DoPlots = PlotterTool
is not None
587 HybridClusterProcessor.PlotterTool = PlotterTool
589 HybridClusterProcessor.NumPreAllocatedDataHolders = flags.CaloRecGPU.ActiveConfig.NumPreAllocatedDataHolders
591 if ReallyUseGPUTools:
598 HybridClusterProcessor.BeforeGPUTools = []
600 HybridClusterProcessor.GPUTools = []
604 HybridClusterProcessor.GPUTools += [result.popToolsAndMerge(
ClusterInfoCalcToolCfg(flags,
"PostGPUGrowingClusterPropertiesCalculator",
True))]
608 HybridClusterProcessor.GPUTools += [result.popToolsAndMerge(
ClusterSorterToolCfg(flags,
"GPUClusterSorting",
False) )]
614 HybridClusterProcessor.ConstantDataToGPUTool =
None
615 HybridClusterProcessor.EventDataToGPUTool =
None
616 HybridClusterProcessor.GPUToEventDataTool =
None
617 HybridClusterProcessor.SkipConversions =
True
619 HybridClusterProcessor.GPUTools = []
621 HybridClusterProcessor.BeforeGPUTools = []
629 HybridClusterProcessor.BeforeGPUTools += [ CompFactory.CaloClusterStoreRawProperties(
"RawPropertiesStorer") ]
633 HybridClusterProcessor.AfterGPUTools = []
635 if not instantiateForTrigger:
636 from CaloBadChannelTool.CaloBadChanToolConfig
import CaloBadChanToolCfg
637 caloBadChanTool = result.popToolsAndMerge( CaloBadChanToolCfg(flags) )
638 HybridClusterProcessor.AfterGPUTools += [CompFactory.CaloClusterBadChannelList(badChannelTool = caloBadChanTool)]
640 if not instantiateForTrigger
and flags.CaloRecGPU.ActiveConfig.doCalibHitMoments:
643 HybridClusterProcessor.AfterGPUTools += [calibHitsMomentsMaker]
646 if not instantiateForTrigger:
647 HybridClusterProcessor.AfterGPUTools += [CompFactory.CaloClusterSnapshot(OutputName=clustersnapname,
649 FinalClusterContainerName=clustersname)]
651 from CaloTools.CaloNoiseCondAlgConfig
import CaloNoiseCondAlgCfg
652 from CaloRec.CaloTopoClusterConfig
import caloTopoCoolFolderCfg
653 result.merge(CaloNoiseCondAlgCfg(flags, noisetype=
"electronicNoise"))
654 result.merge(caloTopoCoolFolderCfg(flags))
658 HybridClusterProcessor.AfterGPUTools += calibTools
661 if not instantiateForTrigger:
662 from CaloRec.CaloTopoClusterConfig
import caloTopoCoolFolderCfg
663 result.merge(caloTopoCoolFolderCfg(flags))
665 if instantiateForTrigger:
666 from CaloTools.CaloNoiseCondAlgConfig
import CaloNoiseCondAlgCfg
667 result.merge(CaloNoiseCondAlgCfg(flags))
669 result.addEventAlgo(HybridClusterProcessor, primary=addAsPrimary)
671 if flags.CaloRecGPU.ActiveConfig.applyClusterTimingCut:
672 from CaloRec.CaloTopoClusterConfig
import CaloClusterTimingFilterCfg
673 result.merge(CaloClusterTimingFilterCfg(flags, name = f
"{clustersname}Filter", InputClusters = clustersname, OutputClusters = clustersname_final))
675 if instantiateForTrigger
or clustersname_final
in flags.CaloRecGPU.ActiveConfig.skipWriteList:
680 AODMoments=[
"SECOND_R"
699 if flags.CaloRecGPU.ActiveConfig.writeExtendedClusterMoments:
700 AODMoments += [
"LATERAL"
706 if flags.Reco.EnableHI:
707 AODMoments += [
"CELL_SIG_SAMPLING"]
709 if flags.CaloRecGPU.ActiveConfig.writeCalibHitClusterMoments:
710 AODMoments += [
"ENG_CALIB_TOT"
716 ,
"ENG_CALIB_DEAD_TOT"
717 ,
"ENG_CALIB_DEAD_EMB0"
718 ,
"ENG_CALIB_DEAD_TILE0"
719 ,
"ENG_CALIB_DEAD_TILEG3"
720 ,
"ENG_CALIB_DEAD_EME0"
721 ,
"ENG_CALIB_DEAD_HEC0"
722 ,
"ENG_CALIB_DEAD_FCAL"
723 ,
"ENG_CALIB_DEAD_LEAKAGE"
724 ,
"ENG_CALIB_DEAD_UNCLASS"
726 ,
"ENG_CALIB_FRAC_HAD"
727 ,
"ENG_CALIB_FRAC_REST"]
730 from OutputStreamAthenaPool.OutputStreamConfig
import addToAOD, addToESD
731 toESD = [f
"xAOD::CaloClusterContainer#{clustersname_final}",
732 f
"xAOD::CaloClusterAuxContainer#{clustersname_final}Aux.",
733 f
"CaloClusterCellLinkContainer#{clustersname_final}_links"]
734 toAOD = [f
"xAOD::CaloClusterContainer#{clustersname_final}",
735 f
"CaloClusterCellLinkContainer#{clustersname_final}_links"]
737 AODMoments.append(
"CellLink")
738 if flags.CaloRecGPU.ActiveConfig.addCalibrationHitDecoration:
739 AODMoments.append(flags.CaloRecGPU.ActiveConfig.CalibrationHitDecorationName)
741 if flags.CaloRecGPU.ActiveConfig.addCPData:
742 AODMoments += [
"ClusterWidthEta",
"ClusterWidthPhi"]
744 auxItems = f
"xAOD::CaloClusterAuxContainer#{clustersname_final}Aux."
745 auxItems+=
".".join(AODMoments)
747 toAOD.append(auxItems)
749 result.merge(addToESD(flags, toESD))
750 result.merge(addToAOD(flags, toAOD))