Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Handle Multiple Sources, add source devices #108

Open
ZLLentz opened this issue May 28, 2020 · 5 comments
Open

Handle Multiple Sources, add source devices #108

ZLLentz opened this issue May 28, 2020 · 5 comments

Comments

@ZLLentz
Copy link
Member

ZLLentz commented May 28, 2020

Expected Behavior

With 2 accelerators, we have 2 beams and we should be able to query which beam we have in addition to how much beam we have.

Current Behavior

No such feature

Context

LCLS2!!!

@tangkong
Copy link
Contributor

With #133 and subsequent contributions, Lightpath now supports multiple sources.

Unresolved is the need to determine which beam is active, as currently we assume both sources are active and delivering beam. It might be worthwhile to present both:

  • where the beam would stop if it existed (what the blocking / incident devices are)
  • whether beam is passing through those upstream devices to the blocking device

It might be worthwhile to take the rectangle widgets (colored blue or grey) and use them to represent presence of beam. The icon colors, being made more consistent by #150, could be relied on to show where beam would stop and which devices are in the beam.

This is all reliant on knowing where the beam is coming from. For LCLS, this could involve querying the SXR / HXR rates (EVNT:SYS0:1:NC_SOFTRATE, EVNT:SYS0:1:NC_HARDRATE) or beam intensities (EM1K0:GMD:HPS:AvgPulseIntensity, GDET:FEE1:241:ENRC) could work.

With respect to implementation, making a device with the relevant PV first device in the HXR / SXR line and a simple Lightpath interface might be sufficient. Based on the relevant PV, the device could be the one that blocks or permits beam.

@ZLLentz
Copy link
Member Author

ZLLentz commented Aug 24, 2022

With respect to implementation, making a device with the relevant PV first device in the HXR / SXR line and a simple Lightpath interface might be sufficient. Based on the relevant PV, the device could be the one that blocks or permits beam.

I think this is a very good approach.

With a risk of overcomplicating things: I wonder if there are other "passive reading" devices that could be used to "revise" the beam state downstream... in some real sense, such a device wouldn't be "blocking" per se but would indicate the existence of some unknown issue.

But as the first device that just says "is there even a beam at all" there isn't such a complicated consideration.

@tangkong
Copy link
Contributor

With a risk of overcomplicating things: I wonder if there are other "passive reading" devices that could be used to "revise" the beam state downstream...

If those devices did exist, I'd love to have them in lightpath. I'm not quite sure if there are any truly "passive" devices, in the sense that a device has to interact and possibly attenuate the beam in order to measure some aspect of it. (in a naive sense)

@ZLLentz
Copy link
Member Author

ZLLentz commented Aug 24, 2022

I think this is the full list:

SXR:

  • GMD (in beam dump) (ionize gas, measure)
  • XGMD (in FEE) (ionize gas, measure)

HXR:

  • GDET (in FEE) (ionize gas, measure)
  • all instances/variations of IPM (various, downstream) (diodes that catch the beam's outer "glow" without disrupting the main flow)

@tangkong
Copy link
Contributor

One day I'll go through all these devices and properly learn what they do.

For the most-upstream devices (GMD/GDET), I suppose this becomes a pcdsdevices / device_config (happi) task. 🤔

@tangkong tangkong changed the title Handle Multiple Sources Handle Multiple Sources, add source devices Oct 12, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants