13 if _flags_set
and not resetCache:
19 flags = flags.cloneAndReplace(
20 "Tracking.ActiveConfig",
21 f
"Tracking.{flags.Tracking.PrimaryPassConfig.value}Pass",
28 if flags.Tracking.doLargeD0
or flags.Tracking.doLowPtLargeD0:
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")
37 flags_set += [flagsLRT]
40 if flags.Tracking.doLowPtRoI:
41 flagsLowPtRoI = flags.cloneAndReplace(
"Tracking.ActiveConfig",
42 "Tracking.LowPtRoIPass")
43 flags_set += [flagsLowPtRoI]
46 if flags.Tracking.doLowPt:
47 flagsLowPt = flags.cloneAndReplace(
"Tracking.ActiveConfig",
49 flags_set += [flagsLowPt]
52 if flags.Tracking.doVeryLowPt:
53 flagsVeryLowPt = flags.cloneAndReplace(
"Tracking.ActiveConfig",
54 "Tracking.VeryLowPtPass")
55 flags_set += [flagsVeryLowPt]
58 if flags.Tracking.doTRTStandalone:
59 flagsTRTStandalone = flags.cloneAndReplace(
"Tracking.ActiveConfig",
60 "Tracking.TRTStandalonePass")
61 flags_set += [flagsTRTStandalone]
64 if flags.Tracking.doForwardTracks:
65 flagsForward = flags.cloneAndReplace(
"Tracking.ActiveConfig",
66 "Tracking.ForwardPass")
67 flags_set += [flagsForward]
70 if flags.Tracking.doTrackSegmentsDisappearing:
71 flagsDisappearing = flags.cloneAndReplace(
"Tracking.ActiveConfig",
72 "Tracking.DisappearingPass")
73 flags_set += [flagsDisappearing]
76 if flags.Tracking.doBeamGas:
77 flagsBeamGas = flags.cloneAndReplace(
"Tracking.ActiveConfig",
78 "Tracking.BeamGasPass")
79 flags_set += [flagsBeamGas]
81 _flags_set = flags_set
110 result = ComponentAccumulator()
112 from InDetConfig.TrackingSiPatternConfig
import TrackingSiPatternCfg
113 result.merge(TrackingSiPatternCfg(
116 ResolvedTrackCollectionKey=
"ResolvedTracks",
117 SiSPSeededTrackCollectionKey=
"SiSPSeededTracks"))
119 if flags.Detector.EnableTRT:
120 from InDetConfig.TRTExtensionConfig
import NewTrackingTRTExtensionPhaseCfg
121 result.merge(NewTrackingTRTExtensionPhaseCfg(
123 SiTrackCollection=
"ResolvedTracks",
124 ExtendedTrackCollection=
"ExtendedTracksPhase",
125 ExtendedTracksMap=
"ExtendedTracksMapPhase"))
127 from InDetConfig.TRTSegmentFindingConfig
import TRTSegmentFinding_Phase_Cfg
128 result.merge(TRTSegmentFinding_Phase_Cfg(flags))
130 from InDetConfig.InDetTrackPRD_AssociationConfig
import (
131 InDetTrackPRD_AssociationCfg)
132 result.merge(InDetTrackPRD_AssociationCfg(
133 flags, name=
'InDetTRTonly_TrackPRD_AssociationPhase',
134 AssociationMapName=
'InDetTRTonly_PRDtoTrackMapPhase',
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"))
144 from InDetConfig.InDetCosmicsEventPhaseConfig
import (
145 InDetCosmicsEventPhaseCfg)
146 result.merge(InDetCosmicsEventPhaseCfg(
148 InputTracksNames=[
"TRT_Tracks_Phase"]))
150 from InDetConfig.InDetPrepRawDataFormationConfig
import (
151 InDetTRT_Phase_RIO_MakerCfg)
152 result.merge(InDetTRT_Phase_RIO_MakerCfg(flags))
158 result = ComponentAccumulator()
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))
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))
173 if flags.Detector.EnableTRT:
174 from TRT_RawDataByteStreamCnv.TRT_RawDataByteStreamCnvConfig
import (
175 TRTRawDataProviderCfg)
176 result.merge(TRTRawDataProviderCfg(flags))
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))
203 extensions_list=None,
204 ClusterSplitProbContainer=""):
205 result = ComponentAccumulator()
207 if extensions_list
is None:
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)
216 from InDetConfig.TrackingSiPatternConfig
import TrackingSiPatternCfg
217 result.merge(TrackingSiPatternCfg(
220 ResolvedTrackCollectionKey=TrackContainer,
221 SiSPSeededTrackCollectionKey=f
"SiSPSeeded{detector}Tracks",
222 ClusterSplitProbContainer=ClusterSplitProbContainer))
224 ClusterSplitProbContainer = (
225 "InDetAmbiguityProcessorSplitProb" +
226 flagsDet.Tracking.ActiveConfig.extension)
228 if flags.Tracking.doTruth:
229 from InDetConfig.TrackTruthConfig
import InDetTrackTruthCfg
230 result.merge(InDetTrackTruthCfg(
232 Tracks=TrackContainer,
233 DetailedTruth=TrackContainer+
"DetailedTruth",
234 TracksTruth=TrackContainer+
"TruthCollection"))
236 from xAODTrackingCnv.xAODTrackingCnvConfig
import (
237 TrackParticleCnvAlgPIDCheckCfg)
238 result.merge(TrackParticleCnvAlgPIDCheckCfg(
240 name=TrackContainer+
"CnvAlg",
241 TrackContainerName=TrackContainer,
242 xAODTrackParticlesFromTracksContainerName=(
243 f
"InDet{detector}TrackParticles")))
245 return result, ClusterSplitProbContainer
270 InputCombinedInDetTracks=None,
271 InputExtendedInDetTracks=None,
272 StatTrackCollections=None,
273 StatTrackTruthCollections=None):
274 result = ComponentAccumulator()
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 = []
285 from InDetConfig.TRTStandaloneConfig
import TRTStandaloneCfg
286 result.merge(TRTStandaloneCfg(flags,
287 InputCollections=InputCombinedInDetTracks))
289 TRTTrackContainer =
"TRTStandaloneTracks"
290 InputCombinedInDetTracks += [TRTTrackContainer]
291 InputExtendedInDetTracks += [TRTTrackContainer]
292 StatTrackCollections += [TRTTrackContainer]
293 StatTrackTruthCollections += [TRTTrackContainer+
"TruthCollection"]
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")))
309 ClusterSplitProbContainer=""):
310 result = ComponentAccumulator()
315 AssociationMapName =
""
316 extension = flags.Tracking.ActiveConfig.extension
320 if extension ==
"Disappearing":
321 InputTracks = [TrackContainer]
323 TrackContainer = extension +
"Tracks"
324 MergerOutputTracks = TrackContainer
326 from TrkConfig.TrkTrackCollectionMergerConfig
import (
327 TrackCollectionMergerAlgCfg)
328 result.merge(TrackCollectionMergerAlgCfg(
330 name =
"TrackCollectionMergerAlgCfg" + extension,
331 InputCombinedTracks=InputTracks,
332 OutputCombinedTracks=MergerOutputTracks,
333 AssociationMapName=
"PRDtoTrackMap" + TrackContainer))
335 if flags.Tracking.doTruth:
336 from InDetConfig.TrackTruthConfig
import InDetTrackTruthCfg
337 result.merge(InDetTrackTruthCfg(
339 Tracks=TrackContainer,
340 DetailedTruth=TrackContainer+
"DetailedTruth",
341 TracksTruth=TrackContainer+
"TruthCollection"))
345 xAODTrackParticlesName = (
346 "InDetLargeD0TrackParticles" if "LargeD0" in extension
else
347 "InDet" + extension +
"TrackParticles")
349 from xAODTrackingCnv.xAODTrackingCnvConfig
import (
350 TrackParticleCnvAlgPIDCheckCfg)
351 result.merge(TrackParticleCnvAlgPIDCheckCfg(
353 name = extension +
"TrackParticleCnvAlg",
354 TrackContainerName=TrackContainer,
355 xAODTrackParticlesFromTracksContainerName=xAODTrackParticlesName,
356 ClusterSplitProbabilityName=ClusterSplitProbContainer,
357 AssociationMapName=AssociationMapName))
359 return result, TrackContainer
364 InputCombinedInDetTracks=None,
365 InputExtendedInDetTracks=None,
366 StatTrackCollections=None,
367 StatTrackTruthCollections=None,
368 ClusterSplitProbContainer=""):
369 result = ComponentAccumulator()
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 = []
380 from InDetConfig.BackTrackingConfig
import BackTrackingCfg
381 result.merge(BackTrackingCfg(
383 InputCollections=InputCombinedInDetTracks,
384 ClusterSplitProbContainer=ClusterSplitProbContainer))
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"]
398 return result, ClusterSplitProbContainer
403 doTrackingSiPattern=True,
404 InputCombinedInDetTracks=None,
405 InputExtendedInDetTracks=None,
406 StatTrackCollections=None,
407 StatTrackTruthCollections=None,
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 = []
420 ResolvedTracks =
"Resolved" + extension +
"Tracks"
424 if (doTrackOverlay
and extension ==
'' and
425 flags.Tracking.ActiveConfig.storeSeparateContainer):
426 ResolvedTracks = flags.Overlay.SigPrefix + ResolvedTracks
429 if "LargeD0" in extension:
430 ResolvedTracks =
"ResolvedLargeD0Tracks"
436 if doTrackingSiPattern:
437 SiSPSeededTracks =
"SiSPSeeded" + extension +
"Tracks"
439 from InDetConfig.TrackingSiPatternConfig
import TrackingSiPatternCfg
440 result.merge(TrackingSiPatternCfg(
442 InputCollections=InputExtendedInDetTracks,
443 ResolvedTrackCollectionKey=ResolvedTracks,
444 SiSPSeededTrackCollectionKey=SiSPSeededTracks,
445 ClusterSplitProbContainer=ClusterSplitProbContainer))
446 StatTrackCollections += [SiSPSeededTracks, ResolvedTracks]
447 StatTrackTruthCollections += [SiSPSeededTracks+
"TruthCollection",
448 ResolvedTracks+
"TruthCollection"]
456 TrackContainer = ResolvedTracks
459 SiTracksForTRTExtension = ResolvedTracks
464 if doTrackOverlay
and extension ==
'':
466 from InDetConfig.AddTrackSummaryAlgConfig
import AddTrackSummaryAlgCfg
467 result.merge(AddTrackSummaryAlgCfg(
469 name=
"AddSummaryToPileupTracks",
470 InputTrackCollection=
"Bkg_CombinedInDetTracks",
471 OutputTrackCollection=
"Bkg_CombinedInDetTracksWithSummary",
472 MinPt=flags.Tracking.ActiveConfig.minPT,
476 from TrkConfig.TrkTrackCollectionMergerConfig
import TrackCollectionMergerAlgCfg
477 result.merge(TrackCollectionMergerAlgCfg(
479 name=
"MergeSignalPileupBeforeTRTExtension",
480 InputCombinedTracks=[ResolvedTracks,
"Bkg_CombinedInDetTracksWithSummary"],
481 OutputCombinedTracks=
"MergedSiTracks",
482 AssociationMapName=
"PRDtoTrackMapMergedSiTracks"))
485 SiTracksForTRTExtension =
"MergedSiTracks"
486 TrackContainer =
"MergedSiTracks"
488 elif (doTrackOverlay
and
489 flags.Tracking.ActiveConfig.storeSeparateContainer):
491 TrackContainer = ResolvedTracks
500 if flags.Tracking.ActiveConfig.useTRTExtension:
501 ExtendedTracks =
"Extended" + extension +
"Tracks"
503 if extension ==
"Disappearing":
504 ExtendedTracks =
"ExtendedTracksDisappearing"
505 elif "LargeD0" in extension:
506 ExtendedTracks =
"ExtendedLargeD0Tracks"
508 ExtendedTracksMap =
"ExtendedTracksMap" + extension
509 from InDetConfig.TRTExtensionConfig
import NewTrackingTRTExtensionCfg
510 result.merge(NewTrackingTRTExtensionCfg(
512 SiTrackCollection=SiTracksForTRTExtension,
513 ExtendedTrackCollection=ExtendedTracks,
514 ExtendedTracksMap=ExtendedTracksMap))
516 TrackContainer = ExtendedTracks
517 if doTrackOverlay
and "LargeD0" in extension:
518 TrackContainer =
"ExtendedLargeD0Tracks"
519 StatTrackCollections += [ExtendedTracks]
520 StatTrackTruthCollections += [ExtendedTracks+
"TruthCollection"]
526 if flags.Tracking.ActiveConfig.storeSeparateContainer:
529 TrackContainer=TrackContainer,
530 ClusterSplitProbContainer=ClusterSplitProbContainer)
534 ClusterSplitProbContainer = (
535 "InDetAmbiguityProcessorSplitProb" +
536 flags.Tracking.ActiveConfig.extension)
537 InputCombinedInDetTracks += [TrackContainer]
539 InputExtendedInDetTracks += [TrackContainer]
540 return result, ClusterSplitProbContainer
544 InputCombinedInDetTracks=None,
545 StatTrackCollections=None,
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 = []
555 TrackContainer =
"CombinedInDetTracks"
557 from TrkConfig.TrkTrackCollectionMergerConfig
import (
558 TrackCollectionMergerAlgCfg)
559 result.merge(TrackCollectionMergerAlgCfg(
561 InputCombinedTracks=InputCombinedInDetTracks,
562 OutputCombinedTracks=TrackContainer,
563 AssociationMapName=f
"PRDtoTrackMapMerge_{TrackContainer}"))
565 if flags.Tracking.doTruth:
566 from InDetConfig.TrackTruthConfig
import InDetTrackTruthCfg
567 result.merge(InDetTrackTruthCfg(
569 Tracks=TrackContainer,
570 DetailedTruth=f
"{TrackContainer}DetailedTruth",
571 TracksTruth=f
"{TrackContainer}TruthCollection"))
573 StatTrackCollections += [TrackContainer]
574 StatTrackTruthCollections += [f
"{TrackContainer}TruthCollection"]
576 if flags.Tracking.doSlimming:
577 from TrkConfig.TrkTrackSlimmerConfig
import TrackSlimmerCfg
578 result.merge(TrackSlimmerCfg(
580 TrackLocation=[TrackContainer]))
582 if flags.Tracking.perigeeExpression ==
"BeamLine":
583 from xAODTrackingCnv.xAODTrackingCnvConfig
import TrackParticleCnvAlgCfg
584 result.merge(TrackParticleCnvAlgCfg(
588 AssociationMapName=f
"PRDtoTrackMapMerge_{TrackContainer}"))
704 StatTrackTruthCollections=None):
705 result = ComponentAccumulator()
707 from InDetConfig.InDetRecStatisticsConfig
import (
708 InDetRecStatisticsAlgCfg)
709 result.merge(InDetRecStatisticsAlgCfg(
711 TrackCollectionKeys=StatTrackCollections,
712 TrackTruthCollectionKeys=(
713 StatTrackTruthCollections
if flags.Tracking.doTruth
else [])))
715 if flags.Tracking.doTruth:
716 from InDetConfig.InDetTrackClusterAssValidationConfig
import (
717 InDetTrackClusterAssValidationCfg)
718 result.merge(InDetTrackClusterAssValidationCfg(
720 TracksLocation=StatTrackCollections))
726 result = ComponentAccumulator()
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)
735 from InDetConfig.InDetPrepRawDataToxAODConfig
import (
736 InDetPixelPrepDataToxAODCfg
as PixelPrepDataToxAODCfg,
737 InDetSCT_PrepDataToxAODCfg
as SCT_PrepDataToxAODCfg,
738 InDetTRT_PrepDataToxAODCfg
as TRT_PrepDataToxAODCfg)
740 if flags.Tracking.writeExtendedSi_PRDInfo:
741 result.merge(PixelPrepDataToxAODCfg(
743 ClusterSplitProbabilityName=(
745 result.merge(SCT_PrepDataToxAODCfg(flags))
747 if flags.Tracking.writeExtendedTRT_PRDInfo:
748 result.merge(TRT_PrepDataToxAODCfg(flags))
750 from DerivationFrameworkInDet.InDetToolsConfig
import TSOS_CommonKernelCfg
755 listOfExtensionsRequesting = [
756 e
for e
in _extensions_list
if (e ==
'')
757 or (flags.Tracking[f
"{e}Pass"].storeTrackSeeds)
758 or (flags.Tracking[f
"{e}Pass"].storeSiSPSeededTracks)
759 or (flags.Tracking[f
"{e}Pass"].storeSeparateContainer) ]
760 result.merge(TSOS_CommonKernelCfg(
761 flags, listOfExtensions = listOfExtensionsRequesting))
763 if flags.Tracking.doTIDE_AmbiTrackMonitoring:
764 from DerivationFrameworkInDet.InDetToolsConfig
import (
765 ObserverTSOS_CommonKernelCfg)
766 result.merge(ObserverTSOS_CommonKernelCfg(flags))
768 if flags.Tracking.doPseudoTracking:
769 from DerivationFrameworkInDet.InDetToolsConfig
import (
770 PseudoTSOS_CommonKernelCfg)
771 result.merge(PseudoTSOS_CommonKernelCfg(flags))
773 if flags.Tracking.doStoreTrackSeeds:
774 from DerivationFrameworkInDet.InDetToolsConfig
import (
775 SiSPSeedsTSOS_CommonKernelCfg)
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))
783 if flags.Tracking.doStoreSiSPSeededTracks:
784 from DerivationFrameworkInDet.InDetToolsConfig
import (
785 SiSPTSOS_CommonKernelCfg)
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))
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(
804 name=f
"InDetPhysHit{extension}DecoratorAlg",
805 TrackParticleContainerName=f
"InDet{extension}TrackParticles"))
817 if flags.Detector.GeometryITk:
818 from InDetConfig.ITkTrackRecoConfig
import ITkTrackRecoCfg
819 return ITkTrackRecoCfg(flags)
821 """Configures complete ID tracking """
822 result = ComponentAccumulator()
825 ClusterSplitProbContainer =
''
834 if flags.Tracking.doTrackSegmentsPixel:
835 acc, ClusterSplitProbContainer = (
837 extensions_list=_extensions_list,
838 ClusterSplitProbContainer=ClusterSplitProbContainer))
842 if flags.Tracking.doTrackSegmentsSCT:
843 acc, ClusterSplitProbContainer = (
845 extensions_list=_extensions_list,
846 ClusterSplitProbContainer=ClusterSplitProbContainer))
850 if flags.Tracking.doTrackSegmentsTRT:
856 if flags.Beam.Type
is BeamType.Cosmics:
857 flagsCosmics = flags_set[0]
867 InputCombinedInDetTracks = []
869 InputExtendedInDetTracks = []
870 ClusterSplitProbContainer =
""
871 StatTrackCollections = []
872 StatTrackTruthCollections = []
875 printPrimaryConfig(flags)
877 for current_flags
in flags_set:
878 printActiveConfig(current_flags)
881 "" if isPrimaryPass
else
882 current_flags.Tracking.ActiveConfig.extension)
883 _extensions_list.append(extension)
889 if flags.Tracking.doTRTStandalone
and extension ==
"TRTStandalone":
892 InputCombinedInDetTracks=InputCombinedInDetTracks,
893 InputExtendedInDetTracks=InputExtendedInDetTracks,
894 StatTrackCollections=StatTrackCollections,
895 StatTrackTruthCollections=StatTrackTruthCollections))
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)
924 if flags.Tracking.doTRTSegments:
925 from InDetConfig.TRTSegmentFindingConfig
import (
926 TRTSegmentFindingCfg)
927 result.merge(TRTSegmentFindingCfg(
929 InputCollections=InputCombinedInDetTracks))
935 if flags.Tracking.doBackTracking:
938 InputCombinedInDetTracks=InputCombinedInDetTracks,
939 InputExtendedInDetTracks=InputExtendedInDetTracks,
940 StatTrackCollections=StatTrackCollections,
941 StatTrackTruthCollections=StatTrackTruthCollections,
942 ClusterSplitProbContainer=ClusterSplitProbContainer)
949 if (flags.Tracking.doTruth
and
950 (flags.Tracking.doPseudoTracking
or
951 flags.Tracking.doIdealPseudoTracking)):
953 from TrkConfig.TrkTruthTrackAlgsConfig
import TruthTrackingCfg
954 result.merge(TruthTrackingCfg(current_flags))
956 isPrimaryPass =
False
964 InputCombinedInDetTracks=InputCombinedInDetTracks,
965 StatTrackCollections=StatTrackCollections,
966 StatTrackTruthCollections=StatTrackTruthCollections))
968 if (flags.Tracking.doPseudoTracking
or
969 flags.Tracking.doIdealPseudoTracking):
972 if flags.Tracking.doTIDE_AmbiTrackMonitoring:
975 if flags.Tracking.doStoreTrackSeeds:
978 if flags.Tracking.doStoreSiSPSeededTracks:
985 if flags.Tracking.doVertexFinding:
986 from InDetConfig.InDetPriVxFinderConfig
import primaryVertexFindingCfg
987 result.merge(primaryVertexFindingCfg(flags))
989 if flags.Tracking.doStats:
992 StatTrackCollections=StatTrackCollections,
993 StatTrackTruthCollections=StatTrackTruthCollections))
999 if flags.Tracking.doV0Finder:
1000 from InDetConfig.InDetV0FinderConfig
import InDetV0FinderCfg
1001 result.merge(InDetV0FinderCfg(flags))
1003 if (flags.Tracking.writeExtendedSi_PRDInfo
or
1004 flags.Tracking.writeExtendedTRT_PRDInfo):
1008 from InDetConfig.InDetTrackOutputConfig
import InDetTrackRecoOutputCfg
1009 result.merge(InDetTrackRecoOutputCfg(flags, _extensions_list))
1017 store_config =
False
1020 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
1021 flags = initConfigFlags()
1024 from InDetConfig.ConfigurationHelpers
import OnlyTrackingPreInclude
1025 OnlyTrackingPreInclude(flags)
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
1034 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
1035 top_acc = MainServicesCfg(flags)
1037 if flags.Input.Format
is not Format.BS:
1038 from AthenaPoolCnvSvc.PoolReadConfig
import PoolReadCfg
1039 top_acc.merge(PoolReadCfg(flags))
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))
1046 from CaloRec.CaloTopoClusterConfig
import CaloTopoClusterCfg
1047 top_acc.merge(CaloTopoClusterCfg(flags))
1049 if flags.Input.Format
is not Format.BS:
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))
1056 if flags.Input.isMC:
1057 from xAODTruthCnv.xAODTruthCnvConfig
import GEN_AOD2xAODCfg
1058 top_acc.merge(GEN_AOD2xAODCfg(flags))
1060 if flags.Tracking.doTruth :
1061 from xAODTruthCnv.RedoTruthLinksConfig
import RedoTruthLinksAlgCfg
1062 top_acc.merge( RedoTruthLinksAlgCfg(flags) )
1068 top_acc.foreach_component(
"AthEventSeq/*").OutputLevel = DEBUG
1069 top_acc.printConfig(withDetails=
True, summariseProps=
True)
1070 top_acc.store(open(
"TrackRecoConfig.pkl",
"wb"))
1073 if "--norun" not in sys.argv: