@@ -38,11 +38,14 @@ def load_mcstas_events(
3838 unit = da .coords ['sample_rotation' ].unit
3939 )
4040
41- xbins = sc .linspace ('x' , - 0.25 , 0.25 , 14 * 32 + 1 )
42- ybins = sc .linspace ('y' , - 0.25 , 0.25 , 65 )
43- da = da .bin (x = xbins , y = ybins ).rename_dims ({'y' : 'stripe' })
44- da .coords ['stripe' ] = sc .arange ('stripe' , 0 , 64 )
45- da .coords ['z_index' ] = sc .arange ('x' , 14 * 32 - 1 , - 1 , - 1 )
41+ nblades = 48
42+ nwires = 32
43+ nstripes = 64
44+ 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 )
48+ da .coords ['z_index' ] = sc .arange ('x' , nblades * nwires - 1 , - 1 , - 1 )
4649
4750 # Information is not available in the mcstas output files, therefore it's hardcoded
4851 da .coords ['sample_position' ] = sc .vector ([0.264298 , - 0.427595 , 35.0512 ], unit = 'm' )
@@ -64,7 +67,7 @@ def load_mcstas_events(
6467 x = sc .midpoints (da .coords ['x' ]) * sc .scalar (1.0 , unit = 'm' ),
6568 y = sc .midpoints (da .coords ['y' ]) * sc .scalar (1.0 , unit = 'm' ),
6669 z = sc .scalar (0.0 , unit = 'm' ),
67- )
70+ ). transpose ( da . dims )
6871 da .coords ['position' ] = (
6972 da .coords ['detector_position' ] + rotation_by_detector_rotation * position
7073 )
@@ -82,7 +85,7 @@ def load_mcstas_events(
8285 )
8386 da .coords ["beam_size" ] = sc .scalar (2.0 , unit = 'mm' )
8487
85- da = da .fold ('x' , sizes = {'blade' : 14 , 'wire' : 32 })
88+ da = da .fold ('x' , sizes = {'blade' : nblades , 'wire' : nwires })
8689 da .bins .coords .pop ('L' )
8790 da .bins .coords .pop ('t' )
8891 return DetectorData [RunType ](da )
0 commit comments