@@ -37,11 +37,14 @@ def load_mcstas_events(
3737 unit = da .coords ['sample_rotation' ].unit
3838 )
3939
40- xbins = sc .linspace ('x' , - 0.25 , 0.25 , 14 * 32 + 1 )
41- ybins = sc .linspace ('y' , - 0.25 , 0.25 , 65 )
42- da = da .bin (x = xbins , y = ybins ).rename_dims ({'y' : 'stripe' })
43- da .coords ['stripe' ] = sc .arange ('stripe' , 0 , 64 )
44- da .coords ['z_index' ] = sc .arange ('x' , 14 * 32 - 1 , - 1 , - 1 )
40+ nblades = 48
41+ nwires = 32
42+ nstripes = 64
43+ xbins = sc .linspace ('x' , - 0.25 , 0.25 , nblades * nwires + 1 )
44+ ybins = sc .linspace ('y' , - 0.13 , 0.13 , nstripes + 1 )
45+ da = da .bin (y = ybins , x = xbins ).rename_dims ({'y' : 'stripe' })
46+ da .coords ['stripe' ] = sc .arange ('stripe' , 0 , nstripes )
47+ da .coords ['z_index' ] = sc .arange ('x' , nblades * nwires - 1 , - 1 , - 1 )
4548
4649 # Information is not available in the mcstas output files, therefore it's hardcoded
4750 da .coords ['sample_position' ] = sc .vector ([0.264298 , - 0.427595 , 35.0512 ], unit = 'm' )
@@ -63,7 +66,7 @@ def load_mcstas_events(
6366 x = sc .midpoints (da .coords ['x' ]) * sc .scalar (1.0 , unit = 'm' ),
6467 y = sc .midpoints (da .coords ['y' ]) * sc .scalar (1.0 , unit = 'm' ),
6568 z = sc .scalar (0.0 , unit = 'm' ),
66- )
69+ ). transpose ( da . dims )
6770 da .coords ['position' ] = (
6871 da .coords ['detector_position' ] + rotation_by_detector_rotation * position
6972 )
@@ -81,7 +84,7 @@ def load_mcstas_events(
8184 )
8285 da .coords ["beam_size" ] = sc .scalar (2.0 , unit = 'mm' )
8386
84- da = da .fold ('x' , sizes = {'blade' : 14 , 'wire' : 32 })
87+ da = da .fold ('x' , sizes = {'blade' : nblades , 'wire' : nwires })
8588 da .bins .coords .pop ('L' )
8689 da .bins .coords .pop ('t' )
8790 return RawDetectorData [RunType ](da )
0 commit comments