DiamondLightSource / DiamondLightSource/dodal

Create I19 attenuation sub-systems

Open
#2,123 0 comments 0 reactions 1 assignee Claimed by @CoePaul View on GitHub
i19-1 i19-2
Dominant language
Python
Stars
5
Forks
13
Avg merge
3d 2h
Merged PRs (30d)
10

Description

Addresses #1007
Creating the dodal device which serves as the entire transmission system

This splits naturally ( under the bonnet / hood ) into two sub-systems
as per the business logic requirements requested by the scientist.

https://confluence.diamond.ac.uk/x/4Iq4Fw

Use either the wheel / aluminium wedge sub-system
or the resin wedge system ( or neither ).

Creating therefore each sub-system with these capabilities:

A sub-system which can:

a) report what the sub-system attenuation would be for any input x-ray energy, motor configuration
-- this should **not ignore invalid** options from business logic - but instead just calculate the attenuation
-- it will then be able to report the live attenuation if it finds
the motors in a non-canonical state
-- this same functionality is then perfectly primed to answer questions about
the current attenuation at the current energy and current motor positions
because You just feed those into the function arguments

b) predict what the fastest-closest match attenuation (would be hypothetically), given
-- a set of motor positions
-- an x-ray energy
- the energy and motor positions need not be the current ones - **the calculator should just calculate**

c) report back motor positions needed to achieve a given attenuation request

d) answer thresholding questions needed for the business logic as it decides which sub-systems to use

N.B. Given that the lingua franca of the attenuation business logic is the logarithmic Bn unit,
all attenuation calculation results and requests will be made in these units.
[ ( This is the whole reason that unit was invented in the first place )](https://confluence.diamond.ac.uk/x/U4c0EQ)

## Acceptance Criteria
* That an attenuation sub-system class exists with the above listed capabilities as demonstrated in tests

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.