From d066b67e0b823af7cceeb54399a4d64c781dd95b Mon Sep 17 00:00:00 2001 From: Frederic Julian Linz <f.linz@gsi.de> Date: Mon, 17 Jul 2023 09:35:02 +0000 Subject: [PATCH] AT Converter: Bugfix to prevent a crash when no link to MC is present --- .../analysis_tree_converter/CbmRecEventHeaderConverter.cxx | 3 ++- .../analysis_tree_converter/CbmSimEventHeaderConverter.cxx | 6 +----- .../analysis_tree_converter/CbmSimTracksConverter.cxx | 4 +--- .../analysis_tree_converter/CbmStsTracksConverter.cxx | 2 +- .../common/analysis_tree_converter/CbmTofHitsConverter.cxx | 4 +--- 5 files changed, 6 insertions(+), 13 deletions(-) diff --git a/analysis/common/analysis_tree_converter/CbmRecEventHeaderConverter.cxx b/analysis/common/analysis_tree_converter/CbmRecEventHeaderConverter.cxx index 890c382137..efe6df5e84 100644 --- a/analysis/common/analysis_tree_converter/CbmRecEventHeaderConverter.cxx +++ b/analysis/common/analysis_tree_converter/CbmRecEventHeaderConverter.cxx @@ -80,7 +80,8 @@ void CbmRecEventHeaderConverter::ProcessData(CbmEvent* event) tStartTS = fTimeSlice->GetStartTime(); - if (event->GetMatch()) match_weight = float(event->GetMatch()->GetMatchedLink().GetWeight()); + if (event->GetMatch() && event->GetMatch()->GetNofLinks() > 0) + match_weight = float(event->GetMatch()->GetMatchedLink().GetWeight()); else match_weight = 0.; } diff --git a/analysis/common/analysis_tree_converter/CbmSimEventHeaderConverter.cxx b/analysis/common/analysis_tree_converter/CbmSimEventHeaderConverter.cxx index cf8120b2c7..497adf858e 100644 --- a/analysis/common/analysis_tree_converter/CbmSimEventHeaderConverter.cxx +++ b/analysis/common/analysis_tree_converter/CbmSimEventHeaderConverter.cxx @@ -59,11 +59,7 @@ void CbmSimEventHeaderConverter::ProcessData(CbmEvent* event) FairMCEventHeader* cbm_header {nullptr}; int file_id {0}, event_id {0}; - if (event) { - if (!event->GetMatch()) { - LOG(error) << "No match to SimEvent!"; - return; - } + if (event && event->GetMatch() && event->GetMatch()->GetNofLinks() > 0) { const auto& link = event->GetMatch()->GetMatchedLink(); file_id = event->GetMatch()->GetMatchedLink().GetFile(); event_id = event->GetMatch()->GetMatchedLink().GetEntry(); diff --git a/analysis/common/analysis_tree_converter/CbmSimTracksConverter.cxx b/analysis/common/analysis_tree_converter/CbmSimTracksConverter.cxx index 9d130fa479..bd8d4677e0 100644 --- a/analysis/common/analysis_tree_converter/CbmSimTracksConverter.cxx +++ b/analysis/common/analysis_tree_converter/CbmSimTracksConverter.cxx @@ -108,9 +108,7 @@ void CbmSimTracksConverter::ProcessData(CbmEvent* event) const auto& branch = out_config_->GetBranchConfig(out_branch_); int file_id {0}, event_id {0}; - if (event) { - auto match = event->GetMatch(); - if (!match) return; + if (event && event->GetMatch() && event->GetMatch()->GetNofLinks() > 0) { file_id = event->GetMatch()->GetMatchedLink().GetFile(); event_id = event->GetMatch()->GetMatchedLink().GetEntry(); } diff --git a/analysis/common/analysis_tree_converter/CbmStsTracksConverter.cxx b/analysis/common/analysis_tree_converter/CbmStsTracksConverter.cxx index 6f7a3f180a..580d08a722 100644 --- a/analysis/common/analysis_tree_converter/CbmStsTracksConverter.cxx +++ b/analysis/common/analysis_tree_converter/CbmStsTracksConverter.cxx @@ -246,7 +246,7 @@ void CbmStsTracksConverter::MapTracks(CbmEvent* event) CbmTrackMatchNew* match {nullptr}; int file_id {0}, event_id {0}; - if (event) { + if (event && event->GetMatch()->GetNofLinks() > 0) { file_id = event->GetMatch()->GetMatchedLink().GetFile(); event_id = event->GetMatch()->GetMatchedLink().GetEntry(); } diff --git a/analysis/common/analysis_tree_converter/CbmTofHitsConverter.cxx b/analysis/common/analysis_tree_converter/CbmTofHitsConverter.cxx index 8169f29309..c93648cedc 100644 --- a/analysis/common/analysis_tree_converter/CbmTofHitsConverter.cxx +++ b/analysis/common/analysis_tree_converter/CbmTofHitsConverter.cxx @@ -85,9 +85,7 @@ void CbmTofHitsConverter::ProcessData(CbmEvent* event) auto sim_tracks_map = GetMatchMap(mc_tracks_); int file_id {0}, event_id {0}; - if (event) { - auto match = event->GetMatch(); - if (!match) return; + if (event && event->GetMatch() && event->GetMatch()->GetNofLinks() > 0) { file_id = event->GetMatch()->GetMatchedLink().GetFile(); event_id = event->GetMatch()->GetMatchedLink().GetEntry(); } -- GitLab