• DocumentCode
    751697
  • Title

    Go4 multitasking class library with ROOT

  • Author

    Adamczewski, J. ; Al-Turany, M. ; Bertini, D. ; Essel, H.G. ; Hemberger, M. ; Kurz, N. ; Richter, M.

  • Author_Institution
    Gesellschaft fur Schwerionenforschung mbH, Darmstadt, Germany
  • Volume
    49
  • Issue
    2
  • fYear
    2002
  • fDate
    4/1/2002 12:00:00 AM
  • Firstpage
    521
  • Lastpage
    524
  • Abstract
    In the situation of monitoring an experiment, it is often necessary to control several independently running tasks from one graphical user interface (GUI). Such a GUI must be able to execute commands in the tasks even if they are busy, i.e., getting data, analyzing data, or waiting for data. Moreover, the tasks, being controlled by data streams (i.e., event data samples or slow control data), must be able to send data asynchronously to the GUI for visualization. A multitasking package (C++ class library) that meets these demands has been developed at the Gesellschaft fur Schwerionenforschung (GSI), Darmstadt, Germany, in the framework of a new analysis system, Go4, which is based on the ROOT system [CERN, R. Brun et al]. The package provides a thread manager, a task handler, and asynchronous intertask communication between threads through sockets. Hence, objects can be sent at any time from a task to the GUI or vice versa. At the GUI side, an incoming object is accepted by a thread and processed. In a task, an incoming command is queued by the accepting thread and executed in the execution thread. Utilizing the package one can implement nonblocking GUIs to control one or several tasks processing data in parallel and updating graphical elements in the GUI. The package could also be useful in building data dispatchers or in slow control applications. All components have been tested with Go4 analysis tasks and a very preliminary GUI
  • Keywords
    C++ language; computerised monitoring; data visualisation; graphical user interfaces; high energy physics instrumentation computing; multiprocessing programs; physical instrumentation control; software libraries; C++ class library; Go4 multitasking class library; ROOT; asynchronous intertask communication; data streams; event data samples; graphical user interface; independently running tasks control; monitoring; multitasking package; nonblocking GUI; task handler; thread manager; visualization; Data analysis; Data visualization; Graphical user interfaces; Libraries; Monitoring; Multitasking; Packaging; Sockets; Testing; Yarn;
  • fLanguage
    English
  • Journal_Title
    Nuclear Science, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0018-9499
  • Type

    jour

  • DOI
    10.1109/TNS.2002.1003793
  • Filename
    1003793