10 result = ComponentAccumulator()
13 from CaloTools.CaloNoiseCondAlgConfig
import CaloNoiseCondAlgCfg
14 result.merge(CaloNoiseCondAlgCfg(flags,
"totalNoise"))
16 result.merge(CaloNoiseCondAlgCfg(flags,
"electronicNoise"))
19 import tauRec.TauToolHolder
as tauTools
22 tools.append( result.popToolsAndMerge(tauTools.JetSeedBuilderCfg(flags)) )
25 if getattr(flags.Tau.ActiveConfig,
'inTauEleRM',
False):
26 tools.append( result.popToolsAndMerge(tauTools.TauEleOverlapChecker(flags)) )
29 if flags.Tau.isStandalone
or flags.Tracking.doVertexFinding:
30 tools.append( result.popToolsAndMerge(tauTools.TauVertexFinderCfg(flags)) )
32 tools.append( result.popToolsAndMerge(tauTools.TauAxisCfg(flags)) )
35 tools.append( result.popToolsAndMerge(tauTools.TauTrackFinderCfg(flags)) )
36 if flags.Beam.Type
is not BeamType.Cosmics
and flags.Tau.doRNNTrackClass:
37 tools.append( result.popToolsAndMerge(tauTools.TauTrackRNNClassifierCfg(flags)) )
40 tools.append( result.popToolsAndMerge(tauTools.TauClusterFinderCfg(flags)) )
41 tools.append( result.popToolsAndMerge(tauTools.TauVertexedClusterDecoratorCfg(flags)) )
44 tools.append( result.popToolsAndMerge(tauTools.Pi0ClusterFinderCfg(flags)) )
47 TauBuilderAlg = CompFactory.getComp(
"TauBuilderAlg")
48 BuildAlg =
TauBuilderAlg(name = flags.Tau.ActiveConfig.prefix+
"TauCoreBuilderAlg",
49 Key_jetInputContainer = flags.Tau.ActiveConfig.SeedJetCollection,
50 Key_tauOutputContainer = flags.Tau.ActiveConfig.TauJets_tmp,
51 Key_tauTrackOutputContainer = flags.Tau.ActiveConfig.TauTracks,
52 Key_tauPi0CellOutputContainer = flags.Tau.ActiveConfig.TauCommonPi0Cells,
53 MaxEta = flags.Tau.SeedMaxEta,
54 MinPt = flags.Tau.SeedMinPt,
55 MaxNTracks = flags.Tau.MaxNTracks,
57 CellMakerTool = result.popToolsAndMerge(tauTools.TauCellFinalizerCfg(flags)))
59 if flags.GeoModel.Run
is LHCPeriod.Run4:
60 BuildAlg.PixelDetEleCollKey=
"ITkPixelDetectorElementCollection"
61 BuildAlg.SCTDetEleCollKey=
"ITkStripDetectorElementCollection"
62 BuildAlg.TRTDetEleContKey=
""
64 result.addEventAlgo(BuildAlg)
70 result = ComponentAccumulator()
73 from CaloTools.CaloNoiseCondAlgConfig
import CaloNoiseCondAlgCfg
74 result.merge(CaloNoiseCondAlgCfg(flags,
"totalNoise"))
76 result.merge(CaloNoiseCondAlgCfg(flags,
"electronicNoise"))
78 from CaloRec.CaloTopoClusterConfig
import caloTopoCoolFolderCfg
79 result.merge(caloTopoCoolFolderCfg(flags))
81 from LArBadChannelTool.LArBadChannelConfig
import LArBadChannelCfg
82 result.merge(LArBadChannelCfg(flags))
84 from TileConditions.TileBadChannelsConfig
import TileBadChannelsCondAlgCfg
85 result.merge( TileBadChannelsCondAlgCfg(flags) )
88 import tauRec.TauToolHolder
as tauTools
90 CaloClusterMaker = CompFactory.getComp(
"CaloClusterMaker")
91 CaloTopoForTausMaker = CaloClusterMaker (flags.Tau.ActiveConfig.prefix+
"TauPi0SubtractedClusterMaker")
92 CaloTopoForTausMaker.ClustersOutputName = flags.Tau.ActiveConfig.TauPi0Clusters_tmp
93 CaloTopoForTausMaker.ClusterMakerTools = [result.popToolsAndMerge(tauTools.TauCaloTopoClusterMakerCfg(flags)),
94 result.popToolsAndMerge(tauTools.TauCaloTopoClusterSplitterCfg(flags))]
96 CaloTopoForTausMaker.ClusterCorrectionTools += [result.popToolsAndMerge(tauTools.TauCaloClusterBadChannelCfg(flags))]
97 CaloTopoForTausMaker.ClusterCorrectionTools += [result.popToolsAndMerge(tauTools.TauCaloClusterMomentsMakerCfg(flags))]
99 if flags.Calo.TopoCluster.doTopoClusterLocalCalib:
100 CaloTopoForTausMaker.ClusterCorrectionTools += [result.popToolsAndMerge(tauTools.TauCaloClusterLocalCalibCfg(flags)),
101 result.popToolsAndMerge(tauTools.TauCaloOOCCalibCfg(flags)),
102 result.popToolsAndMerge(tauTools.TauCaloOOCPi0CalibCfg(flags)),
103 result.popToolsAndMerge(tauTools.TauCaloDMCalibCfg(flags))]
105 result.addEventAlgo(CaloTopoForTausMaker)
107 relinkAlg = CompFactory.ClusterCellRelinkAlg(name = flags.Tau.ActiveConfig.prefix+
'ClusterCellRelinkAlg',
109 ClustersInput = flags.Tau.ActiveConfig.TauPi0Clusters_tmp,
110 ClustersOutput = flags.Tau.ActiveConfig.TauPi0Clusters,
111 CellLinksOutput = flags.Tau.ActiveConfig.TauPi0ClustersLinks)
112 result.addEventAlgo(relinkAlg)
118 result=ComponentAccumulator()
121 import tauRec.TauToolHolder
as tauTools
124 tools.append( result.popToolsAndMerge(tauTools.TauShotFinderCfg(flags)) )
125 tools.append( result.popToolsAndMerge(tauTools.Pi0ClusterCreatorCfg(flags)) )
126 tools.append( result.popToolsAndMerge(tauTools.Pi0ClusterScalerCfg(flags)) )
127 tools.append( result.popToolsAndMerge(tauTools.Pi0ScoreCalculatorCfg(flags)) )
128 tools.append( result.popToolsAndMerge(tauTools.Pi0SelectorCfg(flags)) )
130 if flags.Beam.Type
is not BeamType.Cosmics:
131 tools.append( result.popToolsAndMerge(tauTools.EnergyCalibrationLCCfg(flags)) )
133 if flags.Tau.doPanTau:
134 import PanTauAlgs.JobOptions_Main_PanTau
as pantau
135 tools.append( result.popToolsAndMerge(pantau.PanTauCfg(flags)) )
137 tools.append(result.popToolsAndMerge(tauTools.TauCombinedTESCfg(flags)) )
140 tools.append( result.popToolsAndMerge(tauTools.CellVariablesCfg(flags)) )
142 if flags.Beam.Type
is not BeamType.Cosmics:
143 tools.append( result.popToolsAndMerge(tauTools.MvaTESVariableDecoratorCfg(flags)) )
144 tools.append( result.popToolsAndMerge(tauTools.MvaTESEvaluatorCfg(flags)) )
147 tools.append( result.popToolsAndMerge(tauTools.TauAODSelectorCfg(flags)) )
150 if flags.Tau.isStandalone
or flags.Tracking.doVertexFinding:
151 tools.append(result.popToolsAndMerge(tauTools.TauVertexVariablesCfg(flags)) )
152 tools.append( result.popToolsAndMerge(tauTools.ElectronVetoVarsCfg(flags)) )
153 tools.append( result.popToolsAndMerge(tauTools.TauCommonCalcVarsCfg(flags)) )
154 tools.append( result.popToolsAndMerge(tauTools.TauSubstructureCfg(flags)) )
156 if flags.Tau.doTauDiscriminant:
157 tools.append( result.popToolsAndMerge(tauTools.TauIDVarCalculatorCfg(flags)) )
159 if flags.GeoModel.Run <= LHCPeriod.Run3:
160 tools.append( result.popToolsAndMerge(tauTools.TauEleRNNEvaluatorCfg(flags)) )
161 tools.append( result.popToolsAndMerge(tauTools.TauWPDecoratorEleRNNCfg(flags)) )
162 tools.append( result.popToolsAndMerge(tauTools.TauDecayModeNNClassifierCfg(flags)) )
164 if not flags.Tau.ActiveConfig.inTauEleRM:
166 tools.append( result.popToolsAndMerge(tauTools.TauGNNEvaluatorCfg(flags, version=0, applyTightTrackSel=
True)) )
167 tools.append( result.popToolsAndMerge(tauTools.TauWPDecoratorGNNCfg(flags, version=0, tauContainerName=flags.Tau.ActiveConfig.TauJets)) )
169 TauRunnerAlg = CompFactory.getComp(
"TauRunnerAlg")
170 RunnerAlg =
TauRunnerAlg(name = flags.Tau.ActiveConfig.prefix+
"TauRecRunnerAlg",
171 Key_tauInputContainer = flags.Tau.ActiveConfig.TauJets_tmp,
172 Key_Pi0ClusterInputContainer = flags.Tau.ActiveConfig.TauPi0Clusters,
173 Key_tauOutputContainer = flags.Tau.ActiveConfig.TauJets,
174 Key_neutralPFOOutputContainer = flags.Tau.ActiveConfig.TauNeutralPFOs,
175 Key_hadronicPFOOutputContainer = flags.Tau.ActiveConfig.TauHadronicPFOs,
176 Key_chargedPFOOutputContainer = flags.Tau.ActiveConfig.TauChargedPFOs,
177 Key_vertexOutputContainer = flags.Tau.ActiveConfig.TauSecondaryVertices,
178 Key_pi0Container = flags.Tau.ActiveConfig.TauFinalPi0s,
179 Key_tauShotClusOutputContainer = flags.Tau.ActiveConfig.TauShotClusters,
180 Key_tauShotClusLinkContainer = flags.Tau.ActiveConfig.TauShotClustersLinks,
181 Key_tauShotPFOOutputContainer = flags.Tau.ActiveConfig.TauShotPFOs,
184 result.addEventAlgo(RunnerAlg)
190 from OutputStreamAthenaPool.OutputStreamConfig
import addToESD,addToAOD
191 result=ComponentAccumulator()
195 TauAODList += [ f
"xAOD::TauJetContainer#{flags.Tau.ActiveConfig.TauJets}" ]
196 TauAODList += [ f
"xAOD::TauTrackContainer#{flags.Tau.ActiveConfig.TauTracks}" ]
197 TauAODList += [ f
"xAOD::TauTrackAuxContainer#{flags.Tau.ActiveConfig.TauTracks}Aux." ]
198 TauAODList += [ f
"xAOD::VertexContainer#{flags.Tau.ActiveConfig.TauSecondaryVertices}" ]
199 TauAODList += [ f
"xAOD::VertexAuxContainer#{flags.Tau.ActiveConfig.TauSecondaryVertices}Aux.-vxTrackAtVertex" ]
200 TauAODList += [ f
"xAOD::CaloClusterContainer#{flags.Tau.ActiveConfig.TauPi0Clusters}" ]
201 TauAODList += [ f
"xAOD::CaloClusterAuxContainer#{flags.Tau.ActiveConfig.TauPi0Clusters}Aux." ]
202 TauAODList += [ f
"CaloClusterCellLinkContainer#{flags.Tau.ActiveConfig.TauPi0Clusters}_links" ]
203 TauAODList += [ f
"xAOD::CaloClusterContainer#{flags.Tau.ActiveConfig.TauShotClusters}" ]
204 TauAODList += [ f
"xAOD::CaloClusterAuxContainer#{flags.Tau.ActiveConfig.TauShotClusters}Aux." ]
205 TauAODList += [ f
"CaloClusterCellLinkContainer#{flags.Tau.ActiveConfig.TauShotClusters}_links" ]
206 TauAODList += [ f
"xAOD::ParticleContainer#{flags.Tau.ActiveConfig.TauFinalPi0s}" ]
207 TauAODList += [ f
"xAOD::ParticleAuxContainer#{flags.Tau.ActiveConfig.TauFinalPi0s}Aux." ]
208 TauAODList += [ f
"xAOD::PFOContainer#{flags.Tau.ActiveConfig.TauShotPFOs}" ]
209 TauAODList += [ f
"xAOD::PFOAuxContainer#{flags.Tau.ActiveConfig.TauShotPFOs}Aux." ]
210 TauAODList += [ f
"xAOD::PFOContainer#{flags.Tau.ActiveConfig.TauNeutralPFOs}" ]
211 TauAODList += [ f
"xAOD::PFOAuxContainer#{flags.Tau.ActiveConfig.TauNeutralPFOs}Aux." ]
212 TauAODList += [ f
"xAOD::PFOContainer#{flags.Tau.ActiveConfig.TauHadronicPFOs}" ]
213 TauAODList += [ f
"xAOD::PFOAuxContainer#{flags.Tau.ActiveConfig.TauHadronicPFOs}Aux." ]
216 TauESDList = list(TauAODList)
220 removeAODvars =
"-VertexedClusters.-shotCells.-mu.-nVtxPU.-ABS_ETA_LEAD_TRACK.-TAU_ABSDELTAPHI.-TAU_ABSDELTAETA.-absipSigLeadTrk.-passThinning.-chargedGlobalFELinks.-neutralGlobalFELinks"
221 if not flags.Tau.ActiveConfig.inTauEleRM:
222 removeAODvars += f
".-{flags.Tau.GNTauScoreName[0]}.-{flags.Tau.GNTauTransScoreName[0]}.-{flags.Tau.GNTauDecorWPNames[0][0]}.-{flags.Tau.GNTauDecorWPNames[0][1]}.-{flags.Tau.GNTauDecorWPNames[0][2]}.-{flags.Tau.GNTauDecorWPNames[0][3]}.-GNTauProbTau.-GNTauProbJet"
223 TauAODList += [
"xAOD::TauJetAuxContainer#{}Aux.{}".format(flags.Tau.ActiveConfig.TauJets, removeAODvars) ]
226 removeESDvars =
"-VertexedClusters.-shotCells.-chargedGlobalFELinks.-neutralGlobalFELinks"
227 if not flags.Tau.ActiveConfig.inTauEleRM:
228 removeESDvars += f
".-{flags.Tau.GNTauScoreName[0]}.-{flags.Tau.GNTauTransScoreName[0]}.-{flags.Tau.GNTauDecorWPNames[0][0]}.-{flags.Tau.GNTauDecorWPNames[0][1]}.-{flags.Tau.GNTauDecorWPNames[0][2]}.-{flags.Tau.GNTauDecorWPNames[0][3]}.-GNTauProbTau.-GNTauProbJet"
229 TauESDList += [
"xAOD::TauJetAuxContainer#{}Aux.{}".format(flags.Tau.ActiveConfig.TauJets, removeESDvars) ]
230 TauESDList += [
"xAOD::PFOContainer#{}" .format(flags.Tau.ActiveConfig.TauChargedPFOs) ]
231 TauESDList += [
"xAOD::PFOAuxContainer#{}Aux." .format(flags.Tau.ActiveConfig.TauChargedPFOs) ]
233 result.merge(addToESD(flags,TauESDList))
234 result.merge(addToAOD(flags,TauAODList))
253 result = ComponentAccumulator()
255 tauThinAlg = CompFactory.TauThinningAlg(name = flags.Tau.ActiveConfig.prefix+
"TauThinningAlg",
256 Taus = flags.Tau.ActiveConfig.TauJets,
257 TauTracks = flags.Tau.ActiveConfig.TauTracks,
258 TauNeutralPFOs = flags.Tau.ActiveConfig.TauNeutralPFOs,
259 TauPi0Clusters = flags.Tau.ActiveConfig.TauPi0Clusters,
260 TauPi0CellLinks = flags.Tau.ActiveConfig.TauPi0ClustersLinks,
261 TauFinalPi0s = flags.Tau.ActiveConfig.TauFinalPi0s,
262 TauShotPFOs = flags.Tau.ActiveConfig.TauShotPFOs,
263 TauShotClusters = flags.Tau.ActiveConfig.TauShotClusters,
264 TauShotCellLinks = flags.Tau.ActiveConfig.TauShotClustersLinks,
265 TauHadronicPFOs = flags.Tau.ActiveConfig.TauHadronicPFOs,
266 TauSecondaryVertices = flags.Tau.ActiveConfig.TauSecondaryVertices,
267 MinNeutralPFOPt = flags.Tau.MinNeutralPFOPt
if flags.GeoModel.Run > LHCPeriod.Run3
else 0,)
268 result.addEventAlgo(tauThinAlg)
274 result = ComponentAccumulator()
277 if flags.Tau.TauRec.SeedJetCollection
in [
"AntiKt4MLTopoJets",
278 "AntiKt4EMPFlowMLJets",
279 "AntiKt4EMPFlow10GeVCutTauSeedJets",
280 "AntiKt4EMPFlow5GeVCutTauSeedJets",
281 "AntiKt4EMPFlowNoPtCutTauSeedJets"]:
282 from JetRecConfig.JetRecConfig
import JetRecCfg
283 from tauRec.ConfigurationHelpers
import GetSeedCollection
284 seedJet = GetSeedCollection(flags)
285 result.merge(JetRecCfg(flags, seedJet))
288 flags_TauRec = flags.cloneAndReplace(
"Tau.ActiveConfig",
"Tau.TauRec")
296 if (flags.Output.doWriteESD
or flags.Output.doWriteAOD):
299 if (flags.Output.doWriteAOD
and flags.Tau.ThinTaus):
303 if flags.Tau.doTauEleRMRec:
305 flags_TauEleRM = flags.cloneAndReplace(
"Tau.ActiveConfig",
"Tau.TauEleRM")
310 from JetRecConfig.JetRecConfig
import JetRecCfg
311 from tauRec.ConfigurationHelpers
import GetEleRMSeedCollection
312 eleRMSeedJetCollection = GetEleRMSeedCollection(flags_TauEleRM)
313 result.merge( JetRecCfg(flags_TauEleRM, eleRMSeedJetCollection ))
321 if (flags.Output.doWriteESD
or flags.Output.doWriteAOD):
324 if (flags.Output.doWriteAOD
and flags.Tau.ThinTaus):
328 if flags.DiTau.doDiTauRec:
329 from DiTauRec.DiTauBuilderConfig
import DiTauBuilderCfg
330 result.merge(DiTauBuilderCfg(flags))
332 if (flags.Output.doWriteESD
or flags.Output.doWriteAOD):
359 result = ComponentAccumulator()
361 from ElectronPhotonSelectorTools.AsgElectronLikelihoodToolsConfig
import AsgElectronLikelihoodToolCfg
362 from ElectronPhotonSelectorTools.LikelihoodEnums
import LikeEnum
363 from ElectronPhotonSelectorTools.ElectronLikelihoodToolMapping
import electronLHmenu
364 ElectronLHSelectorEleRM = result.popToolsAndMerge(
365 AsgElectronLikelihoodToolCfg(
367 name = flags.Tau.ActiveConfig.prefix+
"ElectronLHSelector",
368 quality = getattr(LikeEnum, flags.Tau.ActiveConfig.EleRM_ElectronWorkingPoint),
369 menu = electronLHmenu.offlineMC21,
373 tauElecSubtractAlg = CompFactory.TauElecSubtractAlg(
374 name = flags.Tau.ActiveConfig.prefix+
"TauElecSubtractAlg",
375 Key_ElectronsInput =
'Electrons',
376 Key_ClustersInput =
'CaloCalTopoClusters',
377 Key_ClustersOutput = flags.Tau.ActiveConfig.CaloCalTopoClusters_EleRM,
378 Key_IDTracksInput =
'InDetTrackParticles',
379 Key_IDTracksOutput = flags.Tau.ActiveConfig.TrackCollection,
380 Key_RemovedClustersOutput = flags.Tau.ActiveConfig.RemovedElectronClusters,
381 Key_RemovedTracksOutput = flags.Tau.ActiveConfig.RemovedElectronTracks,
382 ElectronLHTool = ElectronLHSelectorEleRM,
385 result.addEventAlgo(tauElecSubtractAlg)
392 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
393 from AthenaConfiguration.TestDefaults
import defaultTestFiles, defaultConditionsTags
395 flags = initConfigFlags()
397 flags.Input.Files = defaultTestFiles.RDO_RUN3
398 flags.IOVDb.GlobalTag = defaultConditionsTags.RUN3_MC
400 flags.Output.AODFileName =
"AOD.pool.root"
401 flags.Exec.MaxEvents = 50
403 flags.Scheduler.ShowDataDeps =
True
404 flags.Scheduler.ShowDataFlow =
True
405 flags.Scheduler.ShowControlFlow =
True
407 flags.Concurrency.NumThreads = 1
408 flags.Concurrency.NumConcurrentEvents = 1
410 from tauRec.ConfigurationHelpers
import StandaloneTauRecoFlags
411 StandaloneTauRecoFlags(flags)
415 from RecJobTransforms.RecoSteering
import RecoSteering
416 cfg = RecoSteering(flags)
418 from RecJobTransforms.RecoConfigFlags
import printRecoFlags
419 printRecoFlags(flags)