diff --git a/src/ToDo.txt b/src/ToDo.txt index 715ed7f4..018d7682 100644 --- a/src/ToDo.txt +++ b/src/ToDo.txt @@ -69,6 +69,10 @@ short term: * implement NonMuSR stuff **DONE** 08-06-20, some more testing needed +* Minuit2: name length is now unlimited and hence the 10 char restriction can be lifted. + +* nonMusr: check why in nonMusr view there is NO legend?? + * implement FFT with msr-interface --------------------- diff --git a/src/classes/PMsrHandler.cpp b/src/classes/PMsrHandler.cpp index 6a8b90c2..ed1646ec 100644 --- a/src/classes/PMsrHandler.cpp +++ b/src/classes/PMsrHandler.cpp @@ -522,7 +522,7 @@ int PMsrHandler::WriteMsrLogFile() // background if (fRuns[i].fBkgRange[0] != -1) { f.width(16); - f << endl << "background"; + f << endl << left << "background"; for (unsigned int j=0; j<4; j++) { if (fRuns[i].fBkgRange[j] == -1) break; @@ -534,7 +534,7 @@ int PMsrHandler::WriteMsrLogFile() // data if (fRuns[i].fDataRange[0] != -1) { f.width(16); - f << endl << "data"; + f << endl << left << "data"; for (unsigned int j=0; j<4; j++) { if (fRuns[i].fDataRange[j] == -1) break; @@ -546,7 +546,7 @@ int PMsrHandler::WriteMsrLogFile() // t0 if (fRuns[i].fT0[0] != -1) { f.width(16); - f << endl << "t0"; + f << endl << left << "t0"; for (unsigned int j=0; j<2; j++) { if (fRuns[i].fT0[j] == -1) break; @@ -558,7 +558,7 @@ int PMsrHandler::WriteMsrLogFile() // fit if (fRuns[i].fFitRange[0] != -1) { f.width(16); - f << endl << "fit"; + f << endl << left << "fit"; for (unsigned int j=0; j<2; j++) { if (fRuns[i].fFitRange[j] == -1) break; diff --git a/src/classes/PRunAsymmetry.cpp b/src/classes/PRunAsymmetry.cpp index cb2ab71d..28715c44 100644 --- a/src/classes/PRunAsymmetry.cpp +++ b/src/classes/PRunAsymmetry.cpp @@ -564,37 +564,47 @@ bool PRunAsymmetry::PrepareFitData(PRawRunData* runData, unsigned int histoNo[2] double error = 0.0; // forward for (unsigned i=start[0]; ifPacking == 0) && (i != start[0])) { // fill data - // in order that after rebinning the fit does not need to be redone (important for plots) - // the value is normalize to per bin - value /= fRunInfo->fPacking; - forwardPacked.fValue.push_back(value); - if (value == 0.0) - forwardPacked.fError.push_back(1.0); - else - forwardPacked.fError.push_back(TMath::Sqrt(error)/fRunInfo->fPacking); - value = 0.0; - error = 0.0; + if (fRunInfo->fPacking == 1) { + forwardPacked.fValue.push_back(fForward[i]); + forwardPacked.fError.push_back(fForwardErr[i]); + } else { // packed data, i.e. fRunInfo->fPacking > 1 + if (((i-start[0]) % fRunInfo->fPacking == 0) && (i != start[0])) { // fill data + // in order that after rebinning the fit does not need to be redone (important for plots) + // the value is normalize to per bin + value /= fRunInfo->fPacking; + forwardPacked.fValue.push_back(value); + if (value == 0.0) + forwardPacked.fError.push_back(1.0); + else + forwardPacked.fError.push_back(TMath::Sqrt(error)/fRunInfo->fPacking); + value = 0.0; + error = 0.0; + } + value += fForward[i]; + error += fForwardErr[i]*fForwardErr[i]; } - value += fForward[i]; - error += fForwardErr[i]*fForwardErr[i]; } // backward for (unsigned i=start[1]; ifPacking == 0) && (i != start[1])) { // fill data - // in order that after rebinning the fit does not need to be redone (important for plots) - // the value is normalize to per bin - value /= fRunInfo->fPacking; - backwardPacked.fValue.push_back(value); - if (value == 0.0) - backwardPacked.fError.push_back(1.0); - else - backwardPacked.fError.push_back(TMath::Sqrt(error)/fRunInfo->fPacking); - value = 0.0; - error = 0.0; + if (fRunInfo->fPacking == 1) { + backwardPacked.fValue.push_back(fBackward[i]); + backwardPacked.fError.push_back(fBackwardErr[i]); + } else { // packed data, i.e. fRunInfo->fPacking > 1 + if (((i-start[1]) % fRunInfo->fPacking == 0) && (i != start[1])) { // fill data + // in order that after rebinning the fit does not need to be redone (important for plots) + // the value is normalize to per bin + value /= fRunInfo->fPacking; + backwardPacked.fValue.push_back(value); + if (value == 0.0) + backwardPacked.fError.push_back(1.0); + else + backwardPacked.fError.push_back(TMath::Sqrt(error)/fRunInfo->fPacking); + value = 0.0; + error = 0.0; + } + value += fBackward[i]; + error += fBackwardErr[i]*fBackwardErr[i]; } - value += fBackward[i]; - error += fBackwardErr[i]*fBackwardErr[i]; } // check if packed forward and backward hist have the same size, otherwise something is wrong diff --git a/src/classes/PRunNonMusr.cpp b/src/classes/PRunNonMusr.cpp index f993e996..0f92667b 100644 --- a/src/classes/PRunNonMusr.cpp +++ b/src/classes/PRunNonMusr.cpp @@ -186,17 +186,23 @@ bool PRunNonMusr::PrepareFitData() cout << endl << ">> runData->fXData.size()=" << runData->fXData.size(); for (unsigned int i=0; ifXData.size(); i++) { cout << endl << ">> i=" << i << ", packing=" << fRunInfo->fPacking; - if ((i % fRunInfo->fPacking == 0) && (i != 0)) { // fill data + if (fRunInfo->fPacking == 1) { + fData.fX.push_back(runData->fXData[i]); + fData.fValue.push_back(runData->fYData[i]); + fData.fError.push_back(runData->fErrYData[i]); + } else { // packed data, i.e. fRunInfo->fPacking > 1 + if ((i % fRunInfo->fPacking == 0) && (i != 0)) { // fill data cout << endl << "-> i=" << i; - fData.fX.push_back(runData->fXData[i]-(runData->fXData[i]-runData->fXData[i-fRunInfo->fPacking])/2.0); - fData.fValue.push_back(value); - fData.fError.push_back(TMath::Sqrt(err)); - value = 0.0; - err = 0.0; + fData.fX.push_back(runData->fXData[i]-(runData->fXData[i]-runData->fXData[i-fRunInfo->fPacking])/2.0); + fData.fValue.push_back(value); + fData.fError.push_back(TMath::Sqrt(err)); + value = 0.0; + err = 0.0; + } + // sum raw data values + value += runData->fYData[i]; + err += runData->fErrYData[i]*runData->fErrYData[i]; } - // sum raw data values - value += runData->fYData[i]; - err += runData->fErrYData[i]*runData->fErrYData[i]; } cout << endl << ">> fData.fValue.size()=" << fData.fValue.size(); @@ -238,17 +244,23 @@ bool PRunNonMusr::PrepareViewData() cout << endl << ">> runData->fXData.size()=" << runData->fXData.size(); for (unsigned int i=0; ifXData.size(); i++) { cout << endl << ">> i=" << i << ", packing=" << fRunInfo->fPacking; - if ((i % fRunInfo->fPacking == 0) && (i != 0)) { // fill data + if (fRunInfo->fPacking == 1) { + fData.fX.push_back(runData->fXData[i]); + fData.fValue.push_back(runData->fYData[i]); + fData.fError.push_back(runData->fErrYData[i]); + } else { // packed data, i.e. fRunInfo->fPacking > 1 + if ((i % fRunInfo->fPacking == 0) && (i != 0)) { // fill data cout << endl << "-> i=" << i; - fData.fX.push_back(runData->fXData[i]-(runData->fXData[i]-runData->fXData[i-fRunInfo->fPacking])/2.0); - fData.fValue.push_back(value); - fData.fError.push_back(TMath::Sqrt(err)); - value = 0.0; - err = 0.0; + fData.fX.push_back(runData->fXData[i]-(runData->fXData[i]-runData->fXData[i-fRunInfo->fPacking])/2.0); + fData.fValue.push_back(value); + fData.fError.push_back(TMath::Sqrt(err)); + value = 0.0; + err = 0.0; + } + // sum raw data values + value += runData->fYData[i]; + err += runData->fErrYData[i]*runData->fErrYData[i]; } - // sum raw data values - value += runData->fYData[i]; - err += runData->fErrYData[i]*runData->fErrYData[i]; } cout << endl << ">> fData.fValue.size()=" << fData.fValue.size(); diff --git a/src/classes/PRunSingleHisto.cpp b/src/classes/PRunSingleHisto.cpp index 641ac246..5c3ff886 100644 --- a/src/classes/PRunSingleHisto.cpp +++ b/src/classes/PRunSingleHisto.cpp @@ -431,19 +431,28 @@ bool PRunSingleHisto::PrepareFitData() fData.fDataTimeStart = fTimeResolution*(((double)start-t0)+(double)fRunInfo->fPacking/2.0); fData.fDataTimeStep = fTimeResolution*fRunInfo->fPacking; for (unsigned i=start; ifPacking == 0) && (i != start)) { // fill data - // in order that after rebinning the fit does not need to be redone (important for plots) - // the value is normalize to per bin - value /= fRunInfo->fPacking; + if (fRunInfo->fPacking == 1) { + value = runData->fDataBin[histoNo][i]; fData.fValue.push_back(value); if (value == 0.0) fData.fError.push_back(1.0); else - fData.fError.push_back(TMath::Sqrt(value/fRunInfo->fPacking)); - // reset values - value = 0.0; + fData.fError.push_back(TMath::Sqrt(value)); + } else { // packed data, i.e. fRunInfo->fPacking > 1 + if (((i-start) % fRunInfo->fPacking == 0) && (i != start)) { // fill data + // in order that after rebinning the fit does not need to be redone (important for plots) + // the value is normalize to per bin + value /= fRunInfo->fPacking; + fData.fValue.push_back(value); + if (value == 0.0) + fData.fError.push_back(1.0); + else + fData.fError.push_back(TMath::Sqrt(value/fRunInfo->fPacking)); + // reset values + value = 0.0; + } + value += runData->fDataBin[histoNo][i]; } - value += runData->fDataBin[histoNo][i]; } // count the number of bins to be fitted