Subversion Repositories f9daq

Compare Revisions

Ignore whitespace Rev 171 → Rev 172

/lab/sipmscan/trunk/src/analysis.cpp
29,7 → 29,7
// cTemp = new char[1024];
// sprintf(cTemp, "%s/results", rootdir);
// file_info.fIniDir = StrDup(cTemp);
file_info.fIniDir = StrDup(currentOpenDir);
file_info.fIniDir = StrDup(currentAnalDir);
file_info.fMultipleSelection = kFALSE;
new TGFileDialog(gClient->GetDefaultRoot(), fMain, kFDOpen, &file_info);
// delete[] cTemp;
58,7 → 58,7
}
else if(analTab->GetCurrent() == 1) // Relative PDE
{
relPde->widgetChBox[1]->SetState(kButtonDown);
relPde->widgetChBox[0]->SetState(kButtonDown);
midPeak->widgetChBox[0]->SetState(kButtonUp);
zeroAngle->widgetNE[0]->SetNumber(0.00);
}
370,6 → 370,7
double range[4];
TGraph2D *gScan2D;
gScan2D = new TGraph2D();
gScan2D->SetName("edgescan");
range[0] = TMath::MinElement(nrfiles, surfxy);
range[1] = TMath::MaxElement(nrfiles, surfxy);
range[2] = TMath::MinElement(nrfiles, surfz);
896,7 → 897,7
if(j > 50) break;
}
 
if(npeaks > 1)
if( (npeaks > 1) && (nrfit > 1) )
{
int bin = histtemp->GetXaxis()->FindBin((int)(meanparam+meansel[sortindex[1]])/2);
adcpedestal[0] = (meanparam+meansel[sortindex[1]])/2;
993,7 → 994,14
if( (angle[i] == zeroAngle->widgetNE[0]->GetNumber()) && (darkhist != i) )
zeromu = i;
 
muval[i] = -TMath::Log((double)k2/(double)k);
// Checking for errors when fitting a histogram
if(k2 == 0)
{
printf("PhotonMu(): No pedestal entries found. Check the fitting results.\n");
muval[i] = -1;
}
else
muval[i] = -TMath::Log((double)k2/(double)k);
printf("PhotonMu(): %lf: muval = %lf\n", angle[i], muval[i]);
 
inroot->Close();
1040,6 → 1048,10
if(i == darkhist)
exclude = false;
 
// Wrong fit
if(muval[i] == -1)
exclude = true;
 
// If nothing excluded, pass the points in pointest variable like in a FIFO
if(!exclude)
{
1740,6 → 1752,7
double range[4];
TGraph2D *gScan2D;
gScan2D = new TGraph2D();
gScan2D->SetName("surfscan");
range[0] = TMath::MinElement(nrfiles, surfx);
range[1] = TMath::MaxElement(nrfiles, surfx);
range[2] = TMath::MinElement(nrfiles, surfy);
1842,6 → 1855,8
{
gCanvas->Modified();
gCanvas->Update();
 
UpdateIntegrateSurface(-1);
}
}
}
/lab/sipmscan/trunk/src/connections.cpp
597,7 → 597,6
}
meas_data->Fill();
n++;
sleep(1);
 
// Start making a scope measurement
/* if( (gScopeDaq->scopeUseType == 2) && (sCamaclink->IsDown()) )
1210,6 → 1209,32
#endif
PositionSet(1);
}
// Abort any motion
else if(opt == 4)
{
sprintf(cmd, "sudo %s/src/MIKRO/mikro_ctrl -n 1 -c ab", rootdir); // X-axis
#if WORKSTAT == 'I'
printf("Emergency stop of the current movement of all linear tables.\n");
retTemp = system(cmd);
#else
printf("Cmd: %s\n",cmd);
#endif
 
sprintf(cmd, "sudo %s/src/MIKRO/mikro_ctrl -n 2 -c ab", rootdir); // Y-axis
#if WORKSTAT == 'I'
retTemp = system(cmd);
#else
printf("Cmd: %s\n",cmd);
#endif
 
sprintf(cmd, "sudo %s/src/MIKRO/mikro_ctrl -n 3 -c ab", rootdir); // Z-axis
#if WORKSTAT == 'I'
retTemp = system(cmd);
#else
printf("Cmd: %s\n",cmd);
#endif
PositionSet(1);
}
}
 
// Set, get, home or reset the rotation platform
1296,23 → 1321,40
#endif
RotationSet(1);
}
// Abort any motion
else if(opt == 4)
{
sprintf(cmd, "sudo %s/src/MIKRO/mikro_ctrl -n 4 -c ab", rootdir);
#if WORKSTAT == 'I'
printf("Emergency stop of the current movement of the rotation platform.\n");
retTemp = system(cmd);
#else
printf("Cmd: %s\n",cmd);
#endif
RotationSet(1);
}
}
 
// File browser for selecting the save file
void TGAppMainFrame::SaveFile()
{
// char *cTemp;
 
TGFileInfo file_info;
const char *filetypes[] = {"Histograms",histextall,0,0};
char *cTemp;
file_info.fFileTypes = filetypes;
cTemp = new char[1024];
sprintf(cTemp, "%s/results", rootdir);
file_info.fIniDir = StrDup(cTemp);
// cTemp = new char[1024];
// sprintf(cTemp, "%s/results", rootdir);
// file_info.fIniDir = StrDup(cTemp);
file_info.fIniDir = StrDup(currentMeasDir);
new TGFileDialog(gClient->GetDefaultRoot(), fMain, kFDSave, &file_info);
delete[] cTemp;
// delete[] cTemp;
 
if(file_info.fFilename != NULL)
{
fileName->widgetTE->SetText(file_info.fFilename);
remove_from_last(file_info.fFilename, '/', currentMeasDir);
}
}
 
// Start the acquisition
1605,6 → 1647,8
measProgress->widgetPB->SetPosition(progVal);
gVirtualX->Update(1);
 
int nrAverMeas = -1;
 
clkt0 = clock();
timet0 = time(NULL);
 
1668,8 → 1712,8
progVal = (float)(100.00/(abs(repetX)*abs(repetY)*abs(repetZ)))*(k*abs(repetX)*abs(repetY) + j*abs(repetX) + i);
measProgress->widgetPB->SetPosition(progVal);
 
TimeEstimate(clkt0, timet0, progVal, cmd, doublewait*((abs(repetX)+2)*abs(repetY)+2)*abs(repetZ));
measProgress->widgetTE->SetText(cmd);
// TimeEstimate(clkt0, timet0, progVal, cmd, doublewait*((abs(repetX)+2)*abs(repetY)+2)*abs(repetZ));
// measProgress->widgetTE->SetText(cmd);
 
gVirtualX->Update(1);
 
1687,6 → 1731,9
printf("Next X position...\n");
fflush(stdout);
 
TimeEstimateNew(nrAverMeas, clkt0, timet0, repetX, repetY, repetZ, doublewait, 2*doublewait, 2*doublewait, cmd);
measProgress->widgetTE->SetText(cmd);
printf("Waiting for position change...\n");
sleep(doublewait);
1694,8 → 1741,9
printf("Continuing...\n");
// Here comes function to start histogramming <<<<<<<<<<<<<<<<<<<<<<<<
clkt0 = clock();
RunMeas((void*)0, (j*repetX + i), scanon);
nrAverMeas++;
fflush(stdout);
 
i++;
1969,7 → 2017,7
// cTemp = new char[1024];
// sprintf(cTemp, "%s/results", rootdir);
// file_info.fIniDir = StrDup(cTemp);
file_info.fIniDir = StrDup(currentOpenDir);
file_info.fIniDir = StrDup(currentAnalDir);
file_info.fMultipleSelection = kTRUE;
new TGFileDialog(gClient->GetDefaultRoot(), fMain, kFDOpen, &file_info);
// delete[] cTemp;
1983,7 → 2031,7
while(file=(TSystemFile*)next())
{
fname = file->GetName();
remove_from_last((char*)fname.Data(), '/', currentOpenDir);
remove_from_last((char*)fname.Data(), '/', currentAnalDir);
fileList->AddEntry(fname.Data(), i);
i++;
}
/lab/sipmscan/trunk/src/new_tabs.cpp
588,6 → 588,7
if(DBGSIG > 1) printf("TempAnalysisTab(): Current tab = %d, Nr. of tabs = %d\n", startTab, newTab );
 
double numform[6];
double numform2[6];
int subgroup[2];
subgroup[0] = mainTab->GetWidth()-10;
615,7 → 616,7
}
tempAnalysisCanvas->GetCanvas()->SetGrid();
 
// Specific options for plotting (analtype: 0 = Normal integration, 1 = Edge scans, 2 = Relative PDE,...)
// Specific options for plotting (analtype: 0 = Normal integration, 1 = Edge scans, 2 = Relative PDE, 3 = Breakdown voltage, 4 = Surface scan, 5 = Timing,...)
// Normal integration
if(analtype == 0)
{
653,8 → 654,57
 
runningAver->widgetNE[0]->Connect("ValueSet(Long_t)", "TGAppMainFrame", this, "ApplyRunningAver()");
runningOff->widgetNE[0]->Connect("ValueSet(Long_t)", "TGAppMainFrame", this, "ApplyRunningAver()");
 
ToolTipSetRelativePDE();
}
// Breakdown voltage
else if(analtype == 3)
{
}
// Surface scan
else if(analtype == 4)
{
fH1 = new TGCompositeFrame(fV1, subgroup[0], subgroup[1], kHorizontalFrame);
 
// Values to create a crop of the graph
if(DBGSIG > 1) printf("TempAnalysisTab(): Creating TSubStructure *xCrop -> Set how many X parts of the surface scan to crop.\n");
xCrop = new TSubStructure();
for(int i = 0; i < 6; i++) { numform[i] = 0; numform2[i] = 0; }
if(posUnitsPlot->widgetCB->GetSelected() == 0) { numform[0] = 8; numform[2] = 2; numform2[0] = 8; numform2[2] = 2; }
else if(posUnitsPlot->widgetCB->GetSelected() == 1) { numform[0] = 8; numform[1] = 2; numform[2] = 2; numform2[0] = 8; numform2[1] = 2; numform2[2] = 2; }
if(xCrop->TGLabelDoubleNEntry(fH1, subgroup[0]/4-50, 30, "X axis crop values:", 0, numform, 0, numform2, "center"))
fH1->AddFrame(xCrop->outsidebox, f1expandXpad);
 
if(DBGSIG > 1) printf("TempAnalysisTab(): Creating TSubStructure *yCrop -> Set how many Y parts of the surface scan to crop.\n");
yCrop = new TSubStructure();
for(int i = 0; i < 6; i++) { numform[i] = 0; numform2[i] = 0; }
if(posUnitsPlot->widgetCB->GetSelected() == 0) { numform[0] = 8; numform[2] = 2; numform2[0] = 8; numform2[2] = 2; }
else if(posUnitsPlot->widgetCB->GetSelected() == 1) { numform[0] = 8; numform[1] = 2; numform[2] = 2; numform2[0] = 8; numform2[1] = 2; numform2[2] = 2; }
if(yCrop->TGLabelDoubleNEntry(fH1, subgroup[0]/4-50, 30, "Y axis crop values:", 0, numform, 0, numform2, "center"))
fH1->AddFrame(yCrop->outsidebox, f1expandXpad);
 
if(DBGSIG > 1) printf("TempAnalysisTab(): Creating TSubStructure *interpolSize -> Set the interpolation step size of the 2D graph.\n");
interpolSize = new TSubStructure();
for(int i = 0; i < 6; i++) { numform[i] = 0; numform2[i] = 0; }
if(posUnitsPlot->widgetCB->GetSelected() == 0) { numform[0] = 8; numform[2] = 2; numform2[0] = 8; numform2[2] = 2; }
else if(posUnitsPlot->widgetCB->GetSelected() == 1) { numform[0] = 8; numform[1] = 2; numform[2] = 2; numform2[0] = 8; numform2[1] = 2; numform2[2] = 2; }
if(interpolSize->TGLabelDoubleNEntry(fH1, subgroup[0]/4+20, 30, "Interpol. step size:", 500, numform, 500, numform2, "center"))
fH1->AddFrame(interpolSize->outsidebox, f1expandXpad);
 
if(DBGSIG > 1) printf("TempAnalysisTab(): Creating TSubStructure *updateCrop -> 2 buttons for either updating the crop or making an integral\n");
updateCrop = new TSubStructure();
const char *selnames[512] = {"Update","Integrate surface scan"};
if(updateCrop->TGMultiButton(fH1, subgroup[0]/4-50, 30, 2, selnames, "center"))
fH1->AddFrame(updateCrop->outsidebox, f1expandXpad);
 
fV1->AddFrame(fH1, f1expandXpad);
 
updateCrop->widgetTB[0]->Connect("Clicked()", "TGAppMainFrame", this, "UpdateIntegrateSurface(=0)");
updateCrop->widgetTB[1]->Connect("Clicked()", "TGAppMainFrame", this, "UpdateIntegrateSurface(=1)");
 
ToolTipSetSurfaceScan();
}
 
// Export and close buttons
if(DBGSIG > 1) printf("TempAnalysisTab(): Creating TSubStructure *exportExitAnalysis -> 2 buttons for either exporting the plot or closing the tab\n");
exportExitAnalysis = new TSubStructure();
674,6 → 724,8
fMain->MapWindow();
fMain->Layout();
 
ToolTipSetTempAnalysis();
 
// Set tab ID
*tabid = newTab;
 
775,6 → 827,83
}
}
 
void TGAppMainFrame::UpdateIntegrateSurface(int val)
{
TCanvas *gCanvas = tempAnalysisCanvas->GetCanvas();
TList *funcList = (TList*)gCanvas->GetListOfPrimitives();
unsigned int nrfunc = funcList->GetSize();
TGraph2D *baseGr;
char funcname[512];
 
double integralValue;
int pointCount;
double xStepsize, yStepsize;
int xInterpol, yInterpol;
 
for(int i = 0; i < nrfunc; i++)
{
sprintf(funcname, "%s", funcList->At(i)->GetName());
if(DBGSIG) printf("UpdateIntegrateSurface(): Function is: %s\n", funcname);
 
if(strcmp(funcname,"surfscan") == 0)
{
baseGr = (TGraph2D*)gCanvas->GetPrimitive(funcname);
 
// Just set the initial things for the surface scan
if(val == -1)
{
xCrop->widgetNE[0]->SetNumber(baseGr->GetXaxis()->GetXmin());
xCrop->widgetNE[1]->SetNumber(baseGr->GetXaxis()->GetXmax());
yCrop->widgetNE[0]->SetNumber(baseGr->GetYaxis()->GetXmin());
yCrop->widgetNE[1]->SetNumber(baseGr->GetYaxis()->GetXmax());
 
xCrop->widgetNE[0]->SetLimits(TGNumberFormat::kNELLimitMinMax, baseGr->GetXaxis()->GetXmin(), baseGr->GetXaxis()->GetXmax());
xCrop->widgetNE[1]->SetLimits(TGNumberFormat::kNELLimitMinMax, baseGr->GetXaxis()->GetXmin(), baseGr->GetXaxis()->GetXmax());
yCrop->widgetNE[0]->SetLimits(TGNumberFormat::kNELLimitMinMax, baseGr->GetYaxis()->GetXmin(), baseGr->GetYaxis()->GetXmax());
yCrop->widgetNE[1]->SetLimits(TGNumberFormat::kNELLimitMinMax, baseGr->GetYaxis()->GetXmin(), baseGr->GetYaxis()->GetXmax());
}
// Update the cropping
else if(val == 0)
{
baseGr->GetXaxis()->SetRange(xCrop->widgetNE[0]->GetNumber(), xCrop->widgetNE[1]->GetNumber());
baseGr->GetXaxis()->SetRangeUser(xCrop->widgetNE[0]->GetNumber(), xCrop->widgetNE[1]->GetNumber());
baseGr->GetYaxis()->SetRange(yCrop->widgetNE[0]->GetNumber(), yCrop->widgetNE[1]->GetNumber());
baseGr->GetYaxis()->SetRangeUser(yCrop->widgetNE[0]->GetNumber(), yCrop->widgetNE[1]->GetNumber());
 
gCanvas->Modified();
gCanvas->Update();
}
// Make an integral over all histogram values in range
else if(val == 1)
{
integralValue = 0;
pointCount = 0;
 
xStepsize = interpolSize->widgetNE[0]->GetNumber();
yStepsize = interpolSize->widgetNE[1]->GetNumber();
xInterpol = (int)((xCrop->widgetNE[1]->GetNumber() - xCrop->widgetNE[0]->GetNumber())/xStepsize);
yInterpol = (int)((yCrop->widgetNE[1]->GetNumber() - yCrop->widgetNE[0]->GetNumber())/yStepsize);
 
for(int j = 0; j < xInterpol; j++)
{
for(int k = 0; k < yInterpol; k++)
{
if((xCrop->widgetNE[0]->GetNumber()+j*xStepsize+xStepsize/2. <= xCrop->widgetNE[1]->GetNumber()) && (yCrop->widgetNE[0]->GetNumber()+k*yStepsize+yStepsize/2. <= yCrop->widgetNE[1]->GetNumber()))
{
if(DBGSIG) cout << "Interpolation at (" << xCrop->widgetNE[0]->GetNumber()+j*xStepsize+xStepsize/2. << "," << yCrop->widgetNE[0]->GetNumber()+k*yStepsize+yStepsize/2. << ") is " << baseGr->Interpolate(xCrop->widgetNE[0]->GetNumber()+j*xStepsize+xStepsize/2., yCrop->widgetNE[0]->GetNumber()+k*yStepsize+yStepsize/2.) << endl;
integralValue += baseGr->Interpolate(xCrop->widgetNE[0]->GetNumber()+j*xStepsize+xStepsize/2., yCrop->widgetNE[0]->GetNumber()+k*yStepsize+yStepsize/2.);
pointCount++;
}
}
}
 
cout << "Total integral value (" << pointCount << " points) = " << integralValue << endl << "Total normated integral value = " << (double)integralValue/pointCount << endl;
 
}
}
}
}
 
void TGAppMainFrame::ExportTempAnalysisPlot()
{
TCanvas *gCanvas = tempAnalysisCanvas->GetCanvas();
786,7 → 915,7
cTemp = new char[1024];
// sprintf(cTemp, "%s/results", rootdir);
// file_info.fIniDir = StrDup(cTemp);
file_info.fIniDir = StrDup(currentOpenDir);
file_info.fIniDir = StrDup(currentAnalDir);
new TGFileDialog(gClient->GetDefaultRoot(), fMain, kFDSave, &file_info);
delete[] cTemp;
 
/lab/sipmscan/trunk/src/separate_functions.cpp
165,6 → 165,37
sprintf(retEstim, "Estimated end time: %s", ctemp);
}
 
void TimeEstimateNew(int nr, clock_t stopw0, time_t time0, int rX, int rY, int rZ, int xWait, int yWait, int zWait, char *retEstim)
{
clock_t clkt1;
char ctemp[512];
double timeSec;
double averMeasTime;
 
clkt1 = clock() - stopw0;
if(nr == -1)
return;
else if(nr == 0)
averMeasTime = (double)clkt1/CLOCKS_PER_SEC;
else
averMeasTime = (averMeasTime + (double)clkt1/CLOCKS_PER_SEC)/2.0;
 
// calculate the time of one row
timeSec = rX*(xWait + averMeasTime);
// calculate the time of a surface scan
timeSec = timeSec + rY*(timeSec + yWait);
// calculate the time of a zscan
if(rZ == 1)
timeSec = timeSec + zWait;
else
timeSec = timeSec + rZ*(timeSec + zWait);
 
GetTime((int)timeSec+(int)time0, ctemp);
sprintf(retEstim, "Estimated end time: %s", ctemp);
 
printf("TimeEstimateNew(): Average time of measurement = %lf, Measurement time = %lf, Finishing time = %s\n", averMeasTime, timeSec, ctemp);
}
 
void NormateSet(int file, int nrpoint, double *min, double *max, double *setCount, double *setAcc)
{
int count = 0;
/lab/sipmscan/trunk/src/sipmscan.cpp
15,8 → 15,10
char *cTemp;
 
// Prepare the default open directory (basedir)
currentOpenDir = new char[1024];
sprintf(currentOpenDir, "%s/results", rootdir);
currentMeasDir = new char[1024];
sprintf(currentMeasDir, "%s/results", rootdir);
currentAnalDir = new char[1024];
sprintf(currentAnalDir, "%s/results", rootdir);
 
// CAMAC and Scope objects
gDaq = new daq();
567,10 → 569,10
fG1->AddFrame(fH2, f1expandXpad);
// Set, get, home and reset position buttons
if(DBGSIG > 1) printf("AppLayout(): Creating TSubStructure *posButtons -> 4 buttons (set position, read current position, home the motor and reset all three controllers)\n");
if(DBGSIG > 1) printf("AppLayout(): Creating TSubStructure *posButtons -> 5 buttons (set position, read current position, home the motor, reset all three controllers and emergency stop)\n");
posButtons = new TSubStructure();
selnames[0] = "Set"; selnames[1] = "Get"; selnames[2] = "Home"; selnames[3] = "Reset";
if(posButtons->TGMultiButton(fG1, 3*subgroup[0]/4, 30, 4, selnames, "center"))
selnames[0] = "Set"; selnames[1] = "Get"; selnames[2] = "Home"; selnames[3] = "Reset"; selnames[4] = "Emergency stop";
if(posButtons->TGMultiButton(fG1, 3*subgroup[0]/4, 30, 5, selnames, "center"))
fG1->AddFrame(posButtons->outsidebox, f1expandXpad);
 
// Position scan controls
627,10 → 629,10
fG1->AddFrame(rotPos->outsidebox, f1expandXpad);
// Set, get, home and reset rotation buttons
if(DBGSIG > 1) printf("AppLayout(): Creating TSubStructure *rotButtons -> 4 buttons (set rotation, read current rotation, home the motor and reset controller)\n");
if(DBGSIG > 1) printf("AppLayout(): Creating TSubStructure *rotButtons -> 5 buttons (set rotation, read current rotation, home the motor, reset controller and emergency stop)\n");
rotButtons = new TSubStructure();
selnames[0] = "Set"; selnames[1] = "Get"; selnames[2] = "Home"; selnames[3] = "Reset";
if(rotButtons->TGMultiButton(fG1, 3*subgroup[0]/4, 30, 4, selnames, "center"))
selnames[0] = "Set"; selnames[1] = "Get"; selnames[2] = "Home"; selnames[3] = "Reset"; selnames[4] = "Emergency stop";
if(rotButtons->TGMultiButton(fG1, 3*subgroup[0]/4, 30, 5, selnames, "center"))
fG1->AddFrame(rotButtons->outsidebox, f1expandXpad);
 
// Rotation scan controls
709,6 → 711,14
measLayout[2]->AddFrame(measProgress->outsidebox, f1expandXpad);
}
 
Pixel_t pixel_color;
gClient->GetColorByName("white", pixel_color);
posButtons->widgetTB[4]->SetTextColor(pixel_color);
rotButtons->widgetTB[4]->SetTextColor(pixel_color);
gClient->GetColorByName("red", pixel_color);
posButtons->widgetTB[4]->SetBackgroundColor(pixel_color);
rotButtons->widgetTB[4]->SetBackgroundColor(pixel_color);
 
// Actions for Main window //TODO
vOutOpt->widgetChBox[0]->Connect("Clicked()", "TGAppMainFrame", this, "NegativePolarity()");
vOutButtons->widgetTB[0]->Connect("Clicked()", "TGAppMainFrame", this, "VoltOut(=0)");
718,10 → 728,12
posButtons->widgetTB[1]->Connect("Clicked()", "TGAppMainFrame", this, "PositionSet(=1)");
posButtons->widgetTB[2]->Connect("Clicked()", "TGAppMainFrame", this, "PositionSet(=2)");
posButtons->widgetTB[3]->Connect("Clicked()", "TGAppMainFrame", this, "PositionSet(=3)");
posButtons->widgetTB[4]->Connect("Clicked()", "TGAppMainFrame", this, "PositionSet(=4)");
rotButtons->widgetTB[0]->Connect("Clicked()", "TGAppMainFrame", this, "RotationSet(=0)");
rotButtons->widgetTB[1]->Connect("Clicked()", "TGAppMainFrame", this, "RotationSet(=1)");
rotButtons->widgetTB[2]->Connect("Clicked()", "TGAppMainFrame", this, "RotationSet(=2)");
rotButtons->widgetTB[3]->Connect("Clicked()", "TGAppMainFrame", this, "RotationSet(=3)");
rotButtons->widgetTB[4]->Connect("Clicked()", "TGAppMainFrame", this, "RotationSet(=4)");
fileName->widgetTB[0]->Connect("Clicked()", "TGAppMainFrame", this, "SaveFile()");
measProgress->widgetTB[0]->Connect("Clicked()", "TGAppMainFrame", this, "StartAcq()");
// TODO - Save file
/lab/sipmscan/trunk/src/tooltips.cpp
84,6 → 84,8
SetToolTipText("Move the movement table to its predetermined initial position (home).");
posButtons->widgetTB[3]->
SetToolTipText("Reset, initialize and home all controllers for the movement table. Only use,\nif there is a problem with moving the table. If further problems\noccur, check under \"Movement table\" in the \"Help\" file.");
posButtons->widgetTB[4]->
SetToolTipText("Emergency stop of all three linear motors. Use if you know the motor is about to hit something.");
 
rotPos->widgetNE[0]->GetNumberEntry()->
SetToolTipText("Incidence angle of the laser onto the sample (in units set by \"Rotation units\" in the\n\"Settings pane\"). 0 degrees corresponds to perpendicular laser light onto the surface.");
101,6 → 103,8
SetToolTipText("Move the rotation sample holder to angle 0 deg.");
rotButtons->widgetTB[3]->
SetToolTipText("Reposition to 0 deg, reset and initialize controller for the rotation sample holder.\nOnly use, if there is a problem with moving the table. If further problems\noccur, check under \"Movement table\" in the \"Help\" file.");
rotButtons->widgetTB[4]->
SetToolTipText("Emergency stop of the rotation samble holder. Use if you know the motor is about to hit something.");
 
evtNum->widgetNE[0]->GetNumberEntry()->
SetToolTipText("Number of events to obtain before stopping data acquisition.");
113,6 → 117,8
 
measProgress->widgetTB[0]->
SetToolTipText("Start a new measurement. Stopping a measurement before finishing is\nonly possible for single measurements (not for scans).");
/* measProgress->widgetTE->
SetToolTipText("Estimated time for the current measurement to end.\nIf the system has a heavy load, the time will be higher.");*/
 
// Analysis -------------------------------------------------------------------------
// Histogram file selection pane
252,3 → 258,39
SetToolTipText("Open the currently visible plot in the \"Histogram\"\nwindow in a new tab to enable further editing.");
// posUnitsPlot->widgetTB[0]->SetToolTipText("Open the currently visible plot in the \"Histogram\"\nwindow in a new tab to enable further editing.");
}
 
void TGAppMainFrame::ToolTipSetSurfaceScan()
{
xCrop->widgetNE[0]->GetNumberEntry()->
SetToolTipText("Position value to cut on left side of the surface scan.");
xCrop->widgetNE[1]->GetNumberEntry()->
SetToolTipText("Position value to cut on right side of the surface scan.");
yCrop->widgetNE[0]->GetNumberEntry()->
SetToolTipText("Position value to cut on the bottom of the surface scan.");
yCrop->widgetNE[1]->GetNumberEntry()->
SetToolTipText("Position value to cut on the top of the surface scan.");
interpolSize->widgetNE[0]->GetNumberEntry()->
SetToolTipText("Set the step size of X axis to be used for integration.");
interpolSize->widgetNE[1]->GetNumberEntry()->
SetToolTipText("Set the step size of Y axis to be used for integration.");
updateCrop->widgetTB[0]->
SetToolTipText("Update the surface scan to the current cut settings.");
updateCrop->widgetTB[1]->
SetToolTipText("Start integration of the surface scan using the interpolation step size.");
}
 
void TGAppMainFrame::ToolTipSetRelativePDE()
{
runningOff->widgetNE[0]->GetNumberEntry()->
SetToolTipText("The offset for the running average estimation.");
runningAver->widgetNE[0]->GetNumberEntry()->
SetToolTipText("Set how many points to use for running average. If set to 0, running average will not be plotted.");
}
 
void TGAppMainFrame::ToolTipSetTempAnalysis()
{
exportExitAnalysis->widgetTB[0]->
SetToolTipText("Export the above plot and decide where to save it.");
exportExitAnalysis->widgetTB[1]->
SetToolTipText("Close the temporary analysis tab.");
}