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

[GUI] Enhancements #63

Open
36 of 39 tasks
DavidLP opened this issue May 10, 2017 · 38 comments
Open
36 of 39 tasks

[GUI] Enhancements #63

DavidLP opened this issue May 10, 2017 · 38 comments
Assignees

Comments

@DavidLP
Copy link
Collaborator

DavidLP commented May 10, 2017

Needed features for the first release are summarized here (excluding bugs, for this we have other issues!)

  • Files: Drag and drop area for data files
  • Setup:
    • Show set angles x 10 in plot
    • Show correct relative distances
    • Add material budget per plane, std. setting is 0
    • Add the ability to add scatter planes in the beam (e.g. = not used devices). These planes just have a material budget, z position and alpha, beta rotation. Then these info can be used in the Kalman enabled track fitter
    • Make scatter plane tabs closable and remove respective scatter plane from setup plotter
  • All tabs: Fixed parameter lists should be shown with a new line for each parameter for readability
  • Noisy Pixels Tab:
    • Make optional per plane and not mandatory
  • Alignment: Should be optional but not mandatory
  • Track fitting: Ability to use pre-aligned tracks, since Alignment step should not be mandatory
  • Result: Should be split into optional result analysis steps (residuals, efficiency, ...)
  • All tabs: Ability to open created h5 files(s) with ViTables
  • Multi-threading/-processing to keep GUI responsive when performing analysis:
    • Multi-threading when opening ViTables from GUI
    • Multi-threading when performing analysis
  • Add plotting analysis results into GUI
  • Add option to run a consecutive analysis from first to last analysis step without user interaction
  • Add subclass of QDialog to improve pop-up dialog for exceptions (scroll text, save traceback to file, etc.)
  • Catch plotting exceptions
  • Show iterable of iterable in GUI
  • Improve option widgets
  • Show all plots: (added in 67e3413)
    • Show Pre alignment plots
    • Show residual plots
    • Show efficiency plots
  • Use plotting functions as they were defined before. Delete the quick copy&paste blob, fixed in 67e3413
  • Implement saving and loading analysis sessions, added in e5999df
    • Completely restore FilesTab, SetupTab, added in e5999df
    • Completely restore Parallel/AnalysisTabs, added in 21e6a39
  • Multi-threaded plotting
  • Use QThreadPool and QRunnable for GUI-multithreading (see here)
  • Allow users to rerun tabs. Deactivate all preceding tabs that depend on the rerun, fixed in b46c4f6
  • While the traceback window is very usefull, the user can be scared. The most usefull information is usually the last line of the traceback. Maybe one can show this info more prominent? Fixed in 6d1e457
  • Add generic class for data tab that recognizes the input data type (e.g. ROOT tree) and converts to HDF5
  • Load configuration for DUT setup from file ENH: load config for dut setup from yaml #117
  • Add button to keep selection on widget upon error instead of always resetting entire tab Tab resetting. #111
  • Add nicer QTabBar for easier navigation for large amounts of DUTs GUI: not all DUT tabs visible #122
@leloup314
Copy link
Member

leloup314 commented May 13, 2017

Traceback (most recent call last): File "/home/leloup/miniconda2/bin/vitables", line 37, in <module> from PyQt4 import QtGui ImportError: No module named PyQt4
ViTables does not support PyQt5 but only PyQt4; cannot use ViTables with PyQt5
see

@DavidLP
Copy link
Collaborator Author

DavidLP commented May 13, 2017

True. That's why I recommended to just issue the command vitables file.h4 in a console process when clicking the button:

from subprocess import call
call("vitables file.h5")

This allows to start system installations of vitables and vitables installations in other environments.

@leloup314
Copy link
Member

selection_0036
Like this? This does not work for me even though the file exists in the cwd

@DavidLP
Copy link
Collaborator Author

DavidLP commented May 13, 2017

Do sudo apt-get install vitables first. Should work

@leloup314
Copy link
Member

Is the material budget a DUT property? What's the unit and how is it different from the thickness?

@DavidLP
Copy link
Collaborator Author

DavidLP commented May 18, 2017

Is the material budget a DUT property?

Yes

What's the unit

@YannickDieter You did the calculation recently. Can you answer? I guess it is g / cm³

how is it different from the thickness

You can have different materials and the material budget also accounts for passive material (PCB, readout) etc.

@YannickDieter
Copy link
Contributor

Yes but for the Kalman Filter we need matrial budget (radiation length) in um. So you need to divide it by the density of the material.

@YannickDieter
Copy link
Contributor

At the moment, the kalman filter needs for every DUT the whole thickness (sensor + other materials) and the corresponding radiation lengths in um for the material (or compound).

@YannickDieter
Copy link
Contributor

@YannickDieter You did the calculation recently. Can you answer? I guess it is g / cm³

sorry, it is g / cm². This gives cm if you divide it by the density.

@leloup314
Copy link
Member

So you would need not only a material budget input but also a one for the density and radiation length of the material?
Or should the correctly calculated quantity be put in directly?

@YannickDieter
Copy link
Contributor

I dont know how we should do this in the future. But at the moment I only need radiation length (which is the same as material budget for me) in um + the whole thickness. So the user has to calculate the radiation length. Maybe it is better to this automatically, but then we need to pass the matrial as well.

@leloup314
Copy link
Member

As far as I understood, we also want to consider two different materials e.g. sensor and PCB or housing. Does the Kalman filter take these also into account e.g. we would need: thickness_sensor + X_0_sensor + thickness_PCB + X_0_PCB?

@YannickDieter
Copy link
Contributor

No not really. But e.g. for M26 (where I consider different materials: 50 um Si + 50 um Kapton), the user should take 100 um as total thickness and a radiation length of 125390 um. This follows from this formula: https://cds.cern.ch/record/1279627/files/PH-EP-Tech-Note-2010-013.pdf (radiation length of compounds)

@leloup314
Copy link
Member

Okay, so we need one field for total thickness and one for the overall radiation length?

@YannickDieter
Copy link
Contributor

Yes, but for each DUT ;)

@leloup314
Copy link
Member

selection_0037
This occurred while testing. Does anyone know why?

@YannickDieter
Copy link
Contributor

I also had this problem when calculating the residuals of the eutelescope example for Kalman tracks. The residuals for the first plane were all very close to zero (I think I know the reason now) and then the histogram function causes the error since if no bins are specified nbins is set to 'auto'. Specifying npixels_per_bin, nbins_per_pixel in the residual calculation should fix it.

@DavidLP
Copy link
Collaborator Author

DavidLP commented May 19, 2017

Added a new issue. Related observations please add there. Also please always report issues, spotting and describing bugs is halve the work!

@leloup314
Copy link
Member

leloup314 commented May 20, 2017

selection_0040
This error has been occurring quite some times during testing. Especially when having mixed DUT types e.g. one FE-I4 and rest M26

@DavidLP
Copy link
Collaborator Author

DavidLP commented May 22, 2017

This is another bug. Please open a bug report with info how to reproduce it.

@DavidLP
Copy link
Collaborator Author

DavidLP commented May 29, 2017

@YannickDieter Can you upload your scattering plane track fitting, that we can see the API?

@YannickDieter
Copy link
Contributor

Do you mean the option to add a additional scattering plane? Is it possible to push again into developement?

@leloup314
Copy link
Member

leloup314 commented Jun 16, 2017

@YannickDieter Do we really need an index_scatter for the scatter planes since we have the z positions which determine the index already, I guess. See here
Is it possible to process more than one scatter plane? Right now one can add multiple scatter planes in the setup. @DavidLP Should we support multiple scattering planes or just one?

@DavidLP
Copy link
Collaborator Author

DavidLP commented Jun 17, 2017

I think index_scatter should be removed.

@leloup314
Copy link
Member

Is it implemented in cluster_hits function to have an input_noisy_pixel_mask_file which does not have a mask for all DUTs e.g. 4 DUTs and only 1 noisy pixel mask for one of the DUTs in input_noisy_pixel_mask_file?

@YannickDieter
Copy link
Contributor

For support of multiple scattering planes and changes related to this option, see #78.

@leloup314
Copy link
Member

@DavidLP should I keep track of every enhancement here or just close?

@DavidLP
Copy link
Collaborator Author

DavidLP commented Aug 17, 2017

Looks good. Is the last point implemented?

@leloup314
Copy link
Member

leloup314 commented Aug 17, 2017

It's not yet implemented but I'm asking in general. Should I keep this list updated with every enhancement I implement or should I at some point close this 'issue' and resume to announce the enhancements just in the commit messages?

@DavidLP
Copy link
Collaborator Author

DavidLP commented Aug 18, 2017

I would say we summarize all needed features for the first release here. For other not mandatory features we can create a new issue then.

@DavidLP
Copy link
Collaborator Author

DavidLP commented Aug 21, 2017

I think drag and drop does not work for the file selection?

@leloup314
Copy link
Member

Drag and drop works since May (678fae6). I'm also very sure I showed you this feature then.

@DavidLP
Copy link
Collaborator Author

DavidLP commented Aug 21, 2017

True, thought it was not working on Friday, but when I checked on Windows now it was working.

@DavidLP
Copy link
Collaborator Author

DavidLP commented Aug 30, 2017

This should be just a tick box for every DUT, no?
grafik

@DavidLP DavidLP added gui and removed help wanted labels Aug 30, 2017
@leloup314
Copy link
Member

leloup314 commented Aug 30, 2017

Yes, this should be just tick boxes, but I haven't changed this yet, since this is handled in here and I only fixed the option widget for multiple boxes. This should work for now, but I'm on it ("Improve option widgets"). There are several things that work, but should be improved.

@leloup314
Copy link
Member

Set as fixed parameter in 6c251b9

@leloup314
Copy link
Member

Fixed in 35b57e0

@leloup314
Copy link
Member

leloup314 commented Sep 8, 2017

@DavidLP Plotting is now done for all tab (except alignment, since I dont know what to plot there). Please have a look at 67e3413. I changed plot_utils so it doesn't cointain code dublicates anymore, overall I had to change several files slightly to enable plotting of prealignment, efficiency and residuals since there are no standalone plotting functions for them and to implement them doesn't seem trivial at all without dublicating code. Does this look okay to you?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants