make sure that for non-muSR data errors are not = 0. Will set it to 1, and issue a warning. This prevents chisq to crash.

This commit is contained in:
suter_a 2024-10-14 12:22:25 +02:00
parent 6812f68a8f
commit 532b6f42ff
2 changed files with 18 additions and 3 deletions

BIN
doc/examples/.DS_Store vendored

Binary file not shown.

View File

@ -3697,6 +3697,8 @@ Bool_t PRunDataHandler::ReadAsciiFile()
{ {
Bool_t success = true; Bool_t success = true;
std::cout << "as35> in ReadAsciiFile() ..." << std::endl;
// open file // open file
std::ifstream f; std::ifstream f;
@ -3848,7 +3850,14 @@ Bool_t PRunDataHandler::ReadAsciiFile()
break; break;
} }
ey = ostr->GetString().Atof(); ey = ostr->GetString().Atof();
if (ey == 0) {
std::cerr << std::endl << ">> PRunDataHandler::ReadAsciiFile **WARNING** line no " << lineNo << ": error y = 0 which doesn't make sense. Will set it to 1.0. Please check!!";
std::cerr << std::endl;
ey = 1.0;
}
} else { } else {
std::cerr << std::endl << ">> PRunDataHandler::ReadAsciiFile **WARNING** line no " << lineNo << ": error y = 0 which doesn't make sense. Will set it to 1.0. Please check!!";
std::cerr << std::endl;
ey = 1.0; ey = 1.0;
} }
@ -4357,7 +4366,7 @@ Bool_t PRunDataHandler::ReadDatFile()
// open file // open file
std::ifstream f; std::ifstream f;
// open db-file // open dat-file
f.open(fRunPathName.Data(), std::ifstream::in); f.open(fRunPathName.Data(), std::ifstream::in);
if (!f.is_open()) { if (!f.is_open()) {
std::cerr << std::endl << ">> PRunDataHandler::ReadDatFile **ERROR** Couldn't open data file (" << fRunPathName.Data() << ") for reading, sorry ..."; std::cerr << std::endl << ">> PRunDataHandler::ReadDatFile **ERROR** Couldn't open data file (" << fRunPathName.Data() << ") for reading, sorry ...";
@ -4456,6 +4465,12 @@ Bool_t PRunDataHandler::ReadDatFile()
idx++; idx++;
} else { // error value } else { // error value
if (isData[i-1] == 1) { // Err or PosErr hence keep it if (isData[i-1] == 1) { // Err or PosErr hence keep it
if (dval == 0.0) {
std::cout << std::endl << ">> PRunDataHandler::ReadDatFile **WARNING** found Err value = 0. Doesn't make sense! Will set it to 1. Please check!";
std::cerr << std::endl << ">> in line: " << lineNo;
std::cerr << std::endl;
dval = 1.0;
}
runData.fDataNonMusr.AppendSubErrData(idx-1, dval); runData.fDataNonMusr.AppendSubErrData(idx-1, dval);
} }
} }
@ -4470,11 +4485,11 @@ Bool_t PRunDataHandler::ReadDatFile()
f.close(); f.close();
// got through all the data sets and if there is NO error vector set it to '0.0' // got through all the data sets and if there is NO error vector set it to '1.0'
for (UInt_t i=0; i<noOfDataSets; i++) { for (UInt_t i=0; i<noOfDataSets; i++) {
if (runData.fDataNonMusr.GetErrData()->at(i).size() == 0) { if (runData.fDataNonMusr.GetErrData()->at(i).size() == 0) {
for (UInt_t j=0; j<runData.fDataNonMusr.GetData()->at(i).size(); j++) { for (UInt_t j=0; j<runData.fDataNonMusr.GetData()->at(i).size(); j++) {
runData.fDataNonMusr.AppendSubErrData(i, 0.0); runData.fDataNonMusr.AppendSubErrData(i, 1.0);
} }
} }
} }