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

Last change on this file since 1246 was 1246, checked in by srkline, 3 years ago

A large number of changes to the size of panels to enable "Laptop Mode" where all of the panels and controls are scaled down so that they fit on screen and are still in correct proportion. For the laptop I'm using for testing, the resolution is 1920x1080. For this, a scaling of 0.7 seems to work. The on/off of the "laptop Mode" is controlled by a checkbox in the preference panel (under the General tab).

There are still more panels to update in the next commit.

File size: 54.9 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#pragma IgorVersion = 7.00
5
6//
7// functions to plot the averaged data in various views and binning types
8//
9
10
11
12//
13// simple entry procedure
14//
15// graph with the 1D representation of the VSANS detectors
16//
17// TODO:
18// -- add multiple options for how to present/rescale the data
19// -- automatically position the window next to the 2D data
20// -- color coding of the different panels (data tags/arrows/toggle on/off)?
21// -- VERIFY accuracy
22//
23// -- decide what to add to the control bar
24// ()()() In SANS, there are only 3 waves (q-i-s) and these are copied over to the plot1D folder, and the copy
25//    of the data is plotted, not the data in the WORK folder. Then for rescaling, a "fresh" copy of the data is
26//    fetched, and then rescaled. The plot automatically reflects these changes.
27//  --- for VSANS, this is much more difficult since there are multiple possibilites of 1D data, depending on the
28//     binning chosen. Currently, the data is plotted directly from the WORK folder, so this would need to be changed
29//     at the start, then deciding which waves to copy over. Messy. Very Messy. For now, simply toggle log/lin
30//
31// -- at the very least, add a log/lin toggle for the axes
32//
33// -- document, document, document
34//
35// -- see Middle_IQ_Graph() and similar for how VCALC does this plot
36//
37// -- when/if I want to add phi-averaging to this, go gack to AvgGraphics.ipf for the pink panel
38//    and to the function Draw_Plot1D() for the drawing of the plot
39//
40//
41Function V_PlotData_Panel()
42//      Variable binType
43
44
45        Variable sc = 1
46       
47        NVAR gLaptopMode = root:Packages:NIST:VSANS:Globals:gLaptopMode
48               
49        if(gLaptopMode == 1)
50                sc = 0.7
51        endif
52
53        DoWindow/F V_1D_Data
54        if(V_flag==0)
55       
56//              NewDataFolder/O root:Packages:NIST:VSANS:Globals:Plot_1D
57//              Variable/G root:Packages:NIST:VSANS:Globals:Plot_1D:gYMode = 1
58//              Variable/G root:Packages:NIST:VSANS:Globals:Plot_1D:gXMode = 1
59//              Variable/G root:Packages:NIST:VSANS:Globals:Plot_1D:gExpA = 1
60//              Variable/G root:Packages:NIST:VSANS:Globals:Plot_1D:gExpB = 1
61//              Variable/G root:Packages:NIST:VSANS:Globals:Plot_1D:gExpC = 1
62               
63                if(gLaptopMode == 1)
64                        Display /W=(200,50,(200+470)*sc,(50+412)*sc)/N=V_1D_Data/K=1
65                else
66                        Display /W=(277,526,748,938)/N=V_1D_Data/K=1
67                endif
68
69
70                ControlBar 70
71               
72                PopupMenu popup0,pos={sc*16,5*sc},size={sc*71,20*sc},title="Bin Type"
73                PopupMenu popup0,help={"This popup selects how the y-axis will be linearized based on the chosen data"}
74                PopupMenu popup0,value= ksBinTypeStr
75                PopupMenu popup0,mode=1,proc=V_BinningModePopup
76               
77                CheckBox check0,pos={sc*18.00,36.00*sc},size={sc*57.00,16.00*sc},proc=V_Plot1D_LogCheckProc,title="Log Axes"
78                CheckBox check0,value= 1
79       
80//              PopupMenu ymodel,pos={sc*150,5*sc},size={sc*71,20*sc},title="y-axis"
81//              PopupMenu ymodel,help={"This popup selects how the y-axis will be linearized based on the chosen data"}
82//              PopupMenu ymodel,value= #"\"I;log(I);ln(I);1/I;I^a;Iq^a;I^a q^b;1/sqrt(I);ln(Iq);ln(Iq^2)\""
83//              PopupMenu ymodel,mode=NumVarOrDefault("root:Packages:NIST:VSANS:Globals:Plot_1d:gYMode", 1 ),proc=V_YMode_PopMenuProc
84//              PopupMenu xmodel,pos={sc*220,5*sc},size={sc*74,20*sc},title="x-axis"
85//              PopupMenu xmodel,help={"This popup selects how the x-axis will be linearized given the chosen data"}
86//              PopupMenu xmodel,value= #"\"q;log(q);q^2;q^c\""
87//              PopupMenu xmodel,mode=NumVarOrDefault("root:Packages:NIST:VSANS:Globals:Plot_1d:gXMode", 1 ),proc=V_XMode_PopMenuProc
88////            Button Rescale,pos={sc*281,5*sc},size={sc*70,20*sc},proc=V_Rescale_Plot_1D_ButtonProc,title="Rescale"
89////            Button Rescale,help={"Rescale the x and y-axes of the data"},disable=1
90//
91//              SetVariable expa,pos={sc*120,28*sc},size={sc*80,15*sc},title="pow \"a\""
92//              SetVariable expa,help={"This sets the exponent \"a\" for some y-axis formats. The value is ignored if the model does not use an adjustable exponent"}
93//              SetVariable expa,limits={-2,10,0},value= root:Packages:NIST:VSANS:Globals:Plot_1d:gExpA
94//              SetVariable expb,pos={sc*120,46*sc},size={sc*80,15*sc},title="pow \"b\""
95//              SetVariable expb,help={"This sets the exponent \"b\" for some x-axis formats. The value is ignored if the model does not use an adjustable exponent"}
96//              SetVariable expb,limits={0,10,0},value= root:Packages:NIST:VSANS:Globals:Plot_1d:gExpB
97//
98//              SetVariable expc,pos={sc*220,28*sc},size={sc*80,15*sc},title="pow \"c\""
99//              SetVariable expc,help={"This sets the exponent \"c\" for some x-axis formats. The value is ignored if the model does not use \"c\" as an adjustable exponent"}
100//              SetVariable expc,limits={-10,10,0},value= root:Packages:NIST:VSANS:Globals:Plot_1d:gExpC
101               
102                Button AllQ,pos={sc*300,15*sc},size={sc*70,20*sc},proc=V_AllQ_Plot_1D_ButtonProc,title="All Q"
103                Button AllQ,help={"Show the full q-range of the dataset"}
104
105                Button Offset,pos={sc*300,38*sc},size={sc*70,20*sc},proc=V_RemoveOffset_ButtonProc,title="No Offset"
106                Button Offset,help={"Remove the offset"}
107                               
108                Legend/C/N=text0/J/X=72.00/Y=60.00
109        endif
110               
111       
112//      SVAR workType = root:Packages:NIST:VSANS:Globals:gCurDispType
113//
114//      if(binType == -9999)
115//              binType = V_GetBinningPopMode()         //dummy passed in, replace with value from panel
116//      endif
117//     
118//     
119//      V_QBinAllPanels(workType,binType)
120
121
122       
123End
124
125//
126// x- winStr is currently hard-wired, but this may not be an issue
127Function V_Update1D_Graph(workType,binType)
128        String workType
129        Variable binType
130       
131        //
132// x- "B" detector is currently skipped - Q is not yet calculated
133        String str,winStr="V_1D_Data",workPathStr
134        workPathStr = "root:Packages:NIST:VSANS:"+worktype
135       
136        sprintf str,"(\"%s\",%d,\"%s\")",workPathStr,binType,winStr
137       
138        Execute ("V_Back_IQ_Graph"+str)
139//      Print "V_Back_IQ_Graph"+str
140        Execute ("V_Middle_IQ_Graph"+str)
141        Execute ("V_Front_IQ_Graph"+str)
142
143       
144        return(0)
145end
146
147Function V_Plot1D_LogCheckProc(cba) : CheckBoxControl
148        STRUCT WMCheckboxAction &cba
149
150        switch( cba.eventCode )
151                case 2: // mouse up
152                        Variable checked = cba.checked
153                               
154                                ModifyGraph log=(checked)
155                       
156                        break
157                case -1: // control being killed
158                        break
159        endswitch
160
161        return 0
162End
163
164//
165////function to set the popItem (mode) of the graph, to re-create the graph based on user preferences
166//Function V_YMode_PopMenuProc(ctrlName,popNum,popStr) : PopupMenuControl
167//      String ctrlName
168//      Variable popNum
169//      String popStr
170//
171//      Variable/G root:Packages:NIST:VSANS:Globals:Plot_1d:gYMode=popNum
172//      V_Rescale_Plot_1D_ButtonProc("")
173//End
174//
175////function to set the popItem (mode) of the graph, to re-create the graph based on user preferences
176//Function V_XMode_PopMenuProc(ctrlName,popNum,popStr) : PopupMenuControl
177//      String ctrlName
178//      Variable popNum
179//      String popStr
180//
181//      Variable/G root:Packages:NIST:VSANS:Globals:Plot_1d:gXMode=popNum
182//      V_Rescale_Plot_1D_ButtonProc("")
183//End
184
185
186//function to rescale the axes of the graph as selected from the popups and the
187// entered values of the exponents
188//** assumes the current waves are unknown, so it goes and gets a "fresh" copy from
189//the data folder specified by the waves on the graph, which is the same folder that
190//contains the "fresh" copy of the 1D data
191//
192// for log(10) scaling, simply modify the axes, not the data - gives better plots
193//
194//Function V_Rescale_Plot_1D_ButtonProc(ctrlName) : ButtonControl
195//      String ctrlName
196//     
197//      DoWindow/F V_1D_Data
198////Scaling exponents and background value
199//      Variable pow_a,pow_b,pow_c
200//      ControlInfo expa
201//      pow_a = V_value
202//      ControlInfo expb
203//      pow_b = V_value
204//      ControlInfo expc
205//      pow_c = V_value
206//     
207////check for physical limits on exponent values, abort if bad values found
208//      if((pow_a < -2) || (pow_a > 10))
209//              Abort "Exponent a must be in the range (-2,10)"
210//      endif
211//      if((pow_b < 0) || (pow_b > 10))
212//              Abort "Exponent b must be in the range (0,10)"
213//      endif
214//      //if q^c is the x-scaling, c must be be within limits and also non-zero
215//      ControlInfo xModel
216//      If (cmpstr("q^c",S_Value) == 0)
217//              if(pow_c == 0)
218//                      Abort "Exponent c must be non-zero, q^0 = 1"
219//              endif
220//              if((pow_c < -10) || (pow_c > 10))
221//                      Abort "Exponent c must be in the range (-10,10)"
222//              endif
223//      endif           //check q^c exponent
224//     
225//// get the current experimental q, I, and std dev. waves
226//      SVAR curFolder=root:Packages:NIST:VSANS:Globals:gDataDisplayType
227//
228//// what is the binning? == what waves do we need to copy over
229//     
230//
231//      //get the untarnished data, so we can rescale it freshly here
232//      Wave yw = $("root:Packages:NIST:"+curFolder+":aveint")
233//      Wave ew = $("root:Packages:NIST:"+curFolder+":sigave")
234//      //get the correct x values
235//      NVAR isPhiAve= root:myGlobals:Plot_1d:isPhiAve  //0 signifies (normal) x=qvals
236//      if(isPhiAve)
237//              //x is angle
238//              Wave xw=$("root:Packages:NIST:"+curFolder+":phival")
239//      else
240//              //x is q-values
241//              Wave xw=$("root:Packages:NIST:"+curFolder+":qval")
242//      endif
243//      Wave yAxisWave=root:myGlobals:Plot_1d:yAxisWave         //refs to waves to be modified, hard-wired positions
244//      Wave xAxisWave=root:myGlobals:Plot_1d:xAxisWave
245//      Wave yErrWave=root:myGlobals:Plot_1d:yErrWave
246//     
247//      //variables set for each model to control look of graph
248//      String xlabel,ylabel,xstr,ystr
249//      Variable logLeft=0,logBottom=0
250//      //check for proper y-scaling selection, make the necessary waves
251//      ControlInfo yModel
252//      ystr = S_Value
253//      do
254//              If (cmpstr("I",S_Value) == 0)
255//                      SetScale d 0,0,"1/cm",yAxisWave
256//                      yErrWave = ew
257//                      yAxisWave = yw
258//                      ylabel = "I(q)"
259//                      break   
260//              endif
261//              If (cmpstr("ln(I)",S_Value) == 0)
262//                      SetScale d 0,0,"",yAxisWave
263//                      yErrWave = ew/yw
264//                      yAxisWave = ln(yw)
265//                      ylabel = "ln(I)"
266//                      break   
267//              endif
268//              If (cmpstr("log(I)",S_Value) == 0)
269//                      SetScale d 0,0,"",yAxisWave
270//                      yAxisWave = yw
271//                      yErrWave = ew
272//                      logLeft=1                               //scale the axis, not the wave
273//                      ylabel = "I(q)"
274////                    yErrWave = ew/(2.30*yw)
275////                    yAxisWave = log(yw)
276////                    ylabel = "log(I)"
277//                      break   
278//              endif
279//              If (cmpstr("1/I",S_Value) == 0)
280//                      SetScale d 0,0,"",yAxisWave
281//                      yErrWave = ew/yw^2
282//                      yAxisWave = 1/yw
283//                      ylabel = "1/I"
284//                      break
285//              endif
286//              If (cmpstr("I^a",S_Value) == 0)
287//                      SetScale d 0,0,"",yAxisWave
288//                      yErrWave = ew*abs(pow_a*(yw^(pow_a-1)))
289//                      yAxisWave = yw^pow_a
290//                      ylabel = "I^"+num2str(pow_a)
291//                      break
292//              endif
293//              If (cmpstr("Iq^a",S_Value) == 0)
294//                      SetScale d 0,0,"",yAxisWave
295//                      yErrWave = ew*xw^pow_a
296//                      yAxisWave = yw*xw^pow_a
297//                      ylabel = "I*q^"+num2str(pow_a)
298//                      break
299//              endif
300//              If (cmpstr("I^a q^b",S_Value) == 0)
301//                      SetScale d 0,0,"",yAxisWave
302//                      yErrWave = ew*abs(pow_a*(yw^(pow_a-1)))*xw^pow_b
303//                      yAxisWave = yw^pow_a*xw^pow_b
304//                      ylabel = "I^" + num2str(pow_a) + "q^"+num2str(pow_b)
305//                      break
306//              endif
307//              If (cmpstr("1/sqrt(I)",S_Value) == 0)
308//                      SetScale d 0,0,"",yAxisWave
309//                      yErrWave = 0.5*ew*yw^(-1.5)
310//                      yAxisWave = 1/sqrt(yw)
311//                      ylabel = "1/sqrt(I)"
312//                      break
313//              endif
314//              If (cmpstr("ln(Iq)",S_Value) == 0)
315//                      SetScale d 0,0,"",yAxisWave
316//                      yErrWave =ew/yw
317//                      yAxisWave = ln(xw*yw)
318//                      ylabel = "ln(q*I)"
319//                      break
320//              endif
321//              If (cmpstr("ln(Iq^2)",S_Value) == 0)
322//                      SetScale d 0,0,"",yAxisWave
323//                      yErrWave = ew/yw
324//                      yAxisWave = ln(xw*xw*yw)
325//                      ylabel = "ln(I*q^2)"
326//                      break
327//              endif
328//              //more ifs for each case as they are added
329//             
330//              // if selection not found, abort
331//              DoAlert 0,"Y-axis scaling incorrect. Aborting"
332//              Abort
333//      while(0)        //end of "case" statement for y-axis scaling
334//     
335//      //check for proper x-scaling selection
336//      SVAR/Z angst = root:Packages:NIST:gAngstStr
337//      String dum
338//     
339//      ControlInfo xModel
340//      xstr = S_Value
341//      do
342//              If (cmpstr("q",S_Value) == 0)   
343//                      SetScale d 0,0,"",xAxisWave
344//                      xAxisWave = xw
345//                      if(isPhiAve)
346//                              xlabel="Angle (deg)"
347//                      else
348//                              xlabel = "q ("+angst+"\\S-1\\M)"
349//                      endif
350//                      break   
351//              endif
352//              If (cmpstr("q^2",S_Value) == 0)
353//                      SetScale d 0,0,"",xAxisWave
354//                      xAxisWave = xw*xw
355//                      if(isPhiAve)
356//                              xlabel="(Angle (deg) )^2"
357//                      else
358//                              xlabel = "q^2 ("+angst+"\\S-2\\M)"
359//                      endif
360//                      break   
361//              endif
362//              If (cmpstr("log(q)",S_Value) == 0)     
363//                      SetScale d 0,0,"",xAxisWave
364//                      xAxisWave = xw          //scale the axis, not the wave
365//                      //xAxisWave = log(xw)
366//                      logBottom=1
367//                      if(isPhiAve)
368//                              //xlabel="log(Angle (deg))"
369//                              xlabel="Angle (deg)"
370//                      else
371//                              //xlabel = "log(q)"
372//                              xlabel = "q ("+angst+"\\S-1\\M)"
373//                      endif
374//                      break   
375//              endif
376//              If (cmpstr("q^c",S_Value) == 0)
377//                      SetScale d 0,0,"",xAxisWave
378//                      xAxisWave = xw^pow_c
379//                      dum = num2str(pow_c)
380//                      if(isPhiAve)
381//                              xlabel="Angle^"+dum
382//                      else
383//                              xlabel = "q^"+dum+" ("+angst+"\\S-"+dum+"\\M)"
384//                      endif
385//                      break
386//              endif
387//     
388//              //more ifs for each case
389//             
390//              // if selection not found, abort
391//              DoAlert 0,"X-axis scaling incorrect. Aborting"
392//              Abort
393//      while(0)        //end of "case" statement for x-axis scaling
394//     
395//      Label left ylabel
396//      Label bottom xlabel     //E denotes "scaling"  - may want to use "units" instead       
397//      ModifyGraph log(left)=(logLeft)
398//      ModifyGraph log(bottom)=(logBottom)
399//     
400//End
401
402
403//function to remove the trace offset
404Function V_RemoveOffset_ButtonProc(ctrlName) : ButtonControl
405        String ctrlName
406       
407        ModifyGraph muloffset={0,0}
408        return(0)
409End
410
411
412//function to restore the graph axes to full scale, undoing any zooming
413Function V_AllQ_Plot_1D_ButtonProc(ctrlName) : ButtonControl
414        String ctrlName
415       
416        SetAxis/A
417        return(0)
418End
419
420
421//
422// recalculate the I(q) binning. no need to adjust model function or views
423// just rebin
424//
425// see V_CombineModePopup() in V_Combine_1D.ipf for a duplicate version of this function
426//
427Function V_BinningModePopup(ctrlName,popNum,popStr) : PopupMenuControl
428        String ctrlName
429        Variable popNum // which item is currently selected (1-based)
430        String popStr           // contents of current popup item as string
431
432        SVAR type = root:Packages:NIST:VSANS:Globals:gCurDispType
433
434// dispatch based on the string, not on the number of selection in the pop string
435        variable binType = V_BinTypeStr2Num(popStr)
436        String collimationStr="pinhole"         //TODO: where do I get this information from ? does it matter here?
437        if(binType == 4)
438        // narrow slits
439                V_QBinAllPanels_Slit(type,binType)
440        else
441                V_QBinAllPanels_Circular(type,binType,collimationStr)
442        endif
443       
444
445        String str,winStr="V_1D_Data",workTypeStr
446        workTypeStr = "root:Packages:NIST:VSANS:"+type
447       
448        sprintf str,"(\"%s\",%d,\"%s\")",workTypeStr,V_BinTypeStr2Num(popStr),winStr
449
450        Execute ("V_Back_IQ_Graph"+str)
451        Execute ("V_Middle_IQ_Graph"+str)
452        Execute ("V_Front_IQ_Graph"+str)
453
454       
455        return(0)       
456End
457
458Function V_GetBinningPopMode()
459
460        Variable binType
461       
462        if(WinType("V_1D_Data")==0)
463                DoAlert 0,"V_1D_Data window is not open, called from V_GetBinningPopMode()"
464                return(0)
465        endif
466       
467        ControlInfo/W=V_1D_Data popup0
468        binType = V_BinTypeStr2Num(S_Value)
469       
470        return(binType)
471end
472
473//
474// duplicated from Middle_IQ_Graph from VCALC
475// but plotted in a standalone graph window and not the VCALC subwindow
476//
477// V_1D_Data
478//
479//
480// x- need to set binType
481// x- currently  hard-wired == 1
482//
483// input "fullPathToFolder" is the data type and defines the folder,
484// i.e. "root:Packages:NIST:VSANS:"+"SAM"
485//
486Proc V_Middle_IQ_Graph(fullPathToFolder,binType,winNameStr)
487        String fullPathToFolder
488        Variable binType
489        String winNameStr
490
491//      binType = V_GetBinningPopMode()
492        SetDataFolder $(fullPathToFolder)
493
494// clear EVERYTHING
495        ClearIQIfDisplayed_AllFldr("MLRTB",winNameStr)
496        ClearIQIfDisplayed_AllFldr("MLR",winNameStr)
497        ClearIQIfDisplayed_AllFldr("MTB",winNameStr)            //this returns to root:
498        ClearIQIfDisplayed_AllFldr("MT",winNameStr)     
499        ClearIQIfDisplayed_AllFldr("ML",winNameStr)     
500        ClearIQIfDisplayed_AllFldr("MR",winNameStr)     
501        ClearIQIfDisplayed_AllFldr("MB",winNameStr)             
502
503
504// then replace the traces as needed, depending on the binType
505
506        if(binType==1)
507       
508                SetDataFolder $(fullPathToFolder)
509                CheckDisplayed/W=$winNameStr iBin_qxqy_ML
510               
511                if(V_flag==0)
512                        AppendtoGraph/W=$winNameStr iBin_qxqy_ML vs qBin_qxqy_ML
513                        AppendToGraph/W=$winNameStr iBin_qxqy_MR vs qBin_qxqy_MR
514                        AppendToGraph/W=$winNameStr iBin_qxqy_MT vs qBin_qxqy_MT
515                        AppendToGraph/W=$winNameStr iBin_qxqy_MB vs qBin_qxqy_MB
516                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_ML Y,wave=(:eBin_qxqy_ML,:eBin_qxqy_ML)
517                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MR Y,wave=(:eBin_qxqy_MR,:eBin_qxqy_MR)
518                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MT Y,wave=(:eBin_qxqy_MT,:eBin_qxqy_MT)
519                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MB Y,wave=(:eBin_qxqy_MB,:eBin_qxqy_MB)
520                       
521                        ModifyGraph/W=$winNameStr mode=4
522                        ModifyGraph/W=$winNameStr marker=19
523                        ModifyGraph/W=$winNameStr 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)
524                        ModifyGraph/W=$winNameStr msize=2
525                        ModifyGraph/W=$winNameStr muloffset(iBin_qxqy_ML)={0,4},muloffset(iBin_qxqy_MB)={0,2},muloffset(iBin_qxqy_MR)={0,8}
526                        ModifyGraph/W=$winNameStr grid=1
527                        ModifyGraph/W=$winNameStr log=1
528                        ModifyGraph/W=$winNameStr mirror=2
529                endif           
530        endif
531       
532        if(binType==2)
533                SetDataFolder $(fullPathToFolder)
534                CheckDisplayed/W=$winNameStr iBin_qxqy_MLR
535               
536                if(V_flag==0)
537                        AppendtoGraph/W=$winNameStr iBin_qxqy_MLR vs qBin_qxqy_MLR
538                        AppendToGraph/W=$winNameStr iBin_qxqy_MTB vs qBin_qxqy_MTB
539
540                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MTB Y,wave=(:eBin_qxqy_MTB,:eBin_qxqy_MTB)
541                       
542                        ModifyGraph/W=$winNameStr mode=4
543                        ModifyGraph/W=$winNameStr marker=19
544                        ModifyGraph/W=$winNameStr rgb(iBin_qxqy_MLR)=(65535,0,0),rgb(iBin_qxqy_MTB)=(1,16019,65535)
545                        ModifyGraph/W=$winNameStr msize=2
546                        ModifyGraph/W=$winNameStr muloffset(iBin_qxqy_MLR)={0,2}
547                        ModifyGraph/W=$winNameStr grid=1
548                        ModifyGraph/W=$winNameStr log=1
549                        ModifyGraph/W=$winNameStr mirror=2
550                        Label/W=$winNameStr left "Intensity (1/cm)"
551                        Label/W=$winNameStr bottom "Q (1/A)"
552                endif   
553                       
554        endif
555       
556        if(binType==3)
557
558                SetDataFolder $(fullPathToFolder)
559                CheckDisplayed/W=$winNameStr iBin_qxqy_MLRTB
560               
561                if(V_flag==0)
562                        AppendtoGraph/W=$winNameStr iBin_qxqy_MLRTB vs qBin_qxqy_MLRTB
563                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MLRTB Y,wave=(:eBin_qxqy_MLRTB,:eBin_qxqy_MLRTB)
564                       
565                        ModifyGraph/W=$winNameStr mode=4
566                        ModifyGraph/W=$winNameStr marker=19
567                        ModifyGraph/W=$winNameStr rgb(iBin_qxqy_MLRTB)=(65535,0,0)
568                        ModifyGraph/W=$winNameStr msize=2
569                        ModifyGraph/W=$winNameStr grid=1
570                        ModifyGraph/W=$winNameStr log=1
571                        ModifyGraph/W=$winNameStr mirror=2
572                        Label/W=$winNameStr left "Intensity (1/cm)"
573                        Label/W=$winNameStr bottom "Q (1/A)"
574                endif   
575                       
576        endif
577
578        if(binType==4)          // slit aperture binning - MT, ML, MR, MB are averaged
579
580                SetDataFolder $(fullPathToFolder)
581                CheckDisplayed/W=$winNameStr iBin_qxqy_ML
582               
583                if(V_flag==0)
584                        AppendToGraph/W=$winNameStr iBin_qxqy_ML vs qBin_qxqy_ML
585                        AppendToGraph/W=$winNameStr iBin_qxqy_MR vs qBin_qxqy_MR
586//                      AppendToGraph/W=$winNameStr iBin_qxqy_MT vs qBin_qxqy_MT
587//                      AppendToGraph/W=$winNameStr iBin_qxqy_MB vs qBin_qxqy_MB
588                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_ML Y,wave=(:eBin_qxqy_ML,:eBin_qxqy_ML)
589                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MR Y,wave=(:eBin_qxqy_MR,:eBin_qxqy_MR)
590//                      ErrorBars/T=0 iBin_qxqy_MT Y,wave=(:eBin_qxqy_MT,:eBin_qxqy_MT)
591//                      ErrorBars/T=0 iBin_qxqy_MB Y,wave=(:eBin_qxqy_MB,:eBin_qxqy_MB)
592                       
593                        ModifyGraph/W=$winNameStr mode=4
594                        ModifyGraph/W=$winNameStr marker=19
595                        ModifyGraph/W=$winNameStr rgb(iBin_qxqy_ML)=(65535,0,0),rgb(iBin_qxqy_MR)=(65535,0,0)
596//                      ModifyGraph/W=$winNameStr rgb(iBin_qxqy_MB)=(1,16019,65535),rgb(iBin_qxqy_MT)=(1,16019,65535)
597                        ModifyGraph/W=$winNameStr msize=2
598                        ModifyGraph/W=$winNameStr muloffset(iBin_qxqy_ML)={0,4},muloffset(iBin_qxqy_MR)={0,8}
599//                      ModifyGraph/W=$winNameStr muloffset(iBin_qxqy_MB)={0,2}
600                        ModifyGraph/W=$winNameStr grid=1
601                        ModifyGraph/W=$winNameStr log=1
602                        ModifyGraph/W=$winNameStr mirror=2
603                endif           
604                       
605        endif
606
607        if(binType==5)
608
609                SetDataFolder $(fullPathToFolder)
610                CheckDisplayed/W=$winNameStr iBin_qxqy_MLRTB
611               
612                if(V_flag==0)
613                        AppendtoGraph/W=$winNameStr iBin_qxqy_MLRTB vs qBin_qxqy_MLRTB
614                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MLRTB Y,wave=(:eBin_qxqy_MLRTB,:eBin_qxqy_MLRTB)
615                       
616                        ModifyGraph/W=$winNameStr mode=4
617                        ModifyGraph/W=$winNameStr marker=19
618                        ModifyGraph/W=$winNameStr rgb(iBin_qxqy_MLRTB)=(65535,0,0)
619                        ModifyGraph/W=$winNameStr msize=2
620                        ModifyGraph/W=$winNameStr grid=1
621                        ModifyGraph/W=$winNameStr log=1
622                        ModifyGraph/W=$winNameStr mirror=2
623                        Label/W=$winNameStr left "Intensity (1/cm)"
624                        Label/W=$winNameStr bottom "Q (1/A)"
625                endif   
626                       
627        endif
628
629        if(binType==6)
630
631                SetDataFolder $(fullPathToFolder)
632                CheckDisplayed/W=$winNameStr iBin_qxqy_MLR
633               
634                if(V_flag==0)
635                        AppendtoGraph/W=$winNameStr iBin_qxqy_MLR vs qBin_qxqy_MLR
636                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MLR Y,wave=(:eBin_qxqy_MLR,:eBin_qxqy_MLR)
637                       
638                        ModifyGraph/W=$winNameStr mode=4
639                        ModifyGraph/W=$winNameStr marker=19
640                        ModifyGraph/W=$winNameStr rgb(iBin_qxqy_MLR)=(65535,0,0)
641                        ModifyGraph/W=$winNameStr msize=2
642                        ModifyGraph/W=$winNameStr grid=1
643                        ModifyGraph/W=$winNameStr log=1
644                        ModifyGraph/W=$winNameStr mirror=2
645                        Label/W=$winNameStr left "Intensity (1/cm)"
646                        Label/W=$winNameStr bottom "Q (1/A)"
647                endif   
648                       
649        endif
650
651        if(binType==7)
652
653                SetDataFolder $(fullPathToFolder)
654                CheckDisplayed/W=$winNameStr iBin_qxqy_MLR
655               
656                if(V_flag==0)
657                        AppendtoGraph/W=$winNameStr iBin_qxqy_MLR vs qBin_qxqy_MLR
658                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MLR Y,wave=(:eBin_qxqy_MLR,:eBin_qxqy_MLR)
659                       
660                        ModifyGraph/W=$winNameStr mode=4
661                        ModifyGraph/W=$winNameStr marker=19
662                        ModifyGraph/W=$winNameStr rgb(iBin_qxqy_MLR)=(65535,0,0)
663                        ModifyGraph/W=$winNameStr msize=2
664                        ModifyGraph/W=$winNameStr grid=1
665                        ModifyGraph/W=$winNameStr log=1
666                        ModifyGraph/W=$winNameStr mirror=2
667                        Label/W=$winNameStr left "Intensity (1/cm)"
668                        Label/W=$winNameStr bottom "Q (1/A)"
669                endif   
670                       
671        endif
672       
673        SetDataFolder root:
674End
675
676//
677// duplicated from Middle_IQ_Graph from VCALC
678// but plotted in a standalone graph window and not the VCALC subwindow
679//
680// V_1D_Data
681//
682//
683// x- need to set binType
684// x- currently  hard-wired == 1
685// x- error bars on the data
686//
687Proc V_Front_IQ_Graph(fullPathToFolder,binType,winNameStr)
688        String fullPathToFolder
689        Variable binType
690        String winNameStr
691
692
693//      binType = V_GetBinningPopMode()
694        SetDataFolder $(fullPathToFolder)
695
696// clear EVERYTHING
697        ClearIQIfDisplayed_AllFldr("FLRTB",winNameStr)
698       
699        ClearIQIfDisplayed_AllFldr("FLR",winNameStr)
700        ClearIQIfDisplayed_AllFldr("FTB",winNameStr)
701
702        ClearIQIfDisplayed_AllFldr("FT",winNameStr)     
703        ClearIQIfDisplayed_AllFldr("FL",winNameStr)     
704        ClearIQIfDisplayed_AllFldr("FR",winNameStr)     
705        ClearIQIfDisplayed_AllFldr("FB",winNameStr)
706               
707        if(binType==1)
708
709                SetDataFolder $(fullPathToFolder)
710                CheckDisplayed/W=$winNameStr iBin_qxqy_FL
711               
712                if(V_flag==0)
713                        AppendtoGraph/W=$winNameStr iBin_qxqy_FL vs qBin_qxqy_FL
714                        AppendToGraph/W=$winNameStr iBin_qxqy_FR vs qBin_qxqy_FR
715                        AppendToGraph/W=$winNameStr iBin_qxqy_FT vs qBin_qxqy_FT
716                        AppendToGraph/W=$winNameStr iBin_qxqy_FB vs qBin_qxqy_FB
717                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FL Y,wave=(:eBin_qxqy_FL,:eBin_qxqy_FL)
718                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FR Y,wave=(:eBin_qxqy_FR,:eBin_qxqy_FR)
719                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FT Y,wave=(:eBin_qxqy_FT,:eBin_qxqy_FT)
720                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FB Y,wave=(:eBin_qxqy_FB,:eBin_qxqy_FB)
721
722                        ModifyGraph/W=$winNameStr mode=4
723                        ModifyGraph/W=$winNameStr marker=19
724                        ModifyGraph/W=$winNameStr 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)
725                        ModifyGraph/W=$winNameStr msize=2
726                        ModifyGraph/W=$winNameStr muloffset(iBin_qxqy_FL)={0,4},muloffset(iBin_qxqy_FB)={0,2},muloffset(iBin_qxqy_FR)={0,8}
727                        ModifyGraph/W=$winNameStr grid=1
728                        ModifyGraph/W=$winNameStr log=1
729                        ModifyGraph/W=$winNameStr mirror=2
730                        Label/W=$winNameStr left "Intensity (1/cm)"
731                        Label/W=$winNameStr bottom "Q (1/A)"
732                endif           
733        endif
734       
735        if(binType==2)
736
737                SetDataFolder $(fullPathToFolder)
738                CheckDisplayed/W=$winNameStr iBin_qxqy_FLR
739               
740                if(V_flag==0)
741                        AppendtoGraph/W=$winNameStr iBin_qxqy_FLR vs qBin_qxqy_FLR
742                        AppendToGraph/W=$winNameStr iBin_qxqy_FTB vs qBin_qxqy_FTB
743                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FLR Y,wave=(:eBin_qxqy_FLR,:eBin_qxqy_FLR)
744                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FTB Y,wave=(:eBin_qxqy_FTB,:eBin_qxqy_FTB)
745
746                        ModifyGraph/W=$winNameStr mode=4
747                        ModifyGraph/W=$winNameStr marker=19
748                        ModifyGraph/W=$winNameStr rgb(iBin_qxqy_FLR)=(39321,26208,1),rgb(iBin_qxqy_FTB)=(2,39321,1)
749                        ModifyGraph/W=$winNameStr msize=2
750                        ModifyGraph/W=$winNameStr muloffset(iBin_qxqy_FLR)={0,2}
751                        ModifyGraph/W=$winNameStr grid=1
752                        ModifyGraph/W=$winNameStr log=1
753                        ModifyGraph/W=$winNameStr mirror=2
754//                      Label/W=$winNameStr left "Intensity (1/cm)"
755//                      Label/W=$winNameStr bottom "Q (1/A)"
756                endif   
757                       
758        endif
759       
760        if(binType==3) 
761       
762                SetDataFolder $(fullPathToFolder)
763                CheckDisplayed/W=$winNameStr iBin_qxqy_FLRTB
764               
765                if(V_flag==0)
766                        AppendtoGraph/W=$winNameStr iBin_qxqy_FLRTB vs qBin_qxqy_FLRTB
767                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FLRTB Y,wave=(:eBin_qxqy_FLRTB,:eBin_qxqy_FLRTB)
768
769                        ModifyGraph/W=$winNameStr mode=4
770                        ModifyGraph/W=$winNameStr marker=19
771                        ModifyGraph/W=$winNameStr rgb(iBin_qxqy_FLRTB)=(39321,26208,1)
772                        ModifyGraph/W=$winNameStr msize=2
773                        ModifyGraph/W=$winNameStr grid=1
774                        ModifyGraph/W=$winNameStr log=1
775                        ModifyGraph/W=$winNameStr mirror=2
776                        Label/W=$winNameStr left "Intensity (1/cm)"
777                        Label/W=$winNameStr bottom "Q (1/A)"
778                endif   
779                       
780        endif
781
782        if(binType==4)          // slit aperture binning - MT, ML, MR, MB are averaged
783               
784                SetDataFolder $(fullPathToFolder)
785                CheckDisplayed/W=$winNameStr iBin_qxqy_FL
786               
787                if(V_flag==0)
788                        AppendtoGraph/W=$winNameStr iBin_qxqy_FL vs qBin_qxqy_FL
789                        AppendToGraph/W=$winNameStr iBin_qxqy_FR vs qBin_qxqy_FR
790//                      AppendToGraph/W=$winNameStr iBin_qxqy_FT vs qBin_qxqy_FT
791//                      AppendToGraph/W=$winNameStr iBin_qxqy_FB vs qBin_qxqy_FB
792                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FL Y,wave=(:eBin_qxqy_FL,:eBin_qxqy_FL)
793                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FR Y,wave=(:eBin_qxqy_FR,:eBin_qxqy_FR)
794//                      ErrorBars/T=0 iBin_qxqy_FT Y,wave=(:eBin_qxqy_FT,:eBin_qxqy_FT)
795//                      ErrorBars/T=0 iBin_qxqy_FB Y,wave=(:eBin_qxqy_FB,:eBin_qxqy_FB)
796                       
797                        ModifyGraph/W=$winNameStr mode=4
798                        ModifyGraph/W=$winNameStr marker=19
799                        ModifyGraph/W=$winNameStr rgb(iBin_qxqy_FL)=(39321,26208,1),rgb(iBin_qxqy_FR)=(39321,26208,1)
800//                      ModifyGraph/W=$winNameStr rgb(iBin_qxqy_FB)=(2,39321,1),rgb(iBin_qxqy_FT)=(2,39321,1)
801                        ModifyGraph/W=$winNameStr msize=2
802                        ModifyGraph/W=$winNameStr muloffset(iBin_qxqy_FL)={0,4},muloffset(iBin_qxqy_FR)={0,8}
803//                      ModifyGraph/W=$winNameStr,muloffset(iBin_qxqy_FB)={0,2}
804                        ModifyGraph/W=$winNameStr grid=1
805                        ModifyGraph/W=$winNameStr log=1
806                        ModifyGraph/W=$winNameStr mirror=2
807                endif           
808                       
809        endif
810
811        if(binType==5)
812
813                SetDataFolder $(fullPathToFolder)
814                CheckDisplayed/W=$winNameStr iBin_qxqy_FLR
815               
816                if(V_flag==0)
817                        AppendtoGraph/W=$winNameStr iBin_qxqy_FLR vs qBin_qxqy_FLR
818                        AppendToGraph/W=$winNameStr iBin_qxqy_FTB vs qBin_qxqy_FTB
819                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FLR Y,wave=(:eBin_qxqy_FLR,:eBin_qxqy_FLR)
820                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FTB Y,wave=(:eBin_qxqy_FTB,:eBin_qxqy_FTB)
821
822                        ModifyGraph/W=$winNameStr mode=4
823                        ModifyGraph/W=$winNameStr marker=19
824                        ModifyGraph/W=$winNameStr rgb(iBin_qxqy_FLR)=(39321,26208,1),rgb(iBin_qxqy_FTB)=(2,39321,1)
825                        ModifyGraph/W=$winNameStr msize=2
826                        ModifyGraph/W=$winNameStr muloffset(iBin_qxqy_FLR)={0,2}
827                        ModifyGraph/W=$winNameStr grid=1
828                        ModifyGraph/W=$winNameStr log=1
829                        ModifyGraph/W=$winNameStr mirror=2
830//                      Label/W=$winNameStr left "Intensity (1/cm)"
831//                      Label/W=$winNameStr bottom "Q (1/A)"
832                endif   
833                       
834        endif
835
836        if(binType==6) 
837       
838                SetDataFolder $(fullPathToFolder)
839                CheckDisplayed/W=$winNameStr iBin_qxqy_FLRTB
840               
841                if(V_flag==0)
842                        AppendtoGraph/W=$winNameStr iBin_qxqy_FLRTB vs qBin_qxqy_FLRTB
843                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FLRTB Y,wave=(:eBin_qxqy_FLRTB,:eBin_qxqy_FLRTB)
844
845                        ModifyGraph/W=$winNameStr mode=4
846                        ModifyGraph/W=$winNameStr marker=19
847                        ModifyGraph/W=$winNameStr rgb(iBin_qxqy_FLRTB)=(39321,26208,1)
848                        ModifyGraph/W=$winNameStr msize=2
849                        ModifyGraph/W=$winNameStr grid=1
850                        ModifyGraph/W=$winNameStr log=1
851                        ModifyGraph/W=$winNameStr mirror=2
852                        Label/W=$winNameStr left "Intensity (1/cm)"
853                        Label/W=$winNameStr bottom "Q (1/A)"
854                endif   
855                       
856        endif
857       
858        if(binType==7)
859
860                SetDataFolder $(fullPathToFolder)
861                CheckDisplayed/W=$winNameStr iBin_qxqy_FLR
862               
863                if(V_flag==0)
864                        AppendtoGraph/W=$winNameStr iBin_qxqy_FLR vs qBin_qxqy_FLR
865                        AppendToGraph/W=$winNameStr iBin_qxqy_FTB vs qBin_qxqy_FTB
866                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FLR Y,wave=(:eBin_qxqy_FLR,:eBin_qxqy_FLR)
867                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FTB Y,wave=(:eBin_qxqy_FTB,:eBin_qxqy_FTB)
868
869                        ModifyGraph/W=$winNameStr mode=4
870                        ModifyGraph/W=$winNameStr marker=19
871                        ModifyGraph/W=$winNameStr rgb(iBin_qxqy_FLR)=(39321,26208,1),rgb(iBin_qxqy_FTB)=(2,39321,1)
872                        ModifyGraph/W=$winNameStr msize=2
873                        ModifyGraph/W=$winNameStr muloffset(iBin_qxqy_FLR)={0,2}
874                        ModifyGraph/W=$winNameStr grid=1
875                        ModifyGraph/W=$winNameStr log=1
876                        ModifyGraph/W=$winNameStr mirror=2
877//                      Label/W=$winNameStr left "Intensity (1/cm)"
878//                      Label/W=$winNameStr bottom "Q (1/A)"
879                endif   
880                       
881        endif
882
883       
884        SetDataFolder root:
885End
886
887
888//
889// x- need to set binType
890// x- currently  hard-wired == 1
891// x- error bars on the data
892//
893//      type = the data folder
894// binType = numerical index of the bin type (1->4)
895//  one;two;four;slit
896// winNameStr = the name of the target window
897//
898////////////to plot the back panel I(q)
899Proc V_Back_IQ_Graph(fullPathToFolder,binType,winNameStr)
900        String fullPathToFolder
901        Variable binType
902        String winNameStr
903       
904//      SetDataFolder root:Packages:NIST:VSANS:VCALC:entry:instrument:detector_B
905
906//      Variable binType
907
908//      binType = V_GetBinningPopMode()
909       
910        ClearIQIfDisplayed_AllFldr("B",winNameStr)
911
912// skip everything if back detector is ignored
913        if(!root:Packages:NIST:VSANS:Globals:gIgnoreDetB)
914       
915                SetDataFolder $(fullPathToFolder)       
916       
917                if(binType==1 || binType==2 || binType==3)
918               
919                        SetDataFolder $(fullPathToFolder)       
920                        CheckDisplayed/W=$winNameStr iBin_qxqy_B
921                       
922                        if(V_flag==0)
923                                AppendtoGraph/W=$winNameStr iBin_qxqy_B vs qBin_qxqy_B
924
925                                ErrorBars/T=0/W=$winNameStr iBin_qxqy_B Y,wave=(:eBin_qxqy_B,:eBin_qxqy_B)
926                                ModifyGraph/W=$winNameStr mode(iBin_qxqy_B)=4
927                                ModifyGraph/W=$winNameStr rgb(iBin_qxqy_B)=(1,52428,52428)
928                                ModifyGraph/W=$winNameStr grid=1
929                                ModifyGraph/W=$winNameStr log=1
930                                ModifyGraph/W=$winNameStr mirror=2
931                                ModifyGraph/W=$winNameStr marker(iBin_qxqy_B)=19,msize(iBin_qxqy_B)=2
932        //                      ModifyGraph/W=$winNameStr msize(iBin_qxqy_B)=3,textMarker(iBin_qxqy_B)={"B","default",1,0,5,0.00,0.00}
933                        endif
934                       
935                endif
936       
937                //nothing different here since there is ony a single detector to display, but for the future...
938                if(binType==4)
939               
940                        SetDataFolder $(fullPathToFolder)                               // ClearIQIfDisplayed_AllFldr() resets to root:
941                        CheckDisplayed/W=$winNameStr iBin_qxqy_B
942                       
943                        if(V_flag==0)
944                                AppendtoGraph/W=$winNameStr iBin_qxqy_B vs qBin_qxqy_B
945                                ErrorBars/T=0/W=$winNameStr iBin_qxqy_B Y,wave=(:eBin_qxqy_B,:eBin_qxqy_B)
946                                ModifyGraph/W=$winNameStr mode(iBin_qxqy_B)=4
947                                ModifyGraph/W=$winNameStr marker(iBin_qxqy_B)=19
948                                ModifyGraph/W=$winNameStr rgb(iBin_qxqy_B)=(1,52428,52428)
949                                ModifyGraph/W=$winNameStr msize(iBin_qxqy_B)=2
950                                ModifyGraph/W=$winNameStr grid=1
951                                ModifyGraph/W=$winNameStr log=1
952                                ModifyGraph/W=$winNameStr mirror=2
953                        endif
954                endif
955       
956                if(binType==5 || binType==6 || binType==7)
957               
958                        SetDataFolder $(fullPathToFolder)       
959                        CheckDisplayed/W=$winNameStr iBin_qxqy_B
960                       
961                        if(V_flag==0)
962                                AppendtoGraph/W=$winNameStr iBin_qxqy_B vs qBin_qxqy_B
963                                ErrorBars/T=0/W=$winNameStr iBin_qxqy_B Y,wave=(:eBin_qxqy_B,:eBin_qxqy_B)
964                                ModifyGraph/W=$winNameStr mode(iBin_qxqy_B)=4
965                                ModifyGraph/W=$winNameStr rgb(iBin_qxqy_B)=(1,52428,52428)
966                                ModifyGraph/W=$winNameStr grid=1
967                                ModifyGraph/W=$winNameStr log=1
968                                ModifyGraph/W=$winNameStr mirror=2
969                                ModifyGraph/W=$winNameStr marker(iBin_qxqy_B)=19,msize(iBin_qxqy_B)=2
970        //                      ModifyGraph/W=$winNameStr msize(iBin_qxqy_B)=3,textMarker(iBin_qxqy_B)={"B","default",1,0,5,0.00,0.00}
971                        endif
972                       
973                endif
974
975        endif           // if (don't ignore back detector)
976       
977        SetDataFolder root:
978End
979
980
981
982//      type = the data folder
983// binType = numerical index of the bin type (1->4)
984//  one;two;four;slit
985// winNameStr = the name of the target window
986//
987////////////to plot the back panel I(q)
988Proc V_Back_IQ_Graph_trim(fullPathToFolder,binType,winNameStr)
989        String fullPathToFolder
990        Variable binType
991        String winNameStr
992       
993//      SetDataFolder root:Packages:NIST:VSANS:VCALC:entry:instrument:detector_B
994
995//      Variable binType
996
997//      binType = V_GetBinningPopMode()
998        ClearIQIfDisplayed_AllFldr("B_trim",winNameStr)
999
1000// skip everything if back detector is ignored
1001        if(!root:Packages:NIST:VSANS:Globals:gIgnoreDetB)
1002       
1003                SetDataFolder $(fullPathToFolder)       
1004       
1005                if(binType==1 || binType==2 || binType==3)
1006               
1007                        SetDataFolder $(fullPathToFolder)       
1008                        CheckDisplayed/W=$winNameStr iBin_qxqy_B_trim
1009                       
1010                        if(V_flag==0)
1011                                AppendtoGraph/W=$winNameStr iBin_qxqy_B_trim vs qBin_qxqy_B_trim
1012                                ErrorBars/T=0/W=$winNameStr iBin_qxqy_B_trim Y,wave=(:eBin_qxqy_B_trim,:eBin_qxqy_B_trim)
1013                                ModifyGraph/W=$winNameStr mode(iBin_qxqy_B_trim)=4
1014                                ModifyGraph/W=$winNameStr rgb(iBin_qxqy_B_trim)=(1,52428,52428)
1015                                ModifyGraph/W=$winNameStr grid=1
1016                                ModifyGraph/W=$winNameStr log=1
1017                                ModifyGraph/W=$winNameStr mirror=2
1018                                ModifyGraph/W=$winNameStr marker(iBin_qxqy_B_trim)=19,msize(iBin_qxqy_B_trim)=3
1019        //                      ModifyGraph/W=$winNameStr msize(iBin_qxqy_B_trim)=3,textMarker(iBin_qxqy_B_trim)={"B","default",1,0,5,0.00,0.00}
1020       
1021                        endif
1022                       
1023                endif
1024       
1025                //nothing different here since there is ony a single detector to display, but for the future...
1026                if(binType==4)
1027               
1028                        SetDataFolder $(fullPathToFolder)       
1029                        CheckDisplayed/W=$winNameStr iBin_qxqy_B_trim
1030                       
1031                        if(V_flag==0)
1032                                AppendtoGraph/W=$winNameStr iBin_qxqy_B_trim vs qBin_qxqy_B_trim
1033                                ErrorBars/T=0/W=$winNameStr iBin_qxqy_B_trim Y,wave=(:eBin_qxqy_B_trim,:eBin_qxqy_B_trim)
1034                                ModifyGraph/W=$winNameStr mode(iBin_qxqy_B_trim)=4
1035                                ModifyGraph/W=$winNameStr marker(iBin_qxqy_B_trim)=19
1036                                ModifyGraph/W=$winNameStr rgb(iBin_qxqy_B_trim)=(1,52428,52428)
1037                                ModifyGraph/W=$winNameStr msize(iBin_qxqy_B_trim)=3
1038                                ModifyGraph/W=$winNameStr grid=1
1039                                ModifyGraph/W=$winNameStr log=1
1040                                ModifyGraph/W=$winNameStr mirror=2
1041                        endif
1042                endif
1043       
1044                if(binType==5 || binType==6 || binType==7)
1045               
1046                SetDataFolder $(fullPathToFolder)       
1047                                CheckDisplayed/W=$winNameStr iBin_qxqy_B_trim
1048                       
1049                        if(V_flag==0)
1050                                AppendtoGraph/W=$winNameStr iBin_qxqy_B_trim vs qBin_qxqy_B_trim
1051                                ErrorBars/T=0/W=$winNameStr iBin_qxqy_B_trim Y,wave=(:eBin_qxqy_B_trim,:eBin_qxqy_B_trim)
1052                                ModifyGraph/W=$winNameStr mode(iBin_qxqy_B_trim)=4
1053                                ModifyGraph/W=$winNameStr marker(iBin_qxqy_B_trim)=19
1054                                ModifyGraph/W=$winNameStr rgb(iBin_qxqy_B_trim)=(1,52428,52428)
1055                                ModifyGraph/W=$winNameStr msize(iBin_qxqy_B_trim)=3
1056                                ModifyGraph/W=$winNameStr grid=1
1057                                ModifyGraph/W=$winNameStr log=1
1058                                ModifyGraph/W=$winNameStr mirror=2
1059                        endif
1060                endif
1061       
1062        endif // if (don't ignore back detector)
1063       
1064        SetDataFolder root:
1065End
1066
1067
1068//
1069// x- need to set binType
1070// x- currently  hard-wired == 1
1071//
1072// input "fullPathToFolder" is the data type and defines the folder,
1073// i.e. "root:Packages:NIST:VSANS:"+"SAM"
1074//
1075Proc V_Middle_IQ_Graph_trim(fullPathToFolder,binType,winNameStr)
1076        String fullPathToFolder
1077        Variable binType
1078        String winNameStr
1079
1080//      binType = V_GetBinningPopMode()
1081        SetDataFolder $(fullPathToFolder)
1082
1083//      String midList = "ML;MR;MT;MB;MLR;MTB;MLRTB;"
1084        String type
1085        Variable ii
1086
1087// clear EVERYTHING
1088        ClearIQIfDisplayed_AllFldr("MLRTB_trim",winNameStr)
1089        ClearIQIfDisplayed_AllFldr("MLR_trim",winNameStr)
1090        ClearIQIfDisplayed_AllFldr("MTB_trim",winNameStr)               //this returns to root:
1091        ClearIQIfDisplayed_AllFldr("MT_trim",winNameStr)       
1092        ClearIQIfDisplayed_AllFldr("ML_trim",winNameStr)       
1093        ClearIQIfDisplayed_AllFldr("MR_trim",winNameStr)       
1094        ClearIQIfDisplayed_AllFldr("MB_trim",winNameStr)               
1095
1096        if(binType==1)
1097//              ii=0
1098//              do
1099//                      type = StringFromList(ii, midlist, ";")
1100//                      CheckDisplayed/W=$winNameStr $("iBin_qxqy_"+type+"_trim")
1101//                      if(V_flag==1)
1102//                              RemoveFromGraph/W=$winNameStr $("iBin_qxqy_"+type+"_trim")
1103//                      endif
1104//                      ii+=1
1105//              while(ii<ItemsInList(midList))
1106       
1107                       
1108                SetDataFolder $(fullPathToFolder)
1109                CheckDisplayed/W=$winNameStr iBin_qxqy_ML_trim
1110               
1111                if(V_flag==0)
1112                        AppendtoGraph/W=$winNameStr iBin_qxqy_ML_trim vs qBin_qxqy_ML_trim
1113                        AppendToGraph/W=$winNameStr iBin_qxqy_MR_trim vs qBin_qxqy_MR_trim
1114                        AppendToGraph/W=$winNameStr iBin_qxqy_MT_trim vs qBin_qxqy_MT_trim
1115                        AppendToGraph/W=$winNameStr iBin_qxqy_MB_trim vs qBin_qxqy_MB_trim
1116                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_ML_trim Y,wave=(:eBin_qxqy_ML_trim,:eBin_qxqy_ML_trim)
1117                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MR_trim Y,wave=(:eBin_qxqy_MR_trim,:eBin_qxqy_MR_trim)
1118                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MT_trim Y,wave=(:eBin_qxqy_MT_trim,:eBin_qxqy_MT_trim)
1119                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MB_trim Y,wave=(:eBin_qxqy_MB_trim,:eBin_qxqy_MB_trim)
1120                       
1121                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_ML_trim)=4
1122                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_MR_trim)=4
1123                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_MT_trim)=4
1124                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_MB_trim)=4
1125                        ModifyGraph/W=$winNameStr marker(iBin_qxqy_ML_trim)=19
1126                        ModifyGraph/W=$winNameStr marker(iBin_qxqy_MR_trim)=19
1127                        ModifyGraph/W=$winNameStr marker(iBin_qxqy_MT_trim)=19
1128                        ModifyGraph/W=$winNameStr marker(iBin_qxqy_MB_trim)=19
1129                        ModifyGraph/W=$winNameStr rgb(iBin_qxqy_ML_trim)=(65535,0,0),rgb(iBin_qxqy_MB_trim)=(1,16019,65535),rgb(iBin_qxqy_MR_trim)=(65535,0,0),rgb(iBin_qxqy_MT_trim)=(1,16019,65535)
1130                        ModifyGraph/W=$winNameStr msize(iBin_qxqy_ML_trim)=3
1131                        ModifyGraph/W=$winNameStr msize(iBin_qxqy_MR_trim)=3
1132                        ModifyGraph/W=$winNameStr msize(iBin_qxqy_MT_trim)=3
1133                        ModifyGraph/W=$winNameStr msize(iBin_qxqy_MB_trim)=3
1134                        ModifyGraph/W=$winNameStr muloffset(iBin_qxqy_ML_trim)={0,4},muloffset(iBin_qxqy_MB_trim)={0,2},muloffset(iBin_qxqy_MR_trim)={0,8}
1135                        ModifyGraph/W=$winNameStr grid=1
1136                        ModifyGraph/W=$winNameStr log=1
1137                        ModifyGraph/W=$winNameStr mirror=2
1138                endif           
1139        endif
1140       
1141        if(binType==2)
1142// clear EVERYTHING
1143//              ii=0
1144//              do
1145//                      type = StringFromList(ii, midlist, ";")
1146//                      CheckDisplayed/W=$winNameStr $("iBin_qxqy_"+type+"_trim")
1147//                      if(V_flag==1)
1148//                              RemoveFromGraph/W=$winNameStr $("iBin_qxqy_"+type+"_trim")
1149//                      endif
1150//                      ii+=1
1151//              while(ii<ItemsInList(midList))
1152//             
1153
1154                SetDataFolder $(fullPathToFolder)
1155                CheckDisplayed/W=$winNameStr iBin_qxqy_MLR_trim
1156               
1157                if(V_flag==0)
1158                        AppendtoGraph/W=$winNameStr iBin_qxqy_MLR_trim vs qBin_qxqy_MLR_trim
1159                        AppendToGraph/W=$winNameStr iBin_qxqy_MTB_trim vs qBin_qxqy_MTB_trim
1160                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MLR_trim Y,wave=(:eBin_qxqy_MLR_trim,:eBin_qxqy_MLR_trim)
1161                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MTB_trim Y,wave=(:eBin_qxqy_MTB_trim,:eBin_qxqy_MTB_trim)
1162                       
1163                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_MLR_trim)=4
1164                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_MTB_trim)=4
1165                        ModifyGraph/W=$winNameStr marker(iBin_qxqy_MLR_trim)=19
1166                        ModifyGraph/W=$winNameStr marker(iBin_qxqy_MTB_trim)=19
1167                        ModifyGraph/W=$winNameStr rgb(iBin_qxqy_MLR_trim)=(65535,0,0),rgb(iBin_qxqy_MTB_trim)=(1,16019,65535)
1168                        ModifyGraph/W=$winNameStr msize(iBin_qxqy_MLR_trim)=3
1169                        ModifyGraph/W=$winNameStr msize(iBin_qxqy_MTB_trim)=3
1170                        ModifyGraph/W=$winNameStr muloffset(iBin_qxqy_MLR_trim)={0,2}
1171                        ModifyGraph/W=$winNameStr grid=1
1172                        ModifyGraph/W=$winNameStr log=1
1173                        ModifyGraph/W=$winNameStr mirror=2
1174                        Label/W=$winNameStr left "Intensity (1/cm)"
1175                        Label/W=$winNameStr bottom "Q (1/A)"
1176                endif   
1177                       
1178        endif
1179       
1180        if(binType==3)
1181//// clear EVERYTHING
1182//              ii=0
1183//              do
1184//                      type = StringFromList(ii, midlist, ";")
1185//                      CheckDisplayed/W=$winNameStr $("iBin_qxqy_"+type+"_trim")
1186//                      if(V_flag==1)
1187//                              RemoveFromGraph/W=$winNameStr $("iBin_qxqy_"+type+"_trim")
1188//                      endif
1189//                      ii+=1
1190//              while(ii<ItemsInList(midList))
1191
1192       
1193                SetDataFolder $(fullPathToFolder)
1194                CheckDisplayed/W=$winNameStr iBin_qxqy_MLRTB_trim
1195               
1196                if(V_flag==0)
1197                        AppendtoGraph/W=$winNameStr iBin_qxqy_MLRTB_trim vs qBin_qxqy_MLRTB_trim
1198                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MLRTB_trim Y,wave=(:eBin_qxqy_MLRTB_trim,:eBin_qxqy_MLRTB_trim)
1199                       
1200                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_MLRTB_trim)=4
1201                        ModifyGraph/W=$winNameStr marker(iBin_qxqy_MLRTB_trim)=19
1202                        ModifyGraph/W=$winNameStr rgb(iBin_qxqy_MLRTB_trim)=(65535,0,0)
1203                        ModifyGraph/W=$winNameStr msize(iBin_qxqy_MLRTB_trim)=3
1204                        ModifyGraph/W=$winNameStr grid=1
1205                        ModifyGraph/W=$winNameStr log=1
1206                        ModifyGraph/W=$winNameStr mirror=2
1207                        Label/W=$winNameStr left "Intensity (1/cm)"
1208                        Label/W=$winNameStr bottom "Q (1/A)"
1209                endif   
1210                       
1211        endif
1212
1213        if(binType==4)          // slit aperture binning - MT, ML, MR, MB are averaged
1214//// clear EVERYTHING
1215//              ii=0
1216//              do
1217//                      type = StringFromList(ii, midlist, ";")
1218//                      CheckDisplayed/W=$winNameStr $("iBin_qxqy_"+type+"_trim")
1219//                      if(V_flag==1)
1220//                              RemoveFromGraph/W=$winNameStr $("iBin_qxqy_"+type+"_trim")
1221//                      endif
1222//                      ii+=1
1223//              while(ii<ItemsInList(midList))
1224               
1225
1226               
1227                SetDataFolder $(fullPathToFolder)
1228                CheckDisplayed/W=$winNameStr iBin_qxqy_ML_trim
1229               
1230                if(V_flag==0)
1231                        AppendToGraph/W=$winNameStr iBin_qxqy_ML_trim vs qBin_qxqy_ML_trim
1232                        AppendToGraph/W=$winNameStr iBin_qxqy_MR_trim vs qBin_qxqy_MR_trim
1233//                      AppendToGraph/W=$winNameStr iBin_qxqy_MT_trim vs qBin_qxqy_MT_trim
1234//                      AppendToGraph/W=$winNameStr iBin_qxqy_MB_trim vs qBin_qxqy_MB_trim
1235                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_ML_trim Y,wave=(:eBin_qxqy_ML_trim,:eBin_qxqy_ML_trim)
1236                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MR_trim Y,wave=(:eBin_qxqy_MR_trim,:eBin_qxqy_MR_trim)
1237//                      ErrorBars/T=0 iBin_qxqy_MT_trim Y,wave=(:eBin_qxqy_MT_trim,:eBin_qxqy_MT_trim)
1238//                      ErrorBars/T=0 iBin_qxqy_MB_trim Y,wave=(:eBin_qxqy_MB_trim,:eBin_qxqy_MB_trim)
1239                       
1240                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_ML_trim)=4
1241                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_MR_trim)=4
1242//                      ModifyGraph/W=$winNameStr mode(iBin_qxqy_MT_trim)=4
1243//                      ModifyGraph/W=$winNameStr mode(iBin_qxqy_MB_trim)=4
1244                        ModifyGraph/W=$winNameStr marker(iBin_qxqy_ML_trim)=19
1245                        ModifyGraph/W=$winNameStr marker(iBin_qxqy_MR_trim)=19
1246//                      ModifyGraph/W=$winNameStr marker(iBin_qxqy_MT_trim)=19
1247//                      ModifyGraph/W=$winNameStr marker(iBin_qxqy_MB_trim)=19
1248                        ModifyGraph/W=$winNameStr rgb(iBin_qxqy_ML_trim)=(65535,0,0),rgb(iBin_qxqy_MR_trim)=(65535,0,0)
1249//                      ModifyGraph/W=$winNameStr rgb(iBin_qxqy_MB_trim)=(1,16019,65535),rgb(iBin_qxqy_MT_trim)=(1,16019,65535)
1250                        ModifyGraph/W=$winNameStr msize(iBin_qxqy_ML_trim)=3
1251                        ModifyGraph/W=$winNameStr msize(iBin_qxqy_MR_trim)=3
1252//                      ModifyGraph/W=$winNameStr msize(iBin_qxqy_MT_trim)=3
1253//                      ModifyGraph/W=$winNameStr msize(iBin_qxqy_MB_trim)=3
1254                        ModifyGraph/W=$winNameStr muloffset(iBin_qxqy_ML_trim)={0,4},muloffset(iBin_qxqy_MR_trim)={0,8}
1255//                      ModifyGraph/W=$winNameStr muloffset(iBin_qxqy_MB_trim)={0,2}
1256                        ModifyGraph/W=$winNameStr grid=1
1257                        ModifyGraph/W=$winNameStr log=1
1258                        ModifyGraph/W=$winNameStr mirror=2
1259                endif           
1260                       
1261        endif
1262       
1263        if(binType==5)
1264//// clear EVERYTHING
1265//              ii=0
1266//              do
1267//                      type = StringFromList(ii, midlist, ";")
1268//                      CheckDisplayed/W=$winNameStr $("iBin_qxqy_"+type+"_trim")
1269//                      if(V_flag==1)
1270//                              RemoveFromGraph/W=$winNameStr $("iBin_qxqy_"+type+"_trim")
1271//                      endif
1272//                      ii+=1
1273//              while(ii<ItemsInList(midList))
1274
1275       
1276                SetDataFolder $(fullPathToFolder)
1277                CheckDisplayed/W=$winNameStr iBin_qxqy_MLRTB_trim
1278               
1279                if(V_flag==0)
1280                        AppendtoGraph/W=$winNameStr iBin_qxqy_MLRTB_trim vs qBin_qxqy_MLRTB_trim
1281                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MLRTB_trim Y,wave=(:eBin_qxqy_MLRTB_trim,:eBin_qxqy_MLRTB_trim)
1282                       
1283                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_MLRTB_trim)=4
1284                        ModifyGraph/W=$winNameStr marker(iBin_qxqy_MLRTB_trim)=19
1285                        ModifyGraph/W=$winNameStr rgb(iBin_qxqy_MLRTB_trim)=(65535,0,0)
1286                        ModifyGraph/W=$winNameStr msize(iBin_qxqy_MLRTB_trim)=3
1287                        ModifyGraph/W=$winNameStr grid=1
1288                        ModifyGraph/W=$winNameStr log=1
1289                        ModifyGraph/W=$winNameStr mirror=2
1290                        Label/W=$winNameStr left "Intensity (1/cm)"
1291                        Label/W=$winNameStr bottom "Q (1/A)"
1292                endif   
1293                       
1294        endif
1295       
1296        if(binType==6)
1297// clear EVERYTHING
1298//              ii=0
1299//              do
1300//                      type = StringFromList(ii, midlist, ";")
1301//                      CheckDisplayed/W=$winNameStr $("iBin_qxqy_"+type+"_trim")
1302//                      if(V_flag==1)
1303//                              RemoveFromGraph/W=$winNameStr $("iBin_qxqy_"+type+"_trim")
1304//                      endif
1305//                      ii+=1
1306//              while(ii<ItemsInList(midList))
1307//             
1308
1309                SetDataFolder $(fullPathToFolder)
1310                CheckDisplayed/W=$winNameStr iBin_qxqy_MLR_trim
1311               
1312                if(V_flag==0)
1313                        AppendtoGraph/W=$winNameStr iBin_qxqy_MLR_trim vs qBin_qxqy_MLR_trim
1314                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MLR_trim Y,wave=(:eBin_qxqy_MLR_trim,:eBin_qxqy_MLR_trim)
1315                       
1316                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_MLR_trim)=4
1317                        ModifyGraph/W=$winNameStr marker(iBin_qxqy_MLR_trim)=19
1318                        ModifyGraph/W=$winNameStr rgb(iBin_qxqy_MLR_trim)=(65535,0,0)
1319                        ModifyGraph/W=$winNameStr msize(iBin_qxqy_MLR_trim)=3
1320//                      ModifyGraph/W=$winNameStr muloffset(iBin_qxqy_MLR_trim)={0,2}
1321                        ModifyGraph/W=$winNameStr grid=1
1322                        ModifyGraph/W=$winNameStr log=1
1323                        ModifyGraph/W=$winNameStr mirror=2
1324                        Label/W=$winNameStr left "Intensity (1/cm)"
1325                        Label/W=$winNameStr bottom "Q (1/A)"
1326                endif   
1327                       
1328        endif   
1329       
1330        if(binType==7)
1331// clear EVERYTHING
1332//              ii=0
1333//              do
1334//                      type = StringFromList(ii, midlist, ";")
1335//                      CheckDisplayed/W=$winNameStr $("iBin_qxqy_"+type+"_trim")
1336//                      if(V_flag==1)
1337//                              RemoveFromGraph/W=$winNameStr $("iBin_qxqy_"+type+"_trim")
1338//                      endif
1339//                      ii+=1
1340//              while(ii<ItemsInList(midList))
1341//             
1342
1343                SetDataFolder $(fullPathToFolder)
1344                CheckDisplayed/W=$winNameStr iBin_qxqy_MLR_trim
1345               
1346                if(V_flag==0)
1347                        AppendtoGraph/W=$winNameStr iBin_qxqy_MLR_trim vs qBin_qxqy_MLR_trim
1348                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MLR_trim Y,wave=(:eBin_qxqy_MLR_trim,:eBin_qxqy_MLR_trim)
1349                       
1350                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_MLR_trim)=4
1351                        ModifyGraph/W=$winNameStr marker(iBin_qxqy_MLR_trim)=19
1352                        ModifyGraph/W=$winNameStr rgb(iBin_qxqy_MLR_trim)=(65535,0,0)
1353                        ModifyGraph/W=$winNameStr msize(iBin_qxqy_MLR_trim)=3
1354//                      ModifyGraph/W=$winNameStr muloffset(iBin_qxqy_MLR_trim)={0,2}
1355                        ModifyGraph/W=$winNameStr grid=1
1356                        ModifyGraph/W=$winNameStr log=1
1357                        ModifyGraph/W=$winNameStr mirror=2
1358                        Label/W=$winNameStr left "Intensity (1/cm)"
1359                        Label/W=$winNameStr bottom "Q (1/A)"
1360                endif   
1361                       
1362        endif   
1363               
1364        SetDataFolder root:
1365End
1366
1367
1368
1369
1370//
1371// x- need to set binType
1372// x- currently  hard-wired == 1
1373// x- error bars on the data
1374//
1375Proc V_Front_IQ_Graph_trim(fullPathToFolder,binType,winNameStr)
1376        String fullPathToFolder
1377        Variable binType
1378        String winNameStr
1379
1380
1381        String frontList = "FL;FR;FT;FB;FLR;FTB;FLRTB;"
1382        String type
1383        Variable ii
1384        SetDataFolder $(fullPathToFolder)
1385
1386// clear EVERYTHING
1387        ClearIQIfDisplayed_AllFldr("FLRTB_trim",winNameStr)
1388       
1389        ClearIQIfDisplayed_AllFldr("FLR_trim",winNameStr)
1390        ClearIQIfDisplayed_AllFldr("FTB_trim",winNameStr)
1391
1392        ClearIQIfDisplayed_AllFldr("FT_trim",winNameStr)       
1393        ClearIQIfDisplayed_AllFldr("FL_trim",winNameStr)       
1394        ClearIQIfDisplayed_AllFldr("FR_trim",winNameStr)       
1395        ClearIQIfDisplayed_AllFldr("FB_trim",winNameStr)
1396               
1397        if(binType==1)
1398                               
1399                SetDataFolder $(fullPathToFolder)
1400                CheckDisplayed/W=$winNameStr iBin_qxqy_FL_trim
1401               
1402                if(V_flag==0)
1403                        AppendtoGraph/W=$winNameStr iBin_qxqy_FL_trim vs qBin_qxqy_FL_trim
1404                        AppendToGraph/W=$winNameStr iBin_qxqy_FR_trim vs qBin_qxqy_FR_trim
1405                        AppendToGraph/W=$winNameStr iBin_qxqy_FT_trim vs qBin_qxqy_FT_trim
1406                        AppendToGraph/W=$winNameStr iBin_qxqy_FB_trim vs qBin_qxqy_FB_trim
1407                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FL_trim Y,wave=(:eBin_qxqy_FL_trim,:eBin_qxqy_FL_trim)
1408                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FR_trim Y,wave=(:eBin_qxqy_FR_trim,:eBin_qxqy_FR_trim)
1409                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FT_trim Y,wave=(:eBin_qxqy_FT_trim,:eBin_qxqy_FT_trim)
1410                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FB_trim Y,wave=(:eBin_qxqy_FB_trim,:eBin_qxqy_FB_trim)
1411
1412                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_FL_trim)=4
1413                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_FR_trim)=4
1414                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_FT_trim)=4
1415                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_FB_trim)=4
1416                        ModifyGraph/W=$winNameStr marker(iBin_qxqy_FL_trim)=19
1417                        ModifyGraph/W=$winNameStr marker(iBin_qxqy_FR_trim)=19
1418                        ModifyGraph/W=$winNameStr marker(iBin_qxqy_FT_trim)=19
1419                        ModifyGraph/W=$winNameStr marker(iBin_qxqy_FB_trim)=19
1420                        ModifyGraph/W=$winNameStr rgb(iBin_qxqy_FL_trim)=(39321,26208,1),rgb(iBin_qxqy_FB_trim)=(2,39321,1),rgb(iBin_qxqy_FR_trim)=(39321,26208,1),rgb(iBin_qxqy_FT_trim)=(2,39321,1)
1421                        ModifyGraph/W=$winNameStr msize(iBin_qxqy_FL_trim)=3
1422                        ModifyGraph/W=$winNameStr msize(iBin_qxqy_FR_trim)=3
1423                        ModifyGraph/W=$winNameStr msize(iBin_qxqy_FT_trim)=3
1424                        ModifyGraph/W=$winNameStr msize(iBin_qxqy_FB_trim)=3
1425                        ModifyGraph/W=$winNameStr muloffset(iBin_qxqy_FL_trim)={0,4},muloffset(iBin_qxqy_FB_trim)={0,2},muloffset(iBin_qxqy_FR_trim)={0,8}
1426                        ModifyGraph/W=$winNameStr grid=1
1427                        ModifyGraph/W=$winNameStr log=1
1428                        ModifyGraph/W=$winNameStr mirror=2
1429                        Label/W=$winNameStr left "Intensity (1/cm)"
1430                        Label/W=$winNameStr bottom "Q (1/A)"
1431                endif           
1432        endif
1433       
1434        if(binType==2)
1435
1436                SetDataFolder $(fullPathToFolder)
1437                CheckDisplayed/W=$winNameStr iBin_qxqy_FLR_trim
1438               
1439                if(V_flag==0)
1440                        AppendtoGraph/W=$winNameStr iBin_qxqy_FLR_trim vs qBin_qxqy_FLR_trim
1441                        AppendToGraph/W=$winNameStr iBin_qxqy_FTB_trim vs qBin_qxqy_FTB_trim
1442                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FLR_trim Y,wave=(:eBin_qxqy_FLR_trim,:eBin_qxqy_FLR_trim)
1443                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FTB_trim Y,wave=(:eBin_qxqy_FTB_trim,:eBin_qxqy_FTB_trim)
1444
1445                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_FLR_trim)=4
1446                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_FTB_trim)=4
1447                        ModifyGraph/W=$winNameStr marker(iBin_qxqy_FLR_trim)=19
1448                        ModifyGraph/W=$winNameStr marker(iBin_qxqy_FTB_trim)=19
1449                        ModifyGraph/W=$winNameStr rgb(iBin_qxqy_FLR_trim)=(39321,26208,1),rgb(iBin_qxqy_FTB_trim)=(2,39321,1)
1450                        ModifyGraph/W=$winNameStr msize(iBin_qxqy_FLR_trim)=3
1451                        ModifyGraph/W=$winNameStr msize(iBin_qxqy_FTB_trim)=3
1452                        ModifyGraph/W=$winNameStr muloffset(iBin_qxqy_FLR_trim)={0,2}
1453                        ModifyGraph/W=$winNameStr grid=1
1454                        ModifyGraph/W=$winNameStr log=1
1455                        ModifyGraph/W=$winNameStr mirror=2
1456//                      Label/W=$winNameStr left "Intensity (1/cm)"
1457//                      Label/W=$winNameStr bottom "Q (1/A)"
1458                endif   
1459                       
1460        endif
1461       
1462        if(binType==3)
1463       
1464                SetDataFolder $(fullPathToFolder)
1465                CheckDisplayed/W=$winNameStr iBin_qxqy_FLRTB_trim
1466               
1467                if(V_flag==0)
1468                        AppendtoGraph/W=$winNameStr iBin_qxqy_FLRTB_trim vs qBin_qxqy_FLRTB_trim
1469                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FLRTB_trim Y,wave=(:eBin_qxqy_FLRTB_trim,:eBin_qxqy_FLRTB_trim)
1470
1471                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_FLRTB_trim)=4
1472                        ModifyGraph/W=$winNameStr marker(iBin_qxqy_FLRTB_trim)=19
1473                        ModifyGraph/W=$winNameStr rgb(iBin_qxqy_FLRTB_trim)=(39321,26208,1)
1474                        ModifyGraph/W=$winNameStr msize(iBin_qxqy_FLRTB_trim)=3
1475                        ModifyGraph/W=$winNameStr grid=1
1476                        ModifyGraph/W=$winNameStr log=1
1477                        ModifyGraph/W=$winNameStr mirror=2
1478                        Label/W=$winNameStr left "Intensity (1/cm)"
1479                        Label/W=$winNameStr bottom "Q (1/A)"
1480                endif   
1481                       
1482        endif
1483
1484        if(binType==4)          // slit aperture binning - MT, ML, MR, MB are averaged
1485               
1486                SetDataFolder $(fullPathToFolder)
1487                CheckDisplayed/W=$winNameStr iBin_qxqy_FL_trim
1488               
1489                if(V_flag==0)
1490                        AppendtoGraph/W=$winNameStr iBin_qxqy_FL_trim vs qBin_qxqy_FL_trim
1491                        AppendToGraph/W=$winNameStr iBin_qxqy_FR_trim vs qBin_qxqy_FR_trim
1492//                      AppendToGraph/W=$winNameStr iBin_qxqy_FT_trim vs qBin_qxqy_FT_trim
1493//                      AppendToGraph/W=$winNameStr iBin_qxqy_FB_trim vs qBin_qxqy_FB_trim
1494                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FL_trim Y,wave=(:eBin_qxqy_FL_trim,:eBin_qxqy_FL_trim)
1495                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FR_trim Y,wave=(:eBin_qxqy_FR_trim,:eBin_qxqy_FR_trim)
1496//                      ErrorBars/T=0 iBin_qxqy_FT_trim Y,wave=(:eBin_qxqy_FT_trim,:eBin_qxqy_FT_trim)
1497//                      ErrorBars/T=0 iBin_qxqy_FB_trim Y,wave=(:eBin_qxqy_FB_trim,:eBin_qxqy_FB_trim)
1498                       
1499                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_FL_trim)=4
1500                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_FR_trim)=4
1501//                      ModifyGraph/W=$winNameStr mode(iBin_qxqy_FT_trim)=4
1502//                      ModifyGraph/W=$winNameStr mode(iBin_qxqy_FB_trim)=4
1503                        ModifyGraph/W=$winNameStr marker(iBin_qxqy_FL_trim)=19
1504                        ModifyGraph/W=$winNameStr marker(iBin_qxqy_FR_trim)=19
1505//                      ModifyGraph/W=$winNameStr marker(iBin_qxqy_FT_trim)=19
1506//                      ModifyGraph/W=$winNameStr marker(iBin_qxqy_FB_trim)=19
1507                        ModifyGraph/W=$winNameStr rgb(iBin_qxqy_FL_trim)=(39321,26208,1),rgb(iBin_qxqy_FR_trim)=(39321,26208,1)
1508//                      ModifyGraph/W=$winNameStr rgb(iBin_qxqy_FB_trim)=(2,39321,1),rgb(iBin_qxqy_FT_trim)=(2,39321,1)
1509                        ModifyGraph/W=$winNameStr msize(iBin_qxqy_FL_trim)=3
1510                        ModifyGraph/W=$winNameStr msize(iBin_qxqy_FR_trim)=3
1511//                      ModifyGraph/W=$winNameStr msize(iBin_qxqy_FT_trim)=3
1512//                      ModifyGraph/W=$winNameStr msize(iBin_qxqy_FB_trim)=3
1513                        ModifyGraph/W=$winNameStr muloffset(iBin_qxqy_FL_trim)={0,4},muloffset(iBin_qxqy_FR_trim)={0,8}
1514//                      ModifyGraph/W=$winNameStr muloffset(iBin_qxqy_FB_trim)={0,2}
1515                        ModifyGraph/W=$winNameStr grid=1
1516                        ModifyGraph/W=$winNameStr log=1
1517                        ModifyGraph/W=$winNameStr mirror=2
1518                endif           
1519                       
1520        endif
1521
1522
1523        if(binType==5)
1524
1525                SetDataFolder $(fullPathToFolder)
1526                CheckDisplayed/W=$winNameStr iBin_qxqy_FLR_trim
1527               
1528                if(V_flag==0)
1529                        AppendtoGraph/W=$winNameStr iBin_qxqy_FLR_trim vs qBin_qxqy_FLR_trim
1530                        AppendToGraph/W=$winNameStr iBin_qxqy_FTB_trim vs qBin_qxqy_FTB_trim
1531                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FLR_trim Y,wave=(:eBin_qxqy_FLR_trim,:eBin_qxqy_FLR_trim)
1532                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FTB_trim Y,wave=(:eBin_qxqy_FTB_trim,:eBin_qxqy_FTB_trim)
1533
1534                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_FLR_trim)=4
1535                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_FTB_trim)=4
1536                        ModifyGraph/W=$winNameStr marker(iBin_qxqy_FLR_trim)=19
1537                        ModifyGraph/W=$winNameStr marker(iBin_qxqy_FTB_trim)=19
1538                        ModifyGraph/W=$winNameStr rgb(iBin_qxqy_FLR_trim)=(39321,26208,1),rgb(iBin_qxqy_FTB_trim)=(2,39321,1)
1539                        ModifyGraph/W=$winNameStr msize(iBin_qxqy_FLR_trim)=3
1540                        ModifyGraph/W=$winNameStr msize(iBin_qxqy_FTB_trim)=3
1541                        ModifyGraph/W=$winNameStr muloffset(iBin_qxqy_FLR_trim)={0,2}
1542                        ModifyGraph/W=$winNameStr grid=1
1543                        ModifyGraph/W=$winNameStr log=1
1544                        ModifyGraph/W=$winNameStr mirror=2
1545//                      Label/W=$winNameStr left "Intensity (1/cm)"
1546//                      Label/W=$winNameStr bottom "Q (1/A)"
1547                endif   
1548                       
1549        endif
1550
1551        if(binType==6) 
1552       
1553                SetDataFolder $(fullPathToFolder)
1554                CheckDisplayed/W=$winNameStr iBin_qxqy_FLRTB_trim
1555               
1556                if(V_flag==0)
1557                        AppendtoGraph/W=$winNameStr iBin_qxqy_FLRTB_trim vs qBin_qxqy_FLRTB_trim
1558                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FLRTB_trim Y,wave=(:eBin_qxqy_FLRTB_trim,:eBin_qxqy_FLRTB_trim)
1559
1560
1561                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_FLRTB_trim)=4
1562                        ModifyGraph/W=$winNameStr marker(iBin_qxqy_FLRTB_trim)=19
1563                        ModifyGraph/W=$winNameStr msize(iBin_qxqy_FLRTB_trim)=3
1564                        ModifyGraph/W=$winNameStr rgb(iBin_qxqy_FLRTB_trim)=(39321,26208,1)
1565                        ModifyGraph/W=$winNameStr grid=1
1566                        ModifyGraph/W=$winNameStr log=1
1567                        ModifyGraph/W=$winNameStr mirror=2
1568                        Label/W=$winNameStr left "Intensity (1/cm)"
1569                        Label/W=$winNameStr bottom "Q (1/A)"
1570                endif   
1571                       
1572        endif
1573       
1574        if(binType==7)
1575
1576                SetDataFolder $(fullPathToFolder)
1577                CheckDisplayed/W=$winNameStr iBin_qxqy_FLR_trim
1578               
1579                if(V_flag==0)
1580                        AppendtoGraph/W=$winNameStr iBin_qxqy_FLR_trim vs qBin_qxqy_FLR_trim
1581                        AppendToGraph/W=$winNameStr iBin_qxqy_FTB_trim vs qBin_qxqy_FTB_trim
1582                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FLR_trim Y,wave=(:eBin_qxqy_FLR_trim,:eBin_qxqy_FLR_trim)
1583                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FTB_trim Y,wave=(:eBin_qxqy_FTB_trim,:eBin_qxqy_FTB_trim)
1584
1585                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_FLR_trim)=4
1586                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_FTB_trim)=4
1587                        ModifyGraph/W=$winNameStr marker(iBin_qxqy_FLR_trim)=19
1588                        ModifyGraph/W=$winNameStr marker(iBin_qxqy_FTB_trim)=19
1589                        ModifyGraph/W=$winNameStr msize(iBin_qxqy_FLR_trim)=3
1590                        ModifyGraph/W=$winNameStr msize(iBin_qxqy_FTB_trim)=3
1591                       
1592                        ModifyGraph/W=$winNameStr rgb(iBin_qxqy_FLR_trim)=(39321,26208,1),rgb(iBin_qxqy_FTB_trim)=(2,39321,1)
1593                        ModifyGraph/W=$winNameStr muloffset(iBin_qxqy_FLR_trim)={0,2}
1594                        ModifyGraph/W=$winNameStr grid=1
1595                        ModifyGraph/W=$winNameStr log=1
1596                        ModifyGraph/W=$winNameStr mirror=2
1597//                      Label/W=$winNameStr left "Intensity (1/cm)"
1598//                      Label/W=$winNameStr bottom "Q (1/A)"
1599                endif   
1600                       
1601        endif   
1602        SetDataFolder root:
1603End
1604
Note: See TracBrowser for help on using the repository browser.