diff --git a/external/InstallKFParticle.cmake b/external/InstallKFParticle.cmake index 90776544978ee52d6f2dc5ddc37b20e85580b714..c1441c8cecb8ab7484c0264ed073d317655b12c3 100644 --- a/external/InstallKFParticle.cmake +++ b/external/InstallKFParticle.cmake @@ -6,7 +6,7 @@ set(KFPARTICLE_DESTDIR "${CMAKE_BINARY_DIR}/external/KFPARTICLE-prefix") # GIT_TAG is a hash for KFParticle tag cbm/v1.1-1 download_project_if_needed(PROJECT kfparticle_source GIT_REPOSITORY ${KFPARTICLE_SRC_URL} - GIT_TAG "1eddb796b01d91ac7faf020e3b616556c28da4d0" + GIT_TAG "1e1c5dee0e2bd98a3df677beb88e497fbef92504" SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/KFParticle TEST_FILE CMakeLists.txt ) diff --git a/reco/KF/CbmKF.cxx b/reco/KF/CbmKF.cxx index 14b5a66e5706a86021a020b6798e0c8908560d0a..2d0934809543e2fb2971bc51974ea8b28c81f5d1 100644 --- a/reco/KF/CbmKF.cxx +++ b/reco/KF/CbmKF.cxx @@ -278,6 +278,10 @@ void CbmKF::GetTargetInfo() target.y = global[1]; target.z = global[2]; + fTargetXYZ[0] = target.x; + fTargetXYZ[1] = target.y; + fTargetXYZ[2] = target.z; + if (fVerbose) { cout << "KALMAN FILTER : === READ TARGET MATERIAL ===" << endl; cout << " found targed \"" << targetPath << "\" at ( " << target.x << " " << target.y << " " << target.z << " ) " @@ -310,6 +314,8 @@ void CbmKF::GetTargetInfo() LOG(info) << "Target info: " << target.KFInfo(); } +std::array<double, 3> CbmKF::GetTargetPosition() { return fTargetXYZ; } + void CbmKF::FindTargetNode(TString& targetPath, TGeoNode*& targetNode) { if (!targetNode) { // init at the top of the tree diff --git a/reco/KF/CbmKF.h b/reco/KF/CbmKF.h index c28d7b9981a8123e2bf1792c20e5376409871a33..2169aeae0a886590aed9d0f7a08952aaabdfea07 100644 --- a/reco/KF/CbmKF.h +++ b/reco/KF/CbmKF.h @@ -91,6 +91,8 @@ public: int GetNMvdStations() const { return CbmKF::Instance()->vMvdMaterial.size(); } + std::array<double, 3> GetTargetPosition(); + private: static CbmKF* fInstance; @@ -108,8 +110,12 @@ private: CbmKFMaterial* ReadPassive(FairGeoNode* node); void GetTargetInfo(); + void FindTargetNode(TString& targetPath, TGeoNode*& targetNode); + std::array<double, 3> fTargetXYZ; + + private: CbmKF(const CbmKF&); void operator=(const CbmKF&); diff --git a/reco/KF/CbmKFParticleFinder.cxx b/reco/KF/CbmKFParticleFinder.cxx index 88d7ab49516ca5346e17faec2ed315d8136ab6fa..83718f4f265cbac16d41a2703c94558308ebd160 100644 --- a/reco/KF/CbmKFParticleFinder.cxx +++ b/reco/KF/CbmKFParticleFinder.cxx @@ -579,6 +579,9 @@ void CbmKFParticleFinder::SetSuperEventAnalysis() fTopoReconstructor->SetMixedEventAnalysis(); } + +void CbmKFParticleFinder::SetTarget(const std::array<float, 3>& target) { fTopoReconstructor->SetTarget(target); } + KFParticleFinder* CbmKFParticleFinder::GetKFParticleFinder() { return fTopoReconstructor->GetKFParticleFinder(); } void CbmKFParticleFinder::SetMaxDistanceBetweenParticlesCut(float cut) { diff --git a/reco/KF/CbmKFParticleFinder.h b/reco/KF/CbmKFParticleFinder.h index 0781b846ef682e451e49dc77f06528011c23c416..7cb22c0fe50ec61e1a471366d3ff1e6130b3c569 100644 --- a/reco/KF/CbmKFParticleFinder.h +++ b/reco/KF/CbmKFParticleFinder.h @@ -50,12 +50,15 @@ public: void SetPIDInformation(CbmKFParticleFinderPID* pid) { fPID = pid; } + // set cuts void SetPrimaryProbCut(float prob); // Set SE analysis void SetSuperEventAnalysis(); + void SetTarget(const std::array<float, 3>& target); + //KF Particle Finder cuts void SetMaxDistanceBetweenParticlesCut(float cut); void SetLCut(float cut);