fixed bug in reading nemu files
This commit is contained in:
parent
e5fa134ad8
commit
ef4819ba07
@ -189,9 +189,10 @@ bool PRunDataHandler::ReadFile()
|
|||||||
bool PRunDataHandler::FileAlreadyRead(PMsrRunStructure &runInfo)
|
bool PRunDataHandler::FileAlreadyRead(PMsrRunStructure &runInfo)
|
||||||
{
|
{
|
||||||
for (unsigned int i=0; i<fData.size(); i++) {
|
for (unsigned int i=0; i<fData.size(); i++) {
|
||||||
if (!fData[i].fRunName.CompareTo(runInfo.fRunName)) // run alread read
|
if (!fData[i].fRunName.CompareTo(runInfo.fRunName)) { // run alread read
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -582,13 +583,13 @@ cout << endl << ">> time resolution : " << runData.fTimeResolution;
|
|||||||
int status;
|
int status;
|
||||||
unsigned int group_counter = 0;
|
unsigned int group_counter = 0;
|
||||||
int val[10];
|
int val[10];
|
||||||
while (!f.eof()) {
|
do {
|
||||||
// check if empty line, i.e. new group
|
// check if empty line, i.e. new group
|
||||||
if (IsWhitespace(instr)) {
|
if (IsWhitespace(instr)) {
|
||||||
runData.fDataBin.push_back(histoData);
|
runData.fDataBin.push_back(histoData);
|
||||||
histoData.clear();
|
histoData.clear();
|
||||||
group_counter++;
|
group_counter++;
|
||||||
}
|
} else {
|
||||||
// extract values
|
// extract values
|
||||||
status = sscanf(instr, "%d %d %d %d %d %d %d %d %d %d",
|
status = sscanf(instr, "%d %d %d %d %d %d %d %d %d %d",
|
||||||
&val[0], &val[1], &val[2], &val[3], &val[4],
|
&val[0], &val[1], &val[2], &val[3], &val[4],
|
||||||
@ -605,8 +606,23 @@ cout << endl << ">> time resolution : " << runData.fTimeResolution;
|
|||||||
// feed data
|
// feed data
|
||||||
for (int i=0; i<status; i++)
|
for (int i=0; i<status; i++)
|
||||||
histoData.push_back(val[i]);
|
histoData.push_back(val[i]);
|
||||||
|
}
|
||||||
|
|
||||||
f.getline(instr, sizeof(instr));
|
f.getline(instr, sizeof(instr));
|
||||||
|
|
||||||
|
} while (!f.eof());
|
||||||
|
|
||||||
|
// handle last line if present
|
||||||
|
if (strlen(instr) != 0) {
|
||||||
|
// extract values
|
||||||
|
status = sscanf(instr, "%d %d %d %d %d %d %d %d %d %d",
|
||||||
|
&val[0], &val[1], &val[2], &val[3], &val[4],
|
||||||
|
&val[5], &val[6], &val[7], &val[8], &val[9]);
|
||||||
|
if (status > 0) {
|
||||||
|
// feed data
|
||||||
|
for (int i=0; i<status; i++)
|
||||||
|
histoData.push_back(val[i]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// save the last histo if not empty
|
// save the last histo if not empty
|
||||||
@ -635,8 +651,8 @@ cout << endl << ">> time resolution : " << runData.fTimeResolution;
|
|||||||
cout << endl << "PRunDataHandler::ReadNemuFile(): **ERROR**";
|
cout << endl << "PRunDataHandler::ReadNemuFile(): **ERROR**";
|
||||||
cout << endl << " expected " << channels << " bins in histo " << i << ", but found " << runData.fDataBin[i].size();
|
cout << endl << " expected " << channels << " bins in histo " << i << ", but found " << runData.fDataBin[i].size();
|
||||||
// clean up
|
// clean up
|
||||||
for (unsigned int i=0; i<runData.fDataBin.size(); i++)
|
for (unsigned int j=0; j<runData.fDataBin.size(); j++)
|
||||||
runData.fDataBin[i].clear();
|
runData.fDataBin[j].clear();
|
||||||
runData.fDataBin.clear();
|
runData.fDataBin.clear();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user