509def ITkTrackRecoCfg(flags) -> ComponentAccumulator:
510 """Configures complete ITk tracking """
511
512 from InDetConfig.ITkActsHelpers import primaryPassUsesActs
513 if primaryPassUsesActs(flags):
514 from InDetConfig.ITkActsTrackRecoConfig import ITkActsTrackRecoCfg
515 return ITkActsTrackRecoCfg(flags)
516
517 result = ComponentAccumulator()
518
519 if flags.Input.Format is Format.BS:
520 if flags.Detector.EnableITkPixel:
521 from ITkPixelByteStreamCnv.ITkPixelByteStreamCnvConfig import ITkPixelDecodingAlgCfg
522 result.merge( ITkPixelDecodingAlgCfg(flags) )
523
524 if flags.Detector.EnableITkStrip:
525 from ITkStripsByteStreamCnv.ITkStripByteStreamCnvConfig import ITkStripRawDataProviderCfg
526 result.merge(ITkStripRawDataProviderCfg(flags))
527
528
529
530
531 flags_set = CombinedTrackingPassFlagSets(flags, resetCache=True)
532
533
534
535
536
537 InputCombinedITkTracks = []
538
539 InputCombinedActsTracks = []
540
541 InputExtendedITkTracks = []
542
543 ClusterSplitProbContainer = ""
544
545 StatTrackCollections = []
546 StatTrackTruthCollections = []
547
548 previousActsExtension = None
549
550 from InDetConfig.SiliconPreProcessing import ITkRecPreProcessingSiliconCfg
551
552 for current_flags in flags_set:
553 printActiveConfig(current_flags)
554
555
556 extension = current_flags.Tracking.ActiveConfig.extension
557 if extension not in _actsExtensions:
558 _extensions_list.append(extension)
559
560
561 _outputExtensions.append(extension)
562
563
564
565
566
567
568
569 result.merge(ITkRecPreProcessingSiliconCfg(current_flags,
570 previousActsExtension=previousActsExtension))
571
572
573
574
575
576
577
578
579 acc, ClusterSplitProbContainer = ITkTrackRecoPassCfg(
580 current_flags,
581 previousActsExtension,
582 InputCombinedITkTracks=InputCombinedITkTracks,
583 InputCombinedActsTracks=InputCombinedActsTracks,
584 InputExtendedITkTracks=InputExtendedITkTracks,
585 StatTrackCollections=StatTrackCollections,
586 StatTrackTruthCollections=StatTrackTruthCollections,
587 ClusterSplitProbContainer=ClusterSplitProbContainer)
588 result.merge(acc)
589
590
591 if 'Acts' in extension:
592 previousActsExtension = extension
593
594
595
596 if InputCombinedITkTracks:
597
598 result.merge(
599 ITkTrackFinalCfg(flags,
600 InputCombinedITkTracks=InputCombinedITkTracks,
601 StatTrackCollections=StatTrackCollections,
602 StatTrackTruthCollections=StatTrackTruthCollections))
603
604
605
606
607
608 if InputCombinedActsTracks:
609
610
611
612
613
614 ActsTrackContainerName = "InDetTrackParticles" if not InputCombinedITkTracks else "InDetActsTrackParticles"
615 ActsPrimaryVertices = "PrimaryVertices" if not InputCombinedITkTracks else "ActsPrimaryVertices"
616
617 result.merge(ITkActsTrackFinalCfg(flags,
618 InputCombinedITkTracks=InputCombinedActsTracks,
619 ActsTrackContainerName=ActsTrackContainerName))
620
621
622 if flags.Tracking.doVertexFinding:
623
624 from InDetConfig.InDetPriVxFinderConfig import primaryVertexFindingCfg
625
626
627
628 if InputCombinedITkTracks:
629 result.merge(primaryVertexFindingCfg(flags))
630
631
632
633
634
635 if InputCombinedActsTracks:
636 result.merge(primaryVertexFindingCfg(flags,
637 name="ActsPriVxFinderAlg",
638 TracksName=ActsTrackContainerName,
639 vxCandidatesOutputName=ActsPrimaryVertices))
640
641
642
643 print(
"-------- POST PROCESSING --------")
644 for current_flags in flags_set:
645 extension = current_flags.Tracking.ActiveConfig.extension
646 print(f
"- Running post-processing for extension: {extension}")
647
648
649
650
651
652
653
654
655
656
657
658
659 if current_flags.Tracking.ActiveConfig.doAthenaTrack:
660 if current_flags.Tracking.doStoreTrackSeeds:
661 from InDetConfig.ITkPersistificationConfig import ITkTrackSeedsFinalCfg
662 result.merge(ITkTrackSeedsFinalCfg(current_flags))
663
664
665
666
667
668
669
670 if current_flags.Tracking.ActiveConfig.doAthenaTrack or current_flags.Tracking.ActiveConfig.doActsToAthenaTrack:
671 if current_flags.Tracking.doStoreSiSPSeededTracks:
672 from InDetConfig.ITkPersistificationConfig import ITkSiSPSeededTracksFinalCfg
673 result.merge(ITkSiSPSeededTracksFinalCfg(current_flags))
674
675 if flags.Tracking.doStats:
676 if _extensions_list:
677 result.merge(ITkStatsCfg(
678 flags_set[0],
679 StatTrackCollections=StatTrackCollections,
680 StatTrackTruthCollections=StatTrackTruthCollections))
681
682
683
684 if flags.Tracking.writeExtendedSi_PRDInfo:
685 if _extensions_list:
686 result.merge(ITkExtendedPRDInfoCfg(flags))
687
688
689 else:
690 result.merge(ITkActsExtendedPRDInfoCfg(flags))
691
692
693 from InDetConfig.ITkTrackOutputConfig import ITkTrackRecoOutputCfg
694 result.merge(ITkTrackRecoOutputCfg(flags, _outputExtensions))
695 result.printConfig(withDetails = False, summariseProps = False)
696 return result
697
698
void print(char *figname, TCanvas *c1)