Software structure: Difference between revisions

From pCT
(Add visualization for main data path.)
 
(8 intermediate revisions by 4 users not shown)
Line 1: Line 1:
[[Main Page]] -> [[Documentation]] -> [[Software structure]]
This is a brainstorming document for the general software structure of the pCT project and the operation of the full pipeline.
This is a brainstorming document for the general software structure of the pCT project and the operation of the full pipeline.


Line 8: Line 6:
* use common/open source packages where ever possible
* use common/open source packages where ever possible
* every component comes with a unit test
* every component comes with a unit test
== Presentations ==
Some presentations in the course of discussion
* [[Media:IntroToAutomaticDifferentiationWithCoDiPack Max Aehle 2021-03-22.pdf | IntroToAutomaticDifferentiationWithCoDiPack Max Aehle 2021-03-22.pdf]]
* [[Media:2021-03-29 mrichter pct-software-tasks.pdf | 2021-03-29_mrichter_pct-software-tasks.pdf]]
* [[Media:MLPCT_Pres_04122021.pdf | 04/12/2021 Simulation of Detector Response]]


== Software Modules ==
== Software Modules ==
[[File:Software-task-sequence.png]]
[[File:Software-task-sequence.png]]
== Optimisation ==
* Intro to Automatic Differentiation with CoDiPack, Max Aehle, 2021-03-22 [[Media:IntroToAutomaticDifferentiationWithCoDiPack_Max_Aehle_2021-03-22.pdf]]


=== Main data path ===
=== Main data path ===
* Simulation
** Beam Simulation
** Phantom Simulation
** Detector Propagation
* Detector Response Simulation
* Readout Simulation
* Readout and Raw Data reconstruction
** pct-online
* Detector Reconstruction
** Most likely entrance step and hull algorithm needed for the single-sided setup
** Clustering and Tracking
* Phantom reconstruction
* Imaging
[[File:SignalChain.png|border|1000px]]
[[File:SignalChain.png|border|1000px]]


Line 26: Line 47:
== Common software modules ==
== Common software modules ==
=== Data model ===
=== Data model ===
* Bridge Design Pattern [[Media:PCT_Design_Pattern_Intro.pdf]]
=== Common IO ===
=== Common IO ===
=== IPC ===
=== IPC ===
=== Logging ===
=== Logging ===
=== Control ===
=== Control ===

Latest revision as of 17:12, 18 April 2021

This is a brainstorming document for the general software structure of the pCT project and the operation of the full pipeline.

General guidelines

  • support multiple programming languages
  • open for the programming tools best suited for a specific purpose and development group
  • use common/open source packages where ever possible
  • every component comes with a unit test

Presentations

Some presentations in the course of discussion

Software Modules

Software-task-sequence.png

Optimisation

Main data path

  • Simulation
    • Beam Simulation
    • Phantom Simulation
    • Detector Propagation
  • Detector Response Simulation
  • Readout Simulation
  • Readout and Raw Data reconstruction
    • pct-online
  • Detector Reconstruction
    • Most likely entrance step and hull algorithm needed for the single-sided setup
    • Clustering and Tracking
  • Phantom reconstruction
  • Imaging

SignalChain.png

Utilities

  • Visualization
  • Control
  • Monitoring

Contact information of maintainers/experts for each software module

Build system and package management

Common software modules

Data model

Common IO

IPC

Logging

Control