From 0d955f094cc056bd79c670305202e39be658dc16 Mon Sep 17 00:00:00 2001 From: Dominik Smith <d.smith@gsi.de> Date: Wed, 2 Feb 2022 14:54:09 +0100 Subject: [PATCH] Modified CbmBuildEventsQa and QA function in CbmSeedFinderSlidingWindow to treat digis with empty matches as noise. --- reco/eventbuilder/digis/CbmBuildEventsQa.cxx | 5 ++++- .../eventbuilder/digis/CbmSeedFinderSlidingWindow.cxx | 11 +++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/reco/eventbuilder/digis/CbmBuildEventsQa.cxx b/reco/eventbuilder/digis/CbmBuildEventsQa.cxx index 19f90cf35c..3827f0520e 100644 --- a/reco/eventbuilder/digis/CbmBuildEventsQa.cxx +++ b/reco/eventbuilder/digis/CbmBuildEventsQa.cxx @@ -190,7 +190,7 @@ void CbmBuildEventsQa::Exec(Option_t*) LOG(info) << ""; MatchEvent(event); if (event->GetMatch()->GetNofLinks() < 1) { - LOG(warning) << "No links in this event match object, skipping the event"; + LOG(info) << "Warning: No links in this event match object. Skipping event # " << event->GetNumber(); continue; } // if (-1 == event->GetMatch()->GetNofLinks()) int matchedMcEventNr = event->GetMatch()->GetMatchedLink().GetEntry(); @@ -247,6 +247,9 @@ void CbmBuildEventsQa::Exec(Option_t*) if (digiMatch->GetMatchedLink().GetEntry() == matchedMcEventNr) nDigisCorrect++; if (digiMatch->GetMatchedLink().GetEntry() == -1) nDigisNoise++; } + else { + nDigisNoise++; + } for (int iLink = 0; iLink < digiMatch->GetNofLinks(); iLink++) { int entry = digiMatch->GetLink(iLink).GetEntry(); diff --git a/reco/eventbuilder/digis/CbmSeedFinderSlidingWindow.cxx b/reco/eventbuilder/digis/CbmSeedFinderSlidingWindow.cxx index 22172ba231..1bc8c3e29f 100644 --- a/reco/eventbuilder/digis/CbmSeedFinderSlidingWindow.cxx +++ b/reco/eventbuilder/digis/CbmSeedFinderSlidingWindow.cxx @@ -132,6 +132,11 @@ void CbmSeedFinderSlidingWindow::FillEventMatch(int32_t WinStart, int32_t WinEnd for (int32_t iDigi = WinStart; iDigi <= WinEnd; iDigi++) { const CbmMatch* digiMatch = &(vDigiMatch->at(iDigi)); digiCount++; + if (digiMatch->GetNofLinks() == 0) { + //skip digis with no links to avoid T0 pollution + noiseDigiCount++; + continue; + } if (digiMatch->GetMatchedLink().GetEntry() == -1) { noiseDigiCount++; continue; //disregard noise digis @@ -166,7 +171,8 @@ void CbmSeedFinderSlidingWindow::FillEventMatch(int32_t WinStart, int32_t WinEnd //correct digis in seed window for (int32_t iDigi = WinStart; iDigi <= WinEnd; iDigi++) { const CbmMatch* digiMatch = &(vDigiMatch->at(iDigi)); - const int32_t entry = digiMatch->GetMatchedLink().GetEntry(); + if (digiMatch->GetNofLinks() == 0) { continue; } //skip digis with no links to avoid T0 pollution + const int32_t entry = digiMatch->GetMatchedLink().GetEntry(); if (entry != -1) // disregarding noise { if (entry == seedMatch.GetMatchedLink().GetEntry()) { correctDigiCount++; } @@ -178,7 +184,8 @@ void CbmSeedFinderSlidingWindow::FillEventMatch(int32_t WinStart, int32_t WinEnd //found digis of matched event in seed window for (uint32_t iDigi = 0; iDigi < vDigiMatch->size(); iDigi++) { const CbmMatch* digiMatch = &(vDigiMatch->at(iDigi)); - const int matchedEvent = digiMatch->GetMatchedLink().GetEntry(); + if (digiMatch->GetNofLinks() == 0) { continue; } //skip digis with no links to avoid T0 pollution + const int matchedEvent = digiMatch->GetMatchedLink().GetEntry(); if (matchedEvent == seedMatch.GetMatchedLink().GetEntry()) { matchedEventDigiCount++; } } const double foundDigiRatio = (double) correctDigiCount / matchedEventDigiCount; -- GitLab