Main ID tracking config #####################.
814def InDetTrackRecoCfg(flags):
815
816
817 if flags.Detector.GeometryITk:
818 from InDetConfig.ITkTrackRecoConfig import ITkTrackRecoCfg
819 return ITkTrackRecoCfg(flags)
820
821 from TrkConfig.TrkConfigFlags import TrackingComponent
822 if TrackingComponent.ActsChain in flags.Tracking.recoChain:
823 from InDetConfig.ActsTrackRecoConfig import ActsTrackRecoCfg
824 return ActsTrackRecoCfg(flags)
825 """Configures complete ID tracking """
826 result = ComponentAccumulator()
827 result.merge(InDetPreProcessingCfg(flags))
828
829 ClusterSplitProbContainer = ''
830
831
832
833
834
835
836
837
838 if flags.Tracking.doTrackSegmentsPixel:
839 acc, ClusterSplitProbContainer = (
840 SiSubDetTrackRecoCfg(flags, detector="Pixel",
841 extensions_list=_extensions_list,
842 ClusterSplitProbContainer=ClusterSplitProbContainer))
843 result.merge(acc)
844
845
846 if flags.Tracking.doTrackSegmentsSCT:
847 acc, ClusterSplitProbContainer = (
848 SiSubDetTrackRecoCfg(flags, detector="SCT",
849 extensions_list=_extensions_list,
850 ClusterSplitProbContainer=ClusterSplitProbContainer))
851 result.merge(acc)
852
853
854 if flags.Tracking.doTrackSegmentsTRT:
855 result.merge(TRTTrackRecoCfg(flags, extensions_list=_extensions_list))
856
857 flags_set = CombinedTrackingPassFlagSets(flags, resetCache=True)
858
859
860 if flags.Beam.Type is BeamType.Cosmics:
861 flagsCosmics = flags_set[0]
862 result.merge(InDetCosmicsTrackRecoPreProcessingCfg(flagsCosmics))
863
864
865
866
867
868
869
870
871 InputCombinedInDetTracks = []
872
873 InputExtendedInDetTracks = []
874 ClusterSplitProbContainer = ""
875 StatTrackCollections = []
876 StatTrackTruthCollections = []
877 isPrimaryPass = True
878
879 printPrimaryConfig(flags)
880
881 for current_flags in flags_set:
882 printActiveConfig(current_flags)
883
884 extension = (
885 "" if isPrimaryPass else
886 current_flags.Tracking.ActiveConfig.extension)
887 _extensions_list.append(extension)
888
889
890
891
892
893 if flags.Tracking.doTRTStandalone and extension == "TRTStandalone":
894 result.merge(TRTStandalonePassRecoCfg(
895 current_flags,
896 InputCombinedInDetTracks=InputCombinedInDetTracks,
897 InputExtendedInDetTracks=InputExtendedInDetTracks,
898 StatTrackCollections=StatTrackCollections,
899 StatTrackTruthCollections=StatTrackTruthCollections))
900
901 continue
902
903
904
905
906
907 acc, ClusterSplitProbContainer = TrackRecoPassCfg(
908 current_flags, extension=extension,
909 doTrackingSiPattern=not(isPrimaryPass and
910 flags.Beam.Type is BeamType.Cosmics),
911 InputCombinedInDetTracks=InputCombinedInDetTracks,
912 InputExtendedInDetTracks=InputExtendedInDetTracks,
913 StatTrackCollections=StatTrackCollections,
914 StatTrackTruthCollections=StatTrackTruthCollections,
915 ClusterSplitProbContainer=ClusterSplitProbContainer)
916 result.merge(acc)
917
918
919
920
921
922 if isPrimaryPass:
923
924
925
926
927
928 if flags.Tracking.doTRTSegments:
929 from InDetConfig.TRTSegmentFindingConfig import (
930 TRTSegmentFindingCfg)
931 result.merge(TRTSegmentFindingCfg(
932 current_flags,
933 InputCollections=InputCombinedInDetTracks))
934
935
936
937
938
939 if flags.Tracking.doBackTracking:
940 acc, ClusterSplitProbContainer = BackTrackingRecoCfg(
941 current_flags,
942 InputCombinedInDetTracks=InputCombinedInDetTracks,
943 InputExtendedInDetTracks=InputExtendedInDetTracks,
944 StatTrackCollections=StatTrackCollections,
945 StatTrackTruthCollections=StatTrackTruthCollections,
946 ClusterSplitProbContainer=ClusterSplitProbContainer)
947 result.merge(acc)
948
949
950
951
952
953 if (flags.Tracking.doTruth and
954 (flags.Tracking.doPseudoTracking or
955 flags.Tracking.doIdealPseudoTracking)):
956
957 from TrkConfig.TrkTruthTrackAlgsConfig import TruthTrackingCfg
958 result.merge(TruthTrackingCfg(current_flags))
959
960 isPrimaryPass = False
961
962
963
964
965
966 result.merge(
967 TrackFinalCfg(flags,
968 InputCombinedInDetTracks=InputCombinedInDetTracks,
969 StatTrackCollections=StatTrackCollections,
970 StatTrackTruthCollections=StatTrackTruthCollections))
971
972 if (flags.Tracking.doPseudoTracking or
973 flags.Tracking.doIdealPseudoTracking):
974 result.merge(PseudoTrackFinalCfg(flags))
975
976 if flags.Tracking.doTIDE_AmbiTrackMonitoring:
977 result.merge(ObserverTrackFinalCfg(flags))
978
979 if flags.Tracking.doStoreTrackSeeds:
980 result.merge(TrackSeedsFinalCfg(flags))
981
982 if flags.Tracking.doStoreSiSPSeededTracks:
983 result.merge(SiSPSeededTracksFinalCfg(flags))
984
985
986
987
988
989 if flags.Tracking.doVertexFinding:
990 from InDetConfig.InDetPriVxFinderConfig import primaryVertexFindingCfg
991 result.merge(primaryVertexFindingCfg(flags))
992
993 if flags.Tracking.doStats:
994 result.merge(InDetStatsCfg(
995 flags_set[0],
996 StatTrackCollections=StatTrackCollections,
997 StatTrackTruthCollections=StatTrackTruthCollections))
998
999
1000
1001
1002
1003 if flags.Tracking.doV0Finder:
1004 from InDetConfig.InDetV0FinderConfig import InDetV0FinderCfg
1005 result.merge(InDetV0FinderCfg(flags))
1006
1007 if (flags.Tracking.writeExtendedSi_PRDInfo or
1008 flags.Tracking.writeExtendedTRT_PRDInfo):
1009 result.merge(ExtendedPRDInfoCfg(flags))
1010
1011
1012 from InDetConfig.InDetTrackOutputConfig import InDetTrackRecoOutputCfg
1013 result.merge(InDetTrackRecoOutputCfg(flags, _extensions_list))
1014
1015 return result
1016
1017
1018