973 def create_optimisation_and_validation_path(self):
974 """
975 Create a path to validate the trained filters.
976 """
977 path = basf2.create_path()
978
979
980 file_list = [fname for fname in self.get_all_input_file_names()
981 if "generated_mc_N" in fname and "optimisation" in fname and fname.endswith(".root")]
982 path.add_module("RootInput", inputFileNames=file_list)
983
984 path.add_module("Gearbox")
985 path.add_module("Geometry")
986 path.add_module("SetupGenfitExtrapolation")
987
988 add_hit_preparation_modules(path, components=["SVD", "PXD"])
989
990 add_track_finding(path, reco_tracks="CDCSVDRecoTracks", components=["CDC", "SVD"], prune_temporary_tracks=False)
991
992 path.add_module("DAFRecoFitter", recoTracksStoreArrayName="CDCSVDRecoTracks")
993
994 fbdt_state_filter_string = create_fbdt_option_string(self.fast_bdt_option_state_filter)
995 fbdt_result_filter_string = create_fbdt_option_string(self.fast_bdt_option_result_filter)
996
997
998 iov = [0, 0, 0, -1]
1000 f"trk_ToPXDStateFilter_1_Parameter{fbdt_state_filter_string}",
1001 iov,
1002 f"trk_ToPXDStateFilter_1{fbdt_state_filter_string}",
1003 self.state_filter_cut)
1004
1006 f"trk_ToPXDStateFilter_2_Parameter{fbdt_state_filter_string}",
1007 iov,
1008 f"trk_ToPXDStateFilter_2{fbdt_state_filter_string}",
1009 self.state_filter_cut)
1010
1012 f"trk_ToPXDStateFilter_3_Parameter{fbdt_state_filter_string}",
1013 iov,
1014 f"trk_ToPXDStateFilter_3{fbdt_state_filter_string}",
1015 self.state_filter_cut)
1016
1018 f"trk_ToPXDResultFilter_Parameter{fbdt_result_filter_string}",
1019 iov,
1020 f"trk_ToPXDResultFilter{fbdt_result_filter_string}",
1021 self.result_filter_cut)
1022
1023 basf2.conditions.prepend_testing_payloads("localdb/database.txt")
1024 first_high_filter_parameters = {"DBPayloadName": f"trk_ToPXDStateFilter_1_Parameter{fbdt_state_filter_string}",
1025 "direction": "backward"}
1026 second_high_filter_parameters = {"DBPayloadName": f"trk_ToPXDStateFilter_2_Parameter{fbdt_state_filter_string}"}
1027 third_high_filter_parameters = {"DBPayloadName": f"trk_ToPXDStateFilter_3_Parameter{fbdt_state_filter_string}"}
1028 filter_parameters = {"DBPayloadName": f"trk_ToPXDResultFilter_Parameter{fbdt_result_filter_string}"}
1029
1030 path.add_module("ToPXDCKF",
1031 inputRecoTrackStoreArrayName="CDCSVDRecoTracks",
1032 outputRecoTrackStoreArrayName="PXDRecoTracks",
1033 outputRelationRecoTrackStoreArrayName="CDCSVDRecoTracks",
1034
1035 relationCheckForDirection="backward",
1036 reverseSeed=False,
1037 writeOutDirection="backward",
1038
1039 firstHighFilter="mva_with_direction_check",
1040 firstHighFilterParameters=first_high_filter_parameters,
1041 firstHighUseNStates=self.use_n_best_states,
1042
1043 advanceHighFilter="advance",
1044 advanceHighFilterParameters={"direction": "backward"},
1045
1046 secondHighFilter="mva",
1047 secondHighFilterParameters=second_high_filter_parameters,
1048 secondHighUseNStates=self.use_n_best_states,
1049
1050 updateHighFilter="fit",
1051
1052 thirdHighFilter="mva",
1053 thirdHighFilterParameters=third_high_filter_parameters,
1054 thirdHighUseNStates=self.use_n_best_states,
1055
1056 filter="mva",
1057 filterParameters=filter_parameters,
1058 useBestNInSeed=self.use_n_best_results,
1059
1060 exportTracks=True,
1061 enableOverlapResolving=True)
1062
1063 path.add_module('RelatedTracksCombiner',
1064 VXDRecoTracksStoreArrayName="PXDRecoTracks",
1065 CDCRecoTracksStoreArrayName="CDCSVDRecoTracks",
1066 recoTracksStoreArrayName="RecoTracks")
1067
1068 path.add_module('TrackFinderMCTruthRecoTracks',
1069 RecoTracksStoreArrayName="MCRecoTracks",
1070 WhichParticles=[],
1071 UsePXDHits=True,
1072 UseSVDHits=True,
1073 UseCDCHits=True)
1074
1075 path.add_module("MCRecoTracksMatcher", UsePXDHits=True, UseSVDHits=True, UseCDCHits=True,
1076 mcRecoTracksStoreArrayName="MCRecoTracks",
1077 prRecoTracksStoreArrayName="RecoTracks")
1078
1079 path.add_module(
1080 CombinedTrackingValidationModule(
1081 output_file_name=self.get_output_file_name(
1082 f"to_pxd_ckf_validation{fbdt_state_filter_string}{fbdt_result_filter_string}.root"),
1083 reco_tracks_name="RecoTracks",
1084 mc_reco_tracks_name="MCRecoTracks",
1085 name="",
1086 contact="",
1087 expert_level=200))
1088
1089 return path
1090