Laurent ¡Garnier ¡-‑ ¡OSUR ¡/ ¡Geant4 ¡Collaboration ¡ Meeting ¡-‑ ¡28 ¡Sept ¡2015 ¡-‑ ¡Chicago ¡ 1 ¡
Laurent Garnier - OSUR / Geant4 Collaboration 1 Meeting - - PowerPoint PPT Presentation
Laurent Garnier - OSUR / Geant4 Collaboration 1 Meeting - - PowerPoint PPT Presentation
Laurent Garnier - OSUR / Geant4 Collaboration 1 Meeting - 28 Sept 2015 - Chicago Updates on Vis and UIs since 10.1 beta
Updates ¡on ¡Vis ¡and ¡UI’s ¡since ¡ 10.1 ¡beta ¡
1.Quick ¡overview ¡of ¡UI’s ¡ 2.What’s ¡new ¡in ¡UI ¡ 3. ¡Updates ¡on ¡Vis ¡
Multithreading ¡in ¡Visualization ¡ C++11 ¡ Re-‑implemented ¡graphics ¡system ¡fallback ¡strategy ¡ Fix ¡a ¡problem ¡when ¡zooming ¡on ¡small ¡volumes ¡
2 ¡ Laurent ¡Garnier ¡-‑ ¡OSUR ¡/ ¡Geant4 ¡Collaboration ¡ Meeting ¡-‑ ¡28 ¡Sept ¡2015 ¡-‑ ¡Chicago ¡
Quick ¡overview ¡of ¡UI’s ¡
3 ¡
What ¡do ¡we ¡have ¡: ¡
¡ G4UIQt, ¡the ¡ ¡most ¡up ¡to ¡date ¡viewer, ¡base ¡on ¡Qt ¡framework ¡ G4UITerminal, ¡the ¡default ¡user ¡interface ¡of ¡Geant4, ¡ G4UIXm, ¡G4UIWin32, ¡variations ¡of ¡the ¡upper ¡terminal ¡by ¡using ¡a ¡Motif ¡
- r ¡Windows ¡widget ¡ ¡
GAG, ¡a ¡fully ¡Graphical ¡User ¡Interface ¡and ¡its ¡extension ¡G4UIGainServer ¡
- f ¡the ¡client/server ¡type. ¡
Laurent ¡Garnier ¡-‑ ¡OSUR ¡/ ¡Geant4 ¡Collaboration ¡ Meeting ¡-‑ ¡28 ¡Sept ¡2015 ¡-‑ ¡Chicago ¡
What’s ¡new ¡in ¡User ¡Interfaces ¡? ¡
4 ¡ Laurent ¡Garnier ¡-‑ ¡OSUR ¡/ ¡Geant4 ¡Collaboration ¡ Meeting ¡-‑ ¡28 ¡Sept ¡2015 ¡-‑ ¡Chicago ¡
- No major new features developped
- Bugs fixes
- G4UIQt :
- add methods to access user interface components
Updates ¡on ¡G4UIQt
¡
5 ¡ Laurent ¡Garnier ¡-‑ ¡OSUR ¡/ ¡Geant4 ¡Collaboration ¡ Meeting ¡-‑ ¡28 ¡Sept ¡2015 ¡-‑ ¡Chicago ¡
Geant4.10.0.p5 with Qt4.8 Geant4.10.2 with Qt5.5
Updates ¡on ¡Vis ¡: ¡Multithread ¡
(Slides ¡from ¡John ¡Allison) ¡
6 ¡ Laurent ¡Garnier ¡-‑ ¡OSUR ¡/ ¡Geant4 ¡Collaboration ¡ Meeting ¡-‑ ¡28 ¡Sept ¡2015 ¡-‑ ¡Chicago ¡
- Aim:
visualisation behaviour in multithreading mode should be as close as possible to sequential mode
- In 10.0 and 10.1
Events (default 100) are saved and displayed at end of run Clearly different to sequential, but good enough for checking
- From 10.2
Events are queued and drawn by a separate vis thread during the run To the user, multithreaded behaves same as sequential As users adopt multithreading they require full vis features
Vis ¡flow ¡diagram ¡-‑ ¡multithreaded ¡mode ¡
G4 G4VisManager BeginOfRun
Launch vis thread Set runInProgress
BeginOfEvent EndOfEvent
Keep ¡event ¡and ¡push ¡to ¡Q ¡
Qsize Too big sleep
EndOfRun
Inform viewer Reset runInProgress Wait for vis thread to finish
Vis thread
end
Qsize != 0
Draw event Pop and release event
runInProgress
sleep
Inform viewer no Inform viewer
Notes:
- Queue is std::deque<const G4Event*>
- Appropriate locks are used to set and reset
runInProgress
- “Keep” and “release” refer to messages to the
run manager (new feature)
Vis ¡thread
¡
8 ¡ Laurent ¡Garnier ¡-‑ ¡OSUR ¡/ ¡Geant4 ¡Collaboration ¡ Meeting ¡-‑ ¡28 ¡Sept ¡2015 ¡-‑ ¡Chicago ¡
Updates ¡on ¡Vis
¡
9 ¡ Laurent ¡Garnier ¡-‑ ¡OSUR ¡/ ¡Geant4 ¡Collaboration ¡ Meeting ¡-‑ ¡28 ¡Sept ¡2015 ¡-‑ ¡Chicago ¡
- C++11 ¡
- Re-‑implemented ¡graphics ¡system ¡fallback ¡strategy ¡
- Fix ¡a ¡problem ¡when ¡zooming ¡on ¡small ¡volumes ¡
Question ¡? ¡
10 ¡ Laurent ¡Garnier ¡-‑ ¡OSUR ¡/ ¡Geant4 ¡Collaboration ¡ Meeting ¡-‑ ¡28 ¡Sept ¡2015 ¡-‑ ¡Chicago ¡