ATLAS Offline Software
ITkTrackingSiPatternConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 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  runTruth = True
31  runActsTrackTruth = False
32 
33  # Can use FastTrackFinder instead of SiSPSeededTrackFinder
34  if flags.Tracking.useITkFTF:
35 
36  # ------------------------------------------------------------
37  #
38  # ----------- FastTrackFinder
39  #
40  # ------------------------------------------------------------
41 
42  from TrigFastTrackFinder.ITkFastTrackFinderStandaloneConfig import (
43  ITkFastTrackFinderStandaloneCfg)
45  flags, SiSPSeededTrackCollectionKey))
46 
47  else:
48 
49  # ------------------------------------------------------------
50  #
51  # ----------- SiSPSeededTrackFinder
52  #
53  # ------------------------------------------------------------
54 
55  runTruth = flags.Tracking.ActiveConfig.doAthenaTrack or flags.Tracking.ActiveConfig.doActsToAthenaTrack or flags.Tracking.ActiveConfig.doGNNTrack
56 
57 
58  # Athena Track
59  if flags.Tracking.ActiveConfig.doAthenaTrack:
60  if flags.Tracking.ActiveConfig.extension in ["Conversion", "ActsValidateConversionSeeds"]:
61  from InDetConfig.SiSPSeededTrackFinderConfig import ITkSiSPSeededTrackFinderROIConvCfg
62  acc.merge(ITkSiSPSeededTrackFinderROIConvCfg(flags,
63  TracksLocation=SiSPSeededTrackCollectionKey))
64  else:
65  from InDetConfig.SiSPSeededTrackFinderConfig import ITkSiSPSeededTrackFinderCfg
66  acc.merge(ITkSiSPSeededTrackFinderCfg(flags, TracksLocation=SiSPSeededTrackCollectionKey))
67 
68  # GNN Track
69  if flags.Tracking.ActiveConfig.doGNNTrack:
70  from InDetGNNTracking.InDetGNNTrackingConfig import GNNTrackMakerCfg
71  acc.merge(GNNTrackMakerCfg(
72  flags,
73  TracksLocation=SiSPSeededTrackCollectionKey))
74 
75  # ACTS seed
76  if flags.Tracking.ActiveConfig.doActsSeed:
77 
78  from ActsConfig.ActsSeedingConfig import (
79  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  runActsTrackTruth = flags.Tracking.doTruth
87 
88  # Convert Tracks Acts -> Athena (before ambi)
89  if flags.Tracking.ActiveConfig.doActsToAthenaTrack:
90  from ActsConfig.ActsEventCnvConfig import ActsToTrkConvertorAlgCfg
91  acc.merge(ActsToTrkConvertorAlgCfg(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(flags,
99  TrackContainerLocation=f"{flags.Tracking.ActiveConfig.extension}Tracks",
100  TrackCollectionKeys=[SiSPSeededTrackCollectionKey]))
101 
102 
103  from InDetConfig.ITkTrackTruthConfig import ITkTrackTruthCfg
104  if flags.Tracking.doTruth and runTruth:
105  acc.merge(ITkTrackTruthCfg(
106  flags,
107  Tracks=SiSPSeededTrackCollectionKey,
108  DetailedTruth=SiSPSeededTrackCollectionKey+"DetailedTruth",
109  TracksTruth=SiSPSeededTrackCollectionKey+"TruthCollection"))
110 
111  # ------------------------------------------------------------
112  #
113  # ---------- Ambiguity solving
114  #
115  # ------------------------------------------------------------
116  runTruth = True
117 
118  if flags.Tracking.doITkFastTracking and flags.Tracking.ActiveConfig.doAthenaTrack:
119 
120  from TrkConfig.TrkCollectionAliasAlgConfig import CopyAlgForAmbiCfg
121  acc.merge(CopyAlgForAmbiCfg(
122  flags,
123  "ITkCopyAlgForAmbi"+flags.Tracking.ActiveConfig.extension,
124  CollectionName=SiSPSeededTrackCollectionKey, # Input
125  AliasName=ResolvedTrackCollectionKey)) # Output
126 
127  else:
128  # If we run Athena tracking we also want CTIDE ambi
129  if flags.Tracking.ActiveConfig.doAthenaAmbiguityResolution:
130  # with Acts.doAmbiguityResolution the converter will directly produce
131  # tracks with the key ResolvedTrackCollectionKey
132  from TrkConfig.TrkAmbiguitySolverConfig import (
133  ITkTrkAmbiguityScoreCfg, ITkTrkAmbiguitySolverCfg)
134  acc.merge(ITkTrkAmbiguityScoreCfg(
135  flags,
136  SiSPSeededTrackCollectionKey=SiSPSeededTrackCollectionKey,
137  ClusterSplitProbContainer=ClusterSplitProbContainer))
138 
139  acc.merge(ITkTrkAmbiguitySolverCfg(
140  flags,
141  ResolvedTrackCollectionKey=ResolvedTrackCollectionKey))
142 
143  runTruth = True
144 
145  # If we run Acts tracking we may want Acts ambi, depending on the flag
146  if flags.Tracking.ActiveConfig.doActsAmbiguityResolution:
147  # Schedule ACTS ambi. resolution and eventually the track convertions
148  from ActsConfig.ActsTrackFindingConfig import ActsAmbiguityResolutionCfg
149  acc.merge(ActsAmbiguityResolutionCfg(flags))
150  runTruth = False
151 
152  from ActsConfig.ActsPrdAssociationConfig import ActsPrdAssociationAlgCfg
153  acc.merge(ActsPrdAssociationAlgCfg(flags,
154  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(flags,
160  ACTSTracksLocation=f"{flags.Tracking.ActiveConfig.extension}ResolvedTracks",
161  TracksLocation=ResolvedTrackCollectionKey))
162  runTruth = False
163 
164  if flags.Tracking.doTruth and runTruth:
165  acc.merge(ITkTrackTruthCfg(
166  flags,
167  Tracks=ResolvedTrackCollectionKey,
168  DetailedTruth=ResolvedTrackCollectionKey+"DetailedTruth",
169  TracksTruth=ResolvedTrackCollectionKey+"TruthCollection"))
170 
171  if runActsTrackTruth :
172  from ActsConfig.ActsTruthConfig import ActsTrackToTruthAssociationAlgCfg, ActsTrackFindingValidationAlgCfg
173  acts_tracks=f"{flags.Tracking.ActiveConfig.extension}Tracks" if not flags.Acts.doAmbiguityResolution else f"{flags.Tracking.ActiveConfig.extension}ResolvedTracks"
174  acc.merge(ActsTrackToTruthAssociationAlgCfg(flags,
175  name=f"{acts_tracks}TrackToTruthAssociationAlg",
176  ACTSTracksLocation=acts_tracks,
177  AssociationMapOut=acts_tracks+"ToTruthParticleAssociation"))
178 
179  acc.merge(ActsTrackFindingValidationAlgCfg(flags,
180  name=f"{acts_tracks}TrackFindingValidationAlg",
181  TrackToTruthAssociationMap=acts_tracks+"ToTruthParticleAssociation"
182  ))
183 
184 
185  return acc
ActsTrackFindingConfig.ActsTrackFindingCfg
ComponentAccumulator ActsTrackFindingCfg(flags, **kwargs)
Definition: ActsTrackFindingConfig.py:175
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:50
python.TrkAmbiguitySolverConfig.ITkTrkAmbiguitySolverCfg
def ITkTrkAmbiguitySolverCfg(flags, name="ITkAmbiguitySolver", ResolvedTrackCollectionKey=None, **kwargs)
Definition: TrkAmbiguitySolverConfig.py:184
ITkFastTrackFinderStandaloneConfig.ITkFastTrackFinderStandaloneCfg
def ITkFastTrackFinderStandaloneCfg(flags, SiSPSeededTrackCollectionKey=None)
Definition: ITkFastTrackFinderStandaloneConfig.py:5
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:141
ActsEventCnvConfig.TrkToActsConvertorAlgCfg
ComponentAccumulator TrkToActsConvertorAlgCfg(flags, str name="", **kwargs)
Definition: ActsEventCnvConfig.py:26
ActsEventCnvConfig.ActsToTrkConvertorAlgCfg
ComponentAccumulator ActsToTrkConvertorAlgCfg(flags, str name="ActsToTrkConvertorAlg", **kwargs)
Definition: ActsEventCnvConfig.py:37
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:181
ActsTrackFindingConfig.ActsAmbiguityResolutionCfg
ComponentAccumulator ActsAmbiguityResolutionCfg(flags, **kwargs)
Definition: ActsTrackFindingConfig.py:257
ActsSeedingConfig.ActsSeedingCfg
ComponentAccumulator ActsSeedingCfg(flags)
Definition: ActsSeedingConfig.py:356
python.SiSPSeededTrackFinderConfig.ITkSiSPSeededTrackFinderCfg
def ITkSiSPSeededTrackFinderCfg(flags, name="ITkSiSpTrackFinder", **kwargs)
Definition: SiSPSeededTrackFinderConfig.py:112
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:77