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

Last change on this file since 1248 was 1248, checked in by srkline, 2 years ago

A few more tweaks for the panel layout on small screens

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.9
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.