full implementation of the deadtime correction from file.

This commit is contained in:
2026-02-21 07:10:48 +01:00
parent e432a26b4c
commit 16f88b17e4

View File

@@ -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<PDoubleVector> addForward, addBackward;
for (UInt_t i=1; i<fRunInfo->GetRunNameSize(); 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; j<forwardHistoNo.size(); j++) {
addForward[j].resize(addRunData->GetDataBin(forwardHistoNo[j])->size());
addForward[j] = *addRunData->GetDataBin(forwardHistoNo[j]);
}
DeadTimeCorrection(addForward, forwardHistoNo);
addBackward.clear();
addBackward.resize(backwardHistoNo.size());
for (UInt_t j=0; j<backwardHistoNo.size(); j++) {
addBackward[j].resize(addRunData->GetDataBin(backwardHistoNo[j])->size());
addBackward[j] = *addRunData->GetDataBin(backwardHistoNo[j]);
}
DeadTimeCorrection(addBackward, backwardHistoNo);
// add forward run
UInt_t addRunSize;
for (UInt_t k=0; k<forwardHistoNo.size(); k++) { // fill each group
@@ -748,7 +765,7 @@ Bool_t PRunAsymmetry::PrepareData()
// make sure that the index stays in the proper range
if ((static_cast<Int_t>(j)+static_cast<Int_t>(fAddT0s[i-1][2*k])-static_cast<Int_t>(fT0s[2*k]) >= 0) &&
(j+static_cast<Int_t>(fAddT0s[i-1][2*k])-static_cast<Int_t>(fT0s[2*k]) < addRunSize)) {
forward[k][j] += addRunData->GetDataBin(forwardHistoNo[k])->at(j+static_cast<Int_t>(fAddT0s[i-1][2*k])-static_cast<Int_t>(fT0s[2*k]));
forward[k][j] += addForward[k][j+static_cast<Int_t>(fAddT0s[i-1][2*k])-static_cast<Int_t>(fT0s[2*k])];
}
}
}
@@ -760,7 +777,7 @@ Bool_t PRunAsymmetry::PrepareData()
// make sure that the index stays in the proper range
if ((static_cast<Int_t>(j)+static_cast<Int_t>(fAddT0s[i-1][2*k+1])-static_cast<Int_t>(fT0s[2*k+1]) >= 0) &&
(j+static_cast<Int_t>(fAddT0s[i-1][2*k+1])-static_cast<Int_t>(fT0s[2*k+1]) < addRunSize)) {
backward[k][j] += addRunData->GetDataBin(backwardHistoNo[k])->at(j+static_cast<Int_t>(fAddT0s[i-1][2*k+1])-static_cast<Int_t>(fT0s[2*k+1]));
backward[k][j] += addBackward[k][j+static_cast<Int_t>(fAddT0s[i-1][2*k+1])-static_cast<Int_t>(fT0s[2*k+1])];
}
}
}