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