diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkCalo/python/CaloCellDFGetter.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkCalo/python/CaloCellDFGetter.py index 7f5483f360aaf5a7baa9183fe6df67199f253108..f6a5f88bc8f363e44f6789193dd67c744b41443e 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkCalo/python/CaloCellDFGetter.py +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkCalo/python/CaloCellDFGetter.py @@ -62,8 +62,6 @@ class CaloCellDFGetter () : self._inputCellKey=inputCellKey self._outputType= "CaloCellContainer" self._sequence=Sequense - self._tools = {} - self._orders = {} self.configure() def configure(self): @@ -74,7 +72,6 @@ class CaloCellDFGetter () : mlog.info('InputCellKey %s ' , self.inputCellKey()) mlog.info('OutputCellKey %s ' , self.outputCellKey()) - from AthenaCommon.AppMgr import ToolSvc #Schedule the calo cell maker. from CaloRec.CaloRecConf import CaloConstCellMaker @@ -87,62 +84,30 @@ class CaloCellDFGetter () : #Add the needed tool instances, only if they do not exist already #====================== CaloCellContainerFromClusterTool - if not hasattr(ToolSvc,'CaloCellContainerFromClusterTool_'+self.outputCellKey()): - self.theCaloCellContainerFromClusterTool = self.GetTool('CaloCellContainerFromClusterTool_'+self.outputCellKey()) - if self.theCaloCellContainerFromClusterTool is None: - from CaloRec.CaloRecConf import CaloCellContainerFromClusterTool - self.theCaloCellContainerFromClusterTool = CaloCellContainerFromClusterTool('CaloCellContainerFromClusterTool_'+self.outputCellKey()) - ToolSvc += self.theCaloCellContainerFromClusterTool - self.AddTool(self.theCaloCellContainerFromClusterTool, order = 1) - self.theCaloCellContainerFromClusterTool.CaloCellName=self.inputCellKey() - self.theCaloCellContainerFromClusterTool.AddSamplingCells = True - self.theCaloCellContainerFromClusterTool.SamplingCellsName = ["TileGap1", "TileGap2", "TileGap3", "TileBar0","TileExt0", "HEC0"] - mlog.info('CaloCellContainerFromClusterTool has been added') - else: - self.theCaloCellContainerFromClusterTool = getattr(ToolSvc,'CaloCellContainerFromClusterTool_'+self.outputCellKey()) - + from CaloRec.CaloRecConf import CaloCellContainerFromClusterTool + self.theCaloCellMaker.CaloCellMakerTools+=[CaloCellContainerFromClusterTool(#'CaloCellContainerFromClusterTool_'+self.outputCellKey(), + CaloCellName=self.inputCellKey(), + AddSamplingCells = True, + SamplingCellsName = ["TileGap1", "TileGap2", "TileGap3", "TileBar0","TileExt0", "HEC0"], + ),] #====================== CaloCellFastCopyTool - if not hasattr(ToolSvc,'CaloCellFastCopyTool_'+self.outputCellKey()): - self.theCaloCellFastCopyTool = self.GetTool('CaloCellFastCopyTool_'+self.outputCellKey()) - if self.theCaloCellFastCopyTool is None: - from CaloRec.CaloRecConf import CaloCellFastCopyTool - self.theCaloCellFastCopyTool = CaloCellFastCopyTool('CaloCellFastCopyTool_'+self.outputCellKey()) - self.theCaloCellFastCopyTool.InputName=self.inputCellKey() - self.theCaloCellFastCopyTool.AvoidDuplicates = True - self.theCaloCellFastCopyTool.IsFindCellFast = True - self.theCaloCellFastCopyTool.IncludeSamplings += [ "TileGap3" ] - mlog.info('The sampling %s has been scheduled to be copied ', "TileGap3") - ToolSvc += self.theCaloCellFastCopyTool - self.AddTool(self.theCaloCellFastCopyTool, order = 7) - mlog.info('CaloCellFastCopyTool has been added') - else: - self.theCaloCellFastCopyTool = getattr(ToolSvc,'CaloCellFastCopyTool_'+self.outputCellKey()) + from CaloRec.CaloRecConf import CaloCellFastCopyTool + self.theCaloCellMaker.CaloCellMakerTools+=[CaloCellFastCopyTool('CaloCellFastCopyTool_'+self.outputCellKey(), + InputName=self.inputCellKey(), + AvoidDuplicates = True, + IsFindCellFast = True, + IncludeSamplings = [ "TileGap3", ] + ),] #======================CaloCellContainerFinalizerTool - if not hasattr(ToolSvc,'CaloCellContainerFinalizerTool_'+self.outputCellKey()): - self.theCaloCellContainerFinalizerTool = self.GetTool('CaloCellContainerFinalizerTool_'+self.outputCellKey()) - if self.theCaloCellContainerFinalizerTool is None: - from CaloRec.CaloRecConf import CaloCellContainerFinalizerTool - self.theCaloCellContainerFinalizerTool=CaloCellContainerFinalizerTool('CaloCellContainerFinalizerTool_'+self.outputCellKey()) - ToolSvc+=self.theCaloCellContainerFinalizerTool - self.AddTool(self.theCaloCellContainerFinalizerTool, order = 9) - mlog.info('CaloCellContainerFinalizerTool has been added') - else: - self.theCaloCellContainerFinalizerTool = getattr(ToolSvc,'CaloCellContainerFinalizerTool_'+self.outputCellKey()) + from CaloRec.CaloRecConf import CaloCellContainerFinalizerTool + self.theCaloCellMaker.CaloCellMakerTools+=[CaloCellContainerFinalizerTool('CaloCellContainerFinalizerTool_'+self.outputCellKey()),] + #====================== CaloCellContainerCheckerTool - if not hasattr(ToolSvc,'CaloCellContainerCheckerTool_'+self.outputCellKey()): - self.theCaloCellContainerCheckerTool = self.GetTool('CaloCellContainerCheckerTool_'+self.outputCellKey()) - if self.theCaloCellContainerCheckerTool is None: - from CaloRec.CaloRecConf import CaloCellContainerCheckerTool - self.theCaloCellContainerCheckerTool=CaloCellContainerCheckerTool('CaloCellContainerCheckerTool_'+self.outputCellKey()) - ToolSvc+=self.theCaloCellContainerCheckerTool - self.AddTool(self.theCaloCellContainerCheckerTool, order = 10) - mlog.info('CaloCellContainerCheckerTool has been added') - else: - self.theCaloCellContainerCheckerTool = getattr(ToolSvc,'CaloCellContainerCheckerTool_'+self.outputCellKey()) - - #====================== + from CaloRec.CaloRecConf import CaloCellContainerCheckerTool + self.theCaloCellMaker.CaloCellMakerTools+=[CaloCellContainerCheckerTool('CaloCellContainerCheckerTool_'+self.outputCellKey()),] + #Algorithm to update cluster->cell links from CaloRec.CaloRecConf import CaloClusterCellLinksUpdater self.theClusterUpdater=CaloClusterCellLinksUpdater(name="CaloClusterCellLinksUpdater_"+self.outputCellKey(), @@ -150,9 +115,7 @@ class CaloCellDFGetter () : self._ClusterUpdateHandle=self.theClusterUpdater for inputname in self.inputClusterKeys(): - self.theCaloCellContainerFromClusterTool.CaloClusterNames+=[inputname] - self.AddClusterToUpdate(inputname) - mlog.info("Add Clusters Collection %s to the %s CellCollection ",inputname,self.outputCellKey()) + self.AddCluster(inputname) #====================== #Avoid scheduling the same algorithm instances twice @@ -173,9 +136,6 @@ class CaloCellDFGetter () : return True - def CaloCellMakerHandle(self): - return self._CaloCellMakerHandle - def outputCellKey(self): return self._outputCellKey @@ -189,27 +149,9 @@ class CaloCellDFGetter () : return self._outputType def AddCluster(self,name): - self.theCaloCellContainerFromClusterTool.CaloClusterNames+=[name] - self.AddClusterToUpdate(name) - mlog.info("Add Cluster Collection %s to the %s CellCollection ",name,self.outputCellKey()) - - def GetTool(self, toolName): - if toolName in self._tools: - return self._tools[toolName] - return None - - def AddClusterToUpdate(self,clusterkey): - self._ClusterUpdateHandle.CaloClusterNames+=[clusterkey,] - return None - - def AddTool(self, tool, order): - if tool.getName() in self._tools: - return False - self._CaloCellMakerHandle.CaloCellMakerTools+= [tool] - self._tools[tool.getName()] = tool - self._orders[tool.getName()] = order - self._CaloCellMakerHandle.CaloCellMakerTools.sort(key = lambda t: self._orders[t.getName()]) - return True - + self._CaloCellMakerHandle.CaloCellMakerTools[0].CaloClusterNames+=[name,] + self._ClusterUpdateHandle.CaloClusterNames+=[name,] + #mlog.info("Add Cluster Collection %s to the %s CellCollection ",name,self.outputCellKey()) + #==========================================================================================