ATLAS Offline Software
Loading...
Searching...
No Matches
TrkTruthTrackAlgsConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2# Configuration of TrkTruthTrackAlgs package
3
4from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
5from AthenaConfiguration.ComponentFactory import CompFactory
6
7
8def TruthTrackingCfg(flags, name='InDetTruthTrackCreation', **kwargs):
9 acc = ComponentAccumulator()
10
11 if "PRD_TruthTrajectoryBuilder" not in kwargs:
12 from InDetConfig.InDetTruthToolsConfig import (
13 InDetPRD_TruthTrajectoryBuilderCfg)
14 InDetPRD_TruthTrajectoryBuilder = acc.popToolsAndMerge(
15 InDetPRD_TruthTrajectoryBuilderCfg(flags))
16 acc.addPublicTool(InDetPRD_TruthTrajectoryBuilder)
17 kwargs.setdefault('PRD_TruthTrajectoryBuilder',
18 InDetPRD_TruthTrajectoryBuilder)
19
20 if "TruthTrackBuilder" not in kwargs:
21 from InDetConfig.InDetTruthToolsConfig import InDetTruthTrackBuilderCfg
22 InDetTruthTrackBuilder = acc.popToolsAndMerge(
23 InDetTruthTrackBuilderCfg(flags))
24 acc.addPublicTool(InDetTruthTrackBuilder)
25 kwargs.setdefault('TruthTrackBuilder', InDetTruthTrackBuilder)
26
27 kwargs.setdefault('OutputTrackCollection', 'InDetPseudoTracks')
28
29 if "AssociationTool" not in kwargs:
30 from InDetConfig.InDetAssociationToolsConfig import (
31 InDetPRDtoTrackMapToolGangedPixelsCfg)
32 kwargs.setdefault('AssociationTool', acc.popToolsAndMerge(
33 InDetPRDtoTrackMapToolGangedPixelsCfg(flags)))
34
35 if "TrackSummaryTool" not in kwargs:
36 from TrkConfig.TrkTrackSummaryToolConfig import (
37 InDetTrackSummaryToolCfg)
38 TrackSummaryTool = acc.popToolsAndMerge(
39 InDetTrackSummaryToolCfg(flags))
40 acc.addPublicTool(TrackSummaryTool)
41 kwargs.setdefault('TrackSummaryTool', TrackSummaryTool)
42
43 if "PRD_TruthTrajectorySelectors" not in kwargs:
44 trajectoryselectors = []
45 if not flags.Tracking.doIdealPseudoTracking:
46 from InDetConfig.InDetTruthToolsConfig import (
47 InDetPRD_TruthTrajectorySelectorCfg)
48 trajectoryselectors.append(acc.popToolsAndMerge(
49 InDetPRD_TruthTrajectorySelectorCfg(flags)))
50 kwargs.setdefault('PRD_TruthTrajectorySelectors', trajectoryselectors)
51
52 acc.addEventAlgo(CompFactory.Trk.TruthTrackCreation(name, **kwargs))
53 return acc
54
55
56if __name__ == "__main__":
57 from AthenaConfiguration.AllConfigFlags import initConfigFlags
58 flags = initConfigFlags()
59
60 # Disable calo for this test
61 flags.Detector.EnableCalo = False
62
63 from AthenaConfiguration.TestDefaults import defaultTestFiles
64 flags.Input.Files = defaultTestFiles.RDO_RUN2
65 flags.lock()
66
67 from AthenaConfiguration.MainServicesConfig import MainServicesCfg
68 top_acc = MainServicesCfg(flags)
69
70 from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
71 top_acc.merge(PoolReadCfg(flags))
72
73
74 top_acc.merge(TruthTrackingCfg(flags))
75 if flags.Tracking.doIdealPseudoTracking:
76 from InDetConfig.TrackTruthConfig import InDetTrackTruthCfg
77 top_acc.merge(InDetTrackTruthCfg(
78 flags,
79 Tracks='InDetPseudoTrackParticles',
80 DetailedTruth='InDetPseudoTrackDetailedTruth',
81 TracksTruth='InDetPseudoTrackTruthCollection'))
82
83 flags.dump()
84
85 ComponentAccumulator.debugMode = "trackCA trackEventAlgo ..."
86
87 from AthenaCommon.Constants import DEBUG
88 top_acc.foreach_component("AthEventSeq/*").OutputLevel = DEBUG
89 top_acc.printConfig(withDetails=True, summariseProps=True)
90 top_acc.store(open("TruthTrackingConfig.pkl", "wb"))
91
92 import sys
93 if "--norun" not in sys.argv:
94 sc = top_acc.run(1)
95 if sc.isFailure():
96 sys.exit(-1)
TruthTrackingCfg(flags, name='InDetTruthTrackCreation', **kwargs)