Page History
...
Geometry package for psana: psgeom or PSCalib
- psgeom:
- Pros:
Clean and modern interface
Clean and nice coding style
- Cons:
No single true internal geometry representation
Main mantainer not working at LCLS (!!!)
- Comments from MD:
- duplication of psana geometry code for panels and entire detector - wrong design, for conversion purpose it should inherit from psana geometry, not substitute it.
- as a result, it does not normally support hierarchal description of sub-detectors, always needs to be updated for new panel geometry which is done much earlier in psana (example epix10ka, jungfrau).
- there is no guarantee that converter works correctly (multiple issues in the past) because it uses internal engine for pixel geometry which might be different from original psana.
- Pros:
- PSCalib.GeometryAccess:
- Based on the content of this page Detector Geometry
Pros:
True internal representation of the geometry
Better integration with the rest of psana
Maintained and developed at LCLS (!!!)
Cons:
Interface is often not very Pythonic (example: vebosity bits) - MD: outdated comment - for lcls2 geometry is changed significantly
Documentation could be more accessible - MD: could be, in-line documentation is available and work in psana1, please provide documentation processor for lcls2.
- psgeom:
Proposal: I propose that we make PSCalib the default geometry package for psana
Geometry Interface improvement proposals (Work in progress):
Expose the bit flags in various functions as Python bool flags - NOTE: maybe already fixed in LCLS2
Do not require parameters that are not strictly needed (for clarity)
Example: det.daq.image(evt,array=None) could be det.daq.image(evt) or det.daq.image(array), either with two separate functions or with different behavior depending on the input data
Use more descriptive names for some parameters. Examples: oname, oindex, vbase, etc.
Make documentation more accessible (use one of the standard for docstrings?) - NOTE: maybe already fixed in LCLS2
All this can be accomplished with wrappers, without breakage
I volunteer to do that, of course
...