PEARL Procedures  rev-distro-3.0.0-0-gfa24916-dirty
Igor procedures for the analysis of PEARL data
pearl-menu.ipf
Go to the documentation of this file.
1 #pragma TextEncoding = "UTF-8"
2 #pragma rtGlobals=1 // Use modern global access method.
3 #pragma ModuleName = PearlMenu
4 #pragma version = 1.02
5 
6 // main menu for PEARL data acquisition and analysis packages
7 
8 // $Id$
9 // author: matthias.muntwiler@psi.ch
10 // Copyright (c) 2013-14 Paul Scherrer Institut
11 
12 // Licensed under the Apache License, Version 2.0 (the "License");
13 // you may not use this file except in compliance with the License.
14 // You may obtain a copy of the License at
15 // http://www.apache.org/licenses/LICENSE-2.0
16 
17 menu "PEARL"
18 
19  submenu "Data Files"
20  PearlMenuEnableFunc("pearl_data_explorer") + "Data Explorer", /Q, pearl_data_explorer()
21  help = {"Data explorer panel with file import and preview", "Requires ARPES package and HDF5 XOP"}
22  PearlMenuEnableFunc("ad_load_dialog") + "AD HDF5", /Q, ad_load_dialog("")
23  help = {"Import area detector HDF5 data file", "Requires ARPES package and HDF5 XOP"}
24  end
25 
26  submenu "On-the-Fly Data"
27  PearlMenuEnableFunc("otf_rename_folders") + "Shorten OTF Folder Names", /Q, otf_rename_folders("010")
28  help = {"Renames otf_xxxxxx_yyyyyy_zzzz data folders to otf_yyyyyy (removing date and suffix)", "Requires Optics package"}
29  PearlMenuEnableFunc("otf_gather_batch") + "Gather OTF Batch", /Q, otf_gather_batch("current_ch1", "photonenergy", "otf_batch")
30  help = {"Copies data from all otf_* folders into otf_batch folder", "Requires Optics package"}
31  PearlMenuEnableFunc("PearlOpticsPreviewPanel") + "OTF Preview", /Q, PearlOpticsPreviewPanel()
32  help = {"Opens a preview panel for OTF data in otf_* folders", "Requires Optics package"}
33  end
34 
35  submenu "Scienta Analyser"
36  PearlMenuEnableFunc("ad_display_profiles") + "Scienta Live View", /Q, PearlLiveDisplay("X03DA-SCIENTA:", "EA", "(65280,54528,48896)")
37  help = {"Display preview panel with latest image from Scienta", "Requires ARPES package and EPICS XOP"}
38  PearlMenuEnableFunc("ast_setup") + "Angle Scan Tracker", /Q, PearlAnglescanTracker("X03DA-SCIENTA:", "(65280,54528,48896)")
39  help = {"Preview of acquired angle scan data and current detection angles.", "Requires ARPES package and EPICS XOP"}
40  PearlMenuEnableFunc("sample_tracker") + "Sample Tracker", /Q, PearlSampleTracker(1)
41  help = {"Live tracking and adjustment of sample position.", "Requires ARPES package and EPICS XOP"}
42  end
43 
44  submenu "Cameras"
45  PearlMenuEnableFunc("ad_display_profiles") + "Exit Slit Camera", /Q, PearlLiveDisplay("X03DA-OP-PS1:", "OP", "(65280,54528,48896)")
46  help = {"Display preview panel with latest image from Scienta", "Requires ARPES package and EPICS XOP"}
47  PearlMenuEnableFunc("ad_display_profiles") + "Manipulator Camera", /Q, PearlCameraDisplay("X03DA-ES-PS1:", "ES", "(32767,32767,32767)")
48  help = {"Display live panel of the exit slit camera", "Requires ARPES package and EPICS XOP"}
49  end
50 
51  submenu "Display"
52  PearlMenuEnableFunc("ad_display_profiles") + "2D Profiles", /Q, Display2dProfiles()
53  help = {"Profiles display of 2D data", "Requires ARPES package"}
54  PearlMenuEnableFunc("ad_display_brick") + "3D Slicer", /Q, Display3dSlicer()
55  help = {"Slice and profiles display of 3D data", "Requires ARPES package"}
56  PearlMenuEnableFunc("ad_display_brick") + "3D Gizmo", /Q, DisplayGizmoSlicer()
57  help = {"Gizmo display of 3D data", "Requires ARPES package"}
58  end
59 
60  submenu "Process"
61  PearlMenuEnableFunc("asp_show_panel") + "XPD scans", /Q, asp_show_panel()
62  help = {"Data processing of two-pi angle scans", "Requires ARPES package"}
63  end
64 
65  submenu "Services"
66  PearlMenuEnableFunc("pearl_elog") + "Open ELOG Panel", /Q, pearl_elog("")
67  help = {"Open an ELOG panel to send entries to an ELOG logbook"}
68  end
69 
70  submenu "Sample Preparation"
71  PearlMenuEnableFunc("ramp_generator") + "Annealing Ramp", /Q, ramp_generator()
72  help = {"Sample annealing ramp generator"}
73  end
74 
75  submenu "Packages"
76  "Load ARPES Package", /Q, LoadPearlArpes()
77  help = {"Data processing and analysis for ARPES experiments"}
78  "Load Preparation Package", /Q, LoadPearlPreparation()
79  help = {"Process control for sample preparation"}
80  "Load Optics Package", /Q, LoadPearlOptics()
81  help = {"Data processing and analysis for beamline commissioning"}
82  end
83 end
84 
90 function /s PearlMenuEnableFunc(funcname)
91  string funcname
92  if (exists(funcname) >= 3)
93  return ""
94  else
95  return "("
96  endif
97 end
98 
99 function LoadPearlOptics()
100  execute /p/q/z "INSERTINCLUDE \"pearl-optics\""
101  execute /p/q/z "COMPILEPROCEDURES "
102  execute /p/q/z "BuildMenu \"PEARL\""
103 end
104 
105 function LoadPearlArpes()
106  execute /p/q/z "INSERTINCLUDE \"pearl-arpes\""
107  execute /p/q/z "COMPILEPROCEDURES "
108  execute /p/q/z "BuildMenu \"PEARL\""
109 end
110 
112  execute /p/q/z "INSERTINCLUDE \"pearl-preparation\""
113  execute /p/q/z "COMPILEPROCEDURES "
114  execute /p/q/z "BuildMenu \"PEARL\""
115 end
116 
118  dfref dfBefore = GetDataFolderDFR()
119  Execute /q/z "CreateBrowser prompt=\"Select 2D wave\", showWaves=1, showVars=0, showStrs=0"
120  dfref dfAfter = GetDataFolderDFR()
121  SetDataFolder dfBefore
122 
123  SVAR list = S_BrowserList
124  NVAR flag = V_Flag
125 
126  if ((flag != 0) && (ItemsInList(list) >= 1))
127  string brickname = StringFromList(0, list)
128  string cmd
129  sprintf cmd, "ad_display_profiles(%s)", brickname
130  execute /q/z cmd
131  endif
132 end
133 
134 function Display3dSlicer()
135  dfref dfBefore = GetDataFolderDFR()
136  Execute /q/z "CreateBrowser prompt=\"Select 3D wave\", showWaves=1, showVars=0, showStrs=0"
137  dfref dfAfter = GetDataFolderDFR()
138  SetDataFolder dfBefore
139 
140  SVAR list = S_BrowserList
141  NVAR flag = V_Flag
142 
143  if ((flag != 0) && (ItemsInList(list) >= 1))
144  string brickname = StringFromList(0, list)
145  string cmd
146  sprintf cmd, "ad_display_slice(%s)", brickname
147  execute /q/z cmd
148  sprintf cmd, "ad_brick_slicer(%s)", brickname
149  execute /q/z cmd
150  endif
151 end
152 
154  dfref dfBefore = GetDataFolderDFR()
155  Execute /q/z "CreateBrowser prompt=\"Select 3D wave\", showWaves=1, showVars=0, showStrs=0"
156  dfref dfAfter = GetDataFolderDFR()
157  SetDataFolder dfBefore
158 
159  SVAR list = S_BrowserList
160  NVAR flag = V_Flag
161 
162  if ((flag != 0) && (ItemsInList(list) >= 1))
163  string brickname = StringFromList(0, list)
164  string cmd
165  sprintf cmd, "ad_display_brick(%s)", brickname
166  execute /q/z cmd
167  sprintf cmd, "ad_brick_slicer(%s)", brickname
168  execute /q/z cmd
169  endif
170 end
171 
186 function PearlLiveDisplay(epicsname, nickname, wbRGB)
187  string epicsname
188  string nickname
189  string wbRGB
190 
191  string cmd
192  sprintf cmd, "ad_connect(\"%s\", \"%s\")", epicsname, nickname
193  execute /q/z cmd
194  sprintf cmd, "ad_display_profiles(root:pearl_epics:%s:image)", nickname
195  execute /q/z cmd
196  //sprintf cmd, "ad_add_overlay(root:pearl_epics:%s:image)", nickname
197  //execute /q/z cmd
198  sprintf cmd, "ModifyGraph wbRGB=%s", wbRGB
199  execute /q/z cmd
200  sprintf cmd, "add_roi_controls()"
201  execute /q/z cmd
202 end
203 
219 function PearlCameraDisplay(epicsname, nickname, wbRGB)
220  string epicsname
221  string nickname
222  string wbRGB
223 
224  string cmd
225  sprintf cmd, "ad_connect(\"%s\", \"%s\")", epicsname, nickname
226  execute /q/z cmd
227  sprintf cmd, "display; appendimage root:pearl_epics:%s:image", nickname
228  execute /q/z cmd
229  sprintf cmd, "ModifyGraph wbRGB=%s", wbRGB
230  execute /q/z cmd
231  cmd = "ModifyGraph height={Plan,1,left,bottom}"
232  execute /q/z cmd
233 end
234 
243 function PearlAnglescanTracker(epicsname, wbRGB)
244  string epicsname
245  string wbRGB
246 
247  string cmd
248  sprintf cmd, "ast_setup()"
249  execute /q/z cmd
250  sprintf cmd, "ModifyGraph wbRGB=%s", wbRGB
251  execute /q/z cmd
252 end
253 
262 function PearlSampleTracker(action)
263  variable action
264  string cmd
265  sprintf cmd, "sample_tracker(%u)", action
266  execute /q/z cmd
267 end
268 
pearl_data_explorer
variable pearl_data_explorer()
show the pearl data explorer window
Definition: pearl-data-explorer.ipf:47
ad_display_slice
string ad_display_slice(wave data)
display three-dimensional data by 2D slice.
Definition: pearl-area-display.ipf:1406
PearlCameraDisplay
variable PearlCameraDisplay(string epicsname, string nickname, string wbRGB)
area detector surveillance camera display
Definition: pearl-menu.ipf:219
otf_gather_batch
variable otf_gather_batch(string ywavematch, string xwavematch, string destfolder)
Definition: pearl-otf-import.ipf:152
PearlSampleTracker
variable PearlSampleTracker(variable action)
display the sample tracker window
Definition: pearl-menu.ipf:262
ad_load_dialog
variable ad_load_dialog(string APathName)
load area detector data files selected in a file dialog window
Definition: pearl-area-import.ipf:171
LoadPearlPreparation
variable LoadPearlPreparation()
Definition: pearl-menu.ipf:111
ad_display_brick
string ad_display_brick(wave data)
open a new "gizmo" window with three-dimensional data.
Definition: pearl-area-display.ipf:1143
DisplayGizmoSlicer
variable DisplayGizmoSlicer()
Definition: pearl-menu.ipf:153
pearl_elog
variable pearl_elog(string logbook)
main function to initialize ELOG and to open an ELOG panel.
Definition: pearl-elog.ipf:98
asp_show_panel
variable asp_show_panel()
create the angle scan processing panel
Definition: pearl-anglescan-panel.ipf:903
Display3dSlicer
variable Display3dSlicer()
Definition: pearl-menu.ipf:134
LoadPearlOptics
variable LoadPearlOptics()
Definition: pearl-menu.ipf:99
PearlAnglescanTracker
variable PearlAnglescanTracker(string epicsname, string wbRGB)
display the angle scan tracker window
Definition: pearl-menu.ipf:243
ast_setup
variable ast_setup()
set up data structures, display graph, and try to connect to analyser.
Definition: pearl-anglescan-tracker.ipf:195
Display2dProfiles
variable Display2dProfiles()
Definition: pearl-menu.ipf:117
PearlLiveDisplay
variable PearlLiveDisplay(string epicsname, string nickname, string wbRGB)
area detector live display
Definition: pearl-menu.ipf:186
PearlMenuEnableFunc
string PearlMenuEnableFunc(string funcname)
check whether a function name exists
Definition: pearl-menu.ipf:90
ad_display_profiles
string ad_display_profiles(wave image, string filter=defaultValue)
open a new profiles graph window.
Definition: pearl-area-display.ipf:168
ad_brick_slicer
variable ad_brick_slicer(wave data)
open a slicer panel for 3D data.
Definition: pearl-area-display.ipf:1258
otf_rename_folders
variable otf_rename_folders(string pattern, variable unique_index=defaultValue, string new_suffix=defaultValue, string match_str=defaultValue)
Definition: pearl-otf-import.ipf:231
LoadPearlArpes
variable LoadPearlArpes()
Definition: pearl-menu.ipf:105