Instrument Model
IN PROGRESS
The Instrument model is described in Data Dictionary Instrument Configuration.
The BaseInstrumentModel defines each physical instrument and the InstrumentInfoModel defines the configuration settings used for one or more experiments.
classDiagram
BaseInstrumentModel <|-- InstrumentInfoModel
InstrumentInfoModel "1" *--"1" InstrumentProjectionRunSchema
InstrumentInfoModel "1" *--"N<=3" InstrumentGoniometerAngleModel
class BaseInstrumentModel{
<<Abstract>>
+String facility
+String filesystem_name
+String reference_name
+create()
}
class InstrumentInfoModel{
+String state_info
+List~Number~[1|2] wavelength
+String raw_file_format
+List~InstrumentGoniometerAngleModel~ goniometer_settings
+InstrumentProjectionRunSchema run_schema
+create()
}
class InstrumentGoniometerAngleModel{
+String name
+String reference_name
+List~Number~[3] direction
+Number sense
+Bool used_in_goniometer_setting
+get_angle_field_name()
}
class InstrumentProjectionRunSchema{
+grouping_field
+run_number_field
+scale_field
}
- The InstrumentInfo is created from the InstrumentConfiguration Settings. Based on the information, we can create the following instruments:
SNAP
CORELLI
TOPAZ
MANDI
WAND2
DEMAND
The InstrumentInfoModel model captures the changes in the configuration parameters for a specific instrument, e.g. DEMAND can have two InstrumentInfoObjects with different parameters. The state_info (optionally) includes the description of the change/upgrade for that instrument.
classDiagram
InstrumentInfoModel <|-- SNAPInfo
InstrumentInfoModel <|-- CORELLIInfo
InstrumentInfoModel <|-- TOPAZInfo
InstrumentInfoModel <|-- MANDIInfo
InstrumentInfoModel <|-- WAND2Info
InstrumentInfoModel <|-- DEMANDInfo
class InstrumentInfoModel{
<>
}
class SNAPInfo{
<>
}
class CORELLIInfo{
<>
}
class TOPAZInfo{
<>
}
class MANDIInfo{
<>
}
class WAND2Info{
<>
}
class DEMANDInfo{
<>
}