ATLAS Offline Software
ITkTrackingSiPatternConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
3 
4 # ------------------------------------------------------------
5 #
6 # ----------- Setup Si Pattern for New tracking
7 #
8 # ------------------------------------------------------------
9 
10 
12  InputCollections=None,
13  ResolvedTrackCollectionKey=None,
14  SiSPSeededTrackCollectionKey=None,
15  ClusterSplitProbContainer='',
16  previousActsExtension=None):
17  acc = ComponentAccumulator()
18  #
19  # --- get list of already associated hits (always do this, even if no other tracking ran before)
20  #
21  if flags.Tracking.ActiveConfig.usePrdAssociationTool:
22  from InDetConfig.InDetTrackPRD_AssociationConfig import (
23  ITkTrackPRD_AssociationCfg)
25  flags,
26  name=('ITkTrackPRD_Association' +
27  flags.Tracking.ActiveConfig.extension),
28  TracksName=list(InputCollections)))
29 
30  # Can use FastTrackFinder instead of SiSPSeededTrackFinder
31  if flags.Tracking.useITkFTF:
32 
33  # ------------------------------------------------------------
34  #
35  # ----------- FastTrackFinder
36  #
37  # ------------------------------------------------------------
38 
39  from TrigFastTrackFinder.ITkFastTrackFinderStandaloneConfig import (
40  ITkFastTrackFinderStandaloneCfg)
42  flags, SiSPSeededTrackCollectionKey))
43 
44  else:
45 
46  # ------------------------------------------------------------
47  #
48  # ----------- SiSPSeededTrackFinder
49  #
50  # ------------------------------------------------------------
51 
52  # Athena Track
53  if flags.Tracking.ActiveConfig.doAthenaTrack:
54  if (flags.Tracking.ActiveConfig.extension in
55  ["Conversion", "ActsValidateConversionSeeds"]):
56  from InDetConfig.SiSPSeededTrackFinderConfig import (
57  ITkSiSPSeededTrackFinderROIConvCfg)
59  flags, TracksLocation=SiSPSeededTrackCollectionKey))
60  else:
61  from InDetConfig.SiSPSeededTrackFinderConfig import (
62  ITkSiSPSeededTrackFinderCfg)
64  flags, TracksLocation=SiSPSeededTrackCollectionKey))
65 
66  # GNN Track
67  if flags.Tracking.ActiveConfig.doGNNTrack:
68  from InDetGNNTracking.InDetGNNTrackingConfig import GNNTrackMakerCfg
69  acc.merge(GNNTrackMakerCfg(
70  flags, TracksLocation=SiSPSeededTrackCollectionKey))
71 
72  # FPGA seed
73  if flags.Tracking.ActiveConfig.doFPGASeed:
74  from FPGATrackSimConfTools import FPGATrackSimAnalysisConfig
75  acc.merge(FPGATrackSimAnalysisConfig.FPGATrackSimSeedingCfg(flags))
76 
77  # ACTS seed
78  if flags.Tracking.ActiveConfig.doActsSeed:
79  from ActsConfig.ActsSeedingConfig import ActsSeedingCfg
80  acc.merge(ActsSeedingCfg(flags))
81 
82  # ACTS track
83  if flags.Tracking.ActiveConfig.doActsTrack:
84  from ActsConfig.ActsTrackFindingConfig import ActsTrackFindingCfg
85  acc.merge(ActsTrackFindingCfg(flags))
86 
87  # Convert Tracks Acts -> Athena (before ambi)
88  if flags.Tracking.ActiveConfig.doActsToAthenaTrack:
89  from ActsConfig.ActsEventCnvConfig import ActsToTrkConvertorAlgCfg
90  acc.merge(ActsToTrkConvertorAlgCfg(
91  flags,
92  ACTSTracksLocation=f"{flags.Tracking.ActiveConfig.extension}Tracks",
93  TracksLocation=SiSPSeededTrackCollectionKey))
94 
95  # Convert tracks Athena -> Acts (before ambi)
96  if flags.Tracking.ActiveConfig.doAthenaToActsTrack:
97  from ActsConfig.ActsEventCnvConfig import TrkToActsConvertorAlgCfg
98  acc.merge(TrkToActsConvertorAlgCfg(
99  flags,
100  TrackContainerLocation=f"{flags.Tracking.ActiveConfig.extension}Tracks",
101  TrackCollectionKeys=[SiSPSeededTrackCollectionKey]))
102 
103 
104  runTruth = (flags.Tracking.ActiveConfig.doAthenaTrack or
105  flags.Tracking.ActiveConfig.doActsToAthenaTrack or
106  flags.Tracking.ActiveConfig.doGNNTrack)
107  from InDetConfig.ITkTrackTruthConfig import ITkTrackTruthCfg
108  if flags.Tracking.doTruth and runTruth:
109  acc.merge(ITkTrackTruthCfg(
110  flags, Tracks=SiSPSeededTrackCollectionKey,
111  DetailedTruth=SiSPSeededTrackCollectionKey+"DetailedTruth",
112  TracksTruth=SiSPSeededTrackCollectionKey+"TruthCollection"))
113 
114  # ------------------------------------------------------------
115  #
116  # ---------- Ambiguity solving
117  #
118  # ------------------------------------------------------------
119 
120  runCopyAlg = ((flags.Tracking.doITkFastTracking and
121  flags.Tracking.ActiveConfig.doAthenaTrack) or
122  (flags.Tracking.ActiveConfig.doGNNTrack and
123  not flags.Tracking.GNN.doAmbiResolution))
124 
125  if runCopyAlg:
126  from TrkConfig.TrkCollectionAliasAlgConfig import CopyAlgForAmbiCfg
127  acc.merge(CopyAlgForAmbiCfg(
128  flags, "ITkCopyAlgForAmbi"+flags.Tracking.ActiveConfig.extension,
129  CollectionName=SiSPSeededTrackCollectionKey, # Input
130  AliasName=ResolvedTrackCollectionKey)) # Output
131 
132  else:
133  # If we run Athena tracking we also want CTIDE ambi
134  if flags.Tracking.ActiveConfig.doAthenaAmbiguityResolution:
135  # with Acts.doAmbiguityResolution the converter will directly produce
136  # tracks with the key ResolvedTrackCollectionKey
137  from TrkConfig.TrkAmbiguitySolverConfig import (
138  ITkTrkAmbiguityScoreCfg, ITkTrkAmbiguitySolverCfg)
139  acc.merge(ITkTrkAmbiguityScoreCfg(
140  flags, SiSPSeededTrackCollectionKey=SiSPSeededTrackCollectionKey,
141  ClusterSplitProbContainer=ClusterSplitProbContainer))
142 
143  acc.merge(ITkTrkAmbiguitySolverCfg(
144  flags, ResolvedTrackCollectionKey=ResolvedTrackCollectionKey))
145 
146  # If we run Acts tracking we may want Acts ambi, depending on the flag
147  if flags.Tracking.ActiveConfig.doActsAmbiguityResolution:
148  # Schedule ACTS ambi. resolution and eventually the track convertions
149  from ActsConfig.ActsTrackFindingConfig import ActsAmbiguityResolutionCfg
150  acc.merge(ActsAmbiguityResolutionCfg(flags))
151 
152  from ActsConfig.ActsPrdAssociationConfig import ActsPrdAssociationAlgCfg
153  acc.merge(ActsPrdAssociationAlgCfg(
154  flags, name = f'{flags.Tracking.ActiveConfig.extension}PrdAssociationAlg',
155  previousActsExtension=previousActsExtension))
156 
157  if flags.Tracking.ActiveConfig.doActsToAthenaResolvedTrack:
158  from ActsConfig.ActsEventCnvConfig import ActsToTrkConvertorAlgCfg
159  acc.merge(ActsToTrkConvertorAlgCfg(
160  flags,
161  ACTSTracksLocation=f"{flags.Tracking.ActiveConfig.extension}ResolvedTracks",
162  TracksLocation=ResolvedTrackCollectionKey))
163 
164  runTruth = (flags.Tracking.ActiveConfig.doAthenaTrack or
165  flags.Tracking.ActiveConfig.doAthenaAmbiguityResolution or
166  (flags.Tracking.ActiveConfig.doGNNTrack and
167  not flags.Tracking.GNN.doAmbiResolution))
168  if flags.Tracking.doTruth and runTruth:
169  acc.merge(ITkTrackTruthCfg(
170  flags, Tracks=ResolvedTrackCollectionKey,
171  DetailedTruth=ResolvedTrackCollectionKey+"DetailedTruth",
172  TracksTruth=ResolvedTrackCollectionKey+"TruthCollection"))
173 
174  if flags.Tracking.ActiveConfig.doActsTrack and flags.Tracking.doTruth:
175  from ActsConfig.ActsTruthConfig import (
176  ActsTrackToTruthAssociationAlgCfg, ActsTrackFindingValidationAlgCfg)
177  acts_tracks = (f"{flags.Tracking.ActiveConfig.extension}Tracks"
178  if not flags.Acts.doAmbiguityResolution else
179  f"{flags.Tracking.ActiveConfig.extension}ResolvedTracks")
181  flags, name=f"{acts_tracks}TrackToTruthAssociationAlg",
182  ACTSTracksLocation=acts_tracks,
183  AssociationMapOut=acts_tracks+"ToTruthParticleAssociation"))
184 
186  flags, name=f"{acts_tracks}TrackFindingValidationAlg",
187  TrackToTruthAssociationMap=acts_tracks+"ToTruthParticleAssociation"))
188 
189 
190  return acc
ActsTrackFindingConfig.ActsTrackFindingCfg
ComponentAccumulator ActsTrackFindingCfg(flags, **kwargs)
Definition: ActsTrackFindingConfig.py:234
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.ITkTrackTruthConfig.ITkTrackTruthCfg
def ITkTrackTruthCfg(flags, Tracks="CombinedITkTracks", DetailedTruth="CombinedITkTracksDetailedTrackTruth", TracksTruth="CombinedITkTracksTrackTruthCollection")
Definition: ITkTrackTruthConfig.py:10
ActsTruthConfig.ActsTrackToTruthAssociationAlgCfg
ComponentAccumulator ActsTrackToTruthAssociationAlgCfg(flags, str name='ActsTracksToTruthAssociationAlg', **dict kwargs)
Definition: ActsTruthConfig.py:65
python.TrkAmbiguitySolverConfig.ITkTrkAmbiguitySolverCfg
def ITkTrkAmbiguitySolverCfg(flags, name="ITkAmbiguitySolver", ResolvedTrackCollectionKey=None, **kwargs)
Definition: TrkAmbiguitySolverConfig.py:208
ITkFastTrackFinderStandaloneConfig.ITkFastTrackFinderStandaloneCfg
def ITkFastTrackFinderStandaloneCfg(flags, SiSPSeededTrackCollectionKey=None)
Definition: ITkFastTrackFinderStandaloneConfig.py:49
python.InDetTrackPRD_AssociationConfig.ITkTrackPRD_AssociationCfg
def ITkTrackPRD_AssociationCfg(flags, name='ITkTrackPRD_Association', **kwargs)
Definition: InDetTrackPRD_AssociationConfig.py:27
ActsPrdAssociationConfig.ActsPrdAssociationAlgCfg
ComponentAccumulator ActsPrdAssociationAlgCfg(flags, str name="ActsPrdAssociationAlg", *str previousActsExtension=None, **kwargs)
Definition: ActsPrdAssociationConfig.py:6
python.TrkAmbiguitySolverConfig.ITkTrkAmbiguityScoreCfg
def ITkTrkAmbiguityScoreCfg(flags, name="ITkAmbiguityScore", SiSPSeededTrackCollectionKey=None, ClusterSplitProbContainer='', **kwargs)
Definition: TrkAmbiguitySolverConfig.py:74
ActsTruthConfig.ActsTrackFindingValidationAlgCfg
ComponentAccumulator ActsTrackFindingValidationAlgCfg(flags, str name='ActsTracksValidationAlg', **dict kwargs)
Definition: ActsTruthConfig.py:162
ActsEventCnvConfig.TrkToActsConvertorAlgCfg
ComponentAccumulator TrkToActsConvertorAlgCfg(flags, str name="", **kwargs)
Definition: ActsEventCnvConfig.py:43
ActsEventCnvConfig.ActsToTrkConvertorAlgCfg
ComponentAccumulator ActsToTrkConvertorAlgCfg(flags, str name="ActsToTrkConvertorAlg", **kwargs)
Definition: ActsEventCnvConfig.py:54
histSizes.list
def list(name, path='/')
Definition: histSizes.py:38
python.TrkCollectionAliasAlgConfig.CopyAlgForAmbiCfg
def CopyAlgForAmbiCfg(flags, name="CopyAlgForAmbi", **kwargs)
Definition: TrkCollectionAliasAlgConfig.py:6
python.SiSPSeededTrackFinderConfig.ITkSiSPSeededTrackFinderROIConvCfg
def ITkSiSPSeededTrackFinderROIConvCfg(flags, name="ITkSiSpTrackFinderROIConv", **kwargs)
Definition: SiSPSeededTrackFinderConfig.py:186
ActsTrackFindingConfig.ActsAmbiguityResolutionCfg
ComponentAccumulator ActsAmbiguityResolutionCfg(flags, **kwargs)
Definition: ActsTrackFindingConfig.py:391
ActsSeedingConfig.ActsSeedingCfg
ComponentAccumulator ActsSeedingCfg(flags, **kwargs)
Definition: ActsSeedingConfig.py:455
python.SiSPSeededTrackFinderConfig.ITkSiSPSeededTrackFinderCfg
def ITkSiSPSeededTrackFinderCfg(flags, name="ITkSiSpTrackFinder", **kwargs)
Definition: SiSPSeededTrackFinderConfig.py:111
python.ITkTrackingSiPatternConfig.ITkTrackingSiPatternCfg
def ITkTrackingSiPatternCfg(flags, InputCollections=None, ResolvedTrackCollectionKey=None, SiSPSeededTrackCollectionKey=None, ClusterSplitProbContainer='', previousActsExtension=None)
Definition: ITkTrackingSiPatternConfig.py:11
python.InDetGNNTrackingConfig.GNNTrackMakerCfg
def GNNTrackMakerCfg(flags, name="GNNTrackMaker", **kwargs)
Definition: InDetGNNTrackingConfig.py:118