diff --git a/src/classes/PRunAsymmetry.cpp b/src/classes/PRunAsymmetry.cpp index f86b13e2..9fcce490 100644 --- a/src/classes/PRunAsymmetry.cpp +++ b/src/classes/PRunAsymmetry.cpp @@ -1774,10 +1774,16 @@ Bool_t PRunAsymmetry::GetProperDataRange(PRawRunData* runData, UInt_t histoNo[2] return false; } // 3rd check if end is within proper bounds - if ((end[i] < 0) || (end[i] > (Int_t)runData->GetDataBin(histoNo[i])->size())) { - cerr << endl << ">> PRunAsymmetry::GetProperDataRange(): **ERROR** end data bin doesn't make any sense!"; + if (end[i] < 0) { + cerr << endl << ">> PRunAsymmetry::GetProperDataRange(): **ERROR** end data bin ("<< end[i] << ") doesn't make any sense!"; cerr << endl; return false; + } + if (end[i] > (Int_t)runData->GetDataBin(histoNo[i])->size()) { + cerr << endl << ">> PRunAsymmetry::GetProperDataRange(): **WARNING** end data bin (" << end[i] << ") > histo length (" << (Int_t)runData->GetDataBin(histoNo[i])->size() << ")."; + cerr << endl << ">> Will set end = (histo length - 1). Consider to change it in the msr-file." << endl; + cerr << endl; + end[i] = (Int_t)runData->GetDataBin(histoNo[i])->size()-1; } // 4th check if t0 is within proper bounds if ((t0[i] < 0) || (t0[i] > (Int_t)runData->GetDataBin(histoNo[i])->size())) { diff --git a/src/classes/PRunAsymmetryRRF.cpp b/src/classes/PRunAsymmetryRRF.cpp index ba172879..668c7af6 100644 --- a/src/classes/PRunAsymmetryRRF.cpp +++ b/src/classes/PRunAsymmetryRRF.cpp @@ -1414,10 +1414,16 @@ Bool_t PRunAsymmetryRRF::GetProperDataRange(PRawRunData* runData, UInt_t histoNo return false; } // 3rd check if end is within proper bounds - if ((end[i] < 0) || (end[i] > (Int_t)runData->GetDataBin(histoNo[i])->size())) { - cerr << endl << ">> PRunAsymmetryRRF::GetProperDataRange(): **ERROR** end data bin doesn't make any sense!"; + if (end[i] < 0) { + cerr << endl << ">> PRunAsymmetryRRF::GetProperDataRange(): **ERROR** end data bin (" << end[i] << ") doesn't make any sense!"; cerr << endl; return false; + } + if (end[i] > (Int_t)runData->GetDataBin(histoNo[i])->size()) { + cerr << endl << ">> PRunAsymmetryRRF::GetProperDataRange(): **WARNING** end data bin (" << end[i] << ") > histo length (" << (Int_t)runData->GetDataBin(histoNo[i])->size() << ")."; + cerr << endl << ">> Will set end = (histo length - 1). Consider to change it in the msr-file." << endl; + cerr << endl; + end[i] = (Int_t)runData->GetDataBin(histoNo[i])->size()-1; } // 4th check if t0 is within proper bounds if ((t0[i] < 0) || (t0[i] > (Int_t)runData->GetDataBin(histoNo[i])->size())) { diff --git a/src/classes/PRunSingleHisto.cpp b/src/classes/PRunSingleHisto.cpp index 23738b70..15ec1a7a 100644 --- a/src/classes/PRunSingleHisto.cpp +++ b/src/classes/PRunSingleHisto.cpp @@ -1560,10 +1560,16 @@ Bool_t PRunSingleHisto::GetProperDataRange() return false; } // 3rd check if end is within proper bounds - if ((end < 0) || (end > (Int_t)fForward.size())) { + if (end < 0) { cerr << endl << ">> PRunSingleHisto::GetProperDataRange(): **ERROR** end data bin (" << end << ") doesn't make any sense!"; cerr << endl; return false; + } + if (end > (Int_t)fForward.size()) { + cerr << endl << ">> PRunSingleHisto::GetProperDataRange(): **WARNING** end data bin (" << end << ") > histo length (" << (Int_t)fForward.size() << ")."; + cerr << endl << ">> Will set end = (histo length - 1). Consider to change it in the msr-file." << endl; + cerr << endl; + end = (Int_t)fForward.size()-1; } // keep good bins for potential later use diff --git a/src/classes/PRunSingleHistoRRF.cpp b/src/classes/PRunSingleHistoRRF.cpp index d43546ae..ab2ba609 100644 --- a/src/classes/PRunSingleHistoRRF.cpp +++ b/src/classes/PRunSingleHistoRRF.cpp @@ -969,10 +969,16 @@ Bool_t PRunSingleHistoRRF::GetProperDataRange() return false; } // 3rd check if end is within proper bounds - if ((end < 0) || (end > (Int_t)fForward.size())) { + if (end < 0) { cerr << endl << ">> PRunSingleHistoRRF::GetProperDataRange(): **ERROR** end data bin (" << end << ") doesn't make any sense!"; cerr << endl; return false; + } + if (end > (Int_t)fForward.size()) { + cerr << endl << ">> PRunSingleHistoRRF::GetProperDataRange(): **WARNING** end data bin (" << end << ") > histo length (" << (Int_t)fForward.size() << ")."; + cerr << endl << ">> Will set end = (histo length - 1). Consider to change it in the msr-file." << endl; + cerr << endl; + end = (Int_t)fForward.size()-1; } // keep good bins for potential later use