From fa38828279935fcdf033f1cb9b99a48ab8a37c35 Mon Sep 17 00:00:00 2001 From: "s.zharko@gsi.de" <s.zharko@gsi.de> Date: Sun, 18 Feb 2024 16:17:46 +0100 Subject: [PATCH] Added KF instance in the mcbm_hadron_anlysis.C macro Previously, the PrimaryVertex branch was not defined, so the CbmHadronAnalysis task didn't collect the related distributions. After one of the previouse commits the PrimaryVertex branch was introduced, and the task was executing the CbmStsKFTrackFitter, which failed. The failure was caused by the undefined CbmKF task instance. This commit introduces the CbmKF task and all other related settings to the macro. --- macro/mcbm/mcbm_hadron_analysis.C | 18 +++++++++++++++++- reco/KF/CbmKFTrackInterface.cxx | 1 - reco/KF/Interface/CbmStsKFTrackFitter.cxx | 7 +++++++ 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/macro/mcbm/mcbm_hadron_analysis.C b/macro/mcbm/mcbm_hadron_analysis.C index ad2ef67272..f9642e6110 100644 --- a/macro/mcbm/mcbm_hadron_analysis.C +++ b/macro/mcbm/mcbm_hadron_analysis.C @@ -2,7 +2,7 @@ SPDX-License-Identifier: GPL-3.0-only Authors: Florian Uhlig [committer] */ -void mcbm_hadron_analysis(Int_t nEvents = 10, TString setup = "mcbm_beam_2020_03", const char* output = "data/test") +void mcbm_hadron_analysis(Int_t nEvents = 10, TString setupName = "mcbm_beam_2020_03", const char* output = "data/test") { TString dataset(output); TString InputFile = dataset + ".tra.root"; @@ -10,6 +10,7 @@ void mcbm_hadron_analysis(Int_t nEvents = 10, TString setup = "mcbm_beam_2020_03 TString RecoFile = dataset + ".rec.root"; TString ParFile = dataset + ".par.root"; TString OutFile = dataset + ".ana.root"; + TString srcDir = gSystem->Getenv("VMCWORKDIR"); FairLogger::GetLogger()->SetLogScreenLevel("INFO"); FairLogger::GetLogger()->SetLogVerbosityLevel("VERYHIGH"); @@ -36,6 +37,17 @@ void mcbm_hadron_analysis(Int_t nEvents = 10, TString setup = "mcbm_beam_2020_03 parInput1->open(ParFile.Data()); rtdb->setFirstInput(parInput1); + // ------ Geometry setup ------------------------------------------------ + std::cout << '\n'; + TString setupFile = srcDir + "/geometry/setup/setup_" + setupName + ".C"; + TString setupFunct = "setup_"; + setupFunct = setupFunct + setupName + "()"; + std::cout << "-I- Loading macro " << setupFile << '\n'; + gROOT->LoadMacro(setupFile); + gROOT->ProcessLine(setupFunct); + CbmSetup* setup = CbmSetup::Instance(); + // setup->RemoveModule(ECbmModuleId::kTrd); + // ------------------------------------------------------------------------ /* CbmMCDataManager* mcManager = new CbmMCDataManager("MCDataManager", 1); @@ -46,6 +58,10 @@ void mcbm_hadron_analysis(Int_t nEvents = 10, TString setup = "mcbm_beam_2020_03 fRun->AddTask(match); */ + // Kalman filter + fRun->AddTask(new CbmTrackingDetectorInterfaceInit()); + fRun->AddTask(new CbmKF()); + CbmHadronAnalysis* HadronAna = new CbmHadronAnalysis(); // in hadron HadronAna->SetBeamMomentum(1.65); // beam momentum HadronAna->SetDY(0.5); // flow analysis exclusion window diff --git a/reco/KF/CbmKFTrackInterface.cxx b/reco/KF/CbmKFTrackInterface.cxx index 81eebadd0a..d4103d073d 100644 --- a/reco/KF/CbmKFTrackInterface.cxx +++ b/reco/KF/CbmKFTrackInterface.cxx @@ -41,7 +41,6 @@ Int_t& CbmKFTrackInterface::GetRefNDF() { return gTempI[0]; } Int_t CbmKFTrackInterface::Extrapolate(Double_t z_out, Double_t* QP0) { - Bool_t err = 0; CbmKF* KF = CbmKF::Instance(); const Double_t z_in = GetTrack()[5]; diff --git a/reco/KF/Interface/CbmStsKFTrackFitter.cxx b/reco/KF/Interface/CbmStsKFTrackFitter.cxx index 8d545e5ce7..354f351ad0 100644 --- a/reco/KF/Interface/CbmStsKFTrackFitter.cxx +++ b/reco/KF/Interface/CbmStsKFTrackFitter.cxx @@ -4,6 +4,7 @@ #include "CbmStsKFTrackFitter.h" +#include "CbmKF.h" #include "CbmKFMath.h" #include "CbmKFStsHit.h" #include "CbmKFTrack.h" @@ -50,6 +51,12 @@ void CbmStsKFTrackFitter::Init() << "no MVD hits array" << endl; //return; } + auto* kf = CbmKF::Instance(); + if (!kf) { + LOG(error) << "-E- CbmStsKFTrackFitter::Init(): CbmKF instance not found"; + return; + } + fIsInitialised = 1; }; -- GitLab