|
9 | 9 | RunType, |
10 | 10 | SampleRotationOffset, |
11 | 11 | ) |
| 12 | +from .beamline import DETECTOR_BANK_SIZES |
12 | 13 | from .mcstas import parse_events_ascii, parse_events_h5 |
13 | 14 |
|
14 | 15 |
|
@@ -38,13 +39,13 @@ def load_mcstas_events( |
38 | 39 | unit=da.coords['sample_rotation'].unit |
39 | 40 | ) |
40 | 41 |
|
41 | | - nblades = 48 |
42 | | - nwires = 32 |
43 | | - nstripes = 64 |
| 42 | + nblades = DETECTOR_BANK_SIZES['multiblade_detector']['blade'] |
| 43 | + nwires = DETECTOR_BANK_SIZES['multiblade_detector']['wire'] |
| 44 | + nstrips = DETECTOR_BANK_SIZES['multiblade_detector']['strip'] |
44 | 45 | xbins = sc.linspace('x', -0.25, 0.25, nblades * nwires + 1) |
45 | | - ybins = sc.linspace('y', -0.13, 0.13, nstripes + 1) |
46 | | - da = da.bin(y=ybins, x=xbins).rename_dims({'y': 'stripe'}) |
47 | | - da.coords['stripe'] = sc.arange('stripe', 0, nstripes) |
| 46 | + ybins = sc.linspace('y', -0.13, 0.13, nstrips + 1) |
| 47 | + da = da.bin(y=ybins, x=xbins).rename_dims({'y': 'strip'}) |
| 48 | + da.coords['strip'] = sc.arange('strip', 0, nstrips) |
48 | 49 | da.coords['z_index'] = sc.arange('x', nblades * nwires - 1, -1, -1) |
49 | 50 |
|
50 | 51 | # Information is not available in the mcstas output files, therefore it's hardcoded |
@@ -85,7 +86,14 @@ def load_mcstas_events( |
85 | 86 | ) |
86 | 87 | da.coords["beam_size"] = sc.scalar(2.0, unit='mm') |
87 | 88 |
|
88 | | - da = da.fold('x', sizes={'blade': nblades, 'wire': nwires}) |
| 89 | + da = da.fold( |
| 90 | + 'x', |
| 91 | + sizes={ |
| 92 | + k: v |
| 93 | + for k, v in DETECTOR_BANK_SIZES['multiblade_detector'].items() |
| 94 | + if k in ('blade', 'wire') |
| 95 | + }, |
| 96 | + ) |
89 | 97 | da.bins.coords.pop('L') |
90 | 98 | da.bins.coords.pop('t') |
91 | 99 | return DetectorData[RunType](da) |
|
0 commit comments