source: sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_DataPlotting.ipf @ 999

Last change on this file since 999 was 999, checked in by srkline, 7 years ago

changes to a few analysis models to make these Igor 7-ready

adding mask editing utilities

many changes to event mode for easier processing of split lists

updated event mode help file

+ lots more!

File size: 11.8 KB
Line 
1#pragma TextEncoding = "MacRoman"               // For details execute DisplayHelpTopic "The TextEncoding Pragma"
2#pragma rtGlobals=3             // Use modern global access method and strict wave access.
3#pragma version=1.0
4
5
6//
7// functions to plot the averaged data in various views.
8//
9
10
11
12//
13// simple entry procedure
14//
15Function V_PlotData_Panel()
16        DoWindow V_1D_Data
17        if(V_flag==0)
18                Execute "V_DrawPlotPanel()"
19        else
20                SVAR type = root:Packages:NIST:VSANS:Globals:gCurDispType
21
22                V_QBinAllPanels(type)
23
24        // TODO:
25        // x- "B" detector is currently skipped - Q is not yet calculated
26                Execute ("V_Back_IQ_Graph(\""+type+"\")")
27                Execute ("V_Middle_IQ_Graph(\""+type+"\")")
28                Execute ("V_Front_IQ_Graph(\""+type+"\")")
29        endif
30End
31
32
33// graph with the 1D representation of the VSANS detectors
34//
35// TODO:
36// -- add multiple options for how to present/rescale the data
37// -- automatically position the window next to the 2D data
38// -- color coding of the different panels (data tags/arrows/toggle on/off)?
39// -- VERIFY accuracy
40// -- decide what to add to the control bar
41//
42// -- see Middle_IQ_Graph() and similar for how VCALC does this plot
43//
44Proc V_DrawPlotPanel()
45       
46        String type = root:Packages:NIST:VSANS:Globals:gCurDispType
47
48        PauseUpdate; Silent 1           // building window...
49        Display /W=(277,526,748,938)/N=V_1D_Data
50
51        V_QBinAllPanels(type)
52
53// TODO
54// x- "B" detector is currently skipped - Q is not yet calculated
55        V_Back_IQ_Graph(type)
56        V_Middle_IQ_Graph(type)
57        V_Front_IQ_Graph(type)
58       
59End
60
61
62
63//
64// duplicated from Middle_IQ_Graph from VCALC
65// but plotted in a standalone graph window and not the VCALC subwindow
66//
67// V_1D_Data
68//
69// TODO
70// -- need to set binType
71// -- currently  hard-wired == 1
72//
73//
74Proc V_Middle_IQ_Graph(type)
75        String type
76
77        Variable binType
78       
79//      ControlInfo/W=VCALC popup_b
80//      binType = V_Value               // V_value counts menu items from 1, so 1=1, 2=2, 3=4
81
82        binType = 1
83        SetDataFolder $("root:Packages:NIST:VSANS:"+type)
84
85// clear EVERYTHING
86                ClearAllIQIfDisplayed("MLRTB")
87                ClearAllIQIfDisplayed("MLR")
88                ClearAllIQIfDisplayed("MTB")            //this returns to root:
89                ClearAllIQIfDisplayed("MT")     
90                ClearAllIQIfDisplayed("ML")     
91                ClearAllIQIfDisplayed("MR")     
92                ClearAllIQIfDisplayed("MB")     
93
94        if(binType==1)
95//              ClearAllIQIfDisplayed("MLRTB")
96//              ClearAllIQIfDisplayed("MLR")
97//              ClearAllIQIfDisplayed("MTB")            //this returns to root:
98//              ClearAllIQIfDisplayed("MT")     
99//              ClearAllIQIfDisplayed("ML")     
100//              ClearAllIQIfDisplayed("MR")     
101//              ClearAllIQIfDisplayed("MB")                     
102                SetDataFolder $("root:Packages:NIST:VSANS:"+type)
103                CheckDisplayed/W=V_1D_Data iBin_qxqy_ML
104               
105                if(V_flag==0)
106                        AppendtoGraph/W=V_1D_Data iBin_qxqy_ML vs qBin_qxqy_ML
107                        AppendToGraph/W=V_1D_Data iBin_qxqy_MR vs qBin_qxqy_MR
108                        AppendToGraph/W=V_1D_Data iBin_qxqy_MT vs qBin_qxqy_MT
109                        AppendToGraph/W=V_1D_Data iBin_qxqy_MB vs qBin_qxqy_MB
110                        ModifyGraph/W=V_1D_Data mode=4
111                        ModifyGraph/W=V_1D_Data marker=19
112                        ModifyGraph/W=V_1D_Data rgb(iBin_qxqy_ML)=(65535,0,0),rgb(iBin_qxqy_MB)=(1,16019,65535),rgb(iBin_qxqy_MR)=(65535,0,0),rgb(iBin_qxqy_MT)=(1,16019,65535)
113                        ModifyGraph/W=V_1D_Data msize=2
114                        ModifyGraph/W=V_1D_Data muloffset(iBin_qxqy_ML)={0,4},muloffset(iBin_qxqy_MB)={0,2},muloffset(iBin_qxqy_MR)={0,8}
115                        ModifyGraph/W=V_1D_Data grid=1
116                        ModifyGraph/W=V_1D_Data log=1
117                        ModifyGraph/W=V_1D_Data mirror=2
118                endif           
119        endif
120       
121        if(binType==2)
122//              ClearAllIQIfDisplayed("MLRTB")
123//              ClearAllIQIfDisplayed("MT")     
124//              ClearAllIQIfDisplayed("ML")     
125//              ClearAllIQIfDisplayed("MR")     
126//              ClearAllIQIfDisplayed("MB")
127       
128
129                SetDataFolder $("root:Packages:NIST:VSANS:"+type)
130                CheckDisplayed/W=V_1D_Data iBin_qxqy_MLR
131               
132                if(V_flag==0)
133                        AppendtoGraph/W=V_1D_Data iBin_qxqy_MLR vs qBin_qxqy_MLR
134                        AppendToGraph/W=V_1D_Data iBin_qxqy_MTB vs qBin_qxqy_MTB
135                        ModifyGraph/W=V_1D_Data mode=4
136                        ModifyGraph/W=V_1D_Data marker=19
137                        ModifyGraph/W=V_1D_Data rgb(iBin_qxqy_MLR)=(65535,0,0),rgb(iBin_qxqy_MTB)=(1,16019,65535)
138                        ModifyGraph/W=V_1D_Data msize=2
139                        ModifyGraph/W=V_1D_Data muloffset(iBin_qxqy_MLR)={0,2}
140                        ModifyGraph/W=V_1D_Data grid=1
141                        ModifyGraph/W=V_1D_Data log=1
142                        ModifyGraph/W=V_1D_Data mirror=2
143                        Label/W=V_1D_Data left "Intensity (1/cm)"
144                        Label/W=V_1D_Data bottom "Q (1/A)"
145                endif   
146                       
147        endif
148       
149        if(binType==3)
150//              ClearAllIQIfDisplayed("MLR")
151//              ClearAllIQIfDisplayed("MTB")   
152//              ClearAllIQIfDisplayed("MT")     
153//              ClearAllIQIfDisplayed("ML")     
154//              ClearAllIQIfDisplayed("MR")     
155//              ClearAllIQIfDisplayed("MB")     
156       
157                SetDataFolder $("root:Packages:NIST:VSANS:"+type)
158                CheckDisplayed/W=V_1D_Data iBin_qxqy_MLRTB
159               
160                if(V_flag==0)
161                        AppendtoGraph/W=V_1D_Data iBin_qxqy_MLRTB vs qBin_qxqy_MLRTB
162                        ModifyGraph/W=V_1D_Data mode=4
163                        ModifyGraph/W=V_1D_Data marker=19
164                        ModifyGraph/W=V_1D_Data rgb(iBin_qxqy_MLRTB)=(65535,0,0)
165                        ModifyGraph/W=V_1D_Data msize=2
166                        ModifyGraph/W=V_1D_Data grid=1
167                        ModifyGraph/W=V_1D_Data log=1
168                        ModifyGraph/W=V_1D_Data mirror=2
169                        Label/W=V_1D_Data left "Intensity (1/cm)"
170                        Label/W=V_1D_Data bottom "Q (1/A)"
171                endif   
172                       
173        endif
174
175        if(binType==4)          // slit aperture binning - Mt, ML, MR, MB are averaged
176//              ClearAllIQIfDisplayed("MLRTB")
177//              ClearAllIQIfDisplayed("MLR")
178//              ClearAllIQIfDisplayed("MTB")
179               
180//              SetDataFolder root:Packages:NIST:VSANS:VCALC
181                CheckDisplayed/W=V_1D_Data iBin_qxqy_ML
182               
183                if(V_flag==0)
184                        AppendtoGraph/W=V_1D_Data iBin_qxqy_ML vs qBin_qxqy_ML
185                        AppendToGraph/W=V_1D_Data iBin_qxqy_MR vs qBin_qxqy_MR
186                        AppendToGraph/W=V_1D_Data iBin_qxqy_MT vs qBin_qxqy_MT
187                        AppendToGraph/W=V_1D_Data iBin_qxqy_MB vs qBin_qxqy_MB
188                        ModifyGraph/W=V_1D_Data mode=4
189                        ModifyGraph/W=V_1D_Data marker=19
190                        ModifyGraph/W=V_1D_Data rgb(iBin_qxqy_ML)=(65535,0,0),rgb(iBin_qxqy_MB)=(1,16019,65535),rgb(iBin_qxqy_MR)=(65535,0,0),rgb(iBin_qxqy_MT)=(1,16019,65535)
191                        ModifyGraph/W=V_1D_Data msize=2
192                        ModifyGraph/W=V_1D_Data muloffset(iBin_qxqy_ML)={0,4},muloffset(iBin_qxqy_MB)={0,2},muloffset(iBin_qxqy_MR)={0,8}
193                        ModifyGraph/W=V_1D_Data grid=1
194                        ModifyGraph/W=V_1D_Data log=1
195                        ModifyGraph/W=V_1D_Data mirror=2
196                endif           
197                       
198        endif
199       
200        SetDataFolder root:
201End
202
203//
204// duplicated from Middle_IQ_Graph from VCALC
205// but plotted in a standalone graph window and not the VCALC subwindow
206//
207// V_1D_Data
208//
209// TODO
210// -- need to set binType
211// -- currently  hard-wired == 1
212//
213//
214Proc V_Front_IQ_Graph(type)
215        String type
216
217        Variable binType
218       
219//      ControlInfo/W=VCALC popup_b
220//      binType = V_Value               // V_value counts menu items from 1, so 1=1, 2=2, 3=4
221
222        binType = 1
223        SetDataFolder $("root:Packages:NIST:VSANS:"+type)
224
225// clear EVERYTHING
226                ClearAllIQIfDisplayed("FLRTB")
227               
228                ClearAllIQIfDisplayed("FLR")
229                ClearAllIQIfDisplayed("FTB")
230
231                ClearAllIQIfDisplayed("FT")     
232                ClearAllIQIfDisplayed("FL")     
233                ClearAllIQIfDisplayed("FR")     
234                ClearAllIQIfDisplayed("FB")
235               
236        if(binType==1)
237//              ClearAllIQIfDisplayed("FLRTB")
238//             
239//              ClearAllIQIfDisplayed("FLR")
240//              ClearAllIQIfDisplayed("FTB")
241//
242//              ClearAllIQIfDisplayed("FT")     
243//              ClearAllIQIfDisplayed("FL")     
244//              ClearAllIQIfDisplayed("FR")     
245//              ClearAllIQIfDisplayed("FB")
246                               
247                SetDataFolder $("root:Packages:NIST:VSANS:"+type)
248                CheckDisplayed/W=V_1D_Data iBin_qxqy_FL
249               
250                if(V_flag==0)
251                        AppendtoGraph/W=V_1D_Data iBin_qxqy_FL vs qBin_qxqy_FL
252                        AppendToGraph/W=V_1D_Data iBin_qxqy_FR vs qBin_qxqy_FR
253                        AppendToGraph/W=V_1D_Data iBin_qxqy_FT vs qBin_qxqy_FT
254                        AppendToGraph/W=V_1D_Data iBin_qxqy_FB vs qBin_qxqy_FB
255                        ModifyGraph/W=V_1D_Data mode=4
256                        ModifyGraph/W=V_1D_Data marker=19
257                        ModifyGraph/W=V_1D_Data rgb(iBin_qxqy_FL)=(39321,26208,1),rgb(iBin_qxqy_FB)=(2,39321,1),rgb(iBin_qxqy_FR)=(39321,26208,1),rgb(iBin_qxqy_FT)=(2,39321,1)
258                        ModifyGraph/W=V_1D_Data msize=2
259                        ModifyGraph/W=V_1D_Data muloffset(iBin_qxqy_FL)={0,4},muloffset(iBin_qxqy_FB)={0,2},muloffset(iBin_qxqy_FR)={0,8}
260                        ModifyGraph/W=V_1D_Data grid=1
261                        ModifyGraph/W=V_1D_Data log=1
262                        ModifyGraph/W=V_1D_Data mirror=2
263                endif           
264        endif
265       
266        if(binType==2)
267//              ClearAllIQIfDisplayed("FLRTB")
268//              ClearAllIQIfDisplayed("FT")     
269//              ClearAllIQIfDisplayed("FL")     
270//              ClearAllIQIfDisplayed("FR")     
271//              ClearAllIQIfDisplayed("FB")
272//     
273
274                SetDataFolder $("root:Packages:NIST:VSANS:"+type)
275                CheckDisplayed/W=V_1D_Data iBin_qxqy_FLR
276               
277                if(V_flag==0)
278                        AppendtoGraph/W=V_1D_Data iBin_qxqy_FLR vs qBin_qxqy_FLR
279                        AppendToGraph/W=V_1D_Data iBin_qxqy_FTB vs qBin_qxqy_FTB
280                        ModifyGraph/W=V_1D_Data mode=4
281                        ModifyGraph/W=V_1D_Data marker=19
282                        ModifyGraph/W=V_1D_Data rgb(iBin_qxqy_FLR)=(39321,26208,1),rgb(iBin_qxqy_FTB)=(2,39321,1)
283                        ModifyGraph/W=V_1D_Data msize=2
284                        ModifyGraph/W=V_1D_Data muloffset(iBin_qxqy_FLR)={0,2}
285                        ModifyGraph/W=V_1D_Data grid=1
286                        ModifyGraph/W=V_1D_Data log=1
287                        ModifyGraph/W=V_1D_Data mirror=2
288                        Label/W=V_1D_Data left "Intensity (1/cm)"
289                        Label/W=V_1D_Data bottom "Q (1/A)"
290                endif   
291                       
292        endif
293       
294        if(binType==3)
295//              ClearAllIQIfDisplayed("FLR")
296//              ClearAllIQIfDisplayed("FTB")   
297//              ClearAllIQIfDisplayed("FT")     
298//              ClearAllIQIfDisplayed("FL")     
299//              ClearAllIQIfDisplayed("FR")     
300//              ClearAllIQIfDisplayed("FB")     
301       
302                SetDataFolder $("root:Packages:NIST:VSANS:"+type)
303                CheckDisplayed/W=V_1D_Data iBin_qxqy_FLRTB
304               
305                if(V_flag==0)
306                        AppendtoGraph/W=V_1D_Data iBin_qxqy_FLRTB vs qBin_qxqy_FLRTB
307                        ModifyGraph/W=V_1D_Data mode=4
308                        ModifyGraph/W=V_1D_Data marker=19
309                        ModifyGraph/W=V_1D_Data rgb(iBin_qxqy_FLRTB)=(39321,26208,1)
310                        ModifyGraph/W=V_1D_Data msize=2
311                        ModifyGraph/W=V_1D_Data grid=1
312                        ModifyGraph/W=V_1D_Data log=1
313                        ModifyGraph/W=V_1D_Data mirror=2
314                        Label/W=V_1D_Data left "Intensity (1/cm)"
315                        Label/W=V_1D_Data bottom "Q (1/A)"
316                endif   
317                       
318        endif
319
320        if(binType==4)          // slit aperture binning - Mt, ML, MR, MB are averaged
321//              ClearAllIQIfDisplayed("FLRTB")
322//              ClearAllIQIfDisplayed("FLR")
323//              ClearAllIQIfDisplayed("FTB")
324               
325//              SetDataFolder root:Packages:NIST:VSANS:VCALC
326                CheckDisplayed/W=V_1D_Data iBin_qxqy_FL
327               
328                if(V_flag==0)
329                        AppendtoGraph/W=V_1D_Data iBin_qxqy_FL vs qBin_qxqy_FL
330                        AppendToGraph/W=V_1D_Data iBin_qxqy_FR vs qBin_qxqy_FR
331                        AppendToGraph/W=V_1D_Data iBin_qxqy_FT vs qBin_qxqy_FT
332                        AppendToGraph/W=V_1D_Data iBin_qxqy_FB vs qBin_qxqy_FB
333                        ModifyGraph/W=V_1D_Data mode=4
334                        ModifyGraph/W=V_1D_Data marker=19
335                        ModifyGraph/W=V_1D_Data rgb(iBin_qxqy_FL)=(39321,26208,1),rgb(iBin_qxqy_FB)=(2,39321,1),rgb(iBin_qxqy_FR)=(39321,26208,1),rgb(iBin_qxqy_FT)=(2,39321,1)
336                        ModifyGraph/W=V_1D_Data msize=2
337                        ModifyGraph/W=V_1D_Data muloffset(iBin_qxqy_FL)={0,4},muloffset(iBin_qxqy_FB)={0,2},muloffset(iBin_qxqy_FR)={0,8}
338                        ModifyGraph/W=V_1D_Data grid=1
339                        ModifyGraph/W=V_1D_Data log=1
340                        ModifyGraph/W=V_1D_Data mirror=2
341                endif           
342                       
343        endif
344       
345        SetDataFolder root:
346End
347
348
349// TODO
350// -- need to set binType
351// -- currently  hard-wired == 1
352//
353////////////to plot the back panel I(q)
354Proc V_Back_IQ_Graph(type)
355        String type
356       
357//      SetDataFolder root:Packages:NIST:VSANS:VCALC:entry:instrument:detector_B
358
359        Variable binType
360       
361//      ControlInfo/W=VCALC popup_b
362//      binType = V_Value               // V_value counts menu items from 1, so 1=1, 2=2, 3=4
363
364        bintype = 1
365       
366                SetDataFolder $("root:Packages:NIST:VSANS:"+type)       
367
368        if(binType==1 || binType==2 || binType==3)
369       
370                ClearAllIQIfDisplayed("B")
371                SetDataFolder $("root:Packages:NIST:VSANS:"+type)       
372                CheckDisplayed/W=V_1D_Data iBin_qxqy_B
373               
374                if(V_flag==0)
375                        AppendtoGraph/W=V_1D_Data iBin_qxqy_B vs qBin_qxqy_B
376                        ModifyGraph/W=V_1D_Data mode=4
377                        ModifyGraph/W=V_1D_Data marker=19
378                        ModifyGraph/W=V_1D_Data rgb(iBin_qxqy_B)=(1,52428,52428)
379                        ModifyGraph/W=V_1D_Data msize=2
380                        ModifyGraph/W=V_1D_Data grid=1
381                        ModifyGraph/W=V_1D_Data log=1
382                        ModifyGraph/W=V_1D_Data mirror=2
383                endif
384        endif
385
386        //nothing different here since there is ony a single detector to display, but for the future...
387        if(binType==4)
388       
389                ClearAllIQIfDisplayed("B")
390                SetDataFolder $("root:Packages:NIST:VSANS:"+type)       
391                CheckDisplayed/W=V_1D_Data iBin_qxqy_B
392               
393                if(V_flag==0)
394                        AppendtoGraph/W=V_1D_Data iBin_qxqy_B vs qBin_qxqy_B
395                        ModifyGraph/W=V_1D_Data mode=4
396                        ModifyGraph/W=V_1D_Data marker=19
397                        ModifyGraph/W=V_1D_Data rgb(iBin_qxqy_B)=(1,52428,52428)
398                        ModifyGraph/W=V_1D_Data msize=2
399                        ModifyGraph/W=V_1D_Data grid=1
400                        ModifyGraph/W=V_1D_Data log=1
401                        ModifyGraph/W=V_1D_Data mirror=2
402                endif
403        endif
404
405       
406        SetDataFolder root:
407End
408
Note: See TracBrowser for help on using the repository browser.