diff --git a/src/classes/PMusrCanvas.cpp b/src/classes/PMusrCanvas.cpp
index f58b76c8..6d1cc114 100644
--- a/src/classes/PMusrCanvas.cpp
+++ b/src/classes/PMusrCanvas.cpp
@@ -902,8 +902,6 @@ void PMusrCanvas::HandleMenuPopup(Int_t id)
}
} else if (id == P_MENU_ID_SAVE_DATA+P_MENU_PLOT_OFFSET*fPlotNumber+P_MENU_ID_SAVE_ASCII) {
SaveDataAscii();
- } else if (id == P_MENU_ID_SAVE_DATA+P_MENU_PLOT_OFFSET*fPlotNumber+P_MENU_ID_SAVE_DB) {
- SaveDataDb();
}
// check if phase increment/decrement needs to be ghost
@@ -1084,7 +1082,6 @@ void PMusrCanvas::InitMusrCanvas(const char* title, Int_t wtopx, Int_t wtopy, In
fPopupSave = new TGPopupMenu();
fPopupSave->AddEntry("Save ascii", P_MENU_ID_SAVE_DATA+P_MENU_PLOT_OFFSET*fPlotNumber+P_MENU_ID_SAVE_ASCII);
- fPopupSave->AddEntry("Save db", P_MENU_ID_SAVE_DATA+P_MENU_PLOT_OFFSET*fPlotNumber+P_MENU_ID_SAVE_DB);
fPopupMain->AddPopup("&Save Data", fPopupSave);
fBar->MapSubwindows();
@@ -3843,648 +3840,3 @@ void PMusrCanvas::SaveDataAscii()
cout << endl << ">> Data windows saved in ascii format ..." << endl;
}
-
-//--------------------------------------------------------------------------
-// SaveDataDb (private)
-//--------------------------------------------------------------------------
-/**
- *
- *
- */
-void PMusrCanvas::SaveDataDb()
-{
- // generate output filename
-
- // in order to handle names with "." correctly this slightly odd data-filename generation
- TObjArray *tokens = fMsrHandler->GetFileName().Tokenize(".");
- TObjString *ostr;
- TString str = TString("");
- for (int i=0; iGetEntries()-1; i++) {
- ostr = dynamic_cast(tokens->At(i));
- str += ostr->GetString() + TString(".");
- }
- str += "db";
-
- if (tokens) {
- delete tokens;
- tokens = 0;
- }
-
- if (tokens) {
- delete tokens;
- tokens = 0;
- }
-
- // open file
- ofstream fout;
-
- // open mlog-file
- fout.open(str.Data(), iostream::out);
- if (!fout.is_open()) {
- cout << endl << ">> PMusrCanvas::SaveDataDb: **ERROR** couldn't open file " << str.Data() << " for writing." << endl;
- return;
- }
-
- // extract data
- Double_t time, xval, yval;
- Int_t xminBin;
- Int_t xmaxBin;
- Int_t theoBin;
- Double_t xmin;
- Double_t xmax;
- switch (fPlotType) {
- case MSR_PLOT_SINGLE_HISTO:
- case MSR_PLOT_ASYM:
- case MSR_PLOT_ASYM_RRF:
- if (fDifferenceView) { // difference view plot
- switch (fCurrentPlotView) {
- case PV_DATA:
- // write header
- fout << "TITLE" << endl;
- fout << " " << fMsrHandler->GetMsrTitle()->Data() << endl;
- fout << "LABELS" << endl;
- fout << " Time (us)" << endl;
- for (unsigned int j=0; jGetXaxis()->GetFirst(); // first bin of the zoomed range
- xmaxBin = fData[0].diff->GetXaxis()->GetLast(); // last bin of the zoomed range
- xmin = fData[0].diff->GetXaxis()->GetBinCenter(xminBin);
- xmax = fData[0].diff->GetXaxis()->GetBinCenter(xmaxBin);
- // get difference data
- for (int i=1; iGetNbinsX()-1; i++) {
- time = fData[0].diff->GetBinCenter(i); // get time
- if ((time < xmin) || (time > xmax))
- continue;
- fout << time << ",,, ";
- for (unsigned int j=0; jGetBinContent(i) << ", ";
- fout << fData[j].diff->GetBinError(i) << ",, ";
- }
- // write last data set
- fout << fData[fData.size()-1].diff->GetBinContent(i) << ", ";
- fout << fData[fData.size()-1].diff->GetBinError(i) << ",,";
- fout << endl;
- }
- break;
- case PV_FOURIER_REAL:
- break;
- case PV_FOURIER_IMAG:
- break;
- case PV_FOURIER_REAL_AND_IMAG:
- break;
- case PV_FOURIER_PWR:
- break;
- case PV_FOURIER_PHASE:
- break;
- default:
- break;
- }
- } else { // not a difference view plot
- switch (fCurrentPlotView) {
- case PV_DATA:
- // write header
- fout << "TITLE" << endl;
- fout << " " << fMsrHandler->GetMsrTitle()->Data() << endl;
- fout << "LABELS" << endl;
- fout << " Time (us)" << endl;
- for (unsigned int j=0; jGetXaxis()->GetFirst(); // first bin of the zoomed range
- xmaxBin = fData[0].data->GetXaxis()->GetLast(); // last bin of the zoomed range
- xmin = fData[0].data->GetXaxis()->GetBinCenter(xminBin);
- xmax = fData[0].data->GetXaxis()->GetBinCenter(xmaxBin);
- // get data
- for (int i=1; iGetNbinsX()-1; i++) {
- time = fData[0].data->GetBinCenter(i); // get time
- if ((time < xmin) || (time > xmax))
- continue;
- fout << time << ",,, ";
- for (unsigned int j=0; jGetBinContent(i) << ", ";
- fout << fData[j].data->GetBinError(i) << ",, ";
- theoBin = fData[j].theory->FindBin(time);
- fout << fData[j].theory->GetBinContent(theoBin) << ",,, ";
- }
- // write last data set
- fout << fData[fData.size()-1].data->GetBinContent(i) << ", ";
- fout << fData[fData.size()-1].data->GetBinError(i) << ",, ";
- theoBin = fData[fData.size()-1].theory->FindBin(time);
- fout << fData[fData.size()-1].theory->GetBinContent(theoBin) << ",,, ";
- fout << endl;
- }
- break;
- case PV_FOURIER_REAL:
- // write header
- fout << "TITLE" << endl;
- fout << " " << fMsrHandler->GetMsrTitle()->Data() << endl;
- fout << "LABELS" << endl;
- switch (fFourier.fUnits) {
- case FOURIER_UNIT_FIELD:
- str = TString(" Field (G)");
- break;
- case FOURIER_UNIT_FREQ:
- str = TString(" Frequency (MHz)");
- break;
- case FOURIER_UNIT_CYCLES:
- str = TString(" Angular Frequency (Mc/s)");
- break;
- default:
- str = TString(" ????");
- break;
- }
- fout << str.Data() << endl;
- for (unsigned int j=0; jGetXaxis()->GetFirst(); // first bin of the zoomed range
- xmaxBin = fData[0].dataFourierRe->GetXaxis()->GetLast(); // last bin of the zoomed range
- xmin = fData[0].dataFourierRe->GetXaxis()->GetBinCenter(xminBin);
- xmax = fData[0].dataFourierRe->GetXaxis()->GetBinCenter(xmaxBin);
- // get data
- for (int i=1; iGetNbinsX()-1; i++) {
- xval = fData[0].dataFourierRe->GetBinCenter(i); // get x-val
- if ((xval < xmin) || (xval > xmax))
- continue;
- fout << xval << ",,, ";
- for (unsigned int j=0; jGetBinContent(i) << ",,, ";
- theoBin = fData[j].theoryFourierRe->FindBin(xval);
- fout << fData[j].theoryFourierRe->GetBinContent(theoBin) << ",,, ";
- }
- // write last data set
- fout << fData[fData.size()-1].dataFourierRe->GetBinContent(i) << ",,, ";
- theoBin = fData[fData.size()-1].theoryFourierRe->FindBin(xval);
- fout << fData[fData.size()-1].theoryFourierRe->GetBinContent(theoBin) << ",,, ";
- fout << endl;
- }
- break;
- case PV_FOURIER_IMAG:
- // write header
- fout << "TITLE" << endl;
- fout << " " << fMsrHandler->GetMsrTitle()->Data() << endl;
- fout << "LABELS" << endl;
- switch (fFourier.fUnits) {
- case FOURIER_UNIT_FIELD:
- str = TString(" Field (G)");
- break;
- case FOURIER_UNIT_FREQ:
- str = TString(" Frequency (MHz)");
- break;
- case FOURIER_UNIT_CYCLES:
- str = TString(" Angular Frequency (Mc/s)");
- break;
- default:
- str = TString(" ????");
- break;
- }
- fout << str.Data() << endl;
- for (unsigned int j=0; jGetXaxis()->GetFirst(); // first bin of the zoomed range
- xmaxBin = fData[0].dataFourierIm->GetXaxis()->GetLast(); // last bin of the zoomed range
- xmin = fData[0].dataFourierIm->GetXaxis()->GetBinCenter(xminBin);
- xmax = fData[0].dataFourierIm->GetXaxis()->GetBinCenter(xmaxBin);
- // get data
- for (int i=1; iGetNbinsX()-1; i++) {
- xval = fData[0].dataFourierIm->GetBinCenter(i); // get x-val
- if ((xval < xmin) || (xval > xmax))
- continue;
- fout << xval << ",,, ";
- for (unsigned int j=0; jGetBinContent(i) << ",,, ";
- theoBin = fData[j].theoryFourierIm->FindBin(xval);
- fout << fData[j].theoryFourierIm->GetBinContent(theoBin) << ",,, ";
- }
- // write last data set
- fout << fData[fData.size()-1].dataFourierIm->GetBinContent(i) << ",,, ";
- theoBin = fData[fData.size()-1].theoryFourierIm->FindBin(xval);
- fout << fData[fData.size()-1].theoryFourierIm->GetBinContent(theoBin) << ",,, ";
- fout << endl;
- }
- break;
- case PV_FOURIER_REAL_AND_IMAG:
- // write header
- fout << "TITLE" << endl;
- fout << " " << fMsrHandler->GetMsrTitle()->Data() << endl;
- fout << "LABELS" << endl;
- switch (fFourier.fUnits) {
- case FOURIER_UNIT_FIELD:
- str = TString(" Field (G)");
- break;
- case FOURIER_UNIT_FREQ:
- str = TString(" Frequency (MHz)");
- break;
- case FOURIER_UNIT_CYCLES:
- str = TString(" Angular Frequency (Mc/s)");
- break;
- default:
- str = TString(" ????");
- break;
- }
- fout << str.Data() << endl;
- for (unsigned int j=0; jGetXaxis()->GetFirst(); // first bin of the zoomed range
- xmaxBin = fData[0].dataFourierRe->GetXaxis()->GetLast(); // last bin of the zoomed range
- xmin = fData[0].dataFourierRe->GetXaxis()->GetBinCenter(xminBin);
- xmax = fData[0].dataFourierRe->GetXaxis()->GetBinCenter(xmaxBin);
- // get data
- for (int i=1; iGetNbinsX()-1; i++) {
- xval = fData[0].dataFourierRe->GetBinCenter(i); // get x-val
- if ((xval < xmin) || (xval > xmax))
- continue;
- fout << xval << ",,, ";
- for (unsigned int j=0; jGetBinContent(i) << ",,, ";
- theoBin = fData[j].theoryFourierRe->FindBin(xval);
- fout << fData[j].theoryFourierRe->GetBinContent(theoBin) << ",,, ";
- fout << fData[j].dataFourierIm->GetBinContent(i) << ",,, ";
- theoBin = fData[j].theoryFourierIm->FindBin(xval);
- fout << fData[j].theoryFourierIm->GetBinContent(theoBin) << ",,, ";
- }
- // write last data set
- fout << fData[fData.size()-1].dataFourierRe->GetBinContent(i) << ",,, ";
- theoBin = fData[fData.size()-1].theoryFourierRe->FindBin(xval);
- fout << fData[fData.size()-1].theoryFourierRe->GetBinContent(theoBin) << ",,, ";
- fout << fData[fData.size()-1].dataFourierIm->GetBinContent(i) << ",,, ";
- theoBin = fData[fData.size()-1].theoryFourierIm->FindBin(xval);
- fout << fData[fData.size()-1].theoryFourierIm->GetBinContent(theoBin) << ",,, ";
- fout << endl;
- }
- break;
- case PV_FOURIER_PWR:
- // write header
- fout << "TITLE" << endl;
- fout << " " << fMsrHandler->GetMsrTitle()->Data() << endl;
- fout << "LABELS" << endl;
- switch (fFourier.fUnits) {
- case FOURIER_UNIT_FIELD:
- str = TString(" Field (G)");
- break;
- case FOURIER_UNIT_FREQ:
- str = TString(" Frequency (MHz)");
- break;
- case FOURIER_UNIT_CYCLES:
- str = TString(" Angular Frequency (Mc/s)");
- break;
- default:
- str = TString(" ????");
- break;
- }
- fout << str.Data() << endl;
- for (unsigned int j=0; jGetXaxis()->GetFirst(); // first bin of the zoomed range
- xmaxBin = fData[0].dataFourierPwr->GetXaxis()->GetLast(); // last bin of the zoomed range
- xmin = fData[0].dataFourierPwr->GetXaxis()->GetBinCenter(xminBin);
- xmax = fData[0].dataFourierPwr->GetXaxis()->GetBinCenter(xmaxBin);
- // get data
- for (int i=1; iGetNbinsX()-1; i++) {
- xval = fData[0].dataFourierPwr->GetBinCenter(i); // get x-val
- if ((xval < xmin) || (xval > xmax))
- continue;
- fout << xval << ",,, ";
- for (unsigned int j=0; jGetBinContent(i) << ",,, ";
- theoBin = fData[j].theoryFourierPwr->FindBin(xval);
- fout << fData[j].theoryFourierPwr->GetBinContent(theoBin) << ",,, ";
- }
- // write last data set
- fout << fData[fData.size()-1].dataFourierPwr->GetBinContent(i) << ",,, ";
- theoBin = fData[fData.size()-1].theoryFourierPwr->FindBin(xval);
- fout << fData[fData.size()-1].theoryFourierPwr->GetBinContent(theoBin) << ",,, ";
- fout << endl;
- }
- break;
- case PV_FOURIER_PHASE:
- // write header
- fout << "TITLE" << endl;
- fout << " " << fMsrHandler->GetMsrTitle()->Data() << endl;
- fout << "LABELS" << endl;
- switch (fFourier.fUnits) {
- case FOURIER_UNIT_FIELD:
- str = TString(" Field (G)");
- break;
- case FOURIER_UNIT_FREQ:
- str = TString(" Frequency (MHz)");
- break;
- case FOURIER_UNIT_CYCLES:
- str = TString(" Angular Frequency (Mc/s)");
- break;
- default:
- str = TString(" ????");
- break;
- }
- fout << str.Data() << endl;
- for (unsigned int j=0; jGetXaxis()->GetFirst(); // first bin of the zoomed range
- xmaxBin = fData[0].dataFourierPhase->GetXaxis()->GetLast(); // last bin of the zoomed range
- xmin = fData[0].dataFourierPhase->GetXaxis()->GetBinCenter(xminBin);
- xmax = fData[0].dataFourierPhase->GetXaxis()->GetBinCenter(xmaxBin);
- // get data
- for (int i=1; iGetNbinsX()-1; i++) {
- xval = fData[0].dataFourierPhase->GetBinCenter(i); // get x-val
- if ((xval < xmin) || (xval > xmax))
- continue;
- fout << xval << ",,, ";
- for (unsigned int j=0; jGetBinContent(i) << ",,, ";
- theoBin = fData[j].theoryFourierPhase->FindBin(xval);
- fout << fData[j].theoryFourierPhase->GetBinContent(theoBin) << ",,, ";
- }
- // write last data set
- fout << fData[fData.size()-1].dataFourierPhase->GetBinContent(i) << ",,, ";
- theoBin = fData[fData.size()-1].theoryFourierPhase->FindBin(xval);
- fout << fData[fData.size()-1].theoryFourierPhase->GetBinContent(theoBin) << ",,, ";
- fout << endl;
- }
- break;
- default:
- break;
- }
- }
- break;
- case MSR_PLOT_NON_MUSR:
- if (fDifferenceView) { // difference view plot
- switch (fCurrentPlotView) {
- case PV_DATA:
- // write header
- fout << "TITLE" << endl;
- fout << " " << fMsrHandler->GetMsrTitle()->Data() << endl;
- fout << "LABELS" << endl;
- fout << " Time (us)" << endl;
- for (unsigned int j=0; jGetXaxis()->GetFirst(); // first bin of the zoomed range
- xmaxBin = fNonMusrData[0].diff->GetXaxis()->GetLast(); // last bin of the zoomed range
- xmin = fNonMusrData[0].diff->GetXaxis()->GetBinCenter(xminBin);
- xmax = fNonMusrData[0].diff->GetXaxis()->GetBinCenter(xmaxBin);
- // get data
- for (int i=0; iGetN(); i++) {
- fNonMusrData[0].diff->GetPoint(i,xval,yval); // get values
- if ((xval < xmin) || (xval > xmax))
- continue;
- fout << xval << ",,, ";
- for (unsigned int j=0; jGetPoint(i,xval,yval); // get values
- fout << yval << ", ";
- fout << fNonMusrData[j].diff->GetErrorY(i) << ",, ";
- }
- // write last data set
- fNonMusrData[fNonMusrData.size()-1].diff->GetPoint(i,xval,yval); // get values
- fout << yval << ", ";
- fout << fNonMusrData[fNonMusrData.size()-1].diff->GetErrorY(i) << ",,";
- fout << endl;
- }
- break;
- case PV_FOURIER_REAL:
- break;
- case PV_FOURIER_IMAG:
- break;
- case PV_FOURIER_REAL_AND_IMAG:
- break;
- case PV_FOURIER_PWR:
- break;
- case PV_FOURIER_PHASE:
- break;
- default:
- break;
- }
- } else { // not a difference view plot
- switch (fCurrentPlotView) {
- case PV_DATA:
- // write header
- fout << "TITLE" << endl;
- fout << " " << fMsrHandler->GetMsrTitle()->Data() << endl;
- fout << "LABELS" << endl;
- fout << " Time (us)" << endl;
- for (unsigned int j=0; jGetXaxis()->GetFirst(); // first bin of the zoomed range
- xmaxBin = fNonMusrData[0].data->GetXaxis()->GetLast(); // last bin of the zoomed range
- xmin = fNonMusrData[0].data->GetXaxis()->GetBinCenter(xminBin);
- xmax = fNonMusrData[0].data->GetXaxis()->GetBinCenter(xmaxBin);
- // get data
- for (int i=0; iGetN(); i++) {
- fNonMusrData[0].data->GetPoint(i,xval,yval); // get values
- if ((xval < xmin) || (xval > xmax))
- continue;
- fout << xval << ",,, ";
- for (unsigned int j=0; jGetPoint(i,xval,yval); // get values
- fout << yval << ", ";
- fout << fNonMusrData[j].data->GetErrorY(i) << ",, ";
- theoBin = FindBin(xval, fNonMusrData[j].theory);
- fNonMusrData[j].theory->GetPoint(theoBin,xval,yval); // get values
- fout << yval << ",,,";
- }
- // write last data set
- fNonMusrData[fNonMusrData.size()-1].data->GetPoint(i,xval,yval); // get values
- fout << yval << ", ";
- fout << fNonMusrData[fNonMusrData.size()-1].data->GetErrorY(i) << ",, ";
- theoBin = FindBin(xval, fNonMusrData[fNonMusrData.size()-1].theory);
- fNonMusrData[fNonMusrData.size()-1].theory->GetPoint(theoBin,xval,yval); // get values
- fout << yval << ",,,";
- fout << endl;
- }
- break;
- case PV_FOURIER_REAL:
- break;
- case PV_FOURIER_IMAG:
- break;
- case PV_FOURIER_REAL_AND_IMAG:
- break;
- case PV_FOURIER_PWR:
- break;
- case PV_FOURIER_PHASE:
- break;
- default:
- break;
- }
- }
- break;
- default:
- break;
- }
-
- // close file
- fout.close();
-
- cout << endl << ">> Data windows saved in db format ..." << endl;
-}
diff --git a/src/include/PMusrCanvas.h b/src/include/PMusrCanvas.h
index 2270b84a..49652613 100644
--- a/src/include/PMusrCanvas.h
+++ b/src/include/PMusrCanvas.h
@@ -81,7 +81,6 @@
#define P_MENU_ID_FOURIER_PHASE_MINUS 106
#define P_MENU_ID_SAVE_ASCII 200
-#define P_MENU_ID_SAVE_DB 201
//------------------------------------------------------------------------
/**
@@ -254,7 +253,6 @@ class PMusrCanvas : public TObject, public TQObject
virtual void DecrementFourierPhase();
virtual void SaveDataAscii();
- virtual void SaveDataDb();
ClassDef(PMusrCanvas, 1)
};