From be5e2321649e1520e1aba670e40bf11a16c1647e Mon Sep 17 00:00:00 2001
From: Frederic Julian Linz <f.linz@gsi.de>
Date: Thu, 24 Oct 2024 13:02:06 +0000
Subject: [PATCH] ATConverter: Get primary vertex from CbmEvent object

---
 .../analysis_tree_converter/CbmRecEventHeaderConverter.cxx  | 6 +++---
 .../analysis_tree_converter/CbmRecEventHeaderConverter.h    | 4 ++--
 .../analysis_tree_converter/CbmStsTracksConverter.cxx       | 4 +++-
 .../common/analysis_tree_converter/CbmStsTracksConverter.h  | 2 +-
 4 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/analysis/common/analysis_tree_converter/CbmRecEventHeaderConverter.cxx b/analysis/common/analysis_tree_converter/CbmRecEventHeaderConverter.cxx
index f7c9a2efd4..e692aa8934 100644
--- a/analysis/common/analysis_tree_converter/CbmRecEventHeaderConverter.cxx
+++ b/analysis/common/analysis_tree_converter/CbmRecEventHeaderConverter.cxx
@@ -25,7 +25,6 @@ void CbmRecEventHeaderConverter::Init()
   auto* ioman = FairRootManager::Instance();
   assert(ioman != nullptr);
   cbm_header_      = (FairMCEventHeader*) ioman->GetObject("MCEventHeader.");
-  cbm_prim_vertex_ = (CbmVertex*) ioman->GetObject("PrimaryVertex.");
   cbm_sts_tracks_  = (TClonesArray*) ioman->GetObject("StsTrack");
   cbm_psd_hits_    = (TClonesArray*) ioman->GetObject("PsdHit");
   fTimeSlice       = static_cast<CbmTimeSlice*>(ioman->GetObject("TimeSlice."));
@@ -62,8 +61,9 @@ void CbmRecEventHeaderConverter::Init()
 void CbmRecEventHeaderConverter::ProcessData(CbmEvent* event)
 {
   if (event) { cbm_prim_vertex_ = event->GetVertex(); }
-
-  if (!cbm_prim_vertex_) { throw std::runtime_error("No fPrimVtx"); }
+  if (!cbm_prim_vertex_) {
+    throw std::runtime_error("No event vertex in CbmEvent");
+  }
 
   rec_event_header_->SetVertexPosition3({cbm_prim_vertex_->GetX(), cbm_prim_vertex_->GetY(), cbm_prim_vertex_->GetZ()});
   rec_event_header_->SetField(float(cbm_prim_vertex_->GetChi2() / cbm_prim_vertex_->GetNDF()), ivtx_chi2_);
diff --git a/analysis/common/analysis_tree_converter/CbmRecEventHeaderConverter.h b/analysis/common/analysis_tree_converter/CbmRecEventHeaderConverter.h
index cc4d053ca7..660023b217 100644
--- a/analysis/common/analysis_tree_converter/CbmRecEventHeaderConverter.h
+++ b/analysis/common/analysis_tree_converter/CbmRecEventHeaderConverter.h
@@ -30,11 +30,11 @@ private:
 
   AnalysisTree::EventHeader* rec_event_header_ {nullptr};
 
-  TClonesArray* cbm_psd_hits_ {nullptr};
+  TClonesArray* cbm_psd_hits_{nullptr};      ///< non-owning pointer
   TClonesArray* cbm_sts_tracks_ {nullptr};   ///< non-owning pointer
   FairMCEventHeader* cbm_header_ {nullptr};  ///< non-owning pointer
   CbmVertex* cbm_prim_vertex_ {nullptr};     ///< non-owning pointer
-  CbmTimeSlice* fTimeSlice {nullptr};
+  CbmTimeSlice* fTimeSlice{nullptr};         ///< non-owning pointer
 
   int ivtx_chi2_ {AnalysisTree::UndefValueInt};
   int iEpsd_ {AnalysisTree::UndefValueInt};
diff --git a/analysis/common/analysis_tree_converter/CbmStsTracksConverter.cxx b/analysis/common/analysis_tree_converter/CbmStsTracksConverter.cxx
index 6a3e4371b2..1c54eaf299 100644
--- a/analysis/common/analysis_tree_converter/CbmStsTracksConverter.cxx
+++ b/analysis/common/analysis_tree_converter/CbmStsTracksConverter.cxx
@@ -49,7 +49,6 @@ void CbmStsTracksConverter::InitInput()
 {
   auto* ioman = FairRootManager::Instance();
 
-  cbm_prim_vertex_ = (CbmVertex*) ioman->GetObject("PrimaryVertex.");
   cbm_sts_tracks_  = (TClonesArray*) ioman->GetObject("StsTrack");
   cbm_sts_match_   = (TClonesArray*) ioman->GetObject("StsTrackMatch");
 
@@ -134,6 +133,9 @@ float CbmStsTracksConverter::ExtrapolateToVertex(CbmStsTrack* sts_track, Analysi
 
 void CbmStsTracksConverter::ReadVertexTracks(CbmEvent* event)
 {
+  if (event) {
+    cbm_prim_vertex_ = event->GetVertex();
+  }
   assert(cbm_prim_vertex_ && cbm_sts_tracks_);
 
   vtx_tracks_->ClearChannels();
diff --git a/analysis/common/analysis_tree_converter/CbmStsTracksConverter.h b/analysis/common/analysis_tree_converter/CbmStsTracksConverter.h
index b28dbe7476..3726ab95dd 100644
--- a/analysis/common/analysis_tree_converter/CbmStsTracksConverter.h
+++ b/analysis/common/analysis_tree_converter/CbmStsTracksConverter.h
@@ -56,7 +56,7 @@ private:
   TClonesArray* cbm_sts_tracks_ {nullptr};  ///< non-owning pointer
   TClonesArray* cbm_sts_match_ {nullptr};   ///< non-owning pointer
 
-  CbmMCDataManager* cbm_mc_manager_ {nullptr};
+  CbmMCDataManager* cbm_mc_manager_{nullptr};  ///< non-owning pointer
 
   bool is_write_kfinfo_ {true};
   bool is_reproduce_cbmkfpf_ {true};
-- 
GitLab