source: sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_NexusFromIgor.ipf @ 1019

Last change on this file since 1019 was 1019, checked in by srkline, 6 years ago

adding procedures for:

simple save of a DIV file. no functionality to generate a DIV file yet, since I don't know how this will happen.

Simple dump of the file structure in a data "tree"

Verified that the error bars on the I(q) data are correctly calculated as standard error of the mean. There was never an issue with this, or with SANS calculations.

Started filling in "Correct" routines based on the SANS version. Only stubs present currently.

File size: 110.4 KB
Line 
1#pragma rtGlobals=3             // Use modern global access method and strict wave access.
2
3
4//////////////////////////////
5//////////////////////////////
6//
7// This is not really used anymore - but may still be used in the future. I need somenthing like this
8// to be able to write a full Nexus file from Igor, but I still don't know the best way to
9// do the setup to match the "real" NICE-generated file structure. Modifying the DataFolderTree.ipf
10// to generate the NewDataFolder and Make statements may be a reliable way to reproduce the correct
11// structure from NICE, with the exception that NOT EVERY field is written out from NICE, depending
12// on the experiment setup!!!
13//
14// AUG 2015
15// NOV 2015
16//
17//////////////////////////////
18//////////////////////////////
19
20// TODO -- of the many issues (which may all be superceded by the JS file,
21// the detector dimensions (nPix) are incorrrect, and are better set as globals.
22
23
24//
25// this is a test of the "new" VSANS file structure that is supposed to be
26// NeXus compliant. It doesn't have the NICE logs, but has everything that I
27// can think of here.
28//
29
30//
31//      To properly generate a Nexus file with attributes, using Pete Jemain's procedures:
32//
33//      Generating the "current" Igor macros:
34//      - From the outlines, make a copy of the outline, and export some of the selected
35//      columns to be able to:
36//      1) Make all of the waves and folders
37//      2) Add attributes (only) to the existing tree
38//      3) Fill the tree with simulation values
39//      (still don't know here how to not lose the "=VCALC_getWavelength" statements
40//      and similar assignments. these are not part of the outline)
41//
42//
43//
44//      Generate the data file:
45//      1) Set down the folder structure:               H_Setup_SANS_Structure()
46//      2) Write in the attributes:                             H_FillSANS_Attributes()
47//      3) Fill with simulated data:                    H_FillSANS_wSim()
48//
49//      There is now a SANS_file folder which contains everything, but is not "aware"
50//      of any of references that Pete's gateway needs.
51//
52//      4) Save the folder to HDF5:                             Save_VSANS_file()
53//      attributes are not saved, but the tree is correct
54//      5) Load back in to generate xref:               H_HDF5Gate_ReadTest()
55//      no attributes loaded, but HDF5___xref is generated
56//      6) From the loaded folder, save xref:   Save_HDF5___xref()
57//      save it to disk
58//      7) Copy the reference to SANS_file:             Copy_HDF5___xref()
59//      load it from disk, and copy it to the folder
60//      8) Save the folder using the gateway:   H_HDF5Gate_WriteVSANS()
61//      now, the Nexus file is saved with attributes
62//
63
64
65
66//
67// lays out the tree and fills with dummy values
68//
69Proc H_Setup_VSANS_Structure()
70       
71        Variable n=100
72        Variable tubes=48       
73
74NewDataFolder/O/S root:VSANS_file               
75        Make/O/T/N=1    file_name       = "VSANSTest.h5"
76        Make/O/T/N=1    file_time       = "2015-02-28T08:15:30-5:00"
77        Make/O/T/N=1    facility        = "NCNR"
78        Make/O/T/N=1    NeXus_version   = "Nexus 0.0"
79        Make/O/T/N=1    hdf_version     = "hdf5.x"
80        Make/O/T/N=1    file_history    = "history log"
81        NewDataFolder/O/S root:VSANS_file:entry1               
82                Make/O/T/N=1    title   = "title of entry1"
83                Make/O/D/N=1    experiment_identifier   = 684636
84                Make/O/T/N=1    experiment_description  = "description of expt"
85                Make/O/T/N=1    entry_identifier        = "S22-33"
86                Make/O/T/N=1    definition      = "NXsas"
87                Make/O/T/N=1    start_time      = "2015-02-28T08:15:30-5:00"
88                Make/O/T/N=1    end_time        = "2015-02-28T08:15:30-5:00"
89                Make/O/D/N=1    duration        = 300
90                Make/O/D/N=1    collection_time = 300
91                Make/O/T/N=1    run_cycle       = "S22-23"
92                Make/O/T/N=1    data_directory  = "[VSANS_VSANS]"
93                Make/O/T/N=1    program_name    = "runPoint={stuff}"
94                NewDataFolder/O/S root:VSANS_file:entry1:user           
95                        Make/O/T/N=1    name    = "Dr. Pi"
96                        Make/O/T/N=1    role    = "evil scientist"
97                        Make/O/T/N=1    affiliation     = "NIST"
98                        Make/O/T/N=1    address = "100 Bureau Drive"
99                        Make/O/T/N=1    telephoneNumber = "301-999-9999"
100                        Make/O/T/N=1    faxNumber       = "301-999-9999"
101                        Make/O/T/N=1    email   = "sans@nist"
102                        Make/O/I/N=1    facility_user_id        = 6937596
103                NewDataFolder/O/S root:VSANS_file:entry1:control               
104                        Make/O/T/N=1    mode    = "timer"
105                        Make/O/D/N=1    preset  = 555
106                        Make/O/D/N=1    integral        = 555
107                        Make/O/D/N=1    monitor_counts  = 666
108                        Make/O/D/N=1    monitor_preset  = 1e8
109                        //Make/O/T/N=1  type    = "monitor type"
110                        //Make/O/D/N=1  efficiency      = 0.01
111                        //Make/O/D/N=1  sampled_fraction        = 1
112                        Make/O/D/N=1    detector_counts = 100111222
113                        Make/O/D/N=1    detector_preset = 1e5
114                        Make/O/D/N=1    count_start     = 1
115                        Make/O/D/N=1    count_end       = 1
116                        Make/O/D/N=1    count_time      = 1
117                        Make/O/D/N=1    count_time_preset       = 1
118                //NewDataFolder/O/S root:VSANS_file:entry1:program_name //program_data 
119                        //Make/O/T/N=1  //data  = "program data"
120                        //Make/O/T/N=1  //description   = "acquisition"
121                        //Make/O/T/N=1  //file_name     = "NICE"
122                        //Make/O/T/N=1  //type  = "client"
123                NewDataFolder/O/S root:VSANS_file:entry1:sample         
124                        Make/O/T/N=1    description     = "My Sample"
125                        Make/O/D/N=1    group_id        = 12345
126                        //Make/O/T/N=1  //chemical_formula      = "C8H10N4O2"
127                        NewDataFolder/O/S root:VSANS_file:entry1:sample:temperature_1           
128                                Make/O/T/N=1    name    = "Sample temperature"
129                                Make/O/T/N=1    attached_to     = "block"
130                                Make/O/T/N=1    measurement     = "temperature"
131                                NewDataFolder/O/S root:VSANS_file:entry1:sample:temperature_1:value_log         
132                                        Make/O/T/N=1    start   = "2015-02-28T08:15:30-5:00"
133                                        Make/O/D/N=(n)  nx_time = p
134                                        Make/O/D/N=(n)  value   = 2*p
135                        NewDataFolder/O/S root:VSANS_file:entry1:sample:temperature_2           
136                                Make/O/T/N=1    name    = "Sample temperature"
137                                Make/O/T/N=1    attached_to     = "block"
138                                Make/O/T/N=1    measurement     = "temperature"
139                                NewDataFolder/O/S root:VSANS_file:entry1:sample:temperature_2:value_log         
140                                        Make/O/T/N=1    start   = "2015-02-28T08:15:30-5:00"
141                                        Make/O/D/N=(n)  nx_time = p
142                                        Make/O/D/N=(n)  value   = 3*p
143                        NewDataFolder/O/S root:VSANS_file:entry1:sample:electric_field         
144                                Make/O/T/N=1    name    = "electric meter"
145                                Make/O/T/N=1    attached_to     = "sample"
146                                Make/O/T/N=1    measurement     = "voltage"
147                                NewDataFolder/O/S root:VSANS_file:entry1:sample:electric_field:value_log               
148                                        Make/O/T/N=1    start   = "2015-02-28T08:15:30-5:00"
149                                        Make/O/D/N=(n)  nx_time = 2*p
150                                        Make/O/D/N=(n)  value   = sin(p/10)
151                        NewDataFolder/O/S root:VSANS_file:entry1:sample:shear_field             
152                                Make/O/T/N=1    name    = "rheometer"
153                                Make/O/T/N=1    attached_to     = "sample"
154                                Make/O/T/N=1    measurement     = "stress"
155                                NewDataFolder/O/S root:VSANS_file:entry1:sample:shear_field:value_log           
156                                        Make/O/T/N=1    start   = "2015-02-28T08:15:30-5:00"
157                                        Make/O/D/N=(n)  nx_time = p
158                                        Make/O/D/N=(n)  value   = cos(p/5)
159                        NewDataFolder/O/S root:VSANS_file:entry1:sample:pressure               
160                                Make/O/T/N=1    name    = "Sample pressure"
161                                Make/O/T/N=1    attached_to     = "pressure cell"
162                                Make/O/T/N=1    measurement     = "pressure"
163                                NewDataFolder/O/S root:VSANS_file:entry1:sample:pressure:value_log             
164                                        Make/O/T/N=1    start   = "2015-02-28T08:15:30-5:00"
165                                        Make/O/D/N=(n)  nx_time = p
166                                        Make/O/D/N=(n)  value   = p/2
167                        NewDataFolder/O/S root:VSANS_file:entry1:sample:magnetic_field         
168                                Make/O/T/N=1    name    = "magnetic field (direction)"
169                                Make/O/T/N=1    attached_to     = "cryostat"
170                                Make/O/T/N=1    measurement     = "magnetic field"
171                                NewDataFolder/O/S root:VSANS_file:entry1:sample:magnetic_field:value_log               
172                                        Make/O/T/N=1    start   = "2015-02-28T08:15:30-5:00"
173                                        Make/O/D/N=(n)  nx_time = p
174                                        Make/O/D/N=(n)  value   = 10*p
175                        SetDataFolder root:VSANS_file:entry1:sample             
176                        Make/O/D/N=1    changer_position        = 5
177                        Make/O/T/N=1    sample_holder_description       = "10CB"
178                        //Make/O/D/N=1  //mass  = 0.3
179                        //Make/O/D/N=1  //density       = 1.02
180                        //Make/O/D/N=1  //molecular_weight      = 194.19
181                        //Make/O/T/N=1  //description   = "My Sample"
182                        //Make/O/T/N=1  //preparation_date      = "2015-02-28T08:15:30-5:00"
183                        //Make/O/D/N=1  //volume_fraction       = 0.2
184                        //Make/O/D/N=1  //scattering_length_density     = 6.35e-6
185                        Make/O/D/N=1    thickness       = 0.1
186                        Make/O/D/N=1    rotation_angle  = 30
187                        Make/O/D/N=1    transmission    = 0.888
188                        Make/O/D/N=1    transmission_error      = 0.011
189                        //Make/O/D/N=1  //xs_incoh      = 5.5
190                        //Make/O/D/N=1  //xs_coh        = 22.2
191                        //Make/O/D/N=1  //xs_absorb     = 3.1
192                NewDataFolder/O/S root:VSANS_file:entry1:instrument             
193                        //Make/O/T/N=1  //location      = "NCNR"
194                        Make/O/T/N=1    name    = "NG3-VSANS"
195                        Make/O/T/N=1    type    = "VSANS"
196                        Make/O/T/N=1    local_contact   = "Steve Kline"
197                        NewDataFolder/O/S root:VSANS_file:entry1:instrument:source             
198                                Make/O/T/N=1    name    = "NCNR"
199                                Make/O/T/N=1    type    = "Reactor Neutron Source"
200                                Make/O/T/N=1    probe   = "neutron"
201                                Make/O/D/N=1    power   = 20
202                                       
203                        NewDataFolder/O/S root:VSANS_file:entry1:instrument:beam_monitor_norm           
204                                Make/O/D/N=1    data    = 1234567
205                                Make/O/T/N=1    type    = "monitor"
206                                Make/O/D/N=1    efficiency      = 0.01
207                                Make/O/D/N=1    nx_distance     = 16
208                                Make/O/D/N=1    saved_count     = 1e8
209                        NewDataFolder/O/S root:VSANS_file:entry1:instrument:beam_monitor_low                   
210                                Make/O/D/N=1    data    = 1234567
211                                Make/O/T/N=1    type    = "monitor"
212                                Make/O/D/N=1    efficiency      = 0.001
213                                Make/O/D/N=1    nx_distance     = 16
214                                Make/O/D/N=1    saved_count     = 1e8
215                                       
216                        NewDataFolder/O/S root:VSANS_file:entry1:instrument:monochromator               
217                                Make/O/D/N=1    wavelength      = 5.1
218                                Make/O/D/N=1    wavelength_spread       = 0.02
219                                Make/O/T/N=1    type    = "VS"
220                                NewDataFolder/O/S root:VSANS_file:entry1:instrument:monochromator:velocity_selector             
221                                        Make/O/T/N=1    status  = "in"
222                                        Make/O/D/N=1    rotation_speed  = 5100
223                                        Make/O/D/N=1    wavelength      = 6
224                                        Make/O/D/N=1    wavelength_spread       = 0.15
225                                        Make/O/D/N=1    vs_tilt = 3
226                                        Make/O/D/N=1    nx_distance     = 18.8
227                                                // table (wave)
228                                NewDataFolder/O/S root:VSANS_file:entry1:instrument:monochromator:crystal               
229                                        Make/O/T/N=1    status  = "in"
230                                        Make/O/D/N=1    nx_distance     = 1
231                                        Make/O/D/N=1    wavelength      = 5.1
232                                        Make/O/D/N=1    wavelength_spread       = 0.02
233                                        Make/O/D/N=1    rotation        = 1.1
234                                        Make/O/D/N=1    energy  = 1
235                                        Make/O/D/N=1    wavevector      = 1
236                                        Make/O/D/N=1    lattice_parameter       = 1
237                                        Make/O/D/N=3    reflection      = {1,2,3}
238                                        Make/O/D/N=1    horizontal_curvature    = 1
239                                        Make/O/D/N=1    vertical_curvature      = 1
240                                        Make/O/D/N=1    horizontal_aperture     = 1
241                                        Make/O/D/N=1    vertical_aperture       = 1
242                                NewDataFolder/O/S root:VSANS_file:entry1:instrument:monochromator:white_beam           
243                                        Make/O/T/N=1    status  = "in"
244                                        Make/O/D/N=1    wavelength      = 5.1
245                                        Make/O/D/N=1    wavelength_spread       = 0.8
246                                                // description_of_distribution 
247                        NewDataFolder/O/S root:VSANS_file:entry1:instrument:chopper             
248                                Make/O/T/N=1    status  = "in"
249                                Make/O/T/N=1    type    = "single"
250                                Make/O/D/N=1    rotation_speed  = 12000
251                                Make/O/D/N=1    distance_from_source    = 400
252                                Make/O/D/N=1    distance_from_sample    = 1500
253                                Make/O/D/N=1    slits   = 2
254                                Make/O/D/N=1    angular_opening = 15
255                                Make/O/D/N=1    duty_cycle      = 0.25
256                                        // +?   
257                        NewDataFolder/O/S root:VSANS_file:entry1:instrument:polarizer           
258                                Make/O/T/N=1    status  = "in"
259                                Make/O/T/N=1    type    = "supermirror"
260                                Make/O/T/N=1    composition     = "multilayer"
261                                Make/O/D/N=1    efficiency      = 0.95
262                                Make/O/T/N=1    status  = "in"
263                        NewDataFolder/O/S root:VSANS_file:entry1:instrument:flipper             
264                                Make/O/T/N=1    status  = "on"
265                                Make/O/D/N=1    driving_current = 42
266                                Make/O/T/N=1    waveform        = "sine"
267                                Make/O/D/N=1    frequency       = 400
268                                Make/O/D/N=1    transmitted_power       = 0.99
269                        NewDataFolder/O/S root:VSANS_file:entry1:instrument:polarizer_analyzer         
270                                Make/O/T/N=1    status  = "down"
271                                Make/O/D/N=1    guide_field_current_1   = 33
272                                Make/O/D/N=1    guide_field_current_2   = 32
273                                Make/O/D/N=1    solenoid_current        = 21
274                                Make/O/D/N=1    cell_index      = 1
275                                Make/O/T/N=(5)  cell_names      = {"Burgundy","Olaf","Jim","Bob","Joe"}
276                                Make/O/D/N=(5,2)        cell_parameters = 1
277                                       
278                        NewDataFolder/O/S root:VSANS_file:entry1:instrument:attenuator         
279                                Make/O/D/N=1    nx_distance     = 1500
280                                Make/O/T/N=1    type    = "PMMA"
281                                Make/O/D/N=1    thickness       = 0
282                                Make/O/D/N=1    attenuator_transmission = 1
283                                Make/O/T/N=1    status  = "in"
284                                Make/O/T/N=1    atten_number    = "0101"
285                                Make/O/D/N=(10,10)      index   = 1
286                        NewDataFolder/O/S root:VSANS_file:entry1:instrument:source_aperture             
287                                Make/O/T/N=1    material        = "Gd"
288                                Make/O/T/N=1    description     = "source aperture"
289                                Make/O/D/N=1    diameter        = 1.27
290                                Make/O/D/N=1    nx_distance     = 13.0
291                                NewDataFolder/O/S root:VSANS_file:entry1:instrument:source_aperture:shape                       
292                                        Make/O/D/N=(1,2)        size    = 1.27
293                        NewDataFolder/O/S root:VSANS_file:entry1:instrument:sample_aperture             
294                                Make/O/T/N=1    material        = "Gd"
295                                Make/O/T/N=1    description     = "sample aperture"
296                                Make/O/D/N=1    diameter        = 1.27
297                                Make/O/D/N=1    nx_distance     = 10
298                                NewDataFolder/O/S root:VSANS_file:entry1:instrument:sample_aperture:shape                       
299                                        Make/O/D/N=(1,2)        size    = 1.27
300                        NewDataFolder/O/S  root:VSANS_file:entry1:instrument:collimator         
301                                NewDataFolder/O/S root:VSANS_file:entry1:instrument:collimator:geometry         
302                                        NewDataFolder/O/S root:VSANS_file:entry1:instrument:collimator:geometry:shape           
303                                                Make/O/T/N=1    shape   = "box"
304                                                Make/O/D/N=1    size    = 11
305                                Make/O/I/N=1    nx_NumGuides    = 1
306                        NewDataFolder/O/S root:VSANS_file:entry1:instrument:converging_pinholes         
307                                Make/O/T/N=1    status  = "in"
308                        NewDataFolder/O/S root:VSANS_file:entry1:instrument:converging_slits           
309                                Make/O/T/N=1    status  = "in"
310                        NewDataFolder/O/S root:VSANS_file:entry1:instrument:lenses             
311                                Make/O/T/N=1    status  = "in"
312                                Make/O/T/N=1    lens_geometry   = "concave_lens"
313                                Make/O/T/N=1    focus_type      = "point"
314                                Make/O/I/N=1    number_of_lenses        = 28
315                                Make/O/I/N=1    number_of_prisms        = 7
316                                Make/O/D/N=1    curvature       = 1
317                                Make/O/D/N=1    lens_distance   = 123
318                                Make/O/D/N=1    prism_distance  = 123
319                                Make/O/T/N=1    lens_material   = "MgF2"
320                                Make/O/T/N=1    prism_material  = "MgF2"
321                        NewDataFolder/O/S root:VSANS_file:entry1:instrument:sample_table               
322                                Make/O/T/N=1    location        = "chamber"
323                                Make/O/D/N=1    offset_distance = 0
324                        NewDataFolder/O/S root:VSANS_file:entry1:instrument:beam_stop           
325                                Make/O/T/N=1    status  = "out"
326                                Make/O/T/N=1    description     = "circular"
327                                Make/O/D/N=1    nx_distance     = 12.5
328                                Make/O/D/N=1    size    = 7.62
329                                Make/O/D/N=1    xPos    = 66.4
330                                Make/O/D/N=1    yPos    = 64.4
331                                Make/O/D/N=1    x_motor_position        = 0.15
332                                Make/O/D/N=1    y_motor_position        = 0.55
333                                       
334                        NewDataFolder/O/S root:VSANS_file:entry1:instrument:detector_B         
335                                Make/O/I/N=(150,150)    data    = trunc(abs(gnoise(p+q)))
336                                //Make/O/D/N=(150,150)  //data_error    = 0.01*abs(gnoise(p+q))
337                                Make/O/D/N=1    nx_distance     = 21.1
338                                Make/O/T/N=1    description     = "fancy model"
339                                Make/O/T/N=1    settings        = "just right"
340                                Make/O/D/N=1    dead_time       = 5e-6
341                                Make/O/D/N=1    x_pixel_size    = 5.08
342                                Make/O/D/N=1    y_pixel_size    = 5.08
343                                Make/O/D/N=1    beam_center_x   = 165.55
344                                Make/O/D/N=1    beam_center_y   = 162.33
345                                Make/O/T/N=1    type    = "??"
346                                //Make/O/D/N=1  //flatfield_applied     = 0
347                                //Make/O/D/N=1  //countrate_correction_applied  = 0
348                                Make/O/D/N=(150,150)    pixel_mask      = 0
349                                Make/O/I/N=1    integrated_count        = 100111222
350                                Make/O/D/N=1    lateral_offset  = 20
351                                Make/O/I/N=1    PixelNumX       = 150
352                                Make/O/I/N=1    PixelNumY       = 150
353                                Make/O/D/N=1    PixelFWHM       = 0.5
354                                Make/O/D/N=3    CALX    = {0.5,0.5,10000}
355                                Make/O/D/N=3    CALY    = {0.5,0.5,10000}
356                                Make/O/D/N=1    size    = 65
357                                Make/O/T/N=1    event_file_name ="something.hst"
358                        NewDataFolder/O/S root:VSANS_file:entry1:instrument:detector_MR                 
359                                Make/O/I/N=(48,256)     data    = trunc(abs(gnoise(p+q)))
360                                //Make/O/D/N=(48,256)   //data_error    = 0.01*abs(gnoise(p+q))
361                                Make/O/D/N=1    nx_distance     = 13.1
362                                Make/O/T/N=1    description     = "fancy model"
363                                Make/O/T/N=1    settings        = "just right"
364                                Make/O/D/N=1    dead_time       = 5e-6
365                                Make/O/D/N=1    x_pixel_size    = 5.08
366                                Make/O/D/N=1    y_pixel_size    = 5.08
367                                Make/O/D/N=1    beam_center_x   = 65.55
368                                Make/O/D/N=1    beam_center_y   = 62.33
369                                Make/O/T/N=1    type    = "??"
370                                //Make/O/D/N=1  //flatfield_applied     = 0
371                                //Make/O/D/N=1  //countrate_correction_applied  = 0
372                                Make/O/D/N=(48,256)     pixel_mask      = 0
373                                Make/O/I/N=1    integrated_count        = 100111222
374                                Make/O/D/N=1    lateral_offset  = 20
375                                Make/O/D/N=1    separation      = 150
376                                Make/O/I/N=1    PixelNumX       = 48
377                                Make/O/I/N=1    PixelNumY       = 256
378                                Make/O/D/N=1    PixelFWHM       = 0.5
379                                Make/O/D/N=1    size    = 65
380                                Make/O/T/N=1    event_file_name ="something.hst"
381                                Make/O/T/N=1    tube_orientation        = "vertical"
382                                Make/O/I/N=1    number_of_tubes = 48
383                                Make/O/I/N=(tubes)      tube_index      = p
384                                Make/O/D/N=(2,tubes)    spatial_calibration     = 1
385                                Make/O/D/N=1    tube_width      = 8
386                        NewDataFolder/O/S root:VSANS_file:entry1:instrument:detector_ML                 
387                                Make/O/I/N=(48,256)     data    = trunc(abs(gnoise(p+q)))
388                                //Make/O/D/N=(48,256)   //data_error    = 0.01*abs(gnoise(p+q))
389                                Make/O/D/N=1    nx_distance     = 13.1
390                                Make/O/T/N=1    description     = "fancy model"
391                                Make/O/T/N=1    settings        = "just right"
392                                Make/O/D/N=1    dead_time       = 5e-6
393                                Make/O/D/N=1    x_pixel_size    = 5.08
394                                Make/O/D/N=1    y_pixel_size    = 5.08
395                                Make/O/D/N=1    beam_center_x   = 65.55
396                                Make/O/D/N=1    beam_center_y   = 62.33
397                                Make/O/T/N=1    type    = "??"
398                                //Make/O/D/N=1  //flatfield_applied     = 0
399                                //Make/O/D/N=1  //countrate_correction_applied  = 0
400                                Make/O/D/N=(48,256)     pixel_mask      = 0
401                                Make/O/I/N=1    integrated_count        = 100111222
402                                Make/O/D/N=1    lateral_offset  = 20
403                                Make/O/D/N=1    separation      = 150
404                                Make/O/I/N=1    PixelNumX       = 48
405                                Make/O/I/N=1    PixelNumY       = 256
406                                Make/O/D/N=1    PixelFWHM       = 0.5
407                                Make/O/D/N=1    size    = 65
408                                Make/O/T/N=1    event_file_name ="something.hst"
409                                Make/O/T/N=1    tube_orientation        = "vertical"
410                                Make/O/I/N=1    number_of_tubes = 48
411                                Make/O/I/N=(tubes)      tube_index      = p
412                                Make/O/D/N=(2,tubes)    spatial_calibration     = 1
413                                Make/O/D/N=1    tube_width      = 8
414                        NewDataFolder/O/S root:VSANS_file:entry1:instrument:detector_MT         
415                                Make/O/I/N=(128,48)     data    = trunc(abs(gnoise(p+q)))
416                                //Make/O/D/N=(128,48)   //data_error    = 0.01*abs(gnoise(p+q))
417                                Make/O/D/N=1    nx_distance     = 13.4
418                                Make/O/T/N=1    description     = "fancy model"
419                                Make/O/T/N=1    settings        = "just right"
420                                Make/O/D/N=1    dead_time       = 5e-6
421                                Make/O/D/N=1    x_pixel_size    = 5.08
422                                Make/O/D/N=1    y_pixel_size    = 5.08
423                                Make/O/D/N=1    beam_center_x   = 65.55
424                                Make/O/D/N=1    beam_center_y   = 62.33
425                                Make/O/T/N=1    type    = "??"
426                                //Make/O/D/N=1  //flatfield_applied     = 0
427                                //Make/O/D/N=1  //countrate_correction_applied  = 0
428                                Make/O/D/N=(128,48)     pixel_mask      = 0
429                                Make/O/I/N=1    integrated_count        = 100111222
430                                Make/O/D/N=1    lateral_offset  = 20
431                                Make/O/D/N=1    sdd_offset      = 30
432                                Make/O/D/N=1    separation      = 150
433                                Make/O/I/N=1    PixelNumX       = 128
434                                Make/O/I/N=1    PixelNumY       = 48
435                                Make/O/D/N=1    PixelFWHM       = 0.5
436                                Make/O/D/N=1    size    = 65
437                                Make/O/T/N=1    event_file_name ="something.hst"
438                                Make/O/T/N=1    tube_orientation        = "horizontal"
439                                Make/O/I/N=1    number_of_tubes = 48
440                                Make/O/I/N=(tubes)      tube_index      = p
441                                Make/O/D/N=(2,tubes)    spatial_calibration     = 1
442                                Make/O/D/N=1    tube_width      = 8
443                        NewDataFolder/O/S root:VSANS_file:entry1:instrument:detector_MB         
444                                Make/O/I/N=(128,48)     data    = trunc(abs(gnoise(p+q)))
445                                //Make/O/D/N=(128,48)   //data_error    = 0.01*abs(gnoise(p+q))
446                                Make/O/D/N=1    nx_distance     = 13.4
447                                Make/O/T/N=1    description     = "fancy model"
448                                Make/O/T/N=1    settings        = "just right"
449                                Make/O/D/N=1    dead_time       = 5e-6
450                                Make/O/D/N=1    x_pixel_size    = 5.08
451                                Make/O/D/N=1    y_pixel_size    = 5.08
452                                Make/O/D/N=1    beam_center_x   = 65.55
453                                Make/O/D/N=1    beam_center_y   = 62.33
454                                Make/O/T/N=1    type    = "??"
455                                //Make/O/D/N=1  //flatfield_applied     = 0
456                                //Make/O/D/N=1  //countrate_correction_applied  = 0
457                                Make/O/D/N=(128,48)     pixel_mask      = 0
458                                Make/O/I/N=1    integrated_count        = 100111222
459                                Make/O/D/N=1    lateral_offset  = 20
460                                Make/O/D/N=1    sdd_offset      = 30
461                                Make/O/D/N=1    separation      = 150
462                                Make/O/I/N=1    PixelNumX       = 128
463                                Make/O/I/N=1    PixelNumY       = 48
464                                Make/O/D/N=1    PixelFWHM       = 0.5
465                                Make/O/D/N=1    size    = 65
466                                Make/O/T/N=1    event_file_name ="something.hst"
467                                Make/O/T/N=1    tube_orientation        = "horizontal"
468                                Make/O/I/N=1    number_of_tubes = 48
469                                Make/O/I/N=(tubes)      tube_index      = p
470                                Make/O/D/N=(2,tubes)    spatial_calibration     = 1
471                                Make/O/D/N=1    tube_width      = 8
472                        NewDataFolder/O/S root:VSANS_file:entry1:instrument:detector_FR                 
473                                Make/O/I/N=(48,256)     data    = trunc(abs(gnoise(p+q)))
474                                //Make/O/D/N=(48,256)   //data_error    = 0.01*abs(gnoise(p+q))
475                                Make/O/D/N=1    nx_distance     = 2.1
476                                Make/O/T/N=1    description     = "fancy model"
477                                Make/O/T/N=1    settings        = "just right"
478                                Make/O/D/N=1    dead_time       = 5e-6
479                                Make/O/D/N=1    x_pixel_size    = 5.08
480                                Make/O/D/N=1    y_pixel_size    = 5.08
481                                Make/O/D/N=1    beam_center_x   = 65.55
482                                Make/O/D/N=1    beam_center_y   = 62.33
483                                Make/O/T/N=1    type    = "??"
484                                //Make/O/D/N=1  //flatfield_applied     = 0
485                                //Make/O/D/N=1  //countrate_correction_applied  = 0
486                                Make/O/D/N=(48,256)     pixel_mask      = 0
487                                Make/O/I/N=1    integrated_count        = 100111222
488                                Make/O/D/N=1    lateral_offset  = 20
489                                Make/O/D/N=1    separation      = 150
490                                Make/O/I/N=1    PixelNumX       = 48
491                                Make/O/I/N=1    PixelNumY       = 256
492                                Make/O/D/N=1    PixelFWHM       = 0.5
493                                Make/O/D/N=1    size    = 65
494                                Make/O/T/N=1    event_file_name ="something.hst"
495                                Make/O/T/N=1    tube_orientation        = "vertical"
496                                Make/O/I/N=1    number_of_tubes = 48
497                                Make/O/I/N=(tubes)      tube_index      = p
498                                Make/O/D/N=(2,tubes)    spatial_calibration     = 1
499                                Make/O/D/N=1    tube_width      = 8
500                        NewDataFolder/O/S root:VSANS_file:entry1:instrument:detector_FL                 
501                                Make/O/I/N=(48,256)     data    = trunc(abs(gnoise(p+q)))
502                                //Make/O/D/N=(48,256)   //data_error    = 0.01*abs(gnoise(p+q))
503                                Make/O/D/N=1    nx_distance     = 2.1
504                                Make/O/T/N=1    description     = "fancy model"
505                                Make/O/T/N=1    settings        = "just right"
506                                Make/O/D/N=1    dead_time       = 5e-6
507                                Make/O/D/N=1    x_pixel_size    = 5.08
508                                Make/O/D/N=1    y_pixel_size    = 5.08
509                                Make/O/D/N=1    beam_center_x   = 65.55
510                                Make/O/D/N=1    beam_center_y   = 62.33
511                                Make/O/T/N=1    type    = "??"
512                                //Make/O/D/N=1  //flatfield_applied     = 0
513                                //Make/O/D/N=1  //countrate_correction_applied  = 0
514                                Make/O/D/N=(48,256)     pixel_mask      = 0
515                                Make/O/I/N=1    integrated_count        = 100111222
516                                Make/O/D/N=1    lateral_offset  = 20
517                                Make/O/D/N=1    separation      = 150
518                                Make/O/I/N=1    PixelNumX       = 48
519                                Make/O/I/N=1    PixelNumY       = 256
520                                Make/O/D/N=1    PixelFWHM       = 0.5
521                                Make/O/D/N=1    size    = 65
522                                Make/O/T/N=1    event_file_name ="something.hst"
523                                Make/O/T/N=1    tube_orientation        = "vertical"
524                                Make/O/I/N=1    number_of_tubes = 48
525                                Make/O/I/N=(tubes)      tube_index      = p
526                                Make/O/D/N=(2,tubes)    spatial_calibration     = 1
527                                Make/O/D/N=1    tube_width      = 8
528                        NewDataFolder/O/S root:VSANS_file:entry1:instrument:detector_FT         
529                                Make/O/I/N=(128,48)     data    = trunc(abs(gnoise(p+q)))
530                                //Make/O/D/N=(128,48)   //data_error    = 0.01*abs(gnoise(p+q))
531                                Make/O/D/N=1    nx_distance     = 2.1
532                                Make/O/T/N=1    description     = "fancy model"
533                                Make/O/T/N=1    settings        = "just right"
534                                Make/O/D/N=1    dead_time       = 5e-6
535                                Make/O/D/N=1    x_pixel_size    = 5.08
536                                Make/O/D/N=1    y_pixel_size    = 5.08
537                                Make/O/D/N=1    beam_center_x   = 65.55
538                                Make/O/D/N=1    beam_center_y   = 62.33
539                                Make/O/T/N=1    type    = "??"
540                                //Make/O/D/N=1  //flatfield_applied     = 0
541                                //Make/O/D/N=1  //countrate_correction_applied  = 0
542                                Make/O/D/N=(128,48)     pixel_mask      = 0
543                                Make/O/I/N=1    integrated_count        = 100111222
544                                Make/O/D/N=1    lateral_offset  = 20
545                                Make/O/D/N=1    sdd_offset      = 30
546                                Make/O/D/N=1    separation      = 150
547                                Make/O/I/N=1    PixelNumX       = 128
548                                Make/O/I/N=1    PixelNumY       = 48
549                                Make/O/D/N=1    PixelFWHM       = 0.5
550                                Make/O/D/N=1    size    = 65
551                                Make/O/T/N=1    event_file_name ="something.hst"
552                                Make/O/T/N=1    tube_orientation        = "horizontal"
553                                Make/O/I/N=1    number_of_tubes = 48
554                                Make/O/I/N=(tubes)      tube_index      = p
555                                Make/O/D/N=(2,tubes)    spatial_calibration     = 1
556                                Make/O/D/N=1    tube_width      = 8
557                        NewDataFolder/O/S root:VSANS_file:entry1:instrument:detector_FB         
558                                Make/O/I/N=(128,48)     data    = trunc(abs(gnoise(p+q)))
559                                //Make/O/D/N=(128,48)   //data_error    = 0.01*abs(gnoise(p+q))
560                                Make/O/D/N=1    nx_distance     = 2.1
561                                Make/O/T/N=1    description     = "fancy model"
562                                Make/O/T/N=1    settings        = "just right"
563                                Make/O/D/N=1    dead_time       = 5e-6
564                                Make/O/D/N=1    x_pixel_size    = 5.08
565                                Make/O/D/N=1    y_pixel_size    = 5.08
566                                Make/O/D/N=1    beam_center_x   = 65.55
567                                Make/O/D/N=1    beam_center_y   = 62.33
568                                Make/O/T/N=1    type    = "??"
569                                //Make/O/D/N=1  //flatfield_applied     = 0
570                                //Make/O/D/N=1  //countrate_correction_applied  = 0
571                                Make/O/D/N=(128,48)     pixel_mask      = 0
572                                Make/O/I/N=1    integrated_count        = 100111222
573                                Make/O/D/N=1    lateral_offset  = 20
574                                Make/O/D/N=1    sdd_offset      = 30
575                                Make/O/D/N=1    separation      = 150
576                                Make/O/I/N=1    PixelNumX       = 128
577                                Make/O/I/N=1    PixelNumY       = 48
578                                Make/O/D/N=1    PixelFWHM       = 0.5
579                                Make/O/D/N=1    size    = 65
580                                Make/O/T/N=1    event_file_name ="something.hst"
581                                Make/O/T/N=1    tube_orientation        = "horizontal"
582                                Make/O/I/N=1    number_of_tubes = 48
583                                Make/O/I/N=(tubes)      tube_index      = p
584                                Make/O/D/N=(2,tubes)    spatial_calibration     = 1
585                                Make/O/D/N=1    tube_width      = 8
586                                       
587                                       
588                NewDataFolder/O/S root:VSANS_file:entry1:data_B         
589                        Make/O/I/N=(150,150)    data    = trunc(abs(gnoise(p+q)))
590                        //Make/O/D/N=(150,150)  //error = 0.01*abs(gnoise(p+q))
591                        Make/O/D/N=2    variables       = {150,150}
592                        Make/O/I/N=(150,150)    data_image      = p
593                NewDataFolder/O/S root:VSANS_file:entry1:data_MR               
594                        Make/O/i/N=(48,256)     data    = trunc(abs(gnoise(p+q)))
595                        //Make/O/D/N=(48,256)   //error = 0.01*abs(gnoise(p+q))
596                        Make/O/D/N=2    variables       = {48,256}
597                        Make/O/I/N=(48,256)     data_image      = p
598                NewDataFolder/O/S root:VSANS_file:entry1:data_ML               
599                        Make/O/i/N=(48,256)     data    = trunc(abs(gnoise(p+q)))
600                        //Make/O/D/N=(48,256)   //error = 0.01*abs(gnoise(p+q))
601                        Make/O/D/N=2    variables       = {48,256}
602                        Make/O/I/N=(48,256)     data_image      = p
603                NewDataFolder/O/S root:VSANS_file:entry1:data_MT               
604                        Make/O/I/N=(128,48)     data    = trunc(abs(gnoise(p+q)))
605                        //Make/O/D/N=(128,48)   //error = 0.01*abs(gnoise(p+q))
606                        Make/O/D/N=2    variables       = {128,48}
607                        Make/O/I/N=(128,48)     data_image      = p
608                NewDataFolder/O/S root:VSANS_file:entry1:data_MB               
609                        Make/O/I/N=(128,48)     data    = trunc(abs(gnoise(p+q)))
610                        //Make/O/D/N=(128,48)   //error = 0.01*abs(gnoise(p+q))
611                        Make/O/D/N=2    variables       = {128,48}
612                        Make/O/I/N=(128,48)     data_image      = p
613                NewDataFolder/O/S root:VSANS_file:entry1:data_FR               
614                        Make/O/I/N=(48,256)     data    = trunc(abs(gnoise(p+q)))
615                        //Make/O/D/N=(48,256)   //error = 0.01*abs(gnoise(p+q))
616                        Make/O/D/N=2    variables       = {48,256}
617                        Make/O/I/N=(48,256)     data_image      = p
618                NewDataFolder/O/S root:VSANS_file:entry1:data_FL               
619                        Make/O/I/N=(48,256)     data    = trunc(abs(gnoise(p+q)))
620                        //Make/O/D/N=(48,256)   //error = 0.01*abs(gnoise(p+q))
621                        Make/O/D/N=2    variables       = {48,256}
622                        Make/O/I/N=(48,256)     data_image      = p
623                NewDataFolder/O/S root:VSANS_file:entry1:data_FT               
624                        Make/O/I/N=(128,48)     data    = trunc(abs(gnoise(p+q)))
625                        //Make/O/D/N=(128,48)   //error = 0.01*abs(gnoise(p+q))
626                        Make/O/D/N=2    variables       = {128,48}
627                        Make/O/I/N=(128,48)     data_image      = p
628                NewDataFolder/O/S root:VSANS_file:entry1:data_FB               
629                        Make/O/I/N=(128,48)     data    = trunc(abs(gnoise(p+q)))
630                        //Make/O/D/N=(128,48)   //error = 0.01*abs(gnoise(p+q))
631                        Make/O/D/N=2    variables       = {128,48}
632                        Make/O/I/N=(128,48)     data_image      = p
633                               
634                NewDataFolder/O/S root:VSANS_file:entry1:reduction             
635                        Make/O/T/N=1    intent  = "SCATTER"
636                        Make/O/T/N=1    transmission_file_name  = "SANSFile_TRN.h5"
637                        Make/O/T/N=1    empty_beam_file_name    = "SANSFile_EB.h5"
638                        Make/O/T/N=1    background_file_name    = "SANSFile_BKG.h5"
639                        Make/O/T/N=1    empty_file_name = "SANSFile_EMP.h5"
640                        Make/O/T/N=1    sensitivity_file_name   = "SANSFile_DIV.h5"
641                        Make/O/T/N=1    mask_file_name  = "SANSFile_MASK.h5"
642                        Make/O/T/N=1    sans_log_file_name      = "SANSFile_log.txt"
643                        Make/O/D/N=1    whole_trans     = 0.888
644                        Make/O/D/N=1    whole_trans_error       = 0.008
645                        Make/O/D/N=1    box_count       = 23232
646                        Make/O/D/N=1    box_count_error = 22
647                        Make/O/I/N=4    box_coordinates = {50,80,45,75}
648                        Make/O/T/N=1    comments        = "extra data comments"
649                        Make/O/D/N=4    absolute_scaling        = {1,1,1e5,1}
650                        NewDataFolder/O/S root:VSANS_file:entry1:reduction:pol_sans                     
651                                Make/O/T/N=1    pol_sans_purpose        = "name from the list"
652                                Make/O/T/N=1    cell_name       = "Burgundy"
653                                Make/O/D/N=(5)  cell_parameters = {1,2,3,4,5}
654                                               
655        NewDataFolder/O/S root:VSANS_file:DAS_Logs             
656                        //...multiple entries and levels... to add     
657                        //this will be enormous
658
659
660
661
662        SetDataFolder root:
663       
664End
665
666// writes in the attributes
667Proc H_Fill_VSANS_Attributes()
668
669SetDataFolder  root:VSANS_file         
670        Make/O/N=0 Igor___folder_attributes     
671        Note/K Igor___folder_attributes, "producer=IgorPro\rNX_class=NXroot"
672        //      file_name               
673        //      file_time               
674        //      facility               
675        //      NeXus_version           
676        //      hdf_version             
677        //      file_history           
678        SetDataFolder root:VSANS_file:entry1           
679                Make/O/N=0 Igor___folder_attributes     
680                Note/K Igor___folder_attributes, "NX_class=NXentry"
681                //      title           
682                //      experiment_identifier           
683                //      experiment_description         
684                //      entry_identifier               
685                //      definition             
686                //      start_time             
687                //      end_time               
688                //      duration               
689                Note/K duration, "units=s"
690                //      collection_time         
691                Note/K collection_time, "units=s"
692                //      run_cycle               
693                //      data_directory         
694                //      program_name           
695                SetDataFolder root:VSANS_file:entry1:user               
696                        Make/O/N=0 Igor___folder_attributes     
697                        Note/K Igor___folder_attributes, "NX_class=NXuser"
698                        //      name           
699                        //      role           
700                        //      affiliation             
701                        //      address         
702                        //      telephoneNumber         
703                        //      faxNumber               
704                        //      email           
705                        //      facility_user_id               
706                SetDataFolder root:VSANS_file:entry1:control           
707                        Make/O/N=0 Igor___folder_attributes     
708                        Note/K Igor___folder_attributes, "NX_class=NXmonitor"
709                        //      mode           
710                        //      preset         
711                        //      integral               
712                        //      monitor_counts         
713                        //      monitor_preset         
714                        ////    type           
715                        ////    efficiency             
716                        ////    sampled_fraction               
717                        //      detector_counts         
718                        //      detector_preset         
719                        //      count_start             
720                        Note/K count_start, "units=s"
721                        //      count_end               
722                        Note/K count_end, "units=s"
723                        //      count_time             
724                        Note/K count_time, "units=s"
725                        //      count_time_preset               
726                        Note/K count_time_preset, "units=s"
727                //SetDataFolder root:VSANS_file:entry1:program_name     //program_data         
728                        ////    //data         
729                        ////    //description           
730                        ////    //file_name             
731                        ////    //type         
732                SetDataFolder root:VSANS_file:entry1:sample             
733                        Make/O/N=0 Igor___folder_attributes     
734                        Note/K Igor___folder_attributes, "NX_class=NXsample"
735                        //      description             
736                        //      group_id               
737                        ////    //chemical_formula             
738                        SetDataFolder root:VSANS_file:entry1:sample:temperature_1               
739                                Make/O/N=0 Igor___folder_attributes     
740                                Note/K Igor___folder_attributes, "NX_class=NXsensor"
741                                //      name           
742                                //      attached_to             
743                                //      measurement             
744                                SetDataFolder root:VSANS_file:entry1:sample:temperature_1:value_log             
745                                        Make/O/N=0 Igor___folder_attributes     
746                                        Note/K Igor___folder_attributes, "NX_class=NXlog"
747                                        //      start           
748                                        //      nx_time         
749                                        Note/K nx_time, "units=s"
750                                        //      value           
751                                        Note/K value, "units=C"
752                        SetDataFolder root:VSANS_file:entry1:sample:temperature_2               
753                                Make/O/N=0 Igor___folder_attributes     
754                                Note/K Igor___folder_attributes, "NX_class=NXsensor"
755                                //      name           
756                                //      attached_to             
757                                //      measurement             
758                                SetDataFolder root:VSANS_file:entry1:sample:temperature_2:value_log             
759                                        Make/O/N=0 Igor___folder_attributes     
760                                        Note/K Igor___folder_attributes, "NX_class=NXlog"
761                                        //      start           
762                                        //      nx_time         
763                                        Note/K nx_time, "units=s"
764                                        //      value           
765                                        Note/K value, "units=C"
766                        SetDataFolder root:VSANS_file:entry1:sample:electric_field             
767                                Make/O/N=0 Igor___folder_attributes     
768                                Note/K Igor___folder_attributes, "NX_class=NXsensor"
769                                //      name           
770                                //      attached_to             
771                                //      measurement             
772                                SetDataFolder root:VSANS_file:entry1:sample:electric_field:value_log           
773                                        Make/O/N=0 Igor___folder_attributes     
774                                        Note/K Igor___folder_attributes, "NX_class=NXlog"
775                                        //      start           
776                                        //      nx_time         
777                                        Note/K nx_time, "units=s"
778                                        //      value           
779                                        Note/K value, "units=V"
780                        SetDataFolder root:VSANS_file:entry1:sample:shear_field         
781                                Make/O/N=0 Igor___folder_attributes     
782                                Note/K Igor___folder_attributes, "NX_class=NXsensor"
783                                //      name           
784                                //      attached_to             
785                                //      measurement             
786                                SetDataFolder root:VSANS_file:entry1:sample:shear_field:value_log               
787                                        Make/O/N=0 Igor___folder_attributes     
788                                        Note/K Igor___folder_attributes, "NX_class=NXlog"
789                                        //      start           
790                                        //      nx_time         
791                                        Note/K nx_time, "units=s"
792                                        //      value           
793                                        Note/K value, "units=Pa s"
794                        SetDataFolder root:VSANS_file:entry1:sample:pressure           
795                                Make/O/N=0 Igor___folder_attributes     
796                                Note/K Igor___folder_attributes, "NX_class=NXsensor"
797                                //      name           
798                                //      attached_to             
799                                //      measurement             
800                                SetDataFolder root:VSANS_file:entry1:sample:pressure:value_log         
801                                        Make/O/N=0 Igor___folder_attributes     
802                                        Note/K Igor___folder_attributes, "NX_class=NXlog"
803                                        //      start           
804                                        //      nx_time         
805                                        Note/K nx_time, "units=s"
806                                        //      value           
807                                        Note/K value, "units=psi"
808                        SetDataFolder root:VSANS_file:entry1:sample:magnetic_field             
809                                Make/O/N=0 Igor___folder_attributes     
810                                Note/K Igor___folder_attributes, "NX_class=NXsensor"
811                                //      name           
812                                //      attached_to             
813                                //      measurement             
814                                SetDataFolder root:VSANS_file:entry1:sample:magnetic_field:value_log           
815                                        Make/O/N=0 Igor___folder_attributes     
816                                        Note/K Igor___folder_attributes, "NX_class=NXlog"
817                                        //      start           
818                                        //      nx_time         
819                                        Note/K nx_time, "units=s"
820                                        //      value           
821                                        Note/K value, "units=T"
822                        SetDataFolder root:VSANS_file:entry1:sample                     
823                        //      changer_position               
824                        //      sample_holder_description               
825                        ////    //mass         
826                        //Note/K mass, "units=g"
827                        ////    //density               
828                        //Note/K density, "units=g ml-1"
829                        ////    //molecular_weight             
830                        //Note/K molecular_weight, "units=g mol-1"
831                        ////    //description           
832                        ////    //preparation_date             
833                        ////    //volume_fraction               
834                        ////    //scattering_length_density             
835                        //Note/K scattering_length_density, "units=A-2"
836                        //      thickness               
837                                Note/K thickness, "units=cm"
838                        //      rotation_angle         
839                                Note/K rotation_angle, "units=degrees"
840                        //      transmission           
841                        //      transmission_error             
842                        ////    //xs_incoh             
843                        //Note/K xs_incoh, "units=cm-1"
844                        ////    //xs_coh               
845                        //Note/K xs_coh, "units=cm-1"
846                        ////    //xs_absorb             
847                        //Note/K xs_absorb, "units=cm-1"
848                SetDataFolder root:VSANS_file:entry1:instrument         
849                        Make/O/N=0 Igor___folder_attributes     
850                        Note/K Igor___folder_attributes, "NX_class=NXinstrument"
851                        ////    //location             
852                        //      name           
853                        //      type           
854                        //      local_contact           
855                        SetDataFolder root:VSANS_file:entry1:instrument:source         
856                                Make/O/N=0 Igor___folder_attributes     
857                                Note/K Igor___folder_attributes, "NX_class=NXsource"
858                                //      name           
859                                //      type           
860                                //      probe           
861                                //      power           
862                                Note/K power, "units=MW"
863                                               
864                        SetDataFolder root:VSANS_file:entry1:instrument:beam_monitor_norm               
865                                Make/O/N=0 Igor___folder_attributes     
866                                Note/K Igor___folder_attributes, "NX_class=NXmonitor"
867                                //      data           
868                                //      type           
869                                //      efficiency             
870                                //      nx_distance             
871                                Note/K nx_distance, "units=m"
872                                //      saved_count             
873                        SetDataFolder root:VSANS_file:entry1:instrument:beam_monitor_low               
874                                Make/O/N=0 Igor___folder_attributes     
875                                Note/K Igor___folder_attributes, "NX_class=NXmonitor"
876                                //      data           
877                                //      type           
878                                //      efficiency             
879                                //      nx_distance             
880                                Note/K nx_distance, "units=m"
881                                //      saved_count             
882                                               
883                        SetDataFolder root:VSANS_file:entry1:instrument:monochromator           
884                                Make/O/N=0 Igor___folder_attributes     
885                                Note/K Igor___folder_attributes, "NX_class=NXmonochromator"
886                                //      wavelength             
887                                Note/K wavelength, "units=A"
888                                //      wavelength_spread               
889                                //      type           
890                                SetDataFolder root:VSANS_file:entry1:instrument:monochromator:velocity_selector         
891                                        Make/O/N=0 Igor___folder_attributes     
892                                        Note/K Igor___folder_attributes, "NX_class=NXvelocity_selector"
893                                        //      status         
894                                        //      rotation_speed         
895                                        Note/K rotation_speed, "units=RPM"
896                                        //      wavelength             
897                                        Note/K wavelength, "units=A"
898                                        //      wavelength_spread               
899                                        //      vs_tilt         
900                                        Note/K vs_tilt, "units=degrees"
901                                        //      nx_distance             
902                                        Note/K nx_distance, "units=m"
903                                                // table (wave)         
904                                SetDataFolder root:VSANS_file:entry1:instrument:monochromator:crystal           
905                                        Make/O/N=0 Igor___folder_attributes     
906                                        Note/K Igor___folder_attributes, "NX_class=NXcrystal"
907                                        //      status         
908                                        //      nx_distance             
909                                        Note/K nx_distance, "units=m"
910                                        //      wavelength             
911                                        Note/K wavelength, "units=A"
912                                        //      wavelength_spread               
913                                        //      rotation               
914                                        Note/K rotation, "units=degrees"
915                                        //      energy         
916                                        Note/K energy, "units=mV"
917                                        //      wavevector             
918                                        Note/K wavevector, "units=A-1"
919                                        //      lattice_parameter               
920                                        //      reflection             
921                                        //      horizontal_curvature           
922                                        //      vertical_curvature             
923                                        //      horizontal_aperture             
924                                        //      vertical_aperture               
925                                SetDataFolder root:VSANS_file:entry1:instrument:monochromator:white_beam                       
926                                        //      status         
927                                        //      wavelength             
928                                        Note/K wavelength, "units=A"
929                                        //      wavelength_spread               
930                                                // description_of_distribution         
931                        SetDataFolder root:VSANS_file:entry1:instrument:chopper         
932                                Make/O/N=0 Igor___folder_attributes     
933                                Note/K Igor___folder_attributes, "NX_class=NXdisk_chopper"
934                                //      status         
935                                //      type           
936                                //      rotation_speed         
937                                Note/K rotation_speed, "units=RPM"
938                                //      distance_from_source           
939                                Note/K distance_from_source, "units=m"
940                                //      distance_from_sample           
941                                Note/K distance_from_sample, "units=m"
942                                //      slits           
943                                //      angular_opening         
944                                Note/K angular_opening, "units=degrees"
945                                //      duty_cycle             
946                                        // +?           
947                        SetDataFolder root:VSANS_file:entry1:instrument:polarizer                       
948                                //      status         
949                                //      type           
950                                //      composition             
951                                //      efficiency             
952                                //      status         
953                        SetDataFolder root:VSANS_file:entry1:instrument:flipper                 
954                                //      status         
955                                //      driving_current         
956                                Note/K driving_current, "units=A"
957                                //      waveform               
958                                //      frequency               
959                                Note/K frequency, "units=Hz"
960                                //      transmitted_power               
961                        SetDataFolder root:VSANS_file:entry1:instrument:polarizer_analyzer                     
962                                //      status         
963                                //      guide_field_current_1           
964                                Note/K guide_field_current_1, "units=A"
965                                //      guide_field_current_2           
966                                Note/K guide_field_current_2, "units=A"
967                                //      solenoid_current               
968                                Note/K solenoid_current, "units=A"
969                                //      cell_index             
970                                //      cell_names             
971                                //      cell_parameters         
972                                               
973                        SetDataFolder root:VSANS_file:entry1:instrument:attenuator             
974                                Make/O/N=0 Igor___folder_attributes     
975                                Note/K Igor___folder_attributes, "NX_class=NXattenuator"
976                                //      nx_distance             
977                                Note/K nx_distance, "units=m"
978                                //      type           
979                                //      thickness               
980                                Note/K thickness, "units=cm"
981                                //      attenuator_transmission         
982                                //      status         
983                                //      atten_number           
984                                //      index           
985                        SetDataFolder root:VSANS_file:entry1:instrument:source_aperture         
986                                Make/O/N=0 Igor___folder_attributes     
987                                Note/K Igor___folder_attributes, "NX_class=NXaperture"
988                                //      material               
989                                //      description             
990                                //      diameter               
991                                Note/K diameter, "units=cm"
992                                //      nx_distance             
993                                Note/K nx_distance, "units=m"
994                                SetDataFolder root:VSANS_file:entry1:instrument:source_aperture:shape                   
995                                        Make/O/N=0 Igor___folder_attributes     
996                                        Note/K Igor___folder_attributes, "NX_class=NXshape"
997                                        //      size           
998                                        Note/K size, "units=cm"
999                        SetDataFolder root:VSANS_file:entry1:instrument:sample_aperture         
1000                                Make/O/N=0 Igor___folder_attributes     
1001                                Note/K Igor___folder_attributes, "NX_class=NXaperture"
1002                                //      material               
1003                                //      description             
1004                                //      diameter               
1005                                Note/K diameter, "units=cm"
1006                                //      nx_distance             
1007                                Note/K nx_distance, "units=m"
1008                                SetDataFolder root:VSANS_file:entry1:instrument:sample_aperture:shape                   
1009                                        Make/O/N=0 Igor___folder_attributes     
1010                                        Note/K Igor___folder_attributes, "NX_class=NXshape"
1011                                        //      size           
1012                                        Note/K size, "units=cm"
1013                        SetDataFolder root:VSANS_file:entry1:instrument:collimator                     
1014                                SetDataFolder root:VSANS_file:entry1:instrument:collimator:geometry                     
1015                                        SetDataFolder root:VSANS_file:entry1:instrument:collimator:geometry:shape                       
1016                                                //      shape           
1017                                                //      size           
1018                                                Note/K size, "units=m"
1019                                //      nx_NumGuides           
1020                        SetDataFolder root:VSANS_file:entry1:instrument:converging_pinholes                     
1021                                //      status         
1022                        SetDataFolder root:VSANS_file:entry1:instrument:converging_slits                       
1023                                //      status         
1024                        SetDataFolder root:VSANS_file:entry1:instrument:lenses         
1025                                Make/O/N=0 Igor___folder_attributes     
1026                                Note/K Igor___folder_attributes, "NX_class=NXxraylens"
1027                                //      status         
1028                                //      lens_geometry           
1029                                //      focus_type             
1030                                //      number_of_lenses               
1031                                //      number_of_prisms               
1032                                //      curvature               
1033                                //      lens_distance           
1034                                Note/K lens_distance, "units=m"
1035                                //      prism_distance         
1036                                Note/K prism_distance, "units=m"
1037                                //      lens_material           
1038                                //      prism_material         
1039                        SetDataFolder root:VSANS_file:entry1:instrument:sample_table                   
1040                                //      location               
1041                                //      offset_distance         
1042                                Note/K offset_distance, "units=m"
1043                        SetDataFolder root:VSANS_file:entry1:instrument:beam_stop               
1044                                Make/O/N=0 Igor___folder_attributes     
1045                                Note/K Igor___folder_attributes, "NX_class=NXbeam_stop"
1046                                //      status         
1047                                //      description             
1048                                //      nx_distance             
1049                                Note/K nx_distance, "units=m"
1050                                //      size           
1051                                Note/K size, "units=cm"
1052                                //      xPos           
1053                                //      yPos           
1054                                //      x_motor_position               
1055                                Note/K x_motor_position, "units=cm"
1056                                //      y_motor_position               
1057                                Note/K y_motor_position, "units=cm"
1058                                               
1059                        SetDataFolder root:VSANS_file:entry1:instrument:detector_B             
1060                                Make/O/N=0 Igor___folder_attributes     
1061                                Note/K Igor___folder_attributes, "NX_class=NXdetector"
1062                                //      data           
1063                                ////    //data_error           
1064                                //      nx_distance             
1065                                Note/K nx_distance, "units=m"
1066                                //      description             
1067                                //      settings               
1068                                //      dead_time               
1069                                Note/K dead_time, "units=s"
1070                                //      x_pixel_size           
1071                                Note/K x_pixel_size, "units=cm"
1072                                //      y_pixel_size           
1073                                Note/K y_pixel_size, "units=cm"
1074                                //      beam_center_x           
1075                                //      beam_center_y           
1076                                //      type           
1077                                ////    //flatfield_applied             
1078                                ////    //countrate_correction_applied         
1079                                //      pixel_mask             
1080                                //      integrated_count               
1081                                //      lateral_offset         
1082                                Note/K lateral_offset, "units=cm"
1083                                //      PixelNumX               
1084                                //      PixelNumY               
1085                                //      PixelFWHM               
1086                                //      CALX           
1087                                //      CALY           
1088                                //      size           
1089                                Note/K size, "units=cm"
1090                                //      event_file_name         
1091                        SetDataFolder root:VSANS_file:entry1:instrument:detector_MR                     
1092                                Make/O/N=0 Igor___folder_attributes     
1093                                Note/K Igor___folder_attributes, "NX_class=NXdetector"
1094                                //      data           
1095                                ////    //data_error           
1096                                //      nx_distance             
1097                                Note/K nx_distance, "units=m"
1098                                //      description             
1099                                //      settings               
1100                                //      dead_time               
1101                                Note/K dead_time, "units=s"
1102                                //      x_pixel_size           
1103                                Note/K x_pixel_size, "units=cm"
1104                                //      y_pixel_size           
1105                                Note/K y_pixel_size, "units=cm"
1106                                //      beam_center_x           
1107                                //      beam_center_y           
1108                                //      type           
1109                                ////    //flatfield_applied             
1110                                ////    //countrate_correction_applied         
1111                                //      pixel_mask             
1112                                //      integrated_count               
1113                                //      lateral_offset         
1114                                Note/K lateral_offset, "units=cm"
1115                                //      separation             
1116                                Note/K separation, "units=cm"
1117                                //      PixelNumX               
1118                                //      PixelNumY               
1119                                //      PixelFWHM               
1120                                //      size           
1121                                Note/K size, "units=cm"
1122                                //      event_file_name         
1123                                //      tube_orientation               
1124                                //      number_of_tubes         
1125                                //      tube_index             
1126                                //      spatial_calibration             
1127                                //      tube_width             
1128                                Note/K tube_width, "units=cm"
1129                        SetDataFolder root:VSANS_file:entry1:instrument:detector_ML             
1130                                Make/O/N=0 Igor___folder_attributes     
1131                                Note/K Igor___folder_attributes, "NX_class=NXdetector"
1132                                //      data           
1133                                ////    //data_error           
1134                                //      nx_distance             
1135                                Note/K nx_distance, "units=m"
1136                                //      description             
1137                                //      settings               
1138                                //      dead_time               
1139                                Note/K dead_time, "units=s"
1140                                //      x_pixel_size           
1141                                Note/K x_pixel_size, "units=cm"
1142                                //      y_pixel_size           
1143                                Note/K y_pixel_size, "units=cm"
1144                                //      beam_center_x           
1145                                //      beam_center_y           
1146                                //      type           
1147                                ////    //flatfield_applied             
1148                                ////    //countrate_correction_applied         
1149                                //      pixel_mask             
1150                                //      integrated_count               
1151                                //      lateral_offset         
1152                                Note/K lateral_offset, "units=cm"
1153                                //      separation             
1154                                Note/K separation, "units=cm"
1155                                //      PixelNumX               
1156                                //      PixelNumY               
1157                                //      PixelFWHM               
1158                                //      size           
1159                                Note/K size, "units=cm"
1160                                //      event_file_name         
1161                                //      tube_orientation               
1162                                //      number_of_tubes         
1163                                //      tube_index             
1164                                //      spatial_calibration             
1165                                //      tube_width             
1166                                Note/K tube_width, "units=cm"
1167                        SetDataFolder root:VSANS_file:entry1:instrument:detector_MT             
1168                                Make/O/N=0 Igor___folder_attributes     
1169                                Note/K Igor___folder_attributes, "NX_class=NXdetector"
1170                                //      data           
1171                                ////    //data_error           
1172                                //      nx_distance             
1173                                Note/K nx_distance, "units=m"
1174                                //      description             
1175                                //      settings               
1176                                //      dead_time               
1177                                Note/K dead_time, "units=s"
1178                                //      x_pixel_size           
1179                                Note/K x_pixel_size, "units=cm"
1180                                //      y_pixel_size           
1181                                Note/K y_pixel_size, "units=cm"
1182                                //      beam_center_x           
1183                                //      beam_center_y           
1184                                //      type           
1185                                ////    //flatfield_applied             
1186                                ////    //countrate_correction_applied         
1187                                //      pixel_mask             
1188                                //      integrated_count               
1189                                //      lateral_offset         
1190                                Note/K lateral_offset, "units=cm"
1191                                //      sdd_offset             
1192                                Note/K sdd_offset, "units=cm"
1193                                //      separation             
1194                                Note/K separation, "units=cm"
1195                                //      PixelNumX               
1196                                //      PixelNumY               
1197                                //      PixelFWHM               
1198                                //      size           
1199                                Note/K size, "units=cm"
1200                                //      event_file_name         
1201                                //      tube_orientation               
1202                                //      number_of_tubes         
1203                                //      tube_index             
1204                                //      spatial_calibration             
1205                                //      tube_width             
1206                                Note/K tube_width, "units=cm"
1207                        SetDataFolder root:VSANS_file:entry1:instrument:detector_MB             
1208                                Make/O/N=0 Igor___folder_attributes     
1209                                Note/K Igor___folder_attributes, "NX_class=NXdetector"
1210                                //      data           
1211                                ////    //data_error           
1212                                //      nx_distance             
1213                                Note/K nx_distance, "units=m"
1214                                //      description             
1215                                //      settings               
1216                                //      dead_time               
1217                                Note/K dead_time, "units=s"
1218                                //      x_pixel_size           
1219                                Note/K x_pixel_size, "units=cm"
1220                                //      y_pixel_size           
1221                                Note/K y_pixel_size, "units=cm"
1222                                //      beam_center_x           
1223                                //      beam_center_y           
1224                                //      type           
1225                                ////    //flatfield_applied             
1226                                ////    //countrate_correction_applied         
1227                                //      pixel_mask             
1228                                //      integrated_count               
1229                                //      lateral_offset         
1230                                Note/K lateral_offset, "units=cm"
1231                                //      sdd_offset             
1232                                Note/K sdd_offset, "units=cm"
1233                                //      separation             
1234                                Note/K separation, "units=cm"
1235                                //      PixelNumX               
1236                                //      PixelNumY               
1237                                //      PixelFWHM               
1238                                //      size           
1239                                Note/K size, "units=cm"
1240                                //      event_file_name         
1241                                //      tube_orientation               
1242                                //      number_of_tubes         
1243                                //      tube_index             
1244                                //      spatial_calibration             
1245                                //      tube_width             
1246                                Note/K tube_width, "units=cm"
1247                        SetDataFolder root:VSANS_file:entry1:instrument:detector_FR                     
1248                                Make/O/N=0 Igor___folder_attributes     
1249                                Note/K Igor___folder_attributes, "NX_class=NXdetector"
1250                                //      data           
1251                                ////    //data_error           
1252                                //      nx_distance             
1253                                Note/K nx_distance, "units=m"
1254                                //      description             
1255                                //      settings               
1256                                //      dead_time               
1257                                Note/K dead_time, "units=s"
1258                                //      x_pixel_size           
1259                                Note/K x_pixel_size, "units=cm"
1260                                //      y_pixel_size           
1261                                Note/K y_pixel_size, "units=cm"
1262                                //      beam_center_x           
1263                                //      beam_center_y           
1264                                //      type           
1265                                ////    //flatfield_applied             
1266                                ////    //countrate_correction_applied         
1267                                //      pixel_mask             
1268                                //      integrated_count               
1269                                //      lateral_offset         
1270                                Note/K lateral_offset, "units=cm"
1271                                //      separation             
1272                                Note/K separation, "units=cm"
1273                                //      PixelNumX               
1274                                //      PixelNumY               
1275                                //      PixelFWHM               
1276                                //      size           
1277                                Note/K size, "units=cm"
1278                                //      event_file_name         
1279                                //      tube_orientation               
1280                                //      number_of_tubes         
1281                                //      tube_index             
1282                                //      spatial_calibration             
1283                                //      tube_width             
1284                                Note/K tube_width, "units=cm"
1285                        SetDataFolder root:VSANS_file:entry1:instrument:detector_FL             
1286                                Make/O/N=0 Igor___folder_attributes     
1287                                Note/K Igor___folder_attributes, "NX_class=NXdetector"
1288                                //      data           
1289                                ////    //data_error           
1290                                //      nx_distance             
1291                                Note/K nx_distance, "units=m"
1292                                //      description             
1293                                //      settings               
1294                                //      dead_time               
1295                                Note/K dead_time, "units=s"
1296                                //      x_pixel_size           
1297                                Note/K x_pixel_size, "units=cm"
1298                                //      y_pixel_size           
1299                                Note/K y_pixel_size, "units=cm"
1300                                //      beam_center_x           
1301                                //      beam_center_y           
1302                                //      type           
1303                                ////    //flatfield_applied             
1304                                ////    //countrate_correction_applied         
1305                                //      pixel_mask             
1306                                //      integrated_count               
1307                                //      lateral_offset         
1308                                Note/K lateral_offset, "units=cm"
1309                                //      separation             
1310                                Note/K separation, "units=cm"
1311                                //      PixelNumX               
1312                                //      PixelNumY               
1313                                //      PixelFWHM               
1314                                //      size           
1315                                Note/K size, "units=cm"
1316                                //      event_file_name         
1317                                //      tube_orientation               
1318                                //      number_of_tubes         
1319                                //      tube_index             
1320                                //      spatial_calibration             
1321                                //      tube_width             
1322                                Note/K tube_width, "units=cm"
1323                        SetDataFolder root:VSANS_file:entry1:instrument:detector_FT             
1324                                Make/O/N=0 Igor___folder_attributes     
1325                                Note/K Igor___folder_attributes, "NX_class=NXdetector"
1326                                //      data           
1327                                ////    //data_error           
1328                                //      nx_distance             
1329                                Note/K nx_distance, "units=m"
1330                                //      description             
1331                                //      settings               
1332                                //      dead_time               
1333                                Note/K dead_time, "units=s"
1334                                //      x_pixel_size           
1335                                Note/K x_pixel_size, "units=cm"
1336                                //      y_pixel_size           
1337                                Note/K y_pixel_size, "units=cm"
1338                                //      beam_center_x           
1339                                //      beam_center_y           
1340                                //      type           
1341                                ////    //flatfield_applied             
1342                                ////    //countrate_correction_applied         
1343                                //      pixel_mask             
1344                                //      integrated_count               
1345                                //      lateral_offset         
1346                                Note/K lateral_offset, "units=cm"
1347                                //      sdd_offset             
1348                                Note/K sdd_offset, "units=cm"
1349                                //      separation             
1350                                Note/K separation, "units=cm"
1351                                //      PixelNumX               
1352                                //      PixelNumY               
1353                                //      PixelFWHM               
1354                                //      size           
1355                                Note/K size, "units=cm"
1356                                //      event_file_name         
1357                                //      tube_orientation               
1358                                //      number_of_tubes         
1359                                //      tube_index             
1360                                //      spatial_calibration             
1361                                //      tube_width             
1362                                Note/K tube_width, "units=cm"
1363                        SetDataFolder root:VSANS_file:entry1:instrument:detector_FB             
1364                                Make/O/N=0 Igor___folder_attributes     
1365                                Note/K Igor___folder_attributes, "NX_class=NXdetector"
1366                                //      data           
1367                                ////    //data_error           
1368                                //      nx_distance             
1369                                Note/K nx_distance, "units=m"
1370                                //      description             
1371                                //      settings               
1372                                //      dead_time               
1373                                Note/K dead_time, "units=s"
1374                                //      x_pixel_size           
1375                                Note/K x_pixel_size, "units=cm"
1376                                //      y_pixel_size           
1377                                Note/K y_pixel_size, "units=cm"
1378                                //      beam_center_x           
1379                                //      beam_center_y           
1380                                //      type           
1381                                ////    //flatfield_applied             
1382                                ////    //countrate_correction_applied         
1383                                //      pixel_mask             
1384                                //      integrated_count               
1385                                //      lateral_offset         
1386                                Note/K lateral_offset, "units=cm"
1387                                //      sdd_offset             
1388                                Note/K sdd_offset, "units=cm"
1389                                //      separation             
1390                                Note/K separation, "units=cm"
1391                                //      PixelNumX               
1392                                //      PixelNumY               
1393                                //      PixelFWHM               
1394                                //      size           
1395                                Note/K size, "units=cm"
1396                                //      event_file_name         
1397                                //      tube_orientation               
1398                                //      number_of_tubes         
1399                                //      tube_index             
1400                                //      spatial_calibration             
1401                                //      tube_width             
1402                                Note/K tube_width, "units=cm"
1403                                               
1404                                               
1405                SetDataFolder root:VSANS_file:entry1:data_B             
1406                        Make/O/N=0 Igor___folder_attributes     
1407                        Note/K Igor___folder_attributes, "NX_class=NXdata"
1408                        //      data           
1409                        ////    //error         
1410                        //      variables               
1411                        //      data_image             
1412                SetDataFolder root:VSANS_file:entry1:data_MR           
1413                        Make/O/N=0 Igor___folder_attributes     
1414                        Note/K Igor___folder_attributes, "NX_class=NXdata"
1415                        //      data           
1416                        ////    //error         
1417                        //      variables               
1418                        //      data_image             
1419                SetDataFolder root:VSANS_file:entry1:data_ML           
1420                        Make/O/N=0 Igor___folder_attributes     
1421                        Note/K Igor___folder_attributes, "NX_class=NXdata"
1422                        //      data           
1423                        ////    //error         
1424                        //      variables               
1425                        //      data_image             
1426                SetDataFolder root:VSANS_file:entry1:data_MT           
1427                        Make/O/N=0 Igor___folder_attributes     
1428                        Note/K Igor___folder_attributes, "NX_class=NXdata"
1429                        //      data           
1430                        ////    //error         
1431                        //      variables               
1432                        //      data_image             
1433                SetDataFolder root:VSANS_file:entry1:data_MB           
1434                        Make/O/N=0 Igor___folder_attributes     
1435                        Note/K Igor___folder_attributes, "NX_class=NXdata"
1436                        //      data           
1437                        ////    //error         
1438                        //      variables               
1439                        //      data_image             
1440                SetDataFolder root:VSANS_file:entry1:data_FR           
1441                        Make/O/N=0 Igor___folder_attributes     
1442                        Note/K Igor___folder_attributes, "NX_class=NXdata"
1443                        //      data           
1444                        ////    //error         
1445                        //      variables               
1446                        //      data_image             
1447                SetDataFolder root:VSANS_file:entry1:data_FL           
1448                        Make/O/N=0 Igor___folder_attributes     
1449                        Note/K Igor___folder_attributes, "NX_class=NXdata"
1450                        //      data           
1451                        ////    //error         
1452                        //      variables               
1453                        //      data_image             
1454                SetDataFolder root:VSANS_file:entry1:data_FT           
1455                        Make/O/N=0 Igor___folder_attributes     
1456                        Note/K Igor___folder_attributes, "NX_class=NXdata"
1457                        //      data           
1458                        ////    //error         
1459                        //      variables               
1460                        //      data_image             
1461                SetDataFolder root:VSANS_file:entry1:data_FB           
1462                        Make/O/N=0 Igor___folder_attributes     
1463                        Note/K Igor___folder_attributes, "NX_class=NXdata"
1464                        //      data           
1465                        ////    //error         
1466                        //      variables               
1467                        //      data_image             
1468                                       
1469                SetDataFolder root:VSANS_file:entry1:reduction                 
1470                        //      intent         
1471                        //      transmission_file_name         
1472                        //      empty_beam_file_name           
1473                        //      background_file_name           
1474                        //      empty_file_name         
1475                        //      sensitivity_file_name           
1476                        //      mask_file_name         
1477                        //      sans_log_file_name             
1478                        //      whole_trans             
1479                        //      whole_trans_error               
1480                        //      box_count               
1481                        //      box_count_error         
1482                        //      box_coordinates         
1483                        //      comments               
1484                        //      absolute_scaling               
1485                        SetDataFolder root:VSANS_file:entry1:reduction:pol_sans                         
1486                                //      pol_sans_purpose               
1487                                //      cell_name               
1488                                //      cell_parameters         
1489                                                       
1490        SetDataFolder root:VSANS_file:DAS_Logs         
1491                Make/O/N=0 Igor___folder_attributes     
1492                Note/K Igor___folder_attributes, "NX_class=NXlog"
1493                        //...multiple entries and levels... to add             
1494                        //this will be enormous         
1495
1496       
1497
1498
1499        SetDataFolder root:     
1500
1501End
1502
1503// overwrites the dummy values as needed with VCALC information
1504//
1505//
1506//
1507// TODO
1508// issues here with the potential for Nexus to have data as INTEGER
1509// where I'd rather have the data here in Igor be DP, so there are no
1510// conversion/assignment issues
1511//
1512// simuation data from VCALC = DP, but I need to assign to an Integer wave...
1513// - sometimes this works, sometimes not...
1514// may need to Redimension/I
1515//
1516/// break this up into several smaller procedures as this is a VERY lengthy task to do
1517
1518        // TODO
1519// set the "accessible" copies of the data (these are really to be links in the file!)
1520
1521Proc H_Fill_VSANS_wSim()
1522
1523
1524SetDataFolder  root:VSANS_file         
1525                file_name       = "VSANSTest.h5"
1526                file_time       = "2015-02-28T08:15:30-5:00"
1527                facility        = "NCNR"
1528                NeXus_version   = "Nexus 0.0"
1529                hdf_version     = "hdf5.x"
1530                file_history    = "history log"
1531        SetDataFolder root:VSANS_file:entry1           
1532                        title   = "title of entry1"
1533                        experiment_identifier   = 684636
1534                        experiment_description  = "description of expt"
1535                        entry_identifier        = "S22-33"
1536                        definition      = "NXsas"
1537                        start_time      = "2015-02-28T08:15:30-5:00"
1538                        end_time        = "2015-02-28T08:15:30-5:00"
1539                        duration        = 300
1540                        collection_time = 300
1541                        run_cycle       = "S22-23"
1542                        data_directory  = "[VSANS_VSANS]"
1543                        program_name    = "runPoint={stuff}"
1544                SetDataFolder root:VSANS_file:entry1:user               
1545                                name    = "Dr. Pi"
1546                                role    = "evil scientist"
1547                                affiliation     = "NIST"
1548                                address = "100 Bureau Drive"
1549                                telephoneNumber = "301-999-9999"
1550                                faxNumber       = "301-999-9999"
1551                                email   = "sans@nist"
1552                                facility_user_id        = 6937596
1553                SetDataFolder root:VSANS_file:entry1:control           
1554                                mode    = "timer"
1555                                preset  = 555
1556                                integral        = 555
1557                                monitor_counts  = 666
1558                                monitor_preset  = 1e8
1559                        //WAVE/T        type    = "monitor type"
1560                        //WAVE  efficiency      = 0.01
1561                        //WAVE  sampled_fraction        = 1
1562                                detector_counts = 100111222
1563                                detector_preset = 1e5
1564                                count_start     = 1
1565                                count_end       = 1
1566                                count_time      = 1
1567                                count_time_preset       = 1
1568                //SetDataFolder root:VSANS_file:entry1:program_name     //program_data 
1569                        //WAVE/T        //data  = "program data"
1570                        //WAVE/T        //description   = "acquisition"
1571                        //WAVE/T        //file_name     = "NICE"
1572                        //WAVE/T        //type  = "client"
1573                SetDataFolder root:VSANS_file:entry1:sample             
1574                                description     = "My Sample"
1575                                group_id        = 12345
1576                        //WAVE/T        //chemical_formula      = "C8H10N4O2"
1577                        SetDataFolder root:VSANS_file:entry1:sample:temperature_1               
1578                                        name    = "Sample temperature"
1579                                        attached_to     = "block"
1580                                        measurement     = "temperature"
1581                                SetDataFolder root:VSANS_file:entry1:sample:temperature_1:value_log             
1582                                                start   = "2015-02-28T08:15:30-5:00"
1583                                                nx_time = p
1584                                                value   = 2*p
1585                        SetDataFolder root:VSANS_file:entry1:sample:temperature_2               
1586                                        name    = "Sample temperature"
1587                                        attached_to     = "block"
1588                                        measurement     = "temperature"
1589                                SetDataFolder root:VSANS_file:entry1:sample:temperature_2:value_log             
1590                                                start   = "2015-02-28T08:15:30-5:00"
1591                                                nx_time = p
1592                                                value   = 3*p
1593                        SetDataFolder root:VSANS_file:entry1:sample:electric_field             
1594                                        name    = "electric meter"
1595                                        attached_to     = "sample"
1596                                        measurement     = "voltage"
1597                                SetDataFolder root:VSANS_file:entry1:sample:electric_field:value_log           
1598                                                start   = "2015-02-28T08:15:30-5:00"
1599                                                nx_time = 2*p
1600                                                value   = sin(p/10)
1601                        SetDataFolder root:VSANS_file:entry1:sample:shear_field         
1602                                        name    = "rheometer"
1603                                        attached_to     = "sample"
1604                                        measurement     = "stress"
1605                                SetDataFolder root:VSANS_file:entry1:sample:shear_field:value_log               
1606                                                start   = "2015-02-28T08:15:30-5:00"
1607                                                nx_time = p
1608                                                value   = cos(p/5)
1609                        SetDataFolder root:VSANS_file:entry1:sample:pressure           
1610                                        name    = "Sample pressure"
1611                                        attached_to     = "pressure cell"
1612                                        measurement     = "pressure"
1613                                SetDataFolder root:VSANS_file:entry1:sample:pressure:value_log         
1614                                                start   = "2015-02-28T08:15:30-5:00"
1615                                                nx_time = p
1616                                                value   = p/2
1617                        SetDataFolder root:VSANS_file:entry1:sample:magnetic_field             
1618                                        name    = "magnetic field (direction)"
1619                                        attached_to     = "cryostat"
1620                                        measurement     = "magnetic field"
1621                                SetDataFolder root:VSANS_file:entry1:sample:magnetic_field:value_log           
1622                                                start   = "2015-02-28T08:15:30-5:00"
1623                                                nx_time = p
1624                                                value   = 10*p
1625                        SetDataFolder root:VSANS_file:entry1:sample             
1626                                changer_position        = 5
1627                                sample_holder_description       = "10CB"
1628                        //WAVE  //mass  = 0.3
1629                        //WAVE  //density       = 1.02
1630                        //WAVE  //molecular_weight      = 194.19
1631                        //WAVE/T        //description   = "My Sample"
1632                        //WAVE/T        //preparation_date      = "2015-02-28T08:15:30-5:00"
1633                        //WAVE  //volume_fraction       = 0.2
1634                        //WAVE  //scattering_length_density     = 6.35e-6
1635                                thickness       = 0.1
1636                                rotation_angle  = 30
1637                                transmission    = 0.888
1638                                transmission_error      = 0.011
1639                        //WAVE  //xs_incoh      = 5.5
1640                        //WAVE  //xs_coh        = 22.2
1641                        //WAVE  //xs_absorb     = 3.1
1642                SetDataFolder root:VSANS_file:entry1:instrument         
1643                        //WAVE/T        //location      = "NCNR"
1644                                name    = "NG3-VSANS"
1645                                type    = "VSANS"
1646                                local_contact   = "Steve Kline"
1647                        SetDataFolder root:VSANS_file:entry1:instrument:source         
1648                                        name    = "NCNR"
1649                                        type    = "Reactor Neutron Source"
1650                                        probe   = "neutron"
1651                                        power   = 20
1652                                       
1653                        SetDataFolder root:VSANS_file:entry1:instrument:beam_monitor_norm               
1654                                        data    = 1234567
1655                                        type    = "monitor"
1656                                        efficiency      = 0.01
1657                                        nx_distance     = 16
1658                                        saved_count     = 1e8
1659                        SetDataFolder root:VSANS_file:entry1:instrument:beam_monitor_low               
1660                                        data    = 1234567
1661                                        type    = "monitor"
1662                                        efficiency      = 0.001
1663                                        nx_distance     = 16
1664                                        saved_count     = 1e8
1665                                       
1666                        SetDataFolder root:VSANS_file:entry1:instrument:monochromator           
1667                                        wavelength      = 5.1
1668                                        wavelength_spread       = 0.02
1669                                        type    = "VS"
1670                                SetDataFolder root:VSANS_file:entry1:instrument:monochromator:velocity_selector         
1671                                                status  = "in"
1672                                                rotation_speed  = 5100
1673                                                wavelength      = 6
1674                                                wavelength_spread       = 0.15
1675                                                vs_tilt = 3
1676                                                nx_distance     = 18.8
1677                                                // table (wave)
1678                                SetDataFolder root:VSANS_file:entry1:instrument:monochromator:crystal           
1679                                                status  = "in"
1680                                                nx_distance     = 1
1681                                                wavelength      = 5.1
1682                                                wavelength_spread       = 0.02
1683                                                rotation        = 1.1
1684                                                energy  = 1
1685                                                wavevector      = 1
1686                                                lattice_parameter       = 1
1687                                                reflection      = {1,2,3}
1688                                                horizontal_curvature    = 1
1689                                                vertical_curvature      = 1
1690                                                horizontal_aperture     = 1
1691                                                vertical_aperture       = 1
1692                                SetDataFolder root:VSANS_file:entry1:instrument:monochromator:white_beam               
1693                                                status  = "in"
1694                                                wavelength      = 5.1
1695                                                wavelength_spread       = 0.8
1696                                                // description_of_distribution 
1697                        SetDataFolder root:VSANS_file:entry1:instrument:chopper         
1698                                        status  = "in"
1699                                        type    = "single"
1700                                        rotation_speed  = 12000
1701                                        distance_from_source    = 400
1702                                        distance_from_sample    = 1500
1703                                        slits   = 2
1704                                        angular_opening = 15
1705                                        duty_cycle      = 0.25
1706                                        // +?   
1707                        SetDataFolder root:VSANS_file:entry1:instrument:polarizer               
1708                                        status  = "in"
1709                                        type    = "supermirror"
1710                                        composition     = "multilayer"
1711                                        efficiency      = 0.95
1712                                        status  = "in"
1713                        SetDataFolder root:VSANS_file:entry1:instrument:flipper         
1714                                        status  = "on"
1715                                        driving_current = 42
1716                                        waveform        = "sine"
1717                                        frequency       = 400
1718                                        transmitted_power       = 0.99
1719                        SetDataFolder root:VSANS_file:entry1:instrument:polarizer_analyzer             
1720                                        status  = "down"
1721                                        guide_field_current_1   = 33
1722                                        guide_field_current_2   = 32
1723                                        solenoid_current        = 21
1724                                        cell_index      = 1
1725                                        cell_names      = {"Burgundy","Olaf","Jim","Bob","Joe"}
1726                                        cell_parameters = 1
1727                                       
1728                        SetDataFolder root:VSANS_file:entry1:instrument:attenuator             
1729                                        nx_distance     = 1500
1730                                        type    = "PMMA"
1731                                        thickness       = 0
1732                                        attenuator_transmission = 1
1733                                        status  = "in"
1734                                        atten_number    = "0101"
1735                                        index   = 1
1736                        SetDataFolder root:VSANS_file:entry1:instrument:source_aperture         
1737                                        material        = "Gd"
1738                                        description     = "source aperture"
1739                                        diameter        = 1.27
1740                                        nx_distance     = 13.0
1741                                SetDataFolder root:VSANS_file:entry1:instrument:source_aperture:shape                   
1742                                                size    = 1.27
1743                        SetDataFolder root:VSANS_file:entry1:instrument:sample_aperture         
1744                                        material        = "Gd"
1745                                        description     = "sample aperture"
1746                                        diameter        = 1.27
1747                                        nx_distance     = 10
1748                                SetDataFolder root:VSANS_file:entry1:instrument:sample_aperture:shape                   
1749                                                size    = 1.27
1750                        SetDataFolder root:VSANS_file:entry1:instrument:collimator             
1751                                SetDataFolder root:VSANS_file:entry1:instrument:collimator:geometry             
1752                                        SetDataFolder root:VSANS_file:entry1:instrument:collimator:geometry:shape               
1753                                                        shape   = "box"
1754                                                        size    = 11
1755                                        nx_NumGuides    = 1
1756                        SetDataFolder root:VSANS_file:entry1:instrument:converging_pinholes             
1757                                        status  = "in"
1758                        SetDataFolder root:VSANS_file:entry1:instrument:converging_slits               
1759                                        status  = "in"
1760                        SetDataFolder root:VSANS_file:entry1:instrument:lenses         
1761                                        status  = "in"
1762                                        lens_geometry   = "concave_lens"
1763                                        focus_type      = "point"
1764                                        number_of_lenses        = 28
1765                                        number_of_prisms        = 7
1766                                        curvature       = 1
1767                                        lens_distance   = 123
1768                                        prism_distance  = 123
1769                                        lens_material   = "MgF2"
1770                                        prism_material  = "MgF2"
1771                        SetDataFolder root:VSANS_file:entry1:instrument:sample_table           
1772                                        location        = "chamber"
1773                                        offset_distance = 0
1774                        SetDataFolder root:VSANS_file:entry1:instrument:beam_stop               
1775                                        status  = "out"
1776                                        description     = "circular"
1777                                        nx_distance     = 12.5
1778                                        size    = 7.62
1779                                        xPos    = 66.4
1780                                        yPos    = 64.4
1781                                        x_motor_position        = 0.15
1782                                        y_motor_position        = 0.55
1783                                       
1784                        SetDataFolder root:VSANS_file:entry1:instrument:detector_B             
1785                                        data    = trunc(abs(gnoise(p+q)))
1786                                //WAVE  //data_error    = 0.01*abs(gnoise(p+q))
1787                                        nx_distance     = 21.1
1788                                        description     = "fancy model"
1789                                        settings        = "just right"
1790                                        dead_time       = 5e-6
1791                                        x_pixel_size    = 5.08
1792                                        y_pixel_size    = 5.08
1793                                        beam_center_x   = 165.55
1794                                        beam_center_y   = 162.33
1795                                        type    = "??"
1796                                //WAVE  //flatfield_applied     = 0
1797                                //WAVE  //countrate_correction_applied  = 0
1798                                        pixel_mask      = 0
1799                                        integrated_count        = 100111222
1800                                        lateral_offset  = 20
1801                                        PixelNumX       = 150
1802                                        PixelNumY       = 150
1803                                        PixelFWHM       = 0.5
1804                                        CALX    = {0.5,0.5,10000}
1805                                        CALY    = {0.5,0.5,10000}
1806                                        size    = 65
1807                                        event_file_name ="something.hst"
1808                        SetDataFolder root:VSANS_file:entry1:instrument:detector_MR                     
1809                                        data    = trunc(abs(gnoise(p+q)))
1810                                //WAVE  //data_error    = 0.01*abs(gnoise(p+q))
1811                                        nx_distance     = 13.1
1812                                        description     = "fancy model"
1813                                        settings        = "just right"
1814                                        dead_time       = 5e-6
1815                                        x_pixel_size    = 5.08
1816                                        y_pixel_size    = 5.08
1817                                        beam_center_x   = 65.55
1818                                        beam_center_y   = 62.33
1819                                        type    = "??"
1820                                //WAVE  //flatfield_applied     = 0
1821                                //WAVE  //countrate_correction_applied  = 0
1822                                        pixel_mask      = 0
1823                                        integrated_count        = 100111222
1824                                        lateral_offset  = 20
1825                                        separation      = 150
1826                                        PixelNumX       = 48
1827                                        PixelNumY       = 256
1828                                        PixelFWHM       = 0.5
1829                                        size    = 65
1830                                        event_file_name ="something.hst"
1831                                        tube_orientation        = "vertical"
1832                                        number_of_tubes = 48
1833                                        tube_index      = p
1834                                        spatial_calibration     = 1
1835                                        tube_width      = 8
1836                        SetDataFolder root:VSANS_file:entry1:instrument:detector_ML             
1837                                        data    = trunc(abs(gnoise(p+q)))
1838                                //WAVE  //data_error    = 0.01*abs(gnoise(p+q))
1839                                        nx_distance     = 13.1
1840                                        description     = "fancy model"
1841                                        settings        = "just right"
1842                                        dead_time       = 5e-6
1843                                        x_pixel_size    = 5.08
1844                                        y_pixel_size    = 5.08
1845                                        beam_center_x   = 65.55
1846                                        beam_center_y   = 62.33
1847                                        type    = "??"
1848                                //WAVE  //flatfield_applied     = 0
1849                                //WAVE  //countrate_correction_applied  = 0
1850                                        pixel_mask      = 0
1851                                        integrated_count        = 100111222
1852                                        lateral_offset  = 20
1853                                        separation      = 150
1854                                        PixelNumX       = 48
1855                                        PixelNumY       = 256
1856                                        PixelFWHM       = 0.5
1857                                        size    = 65
1858                                        event_file_name ="something.hst"
1859                                        tube_orientation        = "vertical"
1860                                        number_of_tubes = 48
1861                                        tube_index      = p
1862                                        spatial_calibration     = 1
1863                                        tube_width      = 8
1864                        SetDataFolder root:VSANS_file:entry1:instrument:detector_MT             
1865                                        data    = trunc(abs(gnoise(p+q)))
1866                                //WAVE  //data_error    = 0.01*abs(gnoise(p+q))
1867                                        nx_distance     = 13.4
1868                                        description     = "fancy model"
1869                                        settings        = "just right"
1870                                        dead_time       = 5e-6
1871                                        x_pixel_size    = 5.08
1872                                        y_pixel_size    = 5.08
1873                                        beam_center_x   = 65.55
1874                                        beam_center_y   = 62.33
1875                                        type    = "??"
1876                                //WAVE  //flatfield_applied     = 0
1877                                //WAVE  //countrate_correction_applied  = 0
1878                                        pixel_mask      = 0
1879                                        integrated_count        = 100111222
1880                                        lateral_offset  = 20
1881                                        sdd_offset      = 30
1882                                        separation      = 150
1883                                        PixelNumX       = 128
1884                                        PixelNumY       = 48
1885                                        PixelFWHM       = 0.5
1886                                        size    = 65
1887                                        event_file_name ="something.hst"
1888                                        tube_orientation        = "horizontal"
1889                                        number_of_tubes = 48
1890                                        tube_index      = p
1891                                        spatial_calibration     = 1
1892                                        tube_width      = 8
1893                        SetDataFolder root:VSANS_file:entry1:instrument:detector_MB             
1894                                        data    = trunc(abs(gnoise(p+q)))
1895                                //WAVE  //data_error    = 0.01*abs(gnoise(p+q))
1896                                        nx_distance     = 13.4
1897                                        description     = "fancy model"
1898                                        settings        = "just right"
1899                                        dead_time       = 5e-6
1900                                        x_pixel_size    = 5.08
1901                                        y_pixel_size    = 5.08
1902                                        beam_center_x   = 65.55
1903                                        beam_center_y   = 62.33
1904                                        type    = "??"
1905                                //WAVE  //flatfield_applied     = 0
1906                                //WAVE  //countrate_correction_applied  = 0
1907                                        pixel_mask      = 0
1908                                        integrated_count        = 100111222
1909                                        lateral_offset  = 20
1910                                        sdd_offset      = 30
1911                                        separation      = 150
1912                                        PixelNumX       = 128
1913                                        PixelNumY       = 48
1914                                        PixelFWHM       = 0.5
1915                                        size    = 65
1916                                        event_file_name ="something.hst"
1917                                        tube_orientation        = "horizontal"
1918                                        number_of_tubes = 48
1919                                        tube_index      = p
1920                                        spatial_calibration     = 1
1921                                        tube_width      = 8
1922                        SetDataFolder root:VSANS_file:entry1:instrument:detector_FR                     
1923                                        data    = trunc(abs(gnoise(p+q)))
1924                                //WAVE  //data_error    = 0.01*abs(gnoise(p+q))
1925                                        nx_distance     = 2.1
1926                                        description     = "fancy model"
1927                                        settings        = "just right"
1928                                        dead_time       = 5e-6
1929                                        x_pixel_size    = 5.08
1930                                        y_pixel_size    = 5.08
1931                                        beam_center_x   = 65.55
1932                                        beam_center_y   = 62.33
1933                                        type    = "??"
1934                                //WAVE  //flatfield_applied     = 0
1935                                //WAVE  //countrate_correction_applied  = 0
1936                                        pixel_mask      = 0
1937                                        integrated_count        = 100111222
1938                                        lateral_offset  = 20
1939                                        separation      = 150
1940                                        PixelNumX       = 48
1941                                        PixelNumY       = 256
1942                                        PixelFWHM       = 0.5
1943                                        size    = 65
1944                                        event_file_name ="something.hst"
1945                                        tube_orientation        = "vertical"
1946                                        number_of_tubes = 48
1947                                        tube_index      = p
1948                                        spatial_calibration     = 1
1949                                        tube_width      = 8
1950                        SetDataFolder root:VSANS_file:entry1:instrument:detector_FL             
1951                                        data    = trunc(abs(gnoise(p+q)))
1952                                //WAVE  //data_error    = 0.01*abs(gnoise(p+q))
1953                                        nx_distance     = 2.1
1954                                        description     = "fancy model"
1955                                        settings        = "just right"
1956                                        dead_time       = 5e-6
1957                                        x_pixel_size    = 5.08
1958                                        y_pixel_size    = 5.08
1959                                        beam_center_x   = 65.55
1960                                        beam_center_y   = 62.33
1961                                        type    = "??"
1962                                //WAVE  //flatfield_applied     = 0
1963                                //WAVE  //countrate_correction_applied  = 0
1964                                        pixel_mask      = 0
1965                                        integrated_count        = 100111222
1966                                        lateral_offset  = 20
1967                                        separation      = 150
1968                                        PixelNumX       = 48
1969                                        PixelNumY       = 256
1970                                        PixelFWHM       = 0.5
1971                                        size    = 65
1972                                        event_file_name ="something.hst"
1973                                        tube_orientation        = "vertical"
1974                                        number_of_tubes = 48
1975                                        tube_index      = p
1976                                        spatial_calibration     = 1
1977                                        tube_width      = 8
1978                        SetDataFolder root:VSANS_file:entry1:instrument:detector_FT             
1979                                        data    = trunc(abs(gnoise(p+q)))
1980                                //WAVE  //data_error    = 0.01*abs(gnoise(p+q))
1981                                        nx_distance     = 2.1
1982                                        description     = "fancy model"
1983                                        settings        = "just right"
1984                                        dead_time       = 5e-6
1985                                        x_pixel_size    = 5.08
1986                                        y_pixel_size    = 5.08
1987                                        beam_center_x   = 65.55
1988                                        beam_center_y   = 62.33
1989                                        type    = "??"
1990                                //WAVE  //flatfield_applied     = 0
1991                                //WAVE  //countrate_correction_applied  = 0
1992                                        pixel_mask      = 0
1993                                        integrated_count        = 100111222
1994                                        lateral_offset  = 20
1995                                        sdd_offset      = 30
1996                                        separation      = 150
1997                                        PixelNumX       = 128
1998                                        PixelNumY       = 48
1999                                        PixelFWHM       = 0.5
2000                                        size    = 65
2001                                        event_file_name ="something.hst"
2002                                        tube_orientation        = "horizontal"
2003                                        number_of_tubes = 48
2004                                        tube_index      = p
2005                                        spatial_calibration     = 1
2006                                        tube_width      = 8
2007                        SetDataFolder root:VSANS_file:entry1:instrument:detector_FB             
2008                                        data    = trunc(abs(gnoise(p+q)))
2009                                //WAVE  //data_error    = 0.01*abs(gnoise(p+q))
2010                                        nx_distance     = 2.1
2011                                        description     = "fancy model"
2012                                        settings        = "just right"
2013                                        dead_time       = 5e-6
2014                                        x_pixel_size    = 5.08
2015                                        y_pixel_size    = 5.08
2016                                        beam_center_x   = 65.55
2017                                        beam_center_y   = 62.33
2018                                        type    = "??"
2019                                //WAVE  //flatfield_applied     = 0
2020                                //WAVE  //countrate_correction_applied  = 0
2021                                        pixel_mask      = 0
2022                                        integrated_count        = 100111222
2023                                        lateral_offset  = 20
2024                                        sdd_offset      = 30
2025                                        separation      = 150
2026                                        PixelNumX       = 128
2027                                        PixelNumY       = 48
2028                                        PixelFWHM       = 0.5
2029                                        size    = 65
2030                                        event_file_name ="something.hst"
2031                                        tube_orientation        = "horizontal"
2032                                        number_of_tubes = 48
2033                                        tube_index      = p
2034                                        spatial_calibration     = 1
2035                                        tube_width      = 8
2036                                       
2037                                       
2038                SetDataFolder root:VSANS_file:entry1:data_B             
2039                                data    = trunc(abs(gnoise(p+q)))
2040                        //WAVE  //error = 0.01*abs(gnoise(p+q))
2041                                variables       = {150,150}
2042                                data_image      = p
2043                SetDataFolder root:VSANS_file:entry1:data_MR           
2044                                data    = trunc(abs(gnoise(p+q)))
2045                        //WAVE  //error = 0.01*abs(gnoise(p+q))
2046                                variables       = {48,256}
2047                                data_image      = p
2048                SetDataFolder root:VSANS_file:entry1:data_ML           
2049                                data    = trunc(abs(gnoise(p+q)))
2050                        //WAVE  //error = 0.01*abs(gnoise(p+q))
2051                                variables       = {48,256}
2052                                data_image      = p
2053                SetDataFolder root:VSANS_file:entry1:data_MT           
2054                                data    = trunc(abs(gnoise(p+q)))
2055                        //WAVE  //error = 0.01*abs(gnoise(p+q))
2056                                variables       = {128,48}
2057                                data_image      = p
2058                SetDataFolder root:VSANS_file:entry1:data_MB           
2059                                data    = trunc(abs(gnoise(p+q)))
2060                        //WAVE  //error = 0.01*abs(gnoise(p+q))
2061                                variables       = {128,48}
2062                                data_image      = p
2063                SetDataFolder root:VSANS_file:entry1:data_FR           
2064                                data    = trunc(abs(gnoise(p+q)))
2065                        //WAVE  //error = 0.01*abs(gnoise(p+q))
2066                                variables       = {48,256}
2067                                data_image      = p
2068                SetDataFolder root:VSANS_file:entry1:data_FL           
2069                                data    = trunc(abs(gnoise(p+q)))
2070                        //WAVE  //error = 0.01*abs(gnoise(p+q))
2071                                variables       = {48,256}
2072                                data_image      = p
2073                SetDataFolder root:VSANS_file:entry1:data_FT           
2074                                data    = trunc(abs(gnoise(p+q)))
2075                        //WAVE  //error = 0.01*abs(gnoise(p+q))
2076                                variables       = {128,48}
2077                                data_image      = p
2078                SetDataFolder root:VSANS_file:entry1:data_FB           
2079                                data    = trunc(abs(gnoise(p+q)))
2080                        //WAVE  //error = 0.01*abs(gnoise(p+q))
2081                                variables       = {128,48}
2082                                data_image      = p
2083                               
2084                SetDataFolder root:VSANS_file:entry1:reduction         
2085                                intent  = "SCATTER"
2086                                transmission_file_name  = "SANSFile_TRN.h5"
2087                                empty_beam_file_name    = "SANSFile_EB.h5"
2088                                background_file_name    = "SANSFile_BKG.h5"
2089                                empty_file_name = "SANSFile_EMP.h5"
2090                                sensitivity_file_name   = "SANSFile_DIV.h5"
2091                                mask_file_name  = "SANSFile_MASK.h5"
2092                                sans_log_file_name      = "SANSFile_log.txt"
2093                                whole_trans     = 0.888
2094                                whole_trans_error       = 0.008
2095                                box_count       = 23232
2096                                box_count_error = 22
2097                                box_coordinates = {50,80,45,75}
2098                                comments        = "extra data comments"
2099                                absolute_scaling        = {1,1,1e5,1}
2100                        SetDataFolder root:VSANS_file:entry1:reduction:pol_sans                 
2101                                        pol_sans_purpose        = "name from the list"
2102                                        cell_name       = "Burgundy"
2103                                        cell_parameters = {1,2,3,4,5}
2104                                               
2105        SetDataFolder root:VSANS_file:DAS_Logs         
2106                        //...multiple entries and levels... to add     
2107                        //this will be enormous
2108
2109
2110
2111
2112
2113
2114
2115///// DO NOT DELETE WHAT IS BELOW THIS LINE  /////////////
2116
2117///////////////////////////
2118//
2119// these are all of the VCALC changes to the simulated files. ADD to these as needed, making these changes to the
2120// folder structure after the "default" values have been re-filled in the waves (to make sure something is really there)
2121//
2122////////////////////////
2123                               
2124                        SetDataFolder root:VSANS_file:entry1:instrument         
2125                                SetDataFolder root:VSANS_file:entry1:instrument:monochromator           
2126                                        wavelength      = VCALC_getWavelength()
2127                                        SetDataFolder root:VSANS_file:entry1:instrument:monochromator:velocity_selector         
2128                                                wavelength      = VCALC_getWavelength()
2129                                                //      table (wave)   
2130                                        SetDataFolder root:VSANS_file:entry1:instrument:monochromator:crystal           
2131                                                wavelength      = VCALC_getWavelength()
2132                                               
2133                                        SetDataFolder root:VSANS_file:entry1:instrument:monochromator:white_beam               
2134                                                wavelength      = VCALC_getWavelength()
2135                                                //      description_of_distribution
2136                                       
2137
2138                                       
2139                        SetDataFolder root:VSANS_file:entry1:instrument:detector_B             
2140                                data    = root:Packages:NIST:VSANS:VCALC:Back:det_B
2141                                nx_distance     = VCALC_getSDD("B")
2142
2143                        SetDataFolder root:VSANS_file:entry1:instrument:detector_MR                     
2144                                data    = root:Packages:NIST:VSANS:VCALC:Middle:det_MR
2145                                nx_distance     = VCALC_getSDD("MR")
2146                                separation      = VCALC_getPanelSeparation("MR")
2147                                spatial_calibration[0][] = 1.072
2148                                spatial_calibration[1][] = -4.0e-5
2149                               
2150                        SetDataFolder root:VSANS_file:entry1:instrument:detector_ML             
2151                                data    = root:Packages:NIST:VSANS:VCALC:Middle:det_ML
2152                                nx_distance     = VCALC_getSDD("ML")
2153                                separation = VCALC_getPanelSeparation("ML")
2154                                spatial_calibration[0][] = 1.072
2155                                spatial_calibration[1][] = -4.0e-5
2156
2157                        SetDataFolder root:VSANS_file:entry1:instrument:detector_MT             
2158                                data    = root:Packages:NIST:VSANS:VCALC:Middle:det_MT
2159                                nx_distance     = VCALC_getSDD("MT")
2160                                sdd_offset = VCALC_getTopBottomSDDOffset("MT")
2161                                separation = VCALC_getPanelSeparation("MT")
2162                                spatial_calibration[0][] = 1.072
2163                                spatial_calibration[1][] = -4.0e-5
2164
2165                        SetDataFolder root:VSANS_file:entry1:instrument:detector_MB             
2166                                data    = root:Packages:NIST:VSANS:VCALC:Middle:det_MB
2167                                nx_distance     = VCALC_getSDD("MB")
2168                                sdd_offset = VCALC_getTopBottomSDDOffset("MB")
2169                                separation = VCALC_getPanelSeparation("MB")
2170                                spatial_calibration[0][] = 1.072
2171                                spatial_calibration[1][] = -4.0e-5
2172
2173                        SetDataFolder root:VSANS_file:entry1:instrument:detector_FR                     
2174                                data    = root:Packages:NIST:VSANS:VCALC:Front:det_FR
2175                                nx_distance     = VCALC_getSDD("FR")
2176                                separation = VCALC_getPanelSeparation("FR")
2177                                spatial_calibration[0][] = 1.072
2178                                spatial_calibration[1][] = -4.0e-5
2179
2180                        SetDataFolder root:VSANS_file:entry1:instrument:detector_FL             
2181                                data    = root:Packages:NIST:VSANS:VCALC:Front:det_FL
2182                                nx_distance     = VCALC_getSDD("FL")
2183                                separation = VCALC_getPanelSeparation("FL")
2184                                spatial_calibration[0][] = 1.072
2185                                spatial_calibration[1][] = -4.0e-5
2186
2187                        SetDataFolder root:VSANS_file:entry1:instrument:detector_FT             
2188                                data    = root:Packages:NIST:VSANS:VCALC:Front:det_FT
2189                                nx_distance     = VCALC_getSDD("FT")
2190                                sdd_offset = VCALC_getTopBottomSDDOffset("FT")
2191                                separation = VCALC_getPanelSeparation("FT")
2192                                spatial_calibration[0][] = 1.072
2193                                spatial_calibration[1][] = -4.0e-5
2194
2195                        SetDataFolder root:VSANS_file:entry1:instrument:detector_FB             
2196                                data    = root:Packages:NIST:VSANS:VCALC:Front:det_FB
2197                                nx_distance     = VCALC_getSDD("FB")
2198                                sdd_offset = VCALC_getTopBottomSDDOffset("FB")
2199                                separation = VCALC_getPanelSeparation("FB")
2200                                spatial_calibration[0][] = 1.072
2201                                spatial_calibration[1][] = -4.0e-5
2202
2203                                       
2204// SRK -set the top level copies of the data                                   
2205                SetDataFolder root:VSANS_file:entry1:data_B     
2206                        data    = root:Packages:NIST:VSANS:VCALC:Back:det_B
2207
2208                SetDataFolder root:VSANS_file:entry1:data_MR   
2209                        data    = root:Packages:NIST:VSANS:VCALC:Middle:det_MR
2210                       
2211                SetDataFolder root:VSANS_file:entry1:data_ML   
2212                        data    = root:Packages:NIST:VSANS:VCALC:Middle:det_ML
2213                       
2214                SetDataFolder root:VSANS_file:entry1:data_MT   
2215                        data    = root:Packages:NIST:VSANS:VCALC:Middle:det_MT
2216                        data    = (data ==   2147483647) ? 0 : data             //the NaN "mask" in the sim data shows up as an ugly integer
2217                       
2218                SetDataFolder root:VSANS_file:entry1:data_MB   
2219                        data    = root:Packages:NIST:VSANS:VCALC:Middle:det_MB
2220                        data    = (data ==   2147483647) ? 0 : data             //the NaN "mask" in the sim data shows up as an ugly integer
2221                       
2222                SetDataFolder root:VSANS_file:entry1:data_FR   
2223                        data    = root:Packages:NIST:VSANS:VCALC:Front:det_FR
2224                       
2225                SetDataFolder root:VSANS_file:entry1:data_FL   
2226                        data    = root:Packages:NIST:VSANS:VCALC:Front:det_FL
2227                       
2228                SetDataFolder root:VSANS_file:entry1:data_FT   
2229                        data    = root:Packages:NIST:VSANS:VCALC:Front:det_FT
2230                        data    = (data ==   2147483647) ? 0 : data             //the NaN "mask" in the sim data shows up as an ugly integer
2231                       
2232                SetDataFolder root:VSANS_file:entry1:data_FB   
2233                        data    = root:Packages:NIST:VSANS:VCALC:Front:det_FB
2234                        data    = (data ==   2147483647) ? 0 : data             //the NaN "mask" in the sim data shows up as an ugly integer
2235                       
2236                               
2237//              SetDataFolder root:VSANS_file:entry1:reduction         
2238//                      intent  = "SCATTER"
2239//                      transmission_file_name  = "SANSFile_TRN.h5"
2240//                      empty_beam_file_name    = "SANSFile_EB.h5"
2241//                      background_file_name    = "SANSFile_BKG.h5"
2242//                      empty_file_name = "SANSFile_EMP.h5"
2243//                      sensitivity_file_name   = "SANSFile_DIV.h5"
2244//                      mask_file_name  = "SANSFile_MASK.h5"
2245//                      sans_log_file_name      = "SANSFile_log.txt"
2246//                      whole_trans     = 0.888
2247//                      whole_trans_error       = 0.008
2248//                      box_count       = 23232
2249//                      box_count_error = 22
2250//                      box_coordinates = {50,80,45,75}
2251//                      comments        = "extra data comments"
2252//                      absolute_scaling        = {1,1,1e5,1}
2253//                      SetDataFolder root:VSANS_file:entry1:reduction:pol_sans                 
2254//                              pol_sans_purpose        = "name from the list"
2255//                              cell_name       = "Burgundy"
2256//                              cell_parameters = {1,2,3,4,5}
2257                                       
2258
2259        SetDataFolder root:
2260
2261End
2262
2263
2264
2265
2266
2267////////////////// SANS-specific functions
2268
2269
2270
2271//
2272// lays out the tree and fills with dummy values
2273//
2274Proc H_Setup_SANS_Structure()
2275       
2276        Variable n=100
2277       
2278NewDataFolder/O/S root:SANS_file       
2279        Make/O/T/N=1    file_name       = "SANSTest.h5"
2280        Make/O/T/N=1    file_time       = "2015-02-28T08:15:30-5:00"
2281        Make/O/T/N=1    facility        = "NCNR"
2282        Make/O/T/N=1    NeXus_version   = "Nexus 0.0"
2283        Make/O/T/N=1    hdf_version     = "hdf5.x"
2284        Make/O/T/N=1    file_history    = "history log"
2285        NewDataFolder/O/S  root:SANS_file:entry1               
2286                Make/O/T/N=1    title   = "title of entry1"
2287                Make/O/D/N=1    experiment_identifier   = 684636
2288                Make/O/T/N=1    experiment_description  = "description of expt"
2289                Make/O/T/N=1    entry_identifier        = "S22-33"
2290                Make/O/T/N=1    definition      = "NXsas"
2291                Make/O/T/N=1    start_time      = "2015-02-28T08:15:30-5:00"
2292                Make/O/T/N=1    end_time        = "2015-02-28T08:15:30-5:00"
2293                Make/O/D/N=1    duration        = 300
2294                Make/O/D/N=1    collection_time = 300
2295                Make/O/T/N=1    run_cycle       = "S22-23"
2296                Make/O/T/N=1    data_directory  = "[NG7SANS41]"
2297                Make/O/T/N=1    program_name    = "runPoint={stuff}"
2298                NewDataFolder/O/S  root:SANS_file:entry1:user           
2299                        Make/O/T/N=1    name    = "Dr. Pi"
2300                        Make/O/T/N=1    role    = "evil scientist"
2301                        Make/O/T/N=1    affiliation     = "NIST"
2302                        Make/O/T/N=1    address = "100 Bureau Drive"
2303                        Make/O/T/N=1    telephoneNumber = "301-999-9999"
2304                        Make/O/T/N=1    faxNumber       = "301-999-9999"
2305                        Make/O/T/N=1    email   = "sans@nist"
2306                        Make/O/I/N=1    facility_user_id        = 6937596
2307                NewDataFolder/O/S  root:SANS_file:entry1:control               
2308                        Make/O/T/N=1    mode    = "timer"
2309                        Make/O/D/N=1    preset  = 555
2310                        Make/O/D/N=1    integral        = 555
2311                        Make/O/D/N=1    monitor_counts  = 666
2312                        Make/O/D/N=1    monitor_preset  = 1e8
2313                        Make/O/D/N=1    detector_counts = 100111222
2314                        Make/O/D/N=1    detector_preset = 1e5
2315//                      Make/O/T/N=1    type    = "monitor type"
2316//                      Make/O/D/N=1    efficiency      = 0.01
2317//                      Make/O/D/N=1    sampled_fraction        = 1
2318                        Make/O/D/N=1    count_start     = 1
2319                        Make/O/D/N=1    count_end       = 1
2320                        Make/O/D/N=1    count_time      = 1
2321                        Make/O/D/N=1    count_time_preset       = 1
2322//              NewDataFolder/O/S  root:SANS_file:entry1:program_name           
2323//                      Make/O/T/N=1    data    = "program data"
2324//                      Make/O/T/N=1    description     = "acquisition"
2325//                      Make/O/T/N=1    file_name       = "NICE"
2326//                      Make/O/T/N=1    type    = "client"
2327                NewDataFolder/O/S  root:SANS_file:entry1:sample         
2328                        Make/O/T/N=1    description     = "My Sample"
2329                        Make/O/D/N=1    group_id        = 12345
2330//                      Make/O/T/N=1    chemical_formula        = "C8H10N4O2"
2331                        NewDataFolder/O/S  root:SANS_file:entry1:sample:temperature_1           
2332                                Make/O/T/N=1    name    = "Sample temperature"
2333                                Make/O/T/N=1    attached_to     = "block"
2334                                Make/O/T/N=1    measurement     = "temperature"
2335                                NewDataFolder/O/S  root:SANS_file:entry1:sample:temperature_1:value_log         
2336                                        Make/O/T/N=1    start   = "2015-02-28T08:15:30-5:00"
2337                                        Make/O/D/N=(n)  nx_time = p
2338                                        Make/O/D/N=(n)  value   = 2*p
2339                        NewDataFolder/O/S  root:SANS_file:entry1:sample:temperature_2           
2340                                Make/O/T/N=1    name    = "Sample temperature"
2341                                Make/O/T/N=1    attached_to     = "block"
2342                                Make/O/T/N=1    measurement     = "temperature"
2343                                NewDataFolder/O/S  root:SANS_file:entry1:sample:temperature_2:value_log         
2344                                        Make/O/T/N=1    start   = "2015-02-28T08:15:30-5:00"
2345                                        Make/O/D/N=(n)  nx_time = p
2346                                        Make/O/D/N=(n)  value   = 3*p
2347                        NewDataFolder/O/S  root:SANS_file:entry1:sample:electric_field         
2348                                Make/O/T/N=1    name    = "electric meter"
2349                                Make/O/T/N=1    attached_to     = "sample"
2350                                Make/O/T/N=1    measurement     = "voltage"
2351                                NewDataFolder/O/S  root:SANS_file:entry1:sample:electric_field:value_log               
2352                                        Make/O/T/N=1    start   = "2015-02-28T08:15:30-5:00"
2353                                        Make/O/D/N=(n)  nx_time = 2*p
2354                                        Make/O/D/N=(n)  value   = sin(p/10)
2355                        NewDataFolder/O/S  root:SANS_file:entry1:sample:shear_field             
2356                                Make/O/T/N=1    name    = "rheometer"
2357                                Make/O/T/N=1    attached_to     = "sample"
2358                                Make/O/T/N=1    measurement     = "stress"
2359                                NewDataFolder/O/S  root:SANS_file:entry1:sample:shear_field:value_log           
2360                                        Make/O/T/N=1    start   = "2015-02-28T08:15:30-5:00"
2361                                        Make/O/D/N=(n)  nx_time = p
2362                                        Make/O/D/N=(n)  value   = cos(p/5)
2363                        NewDataFolder/O/S  root:SANS_file:entry1:sample:pressure               
2364                                Make/O/T/N=1    name    = "Sample pressure"
2365                                Make/O/T/N=1    attached_to     = "pressure cell"
2366                                Make/O/T/N=1    measurement     = "pressure"
2367                                NewDataFolder/O/S  root:SANS_file:entry1:sample:pressure:value_log             
2368                                        Make/O/T/N=1    start   = "2015-02-28T08:15:30-5:00"
2369                                        Make/O/D/N=(n)  nx_time = p
2370                                        Make/O/D/N=(n)  value   = p/2
2371                        NewDataFolder/O/S  root:SANS_file:entry1:sample:magnetic_field         
2372                                Make/O/T/N=1    name    = "magnetic field (direction)"
2373                                Make/O/T/N=1    attached_to     = "cryostat"
2374                                Make/O/T/N=1    measurement     = "magnetic field"
2375                                NewDataFolder/O/S  root:SANS_file:entry1:sample:magnetic_field:value_log               
2376                                        Make/O/T/N=1    start   = "2015-02-28T08:15:30-5:00"
2377                                        Make/O/D/N=(n)  nx_time = p
2378                                        Make/O/D/N=(n)  value   = 10*p
2379                        SetDataFolder  root:SANS_file:entry1:sample             
2380                        Make/O/D/N=1    changer_position        = 5
2381                        Make/O/T/N=1    sample_holder_description       = "10CB"
2382//                      Make/O/D/N=1    mass    = 0.3
2383//                      Make/O/D/N=1    density = 1.02
2384//                      Make/O/D/N=1    molecular_weight        = 194.19
2385//                      Make/O/T/N=1    description     = "My Sample"
2386//                      Make/O/T/N=1    preparation_date        = "2015-02-28T08:15:30-5:00"
2387//                      Make/O/D/N=1    volume_fraction = 0.2
2388//                      Make/O/D/N=1    scattering_length_density       = 6.35e-6
2389                        Make/O/D/N=1    thickness       = 0.1
2390                        Make/O/D/N=1    rotation_angle  = 30
2391                        Make/O/D/N=1    transmission    = 0.888
2392                        Make/O/D/N=1    transmission_error      = 0.011
2393//                      Make/O/D/N=1    xs_incoh        = 5.5
2394//                      Make/O/D/N=1    xs_coh  = 22.2
2395//                      Make/O/D/N=1    xs_absorb       = 3.1
2396                NewDataFolder/O/S  root:SANS_file:entry1:instrument             
2397//                      Make/O/T/N=1    location        = "NCNR"
2398                        Make/O/T/N=1    name    = "NGB30mSANS"
2399                        Make/O/T/N=1    type    = "30 m SANS"
2400                        Make/O/T/N=1    local_contact   = "Steve Kline"
2401                        NewDataFolder/O/S  root:SANS_file:entry1:instrument:source             
2402                                Make/O/T/N=1    name    = "NCNR"
2403                                Make/O/T/N=1    type    = "Reactor Neutron Source"
2404                                Make/O/T/N=1    probe   = "neutron"
2405                                Make/O/D/N=1    power   = 20
2406                        NewDataFolder/O/S root:SANS_file:entry1:instrument:beam_monitor         
2407                                Make/O/D/N=1    data    = 1234567
2408                                Make/O/T/N=1    type    = "monitor"
2409                                Make/O/D/N=1    efficiency      = 0.01
2410                                Make/O/D/N=1    nx_distance     = 16
2411                                Make/O/D/N=1    saved_count     = 1e8
2412                        NewDataFolder/O/S  root:SANS_file:entry1:instrument:monochromator               
2413                                Make/O/D/N=1    wavelength      = 6
2414                                Make/O/D/N=1    wavelength_spread       = 0.15
2415                                Make/O/T/N=1    type    = "VS"
2416                                NewDataFolder/O/S  root:SANS_file:entry1:instrument:monochromator:velocity_selector             
2417                                        Make/O/D/N=1    rotation_speed  = 5100
2418                                        Make/O/D/N=1    wavelength      = 6
2419                                        Make/O/D/N=1    wavelength_spread       = 0.15
2420                                        Make/O/D/N=1    vs_tilt = 3
2421                                        Make/O/D/N=1    nx_distance     = 18.8
2422                                                //table
2423                        NewDataFolder/O/S  root:SANS_file:entry1:instrument:polarizer           
2424                                Make/O/T/N=1    type    = "supermirror"
2425                                Make/O/T/N=1    composition     = "multilayer"
2426                                Make/O/D/N=1    efficiency      = 0.95
2427                                Make/O/T/N=1    status  = "in"
2428                        NewDataFolder/O/S  root:SANS_file:entry1:instrument:flipper             
2429                                Make/O/T/N=1    status  = "on"
2430                                Make/O/D/N=1    driving_current = 42
2431                                Make/O/T/N=1    waveform        = "sine"
2432                                Make/O/D/N=1    frequency       = 400
2433                                Make/O/D/N=1    transmitted_power       = 0.99
2434                        NewDataFolder/O/S  root:SANS_file:entry1:instrument:polarizer_analyzer         
2435                                Make/O/T/N=1    status  = "down"
2436                                Make/O/D/N=1    guide_field_current_1   = 33
2437                                Make/O/D/N=1    guide_field_current_2   = 32
2438                                Make/O/D/N=1    solenoid_current        = 21
2439                                Make/O/D/N=1    cell_index      = 1
2440                                Make/O/T/N=(5)  cell_names      = {"Burgundy","Olaf","Jim","Bob","Joe"}
2441                                Make/O/D/N=(5,2)        cell_parameters = 1
2442                        NewDataFolder/O/S  root:SANS_file:entry1:instrument:chopper             
2443                                Make/O/T/N=1    type    = "single"
2444                                Make/O/T/N=1    status  = "in"
2445                                Make/O/D/N=1    rotation_speed  = 12000
2446                                Make/O/D/N=1    distance_from_source    = 400
2447                                Make/O/D/N=1    distance_from_sample    = 1500
2448                                Make/O/D/N=1    slits   = 2
2449                                Make/O/D/N=1    angular_opening = 15
2450                                Make/O/D/N=1    duty_cycle      = 0.25
2451                        NewDataFolder/O/S  root:SANS_file:entry1:instrument:attenuator         
2452                                Make/O/D/N=1    nx_distance     = 1500
2453                                Make/O/T/N=1    type    = "PMMA"
2454                                Make/O/D/N=1    thickness       = 0
2455                                Make/O/D/N=1    attenuator_transmission = 1
2456                                Make/O/T/N=1    status  = "in"
2457                                Make/O/D/N=1    atten_number    = 0
2458                                Make/O/D/N=(10,10)      index   = 1
2459                        NewDataFolder/O/S  root:SANS_file:entry1:instrument:source_aperture             
2460//                              Make/O/T/N=1    material        = "Gd"
2461                                Make/O/T/N=1    description     = "source aperture"
2462                                Make/O/D/N=1    diameter        = 1.27
2463                                Make/O/D/N=1    nx_distance     = 13.0
2464                                NewDataFolder/O/S  root:SANS_file:entry1:instrument:source_aperture:shape               
2465                                        Make/O/D/N=(1,2)        size    = 1.27
2466                        NewDataFolder/O/S  root:SANS_file:entry1:instrument:sample_aperture             
2467//                              Make/O/T/N=1    material        = "Gd"
2468                                Make/O/T/N=1    description     = "sample aperture"
2469                                Make/O/D/N=1    diameter        = 1.27
2470                                Make/O/D/N=1    nx_distance     = 10
2471                                NewDataFolder/O/S  root:SANS_file:entry1:instrument:sample_aperture:shape               
2472                                        Make/O/D/N=(1,2)        size    = 1.27
2473                        NewDataFolder/O/S  root:SANS_file:entry1:instrument:collimator         
2474                                NewDataFolder/O/S root:SANS_file:entry1:instrument:collimator:geometry         
2475                                        NewDataFolder/O/S root:SANS_file:entry1:instrument:collimator:geometry:shape           
2476                                                Make/O/T/N=1    shape   = "box"
2477                                                Make/O/D/N=1    size    = 11
2478                                Make/O/I/N=1    nx_NumGuides    = 1
2479                        NewDataFolder/O/S  root:SANS_file:entry1:instrument:lenses             
2480                                Make/O/T/N=1    status  = "in"
2481                                Make/O/T/N=1    lens_geometry   = "concave_lens"
2482                                Make/O/T/N=1    focus_type      = "point"
2483                                Make/O/I/N=1    number_of_lenses        = 28
2484                                Make/O/I/N=1    number_of_prisms        = 7
2485                                Make/O/D/N=1    curvature       = 1
2486                                Make/O/D/N=1    lens_distance   = 123
2487                                Make/O/D/N=1    prism_distance  = 123
2488                                Make/O/T/N=1    lens_material   = "MgF2"
2489                                Make/O/T/N=1    prism_material  = "MgF2"
2490                        NewDataFolder/O/S  root:SANS_file:entry1:instrument:sample_table               
2491                                Make/O/T/N=1    location        = "chamber"
2492                                Make/O/D/N=1    offset_distance = 0
2493                        NewDataFolder/O/S  root:SANS_file:entry1:instrument:beam_stop           
2494                                Make/O/T/N=1    description     = "circular"
2495                                Make/O/D/N=1    nx_distance     = 12.5
2496                                Make/O/D/N=1    size    = 7.62
2497                                Make/O/T/N=1    status  = "out"
2498                                Make/O/D/N=1    xPos    = 66.4
2499                                Make/O/D/N=1    yPos    = 64.4
2500                                Make/O/D/N=1    x_motor_position        = 0.15
2501                                Make/O/D/N=1    y_motor_position        = 0.55
2502                        NewDataFolder/O/S  root:SANS_file:entry1:instrument:detector           
2503                                Make/O/I/N=(128,128)    data    = trunc(abs(gnoise(p+q)))
2504//                              Make/O/D/N=(128,128)    data_error      = 0.01*abs(gnoise(p+q))
2505                                Make/O/D/N=1    nx_distance     = 13.1
2506                                Make/O/T/N=1    description     = "Ordela 2660N"
2507                                Make/O/T/N=1    settings        = "just right"
2508                                Make/O/D/N=1    dead_time       = 5e-6
2509                                Make/O/D/N=1    x_pixel_size    = 5.08
2510                                Make/O/D/N=1    y_pixel_size    = 5.08
2511                                Make/O/D/N=1    beam_center_x   = 65.55
2512                                Make/O/D/N=1    beam_center_y   = 62.33
2513                                Make/O/T/N=1    type    = "Ordela"
2514//                              Make/O/D/N=1    flatfield_applied       = 0
2515//                              Make/O/D/N=1    countrate_correction_applied    = 0
2516                                Make/O/D/N=(128,128)    pixel_mask      = 0
2517                                Make/O/I/N=1    integrated_count        = 100111222
2518                                Make/O/D/N=1    lateral_offset  = 20
2519                                Make/O/I/N=1    PixelNumX       = 128
2520                                Make/O/I/N=1    PixelNumY       = 128
2521                                Make/O/D/N=1    PixelFWHM       = 0.5
2522                                        //calibration_method   
2523                                Make/O/D/N=3    CALX    = {0.5,0.5,10000}
2524                                Make/O/D/N=3    CALY    = {0.5,0.5,10000}
2525                                Make/O/D/N=1    size    = 65
2526                                Make/O/T/N=1    event_file_name ="something.hst"
2527                NewDataFolder/O/S  root:SANS_file:entry1:data           
2528                        Make/O/I/N=(128,128)    data    = trunc(abs(gnoise(p+q)))
2529//                      Make/O/D/N=(128,128)    error   = 0.01*abs(gnoise(p+q))
2530                        Make/O/D/N=2    variables       = {128,128}
2531                        Make/O/I/N=(128,128)    data_image      = p
2532                NewDataFolder/O/S  root:SANS_file:entry1:reduction             
2533                        Make/O/T/N=1    intent  = "SCATTER"
2534                        Make/O/T/N=1    transmission_file_name  = "SANSFile_TRN.h5"
2535                        Make/O/T/N=1    empty_beam_file_name    = "SANSFile_EB.h5"
2536                        Make/O/T/N=1    background_file_name    = "SANSFile_BKG.h5"
2537                        Make/O/T/N=1    empty_file_name = "SANSFile_EMP.h5"
2538                        Make/O/T/N=1    sensitivity_file_name   = "SANSFile_DIV.h5"
2539                        Make/O/T/N=1    mask_file_name  = "SANSFile_MASK.h5"
2540                        Make/O/T/N=1    sans_log_file_name      = "SANSFile_log.txt"
2541                        Make/O/D/N=1    whole_trans     = 0.888
2542                        Make/O/D/N=1    whole_trans_error       = 0.008
2543                        Make/O/D/N=1    box_count       = 23232
2544                        Make/O/D/N=1    box_count_error = 22
2545                        Make/O/I/N=4    box_coordinates = {50,80,45,75}
2546                        Make/O/T/N=1    comments        = "extra data comments"
2547                        Make/O/D/N=4    absolute_scaling        = {1,1,1e5,1}
2548                        NewDataFolder/O/S  root:SANS_file:entry1:reduction:pol_sans             
2549                                Make/O/T/N=1    pol_sans_purpose        = "name from the list"
2550                                Make/O/T/N=1    cell_name       = "Burgundy"
2551                                Make/O/D/N=(5)  cell_parameters = {1,2,3,4,5}
2552                                               
2553
2554        NewDataFolder/O/S  root:SANS_file:DAS_Logs             
2555                        //...multiple entries and levels... to add     
2556
2557        SetDataFolder root:
2558       
2559End
2560
2561
2562
2563
2564Proc H_Fill_SANS_Attributes()
2565
2566SetDataFolder  root:SANS_file           
2567        Make/O/N=0 Igor___folder_attributes     
2568        Note/K Igor___folder_attributes, "producer=IgorPro\rNX_class=NXroot"
2569        //      file_name               
2570        //      file_time               
2571        //      facility               
2572        //      NeXus_version           
2573        //      hdf_version             
2574        //      file_history           
2575        SetDataFolder  root:SANS_file:entry1           
2576                Make/O/N=0 Igor___folder_attributes     
2577                Note/K Igor___folder_attributes, "NX_class=NXentry"
2578                //      title           
2579                //      experiment_identifier           
2580                //      experiment_description         
2581                //      entry_identifier               
2582                //      definition             
2583                //      start_time             
2584                //      end_time               
2585                //      duration               
2586                Note/K duration, "units=s"
2587                //      collection_time         
2588                Note/K collection_time, "units=s"
2589                //      run_cycle               
2590                //      data_directory         
2591                //      program_name           
2592                SetDataFolder  root:SANS_file:entry1:user               
2593                        Make/O/N=0 Igor___folder_attributes     
2594                        Note/K Igor___folder_attributes, "NX_class=NXuser"
2595                        //      name           
2596                        //      role           
2597                        //      affiliation             
2598                        //      address         
2599                        //      telephoneNumber         
2600                        //      faxNumber               
2601                        //      email           
2602                        //      facility_user_id               
2603                SetDataFolder  root:SANS_file:entry1:control           
2604                        Make/O/N=0 Igor___folder_attributes     
2605                        Note/K Igor___folder_attributes, "NX_class=NXmonitor"
2606                        //      mode           
2607                        //      preset         
2608                        //      integral               
2609                        //      monitor_counts         
2610                        //      monitor_preset         
2611                        //      detector_counts         
2612                        //      detector_preset         
2613                        //      type           
2614                        //      efficiency             
2615                        //      sampled_fraction               
2616                        //      count_start             
2617                        Note/K count_start, "units=s"
2618                        //      count_end               
2619                        Note/K count_end, "units=s"
2620                        //      count_time             
2621                        Note/K count_time, "units=s"
2622                        //      count_time_preset               
2623                        Note/K count_time_preset, "units=s"
2624//              SetDataFolder  root:SANS_file:entry1:program_name               
2625//                      Make/O/N=0 Igor___folder_attributes     
2626                        //      data           
2627                        //      description             
2628                        //      file_name               
2629                        //      type           
2630                SetDataFolder  root:SANS_file:entry1:sample             
2631                        Make/O/N=0 Igor___folder_attributes     
2632                        Note/K Igor___folder_attributes, "NX_class=NXsample"
2633                        //      description             
2634                        //      group_id               
2635                        //      chemical_formula               
2636                        SetDataFolder  root:SANS_file:entry1:sample:temperature_1               
2637                                Make/O/N=0 Igor___folder_attributes     
2638                                Note/K Igor___folder_attributes, "NX_class=NXsensor"
2639                                //      name           
2640                                //      attached_to             
2641                                //      measurement             
2642                                SetDataFolder  root:SANS_file:entry1:sample:temperature_1:value_log             
2643                                        Make/O/N=0 Igor___folder_attributes     
2644                                        Note/K Igor___folder_attributes, "NX_class=NXlog"
2645                                        //      start           
2646                                        //      nx_time         
2647                                        Note/K nx_time, "units=s"
2648                                        //      value           
2649                                        Note/K value, "units=C"
2650                        SetDataFolder  root:SANS_file:entry1:sample:temperature_2               
2651                                Make/O/N=0 Igor___folder_attributes     
2652                                Note/K Igor___folder_attributes, "NX_class=NXsensor"
2653                                //      name           
2654                                //      attached_to             
2655                                //      measurement             
2656                                SetDataFolder  root:SANS_file:entry1:sample:temperature_2:value_log             
2657                                        Make/O/N=0 Igor___folder_attributes     
2658                                        Note/K Igor___folder_attributes, "NX_class=NXlog"
2659                                        //      start           
2660                                        //      nx_time         
2661                                        Note/K nx_time, "units=s"
2662                                        //      value           
2663                                        Note/K value, "units=C"
2664                        SetDataFolder  root:SANS_file:entry1:sample:electric_field             
2665                                Make/O/N=0 Igor___folder_attributes     
2666                                Note/K Igor___folder_attributes, "NX_class=NXsensor"
2667                                //      name           
2668                                //      attached_to             
2669                                //      measurement             
2670                                SetDataFolder  root:SANS_file:entry1:sample:electric_field:value_log           
2671                                        Make/O/N=0 Igor___folder_attributes     
2672                                        Note/K Igor___folder_attributes, "NX_class=NXlog"
2673                                        //      start           
2674                                        //      nx_time         
2675                                        Note/K nx_time, "units=s"
2676                                        //      value           
2677                                        Note/K value, "units=V"
2678                        SetDataFolder  root:SANS_file:entry1:sample:shear_field         
2679                                Make/O/N=0 Igor___folder_attributes     
2680                                Note/K Igor___folder_attributes, "NX_class=NXsensor"
2681                                //      name           
2682                                //      attached_to             
2683                                //      measurement             
2684                                SetDataFolder  root:SANS_file:entry1:sample:shear_field:value_log               
2685                                        Make/O/N=0 Igor___folder_attributes     
2686                                        Note/K Igor___folder_attributes, "NX_class=NXlog"
2687                                        //      start           
2688                                        //      nx_time         
2689                                        Note/K nx_time, "units=s"
2690                                        //      value           
2691                                        Note/K value, "units=Pa s"
2692                        SetDataFolder  root:SANS_file:entry1:sample:pressure           
2693                                Make/O/N=0 Igor___folder_attributes     
2694                                Note/K Igor___folder_attributes, "NX_class=NXsensor"
2695                                //      name           
2696                                //      attached_to             
2697                                //      measurement             
2698                                SetDataFolder  root:SANS_file:entry1:sample:pressure:value_log         
2699                                        Make/O/N=0 Igor___folder_attributes     
2700                                        Note/K Igor___folder_attributes, "NX_class=NXlog"
2701                                        //      start           
2702                                        //      nx_time         
2703                                        Note/K nx_time, "units=s"
2704                                        //      value           
2705                                        Note/K value, "units=psi"
2706                        SetDataFolder  root:SANS_file:entry1:sample:magnetic_field             
2707                                Make/O/N=0 Igor___folder_attributes     
2708                                Note/K Igor___folder_attributes, "NX_class=NXsensor"
2709                                //      name           
2710                                //      attached_to             
2711                                //      measurement             
2712                                SetDataFolder  root:SANS_file:entry1:sample:magnetic_field:value_log           
2713                                        Make/O/N=0 Igor___folder_attributes     
2714                                        Note/K Igor___folder_attributes, "NX_class=NXlog"
2715                                        //      start           
2716                                        //      nx_time         
2717                                        Note/K nx_time, "units=s"
2718                                        //      value           
2719                                        Note/K value, "units=T"
2720                        SetDataFolder  root:SANS_file:entry1:sample                     
2721                        //      changer_position               
2722                        //      sample_holder_description               
2723                        //      mass           
2724//                      Note/K mass, "units=g"
2725                        //      density         
2726//                      Note/K density, "units=g ml-1"
2727                        //      molecular_weight               
2728//                      Note/K molecular_weight, "units=g mol-1"
2729                        //      description             
2730                        //      preparation_date               
2731                        //      volume_fraction         
2732                        //      scattering_length_density               
2733//                      Note/K scattering_length_density, "units=A-2"
2734                        //      thickness               
2735                        Note/K thickness, "units=cm"
2736                        //      rotation_angle         
2737                        Note/K rotation_angle, "units=degrees"
2738                        //      transmission           
2739                        //      transmission_error             
2740                        //      xs_incoh               
2741//                      Note/K xs_incoh, "units=cm-1"
2742                        //      xs_coh         
2743//                      Note/K xs_coh, "units=cm-1"
2744                        //      xs_absorb               
2745//                      Note/K xs_absorb, "units=cm-1"
2746                SetDataFolder  root:SANS_file:entry1:instrument         
2747                        Make/O/N=0 Igor___folder_attributes     
2748                        Note/K Igor___folder_attributes, "NX_class=NXinstrument"
2749                        //      location               
2750                        //      name           
2751                        //      type           
2752                        //      local_contact           
2753                        SetDataFolder  root:SANS_file:entry1:instrument:source         
2754                                Make/O/N=0 Igor___folder_attributes     
2755                                Note/K Igor___folder_attributes, "NX_class=NXsource"
2756                                //      name           
2757                                //      type           
2758                                //      probe           
2759                                //      power           
2760                                Note/K power, "units=MW"
2761                        SetDataFolder root:SANS_file:entry1:instrument:beam_monitor             
2762                                Make/O/N=0 Igor___folder_attributes     
2763                                Note/K Igor___folder_attributes, "NX_class=NXmonitor"
2764                                //      data           
2765                                //      type           
2766                                //      efficiency             
2767                                //      nx_distance             
2768                                Note/K nx_distance, "units=m"
2769                                //      saved_count             
2770                        SetDataFolder  root:SANS_file:entry1:instrument:monochromator           
2771                                Make/O/N=0 Igor___folder_attributes     
2772                                Note/K Igor___folder_attributes, "NX_class=NXmonochromator"
2773                                //      wavelength             
2774                                Note/K wavelength, "units=A"
2775                                //      wavelength_spread               
2776                                //      type           
2777                                SetDataFolder  root:SANS_file:entry1:instrument:monochromator:velocity_selector         
2778                                        Make/O/N=0 Igor___folder_attributes     
2779                                        Note/K Igor___folder_attributes, "NX_class=NXvelocity_selector"
2780                                        //      rotation_speed         
2781                                        Note/K rotation_speed, "units=RPM"
2782                                        //      wavelength             
2783                                        Note/K wavelength, "units=A"
2784                                        //      wavelength_spread               
2785                                        //      vs_tilt         
2786                                        Note/K vs_tilt, "units=degrees"
2787                                        //      nx_distance             
2788                                        Note/K nx_distance, "units=m"
2789                                                //table         
2790                        SetDataFolder  root:SANS_file:entry1:instrument:polarizer               
2791                                Make/O/N=0 Igor___folder_attributes     
2792                                //      type           
2793                                //      composition             
2794                                //      efficiency             
2795                                //      status         
2796                        SetDataFolder  root:SANS_file:entry1:instrument:flipper         
2797                                Make/O/N=0 Igor___folder_attributes     
2798                                //      status         
2799                                //      driving_current         
2800                                Note/K driving_current, "units=A"
2801                                //      waveform               
2802                                //      frequency               
2803                                Note/K frequency, "units=Hz"
2804                                //      transmitted_power               
2805                        SetDataFolder  root:SANS_file:entry1:instrument:polarizer_analyzer             
2806                                Make/O/N=0 Igor___folder_attributes     
2807                                //      status         
2808                                //      guide_field_current_1           
2809                                Note/K guide_field_current_1, "units=A"
2810                                //      guide_field_current_2           
2811                                Note/K guide_field_current_2, "units=A"
2812                                //      solenoid_current               
2813                                Note/K solenoid_current, "units=A"
2814                                //      cell_index             
2815                                //      cell_names             
2816                                //      cell_parameters         
2817                        SetDataFolder  root:SANS_file:entry1:instrument:chopper         
2818                                Make/O/N=0 Igor___folder_attributes     
2819                                Note/K Igor___folder_attributes, "NX_class=NXdisk_chopper"
2820                                //      type           
2821                                //      status         
2822                                //      rotation_speed         
2823                                Note/K rotation_speed, "units=RPM"
2824                                //      distance_from_source           
2825                                Note/K distance_from_source, "units=m"
2826                                //      distance_from_sample           
2827                                Note/K distance_from_sample, "units=m"
2828                                //      slits           
2829                                //      angular_opening         
2830                                Note/K angular_opening, "units=degrees"
2831                                //      duty_cycle             
2832                        SetDataFolder  root:SANS_file:entry1:instrument:attenuator             
2833                                Make/O/N=0 Igor___folder_attributes     
2834                                Note/K Igor___folder_attributes, "NX_class=NXattenuator"
2835                                //      nx_distance             
2836                                Note/K nx_distance, "units=m"
2837                                //      type           
2838                                //      thickness               
2839                                Note/K thickness, "units=cm"
2840                                //      attenuator_transmission         
2841                                //      status         
2842                                //      atten_number           
2843                                //      index           
2844                        SetDataFolder  root:SANS_file:entry1:instrument:source_aperture         
2845                                Make/O/N=0 Igor___folder_attributes     
2846                                Note/K Igor___folder_attributes, "NX_class=NXaperture"
2847                                //      material               
2848                                //      description             
2849                                //      diameter               
2850                                Note/K diameter, "units=cm"
2851                                //      nx_distance             
2852                                Note/K nx_distance, "units=m"
2853                                SetDataFolder  root:SANS_file:entry1:instrument:source_aperture:shape           
2854                                        Make/O/N=0 Igor___folder_attributes     
2855                                        Note/K Igor___folder_attributes, "NX_class=NXshape"
2856                                        //      size           
2857                                        Note/K size, "units=cm"
2858                        SetDataFolder  root:SANS_file:entry1:instrument:sample_aperture         
2859                                Make/O/N=0 Igor___folder_attributes     
2860                                Note/K Igor___folder_attributes, "NX_class=NXaperture"
2861                                //      material               
2862                                //      description             
2863                                //      diameter               
2864                                Note/K diameter, "units=cm"
2865                                //      nx_distance             
2866                                Note/K nx_distance, "units=m"
2867                                SetDataFolder  root:SANS_file:entry1:instrument:sample_aperture:shape           
2868                                        Make/O/N=0 Igor___folder_attributes     
2869                                        Note/K Igor___folder_attributes, "NX_class=NXshape"
2870                                        //      size           
2871                                        Note/K size, "units=cm"
2872                        SetDataFolder root:SANS_file:entry1:instrument:collimator                       
2873                                SetDataFolder root:SANS_file:entry1:instrument:collimator:geometry                     
2874                                        SetDataFolder root:SANS_file:entry1:instrument:collimator:geometry:shape                       
2875                                                //      shape           
2876                                                //      size           
2877                                                Note/K size, "units=m"
2878                                //      nx_NumGuides           
2879                        SetDataFolder  root:SANS_file:entry1:instrument:lenses         
2880                                Make/O/N=0 Igor___folder_attributes     
2881                                Note/K Igor___folder_attributes, "NX_class=NXxraylens"
2882                                //      status         
2883                                //      lens_geometry           
2884                                //      focus_type             
2885                                //      number_of_lenses               
2886                                //      number_of_prisms               
2887                                //      curvature               
2888                                //      lens_distance           
2889                                Note/K lens_distance, "units=m"
2890                                //      prism_distance         
2891                                Note/K prism_distance, "units=m"
2892                                //      lens_material           
2893                                //      prism_material         
2894                        SetDataFolder  root:SANS_file:entry1:instrument:sample_table           
2895                                Make/O/N=0 Igor___folder_attributes     
2896                                //      location               
2897                                //      offset_distance         
2898                                Note/K offset_distance, "units=cm"
2899                        SetDataFolder  root:SANS_file:entry1:instrument:beam_stop               
2900                                Make/O/N=0 Igor___folder_attributes     
2901                                Note/K Igor___folder_attributes, "NX_class=NXbeam_stop"
2902                                //      description             
2903                                //      nx_distance             
2904                                Note/K nx_distance, "units=m"
2905                                //      size           
2906                                Note/K size, "units=cm"
2907                                //      status         
2908                                //      xPos           
2909                                //      yPos           
2910                                //      x_motor_position               
2911                                Note/K x_motor_position, "units=cm"
2912                                //      y_motor_position               
2913                                Note/K y_motor_position, "units=cm"
2914                        SetDataFolder  root:SANS_file:entry1:instrument:detector               
2915                                Make/O/N=0 Igor___folder_attributes     
2916                                Note/K Igor___folder_attributes, "NX_class=NXdetector"
2917                                //      data           
2918                                Note/K data, "signal=1"
2919                                //      data_error             
2920                                //      nx_distance             
2921                                Note/K nx_distance, "units=m"
2922                                //      description             
2923                                //      settings               
2924                                //      dead_time               
2925                                Note/K dead_time, "units=s"
2926                                //      x_pixel_size           
2927                                Note/K x_pixel_size, "units=cm"
2928                                //      y_pixel_size           
2929                                Note/K y_pixel_size, "units=cm"
2930                                //      beam_center_x           
2931                                //      beam_center_y           
2932                                //      type           
2933                                //      flatfield_applied               
2934                                //      countrate_correction_applied           
2935                                //      pixel_mask             
2936                                //      integrated_count               
2937                                //      lateral_offset         
2938                                Note/K lateral_offset, "units=cm"
2939                                //      PixelNumX               
2940                                //      PixelNumY               
2941                                //      PixelFWHM               
2942                                        //calibration_method           
2943                                //      CALX           
2944                                //      CALY           
2945                                //      size           
2946                                Note/K size, "units=cm"
2947                                //      event_file_name         
2948                SetDataFolder  root:SANS_file:entry1:data               
2949                        Make/O/N=0 Igor___folder_attributes     
2950                        Note/K Igor___folder_attributes, "NX_class=NXdata"
2951                        //      data           
2952                        Note/K data, "signal=1"
2953                        //      error           
2954                        //      variables               
2955                        //      data_image             
2956                SetDataFolder  root:SANS_file:entry1:reduction         
2957                        Make/O/N=0 Igor___folder_attributes     
2958                        //      intent         
2959                        //      transmission_file_name         
2960                        //      empty_beam_file_name           
2961                        //      background_file_name           
2962                        //      empty_file_name         
2963                        //      sensitivity_file_name           
2964                        //      mask_file_name         
2965                        //      sans_log_file_name             
2966                        //      whole_trans             
2967                        //      whole_trans_error               
2968                        //      box_count               
2969                        //      box_count_error         
2970                        //      box_coordinates         
2971                        //      comments               
2972                        //      absolute_scaling               
2973                        SetDataFolder  root:SANS_file:entry1:reduction:pol_sans         
2974                                Make/O/N=0 Igor___folder_attributes     
2975                                //      pol_sans_purpose               
2976                                //      cell_name               
2977                                //      cell_parameters         
2978                                                       
2979        SetDataFolder  root:SANS_file:DAS_Logs         
2980                Make/O/N=0 Igor___folder_attributes     
2981                Note/K Igor___folder_attributes, "NX_class=NXlog"
2982                        //...multiple entries and levels... to add             
2983
2984
2985        SetDataFolder root:     
2986
2987End
2988
2989
2990//
2991// this is NOT linked in any way with SASCALC, and I have no idea
2992// of how to ever keep this in sync if the Nexus tree changes...
2993//
2994Proc H_Fill_SANS_wSim()
2995
2996SetDataFolder  root:SANS_file           
2997                file_name       = "SANSTest.h5"
2998                file_time       = "2015-02-28T08:15:30-5:00"
2999                facility        = "NCNR"
3000                NeXus_version   = "Nexus 0.0"
3001                hdf_version     = "hdf5.x"
3002                file_history    = "history log"
3003        SetDataFolder  root:SANS_file:entry1           
3004                        title   = "title of entry1"
3005                        experiment_identifier   = 684636
3006                        experiment_description  = "description of expt"
3007                        entry_identifier        = "S22-33"
3008                        definition      = "NXsas"
3009                        start_time      = "2015-02-28T08:15:30-5:00"
3010                        end_time        = "2015-02-28T08:15:30-5:00"
3011                        duration        = 300
3012                        collection_time = 300
3013                        run_cycle       = "S22-23"
3014                        data_directory  = "[NG7SANS41]"
3015                        program_name    = "runPoint={stuff}"
3016                SetDataFolder  root:SANS_file:entry1:user               
3017                                name    = "Dr. Pi"
3018                                role    = "evil scientist"
3019                                affiliation     = "NIST"
3020                                address = "100 Bureau Drive"
3021                                telephoneNumber = "301-999-9999"
3022                                faxNumber       = "301-999-9999"
3023                                email   = "sans@nist"
3024                                facility_user_id        = 6937596
3025                SetDataFolder  root:SANS_file:entry1:control           
3026                                mode    = "timer"
3027                                preset  = 555
3028                                integral        = 555
3029                                monitor_counts  = 666
3030                                monitor_preset  = 1e8
3031                                detector_counts = 100111222
3032                                detector_preset = 1e5
3033//                              type    = "monitor type"
3034//                              efficiency      = 0.01
3035//                              sampled_fraction        = 1
3036                                count_start     = 1
3037                                count_end       = 1
3038                                count_time      = 1
3039                                count_time_preset       = 1
3040//              SetDataFolder  root:SANS_file:entry1:program_name               
3041//                              data    = "program data"
3042//                              description     = "acquisition"
3043//                              file_name       = "NICE"
3044//                              type    = "client"
3045                SetDataFolder  root:SANS_file:entry1:sample             
3046                                description     = "My Sample"
3047                                group_id        = 12345
3048//                              chemical_formula        = "C8H10N4O2"
3049                        SetDataFolder  root:SANS_file:entry1:sample:temperature_1               
3050                                        name    = "Sample temperature"
3051                                        attached_to     = "block"
3052                                        measurement     = "temperature"
3053                                SetDataFolder  root:SANS_file:entry1:sample:temperature_1:value_log             
3054                                                start   = "2015-02-28T08:15:30-5:00"
3055                                                nx_time = p
3056                                                value   = 2*p
3057                        SetDataFolder  root:SANS_file:entry1:sample:temperature_2               
3058                                        name    = "Sample temperature"
3059                                        attached_to     = "block"
3060                                        measurement     = "temperature"
3061                                SetDataFolder  root:SANS_file:entry1:sample:temperature_2:value_log             
3062                                                start   = "2015-02-28T08:15:30-5:00"
3063                                                nx_time = p
3064                                                value   = 3*p
3065                        SetDataFolder  root:SANS_file:entry1:sample:electric_field             
3066                                        name    = "electric meter"
3067                                        attached_to     = "sample"
3068                                        measurement     = "voltage"
3069                                SetDataFolder  root:SANS_file:entry1:sample:electric_field:value_log           
3070                                                start   = "2015-02-28T08:15:30-5:00"
3071                                                nx_time = 2*p
3072                                                value   = sin(p/10)
3073                        SetDataFolder  root:SANS_file:entry1:sample:shear_field         
3074                                        name    = "rheometer"
3075                                        attached_to     = "sample"
3076                                        measurement     = "stress"
3077                                SetDataFolder  root:SANS_file:entry1:sample:shear_field:value_log               
3078                                                start   = "2015-02-28T08:15:30-5:00"
3079                                                nx_time = p
3080                                                value   = cos(p/5)
3081                        SetDataFolder  root:SANS_file:entry1:sample:pressure           
3082                                        name    = "Sample pressure"
3083                                        attached_to     = "pressure cell"
3084                                        measurement     = "pressure"
3085                                SetDataFolder  root:SANS_file:entry1:sample:pressure:value_log         
3086                                                start   = "2015-02-28T08:15:30-5:00"
3087                                                nx_time = p
3088                                                value   = p/2
3089                        SetDataFolder  root:SANS_file:entry1:sample:magnetic_field             
3090                                        name    = "magnetic field (direction)"
3091                                        attached_to     = "cryostat"
3092                                        measurement     = "magnetic field"
3093                                SetDataFolder  root:SANS_file:entry1:sample:magnetic_field:value_log           
3094                                                start   = "2015-02-28T08:15:30-5:00"
3095                                                nx_time = p
3096                                                value   = 10*p
3097                        SetDataFolder  root:SANS_file:entry1:sample             
3098                                changer_position        = 5
3099                                sample_holder_description       = "10CB"
3100//                              mass    = 0.3
3101//                              density = 1.02
3102//                              molecular_weight        = 194.19
3103//                              description     = "My Sample"
3104//                              preparation_date        = "2015-02-28T08:15:30-5:00"
3105//                              volume_fraction = 0.2
3106//                              scattering_length_density       = 6.35e-6
3107                                thickness       = 0.1
3108                                rotation_angle  = 30
3109                                transmission    = 0.888
3110                                transmission_error      = 0.011
3111//                              xs_incoh        = 5.5
3112//                              xs_coh  = 22.2
3113//                              xs_absorb       = 3.1
3114                SetDataFolder  root:SANS_file:entry1:instrument         
3115//                              location        = "NCNR"
3116                                name    = "NGB30mSANS"
3117                                type    = "30 m SANS"
3118                                local_contact   = "Steve Kline"
3119                        SetDataFolder  root:SANS_file:entry1:instrument:source         
3120                                        name    = "NCNR"
3121                                        type    = "Reactor Neutron Source"
3122                                        probe   = "neutron"
3123                                        power   = 20
3124                        SetDataFolder root:SANS_file:entry1:instrument:beam_monitor             
3125                                        data    = 1234567
3126                                        type    = "monitor"
3127                                        efficiency      = 0.01
3128                                        nx_distance     = 16
3129                                        saved_count     = 1e8
3130                        SetDataFolder  root:SANS_file:entry1:instrument:monochromator           
3131                                        wavelength      = 6
3132                                        wavelength_spread       = 0.15
3133                                        type    = "VS"
3134                                SetDataFolder  root:SANS_file:entry1:instrument:monochromator:velocity_selector         
3135                                                rotation_speed  = 5100
3136                                                wavelength      = 6
3137                                                wavelength_spread       = 0.15
3138                                                vs_tilt = 3
3139                                                nx_distance     = 18.8
3140                                                //table
3141                        SetDataFolder  root:SANS_file:entry1:instrument:polarizer               
3142                                        type    = "supermirror"
3143                                        composition     = "multilayer"
3144                                        efficiency      = 0.95
3145                                        status  = "in"
3146                        SetDataFolder  root:SANS_file:entry1:instrument:flipper         
3147                                        status  = "on"
3148                                        driving_current = 42
3149                                        waveform        = "sine"
3150                                        frequency       = 400
3151                                        transmitted_power       = 0.99
3152                        SetDataFolder  root:SANS_file:entry1:instrument:polarizer_analyzer             
3153                                        status  = "down"
3154                                        guide_field_current_1   = 33
3155                                        guide_field_current_2   = 32
3156                                        solenoid_current        = 21
3157                                        cell_index      = 1
3158                                        cell_names      = {"Burgundy","Olaf","Jim","Bob","Joe"}
3159                                        cell_parameters = 1
3160                        SetDataFolder  root:SANS_file:entry1:instrument:chopper         
3161                                        type    = "single"
3162                                        status  = "in"
3163                                        rotation_speed  = 12000
3164                                        distance_from_source    = 400
3165                                        distance_from_sample    = 1500
3166                                        slits   = 2
3167                                        angular_opening = 15
3168                                        duty_cycle      = 0.25
3169                        SetDataFolder  root:SANS_file:entry1:instrument:attenuator             
3170                                        nx_distance     = 1500
3171                                        type    = "PMMA"
3172                                        thickness       = 0
3173                                        attenuator_transmission = 1
3174                                        status  = "in"
3175                                        atten_number    = 0
3176                                        index   = 1
3177                        SetDataFolder  root:SANS_file:entry1:instrument:source_aperture         
3178//                                      material        = "Gd"
3179                                        description     = "source aperture"
3180                                        diameter        = 1.27
3181                                        nx_distance     = 13.0
3182                                SetDataFolder  root:SANS_file:entry1:instrument:source_aperture:shape           
3183                                                size    = 1.27
3184                        SetDataFolder  root:SANS_file:entry1:instrument:sample_aperture         
3185//                                      material        = "Gd"
3186                                        description     = "sample aperture"
3187                                        diameter        = 1.27
3188                                        nx_distance     = 10
3189                                SetDataFolder  root:SANS_file:entry1:instrument:sample_aperture:shape           
3190                                                size    = 1.27
3191                        SetDataFolder root:SANS_file:entry1:instrument:collimator               
3192                                SetDataFolder root:SANS_file:entry1:instrument:collimator:geometry             
3193                                        SetDataFolder root:SANS_file:entry1:instrument:collimator:geometry:shape               
3194                                                        shape   = "box"
3195                                                        size    = 11
3196                                        nx_NumGuides    = 1
3197                        SetDataFolder  root:SANS_file:entry1:instrument:lenses         
3198                                        status  = "in"
3199                                        lens_geometry   = "concave_lens"
3200                                        focus_type      = "point"
3201                                        number_of_lenses        = 28
3202                                        number_of_prisms        = 7
3203                                        curvature       = 1
3204                                        lens_distance   = 123
3205                                        prism_distance  = 123
3206                                        lens_material   = "MgF2"
3207                                        prism_material  = "MgF2"
3208                        SetDataFolder  root:SANS_file:entry1:instrument:sample_table           
3209                                        location        = "chamber"
3210                                        offset_distance = 0
3211                        SetDataFolder  root:SANS_file:entry1:instrument:beam_stop               
3212                                        description     = "circular"
3213                                        nx_distance     = 12.5
3214                                        size    = 7.62
3215                                        status  = "out"
3216                                        xPos    = 66.4
3217                                        yPos    = 64.4
3218                                        x_motor_position        = 0.15
3219                                        y_motor_position        = 0.55
3220                        SetDataFolder  root:SANS_file:entry1:instrument:detector               
3221                                        data    = trunc(abs(gnoise(p+q)))
3222//                                      data_error      = 0.01*abs(gnoise(p+q))
3223                                        nx_distance     = 13.1
3224                                        description     = "Ordela 2660N"
3225                                        settings        = "just right"
3226                                        dead_time       = 5e-6
3227                                        x_pixel_size    = 5.08
3228                                        y_pixel_size    = 5.08
3229                                        beam_center_x   = 65.55
3230                                        beam_center_y   = 62.33
3231                                        type    = "Ordela"
3232//                                      flatfield_applied       = 0
3233//                                      countrate_correction_applied    = 0
3234                                        pixel_mask      = 0
3235                                        integrated_count        = 100111222
3236                                        lateral_offset  = 20
3237                                        PixelNumX       = 128
3238                                        PixelNumY       = 128
3239                                        PixelFWHM       = 0.5
3240                                        //calibration_method   
3241                                        CALX    = {0.5,0.5,10000}
3242                                        CALY    = {0.5,0.5,10000}
3243                                        size    = 65
3244                                        event_file_name ="something.hst"
3245                SetDataFolder  root:SANS_file:entry1:data               
3246                                data    = trunc(abs(gnoise(p+q)))
3247//                              error   = 0.01*abs(gnoise(p+q))
3248                                variables       = {128,128}
3249                                data_image      = p
3250                SetDataFolder  root:SANS_file:entry1:reduction         
3251                                intent  = "SCATTER"
3252                                transmission_file_name  = "SANSFile_TRN.h5"
3253                                empty_beam_file_name    = "SANSFile_EB.h5"
3254                                background_file_name    = "SANSFile_BKG.h5"
3255                                empty_file_name = "SANSFile_EMP.h5"
3256                                sensitivity_file_name   = "SANSFile_DIV.h5"
3257                                mask_file_name  = "SANSFile_MASK.h5"
3258                                sans_log_file_name      = "SANSFile_log.txt"
3259                                whole_trans     = 0.888
3260                                whole_trans_error       = 0.008
3261                                box_count       = 23232
3262                                box_count_error = 22
3263                                box_coordinates = {50,80,45,75}
3264                                comments        = "extra data comments"
3265                                absolute_scaling        = {1,1,1e5,1}
3266                        SetDataFolder  root:SANS_file:entry1:reduction:pol_sans         
3267                                        pol_sans_purpose        = "name from the list"
3268                                        cell_name       = "Burgundy"
3269                                        cell_parameters = {1,2,3,4,5}
3270                                               
3271        SetDataFolder  root:SANS_file:DAS_Logs         
3272                        //...multiple entries and levels... to add     
3273
3274
3275        SetDataFolder root:
3276
3277End
3278
3279
3280
3281
3282
3283//////////
3284//
3285// These procedures are needed to write out MASK and DIV files
3286//
3287////////
3288
3289
3290//
3291// saves a specified folder, with a given filename.
3292// saves to the home path
3293//
3294Proc Save_VSANS_file(dfPath, filename)
3295        String dfPath   ="root:VSANS_file"              // e.g., "root:FolderA" or ":"
3296        String filename = "Test_VSANS_file.h5"
3297       
3298        H_NXSANS_SaveGroupAsHDF5(dfPath, filename)
3299End
3300
3301
3302//     
3303// this is my procedure to save the folders to HDF5, once I've filled the folder tree
3304//
3305// this does NOT save attributes, but gets the folder structure correct
3306//
3307Function H_NXSANS_SaveGroupAsHDF5(dfPath, filename)
3308        String dfPath   // e.g., "root:FolderA" or ":"
3309        String filename
3310
3311        Variable result = 0     // 0 means no error
3312       
3313        Variable fileID
3314        HDF5CreateFile/P=home /O /Z fileID as filename
3315        if (V_flag != 0)
3316                Print "HDF5CreateFile failed"
3317                return -1
3318        endif
3319
3320        HDF5SaveGroup /IGOR=0 /O /R /Z $dfPath, fileID, "."
3321//      HDF5SaveGroup /O /R /Z $dfPath, fileID, "."
3322        if (V_flag != 0)
3323                Print "HDF5SaveGroup failed"
3324                result = -1
3325        endif
3326       
3327        HDF5CloseFile fileID
3328
3329        return result
3330End
Note: See TracBrowser for help on using the repository browser.