106 result=ComponentAccumulator()
108 kwargs.setdefault(
"MeasureTimes", flags.CaloRecGPU.ActiveConfig.MeasureTimes)
109 kwargs.setdefault(
"TimeFileOutput", name +
"Times.txt")
111 kwargs.setdefault(
"CalorimeterNames", flags.CaloRecGPU.ActiveConfig.GrowingCalorimeterNames)
113 kwargs.setdefault(
"SeedSamplingNames", flags.CaloRecGPU.ActiveConfig.GrowingSeedSamplingNames)
115 kwargs.setdefault(
"SeedThresholdOnEorAbsEinSigma", flags.CaloRecGPU.ActiveConfig.SeedThreshold)
116 kwargs.setdefault(
"NeighborThresholdOnEorAbsEinSigma", flags.CaloRecGPU.ActiveConfig.GrowThreshold)
117 kwargs.setdefault(
"CellThresholdOnEorAbsEinSigma", flags.CaloRecGPU.ActiveConfig.TermThreshold)
119 kwargs.setdefault(
"SeedCutsInAbsE", flags.CaloRecGPU.ActiveConfig.UseAbsSeedThreshold)
120 kwargs.setdefault(
"NeighborCutsInAbsE", flags.CaloRecGPU.ActiveConfig.UseAbsGrowThreshold)
121 kwargs.setdefault(
"CellCutsInAbsE", flags.CaloRecGPU.ActiveConfig.UseAbsTermThreshold)
123 kwargs.setdefault(
"TwoGaussianNoise", flags.CaloRecGPU.ActiveConfig.doTwoGaussianNoise)
125 kwargs.setdefault(
"SeedCutsInT", flags.CaloRecGPU.ActiveConfig.doTimeCut)
126 kwargs.setdefault(
"CutOOTseed", flags.CaloRecGPU.ActiveConfig.doTimeCut
and flags.CaloRecGPU.ActiveConfig.extendTimeCut)
127 kwargs.setdefault(
"UseTimeCutUpperLimit", flags.CaloRecGPU.ActiveConfig.useUpperLimitForTimeCut)
128 kwargs.setdefault(
"TimeCutUpperLimit", flags.CaloRecGPU.ActiveConfig.timeCutUpperLimit)
130 kwargs.setdefault(
"SeedThresholdOnTAbs", flags.CaloRecGPU.ActiveConfig.GrowingTimeCutSeedThreshold)
132 kwargs.setdefault(
"TreatL1PredictedCellsAsGood", flags.CaloRecGPU.ActiveConfig.GrowingTreatL1PredictedCellsAsGood)
134 kwargs.setdefault(
"XTalkEM2", flags.CaloRecGPU.ActiveConfig.xtalkEM2)
135 kwargs.setdefault(
"XTalkDeltaT", flags.CaloRecGPU.ActiveConfig.xtalkDeltaT)
139 kwargs.setdefault(
"NeighborOption", flags.CaloRecGPU.ActiveConfig.GrowingNeighborOption)
141 kwargs.setdefault(
"RestrictHECIWandFCalNeighbors", flags.CaloRecGPU.ActiveConfig.GrowingRestrictHECIWandFCalNeighbors)
143 kwargs.setdefault(
"RestrictPSNeighbors", flags.CaloRecGPU.ActiveConfig.GrowingRestrictPSNeighbors)
145 TAClusterMaker = CompFactory.TopoAutomatonClustering(name, **kwargs)
146 result.setPrivateTools(TAClusterMaker)
150 result=ComponentAccumulator()
152 kwargs.setdefault(
"CellsName", cellsname)
154 kwargs.setdefault(
"CalorimeterNames", flags.CaloRecGPU.ActiveConfig.GrowingCalorimeterNames)
155 kwargs.setdefault(
"SeedSamplingNames", flags.CaloRecGPU.ActiveConfig.GrowingSeedSamplingNames)
157 kwargs.setdefault(
"NeighborOption", flags.CaloRecGPU.ActiveConfig.GrowingNeighborOption)
158 kwargs.setdefault(
"RestrictHECIWandFCalNeighbors", flags.CaloRecGPU.ActiveConfig.GrowingRestrictHECIWandFCalNeighbors)
159 kwargs.setdefault(
"RestrictPSNeighbors", flags.CaloRecGPU.ActiveConfig.GrowingRestrictPSNeighbors)
161 kwargs.setdefault(
"SeedThresholdOnEorAbsEinSigma", flags.CaloRecGPU.ActiveConfig.SeedThreshold)
162 kwargs.setdefault(
"NeighborThresholdOnEorAbsEinSigma", flags.CaloRecGPU.ActiveConfig.GrowThreshold)
163 kwargs.setdefault(
"CellThresholdOnEorAbsEinSigma", flags.CaloRecGPU.ActiveConfig.TermThreshold)
165 kwargs.setdefault(
"SeedCutsInAbsE", flags.CaloRecGPU.ActiveConfig.UseAbsSeedThreshold)
166 kwargs.setdefault(
"NeighborCutsInAbsE", flags.CaloRecGPU.ActiveConfig.UseAbsGrowThreshold)
167 kwargs.setdefault(
"CellCutsInAbsE", flags.CaloRecGPU.ActiveConfig.UseAbsTermThreshold)
169 kwargs.setdefault(
"SeedCutsInT", flags.CaloRecGPU.ActiveConfig.doTimeCut)
170 kwargs.setdefault(
"CutOOTseed", flags.CaloRecGPU.ActiveConfig.doTimeCut
and flags.CaloRecGPU.ActiveConfig.extendTimeCut)
171 kwargs.setdefault(
"UseTimeCutUpperLimit", flags.CaloRecGPU.ActiveConfig.useUpperLimitForTimeCut)
172 kwargs.setdefault(
"TimeCutUpperLimit", flags.CaloRecGPU.ActiveConfig.timeCutUpperLimit)
173 kwargs.setdefault(
"XTalkEM2", flags.CaloRecGPU.ActiveConfig.xtalkEM2)
174 kwargs.setdefault(
"XTalkEM2D", flags.CaloRecGPU.ActiveConfig.xtalkEM2D)
175 kwargs.setdefault(
"XTalkEM2n", flags.CaloRecGPU.ActiveConfig.xtalkEM2n)
176 kwargs.setdefault(
"XTalkEM3", flags.CaloRecGPU.ActiveConfig.xtalkEM3)
177 kwargs.setdefault(
"XTalkEMEta", flags.CaloRecGPU.ActiveConfig.xtalkEMEta)
178 kwargs.setdefault(
"XTalkDeltaT", flags.CaloRecGPU.ActiveConfig.xtalkDeltaT)
179 kwargs.setdefault(
"XTalk2Eratio1", flags.CaloRecGPU.ActiveConfig.xtalk2Eratio1)
180 kwargs.setdefault(
"XTalk2Eratio2", flags.CaloRecGPU.ActiveConfig.xtalk2Eratio2)
181 kwargs.setdefault(
"XTalk3Eratio", flags.CaloRecGPU.ActiveConfig.xtalk3Eratio)
182 kwargs.setdefault(
"XTalkEtaEratio", flags.CaloRecGPU.ActiveConfig.xtalkEtaEratio)
183 kwargs.setdefault(
"XTalk2DEratio", flags.CaloRecGPU.ActiveConfig.xtalk2DEratio)
185 kwargs.setdefault(
"ClusterCutsInAbsEt", flags.CaloRecGPU.ActiveConfig.PostGrowingClusterCutClustersInAbsEt)
186 kwargs.setdefault(
"ClusterEtorAbsEtCut", flags.CaloRecGPU.ActiveConfig.PostGrowingClusterEnergyCut)
188 kwargs.setdefault(
"TwoGaussianNoise", flags.CaloRecGPU.ActiveConfig.doTwoGaussianNoise)
190 kwargs.setdefault(
"SeedThresholdOnTAbs", flags.CaloRecGPU.ActiveConfig.GrowingTimeCutSeedThreshold)
192 kwargs.setdefault(
"TreatL1PredictedCellsAsGood", flags.CaloRecGPU.ActiveConfig.GrowingTreatL1PredictedCellsAsGood)
194 kwargs.setdefault(
"UseGPUCriteria",
not flags.CaloRecGPU.ActiveConfig.UseOriginalCriteria)
196 TopoMaker = CompFactory.CaloTopoClusterMaker(name, **kwargs)
197 result.setPrivateTools(TopoMaker)
201 result=ComponentAccumulator()
203 kwargs.setdefault(
"MeasureTimes", flags.CaloRecGPU.ActiveConfig.MeasureTimes)
204 kwargs.setdefault(
"TimeFileOutput", name +
"Times.txt")
206 kwargs.setdefault(
"NumberOfCellsCut", flags.CaloRecGPU.ActiveConfig.SplittingNumberOfCellsCut)
207 kwargs.setdefault(
"EnergyCut", flags.CaloRecGPU.ActiveConfig.SplittingEnergyCut)
208 kwargs.setdefault(
"SamplingNames", flags.CaloRecGPU.ActiveConfig.SplittingSamplingNames)
209 kwargs.setdefault(
"SecondarySamplingNames", flags.CaloRecGPU.ActiveConfig.SplittingSecondarySamplingNames)
210 kwargs.setdefault(
"ShareBorderCells", flags.CaloRecGPU.ActiveConfig.SplittingShareBorderCells)
211 kwargs.setdefault(
"EMShowerScale", flags.CaloRecGPU.ActiveConfig.SplittingEMShowerScale)
212 kwargs.setdefault(
"WeightingOfNegClusters", flags.CaloRecGPU.ActiveConfig.SplittingUseNegativeClusters)
214 kwargs.setdefault(
"TreatL1PredictedCellsAsGood", flags.CaloRecGPU.ActiveConfig.SplittingTreatL1PredictedCellsAsGood)
216 kwargs.setdefault(
"NeighborOption", flags.CaloRecGPU.ActiveConfig.SplittingNeighborOption)
217 kwargs.setdefault(
"RestrictHECIWandFCalNeighbors", flags.CaloRecGPU.ActiveConfig.SplittingRestrictHECIWandFCalNeighbors)
218 kwargs.setdefault(
"RestrictPSNeighbors", flags.CaloRecGPU.ActiveConfig.GPUSplittingRestrictPSNeighbors)
221 Splitter = CompFactory.TopoAutomatonSplitting(name, **kwargs)
222 result.setPrivateTools(Splitter)
226 result=ComponentAccumulator()
228 kwargs.setdefault(
"NeighborOption", flags.CaloRecGPU.ActiveConfig.SplittingNeighborOption)
229 kwargs.setdefault(
"RestrictHECIWandFCalNeighbors", flags.CaloRecGPU.ActiveConfig.SplittingRestrictHECIWandFCalNeighbors)
231 kwargs.setdefault(
"NumberOfCellsCut", flags.CaloRecGPU.ActiveConfig.SplittingNumberOfCellsCut)
232 kwargs.setdefault(
"EnergyCut", flags.CaloRecGPU.ActiveConfig.SplittingEnergyCut)
234 kwargs.setdefault(
"SamplingNames", flags.CaloRecGPU.ActiveConfig.SplittingSamplingNames)
235 kwargs.setdefault(
"SecondarySamplingNames", flags.CaloRecGPU.ActiveConfig.SplittingSecondarySamplingNames)
237 kwargs.setdefault(
"ShareBorderCells", flags.CaloRecGPU.ActiveConfig.SplittingShareBorderCells)
238 kwargs.setdefault(
"EMShowerScale", flags.CaloRecGPU.ActiveConfig.SplittingEMShowerScale)
240 kwargs.setdefault(
"TreatL1PredictedCellsAsGood", flags.CaloRecGPU.ActiveConfig.SplittingTreatL1PredictedCellsAsGood)
242 kwargs.setdefault(
"WeightingOfNegClusters", flags.CaloRecGPU.ActiveConfig.SplittingUseNegativeClusters)
244 kwargs.setdefault(
"UseGPUCriteria",
not flags.CaloRecGPU.ActiveConfig.UseOriginalCriteria)
246 TopoSplitter = CompFactory.CaloTopoClusterSplitter(name, **kwargs)
247 result.setPrivateTools(TopoSplitter)
251 result=ComponentAccumulator()
253 kwargs.setdefault(
"MeasureTimes", flags.CaloRecGPU.ActiveConfig.MeasureTimes)
254 kwargs.setdefault(
"TimeFileOutput", name +
"Times.txt")
256 kwargs.setdefault(
"WeightingOfNegClusters", flags.CaloRecGPU.ActiveConfig.MomentsUseAbsEnergy)
258 kwargs.setdefault(
"MaxAxisAngle", flags.CaloRecGPU.ActiveConfig.MomentsMaxAxisAngle)
260 kwargs.setdefault(
"TwoGaussianNoise", flags.CaloRecGPU.ActiveConfig.doTwoGaussianNoise)
262 kwargs.setdefault(
"MinBadLArQuality", flags.CaloRecGPU.ActiveConfig.MomentsMinBadLArQuality)
264 kwargs.setdefault(
"MinRLateral", flags.CaloRecGPU.ActiveConfig.MomentsMinRLateral)
265 kwargs.setdefault(
"MinLLongitudinal", flags.CaloRecGPU.ActiveConfig.MomentsMinLLongitudinal)
267 GPUTopoMoments = CompFactory.GPUClusterInfoAndMomentsCalculator(name, **kwargs)
268 result.setPrivateTools(GPUTopoMoments)
272 result=ComponentAccumulator()
274 kwargs.setdefault(
"WeightingOfNegClusters", flags.CaloRecGPU.ActiveConfig.MomentsUseAbsEnergy)
276 kwargs.setdefault(
"MaxAxisAngle", flags.CaloRecGPU.ActiveConfig.MomentsMaxAxisAngle)
278 kwargs.setdefault(
"TwoGaussianNoise", flags.CaloRecGPU.ActiveConfig.doTwoGaussianNoise)
280 kwargs.setdefault(
"MinBadLArQuality", flags.CaloRecGPU.ActiveConfig.MomentsMinBadLArQuality)
282 kwargs.setdefault(
"MomentsNames", flags.CaloRecGPU.ActiveConfig.MomentsToCalculate)
284 kwargs.setdefault(
"MinRLateral", flags.CaloRecGPU.ActiveConfig.MomentsMinRLateral)
285 kwargs.setdefault(
"MinLLongitudinal", flags.CaloRecGPU.ActiveConfig.MomentsMinLLongitudinal)
287 kwargs.setdefault(
"UseGPUCriteria",
not flags.CaloRecGPU.ActiveConfig.UseOriginalCriteria)
289 TopoMoments = CompFactory.CaloClusterMomentsMaker(name, **kwargs)
291 if not flags.Common.isOnline
and not instantiateForTrigger
and "LArHVFraction" not in kwargs:
294 from LArConfiguration.LArElecCalibDBConfig
import LArElecCalibDBCfg
295 result.merge(LArElecCalibDBCfg(flags,[
"HVScaleCorr"]))
297 TopoMoments.LArHVFraction=CompFactory.LArHVFraction(HVScaleCorrKey=
"LArHVScaleCorr")
299 TopoMoments.LArHVFraction=CompFactory.LArHVFraction(HVScaleCorrKey=
"LArHVScaleCorrRecomputed")
301 result.setPrivateTools(TopoMoments)
359 result=ComponentAccumulator()
360 kwargs.setdefault(
"FileName",
"event_info.txt")
361 kwargs.setdefault(
"CellsName", cellsname)
363 kwargs.setdefault(
"SeedThresholdOnEorAbsEinSigma", flags.CaloRecGPU.ActiveConfig.SeedThreshold)
364 kwargs.setdefault(
"NeighborThresholdOnEorAbsEinSigma", flags.CaloRecGPU.ActiveConfig.GrowThreshold)
365 kwargs.setdefault(
"CellThresholdOnEorAbsEinSigma", flags.CaloRecGPU.ActiveConfig.TermThreshold)
367 kwargs.setdefault(
"GrowingNeighborOption", flags.CaloRecGPU.ActiveConfig.GrowingNeighborOption)
368 kwargs.setdefault(
"GrowingRestrictHECIWandFCalNeighbors", flags.CaloRecGPU.ActiveConfig.GrowingRestrictHECIWandFCalNeighbors)
369 kwargs.setdefault(
"GrowingRestrictPSNeighbors", flags.CaloRecGPU.ActiveConfig.GrowingRestrictPSNeighbors)
372 kwargs.setdefault(
"SplittingNeighborOption", flags.CaloRecGPU.ActiveConfig.SplittingNeighborOption)
373 kwargs.setdefault(
"SplittingRestrictHECIWandFCalNeighbors", flags.CaloRecGPU.ActiveConfig.SplittingRestrictHECIWandFCalNeighbors)
374 kwargs.setdefault(
"SplittingRestrictPSNeighbors", flags.CaloRecGPU.ActiveConfig.GPUSplittingRestrictPSNeighbors)
376 kwargs.setdefault(
"SeedCutsInAbsE", flags.CaloRecGPU.ActiveConfig.UseAbsSeedThreshold)
377 kwargs.setdefault(
"NeighborCutsInAbsE", flags.CaloRecGPU.ActiveConfig.UseAbsGrowThreshold)
378 kwargs.setdefault(
"CellCutsInAbsE", flags.CaloRecGPU.ActiveConfig.UseAbsTermThreshold)
380 GPUCount = CompFactory.CaloPerformancePropertiesOutput(name, **kwargs)
381 result.setPrivateTools(GPUCount)
453 result=ComponentAccumulator()
455 CaloClusterLocalCalib=CompFactory.CaloClusterLocalCalib
458 LCClassify = CompFactory.CaloLCClassificationTool(prefix +
"LCClassify")
459 LCClassify.ClassificationKey =
"EMFracClassify"
460 LCClassify.UseSpread =
False
461 LCClassify.MaxProbability = 0.85
if flags.GeoModel.AtlasVersion.startswith(
"Rome")
and instantiateForTrigger
else 0.5
462 LCClassify.StoreClassificationProbabilityInAOD =
True
463 if instantiateForTrigger:
464 LCClassify.UseNormalizedEnergyDensity =
not flags.GeoModel.AtlasVersion.startswith(
"Rome")
465 if not instantiateForTrigger:
466 LCClassify.WeightingOfNegClusters = flags.CaloRecGPU.ActiveConfig.CalibrationUseAbsEnergy
468 LCWeight = CompFactory.CaloLCWeightTool(prefix +
"LCWeight")
469 LCWeight.CorrectionKey =
"H1ClusterCellWeights"
470 LCWeight.SignalOverNoiseCut = 2.0
471 LCWeight.UseHadProbability =
True
473 LocalCalib = CaloClusterLocalCalib (prefix +
"LocalCalib")
474 LocalCalib.ClusterClassificationTool = [LCClassify]
475 LocalCalib.ClusterRecoStatus = [1,2]
476 LocalCalib.LocalCalibTools = [LCWeight]
477 if not instantiateForTrigger:
478 LocalCalib.WeightingOfNegClusters = flags.CaloRecGPU.ActiveConfig.CalibrationUseAbsEnergy
481 LCOut = CompFactory.CaloLCOutOfClusterTool(prefix +
"LCOut")
482 LCOut.CorrectionKey =
"OOCCorrection"
483 LCOut.UseEmProbability =
False
484 LCOut.UseHadProbability =
True
486 OOCCalib = CaloClusterLocalCalib (prefix +
"OOCCalib")
487 OOCCalib.ClusterRecoStatus = [1,2]
488 OOCCalib.LocalCalibTools = [LCOut]
489 if not instantiateForTrigger:
490 OOCCalib.WeightingOfNegClusters = flags.CaloRecGPU.ActiveConfig.CalibrationUseAbsEnergy
492 LCOutPi0 = CompFactory.CaloLCOutOfClusterTool(prefix +
"LCOutPi0")
493 LCOutPi0.CorrectionKey =
"OOCPi0Correction"
494 LCOutPi0.UseEmProbability =
True
495 LCOutPi0.UseHadProbability =
False
497 OOCPi0Calib = CaloClusterLocalCalib (prefix +
"OOCPi0Calib")
498 OOCPi0Calib.ClusterRecoStatus = [1,2]
499 OOCPi0Calib.LocalCalibTools = [LCOutPi0]
500 if not instantiateForTrigger:
501 OOCPi0Calib.WeightingOfNegClusters = flags.CaloRecGPU.ActiveConfig.CalibrationUseAbsEnergy
504 LCDeadMaterial = CompFactory.CaloLCDeadMaterialTool(prefix +
"LCDeadMaterial")
505 LCDeadMaterial.HadDMCoeffKey =
"HadDMCoeff2"
506 LCDeadMaterial.ClusterRecoStatus = 0
507 LCDeadMaterial.WeightModeDM = 2
508 LCDeadMaterial.UseHadProbability =
True
509 if not instantiateForTrigger:
510 LCDeadMaterial.WeightingOfNegClusters = flags.CaloRecGPU.ActiveConfig.CalibrationUseAbsEnergy
512 DMCalib = CaloClusterLocalCalib (prefix +
"DMCalib")
513 DMCalib.ClusterRecoStatus = [1,2]
514 DMCalib.LocalCalibTools = [LCDeadMaterial]
515 if not instantiateForTrigger:
516 DMCalib.WeightingOfNegClusters = flags.CaloRecGPU.ActiveConfig.CalibrationUseAbsEnergy
524 result.setPrivateTools(lccalibtools)
531 clustersname = None, clustersnapname="CaloTopoClusters", name="HybridClusterProcessor",
532 PlotterTool = None, addAsPrimary = True, ReallyUseGPUTools = True):
534 doLCCalib = flags.CaloRecGPU.ActiveConfig.doTopoClusterLocalCalib
536 if clustersname
is None:
537 clustersname =
"CaloCalTopoClusters" if doLCCalib
else "CaloTopoClusters"
539 if clustersname ==
"CaloTopoClusters" and doLCCalib:
540 raise RuntimeError(
"Inconsistent arguments: clustersname must not be 'CaloTopoClusters' if doTopoClusterLocalCalib is True")
542 clustersname_final = clustersname
543 if flags.CaloRecGPU.ActiveConfig.applyClusterTimingCut:
544 clustersname = f
"{clustersname}BeforeTimingCut"
546 result = ComponentAccumulator()
548 if not instantiateForTrigger:
550 from LArGeoAlgsNV.LArGMConfig
import LArGMCfg
551 from TileGeoModel.TileGMConfig
import TileGMCfg
552 from CaloTools.CaloNoiseCondAlgConfig
import CaloNoiseCondAlgCfg
554 result.merge(CaloNoiseCondAlgCfg(flags,
"totalNoise"))
555 result.merge(CaloNoiseCondAlgCfg(flags,
"electronicNoise"))
557 result.merge(LArGMCfg(flags))
558 result.merge(TileGMCfg(flags))
561 HybridClusterProcessor = CompFactory.CaloGPUHybridClusterProcessor(name)
562 HybridClusterProcessor.ClustersOutputName = clustersname
564 HybridClusterProcessor.WriteTriggerSpecificInfo = instantiateForTrigger
566 HybridClusterProcessor.MeasureTimes = flags.CaloRecGPU.ActiveConfig.MeasureTimes
568 HybridClusterProcessor.TimeFileOutput =
"GlobalTimes.txt"
570 HybridClusterProcessor.DeferConstantDataPreparationToFirstEvent =
True
571 HybridClusterProcessor.DoPlots = PlotterTool
is not None
572 HybridClusterProcessor.PlotterTool = PlotterTool
574 HybridClusterProcessor.NumPreAllocatedDataHolders = flags.CaloRecGPU.ActiveConfig.NumPreAllocatedDataHolders
576 if ReallyUseGPUTools:
583 HybridClusterProcessor.BeforeGPUTools = []
585 HybridClusterProcessor.GPUTools = []
589 HybridClusterProcessor.GPUTools += [result.popToolsAndMerge(
ClusterInfoCalcToolCfg(flags,
"PostGPUGrowingClusterPropertiesCalculator",
True))]
593 HybridClusterProcessor.GPUTools += [result.popToolsAndMerge(
ClusterSorterToolCfg(flags,
"GPUClusterSorting",
False) )]
599 HybridClusterProcessor.ConstantDataToGPUTool =
None
600 HybridClusterProcessor.EventDataToGPUTool =
None
601 HybridClusterProcessor.GPUToEventDataTool =
None
602 HybridClusterProcessor.SkipConversions =
True
604 HybridClusterProcessor.GPUTools = []
606 HybridClusterProcessor.BeforeGPUTools = []
614 HybridClusterProcessor.BeforeGPUTools += [ CompFactory.CaloClusterStoreRawProperties(
"RawPropertiesStorer") ]
618 HybridClusterProcessor.AfterGPUTools = []
620 if not instantiateForTrigger:
621 from CaloBadChannelTool.CaloBadChanToolConfig
import CaloBadChanToolCfg
622 caloBadChanTool = result.popToolsAndMerge( CaloBadChanToolCfg(flags) )
623 HybridClusterProcessor.AfterGPUTools += [CompFactory.CaloClusterBadChannelList(badChannelTool = caloBadChanTool)]
625 if not instantiateForTrigger
and flags.CaloRecGPU.ActiveConfig.doCalibHitMoments:
628 HybridClusterProcessor.AfterGPUTools += [calibHitsMomentsMaker]
631 if not instantiateForTrigger:
632 HybridClusterProcessor.AfterGPUTools += [CompFactory.CaloClusterSnapshot(OutputName=clustersnapname,
634 FinalClusterContainerName=clustersname)]
636 from CaloTools.CaloNoiseCondAlgConfig
import CaloNoiseCondAlgCfg
637 from CaloRec.CaloTopoClusterConfig
import caloTopoCoolFolderCfg
638 result.merge(CaloNoiseCondAlgCfg(flags, noisetype=
"electronicNoise"))
639 result.merge(caloTopoCoolFolderCfg(flags))
643 HybridClusterProcessor.AfterGPUTools += calibTools
646 if not instantiateForTrigger:
647 from CaloRec.CaloTopoClusterConfig
import caloTopoCoolFolderCfg
648 result.merge(caloTopoCoolFolderCfg(flags))
650 if instantiateForTrigger:
651 from CaloTools.CaloNoiseCondAlgConfig
import CaloNoiseCondAlgCfg
652 result.merge(CaloNoiseCondAlgCfg(flags))
654 result.addEventAlgo(HybridClusterProcessor, primary=addAsPrimary)
656 if flags.CaloRecGPU.ActiveConfig.applyClusterTimingCut:
657 from CaloRec.CaloTopoClusterConfig
import CaloClusterTimingFilterCfg
658 result.merge(CaloClusterTimingFilterCfg(flags, name = f
"{clustersname}Filter", InputClusters = clustersname, OutputClusters = clustersname_final))
660 if instantiateForTrigger
or clustersname_final
in flags.CaloRecGPU.ActiveConfig.skipWriteList:
665 AODMoments=[
"SECOND_R"
684 if flags.CaloRecGPU.ActiveConfig.writeExtendedClusterMoments:
685 AODMoments += [
"LATERAL"
691 if flags.Reco.EnableHI:
692 AODMoments += [
"CELL_SIG_SAMPLING"]
694 if flags.CaloRecGPU.ActiveConfig.writeCalibHitClusterMoments:
695 AODMoments += [
"ENG_CALIB_TOT"
701 ,
"ENG_CALIB_DEAD_TOT"
702 ,
"ENG_CALIB_DEAD_EMB0"
703 ,
"ENG_CALIB_DEAD_TILE0"
704 ,
"ENG_CALIB_DEAD_TILEG3"
705 ,
"ENG_CALIB_DEAD_EME0"
706 ,
"ENG_CALIB_DEAD_HEC0"
707 ,
"ENG_CALIB_DEAD_FCAL"
708 ,
"ENG_CALIB_DEAD_LEAKAGE"
709 ,
"ENG_CALIB_DEAD_UNCLASS"
711 ,
"ENG_CALIB_FRAC_HAD"
712 ,
"ENG_CALIB_FRAC_REST"]
715 from OutputStreamAthenaPool.OutputStreamConfig
import addToAOD, addToESD
716 toESD = [f
"xAOD::CaloClusterContainer#{clustersname_final}",
717 f
"xAOD::CaloClusterAuxContainer#{clustersname_final}Aux.",
718 f
"CaloClusterCellLinkContainer#{clustersname_final}_links"]
719 toAOD = [f
"xAOD::CaloClusterContainer#{clustersname_final}",
720 f
"CaloClusterCellLinkContainer#{clustersname_final}_links"]
722 AODMoments.append(
"CellLink")
723 if flags.CaloRecGPU.ActiveConfig.addCalibrationHitDecoration:
724 AODMoments.append(flags.CaloRecGPU.ActiveConfig.CalibrationHitDecorationName)
726 if flags.CaloRecGPU.ActiveConfig.addCPData:
727 AODMoments += [
"ClusterWidthEta",
"ClusterWidthPhi"]
729 auxItems = f
"xAOD::CaloClusterAuxContainer#{clustersname_final}Aux."
730 auxItems+=
".".join(AODMoments)
732 toAOD.append(auxItems)
734 result.merge(addToESD(flags, toESD))
735 result.merge(addToAOD(flags, toAOD))