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

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

updates to the beam center corrections that take into account the lateral variation of zero points of the tubes. This is an important correction to the reference beam center, especially when the graphite monochrmoator is used.

various bug fixes included as part of reduction , largely to catch missing or incorrect information in the file header.

New "patch" functions have been added for number of guides, beam stops, source aperture, etc. which were missing in the file and caused the resolution calculation to be totally incorrect.

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