Core: remove `InstrumentState` from `DataSet`
In the current implementation, InstrumentState
s are owned by DataSet
. This does not make sense to me: I believe that DataSet
should consist (almost) solely of the detector images, and should therefore be immutable. When we refine the instrument states, we have to reference a mutable DataSet
, and this is the only time it is ever modified.
I propose the following:
- New
InstrumentStates
class that is a container for theInstrumentState
s, to be saved in the hdf5 file so that re-refinement does not need to be done on loading an experiment. - Remove members
_states
fromDataSet
- Move
_diffractometer
fromDataSet
toExpermient
, since it is a logical property of the latter rather than the former. - Move
_masks
somewhere else, perhapsExperiment
.
Edited by Raza, Zamaan