Skip to content

Refactoring the EXPERIMENT_TYPE enumeration #1605

Description

@rhfogh

The issue arises from Issue #1604, which proposes to the place the 'OSC' experiment type with a more relevant 'Rotation'. But teh experiment type enumeration (queue_model_enumerations.EXPERIMENT_TYPE_STR) seems a bit problematic in itself, as a basis for classifying experiments. Essentially it is a bit schizophrenic whether it classifies the purpose or the mechanics of the experiment, and some entries, like 'MAD - Inverse Beam', seem rather obsolescent. The current enumeration is:

EXPERIMENT_TYPE_STR = ExperimentType(
    "SAD",
    "SAD - Inverse Beam",
    "MAD",
    "MAD - Inverse Beam",
    "OSC",
    "Helical",
    "Characterization",
    "OSC",
    "Mesh",
    "Collect - Multiwedge",
    "Still",
    "Imaging",
)

If we look at the mechanics, a sensible set would be
'Rotation', 'Helical', 'Mesh', 'Still', 'Imaging', and possibly 'Line' (unless Line is the same as Helical).

If we look at the rest, ("SAD", "SAD - Inverse Beam", "MAD", "MAD - Inverse Beam", "OSC", "Characterization", "Collect - Multiwedge") they are all 'Rotation', or sets of 'Rotation'. Certainly the GPhL workflow enqueues them all as Rotation,in some cases with multi-trigger and offset (overlap) specification. Does it make sense to keep all these separate keywords, and to expect viewers to know how to treat them individually? What do they correspond to in terms of actual motor movements when specified on a single DataCollectionQueueEntry?

If this enumeration was more clearly defined and described it would be easier to use for e.g. display. Does anyone have some use cases for this?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions