Subversion Repositories f9daq

Rev

Rev 172 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
146 f9daq 1
#include "../include/sipmscan.h"
2
#include "../include/workstation.h"
3
 
4
#include <stdio.h>
5
#include <stdlib.h>
6
 
7
void TGAppMainFrame::ToolTipSet()
8
{
9
   // Measurement ----------------------------------------------------------------------
10
   // Settings pane tooltips
11
   scansOn->widgetChBox[0]->
12
           SetToolTipText("If checked, perform scan over a range of voltages, set by V(min),\nV(max) and V(step) in the \"Main measurement window\".\nIf no scans are selected, a single measurement is performed.");
13
   scansOn->widgetChBox[1]->
14
           SetToolTipText("If checked, perform surface scan over the samples\nby moving the laser in X and Y directions.\nIf no scans are selected, a single measurement is performed.");
15
   scansOn->widgetChBox[2]->
16
           SetToolTipText("If checked, perform scan over a range of Z axis values, set by\nZ(min), Z(max) and Z(step) in the \"Main measurement window\".\nIf no scans are selected, a single measurement is performed.");
17
   scansOn->widgetChBox[3]->
18
           SetToolTipText("If checked, perform scan over a range of incidence angle values, set by\nAngle(min), Angle(max) and Angle(step) in the \"Main measurement window\".\nIf no scans are selected, a single measurement is performed.");
19
   vHardlimit->widgetNE[0]->GetNumberEntry()->
20
           SetToolTipText("Maximal limit for \"Output Voltage\" to\navoid any unwanted bias voltages.");
21
   NCH->widgetNE[0]->GetNumberEntry()->
22
           SetToolTipText("Number of channels to be acquired (limited to 8).");
23
//   posUnits->widgetCB->SetToolTipText("Table controllers use their own units (1 = 0.3595 microns).\nSelect units you wish to use.");
24
   oscConnect->widgetTE->
25
           SetToolTipText("Enable use of an oscilloscope that is\nconnected to the network with VXI11.");
26
   oscConnect->widgetTB[0]->
27
           SetToolTipText("Enable use of an oscilloscope that is\nconnected to the network with VXI11.");
28
   laserInfo->widgetTE->
29
           SetToolTipText("Additional information (laser, in particular)\nthat will be written to header of output files.");
30
   chtemp->widgetNE[0]->GetNumberEntry()->
31
           SetToolTipText("Temperature inside the chamber (this value\nis written to header of output files).");
32
   liveDisp->widgetChBox[0]->
33
           SetToolTipText("If checked, update the measured ADC histogram during\na measurement in the below \"Display window\".");
34
 
35
   // Main measurement pane tooltips
36
   vOutOpt->widgetChBox[0]->
37
           SetToolTipText("If checked, the polarity of bias voltage\nwill be reversed (only negative values).");
38
   vOutOpt->widgetChBox[1]->
39
           SetToolTipText("If checked, the supplied bias voltage\nwill be enabled after pressing \"Set\".");
40
   vOut->widgetNE[0]->GetNumberEntry()->
41
           SetToolTipText("Bias voltage supplied to the sample (will be changed after pressing \"Set\").\nFor safety, the maximal value is set by \"Voltage limit\" in the \"Settings pane\").");
42
   vOutButtons->widgetTB[0]->
43
           SetToolTipText("Set the value of \"Output voltage\" to the currently selected\n\"Output channel\" for the supplied bias voltage.");
44
   vOutButtons->widgetTB[1]->
45
           SetToolTipText("Get the current value of bias voltage for\nthe currently selected \"Output channel\".");
46
   vOutButtons->widgetTB[2]->
47
           SetToolTipText("Reset the currently selected \"Output channel\". Only use, if there is a problem\nwith the bias voltage supply (interlock state on http://f9mpod.ijs.si).");
48
   vOutStart->widgetNE[0]->GetNumberEntry()->
49
           SetToolTipText("Starting bias voltage for a voltage scan.");
50
   vOutStop->widgetNE[0]->GetNumberEntry()->
51
           SetToolTipText("Finishing bias voltage for a voltage scan.");
52
   vOutStep->widgetNE[0]->GetNumberEntry()->
53
           SetToolTipText("Bias voltage step for a voltage scan. If \"V(max)-V(min)\" is not a multiple of V(step),\nthe finishing bias voltage will always be lower. If V(step) is 0, only a single\nmeasurement will be performed.\nFor more information, check under \"Voltage supply\" in the \"Help\" file.");
54
 
55
   xPos->widgetNE[0]->GetNumberEntry()->
56
           SetToolTipText("X axis position of the movement table (in units\nset by \"Position units\" in the \"Settings pane\").");
57
   yPos->widgetNE[0]->GetNumberEntry()->
58
           SetToolTipText("Y axis position of the movement table (in units\nset by \"Position units\" in the \"Settings pane\").");
59
   zPos->widgetNE[0]->GetNumberEntry()->
60
           SetToolTipText("Z axis position of the movement table (in units\nset by \"Position units\" in the \"Settings pane\").");
61
   xPosMin->widgetNE[0]->GetNumberEntry()->
62
           SetToolTipText("Starting X axis movement table position for a surface scan.");
63
   xPosMax->widgetNE[0]->GetNumberEntry()->
64
           SetToolTipText("Finishing X axis movement table position for a surface scan.");
65
   xPosStep->widgetNE[0]->GetNumberEntry()->
66
           SetToolTipText("X axis step for a surface scan. If \"X(max)-X(min)\" is not a multiple of X(step), the\nfinishing X axis position will always be lower. If X(step) is 0, only a single\nmeasurement will be performed.");
67
   yPosMin->widgetNE[0]->GetNumberEntry()->
68
           SetToolTipText("Starting Y axis movement table position for a surface scan.");
69
   yPosMax->widgetNE[0]->GetNumberEntry()->
70
           SetToolTipText("Finishing Y axis movement table position for a surface scan.");
71
   yPosStep->widgetNE[0]->GetNumberEntry()->
72
           SetToolTipText("Y axis step for a surface scan. If \"Y(max)-Y(min)\" is not a multiple of Y(step), the\nfinishing Y axis position will always be lower. If Y(step) is 0, only a single\nmeasurement will be performed.");
73
   zPosMin->widgetNE[0]->GetNumberEntry()->
74
           SetToolTipText("Starting Z axis movement table position for a Z-axis scan.");
75
   zPosMax->widgetNE[0]->GetNumberEntry()->
76
           SetToolTipText("Finishing Z axis movement table position for a Z-axis scan.");
77
   zPosStep->widgetNE[0]->GetNumberEntry()->
78
           SetToolTipText("Z axis step for a Z-axis scan. If \"Z(max)-Z(min)\" is not a multiple of Z(step), the\nfinishing Z axis position will always be lower. If Z(step) is 0, only a single\nmeasurement will be performed.");
79
   posButtons->widgetTB[0]->
80
           SetToolTipText("Set the position (X, Y and Z) of the movement table.");
81
   posButtons->widgetTB[1]->
82
           SetToolTipText("Get the current position (X, Y and Z) of the movement table.");
83
   posButtons->widgetTB[2]->
84
           SetToolTipText("Move the movement table to its predetermined initial position (home).");
85
   posButtons->widgetTB[3]->
86
           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.");
172 f9daq 87
   posButtons->widgetTB[4]->
88
           SetToolTipText("Emergency stop of all three linear motors. Use if you know the motor is about to hit something.");
146 f9daq 89
 
90
   rotPos->widgetNE[0]->GetNumberEntry()->
91
           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.");
92
   rotPosMin->widgetNE[0]->GetNumberEntry()->
93
          SetToolTipText("Starting incidence angle for a rotation scan.");
94
   rotPosMax->widgetNE[0]->GetNumberEntry()->
95
          SetToolTipText("Finishing incidence angle for a rotation scan.");
96
   rotPosStep->widgetNE[0]->GetNumberEntry()->
97
           SetToolTipText("Incidence angle step for a rotation scan. If \"Angle(max)-Angle(min)\" is not a multiple of\nAngle(step), the finishing incidence angle will always be lower. If Angle(step) is 0,\nonly a single measurement will be performed.");
98
   rotButtons->widgetTB[0]->
99
        SetToolTipText("Set the incidence angle of the rotation sample holder.");
100
   rotButtons->widgetTB[1]->
101
        SetToolTipText("Get the current incidence angle of the rotation sample holder.");
102
   rotButtons->widgetTB[2]->
103
        SetToolTipText("Move the rotation sample holder to angle 0 deg.");
104
   rotButtons->widgetTB[3]->
105
           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.");
173 f9daq 106
   rotButEmergency->widgetTB[0]->
172 f9daq 107
           SetToolTipText("Emergency stop of the rotation samble holder. Use if you know the motor is about to hit something.");
146 f9daq 108
 
109
   evtNum->widgetNE[0]->GetNumberEntry()->
110
           SetToolTipText("Number of events to obtain before stopping data acquisition.");
111
   timeStamp->widgetTE->
112
           SetToolTipText("Timestamp (date and time of measurement) at start of measurement\n(this value is written to header of output files).");
113
   fileName->widgetTE->
114
           SetToolTipText("Filename where the current measurement will be saved to (output file).\nScans will have a sequential number appended to the filename.");
115
   fileName->widgetTB[0]->
116
           SetToolTipText("Change the filename of output file.");
117
 
118
   measProgress->widgetTB[0]->
119
           SetToolTipText("Start a new measurement. Stopping a measurement before finishing is\nonly possible for single measurements (not for scans).");
172 f9daq 120
/*   measProgress->widgetTE->
121
           SetToolTipText("Estimated time for the current measurement to end.\nIf the system has a heavy load, the time will be higher.");*/
146 f9daq 122
 
123
   // Analysis -------------------------------------------------------------------------
124
   // Histogram file selection pane
125
   selectDir->widgetTB[0]->
126
           SetToolTipText("Select a single or multiple files to use them for analysis.");
127
   multiSelect->widgetChBox[0]->
128
           SetToolTipText("If checked, multiple files can be selected in the above list.");
129
   multiSelect->widgetChBox[1]->
130
           SetToolTipText("If checked, all files on the above list are selected.");
131
   fileListCtrl->widgetTB[0]->
132
           SetToolTipText("Move to the previous file on the above list.");
133
   fileListCtrl->widgetTB[1]->
134
           SetToolTipText("Move to the next file on the above list.");
135
   fileListCtrl->widgetTB[2]->
136
           SetToolTipText("Open a new tab that enables header editing for any file on the above list.");
137
   fileListCtrl->widgetTB[3]->
138
           SetToolTipText("Empties the above list of files.");
139
   dispTime->widgetTE->
140
           SetToolTipText("Measurement time for the selected file from above list.\nOnly works, when \"Multiple file select\" is not checked.");
141
   dispBias->widgetNE[0]->GetNumberEntry()->
142
           SetToolTipText("Bias voltage for the selected file from above list.\nOnly works, when \"Multiple file select\" is not checked.");
143
   dispPos->widgetTE->
144
           SetToolTipText("Movement table position (x, Y, Z) of the selected file from above list.\nOnly works, when \"Multiple file select\" is not checked.");
145
   dispTemp->widgetNE[0]->GetNumberEntry()->
146
           SetToolTipText("Chamber temperature for the selected file from above list.\nOnly works, when \"Multiple file select\" is not checked.");
147
   dispAngle->widgetNE[0]->GetNumberEntry()->
148
           SetToolTipText("Incidence angle for the selected file from above list.\nOnly works, when \"Multiple file select\" is not checked.");
149
   dispLaser->widgetTE->
150
           SetToolTipText("Additional information (laser, in particular) of the selected file from above list.\nOnly works, when \"Multiple file select\" is not checked.");
151
 
152
   // Analysis pane
153
   intSpect->widgetChBox[0]->
154
           SetToolTipText("Perform an integration of the ADC spectrum inside the \"ADC range\"\nfor various X-axis values. Used for edge scans in X-axis direction.");
155
   intSpect->widgetChBox[1]->
156
           SetToolTipText("Perform an integration of the ADC spectrum inside the \"ADC range\"\nfor various Y-axis values. Used for edge scans in Y-axis direction.");
157
   intSpect->widgetChBox[2]->
158
           SetToolTipText("Normalize the ADC integral to the number of events ([ADC integral]/[Nr. of events]).");
159
   resol2d->widgetNE[0]->GetNumberEntry()->
160
           SetToolTipText("Number of pixels in a 2D contour plot parallel to the X axis\n(determines the resolution of the actual image, not the measurement).");
161
   resol2d->widgetNE[1]->GetNumberEntry()->
162
           SetToolTipText("Number of pixels in a 2D contour plot parallel to the Y axis\n(determines the resolution of the actual image, not the measurement).");
163
   intSpectButtons->widgetTB[0]->
164
           SetToolTipText("Start the \"Integrate spectrum\" analysis and save\nresults to same folder as selected input files.");
165
   intSpectButtons->widgetTB[1]->
166
           SetToolTipText("Start the \"Integrate spectrum\" analysis and open results for further edit.");
167
   intSpectButtons->widgetTB[2]->
168
           SetToolTipText("Replace the current \"Integrate spectrum\" settings with default settings.");
169
 
170
   relPde->widgetChBox[0]->
167 f9daq 171
           SetToolTipText("Normalize the ADC integral so that it is in a range between 0 and 1.");
146 f9daq 172
   midPeak->widgetChBox[0]->
173
           SetToolTipText("Instead of taking the complete pedestal peak as noise, take only half of the peak.");
174
   darkRun->widgetTE->
175
           SetToolTipText("Filename of the dark run histogram (run with no incident light on the sample).\nMake sure this was measured right before or after the angle scan.");
176
   darkRun->widgetTB[0]->
177
           SetToolTipText("Select the file that holds the dark run histogram.");
178
   zeroAngle->widgetNE[0]->GetNumberEntry()->
179
           SetToolTipText("The angle offset of the dark run histogram from perpendicular position (0 degrees).");
180
   intSpectButtons->widgetTB[0]->
181
           SetToolTipText("Start the \"Relative PDE\" analysis and save\nresults to same folder as selected input files.");
182
   intSpectButtons->widgetTB[1]->
183
           SetToolTipText("Start the \"Relative PDE\" analysis and open results for further edit.");
184
   intSpectButtons->widgetTB[2]->
185
           SetToolTipText("Replace the current \"Relative PDE\" settings with default settings.");
186
 
187
   minPeak->widgetNE[0]->GetNumberEntry()->
188
           SetToolTipText("Minimal number of peaks visible to perform analysis\non a measurement (not counting the pedestal peak).");
189
   peakSepCalc->widgetNE[0]->GetNumberEntry()->
190
           SetToolTipText("Determines which peak separation to take for breakdown voltage analysis (most common is separation between 1 pe and 2 pe).");
191
   brDownButtons->widgetTB[0]->
192
           SetToolTipText("Start the \"Breakdown voltage\" analysis and save\nresults to same folder as selected input files.");
193
   brDownButtons->widgetTB[1]->
194
           SetToolTipText("Start the \"Breakdown voltage\" analysis and open results for further edit.");
195
   brDownButtons->widgetTB[2]->
196
           SetToolTipText("Replace the current \"Breakdown voltage\" settings with default settings.");
197
 
198
   surfScanOpt->widgetChBox[0]->
167 f9daq 199
           SetToolTipText("Normalize the ADC integral so that it is in a range between 0 and 1.");
146 f9daq 200
   surfScanOpt->widgetChBox[1]->
201
           SetToolTipText("Start the X and Y axis values from zero in the bottom left corner of the 2D plot,\ninstead of taking the actual position of the table.");
202
   resolSurf->widgetNE[0]->GetNumberEntry()->
203
           SetToolTipText("Number of pixels in a 2D contour plot parallel to the X axis\n(determines the resolution of the actual image, not the measurement).");
204
   resolSurf->widgetNE[1]->GetNumberEntry()->
205
           SetToolTipText("Number of pixels in a 2D contour plot parallel to the Y axis\n(determines the resolution of the actual image, not the measurement).");
206
   surfButtons->widgetTB[0]->
207
           SetToolTipText("Start the \"Surface scan\" analysis and save\nresults to same folder as selected input files.");
208
   surfButtons->widgetTB[1]->
209
           SetToolTipText("Start the \"Surface scan\" analysis and open results for further edit.");
210
   surfButtons->widgetTB[2]->
211
           SetToolTipText("Replace the current \"Surface scan\" settings with default settings.");
212
 
213
   fitSigma->widgetNE[0]->GetNumberEntry()->
214
           SetToolTipText("Sigma value of the peak (peaks are approximated\nto be Gaussians on top of background).");
215
   fitTresh->widgetNE[0]->GetNumberEntry()->
216
           SetToolTipText("The relative treshold between a peak and noise, below\nwhich jumps on spectrum are no longer considered as peaks.");
217
   fitInter->widgetNE[0]->GetNumberEntry()->
218
           SetToolTipText("The interpolation order for background estimation. Lower orders\nunderestimate the background, higher orders overestimate the background.");
219
   adcOffset->widgetNE[0]->GetNumberEntry()->
220
           SetToolTipText("If needed, the spectrum can be shifted by a small amount so that\nthe mean values are closer to X.0 values. Useful whenever we\nare estimating the peak with an integer number.");
221
   accError->widgetNE[0]->GetNumberEntry()->
222
           SetToolTipText("The maximal accepted error to still fit a peak. Whenever, the\nfraction of [peak mean error]/[peak mean] is above this value, the\nestimation of that peak is discarded.");
223
   pedesLow->widgetNE[0]->GetNumberEntry()->
224
           SetToolTipText("The lowest ADC channel value of, where we still search for\nthe pedestal peak. Used to discard and sudden jumps in the spectrum\nbefore the actual pedestal peak starts.");
225
   fitChecks->widgetChBox[0]->
226
           SetToolTipText("If checked, subtract the estimated background before\nfitting peaks. Otherwise, no subtraction is performed.");
227
   fitChecks->widgetChBox[1]->
228
           SetToolTipText("If checked, export fitted spectra for each selected file.");
229
 
230
   // Histogram controls pane
231
   adcRange->widgetNE[0]->GetNumberEntry()->
232
           SetToolTipText("The lower limit of the ADC range. When both lower and upper\nare set to 0, the range is automatic. This range is regarded\nin the \"Histogram\" window and when performing analysis.");
233
   adcRange->widgetNE[1]->GetNumberEntry()->
234
           SetToolTipText("The upper limit of the ADC range. When both lower and upper\nare set to 0, the range is automatic. This range is regarded\nin the \"Histogram\" window and when performing analysis.");
235
   tdcRange->widgetNE[0]->GetNumberEntry()->
236
           SetToolTipText("The lower limit of the TDC range. When both lower and upper are set\nto 0, the range is automatic. This range determines the events used\nfor plotting the ADC spectrum (events with a certain time delay to laser).");
237
   tdcRange->widgetNE[1]->GetNumberEntry()->
238
           SetToolTipText("The upper limit of the TDC range. When both lower and upper are set\nto 0, the range is automatic. This range determines the events used\nfor plotting the ADC spectrum (events with a certain time delay to laser).");
239
   yRange->widgetNE[0]->GetNumberEntry()->
240
           SetToolTipText("The lower limit of the Y axis range. When both lower\nand upper are set to 0, the range is automatic.");
241
   yRange->widgetNE[1]->GetNumberEntry()->
242
           SetToolTipText("The upper limit of the Y axis range. When both lower\nand upper are set to 0, the range is automatic.");
243
   selectCh->widgetNE[0]->GetNumberEntry()->
244
           SetToolTipText("Channel number to plot, when opening a multichannel measurement file.");
245
   plotType->widgetTB[0]->
246
           SetToolTipText("Change plot type in the \"Histogram\" window to ADC\n(Analog-to-Digital-Converter channels versus number\nof events).");
247
   plotType->widgetTB[1]->
248
           SetToolTipText("Change plot type in the \"Histogram\" window to TDC\n(Time-to-Digital-Converter in nanoseconds versus number\nof events).");
249
   plotType->widgetTB[2]->
250
           SetToolTipText("Change plot type in the \"Histogram\" window to ADC versus TDC.");
251
   histOpt->widgetChBox[0]->
252
           SetToolTipText("If checked, change the Y axis to logarithmic scale.\nOtherwise, plot in a linear scale.");
253
   histOpt->widgetChBox[1]->
254
           SetToolTipText("If checked, the plot information is hidden (such as\nplot title, fitting information, statistical information).");
255
   exportHist->widgetTB[0]->
256
           SetToolTipText("Export the currently selected histogram (ADC, TDC or\nADC/TDC from selected files) into the .pdf format.");
257
   editSelHist->widgetTB[0]->
258
           SetToolTipText("Open the currently visible plot in the \"Histogram\"\nwindow in a new tab to enable further editing.");
167 f9daq 259
//   posUnitsPlot->widgetTB[0]->SetToolTipText("Open the currently visible plot in the \"Histogram\"\nwindow in a new tab to enable further editing.");
146 f9daq 260
}
172 f9daq 261
 
262
void TGAppMainFrame::ToolTipSetSurfaceScan()
263
{
264
   xCrop->widgetNE[0]->GetNumberEntry()->
265
           SetToolTipText("Position value to cut on left side of the surface scan.");
266
   xCrop->widgetNE[1]->GetNumberEntry()->
267
           SetToolTipText("Position value to cut on right side of the surface scan.");
268
   yCrop->widgetNE[0]->GetNumberEntry()->
269
           SetToolTipText("Position value to cut on the bottom of the surface scan.");
270
   yCrop->widgetNE[1]->GetNumberEntry()->
271
           SetToolTipText("Position value to cut on the top of the surface scan.");
272
   interpolSize->widgetNE[0]->GetNumberEntry()->
273
           SetToolTipText("Set the step size of X axis to be used for integration.");
274
   interpolSize->widgetNE[1]->GetNumberEntry()->
275
           SetToolTipText("Set the step size of Y axis to be used for integration.");
276
   updateCrop->widgetTB[0]->
277
           SetToolTipText("Update the surface scan to the current cut settings.");
278
   updateCrop->widgetTB[1]->
279
           SetToolTipText("Start integration of the surface scan using the interpolation step size.");
280
}
281
 
282
void TGAppMainFrame::ToolTipSetRelativePDE()
283
{
284
   runningOff->widgetNE[0]->GetNumberEntry()->
285
           SetToolTipText("The offset for the running average estimation.");
286
   runningAver->widgetNE[0]->GetNumberEntry()->
287
           SetToolTipText("Set how many points to use for running average. If set to 0, running average will not be plotted.");
288
}
289
 
290
void TGAppMainFrame::ToolTipSetTempAnalysis()
291
{
292
   exportExitAnalysis->widgetTB[0]->
293
           SetToolTipText("Export the above plot and decide where to save it.");
294
   exportExitAnalysis->widgetTB[1]->
295
           SetToolTipText("Close the temporary analysis tab.");
296
}