TWiki> LHCb Web>WebPreferences>TbUT (revision 5)EditAttachPDF

TbUT analysis software

This page provides information about the TbUT package. The software is a part of the Kepler project. The main aim of this software is to perform whole processing of the testbeam data using Gaudi framework.

Contact persons

Adam Dendek Mail


To setup the TbUT you just need to:

  • Setup project and get source code from LHCb's SVN repository:
    lb-dev Kepler v3r0
    cd ./KeplerDev_v3r0
    getpack Tb/TbUT
    getpack Tb/TbKernel
    getpack Tb/TbEvent
  • compile the source code
       make -j10

Running the TbUT software

The TbUT software can be run in two modes, Pedestal and Run. The description below contains instructions on how to run TbUT in standalone mode (no other Kepler stuff). You should also look at the Tools for the LHCb Software Environment TWiki page for a better understanding how to run Gaudi-like application.

Pedestal mode -- computing the pedestals

  • The aim of the pedestal training is to calculate the pedestals values, which will then be used in Run mode in order to subtract the pedestal from the raw data during execution of the Pedestal Subtraction algorithm.
  • In this mode only 2 algorithms are executed : Raw Data Reader and Pedestal Subtractor for more detailed description of this algorithms look to the developers section.
  • Preparation of the options. You just need to modify the file ( Tb/TbUT/options/ ):
    option name brief description
    app.inputData type of string, contains path to the input data
    app.eventMax type of integer, number of event to process type of string, contains path to the output file ( contains pedestal values)

  • Run the TbUT in Pedestal mode:
    go to Tb/TbUT options/
  • After the execution of the application, the file contains pedestal values, one number per channel is output. The name of the file is specified in the options file ( line app.pedestalOutputData )

Run mode

  • In run mode the TbUT performs the whole processing of testbeam data.
  • In this mode all processing algorithms are executed.
    algorithm brief description
    Raw Data Reader Reads raw data from the DUT (Mamba board output) and saves the output into the TES
    Pedestal Subtractor Gets raw data from the TES, removes the calculated pedestals from the Pedestal mode run, and stores the output into theTES
    Common Mode Subtractor (CMS) Gets data after Pedestal Subtraction; removes the common mode noise, a single value per 32 Beetle channels (mean value of ADC); save the output into the TES
    Cluster Creator Gets data after CMS, create clusters and saves it information in the TES

Beyond the listed algorithms, a set of corresponding monitoring algorithms has been implemented. The detailed descriptions of processing and monitoring algorithms see developers section.

  • Preparation of the options. You just need to modify the file ( Tb/TbUT/options/ ):
    option name brief description
    app.inputData type of string, contains path to the input data
    app.eventMax type of integer, number of event to process
    app.pedestalInputData type of string, contains path to pedestal file (created during execution TbUT in Pedestal mode)
    app.eventNumberDisplay type of integer, informs how many event snapshots will be saved (see section exemplary outputs )

  • Running TbUT in Run mode:
    go to Tb/TbUT options/

Known issues

  • The TbUT cannot read eos files. *workaround: copy analysed file into your work directory.
  • TbUT (run mode) need to be run executed to correct calculate noise and extract clusters.
  • The tools should inherit from GaudTool class.
  • The unit test have to be implemented

Developers section

General overview

Every TbUT component class is a member of TbUT namespace.


The TbUT is a Gaudi based application. The application is separated into two sets of Gaudi algorithms. First group is responsible for processing the testbeam data. This algorithms inherit from GaudiAlgorithm class. The names of it contains string Algorithm for instanceTbUTRawDataReaderAlgorithm .

To understand TbUT source code, the algorithm classes should be treated as a starting point

The second group was designed to prepare monitoring plots. This classes inherit from base called TbUTDataMonitorAlgorithm ( see also implementation ). According to the file name convention it's names have to contains string DataMonitorAlgorithm in their's file names. E.g. TbUTPedestalSubtractorDataMonitorAlgorithm .


That kind of classes are responsible of performing the data modification. Each of this inherit from virtual interface called IProcessingEngine, therefore they have to implement processEvent method.

Tool's Factories

This kind of classes are responsible for dynamic, depend of options, creation of proper version of tools. This classes based on Factory design pattern (see also the beautiful explanation why is is so useful). See for example Raw Data Reader Factory and it implementation

Other types

  • Data structures (inherits from GaudiKernel/DataObject ) are used to be manipulated via the tools and be stored in TES. The TbUT package contains Raw Data and Clusters .
  • Additional data structures. Can be distinguished noise and pedestals. Their are used as a auxiliary structures by the tools.
  • Additional services. Used for manipulation of the additional data structures. See for instance Noise Calculator. Each of this services has own interface ( e.g. Noise calculator are based on INoiseCalculator).

Additional scripts

All scripts are stored in TbUT/scripts directory. (Not yet committed)
  • Noise monitor This script takes as an input noise file. The exemplary output:


-- AdamMateuszDendek - 2015-08-03

Topic attachments
I Attachment History Action Size Date Who Comment
PNGpng Thresholds.png r1 manage 27.8 K 2015-08-26 - 13:59 AdamMateuszDendek  
Edit | Attach | Watch | Print version | History: r25 | r7 < r6 < r5 < r4 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r5 - 2015-08-26 - AdamMateuszDendek
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    LHCb All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback