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