Changeset 960 for sans/Dev/trunk/NCNR_User_Procedures/Reduction
- Timestamp:
- Aug 12, 2015 12:04:50 PM (7 years ago)
- Location:
- sans/Dev/trunk/NCNR_User_Procedures/Reduction
- Files:
-
- 2 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
sans/Dev/trunk/NCNR_User_Procedures/Reduction/HDF5gateway_NCNR.ipf
r955 r960 397 397 //@- 398 398 399 Function/ TH5GW_ReadHDF5(parentFolder, fileName, [hdf5Path])399 Function/S H5GW_ReadHDF5(parentFolder, fileName, [hdf5Path]) 400 400 String parentFolder, fileName, hdf5Path 401 401 if ( ParamIsDefault(hdf5Path) ) … … 414 414 return parentFolder + " (Igor folder) not found" 415 415 endif 416 416 417 417 418 // do the work here: 418 419 Variable/G fileID = H5GW__OpenHDF5_RO(fileName) … … 420 421 return fileName + ": could not open as HDF5 file" 421 422 endif 423 424 s_tic() //fast 422 425 423 426 SVAR tmpStr=root:file_name … … 431 434 return fileName + ": problem while opening HDF5 file" 432 435 endif 436 437 s_toc() 438 439 //s_tic() // this is the slow part, 0.7s for Igor-generated. > 9s for NICE (which has DAS_log) 440 433 441 String/G objectPaths = S_objectPaths // this gives a clue to renamed datasets (see below for attributes) 434 442 // read the attributes … … 444 452 Note $file_info, "file_path="+file_path 445 453 446 KillStrings/Z file_path, file_name, objectPaths, group_name_list, dataset_name_list454 KillStrings/Z file_path, objectPaths, group_name_list, dataset_name_list // ,file_name 447 455 KillVariables/Z fileID 456 457 //s_toc() 448 458 449 459 SetDataFolder $oldFolder … … 834 844 file_infoT[ii][Igor_col] = StringFromList(1, item, keySep) 835 845 endfor 846 836 847 End 837 848 … … 998 1009 Variable dataset_attributes_type = 2 999 1010 1011 //s_tic() // 0.11 s 1000 1012 // read and assign group attributes 1001 1013 String S_HDF5ListGroup … … 1024 1036 SetDataFolder $old_dir 1025 1037 endfor 1038 1039 //s_toc() 1040 //s_tic() // 3.2 s !! 1026 1041 1027 1042 // read and assign dataset attributes … … 1038 1053 sprintf file_info, ":%s:HDF5___xref", baseName 1039 1054 Wave/T xref = $file_info 1055 1056 //s_toc() 1057 //s_tic() // worst @ 6.3 s 1040 1058 1041 1059 Variable row … … 1055 1073 endif 1056 1074 endfor 1075 //s_toc() 1057 1076 1058 1077 End -
sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/Nexus_SANS_Write.ipf
r959 r960 1 1 #pragma rtGlobals=1 // Use modern global access method. 2 3 4 // AUG 2015 ************** 5 //////////// 6 // this needs to be connected to the "new" Nexus file 7 // remove the VSANS references, match to SASCALC, write proper documentation, etc. 8 /////////// 9 10 2 11 3 12 … … 8 17 // 9 18 10 11 12 13 14 // 15 // lays out the tree and fills with dummy values 16 // 17 Proc H_Setup_SANS_Structure() 18 19 Variable n=100 20 21 NewDataFolder/O/S root:SANS_file 22 Make/O/T/N=1 file_name = "SANSTest.h5" 23 Make/O/T/N=1 file_time = "2015-02-28T08:15:30-5:00" 24 Make/O/T/N=1 facility = "NCNR" 25 Make/O/T/N=1 NeXus_version = "Nexus 0.0" 26 Make/O/T/N=1 hdf_version = "hdf5.x" 27 Make/O/T/N=1 file_history = "history log" 28 NewDataFolder/O/S root:SANS_file:entry1 29 Make/O/T/N=1 title = "title of entry1" 30 Make/O/D/N=1 experiment_identifier = 684636 31 Make/O/T/N=1 experiment_description = "description of expt" 32 Make/O/T/N=1 entry_identifier = "S22-33" 33 Make/O/T/N=1 definition = "NXsas" 34 Make/O/T/N=1 start_time = "2015-02-28T08:15:30-5:00" 35 Make/O/T/N=1 end_time = "2015-02-28T08:15:30-5:00" 36 Make/O/D/N=1 duration = 300 37 Make/O/D/N=1 collection_time = 300 38 Make/O/T/N=1 run_cycle = "S22-23" 39 Make/O/T/N=1 data_directory = "[NG7SANS41]" 40 Make/O/T/N=1 program_name = "runPoint={stuff}" 41 NewDataFolder/O/S root:SANS_file:entry1:user 42 Make/O/T/N=1 name = "Dr. Pi" 43 Make/O/T/N=1 role = "evil scientist" 44 Make/O/T/N=1 affiliation = "NIST" 45 Make/O/T/N=1 address = "100 Bureau Drive" 46 Make/O/T/N=1 telephoneNumber = "301-999-9999" 47 Make/O/T/N=1 faxNumber = "301-999-9999" 48 Make/O/T/N=1 email = "sans@nist" 49 Make/O/I/N=1 facility_user_id = 6937596 50 NewDataFolder/O/S root:SANS_file:entry1:control 51 Make/O/T/N=1 mode = "timer" 52 Make/O/D/N=1 preset = 555 53 Make/O/D/N=1 integral = 555 54 Make/O/D/N=1 monitor_counts = 666 55 Make/O/D/N=1 monitor_preset = 1e8 56 Make/O/D/N=1 detector_counts = 100111222 57 Make/O/D/N=1 detector_preset = 1e5 58 // Make/O/T/N=1 type = "monitor type" 59 // Make/O/D/N=1 efficiency = 0.01 60 // Make/O/D/N=1 sampled_fraction = 1 61 Make/O/D/N=1 count_start = 1 62 Make/O/D/N=1 count_end = 1 63 Make/O/D/N=1 count_time = 1 64 Make/O/D/N=1 count_time_preset = 1 65 // NewDataFolder/O/S root:SANS_file:entry1:program_name 66 // Make/O/T/N=1 data = "program data" 67 // Make/O/T/N=1 description = "acquisition" 68 // Make/O/T/N=1 file_name = "NICE" 69 // Make/O/T/N=1 type = "client" 70 NewDataFolder/O/S root:SANS_file:entry1:sample 71 Make/O/T/N=1 description = "My Sample" 72 Make/O/D/N=1 group_id = 12345 73 // Make/O/T/N=1 chemical_formula = "C8H10N4O2" 74 NewDataFolder/O/S root:SANS_file:entry1:sample:temperature_1 75 Make/O/T/N=1 name = "Sample temperature" 76 Make/O/T/N=1 attached_to = "block" 77 Make/O/T/N=1 measurement = "temperature" 78 NewDataFolder/O/S root:SANS_file:entry1:sample:temperature_1:value_log 79 Make/O/T/N=1 start = "2015-02-28T08:15:30-5:00" 80 Make/O/D/N=(n) nx_time = p 81 Make/O/D/N=(n) value = 2*p 82 NewDataFolder/O/S root:SANS_file:entry1:sample:temperature_2 83 Make/O/T/N=1 name = "Sample temperature" 84 Make/O/T/N=1 attached_to = "block" 85 Make/O/T/N=1 measurement = "temperature" 86 NewDataFolder/O/S root:SANS_file:entry1:sample:temperature_2:value_log 87 Make/O/T/N=1 start = "2015-02-28T08:15:30-5:00" 88 Make/O/D/N=(n) nx_time = p 89 Make/O/D/N=(n) value = 3*p 90 NewDataFolder/O/S root:SANS_file:entry1:sample:electric_field 91 Make/O/T/N=1 name = "electric meter" 92 Make/O/T/N=1 attached_to = "sample" 93 Make/O/T/N=1 measurement = "voltage" 94 NewDataFolder/O/S root:SANS_file:entry1:sample:electric_field:value_log 95 Make/O/T/N=1 start = "2015-02-28T08:15:30-5:00" 96 Make/O/D/N=(n) nx_time = 2*p 97 Make/O/D/N=(n) value = sin(p/10) 98 NewDataFolder/O/S root:SANS_file:entry1:sample:shear_field 99 Make/O/T/N=1 name = "rheometer" 100 Make/O/T/N=1 attached_to = "sample" 101 Make/O/T/N=1 measurement = "stress" 102 NewDataFolder/O/S root:SANS_file:entry1:sample:shear_field:value_log 103 Make/O/T/N=1 start = "2015-02-28T08:15:30-5:00" 104 Make/O/D/N=(n) nx_time = p 105 Make/O/D/N=(n) value = cos(p/5) 106 NewDataFolder/O/S root:SANS_file:entry1:sample:pressure 107 Make/O/T/N=1 name = "Sample pressure" 108 Make/O/T/N=1 attached_to = "pressure cell" 109 Make/O/T/N=1 measurement = "pressure" 110 NewDataFolder/O/S root:SANS_file:entry1:sample:pressure:value_log 111 Make/O/T/N=1 start = "2015-02-28T08:15:30-5:00" 112 Make/O/D/N=(n) nx_time = p 113 Make/O/D/N=(n) value = p/2 114 NewDataFolder/O/S root:SANS_file:entry1:sample:magnetic_field 115 Make/O/T/N=1 name = "magnetic field (direction)" 116 Make/O/T/N=1 attached_to = "cryostat" 117 Make/O/T/N=1 measurement = "magnetic field" 118 NewDataFolder/O/S root:SANS_file:entry1:sample:magnetic_field:value_log 119 Make/O/T/N=1 start = "2015-02-28T08:15:30-5:00" 120 Make/O/D/N=(n) nx_time = p 121 Make/O/D/N=(n) value = 10*p 122 SetDataFolder root:SANS_file:entry1:sample 123 Make/O/D/N=1 changer_position = 5 124 Make/O/T/N=1 sample_holder_description = "10CB" 125 // Make/O/D/N=1 mass = 0.3 126 // Make/O/D/N=1 density = 1.02 127 // Make/O/D/N=1 molecular_weight = 194.19 128 // Make/O/T/N=1 description = "My Sample" 129 // Make/O/T/N=1 preparation_date = "2015-02-28T08:15:30-5:00" 130 // Make/O/D/N=1 volume_fraction = 0.2 131 // Make/O/D/N=1 scattering_length_density = 6.35e-6 132 Make/O/D/N=1 thickness = 0.1 133 Make/O/D/N=1 rotation_angle = 30 134 Make/O/D/N=1 transmission = 0.888 135 Make/O/D/N=1 transmission_error = 0.011 136 // Make/O/D/N=1 xs_incoh = 5.5 137 // Make/O/D/N=1 xs_coh = 22.2 138 // Make/O/D/N=1 xs_absorb = 3.1 139 NewDataFolder/O/S root:SANS_file:entry1:instrument 140 // Make/O/T/N=1 location = "NCNR" 141 Make/O/T/N=1 name = "NGB30mSANS" 142 Make/O/T/N=1 type = "30 m SANS" 143 Make/O/T/N=1 local_contact = "Steve Kline" 144 NewDataFolder/O/S root:SANS_file:entry1:instrument:source 145 Make/O/T/N=1 name = "NCNR" 146 Make/O/T/N=1 type = "Reactor Neutron Source" 147 Make/O/T/N=1 probe = "neutron" 148 Make/O/D/N=1 power = 20 149 NewDataFolder/O/S root:SANS_file:entry1:instrument:beam_monitor 150 Make/O/D/N=1 data = 1234567 151 Make/O/T/N=1 type = "monitor" 152 Make/O/D/N=1 efficiency = 0.01 153 Make/O/D/N=1 nx_distance = 16 154 Make/O/D/N=1 saved_count = 1e8 155 NewDataFolder/O/S root:SANS_file:entry1:instrument:monochromator 156 Make/O/D/N=1 wavelength = 6 157 Make/O/D/N=1 wavelength_spread = 0.15 158 Make/O/T/N=1 type = "VS" 159 NewDataFolder/O/S root:SANS_file:entry1:instrument:monochromator:velocity_selector 160 Make/O/D/N=1 rotation_speed = 5100 161 Make/O/D/N=1 wavelength = 6 162 Make/O/D/N=1 wavelength_spread = 0.15 163 Make/O/D/N=1 vs_tilt = 3 164 Make/O/D/N=1 nx_distance = 18.8 165 //table 166 NewDataFolder/O/S root:SANS_file:entry1:instrument:polarizer 167 Make/O/T/N=1 type = "supermirror" 168 Make/O/T/N=1 composition = "multilayer" 169 Make/O/D/N=1 efficiency = 0.95 170 Make/O/T/N=1 status = "in" 171 NewDataFolder/O/S root:SANS_file:entry1:instrument:flipper 172 Make/O/T/N=1 status = "on" 173 Make/O/D/N=1 driving_current = 42 174 Make/O/T/N=1 waveform = "sine" 175 Make/O/D/N=1 frequency = 400 176 Make/O/D/N=1 transmitted_power = 0.99 177 NewDataFolder/O/S root:SANS_file:entry1:instrument:polarizer_analyzer 178 Make/O/T/N=1 status = "down" 179 Make/O/D/N=1 guide_field_current_1 = 33 180 Make/O/D/N=1 guide_field_current_2 = 32 181 Make/O/D/N=1 solenoid_current = 21 182 Make/O/D/N=1 cell_index = 1 183 Make/O/T/N=(5) cell_names = {"Burgundy","Olaf","Jim","Bob","Joe"} 184 Make/O/D/N=(5,2) cell_parameters = 1 185 NewDataFolder/O/S root:SANS_file:entry1:instrument:chopper 186 Make/O/T/N=1 type = "single" 187 Make/O/T/N=1 status = "in" 188 Make/O/D/N=1 rotation_speed = 12000 189 Make/O/D/N=1 distance_from_source = 400 190 Make/O/D/N=1 distance_from_sample = 1500 191 Make/O/D/N=1 slits = 2 192 Make/O/D/N=1 angular_opening = 15 193 Make/O/D/N=1 duty_cycle = 0.25 194 NewDataFolder/O/S root:SANS_file:entry1:instrument:attenuator 195 Make/O/D/N=1 nx_distance = 1500 196 Make/O/T/N=1 type = "PMMA" 197 Make/O/D/N=1 thickness = 0 198 Make/O/D/N=1 attenuator_transmission = 1 199 Make/O/T/N=1 status = "in" 200 Make/O/D/N=1 atten_number = 0 201 Make/O/D/N=(10,10) index = 1 202 NewDataFolder/O/S root:SANS_file:entry1:instrument:source_aperture 203 // Make/O/T/N=1 material = "Gd" 204 Make/O/T/N=1 description = "source aperture" 205 Make/O/D/N=1 diameter = 1.27 206 Make/O/D/N=1 nx_distance = 13.0 207 NewDataFolder/O/S root:SANS_file:entry1:instrument:source_aperture:shape 208 Make/O/D/N=(1,2) size = 1.27 209 NewDataFolder/O/S root:SANS_file:entry1:instrument:sample_aperture 210 // Make/O/T/N=1 material = "Gd" 211 Make/O/T/N=1 description = "sample aperture" 212 Make/O/D/N=1 diameter = 1.27 213 Make/O/D/N=1 nx_distance = 10 214 NewDataFolder/O/S root:SANS_file:entry1:instrument:sample_aperture:shape 215 Make/O/D/N=(1,2) size = 1.27 216 NewDataFolder/O/S root:SANS_file:entry1:instrument:collimator 217 NewDataFolder/O/S root:SANS_file:entry1:instrument:collimator:geometry 218 NewDataFolder/O/S root:SANS_file:entry1:instrument:collimator:geometry:shape 219 Make/O/T/N=1 shape = "box" 220 Make/O/D/N=1 size = 11 221 Make/O/I/N=1 nx_NumGuides = 1 222 NewDataFolder/O/S root:SANS_file:entry1:instrument:lenses 223 Make/O/T/N=1 status = "in" 224 Make/O/T/N=1 lens_geometry = "concave_lens" 225 Make/O/T/N=1 focus_type = "point" 226 Make/O/I/N=1 number_of_lenses = 28 227 Make/O/I/N=1 number_of_prisms = 7 228 Make/O/D/N=1 curvature = 1 229 Make/O/D/N=1 lens_distance = 123 230 Make/O/D/N=1 prism_distance = 123 231 Make/O/T/N=1 lens_material = "MgF2" 232 Make/O/T/N=1 prism_material = "MgF2" 233 NewDataFolder/O/S root:SANS_file:entry1:instrument:sample_table 234 Make/O/T/N=1 location = "chamber" 235 Make/O/D/N=1 offset_distance = 0 236 NewDataFolder/O/S root:SANS_file:entry1:instrument:beam_stop 237 Make/O/T/N=1 description = "circular" 238 Make/O/D/N=1 nx_distance = 12.5 239 Make/O/D/N=1 size = 7.62 240 Make/O/T/N=1 status = "out" 241 Make/O/D/N=1 xPos = 66.4 242 Make/O/D/N=1 yPos = 64.4 243 Make/O/D/N=1 x_motor_position = 0.15 244 Make/O/D/N=1 y_motor_position = 0.55 245 NewDataFolder/O/S root:SANS_file:entry1:instrument:detector 246 Make/O/I/N=(128,128) data = trunc(abs(gnoise(p+q))) 247 // Make/O/D/N=(128,128) data_error = 0.01*abs(gnoise(p+q)) 248 Make/O/D/N=1 nx_distance = 13.1 249 Make/O/T/N=1 description = "Ordela 2660N" 250 Make/O/T/N=1 settings = "just right" 251 Make/O/D/N=1 dead_time = 5e-6 252 Make/O/D/N=1 x_pixel_size = 5.08 253 Make/O/D/N=1 y_pixel_size = 5.08 254 Make/O/D/N=1 beam_center_x = 65.55 255 Make/O/D/N=1 beam_center_y = 62.33 256 Make/O/T/N=1 type = "Ordela" 257 // Make/O/D/N=1 flatfield_applied = 0 258 // Make/O/D/N=1 countrate_correction_applied = 0 259 Make/O/D/N=(128,128) pixel_mask = 0 260 Make/O/I/N=1 integrated_count = 100111222 261 Make/O/D/N=1 lateral_offset = 20 262 Make/O/I/N=1 PixelNumX = 128 263 Make/O/I/N=1 PixelNumY = 128 264 Make/O/D/N=1 PixelFWHM = 0.5 265 //calibration_method 266 Make/O/D/N=3 CALX = {0.5,0.5,10000} 267 Make/O/D/N=3 CALY = {0.5,0.5,10000} 268 Make/O/D/N=1 size = 65 269 Make/O/T/N=1 event_file_name ="something.hst" 270 NewDataFolder/O/S root:SANS_file:entry1:data 271 Make/O/I/N=(128,128) data = trunc(abs(gnoise(p+q))) 272 // Make/O/D/N=(128,128) error = 0.01*abs(gnoise(p+q)) 273 Make/O/D/N=2 variables = {128,128} 274 Make/O/I/N=(128,128) data_image = p 275 NewDataFolder/O/S root:SANS_file:entry1:reduction 276 Make/O/T/N=1 intent = "SCATTER" 277 Make/O/T/N=1 transmission_file_name = "SANSFile_TRN.h5" 278 Make/O/T/N=1 empty_beam_file_name = "SANSFile_EB.h5" 279 Make/O/T/N=1 background_file_name = "SANSFile_BKG.h5" 280 Make/O/T/N=1 empty_file_name = "SANSFile_EMP.h5" 281 Make/O/T/N=1 sensitivity_file_name = "SANSFile_DIV.h5" 282 Make/O/T/N=1 mask_file_name = "SANSFile_MASK.h5" 283 Make/O/T/N=1 sans_log_file_name = "SANSFile_log.txt" 284 Make/O/D/N=1 whole_trans = 0.888 285 Make/O/D/N=1 whole_trans_error = 0.008 286 Make/O/D/N=1 box_count = 23232 287 Make/O/D/N=1 box_count_error = 22 288 Make/O/I/N=4 box_coordinates = {50,80,45,75} 289 Make/O/T/N=1 comments = "extra data comments" 290 Make/O/D/N=4 absolute_scaling = {1,1,1e5,1} 291 NewDataFolder/O/S root:SANS_file:entry1:reduction:pol_sans 292 Make/O/T/N=1 pol_sans_purpose = "name from the list" 293 Make/O/T/N=1 cell_name = "Burgundy" 294 Make/O/D/N=(5) cell_parameters = {1,2,3,4,5} 295 296 297 NewDataFolder/O/S root:SANS_file:DAS_Logs 298 //...multiple entries and levels... to add 299 300 SetDataFolder root: 301 302 End 303 304 305 306 307 Proc H_Fill_SANS_Attributes() 308 309 SetDataFolder root:SANS_file 310 Make/O/N=0 Igor___folder_attributes 311 Note/K Igor___folder_attributes, "producer=IgorPro\rNX_class=NXroot" 312 // file_name 313 // file_time 314 // facility 315 // NeXus_version 316 // hdf_version 317 // file_history 318 SetDataFolder root:SANS_file:entry1 319 Make/O/N=0 Igor___folder_attributes 320 Note/K Igor___folder_attributes, "NX_class=NXentry" 321 // title 322 // experiment_identifier 323 // experiment_description 324 // entry_identifier 325 // definition 326 // start_time 327 // end_time 328 // duration 329 Note/K duration, "units=s" 330 // collection_time 331 Note/K collection_time, "units=s" 332 // run_cycle 333 // data_directory 334 // program_name 335 SetDataFolder root:SANS_file:entry1:user 336 Make/O/N=0 Igor___folder_attributes 337 Note/K Igor___folder_attributes, "NX_class=NXuser" 338 // name 339 // role 340 // affiliation 341 // address 342 // telephoneNumber 343 // faxNumber 344 // email 345 // facility_user_id 346 SetDataFolder root:SANS_file:entry1:control 347 Make/O/N=0 Igor___folder_attributes 348 Note/K Igor___folder_attributes, "NX_class=NXmonitor" 349 // mode 350 // preset 351 // integral 352 // monitor_counts 353 // monitor_preset 354 // detector_counts 355 // detector_preset 356 // type 357 // efficiency 358 // sampled_fraction 359 // count_start 360 Note/K count_start, "units=s" 361 // count_end 362 Note/K count_end, "units=s" 363 // count_time 364 Note/K count_time, "units=s" 365 // count_time_preset 366 Note/K count_time_preset, "units=s" 367 // SetDataFolder root:SANS_file:entry1:program_name 368 // Make/O/N=0 Igor___folder_attributes 369 // data 370 // description 371 // file_name 372 // type 373 SetDataFolder root:SANS_file:entry1:sample 374 Make/O/N=0 Igor___folder_attributes 375 Note/K Igor___folder_attributes, "NX_class=NXsample" 376 // description 377 // group_id 378 // chemical_formula 379 SetDataFolder root:SANS_file:entry1:sample:temperature_1 380 Make/O/N=0 Igor___folder_attributes 381 Note/K Igor___folder_attributes, "NX_class=NXsensor" 382 // name 383 // attached_to 384 // measurement 385 SetDataFolder root:SANS_file:entry1:sample:temperature_1:value_log 386 Make/O/N=0 Igor___folder_attributes 387 Note/K Igor___folder_attributes, "NX_class=NXlog" 388 // start 389 // nx_time 390 Note/K nx_time, "units=s" 391 // value 392 Note/K value, "units=C" 393 SetDataFolder root:SANS_file:entry1:sample:temperature_2 394 Make/O/N=0 Igor___folder_attributes 395 Note/K Igor___folder_attributes, "NX_class=NXsensor" 396 // name 397 // attached_to 398 // measurement 399 SetDataFolder root:SANS_file:entry1:sample:temperature_2:value_log 400 Make/O/N=0 Igor___folder_attributes 401 Note/K Igor___folder_attributes, "NX_class=NXlog" 402 // start 403 // nx_time 404 Note/K nx_time, "units=s" 405 // value 406 Note/K value, "units=C" 407 SetDataFolder root:SANS_file:entry1:sample:electric_field 408 Make/O/N=0 Igor___folder_attributes 409 Note/K Igor___folder_attributes, "NX_class=NXsensor" 410 // name 411 // attached_to 412 // measurement 413 SetDataFolder root:SANS_file:entry1:sample:electric_field:value_log 414 Make/O/N=0 Igor___folder_attributes 415 Note/K Igor___folder_attributes, "NX_class=NXlog" 416 // start 417 // nx_time 418 Note/K nx_time, "units=s" 419 // value 420 Note/K value, "units=V" 421 SetDataFolder root:SANS_file:entry1:sample:shear_field 422 Make/O/N=0 Igor___folder_attributes 423 Note/K Igor___folder_attributes, "NX_class=NXsensor" 424 // name 425 // attached_to 426 // measurement 427 SetDataFolder root:SANS_file:entry1:sample:shear_field:value_log 428 Make/O/N=0 Igor___folder_attributes 429 Note/K Igor___folder_attributes, "NX_class=NXlog" 430 // start 431 // nx_time 432 Note/K nx_time, "units=s" 433 // value 434 Note/K value, "units=Pa s" 435 SetDataFolder root:SANS_file:entry1:sample:pressure 436 Make/O/N=0 Igor___folder_attributes 437 Note/K Igor___folder_attributes, "NX_class=NXsensor" 438 // name 439 // attached_to 440 // measurement 441 SetDataFolder root:SANS_file:entry1:sample:pressure:value_log 442 Make/O/N=0 Igor___folder_attributes 443 Note/K Igor___folder_attributes, "NX_class=NXlog" 444 // start 445 // nx_time 446 Note/K nx_time, "units=s" 447 // value 448 Note/K value, "units=psi" 449 SetDataFolder root:SANS_file:entry1:sample:magnetic_field 450 Make/O/N=0 Igor___folder_attributes 451 Note/K Igor___folder_attributes, "NX_class=NXsensor" 452 // name 453 // attached_to 454 // measurement 455 SetDataFolder root:SANS_file:entry1:sample:magnetic_field:value_log 456 Make/O/N=0 Igor___folder_attributes 457 Note/K Igor___folder_attributes, "NX_class=NXlog" 458 // start 459 // nx_time 460 Note/K nx_time, "units=s" 461 // value 462 Note/K value, "units=T" 463 SetDataFolder root:SANS_file:entry1:sample 464 // changer_position 465 // sample_holder_description 466 // mass 467 // Note/K mass, "units=g" 468 // density 469 // Note/K density, "units=g ml-1" 470 // molecular_weight 471 // Note/K molecular_weight, "units=g mol-1" 472 // description 473 // preparation_date 474 // volume_fraction 475 // scattering_length_density 476 // Note/K scattering_length_density, "units=A-2" 477 // thickness 478 Note/K thickness, "units=cm" 479 // rotation_angle 480 Note/K rotation_angle, "units=degrees" 481 // transmission 482 // transmission_error 483 // xs_incoh 484 // Note/K xs_incoh, "units=cm-1" 485 // xs_coh 486 // Note/K xs_coh, "units=cm-1" 487 // xs_absorb 488 // Note/K xs_absorb, "units=cm-1" 489 SetDataFolder root:SANS_file:entry1:instrument 490 Make/O/N=0 Igor___folder_attributes 491 Note/K Igor___folder_attributes, "NX_class=NXinstrument" 492 // location 493 // name 494 // type 495 // local_contact 496 SetDataFolder root:SANS_file:entry1:instrument:source 497 Make/O/N=0 Igor___folder_attributes 498 Note/K Igor___folder_attributes, "NX_class=NXsource" 499 // name 500 // type 501 // probe 502 // power 503 Note/K power, "units=MW" 504 SetDataFolder root:SANS_file:entry1:instrument:beam_monitor 505 Make/O/N=0 Igor___folder_attributes 506 Note/K Igor___folder_attributes, "NX_class=NXmonitor" 507 // data 508 // type 509 // efficiency 510 // nx_distance 511 Note/K nx_distance, "units=m" 512 // saved_count 513 SetDataFolder root:SANS_file:entry1:instrument:monochromator 514 Make/O/N=0 Igor___folder_attributes 515 Note/K Igor___folder_attributes, "NX_class=NXmonochromator" 516 // wavelength 517 Note/K wavelength, "units=A" 518 // wavelength_spread 519 // type 520 SetDataFolder root:SANS_file:entry1:instrument:monochromator:velocity_selector 521 Make/O/N=0 Igor___folder_attributes 522 Note/K Igor___folder_attributes, "NX_class=NXvelocity_selector" 523 // rotation_speed 524 Note/K rotation_speed, "units=RPM" 525 // wavelength 526 Note/K wavelength, "units=A" 527 // wavelength_spread 528 // vs_tilt 529 Note/K vs_tilt, "units=degrees" 530 // nx_distance 531 Note/K nx_distance, "units=m" 532 //table 533 SetDataFolder root:SANS_file:entry1:instrument:polarizer 534 Make/O/N=0 Igor___folder_attributes 535 // type 536 // composition 537 // efficiency 538 // status 539 SetDataFolder root:SANS_file:entry1:instrument:flipper 540 Make/O/N=0 Igor___folder_attributes 541 // status 542 // driving_current 543 Note/K driving_current, "units=A" 544 // waveform 545 // frequency 546 Note/K frequency, "units=Hz" 547 // transmitted_power 548 SetDataFolder root:SANS_file:entry1:instrument:polarizer_analyzer 549 Make/O/N=0 Igor___folder_attributes 550 // status 551 // guide_field_current_1 552 Note/K guide_field_current_1, "units=A" 553 // guide_field_current_2 554 Note/K guide_field_current_2, "units=A" 555 // solenoid_current 556 Note/K solenoid_current, "units=A" 557 // cell_index 558 // cell_names 559 // cell_parameters 560 SetDataFolder root:SANS_file:entry1:instrument:chopper 561 Make/O/N=0 Igor___folder_attributes 562 Note/K Igor___folder_attributes, "NX_class=NXdisk_chopper" 563 // type 564 // status 565 // rotation_speed 566 Note/K rotation_speed, "units=RPM" 567 // distance_from_source 568 Note/K distance_from_source, "units=m" 569 // distance_from_sample 570 Note/K distance_from_sample, "units=m" 571 // slits 572 // angular_opening 573 Note/K angular_opening, "units=degrees" 574 // duty_cycle 575 SetDataFolder root:SANS_file:entry1:instrument:attenuator 576 Make/O/N=0 Igor___folder_attributes 577 Note/K Igor___folder_attributes, "NX_class=NXattenuator" 578 // nx_distance 579 Note/K nx_distance, "units=m" 580 // type 581 // thickness 582 Note/K thickness, "units=cm" 583 // attenuator_transmission 584 // status 585 // atten_number 586 // index 587 SetDataFolder root:SANS_file:entry1:instrument:source_aperture 588 Make/O/N=0 Igor___folder_attributes 589 Note/K Igor___folder_attributes, "NX_class=NXaperture" 590 // material 591 // description 592 // diameter 593 Note/K diameter, "units=cm" 594 // nx_distance 595 Note/K nx_distance, "units=m" 596 SetDataFolder root:SANS_file:entry1:instrument:source_aperture:shape 597 Make/O/N=0 Igor___folder_attributes 598 Note/K Igor___folder_attributes, "NX_class=NXshape" 599 // size 600 Note/K size, "units=cm" 601 SetDataFolder root:SANS_file:entry1:instrument:sample_aperture 602 Make/O/N=0 Igor___folder_attributes 603 Note/K Igor___folder_attributes, "NX_class=NXaperture" 604 // material 605 // description 606 // diameter 607 Note/K diameter, "units=cm" 608 // nx_distance 609 Note/K nx_distance, "units=m" 610 SetDataFolder root:SANS_file:entry1:instrument:sample_aperture:shape 611 Make/O/N=0 Igor___folder_attributes 612 Note/K Igor___folder_attributes, "NX_class=NXshape" 613 // size 614 Note/K size, "units=cm" 615 SetDataFolder root:SANS_file:entry1:instrument:collimator 616 SetDataFolder root:SANS_file:entry1:instrument:collimator:geometry 617 SetDataFolder root:SANS_file:entry1:instrument:collimator:geometry:shape 618 // shape 619 // size 620 Note/K size, "units=m" 621 // nx_NumGuides 622 SetDataFolder root:SANS_file:entry1:instrument:lenses 623 Make/O/N=0 Igor___folder_attributes 624 Note/K Igor___folder_attributes, "NX_class=NXxraylens" 625 // status 626 // lens_geometry 627 // focus_type 628 // number_of_lenses 629 // number_of_prisms 630 // curvature 631 // lens_distance 632 Note/K lens_distance, "units=m" 633 // prism_distance 634 Note/K prism_distance, "units=m" 635 // lens_material 636 // prism_material 637 SetDataFolder root:SANS_file:entry1:instrument:sample_table 638 Make/O/N=0 Igor___folder_attributes 639 // location 640 // offset_distance 641 Note/K offset_distance, "units=cm" 642 SetDataFolder root:SANS_file:entry1:instrument:beam_stop 643 Make/O/N=0 Igor___folder_attributes 644 Note/K Igor___folder_attributes, "NX_class=NXbeam_stop" 645 // description 646 // nx_distance 647 Note/K nx_distance, "units=m" 648 // size 649 Note/K size, "units=cm" 650 // status 651 // xPos 652 // yPos 653 // x_motor_position 654 Note/K x_motor_position, "units=cm" 655 // y_motor_position 656 Note/K y_motor_position, "units=cm" 657 SetDataFolder root:SANS_file:entry1:instrument:detector 658 Make/O/N=0 Igor___folder_attributes 659 Note/K Igor___folder_attributes, "NX_class=NXdetector" 660 // data 661 Note/K data, "signal=1" 662 // data_error 663 // nx_distance 664 Note/K nx_distance, "units=m" 665 // description 666 // settings 667 // dead_time 668 Note/K dead_time, "units=s" 669 // x_pixel_size 670 Note/K x_pixel_size, "units=cm" 671 // y_pixel_size 672 Note/K y_pixel_size, "units=cm" 673 // beam_center_x 674 // beam_center_y 675 // type 676 // flatfield_applied 677 // countrate_correction_applied 678 // pixel_mask 679 // integrated_count 680 // lateral_offset 681 Note/K lateral_offset, "units=cm" 682 // PixelNumX 683 // PixelNumY 684 // PixelFWHM 685 //calibration_method 686 // CALX 687 // CALY 688 // size 689 Note/K size, "units=cm" 690 // event_file_name 691 SetDataFolder root:SANS_file:entry1:data 692 Make/O/N=0 Igor___folder_attributes 693 Note/K Igor___folder_attributes, "NX_class=NXdata" 694 // data 695 Note/K data, "signal=1" 696 // error 697 // variables 698 // data_image 699 SetDataFolder root:SANS_file:entry1:reduction 700 Make/O/N=0 Igor___folder_attributes 701 // intent 702 // transmission_file_name 703 // empty_beam_file_name 704 // background_file_name 705 // empty_file_name 706 // sensitivity_file_name 707 // mask_file_name 708 // sans_log_file_name 709 // whole_trans 710 // whole_trans_error 711 // box_count 712 // box_count_error 713 // box_coordinates 714 // comments 715 // absolute_scaling 716 SetDataFolder root:SANS_file:entry1:reduction:pol_sans 717 Make/O/N=0 Igor___folder_attributes 718 // pol_sans_purpose 719 // cell_name 720 // cell_parameters 721 722 SetDataFolder root:SANS_file:DAS_Logs 723 Make/O/N=0 Igor___folder_attributes 724 Note/K Igor___folder_attributes, "NX_class=NXlog" 725 //...multiple entries and levels... to add 726 727 728 SetDataFolder root: 729 730 End 19 /// 20 // for the simulator, routines to be able to write out a proper Nexus file 21 // based on a template 22 //// 23 24 25 26 // overwrites the dummy values as needed with SASCALC information 27 // 28 // TODO 29 // issues here with the potential for Nexus to have data as INTEGER 30 // where I'd rather have the data here in Igor be DP, so there are no 31 // conversion/assignment issues 32 // 33 // simuation data from VCALC = DP, but I need to assign to an Integer wave... 34 // - sometimes this works, sometimes not... 35 // may need to Redimension/I 36 // 37 /// break this up into several smaller procedures as this is a VERY lengthy task to do 38 39 // TODO 40 // set the "accessible" copies of the data (these are really to be links in the file!) 41 42 43 44 // 45 // A "template" VSANS Nexus file has been loaded and is then filled in with 46 // the simulation results. Some of teh file, will therefor be garbage, but the 47 // overall structure and attributes should be correct. 48 // 49 // Hopefully this will make the maintenance and testing of the file structure easier... 50 // AUG 2015 51 // 52 /////////////////////////// 53 // 54 // these are all of the VCALC changes to the simulated files. ADD to these as needed, making these changes to the 55 // folder structure after the "default" values have been re-filled in the waves (to make sure something is really there) 56 // 57 //////////////////////// 58 59 // TODO: 60 // -- Need to write all of the "accessors" to r/w all of the simulated bits to the data file... lots to do 61 // -- THIS DOES NOT MATCH THE CURRENT NICE_GENERATED FILE !!!! 62 // 63 64 731 65 732 66 // … … 734 68 // of how to ever keep this in sync if the Nexus tree changes... 735 69 // 736 Proc H_Fill_SANS_ wSim()70 Proc H_Fill_SANS_Template_wSim() 737 71 738 72 SetDataFolder root:SANS_file -
sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/Nexus_VSANS_Write.ipf
r959 r960 1 1 #pragma rtGlobals=3 // Use modern global access method and strict wave access. 2 2 3 4 // 5 // this is a test of the "new"V SANS file structure that is supposed to be 6 // NeXus compliant. It doesn't have the NICE logs, but has everything that I 7 // can think of here. 8 // 9 10 // 11 // To properly generate a Nexus file with attributes, using Pete Jemain's procedures: 12 // 13 // Generating the "current" Igor macros: 14 // - From the outlines, make a copy of the outline, and export some of the selected 15 // columns to be able to: 16 // 1) Make all of the waves and folders 17 // 2) Add attributes (only) to the existing tree 18 // 3) Fill the tree with simulation values 19 // (still don't know here how to not lose the "=VCALC_getWavelength" statements 20 // and similar assignments. these are not part of the outline) 21 // 22 // 23 // 24 // Generate the data file: 25 // 1) Set down the folder structure: H_Setup_SANS_Structure() 26 // 2) Write in the attributes: H_FillSANS_Attributes() 27 // 3) Fill with simulated data: H_FillSANS_wSim() 28 // 29 // There is now a SANS_file folder which contains everything, but is not "aware" 30 // of any of references that Pete's gateway needs. 31 // 32 // 4) Save the folder to HDF5: Save_VSANS_file() 33 // attributes are not saved, but the tree is correct 34 // 5) Load back in to generate xref: H_HDF5Gate_ReadTest() 35 // no attributes loaded, but HDF5___xref is generated 36 // 6) From the loaded folder, save xref: Save_HDF5___xref() 37 // save it to disk 38 // 7) Copy the reference to SANS_file: Copy_HDF5___xref() 39 // load it from disk, and copy it to the folder 40 // 8) Save the folder using the gateway: H_HDF5Gate_WriteVSANS() 41 // now, the Nexus file is saved with attributes 42 // 43 44 45 46 // 47 // lays out the tree and fills with dummy values 48 // 49 Proc H_Setup_VSANS_Structure() 50 51 Variable n=100 52 Variable tubes=48 53 54 NewDataFolder/O/S root:VSANS_file 55 Make/O/T/N=1 file_name = "VSANSTest.h5" 56 Make/O/T/N=1 file_time = "2015-02-28T08:15:30-5:00" 57 Make/O/T/N=1 facility = "NCNR" 58 Make/O/T/N=1 NeXus_version = "Nexus 0.0" 59 Make/O/T/N=1 hdf_version = "hdf5.x" 60 Make/O/T/N=1 file_history = "history log" 61 NewDataFolder/O/S root:VSANS_file:entry1 62 Make/O/T/N=1 title = "title of entry1" 63 Make/O/D/N=1 experiment_identifier = 684636 64 Make/O/T/N=1 experiment_description = "description of expt" 65 Make/O/T/N=1 entry_identifier = "S22-33" 66 Make/O/T/N=1 definition = "NXsas" 67 Make/O/T/N=1 start_time = "2015-02-28T08:15:30-5:00" 68 Make/O/T/N=1 end_time = "2015-02-28T08:15:30-5:00" 69 Make/O/D/N=1 duration = 300 70 Make/O/D/N=1 collection_time = 300 71 Make/O/T/N=1 run_cycle = "S22-23" 72 Make/O/T/N=1 data_directory = "[VSANS_VSANS]" 73 Make/O/T/N=1 program_name = "runPoint={stuff}" 74 NewDataFolder/O/S root:VSANS_file:entry1:user 75 Make/O/T/N=1 name = "Dr. Pi" 76 Make/O/T/N=1 role = "evil scientist" 77 Make/O/T/N=1 affiliation = "NIST" 78 Make/O/T/N=1 address = "100 Bureau Drive" 79 Make/O/T/N=1 telephoneNumber = "301-999-9999" 80 Make/O/T/N=1 faxNumber = "301-999-9999" 81 Make/O/T/N=1 email = "sans@nist" 82 Make/O/I/N=1 facility_user_id = 6937596 83 NewDataFolder/O/S root:VSANS_file:entry1:control 84 Make/O/T/N=1 mode = "timer" 85 Make/O/D/N=1 preset = 555 86 Make/O/D/N=1 integral = 555 87 Make/O/D/N=1 monitor_counts = 666 88 Make/O/D/N=1 monitor_preset = 1e8 89 //Make/O/T/N=1 type = "monitor type" 90 //Make/O/D/N=1 efficiency = 0.01 91 //Make/O/D/N=1 sampled_fraction = 1 92 Make/O/D/N=1 detector_counts = 100111222 93 Make/O/D/N=1 detector_preset = 1e5 94 Make/O/D/N=1 count_start = 1 95 Make/O/D/N=1 count_end = 1 96 Make/O/D/N=1 count_time = 1 97 Make/O/D/N=1 count_time_preset = 1 98 //NewDataFolder/O/S root:VSANS_file:entry1:program_name //program_data 99 //Make/O/T/N=1 //data = "program data" 100 //Make/O/T/N=1 //description = "acquisition" 101 //Make/O/T/N=1 //file_name = "NICE" 102 //Make/O/T/N=1 //type = "client" 103 NewDataFolder/O/S root:VSANS_file:entry1:sample 104 Make/O/T/N=1 description = "My Sample" 105 Make/O/D/N=1 group_id = 12345 106 //Make/O/T/N=1 //chemical_formula = "C8H10N4O2" 107 NewDataFolder/O/S root:VSANS_file:entry1:sample:temperature_1 108 Make/O/T/N=1 name = "Sample temperature" 109 Make/O/T/N=1 attached_to = "block" 110 Make/O/T/N=1 measurement = "temperature" 111 NewDataFolder/O/S root:VSANS_file:entry1:sample:temperature_1:value_log 112 Make/O/T/N=1 start = "2015-02-28T08:15:30-5:00" 113 Make/O/D/N=(n) nx_time = p 114 Make/O/D/N=(n) value = 2*p 115 NewDataFolder/O/S root:VSANS_file:entry1:sample:temperature_2 116 Make/O/T/N=1 name = "Sample temperature" 117 Make/O/T/N=1 attached_to = "block" 118 Make/O/T/N=1 measurement = "temperature" 119 NewDataFolder/O/S root:VSANS_file:entry1:sample:temperature_2:value_log 120 Make/O/T/N=1 start = "2015-02-28T08:15:30-5:00" 121 Make/O/D/N=(n) nx_time = p 122 Make/O/D/N=(n) value = 3*p 123 NewDataFolder/O/S root:VSANS_file:entry1:sample:electric_field 124 Make/O/T/N=1 name = "electric meter" 125 Make/O/T/N=1 attached_to = "sample" 126 Make/O/T/N=1 measurement = "voltage" 127 NewDataFolder/O/S root:VSANS_file:entry1:sample:electric_field:value_log 128 Make/O/T/N=1 start = "2015-02-28T08:15:30-5:00" 129 Make/O/D/N=(n) nx_time = 2*p 130 Make/O/D/N=(n) value = sin(p/10) 131 NewDataFolder/O/S root:VSANS_file:entry1:sample:shear_field 132 Make/O/T/N=1 name = "rheometer" 133 Make/O/T/N=1 attached_to = "sample" 134 Make/O/T/N=1 measurement = "stress" 135 NewDataFolder/O/S root:VSANS_file:entry1:sample:shear_field:value_log 136 Make/O/T/N=1 start = "2015-02-28T08:15:30-5:00" 137 Make/O/D/N=(n) nx_time = p 138 Make/O/D/N=(n) value = cos(p/5) 139 NewDataFolder/O/S root:VSANS_file:entry1:sample:pressure 140 Make/O/T/N=1 name = "Sample pressure" 141 Make/O/T/N=1 attached_to = "pressure cell" 142 Make/O/T/N=1 measurement = "pressure" 143 NewDataFolder/O/S root:VSANS_file:entry1:sample:pressure:value_log 144 Make/O/T/N=1 start = "2015-02-28T08:15:30-5:00" 145 Make/O/D/N=(n) nx_time = p 146 Make/O/D/N=(n) value = p/2 147 NewDataFolder/O/S root:VSANS_file:entry1:sample:magnetic_field 148 Make/O/T/N=1 name = "magnetic field (direction)" 149 Make/O/T/N=1 attached_to = "cryostat" 150 Make/O/T/N=1 measurement = "magnetic field" 151 NewDataFolder/O/S root:VSANS_file:entry1:sample:magnetic_field:value_log 152 Make/O/T/N=1 start = "2015-02-28T08:15:30-5:00" 153 Make/O/D/N=(n) nx_time = p 154 Make/O/D/N=(n) value = 10*p 155 SetDataFolder root:VSANS_file:entry1:sample 156 Make/O/D/N=1 changer_position = 5 157 Make/O/T/N=1 sample_holder_description = "10CB" 158 //Make/O/D/N=1 //mass = 0.3 159 //Make/O/D/N=1 //density = 1.02 160 //Make/O/D/N=1 //molecular_weight = 194.19 161 //Make/O/T/N=1 //description = "My Sample" 162 //Make/O/T/N=1 //preparation_date = "2015-02-28T08:15:30-5:00" 163 //Make/O/D/N=1 //volume_fraction = 0.2 164 //Make/O/D/N=1 //scattering_length_density = 6.35e-6 165 Make/O/D/N=1 thickness = 0.1 166 Make/O/D/N=1 rotation_angle = 30 167 Make/O/D/N=1 transmission = 0.888 168 Make/O/D/N=1 transmission_error = 0.011 169 //Make/O/D/N=1 //xs_incoh = 5.5 170 //Make/O/D/N=1 //xs_coh = 22.2 171 //Make/O/D/N=1 //xs_absorb = 3.1 172 NewDataFolder/O/S root:VSANS_file:entry1:instrument 173 //Make/O/T/N=1 //location = "NCNR" 174 Make/O/T/N=1 name = "NG3-VSANS" 175 Make/O/T/N=1 type = "VSANS" 176 Make/O/T/N=1 local_contact = "Steve Kline" 177 NewDataFolder/O/S root:VSANS_file:entry1:instrument:source 178 Make/O/T/N=1 name = "NCNR" 179 Make/O/T/N=1 type = "Reactor Neutron Source" 180 Make/O/T/N=1 probe = "neutron" 181 Make/O/D/N=1 power = 20 182 183 NewDataFolder/O/S root:VSANS_file:entry1:instrument:beam_monitor_norm 184 Make/O/D/N=1 data = 1234567 185 Make/O/T/N=1 type = "monitor" 186 Make/O/D/N=1 efficiency = 0.01 187 Make/O/D/N=1 nx_distance = 16 188 Make/O/D/N=1 saved_count = 1e8 189 NewDataFolder/O/S root:VSANS_file:entry1:instrument:beam_monitor_low 190 Make/O/D/N=1 data = 1234567 191 Make/O/T/N=1 type = "monitor" 192 Make/O/D/N=1 efficiency = 0.001 193 Make/O/D/N=1 nx_distance = 16 194 Make/O/D/N=1 saved_count = 1e8 195 196 NewDataFolder/O/S root:VSANS_file:entry1:instrument:monochromator 197 Make/O/D/N=1 wavelength = 5.1 198 Make/O/D/N=1 wavelength_spread = 0.02 199 Make/O/T/N=1 type = "VS" 200 NewDataFolder/O/S root:VSANS_file:entry1:instrument:monochromator:velocity_selector 201 Make/O/T/N=1 status = "in" 202 Make/O/D/N=1 rotation_speed = 5100 203 Make/O/D/N=1 wavelength = 6 204 Make/O/D/N=1 wavelength_spread = 0.15 205 Make/O/D/N=1 vs_tilt = 3 206 Make/O/D/N=1 nx_distance = 18.8 207 // table (wave) 208 NewDataFolder/O/S root:VSANS_file:entry1:instrument:monochromator:crystal 209 Make/O/T/N=1 status = "in" 210 Make/O/D/N=1 nx_distance = 1 211 Make/O/D/N=1 wavelength = 5.1 212 Make/O/D/N=1 wavelength_spread = 0.02 213 Make/O/D/N=1 rotation = 1.1 214 Make/O/D/N=1 energy = 1 215 Make/O/D/N=1 wavevector = 1 216 Make/O/D/N=1 lattice_parameter = 1 217 Make/O/D/N=3 reflection = {1,2,3} 218 Make/O/D/N=1 horizontal_curvature = 1 219 Make/O/D/N=1 vertical_curvature = 1 220 Make/O/D/N=1 horizontal_aperture = 1 221 Make/O/D/N=1 vertical_aperture = 1 222 NewDataFolder/O/S root:VSANS_file:entry1:instrument:monochromator:white_beam 223 Make/O/T/N=1 status = "in" 224 Make/O/D/N=1 wavelength = 5.1 225 Make/O/D/N=1 wavelength_spread = 0.8 226 // description_of_distribution 227 NewDataFolder/O/S root:VSANS_file:entry1:instrument:chopper 228 Make/O/T/N=1 status = "in" 229 Make/O/T/N=1 type = "single" 230 Make/O/D/N=1 rotation_speed = 12000 231 Make/O/D/N=1 distance_from_source = 400 232 Make/O/D/N=1 distance_from_sample = 1500 233 Make/O/D/N=1 slits = 2 234 Make/O/D/N=1 angular_opening = 15 235 Make/O/D/N=1 duty_cycle = 0.25 236 // +? 237 NewDataFolder/O/S root:VSANS_file:entry1:instrument:polarizer 238 Make/O/T/N=1 status = "in" 239 Make/O/T/N=1 type = "supermirror" 240 Make/O/T/N=1 composition = "multilayer" 241 Make/O/D/N=1 efficiency = 0.95 242 Make/O/T/N=1 status = "in" 243 NewDataFolder/O/S root:VSANS_file:entry1:instrument:flipper 244 Make/O/T/N=1 status = "on" 245 Make/O/D/N=1 driving_current = 42 246 Make/O/T/N=1 waveform = "sine" 247 Make/O/D/N=1 frequency = 400 248 Make/O/D/N=1 transmitted_power = 0.99 249 NewDataFolder/O/S root:VSANS_file:entry1:instrument:polarizer_analyzer 250 Make/O/T/N=1 status = "down" 251 Make/O/D/N=1 guide_field_current_1 = 33 252 Make/O/D/N=1 guide_field_current_2 = 32 253 Make/O/D/N=1 solenoid_current = 21 254 Make/O/D/N=1 cell_index = 1 255 Make/O/T/N=(5) cell_names = {"Burgundy","Olaf","Jim","Bob","Joe"} 256 Make/O/D/N=(5,2) cell_parameters = 1 257 258 NewDataFolder/O/S root:VSANS_file:entry1:instrument:attenuator 259 Make/O/D/N=1 nx_distance = 1500 260 Make/O/T/N=1 type = "PMMA" 261 Make/O/D/N=1 thickness = 0 262 Make/O/D/N=1 attenuator_transmission = 1 263 Make/O/T/N=1 status = "in" 264 Make/O/T/N=1 atten_number = "0101" 265 Make/O/D/N=(10,10) index = 1 266 NewDataFolder/O/S root:VSANS_file:entry1:instrument:source_aperture 267 Make/O/T/N=1 material = "Gd" 268 Make/O/T/N=1 description = "source aperture" 269 Make/O/D/N=1 diameter = 1.27 270 Make/O/D/N=1 nx_distance = 13.0 271 NewDataFolder/O/S root:VSANS_file:entry1:instrument:source_aperture:shape 272 Make/O/D/N=(1,2) size = 1.27 273 NewDataFolder/O/S root:VSANS_file:entry1:instrument:sample_aperture 274 Make/O/T/N=1 material = "Gd" 275 Make/O/T/N=1 description = "sample aperture" 276 Make/O/D/N=1 diameter = 1.27 277 Make/O/D/N=1 nx_distance = 10 278 NewDataFolder/O/S root:VSANS_file:entry1:instrument:sample_aperture:shape 279 Make/O/D/N=(1,2) size = 1.27 280 NewDataFolder/O/S root:VSANS_file:entry1:instrument:collimator 281 NewDataFolder/O/S root:VSANS_file:entry1:instrument:collimator:geometry 282 NewDataFolder/O/S root:VSANS_file:entry1:instrument:collimator:geometry:shape 283 Make/O/T/N=1 shape = "box" 284 Make/O/D/N=1 size = 11 285 Make/O/I/N=1 nx_NumGuides = 1 286 NewDataFolder/O/S root:VSANS_file:entry1:instrument:converging_pinholes 287 Make/O/T/N=1 status = "in" 288 NewDataFolder/O/S root:VSANS_file:entry1:instrument:converging_slits 289 Make/O/T/N=1 status = "in" 290 NewDataFolder/O/S root:VSANS_file:entry1:instrument:lenses 291 Make/O/T/N=1 status = "in" 292 Make/O/T/N=1 lens_geometry = "concave_lens" 293 Make/O/T/N=1 focus_type = "point" 294 Make/O/I/N=1 number_of_lenses = 28 295 Make/O/I/N=1 number_of_prisms = 7 296 Make/O/D/N=1 curvature = 1 297 Make/O/D/N=1 lens_distance = 123 298 Make/O/D/N=1 prism_distance = 123 299 Make/O/T/N=1 lens_material = "MgF2" 300 Make/O/T/N=1 prism_material = "MgF2" 301 NewDataFolder/O/S root:VSANS_file:entry1:instrument:sample_table 302 Make/O/T/N=1 location = "chamber" 303 Make/O/D/N=1 offset_distance = 0 304 NewDataFolder/O/S root:VSANS_file:entry1:instrument:beam_stop 305 Make/O/T/N=1 status = "out" 306 Make/O/T/N=1 description = "circular" 307 Make/O/D/N=1 nx_distance = 12.5 308 Make/O/D/N=1 size = 7.62 309 Make/O/D/N=1 xPos = 66.4 310 Make/O/D/N=1 yPos = 64.4 311 Make/O/D/N=1 x_motor_position = 0.15 312 Make/O/D/N=1 y_motor_position = 0.55 313 314 NewDataFolder/O/S root:VSANS_file:entry1:instrument:detector_B 315 Make/O/I/N=(320,320) data = trunc(abs(gnoise(p+q))) 316 //Make/O/D/N=(320,320) //data_error = 0.01*abs(gnoise(p+q)) 317 Make/O/D/N=1 nx_distance = 21.1 318 Make/O/T/N=1 description = "fancy model" 319 Make/O/T/N=1 settings = "just right" 320 Make/O/D/N=1 dead_time = 5e-6 321 Make/O/D/N=1 x_pixel_size = 5.08 322 Make/O/D/N=1 y_pixel_size = 5.08 323 Make/O/D/N=1 beam_center_x = 165.55 324 Make/O/D/N=1 beam_center_y = 162.33 325 Make/O/T/N=1 type = "??" 326 //Make/O/D/N=1 //flatfield_applied = 0 327 //Make/O/D/N=1 //countrate_correction_applied = 0 328 Make/O/D/N=(320,320) pixel_mask = 0 329 Make/O/I/N=1 integrated_count = 100111222 330 Make/O/D/N=1 lateral_offset = 20 331 Make/O/I/N=1 PixelNumX = 320 332 Make/O/I/N=1 PixelNumY = 320 333 Make/O/D/N=1 PixelFWHM = 0.5 334 Make/O/D/N=3 CALX = {0.5,0.5,10000} 335 Make/O/D/N=3 CALY = {0.5,0.5,10000} 336 Make/O/D/N=1 size = 65 337 Make/O/T/N=1 event_file_name ="something.hst" 338 NewDataFolder/O/S root:VSANS_file:entry1:instrument:detector_MR 339 Make/O/I/N=(48,256) data = trunc(abs(gnoise(p+q))) 340 //Make/O/D/N=(48,256) //data_error = 0.01*abs(gnoise(p+q)) 341 Make/O/D/N=1 nx_distance = 13.1 342 Make/O/T/N=1 description = "fancy model" 343 Make/O/T/N=1 settings = "just right" 344 Make/O/D/N=1 dead_time = 5e-6 345 Make/O/D/N=1 x_pixel_size = 5.08 346 Make/O/D/N=1 y_pixel_size = 5.08 347 Make/O/D/N=1 beam_center_x = 65.55 348 Make/O/D/N=1 beam_center_y = 62.33 349 Make/O/T/N=1 type = "??" 350 //Make/O/D/N=1 //flatfield_applied = 0 351 //Make/O/D/N=1 //countrate_correction_applied = 0 352 Make/O/D/N=(48,256) pixel_mask = 0 353 Make/O/I/N=1 integrated_count = 100111222 354 Make/O/D/N=1 lateral_offset = 20 355 Make/O/D/N=1 separation = 150 356 Make/O/I/N=1 PixelNumX = 48 357 Make/O/I/N=1 PixelNumY = 256 358 Make/O/D/N=1 PixelFWHM = 0.5 359 Make/O/D/N=1 size = 65 360 Make/O/T/N=1 event_file_name ="something.hst" 361 Make/O/T/N=1 tube_orientation = "vertical" 362 Make/O/I/N=1 number_of_tubes = 48 363 Make/O/I/N=(tubes) tube_index = p 364 Make/O/D/N=(2,tubes) spatial_calibration = 1 365 Make/O/D/N=1 tube_width = 8 366 NewDataFolder/O/S root:VSANS_file:entry1:instrument:detector_ML 367 Make/O/I/N=(48,256) data = trunc(abs(gnoise(p+q))) 368 //Make/O/D/N=(48,256) //data_error = 0.01*abs(gnoise(p+q)) 369 Make/O/D/N=1 nx_distance = 13.1 370 Make/O/T/N=1 description = "fancy model" 371 Make/O/T/N=1 settings = "just right" 372 Make/O/D/N=1 dead_time = 5e-6 373 Make/O/D/N=1 x_pixel_size = 5.08 374 Make/O/D/N=1 y_pixel_size = 5.08 375 Make/O/D/N=1 beam_center_x = 65.55 376 Make/O/D/N=1 beam_center_y = 62.33 377 Make/O/T/N=1 type = "??" 378 //Make/O/D/N=1 //flatfield_applied = 0 379 //Make/O/D/N=1 //countrate_correction_applied = 0 380 Make/O/D/N=(48,256) pixel_mask = 0 381 Make/O/I/N=1 integrated_count = 100111222 382 Make/O/D/N=1 lateral_offset = 20 383 Make/O/D/N=1 separation = 150 384 Make/O/I/N=1 PixelNumX = 48 385 Make/O/I/N=1 PixelNumY = 256 386 Make/O/D/N=1 PixelFWHM = 0.5 387 Make/O/D/N=1 size = 65 388 Make/O/T/N=1 event_file_name ="something.hst" 389 Make/O/T/N=1 tube_orientation = "vertical" 390 Make/O/I/N=1 number_of_tubes = 48 391 Make/O/I/N=(tubes) tube_index = p 392 Make/O/D/N=(2,tubes) spatial_calibration = 1 393 Make/O/D/N=1 tube_width = 8 394 NewDataFolder/O/S root:VSANS_file:entry1:instrument:detector_MT 395 Make/O/I/N=(128,48) data = trunc(abs(gnoise(p+q))) 396 //Make/O/D/N=(128,48) //data_error = 0.01*abs(gnoise(p+q)) 397 Make/O/D/N=1 nx_distance = 13.4 398 Make/O/T/N=1 description = "fancy model" 399 Make/O/T/N=1 settings = "just right" 400 Make/O/D/N=1 dead_time = 5e-6 401 Make/O/D/N=1 x_pixel_size = 5.08 402 Make/O/D/N=1 y_pixel_size = 5.08 403 Make/O/D/N=1 beam_center_x = 65.55 404 Make/O/D/N=1 beam_center_y = 62.33 405 Make/O/T/N=1 type = "??" 406 //Make/O/D/N=1 //flatfield_applied = 0 407 //Make/O/D/N=1 //countrate_correction_applied = 0 408 Make/O/D/N=(128,48) pixel_mask = 0 409 Make/O/I/N=1 integrated_count = 100111222 410 Make/O/D/N=1 lateral_offset = 20 411 Make/O/D/N=1 sdd_offset = 30 412 Make/O/D/N=1 separation = 150 413 Make/O/I/N=1 PixelNumX = 128 414 Make/O/I/N=1 PixelNumY = 48 415 Make/O/D/N=1 PixelFWHM = 0.5 416 Make/O/D/N=1 size = 65 417 Make/O/T/N=1 event_file_name ="something.hst" 418 Make/O/T/N=1 tube_orientation = "horizontal" 419 Make/O/I/N=1 number_of_tubes = 48 420 Make/O/I/N=(tubes) tube_index = p 421 Make/O/D/N=(2,tubes) spatial_calibration = 1 422 Make/O/D/N=1 tube_width = 8 423 NewDataFolder/O/S root:VSANS_file:entry1:instrument:detector_MB 424 Make/O/I/N=(128,48) data = trunc(abs(gnoise(p+q))) 425 //Make/O/D/N=(128,48) //data_error = 0.01*abs(gnoise(p+q)) 426 Make/O/D/N=1 nx_distance = 13.4 427 Make/O/T/N=1 description = "fancy model" 428 Make/O/T/N=1 settings = "just right" 429 Make/O/D/N=1 dead_time = 5e-6 430 Make/O/D/N=1 x_pixel_size = 5.08 431 Make/O/D/N=1 y_pixel_size = 5.08 432 Make/O/D/N=1 beam_center_x = 65.55 433 Make/O/D/N=1 beam_center_y = 62.33 434 Make/O/T/N=1 type = "??" 435 //Make/O/D/N=1 //flatfield_applied = 0 436 //Make/O/D/N=1 //countrate_correction_applied = 0 437 Make/O/D/N=(128,48) pixel_mask = 0 438 Make/O/I/N=1 integrated_count = 100111222 439 Make/O/D/N=1 lateral_offset = 20 440 Make/O/D/N=1 sdd_offset = 30 441 Make/O/D/N=1 separation = 150 442 Make/O/I/N=1 PixelNumX = 128 443 Make/O/I/N=1 PixelNumY = 48 444 Make/O/D/N=1 PixelFWHM = 0.5 445 Make/O/D/N=1 size = 65 446 Make/O/T/N=1 event_file_name ="something.hst" 447 Make/O/T/N=1 tube_orientation = "horizontal" 448 Make/O/I/N=1 number_of_tubes = 48 449 Make/O/I/N=(tubes) tube_index = p 450 Make/O/D/N=(2,tubes) spatial_calibration = 1 451 Make/O/D/N=1 tube_width = 8 452 NewDataFolder/O/S root:VSANS_file:entry1:instrument:detector_FR 453 Make/O/I/N=(48,256) data = trunc(abs(gnoise(p+q))) 454 //Make/O/D/N=(48,256) //data_error = 0.01*abs(gnoise(p+q)) 455 Make/O/D/N=1 nx_distance = 2.1 456 Make/O/T/N=1 description = "fancy model" 457 Make/O/T/N=1 settings = "just right" 458 Make/O/D/N=1 dead_time = 5e-6 459 Make/O/D/N=1 x_pixel_size = 5.08 460 Make/O/D/N=1 y_pixel_size = 5.08 461 Make/O/D/N=1 beam_center_x = 65.55 462 Make/O/D/N=1 beam_center_y = 62.33 463 Make/O/T/N=1 type = "??" 464 //Make/O/D/N=1 //flatfield_applied = 0 465 //Make/O/D/N=1 //countrate_correction_applied = 0 466 Make/O/D/N=(48,256) pixel_mask = 0 467 Make/O/I/N=1 integrated_count = 100111222 468 Make/O/D/N=1 lateral_offset = 20 469 Make/O/D/N=1 separation = 150 470 Make/O/I/N=1 PixelNumX = 48 471 Make/O/I/N=1 PixelNumY = 256 472 Make/O/D/N=1 PixelFWHM = 0.5 473 Make/O/D/N=1 size = 65 474 Make/O/T/N=1 event_file_name ="something.hst" 475 Make/O/T/N=1 tube_orientation = "vertical" 476 Make/O/I/N=1 number_of_tubes = 48 477 Make/O/I/N=(tubes) tube_index = p 478 Make/O/D/N=(2,tubes) spatial_calibration = 1 479 Make/O/D/N=1 tube_width = 8 480 NewDataFolder/O/S root:VSANS_file:entry1:instrument:detector_FL 481 Make/O/I/N=(48,256) data = trunc(abs(gnoise(p+q))) 482 //Make/O/D/N=(48,256) //data_error = 0.01*abs(gnoise(p+q)) 483 Make/O/D/N=1 nx_distance = 2.1 484 Make/O/T/N=1 description = "fancy model" 485 Make/O/T/N=1 settings = "just right" 486 Make/O/D/N=1 dead_time = 5e-6 487 Make/O/D/N=1 x_pixel_size = 5.08 488 Make/O/D/N=1 y_pixel_size = 5.08 489 Make/O/D/N=1 beam_center_x = 65.55 490 Make/O/D/N=1 beam_center_y = 62.33 491 Make/O/T/N=1 type = "??" 492 //Make/O/D/N=1 //flatfield_applied = 0 493 //Make/O/D/N=1 //countrate_correction_applied = 0 494 Make/O/D/N=(48,256) pixel_mask = 0 495 Make/O/I/N=1 integrated_count = 100111222 496 Make/O/D/N=1 lateral_offset = 20 497 Make/O/D/N=1 separation = 150 498 Make/O/I/N=1 PixelNumX = 48 499 Make/O/I/N=1 PixelNumY = 256 500 Make/O/D/N=1 PixelFWHM = 0.5 501 Make/O/D/N=1 size = 65 502 Make/O/T/N=1 event_file_name ="something.hst" 503 Make/O/T/N=1 tube_orientation = "vertical" 504 Make/O/I/N=1 number_of_tubes = 48 505 Make/O/I/N=(tubes) tube_index = p 506 Make/O/D/N=(2,tubes) spatial_calibration = 1 507 Make/O/D/N=1 tube_width = 8 508 NewDataFolder/O/S root:VSANS_file:entry1:instrument:detector_FT 509 Make/O/I/N=(128,48) data = trunc(abs(gnoise(p+q))) 510 //Make/O/D/N=(128,48) //data_error = 0.01*abs(gnoise(p+q)) 511 Make/O/D/N=1 nx_distance = 2.1 512 Make/O/T/N=1 description = "fancy model" 513 Make/O/T/N=1 settings = "just right" 514 Make/O/D/N=1 dead_time = 5e-6 515 Make/O/D/N=1 x_pixel_size = 5.08 516 Make/O/D/N=1 y_pixel_size = 5.08 517 Make/O/D/N=1 beam_center_x = 65.55 518 Make/O/D/N=1 beam_center_y = 62.33 519 Make/O/T/N=1 type = "??" 520 //Make/O/D/N=1 //flatfield_applied = 0 521 //Make/O/D/N=1 //countrate_correction_applied = 0 522 Make/O/D/N=(128,48) pixel_mask = 0 523 Make/O/I/N=1 integrated_count = 100111222 524 Make/O/D/N=1 lateral_offset = 20 525 Make/O/D/N=1 sdd_offset = 30 526 Make/O/D/N=1 separation = 150 527 Make/O/I/N=1 PixelNumX = 128 528 Make/O/I/N=1 PixelNumY = 48 529 Make/O/D/N=1 PixelFWHM = 0.5 530 Make/O/D/N=1 size = 65 531 Make/O/T/N=1 event_file_name ="something.hst" 532 Make/O/T/N=1 tube_orientation = "horizontal" 533 Make/O/I/N=1 number_of_tubes = 48 534 Make/O/I/N=(tubes) tube_index = p 535 Make/O/D/N=(2,tubes) spatial_calibration = 1 536 Make/O/D/N=1 tube_width = 8 537 NewDataFolder/O/S root:VSANS_file:entry1:instrument:detector_FB 538 Make/O/I/N=(128,48) data = trunc(abs(gnoise(p+q))) 539 //Make/O/D/N=(128,48) //data_error = 0.01*abs(gnoise(p+q)) 540 Make/O/D/N=1 nx_distance = 2.1 541 Make/O/T/N=1 description = "fancy model" 542 Make/O/T/N=1 settings = "just right" 543 Make/O/D/N=1 dead_time = 5e-6 544 Make/O/D/N=1 x_pixel_size = 5.08 545 Make/O/D/N=1 y_pixel_size = 5.08 546 Make/O/D/N=1 beam_center_x = 65.55 547 Make/O/D/N=1 beam_center_y = 62.33 548 Make/O/T/N=1 type = "??" 549 //Make/O/D/N=1 //flatfield_applied = 0 550 //Make/O/D/N=1 //countrate_correction_applied = 0 551 Make/O/D/N=(128,48) pixel_mask = 0 552 Make/O/I/N=1 integrated_count = 100111222 553 Make/O/D/N=1 lateral_offset = 20 554 Make/O/D/N=1 sdd_offset = 30 555 Make/O/D/N=1 separation = 150 556 Make/O/I/N=1 PixelNumX = 128 557 Make/O/I/N=1 PixelNumY = 48 558 Make/O/D/N=1 PixelFWHM = 0.5 559 Make/O/D/N=1 size = 65 560 Make/O/T/N=1 event_file_name ="something.hst" 561 Make/O/T/N=1 tube_orientation = "horizontal" 562 Make/O/I/N=1 number_of_tubes = 48 563 Make/O/I/N=(tubes) tube_index = p 564 Make/O/D/N=(2,tubes) spatial_calibration = 1 565 Make/O/D/N=1 tube_width = 8 566 567 568 NewDataFolder/O/S root:VSANS_file:entry1:data_B 569 Make/O/I/N=(320,320) data = trunc(abs(gnoise(p+q))) 570 //Make/O/D/N=(320,320) //error = 0.01*abs(gnoise(p+q)) 571 Make/O/D/N=2 variables = {320,320} 572 Make/O/I/N=(320,320) data_image = p 573 NewDataFolder/O/S root:VSANS_file:entry1:data_MR 574 Make/O/i/N=(48,256) data = trunc(abs(gnoise(p+q))) 575 //Make/O/D/N=(48,256) //error = 0.01*abs(gnoise(p+q)) 576 Make/O/D/N=2 variables = {48,256} 577 Make/O/I/N=(48,256) data_image = p 578 NewDataFolder/O/S root:VSANS_file:entry1:data_ML 579 Make/O/i/N=(48,256) data = trunc(abs(gnoise(p+q))) 580 //Make/O/D/N=(48,256) //error = 0.01*abs(gnoise(p+q)) 581 Make/O/D/N=2 variables = {48,256} 582 Make/O/I/N=(48,256) data_image = p 583 NewDataFolder/O/S root:VSANS_file:entry1:data_MT 584 Make/O/I/N=(128,48) data = trunc(abs(gnoise(p+q))) 585 //Make/O/D/N=(128,48) //error = 0.01*abs(gnoise(p+q)) 586 Make/O/D/N=2 variables = {128,48} 587 Make/O/I/N=(128,48) data_image = p 588 NewDataFolder/O/S root:VSANS_file:entry1:data_MB 589 Make/O/I/N=(128,48) data = trunc(abs(gnoise(p+q))) 590 //Make/O/D/N=(128,48) //error = 0.01*abs(gnoise(p+q)) 591 Make/O/D/N=2 variables = {128,48} 592 Make/O/I/N=(128,48) data_image = p 593 NewDataFolder/O/S root:VSANS_file:entry1:data_FR 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_FL 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_FT 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_FB 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 614 NewDataFolder/O/S root:VSANS_file:entry1:reduction 615 Make/O/T/N=1 intent = "SCATTER" 616 Make/O/T/N=1 transmission_file_name = "SANSFile_TRN.h5" 617 Make/O/T/N=1 empty_beam_file_name = "SANSFile_EB.h5" 618 Make/O/T/N=1 background_file_name = "SANSFile_BKG.h5" 619 Make/O/T/N=1 empty_file_name = "SANSFile_EMP.h5" 620 Make/O/T/N=1 sensitivity_file_name = "SANSFile_DIV.h5" 621 Make/O/T/N=1 mask_file_name = "SANSFile_MASK.h5" 622 Make/O/T/N=1 sans_log_file_name = "SANSFile_log.txt" 623 Make/O/D/N=1 whole_trans = 0.888 624 Make/O/D/N=1 whole_trans_error = 0.008 625 Make/O/D/N=1 box_count = 23232 626 Make/O/D/N=1 box_count_error = 22 627 Make/O/I/N=4 box_coordinates = {50,80,45,75} 628 Make/O/T/N=1 comments = "extra data comments" 629 Make/O/D/N=4 absolute_scaling = {1,1,1e5,1} 630 NewDataFolder/O/S root:VSANS_file:entry1:reduction:pol_sans 631 Make/O/T/N=1 pol_sans_purpose = "name from the list" 632 Make/O/T/N=1 cell_name = "Burgundy" 633 Make/O/D/N=(5) cell_parameters = {1,2,3,4,5} 634 635 NewDataFolder/O/S root:VSANS_file:DAS_Logs 636 //...multiple entries and levels... to add 637 //this will be enormous 638 639 640 641 642 SetDataFolder root: 643 644 End 645 646 // writes in the attributes 647 Proc H_Fill_VSANS_Attributes() 648 649 SetDataFolder root:VSANS_file 650 Make/O/N=0 Igor___folder_attributes 651 Note/K Igor___folder_attributes, "producer=IgorPro\rNX_class=NXroot" 652 // file_name 653 // file_time 654 // facility 655 // NeXus_version 656 // hdf_version 657 // file_history 658 SetDataFolder root:VSANS_file:entry1 659 Make/O/N=0 Igor___folder_attributes 660 Note/K Igor___folder_attributes, "NX_class=NXentry" 661 // title 662 // experiment_identifier 663 // experiment_description 664 // entry_identifier 665 // definition 666 // start_time 667 // end_time 668 // duration 669 Note/K duration, "units=s" 670 // collection_time 671 Note/K collection_time, "units=s" 672 // run_cycle 673 // data_directory 674 // program_name 675 SetDataFolder root:VSANS_file:entry1:user 676 Make/O/N=0 Igor___folder_attributes 677 Note/K Igor___folder_attributes, "NX_class=NXuser" 678 // name 679 // role 680 // affiliation 681 // address 682 // telephoneNumber 683 // faxNumber 684 // email 685 // facility_user_id 686 SetDataFolder root:VSANS_file:entry1:control 687 Make/O/N=0 Igor___folder_attributes 688 Note/K Igor___folder_attributes, "NX_class=NXmonitor" 689 // mode 690 // preset 691 // integral 692 // monitor_counts 693 // monitor_preset 694 //// type 695 //// efficiency 696 //// sampled_fraction 697 // detector_counts 698 // detector_preset 699 // count_start 700 Note/K count_start, "units=s" 701 // count_end 702 Note/K count_end, "units=s" 703 // count_time 704 Note/K count_time, "units=s" 705 // count_time_preset 706 Note/K count_time_preset, "units=s" 707 //SetDataFolder root:VSANS_file:entry1:program_name //program_data 708 //// //data 709 //// //description 710 //// //file_name 711 //// //type 712 SetDataFolder root:VSANS_file:entry1:sample 713 Make/O/N=0 Igor___folder_attributes 714 Note/K Igor___folder_attributes, "NX_class=NXsample" 715 // description 716 // group_id 717 //// //chemical_formula 718 SetDataFolder root:VSANS_file:entry1:sample:temperature_1 719 Make/O/N=0 Igor___folder_attributes 720 Note/K Igor___folder_attributes, "NX_class=NXsensor" 721 // name 722 // attached_to 723 // measurement 724 SetDataFolder root:VSANS_file:entry1:sample:temperature_1:value_log 725 Make/O/N=0 Igor___folder_attributes 726 Note/K Igor___folder_attributes, "NX_class=NXlog" 727 // start 728 // nx_time 729 Note/K nx_time, "units=s" 730 // value 731 Note/K value, "units=C" 732 SetDataFolder root:VSANS_file:entry1:sample:temperature_2 733 Make/O/N=0 Igor___folder_attributes 734 Note/K Igor___folder_attributes, "NX_class=NXsensor" 735 // name 736 // attached_to 737 // measurement 738 SetDataFolder root:VSANS_file:entry1:sample:temperature_2:value_log 739 Make/O/N=0 Igor___folder_attributes 740 Note/K Igor___folder_attributes, "NX_class=NXlog" 741 // start 742 // nx_time 743 Note/K nx_time, "units=s" 744 // value 745 Note/K value, "units=C" 746 SetDataFolder root:VSANS_file:entry1:sample:electric_field 747 Make/O/N=0 Igor___folder_attributes 748 Note/K Igor___folder_attributes, "NX_class=NXsensor" 749 // name 750 // attached_to 751 // measurement 752 SetDataFolder root:VSANS_file:entry1:sample:electric_field:value_log 753 Make/O/N=0 Igor___folder_attributes 754 Note/K Igor___folder_attributes, "NX_class=NXlog" 755 // start 756 // nx_time 757 Note/K nx_time, "units=s" 758 // value 759 Note/K value, "units=V" 760 SetDataFolder root:VSANS_file:entry1:sample:shear_field 761 Make/O/N=0 Igor___folder_attributes 762 Note/K Igor___folder_attributes, "NX_class=NXsensor" 763 // name 764 // attached_to 765 // measurement 766 SetDataFolder root:VSANS_file:entry1:sample:shear_field:value_log 767 Make/O/N=0 Igor___folder_attributes 768 Note/K Igor___folder_attributes, "NX_class=NXlog" 769 // start 770 // nx_time 771 Note/K nx_time, "units=s" 772 // value 773 Note/K value, "units=Pa s" 774 SetDataFolder root:VSANS_file:entry1:sample:pressure 775 Make/O/N=0 Igor___folder_attributes 776 Note/K Igor___folder_attributes, "NX_class=NXsensor" 777 // name 778 // attached_to 779 // measurement 780 SetDataFolder root:VSANS_file:entry1:sample:pressure:value_log 781 Make/O/N=0 Igor___folder_attributes 782 Note/K Igor___folder_attributes, "NX_class=NXlog" 783 // start 784 // nx_time 785 Note/K nx_time, "units=s" 786 // value 787 Note/K value, "units=psi" 788 SetDataFolder root:VSANS_file:entry1:sample:magnetic_field 789 Make/O/N=0 Igor___folder_attributes 790 Note/K Igor___folder_attributes, "NX_class=NXsensor" 791 // name 792 // attached_to 793 // measurement 794 SetDataFolder root:VSANS_file:entry1:sample:magnetic_field:value_log 795 Make/O/N=0 Igor___folder_attributes 796 Note/K Igor___folder_attributes, "NX_class=NXlog" 797 // start 798 // nx_time 799 Note/K nx_time, "units=s" 800 // value 801 Note/K value, "units=T" 802 SetDataFolder root:VSANS_file:entry1:sample 803 // changer_position 804 // sample_holder_description 805 //// //mass 806 //Note/K mass, "units=g" 807 //// //density 808 //Note/K density, "units=g ml-1" 809 //// //molecular_weight 810 //Note/K molecular_weight, "units=g mol-1" 811 //// //description 812 //// //preparation_date 813 //// //volume_fraction 814 //// //scattering_length_density 815 //Note/K scattering_length_density, "units=A-2" 816 // thickness 817 Note/K thickness, "units=cm" 818 // rotation_angle 819 Note/K rotation_angle, "units=degrees" 820 // transmission 821 // transmission_error 822 //// //xs_incoh 823 //Note/K xs_incoh, "units=cm-1" 824 //// //xs_coh 825 //Note/K xs_coh, "units=cm-1" 826 //// //xs_absorb 827 //Note/K xs_absorb, "units=cm-1" 828 SetDataFolder root:VSANS_file:entry1:instrument 829 Make/O/N=0 Igor___folder_attributes 830 Note/K Igor___folder_attributes, "NX_class=NXinstrument" 831 //// //location 832 // name 833 // type 834 // local_contact 835 SetDataFolder root:VSANS_file:entry1:instrument:source 836 Make/O/N=0 Igor___folder_attributes 837 Note/K Igor___folder_attributes, "NX_class=NXsource" 838 // name 839 // type 840 // probe 841 // power 842 Note/K power, "units=MW" 843 844 SetDataFolder root:VSANS_file:entry1:instrument:beam_monitor_norm 845 Make/O/N=0 Igor___folder_attributes 846 Note/K Igor___folder_attributes, "NX_class=NXmonitor" 847 // data 848 // type 849 // efficiency 850 // nx_distance 851 Note/K nx_distance, "units=m" 852 // saved_count 853 SetDataFolder root:VSANS_file:entry1:instrument:beam_monitor_low 854 Make/O/N=0 Igor___folder_attributes 855 Note/K Igor___folder_attributes, "NX_class=NXmonitor" 856 // data 857 // type 858 // efficiency 859 // nx_distance 860 Note/K nx_distance, "units=m" 861 // saved_count 862 863 SetDataFolder root:VSANS_file:entry1:instrument:monochromator 864 Make/O/N=0 Igor___folder_attributes 865 Note/K Igor___folder_attributes, "NX_class=NXmonochromator" 866 // wavelength 867 Note/K wavelength, "units=A" 868 // wavelength_spread 869 // type 870 SetDataFolder root:VSANS_file:entry1:instrument:monochromator:velocity_selector 871 Make/O/N=0 Igor___folder_attributes 872 Note/K Igor___folder_attributes, "NX_class=NXvelocity_selector" 873 // status 874 // rotation_speed 875 Note/K rotation_speed, "units=RPM" 876 // wavelength 877 Note/K wavelength, "units=A" 878 // wavelength_spread 879 // vs_tilt 880 Note/K vs_tilt, "units=degrees" 881 // nx_distance 882 Note/K nx_distance, "units=m" 883 // table (wave) 884 SetDataFolder root:VSANS_file:entry1:instrument:monochromator:crystal 885 Make/O/N=0 Igor___folder_attributes 886 Note/K Igor___folder_attributes, "NX_class=NXcrystal" 887 // status 888 // nx_distance 889 Note/K nx_distance, "units=m" 890 // wavelength 891 Note/K wavelength, "units=A" 892 // wavelength_spread 893 // rotation 894 Note/K rotation, "units=degrees" 895 // energy 896 Note/K energy, "units=mV" 897 // wavevector 898 Note/K wavevector, "units=A-1" 899 // lattice_parameter 900 // reflection 901 // horizontal_curvature 902 // vertical_curvature 903 // horizontal_aperture 904 // vertical_aperture 905 SetDataFolder root:VSANS_file:entry1:instrument:monochromator:white_beam 906 // status 907 // wavelength 908 Note/K wavelength, "units=A" 909 // wavelength_spread 910 // description_of_distribution 911 SetDataFolder root:VSANS_file:entry1:instrument:chopper 912 Make/O/N=0 Igor___folder_attributes 913 Note/K Igor___folder_attributes, "NX_class=NXdisk_chopper" 914 // status 915 // type 916 // rotation_speed 917 Note/K rotation_speed, "units=RPM" 918 // distance_from_source 919 Note/K distance_from_source, "units=m" 920 // distance_from_sample 921 Note/K distance_from_sample, "units=m" 922 // slits 923 // angular_opening 924 Note/K angular_opening, "units=degrees" 925 // duty_cycle 926 // +? 927 SetDataFolder root:VSANS_file:entry1:instrument:polarizer 928 // status 929 // type 930 // composition 931 // efficiency 932 // status 933 SetDataFolder root:VSANS_file:entry1:instrument:flipper 934 // status 935 // driving_current 936 Note/K driving_current, "units=A" 937 // waveform 938 // frequency 939 Note/K frequency, "units=Hz" 940 // transmitted_power 941 SetDataFolder root:VSANS_file:entry1:instrument:polarizer_analyzer 942 // status 943 // guide_field_current_1 944 Note/K guide_field_current_1, "units=A" 945 // guide_field_current_2 946 Note/K guide_field_current_2, "units=A" 947 // solenoid_current 948 Note/K solenoid_current, "units=A" 949 // cell_index 950 // cell_names 951 // cell_parameters 952 953 SetDataFolder root:VSANS_file:entry1:instrument:attenuator 954 Make/O/N=0 Igor___folder_attributes 955 Note/K Igor___folder_attributes, "NX_class=NXattenuator" 956 // nx_distance 957 Note/K nx_distance, "units=m" 958 // type 959 // thickness 960 Note/K thickness, "units=cm" 961 // attenuator_transmission 962 // status 963 // atten_number 964 // index 965 SetDataFolder root:VSANS_file:entry1:instrument:source_aperture 966 Make/O/N=0 Igor___folder_attributes 967 Note/K Igor___folder_attributes, "NX_class=NXaperture" 968 // material 969 // description 970 // diameter 971 Note/K diameter, "units=cm" 972 // nx_distance 973 Note/K nx_distance, "units=m" 974 SetDataFolder root:VSANS_file:entry1:instrument:source_aperture:shape 975 Make/O/N=0 Igor___folder_attributes 976 Note/K Igor___folder_attributes, "NX_class=NXshape" 977 // size 978 Note/K size, "units=cm" 979 SetDataFolder root:VSANS_file:entry1:instrument:sample_aperture 980 Make/O/N=0 Igor___folder_attributes 981 Note/K Igor___folder_attributes, "NX_class=NXaperture" 982 // material 983 // description 984 // diameter 985 Note/K diameter, "units=cm" 986 // nx_distance 987 Note/K nx_distance, "units=m" 988 SetDataFolder root:VSANS_file:entry1:instrument:sample_aperture:shape 989 Make/O/N=0 Igor___folder_attributes 990 Note/K Igor___folder_attributes, "NX_class=NXshape" 991 // size 992 Note/K size, "units=cm" 993 SetDataFolder root:VSANS_file:entry1:instrument:collimator 994 SetDataFolder root:VSANS_file:entry1:instrument:collimator:geometry 995 SetDataFolder root:VSANS_file:entry1:instrument:collimator:geometry:shape 996 // shape 997 // size 998 Note/K size, "units=m" 999 // nx_NumGuides 1000 SetDataFolder root:VSANS_file:entry1:instrument:converging_pinholes 1001 // status 1002 SetDataFolder root:VSANS_file:entry1:instrument:converging_slits 1003 // status 1004 SetDataFolder root:VSANS_file:entry1:instrument:lenses 1005 Make/O/N=0 Igor___folder_attributes 1006 Note/K Igor___folder_attributes, "NX_class=NXxraylens" 1007 // status 1008 // lens_geometry 1009 // focus_type 1010 // number_of_lenses 1011 // number_of_prisms 1012 // curvature 1013 // lens_distance 1014 Note/K lens_distance, "units=m" 1015 // prism_distance 1016 Note/K prism_distance, "units=m" 1017 // lens_material 1018 // prism_material 1019 SetDataFolder root:VSANS_file:entry1:instrument:sample_table 1020 // location 1021 // offset_distance 1022 Note/K offset_distance, "units=m" 1023 SetDataFolder root:VSANS_file:entry1:instrument:beam_stop 1024 Make/O/N=0 Igor___folder_attributes 1025 Note/K Igor___folder_attributes, "NX_class=NXbeam_stop" 1026 // status 1027 // description 1028 // nx_distance 1029 Note/K nx_distance, "units=m" 1030 // size 1031 Note/K size, "units=cm" 1032 // xPos 1033 // yPos 1034 // x_motor_position 1035 Note/K x_motor_position, "units=cm" 1036 // y_motor_position 1037 Note/K y_motor_position, "units=cm" 1038 1039 SetDataFolder root:VSANS_file:entry1:instrument:detector_B 1040 Make/O/N=0 Igor___folder_attributes 1041 Note/K Igor___folder_attributes, "NX_class=NXdetector" 1042 // data 1043 //// //data_error 1044 // nx_distance 1045 Note/K nx_distance, "units=m" 1046 // description 1047 // settings 1048 // dead_time 1049 Note/K dead_time, "units=s" 1050 // x_pixel_size 1051 Note/K x_pixel_size, "units=cm" 1052 // y_pixel_size 1053 Note/K y_pixel_size, "units=cm" 1054 // beam_center_x 1055 // beam_center_y 1056 // type 1057 //// //flatfield_applied 1058 //// //countrate_correction_applied 1059 // pixel_mask 1060 // integrated_count 1061 // lateral_offset 1062 Note/K lateral_offset, "units=cm" 1063 // PixelNumX 1064 // PixelNumY 1065 // PixelFWHM 1066 // CALX 1067 // CALY 1068 // size 1069 Note/K size, "units=cm" 1070 // event_file_name 1071 SetDataFolder root:VSANS_file:entry1:instrument:detector_MR 1072 Make/O/N=0 Igor___folder_attributes 1073 Note/K Igor___folder_attributes, "NX_class=NXdetector" 1074 // data 1075 //// //data_error 1076 // nx_distance 1077 Note/K nx_distance, "units=m" 1078 // description 1079 // settings 1080 // dead_time 1081 Note/K dead_time, "units=s" 1082 // x_pixel_size 1083 Note/K x_pixel_size, "units=cm" 1084 // y_pixel_size 1085 Note/K y_pixel_size, "units=cm" 1086 // beam_center_x 1087 // beam_center_y 1088 // type 1089 //// //flatfield_applied 1090 //// //countrate_correction_applied 1091 // pixel_mask 1092 // integrated_count 1093 // lateral_offset 1094 Note/K lateral_offset, "units=cm" 1095 // separation 1096 Note/K separation, "units=cm" 1097 // PixelNumX 1098 // PixelNumY 1099 // PixelFWHM 1100 // size 1101 Note/K size, "units=cm" 1102 // event_file_name 1103 // tube_orientation 1104 // number_of_tubes 1105 // tube_index 1106 // spatial_calibration 1107 // tube_width 1108 Note/K tube_width, "units=cm" 1109 SetDataFolder root:VSANS_file:entry1:instrument:detector_ML 1110 Make/O/N=0 Igor___folder_attributes 1111 Note/K Igor___folder_attributes, "NX_class=NXdetector" 1112 // data 1113 //// //data_error 1114 // nx_distance 1115 Note/K nx_distance, "units=m" 1116 // description 1117 // settings 1118 // dead_time 1119 Note/K dead_time, "units=s" 1120 // x_pixel_size 1121 Note/K x_pixel_size, "units=cm" 1122 // y_pixel_size 1123 Note/K y_pixel_size, "units=cm" 1124 // beam_center_x 1125 // beam_center_y 1126 // type 1127 //// //flatfield_applied 1128 //// //countrate_correction_applied 1129 // pixel_mask 1130 // integrated_count 1131 // lateral_offset 1132 Note/K lateral_offset, "units=cm" 1133 // separation 1134 Note/K separation, "units=cm" 1135 // PixelNumX 1136 // PixelNumY 1137 // PixelFWHM 1138 // size 1139 Note/K size, "units=cm" 1140 // event_file_name 1141 // tube_orientation 1142 // number_of_tubes 1143 // tube_index 1144 // spatial_calibration 1145 // tube_width 1146 Note/K tube_width, "units=cm" 1147 SetDataFolder root:VSANS_file:entry1:instrument:detector_MT 1148 Make/O/N=0 Igor___folder_attributes 1149 Note/K Igor___folder_attributes, "NX_class=NXdetector" 1150 // data 1151 //// //data_error 1152 // nx_distance 1153 Note/K nx_distance, "units=m" 1154 // description 1155 // settings 1156 // dead_time 1157 Note/K dead_time, "units=s" 1158 // x_pixel_size 1159 Note/K x_pixel_size, "units=cm" 1160 // y_pixel_size 1161 Note/K y_pixel_size, "units=cm" 1162 // beam_center_x 1163 // beam_center_y 1164 // type 1165 //// //flatfield_applied 1166 //// //countrate_correction_applied 1167 // pixel_mask 1168 // integrated_count 1169 // lateral_offset 1170 Note/K lateral_offset, "units=cm" 1171 // sdd_offset 1172 Note/K sdd_offset, "units=cm" 1173 // separation 1174 Note/K separation, "units=cm" 1175 // PixelNumX 1176 // PixelNumY 1177 // PixelFWHM 1178 // size 1179 Note/K size, "units=cm" 1180 // event_file_name 1181 // tube_orientation 1182 // number_of_tubes 1183 // tube_index 1184 // spatial_calibration 1185 // tube_width 1186 Note/K tube_width, "units=cm" 1187 SetDataFolder root:VSANS_file:entry1:instrument:detector_MB 1188 Make/O/N=0 Igor___folder_attributes 1189 Note/K Igor___folder_attributes, "NX_class=NXdetector" 1190 // data 1191 //// //data_error 1192 // nx_distance 1193 Note/K nx_distance, "units=m" 1194 // description 1195 // settings 1196 // dead_time 1197 Note/K dead_time, "units=s" 1198 // x_pixel_size 1199 Note/K x_pixel_size, "units=cm" 1200 // y_pixel_size 1201 Note/K y_pixel_size, "units=cm" 1202 // beam_center_x 1203 // beam_center_y 1204 // type 1205 //// //flatfield_applied 1206 //// //countrate_correction_applied 1207 // pixel_mask 1208 // integrated_count 1209 // lateral_offset 1210 Note/K lateral_offset, "units=cm" 1211 // sdd_offset 1212 Note/K sdd_offset, "units=cm" 1213 // separation 1214 Note/K separation, "units=cm" 1215 // PixelNumX 1216 // PixelNumY 1217 // PixelFWHM 1218 // size 1219 Note/K size, "units=cm" 1220 // event_file_name 1221 // tube_orientation 1222 // number_of_tubes 1223 // tube_index 1224 // spatial_calibration 1225 // tube_width 1226 Note/K tube_width, "units=cm" 1227 SetDataFolder root:VSANS_file:entry1:instrument:detector_FR 1228 Make/O/N=0 Igor___folder_attributes 1229 Note/K Igor___folder_attributes, "NX_class=NXdetector" 1230 // data 1231 //// //data_error 1232 // nx_distance 1233 Note/K nx_distance, "units=m" 1234 // description 1235 // settings 1236 // dead_time 1237 Note/K dead_time, "units=s" 1238 // x_pixel_size 1239 Note/K x_pixel_size, "units=cm" 1240 // y_pixel_size 1241 Note/K y_pixel_size, "units=cm" 1242 // beam_center_x 1243 // beam_center_y 1244 // type 1245 //// //flatfield_applied 1246 //// //countrate_correction_applied 1247 // pixel_mask 1248 // integrated_count 1249 // lateral_offset 1250 Note/K lateral_offset, "units=cm" 1251 // separation 1252 Note/K separation, "units=cm" 1253 // PixelNumX 1254 // PixelNumY 1255 // PixelFWHM 1256 // size 1257 Note/K size, "units=cm" 1258 // event_file_name 1259 // tube_orientation 1260 // number_of_tubes 1261 // tube_index 1262 // spatial_calibration 1263 // tube_width 1264 Note/K tube_width, "units=cm" 1265 SetDataFolder root:VSANS_file:entry1:instrument:detector_FL 1266 Make/O/N=0 Igor___folder_attributes 1267 Note/K Igor___folder_attributes, "NX_class=NXdetector" 1268 // data 1269 //// //data_error 1270 // nx_distance 1271 Note/K nx_distance, "units=m" 1272 // description 1273 // settings 1274 // dead_time 1275 Note/K dead_time, "units=s" 1276 // x_pixel_size 1277 Note/K x_pixel_size, "units=cm" 1278 // y_pixel_size 1279 Note/K y_pixel_size, "units=cm" 1280 // beam_center_x 1281 // beam_center_y 1282 // type 1283 //// //flatfield_applied 1284 //// //countrate_correction_applied 1285 // pixel_mask 1286 // integrated_count 1287 // lateral_offset 1288 Note/K lateral_offset, "units=cm" 1289 // separation 1290 Note/K separation, "units=cm" 1291 // PixelNumX 1292 // PixelNumY 1293 // PixelFWHM 1294 // size 1295 Note/K size, "units=cm" 1296 // event_file_name 1297 // tube_orientation 1298 // number_of_tubes 1299 // tube_index 1300 // spatial_calibration 1301 // tube_width 1302 Note/K tube_width, "units=cm" 1303 SetDataFolder root:VSANS_file:entry1:instrument:detector_FT 1304 Make/O/N=0 Igor___folder_attributes 1305 Note/K Igor___folder_attributes, "NX_class=NXdetector" 1306 // data 1307 //// //data_error 1308 // nx_distance 1309 Note/K nx_distance, "units=m" 1310 // description 1311 // settings 1312 // dead_time 1313 Note/K dead_time, "units=s" 1314 // x_pixel_size 1315 Note/K x_pixel_size, "units=cm" 1316 // y_pixel_size 1317 Note/K y_pixel_size, "units=cm" 1318 // beam_center_x 1319 // beam_center_y 1320 // type 1321 //// //flatfield_applied 1322 //// //countrate_correction_applied 1323 // pixel_mask 1324 // integrated_count 1325 // lateral_offset 1326 Note/K lateral_offset, "units=cm" 1327 // sdd_offset 1328 Note/K sdd_offset, "units=cm" 1329 // separation 1330 Note/K separation, "units=cm" 1331 // PixelNumX 1332 // PixelNumY 1333 // PixelFWHM 1334 // size 1335 Note/K size, "units=cm" 1336 // event_file_name 1337 // tube_orientation 1338 // number_of_tubes 1339 // tube_index 1340 // spatial_calibration 1341 // tube_width 1342 Note/K tube_width, "units=cm" 1343 SetDataFolder root:VSANS_file:entry1:instrument:detector_FB 1344 Make/O/N=0 Igor___folder_attributes 1345 Note/K Igor___folder_attributes, "NX_class=NXdetector" 1346 // data 1347 //// //data_error 1348 // nx_distance 1349 Note/K nx_distance, "units=m" 1350 // description 1351 // settings 1352 // dead_time 1353 Note/K dead_time, "units=s" 1354 // x_pixel_size 1355 Note/K x_pixel_size, "units=cm" 1356 // y_pixel_size 1357 Note/K y_pixel_size, "units=cm" 1358 // beam_center_x 1359 // beam_center_y 1360 // type 1361 //// //flatfield_applied 1362 //// //countrate_correction_applied 1363 // pixel_mask 1364 // integrated_count 1365 // lateral_offset 1366 Note/K lateral_offset, "units=cm" 1367 // sdd_offset 1368 Note/K sdd_offset, "units=cm" 1369 // separation 1370 Note/K separation, "units=cm" 1371 // PixelNumX 1372 // PixelNumY 1373 // PixelFWHM 1374 // size 1375 Note/K size, "units=cm" 1376 // event_file_name 1377 // tube_orientation 1378 // number_of_tubes 1379 // tube_index 1380 // spatial_calibration 1381 // tube_width 1382 Note/K tube_width, "units=cm" 1383 1384 1385 SetDataFolder root:VSANS_file:entry1:data_B 1386 Make/O/N=0 Igor___folder_attributes 1387 Note/K Igor___folder_attributes, "NX_class=NXdata" 1388 // data 1389 //// //error 1390 // variables 1391 // data_image 1392 SetDataFolder root:VSANS_file:entry1:data_MR 1393 Make/O/N=0 Igor___folder_attributes 1394 Note/K Igor___folder_attributes, "NX_class=NXdata" 1395 // data 1396 //// //error 1397 // variables 1398 // data_image 1399 SetDataFolder root:VSANS_file:entry1:data_ML 1400 Make/O/N=0 Igor___folder_attributes 1401 Note/K Igor___folder_attributes, "NX_class=NXdata" 1402 // data 1403 //// //error 1404 // variables 1405 // data_image 1406 SetDataFolder root:VSANS_file:entry1:data_MT 1407 Make/O/N=0 Igor___folder_attributes 1408 Note/K Igor___folder_attributes, "NX_class=NXdata" 1409 // data 1410 //// //error 1411 // variables 1412 // data_image 1413 SetDataFolder root:VSANS_file:entry1:data_MB 1414 Make/O/N=0 Igor___folder_attributes 1415 Note/K Igor___folder_attributes, "NX_class=NXdata" 1416 // data 1417 //// //error 1418 // variables 1419 // data_image 1420 SetDataFolder root:VSANS_file:entry1:data_FR 1421 Make/O/N=0 Igor___folder_attributes 1422 Note/K Igor___folder_attributes, "NX_class=NXdata" 1423 // data 1424 //// //error 1425 // variables 1426 // data_image 1427 SetDataFolder root:VSANS_file:entry1:data_FL 1428 Make/O/N=0 Igor___folder_attributes 1429 Note/K Igor___folder_attributes, "NX_class=NXdata" 1430 // data 1431 //// //error 1432 // variables 1433 // data_image 1434 SetDataFolder root:VSANS_file:entry1:data_FT 1435 Make/O/N=0 Igor___folder_attributes 1436 Note/K Igor___folder_attributes, "NX_class=NXdata" 1437 // data 1438 //// //error 1439 // variables 1440 // data_image 1441 SetDataFolder root:VSANS_file:entry1:data_FB 1442 Make/O/N=0 Igor___folder_attributes 1443 Note/K Igor___folder_attributes, "NX_class=NXdata" 1444 // data 1445 //// //error 1446 // variables 1447 // data_image 1448 1449 SetDataFolder root:VSANS_file:entry1:reduction 1450 // intent 1451 // transmission_file_name 1452 // empty_beam_file_name 1453 // background_file_name 1454 // empty_file_name 1455 // sensitivity_file_name 1456 // mask_file_name 1457 // sans_log_file_name 1458 // whole_trans 1459 // whole_trans_error 1460 // box_count 1461 // box_count_error 1462 // box_coordinates 1463 // comments 1464 // absolute_scaling 1465 SetDataFolder root:VSANS_file:entry1:reduction:pol_sans 1466 // pol_sans_purpose 1467 // cell_name 1468 // cell_parameters 1469 1470 SetDataFolder root:VSANS_file:DAS_Logs 1471 Make/O/N=0 Igor___folder_attributes 1472 Note/K Igor___folder_attributes, "NX_class=NXlog" 1473 //...multiple entries and levels... to add 1474 //this will be enormous 1475 1476 1477 1478 1479 SetDataFolder root: 1480 1481 End 3 /// 4 // for the simulator, routines to be able to write out a proper Nexus file 5 // based on a template 6 //// 7 8 1482 9 1483 10 // overwrites the dummy values as needed with VCALC information 1484 //1485 //1486 11 // 1487 12 // TODO … … 1499 24 // set the "accessible" copies of the data (these are really to be links in the file!) 1500 25 1501 Proc H_Fill_VSANS_wSim() 1502 1503 1504 SetDataFolder root:VSANS_file 1505 file_name = "VSANSTest.h5" 1506 file_time = "2015-02-28T08:15:30-5:00" 1507 facility = "NCNR" 1508 NeXus_version = "Nexus 0.0" 1509 hdf_version = "hdf5.x" 1510 file_history = "history log" 1511 SetDataFolder root:VSANS_file:entry1 1512 title = "title of entry1" 1513 experiment_identifier = 684636 1514 experiment_description = "description of expt" 1515 entry_identifier = "S22-33" 1516 definition = "NXsas" 1517 start_time = "2015-02-28T08:15:30-5:00" 1518 end_time = "2015-02-28T08:15:30-5:00" 1519 duration = 300 1520 collection_time = 300 1521 run_cycle = "S22-23" 1522 data_directory = "[VSANS_VSANS]" 1523 program_name = "runPoint={stuff}" 1524 SetDataFolder root:VSANS_file:entry1:user 1525 name = "Dr. Pi" 1526 role = "evil scientist" 1527 affiliation = "NIST" 1528 address = "100 Bureau Drive" 1529 telephoneNumber = "301-999-9999" 1530 faxNumber = "301-999-9999" 1531 email = "sans@nist" 1532 facility_user_id = 6937596 1533 SetDataFolder root:VSANS_file:entry1:control 1534 mode = "timer" 1535 preset = 555 1536 integral = 555 1537 monitor_counts = 666 1538 monitor_preset = 1e8 1539 //WAVE/T type = "monitor type" 1540 //WAVE efficiency = 0.01 1541 //WAVE sampled_fraction = 1 1542 detector_counts = 100111222 1543 detector_preset = 1e5 1544 count_start = 1 1545 count_end = 1 1546 count_time = 1 1547 count_time_preset = 1 1548 //SetDataFolder root:VSANS_file:entry1:program_name //program_data 1549 //WAVE/T //data = "program data" 1550 //WAVE/T //description = "acquisition" 1551 //WAVE/T //file_name = "NICE" 1552 //WAVE/T //type = "client" 1553 SetDataFolder root:VSANS_file:entry1:sample 1554 description = "My Sample" 1555 group_id = 12345 1556 //WAVE/T //chemical_formula = "C8H10N4O2" 1557 SetDataFolder root:VSANS_file:entry1:sample:temperature_1 1558 name = "Sample temperature" 1559 attached_to = "block" 1560 measurement = "temperature" 1561 SetDataFolder root:VSANS_file:entry1:sample:temperature_1:value_log 1562 start = "2015-02-28T08:15:30-5:00" 1563 nx_time = p 1564 value = 2*p 1565 SetDataFolder root:VSANS_file:entry1:sample:temperature_2 1566 name = "Sample temperature" 1567 attached_to = "block" 1568 measurement = "temperature" 1569 SetDataFolder root:VSANS_file:entry1:sample:temperature_2:value_log 1570 start = "2015-02-28T08:15:30-5:00" 1571 nx_time = p 1572 value = 3*p 1573 SetDataFolder root:VSANS_file:entry1:sample:electric_field 1574 name = "electric meter" 1575 attached_to = "sample" 1576 measurement = "voltage" 1577 SetDataFolder root:VSANS_file:entry1:sample:electric_field:value_log 1578 start = "2015-02-28T08:15:30-5:00" 1579 nx_time = 2*p 1580 value = sin(p/10) 1581 SetDataFolder root:VSANS_file:entry1:sample:shear_field 1582 name = "rheometer" 1583 attached_to = "sample" 1584 measurement = "stress" 1585 SetDataFolder root:VSANS_file:entry1:sample:shear_field:value_log 1586 start = "2015-02-28T08:15:30-5:00" 1587 nx_time = p 1588 value = cos(p/5) 1589 SetDataFolder root:VSANS_file:entry1:sample:pressure 1590 name = "Sample pressure" 1591 attached_to = "pressure cell" 1592 measurement = "pressure" 1593 SetDataFolder root:VSANS_file:entry1:sample:pressure:value_log 1594 start = "2015-02-28T08:15:30-5:00" 1595 nx_time = p 1596 value = p/2 1597 SetDataFolder root:VSANS_file:entry1:sample:magnetic_field 1598 name = "magnetic field (direction)" 1599 attached_to = "cryostat" 1600 measurement = "magnetic field" 1601 SetDataFolder root:VSANS_file:entry1:sample:magnetic_field:value_log 1602 start = "2015-02-28T08:15:30-5:00" 1603 nx_time = p 1604 value = 10*p 1605 SetDataFolder root:VSANS_file:entry1:sample 1606 changer_position = 5 1607 sample_holder_description = "10CB" 1608 //WAVE //mass = 0.3 1609 //WAVE //density = 1.02 1610 //WAVE //molecular_weight = 194.19 1611 //WAVE/T //description = "My Sample" 1612 //WAVE/T //preparation_date = "2015-02-28T08:15:30-5:00" 1613 //WAVE //volume_fraction = 0.2 1614 //WAVE //scattering_length_density = 6.35e-6 1615 thickness = 0.1 1616 rotation_angle = 30 1617 transmission = 0.888 1618 transmission_error = 0.011 1619 //WAVE //xs_incoh = 5.5 1620 //WAVE //xs_coh = 22.2 1621 //WAVE //xs_absorb = 3.1 1622 SetDataFolder root:VSANS_file:entry1:instrument 1623 //WAVE/T //location = "NCNR" 1624 name = "NG3-VSANS" 1625 type = "VSANS" 1626 local_contact = "Steve Kline" 1627 SetDataFolder root:VSANS_file:entry1:instrument:source 1628 name = "NCNR" 1629 type = "Reactor Neutron Source" 1630 probe = "neutron" 1631 power = 20 1632 1633 SetDataFolder root:VSANS_file:entry1:instrument:beam_monitor_norm 1634 data = 1234567 1635 type = "monitor" 1636 efficiency = 0.01 1637 nx_distance = 16 1638 saved_count = 1e8 1639 SetDataFolder root:VSANS_file:entry1:instrument:beam_monitor_low 1640 data = 1234567 1641 type = "monitor" 1642 efficiency = 0.001 1643 nx_distance = 16 1644 saved_count = 1e8 1645 1646 SetDataFolder root:VSANS_file:entry1:instrument:monochromator 1647 wavelength = 5.1 1648 wavelength_spread = 0.02 1649 type = "VS" 1650 SetDataFolder root:VSANS_file:entry1:instrument:monochromator:velocity_selector 1651 status = "in" 1652 rotation_speed = 5100 1653 wavelength = 6 1654 wavelength_spread = 0.15 1655 vs_tilt = 3 1656 nx_distance = 18.8 1657 // table (wave) 1658 SetDataFolder root:VSANS_file:entry1:instrument:monochromator:crystal 1659 status = "in" 1660 nx_distance = 1 1661 wavelength = 5.1 1662 wavelength_spread = 0.02 1663 rotation = 1.1 1664 energy = 1 1665 wavevector = 1 1666 lattice_parameter = 1 1667 reflection = {1,2,3} 1668 horizontal_curvature = 1 1669 vertical_curvature = 1 1670 horizontal_aperture = 1 1671 vertical_aperture = 1 1672 SetDataFolder root:VSANS_file:entry1:instrument:monochromator:white_beam 1673 status = "in" 1674 wavelength = 5.1 1675 wavelength_spread = 0.8 1676 // description_of_distribution 1677 SetDataFolder root:VSANS_file:entry1:instrument:chopper 1678 status = "in" 1679 type = "single" 1680 rotation_speed = 12000 1681 distance_from_source = 400 1682 distance_from_sample = 1500 1683 slits = 2 1684 angular_opening = 15 1685 duty_cycle = 0.25 1686 // +? 1687 SetDataFolder root:VSANS_file:entry1:instrument:polarizer 1688 status = "in" 1689 type = "supermirror" 1690 composition = "multilayer" 1691 efficiency = 0.95 1692 status = "in" 1693 SetDataFolder root:VSANS_file:entry1:instrument:flipper 1694 status = "on" 1695 driving_current = 42 1696 waveform = "sine" 1697 frequency = 400 1698 transmitted_power = 0.99 1699 SetDataFolder root:VSANS_file:entry1:instrument:polarizer_analyzer 1700 status = "down" 1701 guide_field_current_1 = 33 1702 guide_field_current_2 = 32 1703 solenoid_current = 21 1704 cell_index = 1 1705 cell_names = {"Burgundy","Olaf","Jim","Bob","Joe"} 1706 cell_parameters = 1 1707 1708 SetDataFolder root:VSANS_file:entry1:instrument:attenuator 1709 nx_distance = 1500 1710 type = "PMMA" 1711 thickness = 0 1712 attenuator_transmission = 1 1713 status = "in" 1714 atten_number = "0101" 1715 index = 1 1716 SetDataFolder root:VSANS_file:entry1:instrument:source_aperture 1717 material = "Gd" 1718 description = "source aperture" 1719 diameter = 1.27 1720 nx_distance = 13.0 1721 SetDataFolder root:VSANS_file:entry1:instrument:source_aperture:shape 1722 size = 1.27 1723 SetDataFolder root:VSANS_file:entry1:instrument:sample_aperture 1724 material = "Gd" 1725 description = "sample aperture" 1726 diameter = 1.27 1727 nx_distance = 10 1728 SetDataFolder root:VSANS_file:entry1:instrument:sample_aperture:shape 1729 size = 1.27 1730 SetDataFolder root:VSANS_file:entry1:instrument:collimator 1731 SetDataFolder root:VSANS_file:entry1:instrument:collimator:geometry 1732 SetDataFolder root:VSANS_file:entry1:instrument:collimator:geometry:shape 1733 shape = "box" 1734 size = 11 1735 nx_NumGuides = 1 1736 SetDataFolder root:VSANS_file:entry1:instrument:converging_pinholes 1737 status = "in" 1738 SetDataFolder root:VSANS_file:entry1:instrument:converging_slits 1739 status = "in" 1740 SetDataFolder root:VSANS_file:entry1:instrument:lenses 1741 status = "in" 1742 lens_geometry = "concave_lens" 1743 focus_type = "point" 1744 number_of_lenses = 28 1745 number_of_prisms = 7 1746 curvature = 1 1747 lens_distance = 123 1748 prism_distance = 123 1749 lens_material = "MgF2" 1750 prism_material = "MgF2" 1751 SetDataFolder root:VSANS_file:entry1:instrument:sample_table 1752 location = "chamber" 1753 offset_distance = 0 1754 SetDataFolder root:VSANS_file:entry1:instrument:beam_stop 1755 status = "out" 1756 description = "circular" 1757 nx_distance = 12.5 1758 size = 7.62 1759 xPos = 66.4 1760 yPos = 64.4 1761 x_motor_position = 0.15 1762 y_motor_position = 0.55 1763 1764 SetDataFolder root:VSANS_file:entry1:instrument:detector_B 1765 data = trunc(abs(gnoise(p+q))) 1766 //WAVE //data_error = 0.01*abs(gnoise(p+q)) 1767 nx_distance = 21.1 1768 description = "fancy model" 1769 settings = "just right" 1770 dead_time = 5e-6 1771 x_pixel_size = 5.08 1772 y_pixel_size = 5.08 1773 beam_center_x = 165.55 1774 beam_center_y = 162.33 1775 type = "??" 1776 //WAVE //flatfield_applied = 0 1777 //WAVE //countrate_correction_applied = 0 1778 pixel_mask = 0 1779 integrated_count = 100111222 1780 lateral_offset = 20 1781 PixelNumX = 320 1782 PixelNumY = 320 1783 PixelFWHM = 0.5 1784 CALX = {0.5,0.5,10000} 1785 CALY = {0.5,0.5,10000} 1786 size = 65 1787 event_file_name ="something.hst" 1788 SetDataFolder root:VSANS_file:entry1:instrument:detector_MR 1789 data = trunc(abs(gnoise(p+q))) 1790 //WAVE //data_error = 0.01*abs(gnoise(p+q)) 1791 nx_distance = 13.1 1792 description = "fancy model" 1793 settings = "just right" 1794 dead_time = 5e-6 1795 x_pixel_size = 5.08 1796 y_pixel_size = 5.08 1797 beam_center_x = 65.55 1798 beam_center_y = 62.33 1799 type = "??" 1800 //WAVE //flatfield_applied = 0 1801 //WAVE //countrate_correction_applied = 0 1802 pixel_mask = 0 1803 integrated_count = 100111222 1804 lateral_offset = 20 1805 separation = 150 1806 PixelNumX = 48 1807 PixelNumY = 256 1808 PixelFWHM = 0.5 1809 size = 65 1810 event_file_name ="something.hst" 1811 tube_orientation = "vertical" 1812 number_of_tubes = 48 1813 tube_index = p 1814 spatial_calibration = 1 1815 tube_width = 8 1816 SetDataFolder root:VSANS_file:entry1:instrument:detector_ML 1817 data = trunc(abs(gnoise(p+q))) 1818 //WAVE //data_error = 0.01*abs(gnoise(p+q)) 1819 nx_distance = 13.1 1820 description = "fancy model" 1821 settings = "just right" 1822 dead_time = 5e-6 1823 x_pixel_size = 5.08 1824 y_pixel_size = 5.08 1825 beam_center_x = 65.55 1826 beam_center_y = 62.33 1827 type = "??" 1828 //WAVE //flatfield_applied = 0 1829 //WAVE //countrate_correction_applied = 0 1830 pixel_mask = 0 1831 integrated_count = 100111222 1832 lateral_offset = 20 1833 separation = 150 1834 PixelNumX = 48 1835 PixelNumY = 256 1836 PixelFWHM = 0.5 1837 size = 65 1838 event_file_name ="something.hst" 1839 tube_orientation = "vertical" 1840 number_of_tubes = 48 1841 tube_index = p 1842 spatial_calibration = 1 1843 tube_width = 8 1844 SetDataFolder root:VSANS_file:entry1:instrument:detector_MT 1845 data = trunc(abs(gnoise(p+q))) 1846 //WAVE //data_error = 0.01*abs(gnoise(p+q)) 1847 nx_distance = 13.4 1848 description = "fancy model" 1849 settings = "just right" 1850 dead_time = 5e-6 1851 x_pixel_size = 5.08 1852 y_pixel_size = 5.08 1853 beam_center_x = 65.55 1854 beam_center_y = 62.33 1855 type = "??" 1856 //WAVE //flatfield_applied = 0 1857 //WAVE //countrate_correction_applied = 0 1858 pixel_mask = 0 1859 integrated_count = 100111222 1860 lateral_offset = 20 1861 sdd_offset = 30 1862 separation = 150 1863 PixelNumX = 128 1864 PixelNumY = 48 1865 PixelFWHM = 0.5 1866 size = 65 1867 event_file_name ="something.hst" 1868 tube_orientation = "horizontal" 1869 number_of_tubes = 48 1870 tube_index = p 1871 spatial_calibration = 1 1872 tube_width = 8 1873 SetDataFolder root:VSANS_file:entry1:instrument:detector_MB 1874 data = trunc(abs(gnoise(p+q))) 1875 //WAVE //data_error = 0.01*abs(gnoise(p+q)) 1876 nx_distance = 13.4 1877 description = "fancy model" 1878 settings = "just right" 1879 dead_time = 5e-6 1880 x_pixel_size = 5.08 1881 y_pixel_size = 5.08 1882 beam_center_x = 65.55 1883 beam_center_y = 62.33 1884 type = "??" 1885 //WAVE //flatfield_applied = 0 1886 //WAVE //countrate_correction_applied = 0 1887 pixel_mask = 0 1888 integrated_count = 100111222 1889 lateral_offset = 20 1890 sdd_offset = 30 1891 separation = 150 1892 PixelNumX = 128 1893 PixelNumY = 48 1894 PixelFWHM = 0.5 1895 size = 65 1896 event_file_name ="something.hst" 1897 tube_orientation = "horizontal" 1898 number_of_tubes = 48 1899 tube_index = p 1900 spatial_calibration = 1 1901 tube_width = 8 1902 SetDataFolder root:VSANS_file:entry1:instrument:detector_FR 1903 data = trunc(abs(gnoise(p+q))) 1904 //WAVE //data_error = 0.01*abs(gnoise(p+q)) 1905 nx_distance = 2.1 1906 description = "fancy model" 1907 settings = "just right" 1908 dead_time = 5e-6 1909 x_pixel_size = 5.08 1910 y_pixel_size = 5.08 1911 beam_center_x = 65.55 1912 beam_center_y = 62.33 1913 type = "??" 1914 //WAVE //flatfield_applied = 0 1915 //WAVE //countrate_correction_applied = 0 1916 pixel_mask = 0 1917 integrated_count = 100111222 1918 lateral_offset = 20 1919 separation = 150 1920 PixelNumX = 48 1921 PixelNumY = 256 1922 PixelFWHM = 0.5 1923 size = 65 1924 event_file_name ="something.hst" 1925 tube_orientation = "vertical" 1926 number_of_tubes = 48 1927 tube_index = p 1928 spatial_calibration = 1 1929 tube_width = 8 1930 SetDataFolder root:VSANS_file:entry1:instrument:detector_FL 1931 data = trunc(abs(gnoise(p+q))) 1932 //WAVE //data_error = 0.01*abs(gnoise(p+q)) 1933 nx_distance = 2.1 1934 description = "fancy model" 1935 settings = "just right" 1936 dead_time = 5e-6 1937 x_pixel_size = 5.08 1938 y_pixel_size = 5.08 1939 beam_center_x = 65.55 1940 beam_center_y = 62.33 1941 type = "??" 1942 //WAVE //flatfield_applied = 0 1943 //WAVE //countrate_correction_applied = 0 1944 pixel_mask = 0 1945 integrated_count = 100111222 1946 lateral_offset = 20 1947 separation = 150 1948 PixelNumX = 48 1949 PixelNumY = 256 1950 PixelFWHM = 0.5 1951 size = 65 1952 event_file_name ="something.hst" 1953 tube_orientation = "vertical" 1954 number_of_tubes = 48 1955 tube_index = p 1956 spatial_calibration = 1 1957 tube_width = 8 1958 SetDataFolder root:VSANS_file:entry1:instrument:detector_FT 1959 data = trunc(abs(gnoise(p+q))) 1960 //WAVE //data_error = 0.01*abs(gnoise(p+q)) 1961 nx_distance = 2.1 1962 description = "fancy model" 1963 settings = "just right" 1964 dead_time = 5e-6 1965 x_pixel_size = 5.08 1966 y_pixel_size = 5.08 1967 beam_center_x = 65.55 1968 beam_center_y = 62.33 1969 type = "??" 1970 //WAVE //flatfield_applied = 0 1971 //WAVE //countrate_correction_applied = 0 1972 pixel_mask = 0 1973 integrated_count = 100111222 1974 lateral_offset = 20 1975 sdd_offset = 30 1976 separation = 150 1977 PixelNumX = 128 1978 PixelNumY = 48 1979 PixelFWHM = 0.5 1980 size = 65 1981 event_file_name ="something.hst" 1982 tube_orientation = "horizontal" 1983 number_of_tubes = 48 1984 tube_index = p 1985 spatial_calibration = 1 1986 tube_width = 8 1987 SetDataFolder root:VSANS_file:entry1:instrument:detector_FB 1988 data = trunc(abs(gnoise(p+q))) 1989 //WAVE //data_error = 0.01*abs(gnoise(p+q)) 1990 nx_distance = 2.1 1991 description = "fancy model" 1992 settings = "just right" 1993 dead_time = 5e-6 1994 x_pixel_size = 5.08 1995 y_pixel_size = 5.08 1996 beam_center_x = 65.55 1997 beam_center_y = 62.33 1998 type = "??" 1999 //WAVE //flatfield_applied = 0 2000 //WAVE //countrate_correction_applied = 0 2001 pixel_mask = 0 2002 integrated_count = 100111222 2003 lateral_offset = 20 2004 sdd_offset = 30 2005 separation = 150 2006 PixelNumX = 128 2007 PixelNumY = 48 2008 PixelFWHM = 0.5 2009 size = 65 2010 event_file_name ="something.hst" 2011 tube_orientation = "horizontal" 2012 number_of_tubes = 48 2013 tube_index = p 2014 spatial_calibration = 1 2015 tube_width = 8 2016 2017 2018 SetDataFolder root:VSANS_file:entry1:data_B 2019 data = trunc(abs(gnoise(p+q))) 2020 //WAVE //error = 0.01*abs(gnoise(p+q)) 2021 variables = {320,320} 2022 data_image = p 2023 SetDataFolder root:VSANS_file:entry1:data_MR 2024 data = trunc(abs(gnoise(p+q))) 2025 //WAVE //error = 0.01*abs(gnoise(p+q)) 2026 variables = {48,256} 2027 data_image = p 2028 SetDataFolder root:VSANS_file:entry1:data_ML 2029 data = trunc(abs(gnoise(p+q))) 2030 //WAVE //error = 0.01*abs(gnoise(p+q)) 2031 variables = {48,256} 2032 data_image = p 2033 SetDataFolder root:VSANS_file:entry1:data_MT 2034 data = trunc(abs(gnoise(p+q))) 2035 //WAVE //error = 0.01*abs(gnoise(p+q)) 2036 variables = {128,48} 2037 data_image = p 2038 SetDataFolder root:VSANS_file:entry1:data_MB 2039 data = trunc(abs(gnoise(p+q))) 2040 //WAVE //error = 0.01*abs(gnoise(p+q)) 2041 variables = {128,48} 2042 data_image = p 2043 SetDataFolder root:VSANS_file:entry1:data_FR 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_FL 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_FT 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_FB 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 2064 SetDataFolder root:VSANS_file:entry1:reduction 2065 intent = "SCATTER" 2066 transmission_file_name = "SANSFile_TRN.h5" 2067 empty_beam_file_name = "SANSFile_EB.h5" 2068 background_file_name = "SANSFile_BKG.h5" 2069 empty_file_name = "SANSFile_EMP.h5" 2070 sensitivity_file_name = "SANSFile_DIV.h5" 2071 mask_file_name = "SANSFile_MASK.h5" 2072 sans_log_file_name = "SANSFile_log.txt" 2073 whole_trans = 0.888 2074 whole_trans_error = 0.008 2075 box_count = 23232 2076 box_count_error = 22 2077 box_coordinates = {50,80,45,75} 2078 comments = "extra data comments" 2079 absolute_scaling = {1,1,1e5,1} 2080 SetDataFolder root:VSANS_file:entry1:reduction:pol_sans 2081 pol_sans_purpose = "name from the list" 2082 cell_name = "Burgundy" 2083 cell_parameters = {1,2,3,4,5} 2084 2085 SetDataFolder root:VSANS_file:DAS_Logs 2086 //...multiple entries and levels... to add 2087 //this will be enormous 2088 2089 2090 2091 2092 2093 2094 2095 ///// DO NOT DELETE WHAT IS BELOW THIS LINE ///////////// 2096 26 27 28 // 29 // A "template" VSANS Nexus file has been loaded and is then filled in with 30 // the simulation results. Some of teh file, will therefor be garbage, but the 31 // overall structure and attributes should be correct. 32 // 33 // Hopefully this will make the maintenance and testing of the file structure easier... 34 // AUG 2015 35 // 2097 36 /////////////////////////// 2098 37 // … … 2101 40 // 2102 41 //////////////////////// 42 43 // TODO: 44 // -- Need to write all of the "accessors" to r/w all of the simulated bits to the data file... lots to do 45 // -- THIS DOES NOT MATCH THE CURRENT NICE_GENERATED FILE !!!! 46 // 47 Proc H_Fill_VSANS_Template_wSim() 48 49 // root:sans9:entry:entry1:instrument:beam:monochromator:wavelength 2103 50 2104 51 SetDataFolder root:VSANS_file:entry1:instrument -
sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/VC_HDF5_VSANS_Utils.ipf
r958 r960 45 45 46 46 47 48 Macro Setup_VSANS_Struct() 47 Macro Load_Nexus_V_Template() 48 H_HDF5Gate_Read_Raw("") 49 String tmpStr=root:file_name //SRK - so I can get the file name 50 51 // this is the folder name 52 String base_name = StringFromList(0,File_Name,".") 53 // Print base_name 54 RenameDataFolder $("root:"+base_name), V_Nexus_Template 55 End 56 57 58 Macro Fill_Nexus_V_Template() 59 60 End 61 62 63 Macro Save_Nexus_V_Template() 64 H_HDF5Gate_Write_Raw() 65 End 66 67 68 69 70 71 72 73 74 75 76 77 78 79 ///////////////////////////// 80 81 /////////////below is largely depricated, ugly dance to be able to "fake" a file from Igor 82 // which was not complete anyways. 83 84 85 86 Macro IgorOnly_Setup_VSANS_Struct() 49 87 50 88 // lays out the tree and fills with dummy values … … 59 97 End 60 98 61 Macro Save_VSANS_Nexus(fileName)99 Macro IgorOnly_Save_VSANS_Nexus(fileName) 62 100 String fileName="Test_VSANS_file" 63 101 … … 87 125 88 126 89 Macro Setup_SANS_Struct()127 Macro IgorOnly_Setup_SANS_Struct() 90 128 91 129 // lays out the tree and fills with dummy values … … 100 138 End 101 139 102 Macro Save_SANS_Nexus(fileName)140 Macro IgorOnly_Save_SANS_Nexus(fileName) 103 141 String fileName="Test_SANS_file" 104 142 … … 197 235 // this is my procedure to save the folders to HDF5, once I've filled the folder tree 198 236 // 199 // this does NOT save attributes, but gets the fo dler structure correct237 // this does NOT save attributes, but gets the folder structure correct 200 238 // 201 239 Function H_NXSANS_SaveGroupAsHDF5(dfPath, filename) … … 224 262 End 225 263 264 // passing null file string presents a dialog 265 // these two procedures will use the full Xrefs, so they can write out full 266 // files. They are, however, slow 267 Proc Read_Nexus_Xref() 268 H_HDF5Gate_Read_Raw("") 269 End 270 271 Proc Write_Nexus_Xref() 272 H_HDF5Gate_Write_Raw() 273 End 226 274 227 275 // 228 276 // writes out the contents of a data folder using the gateway 229 // -- the HDF5___xref wave must be present at the to ep level for it to277 // -- the HDF5___xref wave must be present at the top level for it to 230 278 // write out anything. 231 279 // 232 Proc H_HDF5Gate_Write_Raw(dfPath, 233 String dfPath = "root:VSANS_file"// e.g., "root:FolderA" or ":"280 Proc H_HDF5Gate_Write_Raw(dfPath,filename) 281 String dfPath = "root:" // e.g., "root:FolderA" or ":" 234 282 String filename = "Test_VSANS_file.h5" 235 283 // Prompt dfPath, "Data Folder",popup,H_GetAList(4) 284 // Prompt fileName, "File name" 285 286 // DoPrompt "Folder and file to write", dfPath,fileName 236 287 // Check our work so far. 237 288 // If something prints, there was an error above. … … 250 301 Proc H_HDF5Gate_Read_Raw(file) 251 302 String file 303 252 304 // NewDataFolder/O/S root:newdata 253 305 Print H5GW_ReadHDF5("", file) // reads into current folder … … 255 307 End 256 308 309 310 311 // this is in PlotUtils, but duplicated here 312 // utility used in the "PlotSmeared...() macros to get a list of data folders 313 // 314 //1: Waves. 315 //2: Numeric variables. 316 //3: String variables. 317 //4: Data folders. 318 Function/S H_GetAList(type) 319 Variable type 320 321 SetDataFolder root: 322 323 String objName,str="" 324 Variable index = 0 325 do 326 objName = GetIndexedObjName(":", type, index) 327 if (strlen(objName) == 0) 328 break 329 endif 330 //Print objName 331 str += objName + ";" 332 index += 1 333 while(1) 334 335 // remove myGlobals, Packages, etc. from the folder list 336 if(type==4) 337 str = RemoveFromList("myGlobals", str , ";" ) 338 str = RemoveFromList("Packages", str, ";") 339 endif 340 341 return(str) 342 End 257 343 258 344 // -
sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/VSANS_Includes.ipf
r958 r960 13 13 #include "Nexus_SANS_Write" 14 14 #include "Nexus_VSANS_Write" 15 #include "V_ReadWrite_HDF5" //AUG2015 beginning of read/write 16 #include "V_NexusFromIgor" //AUG2015 - depricated, but keep for now 15 17 16 18 // for possible peak fitting
Note: See TracChangeset
for help on using the changeset viewer.