642 def create_optimisation_and_validation_path(self):
643 """
644 Create a path to validate the trained filters.
645 """
646 path = basf2.create_path()
647
648
649 file_list = [fname for fname in self.get_all_input_file_names()
650 if "generated_mc_N" in fname and "optimisation" in fname and fname.endswith(".root")]
651 path.add_module("RootInput", inputFileNames=file_list)
652
653 path.add_module("Gearbox")
654 path.add_module("Geometry")
655 path.add_module("SetupGenfitExtrapolation")
656
657 add_hit_preparation_modules(path, components=["SVD"])
658
659 cdc_reco_tracks = "CDCRecoTracks"
660 svd_reco_tracks = "SVDRecoTracks"
661 reco_tracks = "RecoTracks"
662 mc_reco_tracks = "MCRecoTracks"
663
664
665 add_cdc_track_finding(path, output_reco_tracks=cdc_reco_tracks)
666
667 path.add_module("DAFRecoFitter", recoTracksStoreArrayName=cdc_reco_tracks)
668
669
670 add_svd_standalone_tracking(path, reco_tracks=svd_reco_tracks)
671
672 direction = "backward"
673 fbdt_string = create_fbdt_option_string(self.fast_bdt_option)
674
675
676 iov = [0, 0, 0, -1]
678 f"trk_CDCToSVDSeedResultFilterParameter{fbdt_string}",
679 iov,
680 f"trk_CDCToSVDSeedResultFilter{fbdt_string}",
681 self.result_filter_cut)
682
683 basf2.conditions.prepend_testing_payloads("localdb/database.txt")
684 result_filter_parameters = {"DBPayloadName": f"trk_CDCToSVDSeedResultFilterParameter{fbdt_string}"}
685
686 path.add_module(
687 "CDCToSVDSeedCKF",
688 inputRecoTrackStoreArrayName=cdc_reco_tracks,
689 fromRelationStoreArrayName=cdc_reco_tracks,
690 toRelationStoreArrayName=svd_reco_tracks,
691 relatedRecoTrackStoreArrayName=svd_reco_tracks,
692 cdcTracksStoreArrayName=cdc_reco_tracks,
693 vxdTracksStoreArrayName=svd_reco_tracks,
694 relationCheckForDirection=direction,
695 reverseSeed=False,
696 firstHighFilterParameters={
697 "direction": direction},
698 advanceHighFilterParameters={
699 "direction": direction},
700 writeOutDirection=direction,
701 endEarly=False,
702 filter='mva_with_relations',
703 filterParameters=result_filter_parameters
704 )
705
706 path.add_module('RelatedTracksCombiner',
707 VXDRecoTracksStoreArrayName=svd_reco_tracks,
708 CDCRecoTracksStoreArrayName=cdc_reco_tracks,
709 recoTracksStoreArrayName=reco_tracks)
710
711 path.add_module('TrackFinderMCTruthRecoTracks',
712 RecoTracksStoreArrayName=mc_reco_tracks,
713 WhichParticles=[],
714 UsePXDHits=True,
715 UseSVDHits=True,
716 UseCDCHits=True)
717
718 path.add_module("MCRecoTracksMatcher", UsePXDHits=False, UseSVDHits=True, UseCDCHits=True,
719 mcRecoTracksStoreArrayName=mc_reco_tracks,
720 prRecoTracksStoreArrayName=reco_tracks)
721
722 path.add_module(
723 CombinedTrackingValidationModule(
724 output_file_name=self.get_output_file_name(
725 f"cdc_svd_merger_ckf_validation{fbdt_string}{self.result_filter_cut}.root"),
726 reco_tracks_name=reco_tracks,
727 mc_reco_tracks_name=mc_reco_tracks,
728 name="",
729 contact="",
730 expert_level=200))
731
732 return path
733