From 2d11c5b077bb2c0818dd78256acb3e66e495e1d6 Mon Sep 17 00:00:00 2001 From: Volker Friese <v.friese@gsi.de> Date: Thu, 29 Apr 2021 20:19:32 +0200 Subject: [PATCH] Restored primary vertex branch in event-based reconstruction. Refs #2096. --- reco/global/CbmFindPrimaryVertex.cxx | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/reco/global/CbmFindPrimaryVertex.cxx b/reco/global/CbmFindPrimaryVertex.cxx index e882246617..caf43ebea2 100644 --- a/reco/global/CbmFindPrimaryVertex.cxx +++ b/reco/global/CbmFindPrimaryVertex.cxx @@ -107,10 +107,14 @@ InitStatus CbmFindPrimaryVertex::Init() } // Create and register CbmVertex object - if (!fEvents) { - fPrimVert = new CbmVertex("Primary Vertex", "Global"); - ioman->Register("PrimaryVertex.", "Global", fPrimVert, IsOutputBranchPersistent("PrimaryVertex")); - } + // if (!fEvents) { + // TODO: This is here for legacy, since many analysis tasks use the vertex branch instead + // of retrieving the vertex from the event object. It shall be removed after the all analysis tasks + // are adjusted. Neither in event-based nor in time-based reconstruction a branch with a single + // vertex object makes sense. + fPrimVert = new CbmVertex("Primary Vertex", "Global"); + ioman->Register("PrimaryVertex.", "Global", fPrimVert, IsOutputBranchPersistent("PrimaryVertex")); + // } // Call the Init method of the vertex finder fFinder->Init(); @@ -142,6 +146,7 @@ void CbmFindPrimaryVertex::Exec(Option_t*) // Event-based mode else { + fPrimVert->Reset(); // TODO: Legacy nEvents = fEvents->GetEntriesFast(); for (Int_t iEvent = 0; iEvent < nEvents; iEvent++) { CbmEvent* event = dynamic_cast<CbmEvent*>(fEvents->At(iEvent)); @@ -149,6 +154,9 @@ void CbmFindPrimaryVertex::Exec(Option_t*) result = fFinder->FindEventVertex(event, fTracks); LOG(debug) << GetName() << ": Event " << iEvent << " " << event->GetVertex()->ToString(); nTracksUsed += result; + + // Legacy: copy event vertex object to event branch + if (iEvent == 0) *fPrimVert = *(event->GetVertex()); } } -- GitLab