ATLAS Offline Software
Loading...
Searching...
No Matches
python.TrackRecoConfig Namespace Reference

Functions

 CombinedTrackingPassFlagSets (flags, resetCache=False)
 ClusterSplitProbabilityContainerName (flags)
 InDetCosmicsTrackRecoPreProcessingCfg (flags)
 InDetPreProcessingCfg (flags)
 SiDetectorElementStatusCfg (flags, suffix="")
 SiSubDetTrackRecoCfg (flags, detector="", extensions_list=None, ClusterSplitProbContainer="")
 TRTTrackRecoCfg (flags, extensions_list=None)
 TRTStandalonePassRecoCfg (flags, InputCombinedInDetTracks=None, InputExtendedInDetTracks=None, StatTrackCollections=None, StatTrackTruthCollections=None)
 StoreTrackSeparateContainerCfg (flags, TrackContainer="", ClusterSplitProbContainer="")
 BackTrackingRecoCfg (flags, InputCombinedInDetTracks=None, InputExtendedInDetTracks=None, StatTrackCollections=None, StatTrackTruthCollections=None, ClusterSplitProbContainer="")
 TrackRecoPassCfg (flags, extension="", doTrackingSiPattern=True, InputCombinedInDetTracks=None, InputExtendedInDetTracks=None, StatTrackCollections=None, StatTrackTruthCollections=None, ClusterSplitProbContainer="")
 TrackFinalCfg (flags, InputCombinedInDetTracks=None, StatTrackCollections=None, StatTrackTruthCollections=None)
 PseudoTrackFinalCfg (flags)
 ObserverTrackFinalCfg (flags)
 TrackSeedsFinalCfg (flags)
 SiSPSeededTracksFinalCfg (flags)
 InDetStatsCfg (flags, StatTrackCollections=None, StatTrackTruthCollections=None)
 ExtendedPRDInfoCfg (flags)
 InDetTrackRecoCfg (flags)
 Main ID tracking config #####################.
 TrackRecoConfigTest (flags=None)

Variables

list _flags_set = []
list _extensions_list = []

Function Documentation

◆ BackTrackingRecoCfg()

python.TrackRecoConfig.BackTrackingRecoCfg ( flags,
InputCombinedInDetTracks = None,
InputExtendedInDetTracks = None,
StatTrackCollections = None,
StatTrackTruthCollections = None,
ClusterSplitProbContainer = "" )

Definition at line 363 of file TrackRecoConfig.py.

368 ClusterSplitProbContainer=""):
369 result = ComponentAccumulator()
370
371 if InputCombinedInDetTracks is None:
372 InputCombinedInDetTracks = []
373 if InputExtendedInDetTracks is None:
374 InputExtendedInDetTracks = []
375 if StatTrackCollections is None:
376 StatTrackCollections = []
377 if StatTrackTruthCollections is None:
378 StatTrackTruthCollections = []
379
380 from InDetConfig.BackTrackingConfig import BackTrackingCfg
381 result.merge(BackTrackingCfg(
382 flags,
383 InputCollections=InputCombinedInDetTracks,
384 ClusterSplitProbContainer=ClusterSplitProbContainer))
385
386 ClusterSplitProbContainer = (
387 "InDetTRT_SeededAmbiguityProcessorSplitProb" +
388 flags.Tracking.ActiveConfig.extension)
389 TRTSeededTracks = "TRTSeededTracks"
390 ResolvedTRTSeededTracks = "ResolvedTRTSeededTracks"
391 InputCombinedInDetTracks += [ResolvedTRTSeededTracks]
392 InputExtendedInDetTracks += [ResolvedTRTSeededTracks]
393 StatTrackCollections += [TRTSeededTracks,
394 ResolvedTRTSeededTracks]
395 StatTrackTruthCollections += [TRTSeededTracks+"TruthCollection",
396 ResolvedTRTSeededTracks+"TruthCollection"]
397
398 return result, ClusterSplitProbContainer
399
400
401# Returns CA + ClusterSplitProbContainer

◆ ClusterSplitProbabilityContainerName()

python.TrackRecoConfig.ClusterSplitProbabilityContainerName ( flags)

Definition at line 85 of file TrackRecoConfig.py.

85def ClusterSplitProbabilityContainerName(flags):
86 if flags.Detector.GeometryITk:
87 from InDetConfig.ITkTrackRecoConfig import (
88 ITkClusterSplitProbabilityContainerName)
89 return ITkClusterSplitProbabilityContainerName(flags)
90
91 flags_set = CombinedTrackingPassFlagSets(flags)
92 extension = flags_set[-1].Tracking.ActiveConfig.extension
93
94 # No ambi processing for TRT standalone, so pick the previous pass
95 if extension == "TRTStandalone":
96 extension = flags_set[-2].Tracking.ActiveConfig.extension
97
98 ClusterSplitProbContainer = "InDetAmbiguityProcessorSplitProb" + extension
99
100 # Only primary pass + back-tracking
101 if len(flags_set) == 1 and flags.Tracking.doBackTracking:
102 ClusterSplitProbContainer = (
103 "InDetTRT_SeededAmbiguityProcessorSplitProb" + extension)
104 return ClusterSplitProbContainer
105
106# TODO find config to validate this
107
108

◆ CombinedTrackingPassFlagSets()

python.TrackRecoConfig.CombinedTrackingPassFlagSets ( flags,
resetCache = False )

Definition at line 10 of file TrackRecoConfig.py.

10def CombinedTrackingPassFlagSets(flags, resetCache=False):
11
12 global _flags_set
13 if _flags_set and not resetCache:
14 return _flags_set
15
16 flags_set = []
17
18 # Primary Pass
19 flags = flags.cloneAndReplace(
20 "Tracking.ActiveConfig",
21 f"Tracking.{flags.Tracking.PrimaryPassConfig.value}Pass",
22 # Keep original flags as some of the subsequent passes use
23 # lambda functions relying on them
24 keepOriginal=True)
25 flags_set += [flags]
26
27 # LRT pass
28 if flags.Tracking.doLargeD0 or flags.Tracking.doLowPtLargeD0:
29
30 if flags.Tracking.doLowPtLargeD0:
31 flagsLRT = flags.cloneAndReplace("Tracking.ActiveConfig",
32 "Tracking.LowPtLargeD0Pass")
33 elif flags.Tracking.doLargeD0:
34 flagsLRT = flags.cloneAndReplace("Tracking.ActiveConfig",
35 "Tracking.R3LargeD0Pass")
36
37 flags_set += [flagsLRT]
38
39 # LowPtRoI pass (low-pt tracks in high pile-up environment)
40 if flags.Tracking.doLowPtRoI:
41 flagsLowPtRoI = flags.cloneAndReplace("Tracking.ActiveConfig",
42 "Tracking.LowPtRoIPass")
43 flags_set += [flagsLowPtRoI]
44
45 # LowPt pass
46 if flags.Tracking.doLowPt:
47 flagsLowPt = flags.cloneAndReplace("Tracking.ActiveConfig",
48 "Tracking.LowPtPass")
49 flags_set += [flagsLowPt]
50
51 # VeryLowPt pass
52 if flags.Tracking.doVeryLowPt:
53 flagsVeryLowPt = flags.cloneAndReplace("Tracking.ActiveConfig",
54 "Tracking.VeryLowPtPass")
55 flags_set += [flagsVeryLowPt]
56
57 # TRT standalone pass
58 if flags.Tracking.doTRTStandalone:
59 flagsTRTStandalone = flags.cloneAndReplace("Tracking.ActiveConfig",
60 "Tracking.TRTStandalonePass")
61 flags_set += [flagsTRTStandalone]
62
63 # Forward tracklets
64 if flags.Tracking.doForwardTracks:
65 flagsForward = flags.cloneAndReplace("Tracking.ActiveConfig",
66 "Tracking.ForwardPass")
67 flags_set += [flagsForward]
68
69 # Disappearing pixel tracklets
70 if flags.Tracking.doTrackSegmentsDisappearing:
71 flagsDisappearing = flags.cloneAndReplace("Tracking.ActiveConfig",
72 "Tracking.DisappearingPass")
73 flags_set += [flagsDisappearing]
74
75 # Beam gas
76 if flags.Tracking.doBeamGas:
77 flagsBeamGas = flags.cloneAndReplace("Tracking.ActiveConfig",
78 "Tracking.BeamGasPass")
79 flags_set += [flagsBeamGas]
80
81 _flags_set = flags_set # Put into cache
82
83 return flags_set
84

◆ ExtendedPRDInfoCfg()

python.TrackRecoConfig.ExtendedPRDInfoCfg ( flags)

Definition at line 725 of file TrackRecoConfig.py.

725def ExtendedPRDInfoCfg(flags):
726 result = ComponentAccumulator()
727
728 if (flags.Tracking.doTIDE_AmbiTrackMonitoring or
729 flags.Tracking.doPseudoTracking):
730 from InDetConfig.InDetPrepRawDataToxAODConfig import (
731 InDetPixelPrepDataToxAOD_ExtraTruthCfg as PixelPrepDataToxAODCfg,
732 InDetSCT_PrepDataToxAOD_ExtraTruthCfg as SCT_PrepDataToxAODCfg,
733 InDetTRT_PrepDataToxAOD_ExtraTruthCfg as TRT_PrepDataToxAODCfg)
734 else:
735 from InDetConfig.InDetPrepRawDataToxAODConfig import (
736 InDetPixelPrepDataToxAODCfg as PixelPrepDataToxAODCfg,
737 InDetSCT_PrepDataToxAODCfg as SCT_PrepDataToxAODCfg,
738 InDetTRT_PrepDataToxAODCfg as TRT_PrepDataToxAODCfg)
739
740 if flags.Tracking.writeExtendedSi_PRDInfo:
741 result.merge(PixelPrepDataToxAODCfg(
742 flags,
743 ClusterSplitProbabilityName=(
744 ClusterSplitProbabilityContainerName(flags))))
745 result.merge(SCT_PrepDataToxAODCfg(flags))
746
747 if flags.Tracking.writeExtendedTRT_PRDInfo:
748 result.merge(TRT_PrepDataToxAODCfg(flags))
749
750 from DerivationFrameworkInDet.InDetToolsConfig import TSOS_CommonKernelCfg
751 # Set up one algorithm for each output tracking container
752 # Always done for default pass
753 # Done for other passes if pass requests to store track seeds OR track candidates OR requests separate container
754 # Input handling/configuration of algorithm for specific cases is done in TSOS_CommonKernelCfg
755 listOfExtensionsRequesting = [
756 e for e in _extensions_list if (e == '')
757 or (flags.Tracking[f"{e}Pass"].storeTrackSeeds) # Store Si track seeds
758 or (flags.Tracking[f"{e}Pass"].storeSiSPSeededTracks) # Store Si candidate tracks
759 or (flags.Tracking[f"{e}Pass"].storeSeparateContainer) ] # Particular tracking pass requesting separate container from main pass
760 result.merge(TSOS_CommonKernelCfg(
761 flags, listOfExtensions = listOfExtensionsRequesting))
762
763 if flags.Tracking.doTIDE_AmbiTrackMonitoring:
764 from DerivationFrameworkInDet.InDetToolsConfig import (
765 ObserverTSOS_CommonKernelCfg)
766 result.merge(ObserverTSOS_CommonKernelCfg(flags))
767
768 if flags.Tracking.doPseudoTracking:
769 from DerivationFrameworkInDet.InDetToolsConfig import (
770 PseudoTSOS_CommonKernelCfg)
771 result.merge(PseudoTSOS_CommonKernelCfg(flags))
772
773 if flags.Tracking.doStoreTrackSeeds:
774 from DerivationFrameworkInDet.InDetToolsConfig import (
775 SiSPSeedsTSOS_CommonKernelCfg)
776 # Setup one algorithm for each output tracking container
777 listOfExtensionsRequesting = [
778 e for e in _extensions_list if (e == '') or
779 flags.Tracking[f"{e}Pass"].storeTrackSeeds ]
780 result.merge(SiSPSeedsTSOS_CommonKernelCfg(
781 flags, listOfExtensions = listOfExtensionsRequesting))
782
783 if flags.Tracking.doStoreSiSPSeededTracks:
784 from DerivationFrameworkInDet.InDetToolsConfig import (
785 SiSPTSOS_CommonKernelCfg)
786 # Setup one algorithm for each output tracking container
787 listOfExtensionsRequesting = [
788 e for e in _extensions_list if (e == '') or
789 flags.Tracking[f"{e}Pass"].storeSiSPSeededTracks ]
790 result.merge(SiSPTSOS_CommonKernelCfg(
791 flags, listOfExtensions = listOfExtensionsRequesting))
792
793 if flags.Input.isMC:
794 #check if we want to add it for other passes
795 listOfExtensionsRequesting = [
796 e for e in _extensions_list if (e == '') or
797 (flags.Tracking[f"{e}Pass"].storeSiSPSeededTracks and
798 flags.Tracking[f"{e}Pass"].storeSeparateContainer) ]
799 from InDetPhysValMonitoring.InDetPhysValDecorationConfig import (
800 InDetPhysHitDecoratorAlgCfg)
801 for extension in listOfExtensionsRequesting:
802 result.merge(InDetPhysHitDecoratorAlgCfg(
803 flags,
804 name=f"InDetPhysHit{extension}DecoratorAlg",
805 TrackParticleContainerName=f"InDet{extension}TrackParticles"))
806
807 return result
808
809

◆ InDetCosmicsTrackRecoPreProcessingCfg()

python.TrackRecoConfig.InDetCosmicsTrackRecoPreProcessingCfg ( flags)

Definition at line 109 of file TrackRecoConfig.py.

109def InDetCosmicsTrackRecoPreProcessingCfg(flags):
110 result = ComponentAccumulator()
111
112 from InDetConfig.TrackingSiPatternConfig import TrackingSiPatternCfg
113 result.merge(TrackingSiPatternCfg(
114 flags,
115 InputCollections=[],
116 ResolvedTrackCollectionKey="ResolvedTracks",
117 SiSPSeededTrackCollectionKey="SiSPSeededTracks"))
118
119 if flags.Detector.EnableTRT:
120 from InDetConfig.TRTExtensionConfig import NewTrackingTRTExtensionPhaseCfg
121 result.merge(NewTrackingTRTExtensionPhaseCfg(
122 flags,
123 SiTrackCollection="ResolvedTracks",
124 ExtendedTrackCollection="ExtendedTracksPhase",
125 ExtendedTracksMap="ExtendedTracksMapPhase"))
126
127 from InDetConfig.TRTSegmentFindingConfig import TRTSegmentFinding_Phase_Cfg
128 result.merge(TRTSegmentFinding_Phase_Cfg(flags))
129
130 from InDetConfig.InDetTrackPRD_AssociationConfig import (
131 InDetTrackPRD_AssociationCfg)
132 result.merge(InDetTrackPRD_AssociationCfg(
133 flags, name='InDetTRTonly_TrackPRD_AssociationPhase',
134 AssociationMapName='InDetTRTonly_PRDtoTrackMapPhase',
135 TracksName=[]))
136
137 from InDetConfig.TRT_SegmentsToTrackConfig import (
138 TRT_Cosmics_SegmentsToTrackCfg)
139 result.merge(TRT_Cosmics_SegmentsToTrackCfg(
140 flags, name='InDetTRT_Cosmics_SegmentsToTrack_Phase',
141 InputSegmentsCollection="TRTSegments_Phase",
142 OutputTrackCollection="TRT_Tracks_Phase"))
143
144 from InDetConfig.InDetCosmicsEventPhaseConfig import (
145 InDetCosmicsEventPhaseCfg)
146 result.merge(InDetCosmicsEventPhaseCfg(
147 flags,
148 InputTracksNames=["TRT_Tracks_Phase"]))
149
150 from InDetConfig.InDetPrepRawDataFormationConfig import (
151 InDetTRT_Phase_RIO_MakerCfg)
152 result.merge(InDetTRT_Phase_RIO_MakerCfg(flags))
153
154 return result
155
156

◆ InDetPreProcessingCfg()

python.TrackRecoConfig.InDetPreProcessingCfg ( flags)

Definition at line 157 of file TrackRecoConfig.py.

157def InDetPreProcessingCfg(flags):
158 result = ComponentAccumulator()
159
160 # Detector ByteStream pre-processing
161 if flags.Input.Format is Format.BS:
162 if flags.Detector.EnablePixel:
163 from PixelRawDataByteStreamCnv.PixelRawDataByteStreamCnvConfig import (
164 PixelRawDataProviderAlgCfg)
165 result.merge(PixelRawDataProviderAlgCfg(flags))
166
167 if flags.Detector.EnableSCT:
168 from SCT_RawDataByteStreamCnv.SCT_RawDataByteStreamCnvConfig import (
169 SCTRawDataProviderCfg, SCTEventFlagWriterCfg)
170 result.merge(SCTRawDataProviderCfg(flags))
171 result.merge(SCTEventFlagWriterCfg(flags))
172
173 if flags.Detector.EnableTRT:
174 from TRT_RawDataByteStreamCnv.TRT_RawDataByteStreamCnvConfig import (
175 TRTRawDataProviderCfg)
176 result.merge(TRTRawDataProviderCfg(flags))
177
178 if flags.Detector.EnablePixel or flags.Detector.EnableSCT:
179 from InDetConfig.SiliconPreProcessing import InDetRecPreProcessingSiliconCfg
180 result.merge(InDetRecPreProcessingSiliconCfg(flags))
181 if flags.Detector.EnableTRT:
182 from InDetConfig.TRTPreProcessing import TRTPreProcessingCfg
183 result.merge(TRTPreProcessingCfg(flags))
184
185 return result
186

◆ InDetStatsCfg()

python.TrackRecoConfig.InDetStatsCfg ( flags,
StatTrackCollections = None,
StatTrackTruthCollections = None )

Definition at line 703 of file TrackRecoConfig.py.

704 StatTrackTruthCollections=None):
705 result = ComponentAccumulator()
706
707 from InDetConfig.InDetRecStatisticsConfig import (
708 InDetRecStatisticsAlgCfg)
709 result.merge(InDetRecStatisticsAlgCfg(
710 flags,
711 TrackCollectionKeys=StatTrackCollections,
712 TrackTruthCollectionKeys=(
713 StatTrackTruthCollections if flags.Tracking.doTruth else [])))
714
715 if flags.Tracking.doTruth:
716 from InDetConfig.InDetTrackClusterAssValidationConfig import (
717 InDetTrackClusterAssValidationCfg)
718 result.merge(InDetTrackClusterAssValidationCfg(
719 flags,
720 TracksLocation=StatTrackCollections))
721
722 return result
723
724

◆ InDetTrackRecoCfg()

python.TrackRecoConfig.InDetTrackRecoCfg ( flags)

Main ID tracking config #####################.

Definition at line 814 of file TrackRecoConfig.py.

814def InDetTrackRecoCfg(flags):
815
816 # Bypass to ITk config
817 if flags.Detector.GeometryITk:
818 from InDetConfig.ITkTrackRecoConfig import ITkTrackRecoCfg
819 return ITkTrackRecoCfg(flags)
820
821 """Configures complete ID tracking """
822 result = ComponentAccumulator()
823 result.merge(InDetPreProcessingCfg(flags))
824
825 ClusterSplitProbContainer = ''
826
827 # ------------------------------------------------------------
828 #
829 # ----------- Subdetector pattern from New Tracking
830 #
831 # ------------------------------------------------------------
832
833 # Pixel track segment finding
834 if flags.Tracking.doTrackSegmentsPixel:
835 acc, ClusterSplitProbContainer = (
836 SiSubDetTrackRecoCfg(flags, detector="Pixel",
837 extensions_list=_extensions_list,
838 ClusterSplitProbContainer=ClusterSplitProbContainer))
839 result.merge(acc)
840
841 # SCT track segment finding
842 if flags.Tracking.doTrackSegmentsSCT:
843 acc, ClusterSplitProbContainer = (
844 SiSubDetTrackRecoCfg(flags, detector="SCT",
845 extensions_list=_extensions_list,
846 ClusterSplitProbContainer=ClusterSplitProbContainer))
847 result.merge(acc)
848
849 # TRT track segment finding
850 if flags.Tracking.doTrackSegmentsTRT:
851 result.merge(TRTTrackRecoCfg(flags, extensions_list=_extensions_list))
852
853 flags_set = CombinedTrackingPassFlagSets(flags, resetCache=True)
854
855 # Pre-processing for TRT phase in cosmics
856 if flags.Beam.Type is BeamType.Cosmics:
857 flagsCosmics = flags_set[0]
858 result.merge(InDetCosmicsTrackRecoPreProcessingCfg(flagsCosmics))
859
860 # ------------------------------------------------------------
861 #
862 # ----------- Main passes for standard reconstruction
863 #
864 # ------------------------------------------------------------
865
866 # Tracks to be ultimately merged in InDetTrackParticle collection
867 InputCombinedInDetTracks = []
868 # Includes also tracks which end in standalone TrackParticle collections
869 InputExtendedInDetTracks = []
870 ClusterSplitProbContainer = ""
871 StatTrackCollections = [] # To be passed to the InDetRecStatistics alg
872 StatTrackTruthCollections = []
873 isPrimaryPass = True
874
875 printPrimaryConfig(flags)
876
877 for current_flags in flags_set:
878 printActiveConfig(current_flags)
879
880 extension = (
881 "" if isPrimaryPass else
882 current_flags.Tracking.ActiveConfig.extension)
883 _extensions_list.append(extension)
884
885 # ---------------------------------------
886 # ---- TRTStandalone pass
887 # ---------------------------------------
888
889 if flags.Tracking.doTRTStandalone and extension == "TRTStandalone":
890 result.merge(TRTStandalonePassRecoCfg(
891 current_flags,
892 InputCombinedInDetTracks=InputCombinedInDetTracks,
893 InputExtendedInDetTracks=InputExtendedInDetTracks,
894 StatTrackCollections=StatTrackCollections,
895 StatTrackTruthCollections=StatTrackTruthCollections))
896
897 continue # Skip rest of config for the TRTStandalone pass
898
899 # ---------------------------------------
900 # ---- All the passes but TRTStandalone
901 # ---------------------------------------
902
903 acc, ClusterSplitProbContainer = TrackRecoPassCfg(
904 current_flags, extension=extension,
905 doTrackingSiPattern=not(isPrimaryPass and
906 flags.Beam.Type is BeamType.Cosmics),
907 InputCombinedInDetTracks=InputCombinedInDetTracks,
908 InputExtendedInDetTracks=InputExtendedInDetTracks,
909 StatTrackCollections=StatTrackCollections,
910 StatTrackTruthCollections=StatTrackTruthCollections,
911 ClusterSplitProbContainer=ClusterSplitProbContainer)
912 result.merge(acc)
913
914 # ---------------------------------------
915 # --- A few passes, only after primary pass
916 # ---------------------------------------
917
918 if isPrimaryPass:
919
920 # ---------------------------------------
921 # --- TRT Segments
922 # ---------------------------------------
923
924 if flags.Tracking.doTRTSegments:
925 from InDetConfig.TRTSegmentFindingConfig import (
926 TRTSegmentFindingCfg)
927 result.merge(TRTSegmentFindingCfg(
928 current_flags,
929 InputCollections=InputCombinedInDetTracks))
930
931 # ---------------------------------------
932 # --- BackTracking
933 # ---------------------------------------
934
935 if flags.Tracking.doBackTracking:
936 acc, ClusterSplitProbContainer = BackTrackingRecoCfg(
937 current_flags,
938 InputCombinedInDetTracks=InputCombinedInDetTracks,
939 InputExtendedInDetTracks=InputExtendedInDetTracks,
940 StatTrackCollections=StatTrackCollections,
941 StatTrackTruthCollections=StatTrackTruthCollections,
942 ClusterSplitProbContainer=ClusterSplitProbContainer)
943 result.merge(acc)
944
945 # ---------------------------------------
946 # --- PseudoTracking
947 # ---------------------------------------
948
949 if (flags.Tracking.doTruth and
950 (flags.Tracking.doPseudoTracking or
951 flags.Tracking.doIdealPseudoTracking)):
952
953 from TrkConfig.TrkTruthTrackAlgsConfig import TruthTrackingCfg
954 result.merge(TruthTrackingCfg(current_flags))
955
956 isPrimaryPass = False
957
958 # ----------------------------------------------------
959 # --- Loop over tracking passes is done, final configs
960 # ----------------------------------------------------
961
962 result.merge(
963 TrackFinalCfg(flags,
964 InputCombinedInDetTracks=InputCombinedInDetTracks,
965 StatTrackCollections=StatTrackCollections,
966 StatTrackTruthCollections=StatTrackTruthCollections))
967
968 if (flags.Tracking.doPseudoTracking or
969 flags.Tracking.doIdealPseudoTracking):
970 result.merge(PseudoTrackFinalCfg(flags))
971
972 if flags.Tracking.doTIDE_AmbiTrackMonitoring:
973 result.merge(ObserverTrackFinalCfg(flags))
974
975 if flags.Tracking.doStoreTrackSeeds:
976 result.merge(TrackSeedsFinalCfg(flags))
977
978 if flags.Tracking.doStoreSiSPSeededTracks:
979 result.merge(SiSPSeededTracksFinalCfg(flags))
980
981 # ---------------------------------------
982 # --- Primary vertexing
983 # ---------------------------------------
984
985 if flags.Tracking.doVertexFinding:
986 from InDetConfig.InDetPriVxFinderConfig import primaryVertexFindingCfg
987 result.merge(primaryVertexFindingCfg(flags))
988
989 if flags.Tracking.doStats:
990 result.merge(InDetStatsCfg(
991 flags_set[0], # Use cuts from primary pass
992 StatTrackCollections=StatTrackCollections,
993 StatTrackTruthCollections=StatTrackTruthCollections))
994
995 # ---------------------------------------
996 # --- Extra optional decorations
997 # ---------------------------------------
998
999 if flags.Tracking.doV0Finder:
1000 from InDetConfig.InDetV0FinderConfig import InDetV0FinderCfg
1001 result.merge(InDetV0FinderCfg(flags))
1002
1003 if (flags.Tracking.writeExtendedSi_PRDInfo or
1004 flags.Tracking.writeExtendedTRT_PRDInfo):
1005 result.merge(ExtendedPRDInfoCfg(flags))
1006
1007 # output
1008 from InDetConfig.InDetTrackOutputConfig import InDetTrackRecoOutputCfg
1009 result.merge(InDetTrackRecoOutputCfg(flags, _extensions_list))
1010
1011 return result
1012
1013# Run with python -m InDetConfig.TrackRecoConfig
1014# Works with Data RAW (Format.BS), MC RDO, and MC ESD

◆ ObserverTrackFinalCfg()

python.TrackRecoConfig.ObserverTrackFinalCfg ( flags)

Definition at line 618 of file TrackRecoConfig.py.

618def ObserverTrackFinalCfg(flags):
619 result = ComponentAccumulator()
620
621 TrackContainer = "ObservedTracksCollection"
622 if flags.Tracking.doTruth:
623 from InDetConfig.TrackTruthConfig import InDetTrackTruthCfg
624 result.merge(InDetTrackTruthCfg(
625 flags,
626 Tracks=TrackContainer,
627 DetailedTruth=TrackContainer + "DetailedTruth",
628 TracksTruth=TrackContainer + "TruthCollection"))
629
630 from xAODTrackingCnv.xAODTrackingCnvConfig import (
631 ObserverTrackParticleCnvAlgCfg)
632 result.merge(ObserverTrackParticleCnvAlgCfg(
633 flags,
634 AssociationMapName = (
635 "PRDtoTrackMapMerge_CombinedInDetTracks")))
636
637 return result
638
639

◆ PseudoTrackFinalCfg()

python.TrackRecoConfig.PseudoTrackFinalCfg ( flags)

Definition at line 593 of file TrackRecoConfig.py.

593def PseudoTrackFinalCfg(flags):
594 result = ComponentAccumulator()
595
596 TrackContainer = "InDetPseudoTracks"
597 if flags.Tracking.doTruth:
598 from InDetConfig.TrackTruthConfig import InDetTrackTruthCfg
599 result.merge(InDetTrackTruthCfg(
600 flags,
601 Tracks=TrackContainer,
602 DetailedTruth=TrackContainer + "DetailedTruth",
603 TracksTruth=TrackContainer + "TruthCollection"))
604
605 from xAODTrackingCnv.xAODTrackingCnvConfig import TrackParticleCnvAlgCfg
606 result.merge(TrackParticleCnvAlgCfg(
607 flags,
608 name="PseudoTrackParticleCnvAlg",
609 TrackContainerName=TrackContainer,
610 xAODTrackParticlesFromTracksContainerName=(
611 "InDetPseudoTrackParticles"),
612 AssociationMapName=(
613 "PRDtoTrackMapMerge_CombinedInDetTracks")))
614
615 return result
616
617

◆ SiDetectorElementStatusCfg()

python.TrackRecoConfig.SiDetectorElementStatusCfg ( flags,
suffix = "" )

Definition at line 187 of file TrackRecoConfig.py.

187def SiDetectorElementStatusCfg(flags, suffix="") :
188 result = ComponentAccumulator()
189 if flags.Detector.GeometryITk:
190 if flags.Detector.EnableITkPixel:
191 from PixelConditionsAlgorithms.ITkPixelConditionsConfig import (
192 ITkPixelDetectorElementStatusAlgCfg)
193 result.merge(ITkPixelDetectorElementStatusAlgCfg(flags,name=f"ITkPixelDetectorElementStatusAlg{suffix}"))
194 if flags.Detector.EnableITkStrip:
195 from SCT_ConditionsAlgorithms.ITkStripConditionsAlgorithmsConfig import (
196 ITkStripDetectorElementStatusAlgCfg)
197 result.merge(ITkStripDetectorElementStatusAlgCfg(flags,name=f"ITkStripDetectorElementStatusAlg{suffix}"))
198 return result
199
200
201# Returns CA + ClusterSplitProbContainer

◆ SiSPSeededTracksFinalCfg()

python.TrackRecoConfig.SiSPSeededTracksFinalCfg ( flags)

Definition at line 672 of file TrackRecoConfig.py.

672def SiSPSeededTracksFinalCfg(flags):
673 result = ComponentAccumulator()
674
675 primaryPassExtension = flags.Tracking[f"{flags.Tracking.PrimaryPassConfig.value}Pass"].extension
676
677 # get list of extensions requesting track candidates.
678 # Add always the Primary Pass.
679 listOfExtensionsRequesting = [
680 e for e in _extensions_list
681 if (e=='' or flags.Tracking[f"{e}Pass"].storeSiSPSeededTracks) ]
682
683 for extension in listOfExtensionsRequesting:
684 AssociationMapNameKey="PRDtoTrackMapMerge_CombinedInDetTracks"
685 if extension=='Disappearing':
686 AssociationMapNameKey = "PRDtoTrackMapMerge_DisappearingTracks"
687 elif not (extension == primaryPassExtension):
688 AssociationMapNameKey = f"InDetPRDtoTrackMap{extension}"
689
690 from xAODTrackingCnv.xAODTrackingCnvConfig import (
691 TrackParticleCnvAlgNoPIDCfg)
692 result.merge(TrackParticleCnvAlgNoPIDCfg(
693 flags,
694 name = f"SiSPSeededTracks{extension}CnvAlg",
695 TrackContainerName = f"SiSPSeeded{extension}Tracks",
696 xAODTrackParticlesFromTracksContainerName=(
697 f"SiSPSeededTracks{extension}TrackParticles"),
698 AssociationMapName=AssociationMapNameKey))
699
700 return result
701
702

◆ SiSubDetTrackRecoCfg()

python.TrackRecoConfig.SiSubDetTrackRecoCfg ( flags,
detector = "",
extensions_list = None,
ClusterSplitProbContainer = "" )

Definition at line 202 of file TrackRecoConfig.py.

204 ClusterSplitProbContainer=""):
205 result = ComponentAccumulator()
206
207 if extensions_list is None:
208 extensions_list = []
209
210 flagsDet = flags.cloneAndReplace("Tracking.ActiveConfig",
211 f"Tracking.{detector}Pass")
212 TrackContainer = f"Resolved{detector}Tracks"
213 extensions_list.append(flagsDet.Tracking.ActiveConfig.extension)
214 printActiveConfig(flagsDet)
215
216 from InDetConfig.TrackingSiPatternConfig import TrackingSiPatternCfg
217 result.merge(TrackingSiPatternCfg(
218 flagsDet,
219 InputCollections=[],
220 ResolvedTrackCollectionKey=TrackContainer,
221 SiSPSeededTrackCollectionKey=f"SiSPSeeded{detector}Tracks",
222 ClusterSplitProbContainer=ClusterSplitProbContainer))
223
224 ClusterSplitProbContainer = (
225 "InDetAmbiguityProcessorSplitProb" +
226 flagsDet.Tracking.ActiveConfig.extension)
227
228 if flags.Tracking.doTruth:
229 from InDetConfig.TrackTruthConfig import InDetTrackTruthCfg
230 result.merge(InDetTrackTruthCfg(
231 flagsDet,
232 Tracks=TrackContainer,
233 DetailedTruth=TrackContainer+"DetailedTruth",
234 TracksTruth=TrackContainer+"TruthCollection"))
235
236 from xAODTrackingCnv.xAODTrackingCnvConfig import (
237 TrackParticleCnvAlgPIDCheckCfg)
238 result.merge(TrackParticleCnvAlgPIDCheckCfg(
239 flagsDet,
240 name=TrackContainer+"CnvAlg",
241 TrackContainerName=TrackContainer,
242 xAODTrackParticlesFromTracksContainerName=(
243 f"InDet{detector}TrackParticles")))
244
245 return result, ClusterSplitProbContainer
246
247

◆ StoreTrackSeparateContainerCfg()

python.TrackRecoConfig.StoreTrackSeparateContainerCfg ( flags,
TrackContainer = "",
ClusterSplitProbContainer = "" )

Definition at line 308 of file TrackRecoConfig.py.

309 ClusterSplitProbContainer=""):
310 result = ComponentAccumulator()
311 # Dummy Merger to fill additional info
312 # for PRD-associated pixel tracklets
313 # Can also run on all separate collections like R3LargeD0
314 # but kept consistent with legacy config
315 AssociationMapName = ""
316 extension = flags.Tracking.ActiveConfig.extension
317
318 # For track overlay: each pass owns its output container; merging of Sig/Bkg is handled earlier if needed
319 # Always run the block for Disappearing extension to ensure containers are produced
320 if extension == "Disappearing":
321 InputTracks = [TrackContainer]
322 # For TO, always use DisappearingTracks as the output container for downstream
323 TrackContainer = extension + "Tracks"
324 MergerOutputTracks = TrackContainer
325
326 from TrkConfig.TrkTrackCollectionMergerConfig import (
327 TrackCollectionMergerAlgCfg)
328 result.merge(TrackCollectionMergerAlgCfg(
329 flags,
330 name = "TrackCollectionMergerAlgCfg" + extension,
331 InputCombinedTracks=InputTracks,
332 OutputCombinedTracks=MergerOutputTracks,
333 AssociationMapName="PRDtoTrackMap" + TrackContainer))
334
335 if flags.Tracking.doTruth:
336 from InDetConfig.TrackTruthConfig import InDetTrackTruthCfg
337 result.merge(InDetTrackTruthCfg(
338 flags,
339 Tracks=TrackContainer,
340 DetailedTruth=TrackContainer+"DetailedTruth",
341 TracksTruth=TrackContainer+"TruthCollection"))
342
343 # Need specific handling with TrackParticles for R3LargeD0
344 # not to break downstream configs
345 xAODTrackParticlesName = (
346 "InDetLargeD0TrackParticles" if "LargeD0" in extension else
347 "InDet" + extension + "TrackParticles")
348
349 from xAODTrackingCnv.xAODTrackingCnvConfig import (
350 TrackParticleCnvAlgPIDCheckCfg)
351 result.merge(TrackParticleCnvAlgPIDCheckCfg(
352 flags,
353 name = extension + "TrackParticleCnvAlg",
354 TrackContainerName=TrackContainer,
355 xAODTrackParticlesFromTracksContainerName=xAODTrackParticlesName,
356 ClusterSplitProbabilityName=ClusterSplitProbContainer,
357 AssociationMapName=AssociationMapName))
358
359 return result, TrackContainer
360
361
362# Returns CA + ClusterSplitProbContainer

◆ TrackFinalCfg()

python.TrackRecoConfig.TrackFinalCfg ( flags,
InputCombinedInDetTracks = None,
StatTrackCollections = None,
StatTrackTruthCollections = None )

Definition at line 543 of file TrackRecoConfig.py.

546 StatTrackTruthCollections=None):
547 result = ComponentAccumulator()
548 if InputCombinedInDetTracks is None:
549 InputCombinedInDetTracks = []
550 if StatTrackCollections is None:
551 StatTrackCollections = []
552 if StatTrackTruthCollections is None:
553 StatTrackTruthCollections = []
554
555 TrackContainer = "CombinedInDetTracks"
556
557 from TrkConfig.TrkTrackCollectionMergerConfig import (
558 TrackCollectionMergerAlgCfg)
559 result.merge(TrackCollectionMergerAlgCfg(
560 flags,
561 InputCombinedTracks=InputCombinedInDetTracks,
562 OutputCombinedTracks=TrackContainer,
563 AssociationMapName=f"PRDtoTrackMapMerge_{TrackContainer}"))
564
565 if flags.Tracking.doTruth:
566 from InDetConfig.TrackTruthConfig import InDetTrackTruthCfg
567 result.merge(InDetTrackTruthCfg(
568 flags,
569 Tracks=TrackContainer,
570 DetailedTruth=f"{TrackContainer}DetailedTruth",
571 TracksTruth=f"{TrackContainer}TruthCollection"))
572
573 StatTrackCollections += [TrackContainer]
574 StatTrackTruthCollections += [f"{TrackContainer}TruthCollection"]
575
576 if flags.Tracking.doSlimming:
577 from TrkConfig.TrkTrackSlimmerConfig import TrackSlimmerCfg
578 result.merge(TrackSlimmerCfg(
579 flags,
580 TrackLocation=[TrackContainer]))
581
582 if flags.Tracking.perigeeExpression == "BeamLine":
583 from xAODTrackingCnv.xAODTrackingCnvConfig import TrackParticleCnvAlgCfg
584 result.merge(TrackParticleCnvAlgCfg(
585 flags,
586 ClusterSplitProbabilityName=ClusterSplitProbabilityContainerName(
587 flags),
588 AssociationMapName=f"PRDtoTrackMapMerge_{TrackContainer}"))
589
590 return result
591
592

◆ TrackRecoConfigTest()

python.TrackRecoConfig.TrackRecoConfigTest ( flags = None)

Definition at line 1015 of file TrackRecoConfig.py.

1015def TrackRecoConfigTest(flags=None):
1016
1017 store_config = False
1018 if flags is None:
1019 store_config = True
1020 from AthenaConfiguration.AllConfigFlags import initConfigFlags
1021 flags = initConfigFlags()
1022
1023 # Disable calo for this test
1024 from InDetConfig.ConfigurationHelpers import OnlyTrackingPreInclude
1025 OnlyTrackingPreInclude(flags)
1026
1027 from AthenaConfiguration.TestDefaults import defaultTestFiles, defaultConditionsTags
1028 flags.Input.Files = defaultTestFiles.RDO_RUN3
1029 flags.IOVDb.GlobalTag = defaultConditionsTags.RUN3_MC
1030 flags.Exec.MaxEvents = 1
1031
1032 flags.lock()
1033
1034 from AthenaConfiguration.MainServicesConfig import MainServicesCfg
1035 top_acc = MainServicesCfg(flags)
1036
1037 if flags.Input.Format is not Format.BS:
1038 from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
1039 top_acc.merge(PoolReadCfg(flags))
1040
1041 if flags.Detector.EnableCalo:
1042 if flags.Input.Format is Format.BS:
1043 from CaloRec.CaloRecoConfig import CaloRecoCfg
1044 top_acc.merge(CaloRecoCfg(flags))
1045 else:
1046 from CaloRec.CaloTopoClusterConfig import CaloTopoClusterCfg
1047 top_acc.merge(CaloTopoClusterCfg(flags))
1048
1049 if flags.Input.Format is not Format.BS:
1050 # TODO find better way to determine RDO vs ESD input?
1051 if "PixelRDOs" in flags.Input.Collections:
1052 if "EventInfo" not in flags.Input.Collections:
1053 from xAODEventInfoCnv.xAODEventInfoCnvConfig import EventInfoCnvAlgCfg
1054 top_acc.merge(EventInfoCnvAlgCfg(flags))
1055
1056 if flags.Input.isMC:
1057 from xAODTruthCnv.xAODTruthCnvConfig import GEN_AOD2xAODCfg
1058 top_acc.merge(GEN_AOD2xAODCfg(flags))
1059 else:
1060 if flags.Tracking.doTruth :
1061 from xAODTruthCnv.RedoTruthLinksConfig import RedoTruthLinksAlgCfg
1062 top_acc.merge( RedoTruthLinksAlgCfg(flags) )
1063
1064 top_acc.merge(InDetTrackRecoCfg(flags))
1065
1066 if store_config:
1067 from AthenaCommon.Constants import DEBUG
1068 top_acc.foreach_component("AthEventSeq/*").OutputLevel = DEBUG
1069 top_acc.printConfig(withDetails=True, summariseProps=True)
1070 top_acc.store(open("TrackRecoConfig.pkl", "wb"))
1071
1072 import sys
1073 if "--norun" not in sys.argv:
1074 sc = top_acc.run()
1075 if sc.isFailure():
1076 sys.exit(-1)
1077

◆ TrackRecoPassCfg()

python.TrackRecoConfig.TrackRecoPassCfg ( flags,
extension = "",
doTrackingSiPattern = True,
InputCombinedInDetTracks = None,
InputExtendedInDetTracks = None,
StatTrackCollections = None,
StatTrackTruthCollections = None,
ClusterSplitProbContainer = "" )

Definition at line 402 of file TrackRecoConfig.py.

408 ClusterSplitProbContainer=""):
409 result = ComponentAccumulator()
410 doTrackOverlay = flags.TrackOverlay.isTrackOverlaySeq
411 if InputCombinedInDetTracks is None:
412 InputCombinedInDetTracks = []
413 if InputExtendedInDetTracks is None:
414 InputExtendedInDetTracks = []
415 if StatTrackCollections is None:
416 StatTrackCollections = []
417 if StatTrackTruthCollections is None:
418 StatTrackTruthCollections = []
419
420 ResolvedTracks = "Resolved" + extension + "Tracks"
421 # for track overlay, save resolved track name for final merged track collection
422 # Only add Sig_ prefix for primary pass (where we merge signal+pileup)
423 # Non-primary passes process signal only, so no prefix needed
424 if (doTrackOverlay and extension == '' and
425 flags.Tracking.ActiveConfig.storeSeparateContainer):
426 ResolvedTracks = flags.Overlay.SigPrefix + ResolvedTracks
427
428 # Tweak to match old config key
429 if "LargeD0" in extension:
430 ResolvedTracks = "ResolvedLargeD0Tracks"
431
432 # ---------------------------------------
433 # --- Si pattern, if not done in the cosmic preprocessing
434 # ---------------------------------------
435
436 if doTrackingSiPattern:
437 SiSPSeededTracks = "SiSPSeeded" + extension + "Tracks"
438
439 from InDetConfig.TrackingSiPatternConfig import TrackingSiPatternCfg
440 result.merge(TrackingSiPatternCfg(
441 flags,
442 InputCollections=InputExtendedInDetTracks,
443 ResolvedTrackCollectionKey=ResolvedTracks,
444 SiSPSeededTrackCollectionKey=SiSPSeededTracks,
445 ClusterSplitProbContainer=ClusterSplitProbContainer))
446 StatTrackCollections += [SiSPSeededTracks, ResolvedTracks]
447 StatTrackTruthCollections += [SiSPSeededTracks+"TruthCollection",
448 ResolvedTracks+"TruthCollection"]
449
450 # ---------------------------------------
451 # --- For track overlay main pass: merge signal Si tracks with pileup tracks BEFORE TRT extension
452 # --- TRT extension needs to see ALL Si tracks (signal + pileup) to properly
453 # --- associate TRT hits from the overlaid TRT_RDOs with both signal and pileup tracks
454 # ---------------------------------------
455
456 TrackContainer = ResolvedTracks
457
458 # Track which Si tracks to use for TRT extension
459 SiTracksForTRTExtension = ResolvedTracks
460
461 # For track overlay: Merge signal + pileup Si tracks BEFORE TRT extension
462 # First add TrackSummary to pileup tracks
463 # Then merge and run TRT extension on combined collection
464 if doTrackOverlay and extension == '':
465 # Add TrackSummary to pileup tracks
466 from InDetConfig.AddTrackSummaryAlgConfig import AddTrackSummaryAlgCfg
467 result.merge(AddTrackSummaryAlgCfg(
468 flags,
469 name="AddSummaryToPileupTracks",
470 InputTrackCollection="Bkg_CombinedInDetTracks",
471 OutputTrackCollection="Bkg_CombinedInDetTracksWithSummary",
472 MinPt=flags.Tracking.ActiveConfig.minPT,
473 MaxAbsEta=2.2,
474 ))
475 # Merge signal + pileup Si tracks
476 from TrkConfig.TrkTrackCollectionMergerConfig import TrackCollectionMergerAlgCfg
477 result.merge(TrackCollectionMergerAlgCfg(
478 flags,
479 name="MergeSignalPileupBeforeTRTExtension",
480 InputCombinedTracks=[ResolvedTracks, "Bkg_CombinedInDetTracksWithSummary"],
481 OutputCombinedTracks="MergedSiTracks",
482 AssociationMapName="PRDtoTrackMapMergedSiTracks"))
483
484 # Use merged Si tracks as input for TRT extension
485 SiTracksForTRTExtension = "MergedSiTracks"
486 TrackContainer = "MergedSiTracks"
487
488 elif (doTrackOverlay and
489 flags.Tracking.ActiveConfig.storeSeparateContainer):
490 #not doing the merge in non-primary passes, so the pass’s own output container
491 TrackContainer = ResolvedTracks
492
493 # ---------------------------------------
494 # --- TRT extension
495 # ---------------------------------------
496
497 # For track overlay non-primary passes: process signal tracks normally
498 # Primary pass (extension="") merges signal+pileup Si tracks before TRT extension (done above)
499
500 if flags.Tracking.ActiveConfig.useTRTExtension:
501 ExtendedTracks = "Extended" + extension + "Tracks"
502 # Tweaks to match old config key
503 if extension == "Disappearing":
504 ExtendedTracks = "ExtendedTracksDisappearing"
505 elif "LargeD0" in extension:
506 ExtendedTracks = "ExtendedLargeD0Tracks"
507 # In track overlay, LargeD0 pass only processes signal - no Sig_ prefix needed
508 ExtendedTracksMap = "ExtendedTracksMap" + extension
509 from InDetConfig.TRTExtensionConfig import NewTrackingTRTExtensionCfg
510 result.merge(NewTrackingTRTExtensionCfg(
511 flags,
512 SiTrackCollection=SiTracksForTRTExtension,
513 ExtendedTrackCollection=ExtendedTracks,
514 ExtendedTracksMap=ExtendedTracksMap))
515
516 TrackContainer = ExtendedTracks
517 if doTrackOverlay and "LargeD0" in extension:
518 TrackContainer = "ExtendedLargeD0Tracks"
519 StatTrackCollections += [ExtendedTracks]
520 StatTrackTruthCollections += [ExtendedTracks+"TruthCollection"]
521
522 # ---------------------------------------
523 # --- Store separate container if needed
524 # ---------------------------------------
525
526 if flags.Tracking.ActiveConfig.storeSeparateContainer:
527 acc, TrackContainer = StoreTrackSeparateContainerCfg(
528 flags,
529 TrackContainer=TrackContainer,
530 ClusterSplitProbContainer=ClusterSplitProbContainer)
531 result.merge(acc)
532
533 else: # Do not store separate track container
534 ClusterSplitProbContainer = (
535 "InDetAmbiguityProcessorSplitProb" +
536 flags.Tracking.ActiveConfig.extension)
537 InputCombinedInDetTracks += [TrackContainer]
538
539 InputExtendedInDetTracks += [TrackContainer]
540 return result, ClusterSplitProbContainer
541
542

◆ TrackSeedsFinalCfg()

python.TrackRecoConfig.TrackSeedsFinalCfg ( flags)

Definition at line 640 of file TrackRecoConfig.py.

640def TrackSeedsFinalCfg(flags):
641 result = ComponentAccumulator()
642
643 # get list of extensions requesting track seeds.
644 # Add always the Primary Pass.
645 listOfExtensionsRequesting = [
646 e for e in _extensions_list
647 if (e == '' or flags.Tracking[f"{e}Pass"].storeTrackSeeds) ]
648
649 for extension in listOfExtensionsRequesting:
650 TrackContainer = "SiSPSeedSegments"+extension
651
652 if flags.Tracking.doTruth:
653 from InDetConfig.TrackTruthConfig import InDetTrackTruthCfg
654 result.merge(InDetTrackTruthCfg(
655 flags,
656 Tracks=TrackContainer,
657 DetailedTruth=f"{TrackContainer}DetailedTruth",
658 TracksTruth=f"{TrackContainer}TruthCollection"))
659
660 from xAODTrackingCnv.xAODTrackingCnvConfig import (
661 TrackParticleCnvAlgNoPIDCfg)
662 result.merge(TrackParticleCnvAlgNoPIDCfg(
663 flags,
664 name=f"{TrackContainer}CnvAlg",
665 TrackContainerName=TrackContainer,
666 xAODTrackParticlesFromTracksContainerName=(
667 f"{TrackContainer}TrackParticles")))
668
669 return result
670
671

◆ TRTStandalonePassRecoCfg()

python.TrackRecoConfig.TRTStandalonePassRecoCfg ( flags,
InputCombinedInDetTracks = None,
InputExtendedInDetTracks = None,
StatTrackCollections = None,
StatTrackTruthCollections = None )

Definition at line 269 of file TrackRecoConfig.py.

273 StatTrackTruthCollections=None):
274 result = ComponentAccumulator()
275
276 if InputCombinedInDetTracks is None:
277 InputCombinedInDetTracks = []
278 if InputExtendedInDetTracks is None:
279 InputExtendedInDetTracks = []
280 if StatTrackCollections is None:
281 StatTrackCollections = []
282 if StatTrackTruthCollections is None:
283 StatTrackTruthCollections = []
284
285 from InDetConfig.TRTStandaloneConfig import TRTStandaloneCfg
286 result.merge(TRTStandaloneCfg(flags,
287 InputCollections=InputCombinedInDetTracks))
288
289 TRTTrackContainer = "TRTStandaloneTracks"
290 InputCombinedInDetTracks += [TRTTrackContainer]
291 InputExtendedInDetTracks += [TRTTrackContainer]
292 StatTrackCollections += [TRTTrackContainer]
293 StatTrackTruthCollections += [TRTTrackContainer+"TruthCollection"]
294
295 if flags.Tracking.doTrackSegmentsTRT:
296 from xAODTrackingCnv.xAODTrackingCnvConfig import (
297 TrackParticleCnvAlgNoPIDCfg)
298 result.merge(TrackParticleCnvAlgNoPIDCfg(
299 flags, TRTTrackContainer+"CnvAlg",
300 TrackContainerName=TRTTrackContainer,
301 xAODTrackParticlesFromTracksContainerName=(
302 "InDetTRTTrackParticles")))
303
304 return result
305
306
307# Return CA + TrackContainer

◆ TRTTrackRecoCfg()

python.TrackRecoConfig.TRTTrackRecoCfg ( flags,
extensions_list = None )

Definition at line 248 of file TrackRecoConfig.py.

248def TRTTrackRecoCfg(flags, extensions_list=None):
249 result = ComponentAccumulator()
250
251 if extensions_list is None:
252 extensions_list = []
253
254 flagsTRT = flags.cloneAndReplace("Tracking.ActiveConfig",
255 "Tracking.TRTPass")
256 extensions_list.append(flagsTRT.Tracking.ActiveConfig.extension)
257 printActiveConfig(flagsTRT)
258
259 from InDetConfig.TRTSegmentFindingConfig import (
260 TRTSegmentFinding_TrackSegments_Cfg)
261 result.merge(TRTSegmentFinding_TrackSegments_Cfg(flagsTRT))
262
263 from InDetConfig.TRTStandaloneConfig import TRT_TrackSegment_Cfg
264 result.merge(TRT_TrackSegment_Cfg(flagsTRT))
265
266 return result
267
268

Variable Documentation

◆ _extensions_list

list python.TrackRecoConfig._extensions_list = []
protected

Definition at line 8 of file TrackRecoConfig.py.

◆ _flags_set

list python.TrackRecoConfig._flags_set = []
protected

Definition at line 7 of file TrackRecoConfig.py.