From 16f88b17e486b5c1e7912f341dac717db15689bc Mon Sep 17 00:00:00 2001 From: Andreas Suter Date: Sat, 21 Feb 2026 07:10:48 +0100 Subject: [PATCH] full implementation of the deadtime correction from file. --- src/classes/PRunAsymmetry.cpp | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/classes/PRunAsymmetry.cpp b/src/classes/PRunAsymmetry.cpp index 39687df14..cdafa3d62 100644 --- a/src/classes/PRunAsymmetry.cpp +++ b/src/classes/PRunAsymmetry.cpp @@ -731,6 +731,7 @@ Bool_t PRunAsymmetry::PrepareData() // check if there are runs to be added to the current one if (fRunInfo->GetRunNameSize() > 1) { // runs to be added present PRawRunData *addRunData; + std::vector addForward, addBackward; for (UInt_t i=1; iGetRunNameSize(); i++) { // get run to be added to the main one addRunData = fRawData->GetRunData(*(fRunInfo->GetRunName(i))); @@ -740,6 +741,22 @@ Bool_t PRunAsymmetry::PrepareData() return false; } + // dead time correction handling + addForward.clear(); + addForward.resize(forwardHistoNo.size()); + for (UInt_t j=0; jGetDataBin(forwardHistoNo[j])->size()); + addForward[j] = *addRunData->GetDataBin(forwardHistoNo[j]); + } + DeadTimeCorrection(addForward, forwardHistoNo); + addBackward.clear(); + addBackward.resize(backwardHistoNo.size()); + for (UInt_t j=0; jGetDataBin(backwardHistoNo[j])->size()); + addBackward[j] = *addRunData->GetDataBin(backwardHistoNo[j]); + } + DeadTimeCorrection(addBackward, backwardHistoNo); + // add forward run UInt_t addRunSize; for (UInt_t k=0; k(j)+static_cast(fAddT0s[i-1][2*k])-static_cast(fT0s[2*k]) >= 0) && (j+static_cast(fAddT0s[i-1][2*k])-static_cast(fT0s[2*k]) < addRunSize)) { - forward[k][j] += addRunData->GetDataBin(forwardHistoNo[k])->at(j+static_cast(fAddT0s[i-1][2*k])-static_cast(fT0s[2*k])); + forward[k][j] += addForward[k][j+static_cast(fAddT0s[i-1][2*k])-static_cast(fT0s[2*k])]; } } } @@ -760,7 +777,7 @@ Bool_t PRunAsymmetry::PrepareData() // make sure that the index stays in the proper range if ((static_cast(j)+static_cast(fAddT0s[i-1][2*k+1])-static_cast(fT0s[2*k+1]) >= 0) && (j+static_cast(fAddT0s[i-1][2*k+1])-static_cast(fT0s[2*k+1]) < addRunSize)) { - backward[k][j] += addRunData->GetDataBin(backwardHistoNo[k])->at(j+static_cast(fAddT0s[i-1][2*k+1])-static_cast(fT0s[2*k+1])); + backward[k][j] += addBackward[k][j+static_cast(fAddT0s[i-1][2*k+1])-static_cast(fT0s[2*k+1])]; } } }