diff --git a/src/classes/PMsrHandler.cpp b/src/classes/PMsrHandler.cpp index eb16220f..5c9bdd68 100644 --- a/src/classes/PMsrHandler.cpp +++ b/src/classes/PMsrHandler.cpp @@ -643,6 +643,9 @@ Int_t PMsrHandler::WriteMsrLogFile(const Bool_t messages) case MSR_FITTYPE_BNMR: fout << left << "fittype" << MSR_FITTYPE_BNMR << " (beta-NMR fit)" << endl ; break; + case MSR_FITTYPE_BNMR: + fout << left << "fittype" << MSR_FITTYPE_BNMR << " (beta-NMR fit)" << endl ; + break; case MSR_FITTYPE_NON_MUSR: fout << std::left << "fittype" << MSR_FITTYPE_NON_MUSR << " (non muSR fit)" << std::endl ; break; @@ -810,6 +813,9 @@ Int_t PMsrHandler::WriteMsrLogFile(const Bool_t messages) case MSR_FITTYPE_BNMR: fout << left << "fittype" << MSR_FITTYPE_BNMR << " (beta-NMR fit)" << endl ; break; + case MSR_FITTYPE_BNMR: + fout << left << "fittype" << MSR_FITTYPE_BNMR << " (beta-NMR fit)" << endl ; + break; case MSR_FITTYPE_NON_MUSR: fout << std::left << "fittype" << MSR_FITTYPE_NON_MUSR << " (non muSR fit)" << std::endl ; break; @@ -1176,6 +1182,9 @@ Int_t PMsrHandler::WriteMsrLogFile(const Bool_t messages) case MSR_PLOT_BNMR: fout << "PLOT " << fPlots[plotNo].fPlotType << " (beta-NMR asymmetry plot)" << endl; break; + case MSR_PLOT_BNMR: + fout << "PLOT " << fPlots[plotNo].fPlotType << " (beta-NMR asymmetry plot)" << endl; + break; case MSR_PLOT_NON_MUSR: fout << "PLOT " << fPlots[plotNo].fPlotType << " (non muSR plot)" << std::endl; break; @@ -1728,6 +1737,9 @@ Int_t PMsrHandler::WriteMsrFile(const Char_t *filename, std::map> PMsrHandler::CheckRunBlockIntegrity(): **ERROR** in RUN block number " << i+1; + // cerr << endl << ">> alpha parameter number missing which is needed for an asymmetry fit."; + // cerr << endl << ">> Consider to check the manual ;-)" << endl; + // return false; + // } + // check that there is a forward parameter number + if (fRuns[i].GetForwardHistoNo() == -1) { + cerr << endl << ">> PMsrHandler::CheckRunBlockIntegrity(): **ERROR** in RUN block number " << i+1; + cerr << endl << ">> forward histogram number not defined. Necessary for asymmetry fits." << endl; + return false; + } + // check that there is a backward parameter number + if (fRuns[i].GetBackwardHistoNo() == -1) { + cerr << endl << ">> PMsrHandler::CheckRunBlockIntegrity(): **ERROR** in RUN block number " << i+1; + cerr << endl << ">> backward histogram number not defined. Necessary for asymmetry fits." << endl; + return false; + } + // check fit range + if (!fRuns[i].IsFitRangeInBin()) { // fit range given as times in usec + if ((fRuns[i].GetFitRange(0) == PMUSR_UNDEFINED) || (fRuns[i].GetFitRange(1) == PMUSR_UNDEFINED)) { + if ((fGlobal.GetFitRange(0) == PMUSR_UNDEFINED) || (fGlobal.GetFitRange(1) == PMUSR_UNDEFINED)) { + cerr << endl << ">> PMsrHandler::CheckRunBlockIntegrity(): **ERROR** in RUN block number " << i+1; + cerr << endl << ">> Fit range is not defined, also NOT present in the GLOBAL block. Necessary for asymmetry fits." << endl; + return false; + } + } + } + // check number of T0's provided + if ((fRuns[i].GetT0BinSize() > 2*fRuns[i].GetForwardHistoNoSize()) && + (fGlobal.GetT0BinSize() > 2*fRuns[i].GetForwardHistoNoSize())) { + cerr << endl << ">> PMsrHandler::CheckRunBlockIntegrity(): **ERROR** in RUN block number " << i+1; + cerr << endl << ">> Found " << fRuns[i].GetT0BinSize() << " T0 entries. Expecting only " << 2*fRuns[i].GetForwardHistoNoSize() << " in forward. Needs to be fixed." << endl; + cerr << endl << ">> In GLOBAL block: " << fGlobal.GetT0BinSize() << " T0 entries. Expecting only " << 2*fRuns[i].GetForwardHistoNoSize() << ". Needs to be fixed." << endl; + return false; + } + if ((fRuns[i].GetT0BinSize() > 2*fRuns[i].GetBackwardHistoNoSize()) && + (fGlobal.GetT0BinSize() > 2*fRuns[i].GetBackwardHistoNoSize())) { + cerr << endl << ">> PMsrHandler::CheckRunBlockIntegrity(): **ERROR** in RUN block number " << i+1; + cerr << endl << ">> Found " << fRuns[i].GetT0BinSize() << " T0 entries. Expecting only " << 2*fRuns[i].GetBackwardHistoNoSize() << " in backward. Needs to be fixed." << endl; + cerr << endl << ">> In GLOBAL block: " << fGlobal.GetT0BinSize() << " T0 entries. Expecting only " << 2*fRuns[i].GetBackwardHistoNoSize() << ". Needs to be fixed." << endl; + return false; + } + // check packing + if ((fRuns[i].GetPacking() == -1) && (fGlobal.GetPacking() == -1)) { + cerr << endl << ">> PMsrHandler::CheckRunBlockIntegrity(): **WARNING** in RUN block number " << i+1; + cerr << endl << ">> Packing is neither defined here, nor in the GLOBAL block, will set it to 1." << endl; + fRuns[i].SetPacking(1); + } + break; case PRUN_ASYMMETRY_RRF: // check alpha if ((fRuns[i].GetAlphaParamNo() == -1) && !fFourierOnly) { diff --git a/src/classes/PMusrCanvas.cpp b/src/classes/PMusrCanvas.cpp index be166127..350fa293 100644 --- a/src/classes/PMusrCanvas.cpp +++ b/src/classes/PMusrCanvas.cpp @@ -722,6 +722,18 @@ void PMusrCanvas::UpdateDataTheoryPad() // handle data HandleDataSet(i, runNo, data); break; + case MSR_FITTYPE_BNMR: + data = fRunList->GetAsymmetryBNMR(runNo, PRunListCollection::kRunNo); + if (!data) { // something wrong + fValid = false; + // error message + cerr << endl << ">> PMusrCanvas::UpdateDataTheoryPad(): **ERROR** couldn't obtain run no " << runNo << " for a beta-NMR asymmetry plot"; + cerr << endl; + return; + } + // handle data + HandleDataSet(i, runNo, data); + break; case MSR_FITTYPE_ASYM_RRF: data = fRunList->GetAsymmetryRRF(runNo, PRunListCollection::kRunNo); if (!data) { // something wrong