madgui
20.7.0
  • Installation
  • Getting started
  • User’s guide
  • Developer’s guide
    • Development setup for madgui
    • Proxy Settings
    • Coding conventions
    • Related projects
    • Infrastructure
    • Creating a new version
  • madgui package
madgui
  • »
  • Developer’s guide »
  • Related projects
  • View page source

Related projects¶

This is a short overview over the components involved in madgui development:

digraph {
    node [fontsize=11];

    subgraph cluster_0 {
        madgui -> pyqt;
        madgui -> hit_acs;
        madgui -> cpymad;

        madgui [label = "madgui"];
        pyqt [label = "PyQt5"];
        hit_acs [label = "hit_acs"];
        cpymad [label = "cpymad"];

        { rank = same; pyqt; hit_acs; cpymad; }

        label="python";
        fontsize=10;
        fontcolor=gray;
        color=gray;
    }

    madgui -> hit_models;
    hit_models [label = "hit_models"];

    hit_acs -> beam;
    cpymad -> madx;
    pyqt -> user;

    { rank = same; madx; beam; }

    // hit_models -> cpymad [style=dashed, color=gray];
    hit_models -> madx [style=dashed, color=gray, constraint=false];

    madx [shape=rectangle, label="MAD-X"];
    beam [shape=rectangle, label="BeamOptikDLL"];
    user [shape=rectangle, label="User"];
}
  • madgui: main application repository that contains GUI code and orchestrates the interaction between different parts

  • cpymad: python binding for MAD-X. It allows to start, access and control the MAD-X interpreter from python.

  • MAD-X: accelerator simulation code developed by CERN, used for underlying computations. Note that although “open source” it is not “free software”.

  • hit_acs: python binding for the hit accelerator control system, specifically the BeamOptikDLL.dll. This component is required for online access at HIT. It is possible to replace this component with another package with similar API to facilitate access to other control systems.

  • hit_models: contains the MAD-X model definitions for the HIT beam lines

  • madgui-installer: scripts to create an offline installer with all dependencies for usage on the control system PCs (which don’t have internet and therefore can’t download dependencies automatically)

  • PyQt5: GUI framework.

Further resources:

  • the MAD-X user’s guide is an essential resource and a must read

  • cpymad documentation

  • Qt5 documentation use this as reference for developing with Qt. It is often much better and complete than PyQt-specific references. The PyQt API is essentially the same just with C++ translated to python.

Next Previous

© Copyright 2015-2019, Heidelberg Ion beam Therapy center (HIT)

Built with Sphinx using a theme provided by Read the Docs.