From fca769507e6c92c19e23ba83666de662d740806d Mon Sep 17 00:00:00 2001 From: Oleksii Lubynets <lubynets@lxbk0200.gsi.de> Date: Sun, 13 Sep 2020 20:19:45 +0200 Subject: [PATCH] add PV from reco to CbmKFPF --- reco/KF/CbmKFParticleFinder.cxx | 12 ++++++++++-- reco/KF/CbmKFParticleFinder.h | 3 +++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/reco/KF/CbmKFParticleFinder.cxx b/reco/KF/CbmKFParticleFinder.cxx index e3b2150b05..a65f3c9a6e 100644 --- a/reco/KF/CbmKFParticleFinder.cxx +++ b/reco/KF/CbmKFParticleFinder.cxx @@ -37,7 +37,7 @@ CbmKFParticleFinder::CbmKFParticleFinder(const char* name, Int_t iVerbose) , fTrackArray(0) , fEvents(0) , fTopoReconstructor(0) - , fPVFindMode(2) + , fPVFindMode(3) , fPID(0) , fSuperEventAnalysis(0) , fSETracks(0) @@ -116,6 +116,8 @@ InitStatus CbmKFParticleFinder::Init() { } } } + + fCbmPrimVertex = (CbmVertex*) ioman->GetObject("PrimaryVertex."); return kSUCCESS; } @@ -255,6 +257,12 @@ void CbmKFParticleFinder::Exec(Option_t* /*opt*/) { kfVertex.GetRefY() = mcpv[1]; kfVertex.GetRefZ() = mcpv[2]; } + + if(fPVFindMode==3) { + kfVertex.GetRefX() = fCbmPrimVertex->GetX(); + kfVertex.GetRefY() = fCbmPrimVertex->GetY(); + kfVertex.GetRefZ() = fCbmPrimVertex->GetZ(); + } vector<L1FieldRegion> vField, vFieldAtLastPoint; fitter.Fit(vRTracks, pdg); @@ -319,7 +327,7 @@ void CbmKFParticleFinder::Exec(Option_t* /*opt*/) { eventTopoReconstructor[iEvent].Init(tracks, tracksAtLastPoint); - if (fPVFindMode == 0) { + if (fPVFindMode == 0 || fPVFindMode == 3) { KFPVertex primVtx_tmp; primVtx_tmp.SetXYZ( kfVertex.GetRefX(), kfVertex.GetRefY(), kfVertex.GetRefZ()); diff --git a/reco/KF/CbmKFParticleFinder.h b/reco/KF/CbmKFParticleFinder.h index 12ddcfa4b2..4687b616b3 100644 --- a/reco/KF/CbmKFParticleFinder.h +++ b/reco/KF/CbmKFParticleFinder.h @@ -17,6 +17,7 @@ class KFParticleFinder; class KFPTrackVector; class CbmMCEventList; class CbmMCDataArray; +class CbmVertex; struct KFFieldVector { float fField[10]; @@ -32,6 +33,7 @@ public: void UseMCPV() { fPVFindMode = 0; } void ReconstructSinglePV() { fPVFindMode = 1; } void RconstructMultiplePV() { fPVFindMode = 2; } + void UseReconstructedPV() { fPVFindMode = 3; } void SetStsTrackBranchName(const TString& name) { fStsTrackBranchName = name; @@ -104,6 +106,7 @@ private: CbmMCDataArray* fMCTrackArray; //mc tracks in timeslices TClonesArray* fMCTrackArrayEvent; //mc tracks in event-by-event mode CbmMCEventList* fEventList; //mc event list in timeslice + CbmVertex* fCbmPrimVertex; //mc primary vertex //topology reconstructor KFParticleTopoReconstructor* fTopoReconstructor; -- GitLab