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

Generalize the way hardware channels are mapped into detector objects #27

Open
paulmking opened this issue Sep 21, 2018 · 1 comment
Open
Assignees
Labels
enhancement New feature or request

Comments

@paulmking
Copy link
Collaborator

Right now, when we construct a detector object, the allowed hardware channel types are basically hardcoded. It would be good if the name of the hardware channel in the channel map file could be used dynamically to assign the proper VQwHardwareChannel-derived class without having to have an explict cascade of if-statements.

Some subtle points:

  • A complex detector object (like a stripline BPM) probably should be built with only a single instrumentation type.
  • What should happen if we do arithmetic with channels which have different data-structures? All of our channels have at least a single value per helicity window, but some have oversamples. For instance, if we tried to multipy a VQWK value with a scaler value, do we "promote" the scaler to give its value in each subblock, or "demote" the result to only have the hardwaresum?
  • What would this do to throughput times? Ideally all of this should be handled once at initialization, but if we have to dynamically generate new objects where we need to determine their types during the running process, it would likely bog us down.
@paulmking paulmking added the enhancement New feature or request label Sep 21, 2018
@paulmking paulmking self-assigned this Sep 21, 2018
@cameronc137
Copy link
Collaborator

See #22 most recent comment and commit f659591, it may be nice to have a generic name for a beam line element (i.e. not an epics variable), so that if you don't know what the device is that is plugged into the ADC, or if the channel is empty, then you can still refer to it in analysis in some useful way. This may require too-generic of an approach to be feasible though.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants