RawEvent - The RAW data format.


What is the RawEvent?

The RawEvent can be considered as a mini event store, which contains heavily packed, optimised data as close as possible to what is actually shipped off of the detector.

These packed data are known as RawBanks for which there may be several per subdetector, and many different types.

These data are concatenated and compressed into a "RawEvent" which is a concatenated set of "RawBanks". A raw event contains typically many different banks. In order to interpret a single bank from a raw event it is necessary to first parse the RawEvent which determines which banks are present and which sections of the RawEvent are assigned to which bank.

The software implementation of the RawEvent buffer and RawBank bank structure can be found in the DAQEvent package. Each sub-detector has developed code to simulate the raw data banks produced by their front end electronics, and to decode the raw banks in both real and simulated data.

For further details on raw formats see:

Where is it from, and how do we use it?

  • Real data: the raw event is the concatenated set of banks that came from the real detector in some order or other. They are combined in the Online DAQ system by the "Event Builder" node into a RawEvent, which is then shipped around through the trigger etc. and eventually written to an MDF/Raw file.
  • Simulation: each sub-detector has developed code to simulate the raw data banks produced by their front end electronics, and to decode the raw banks in both real and simulated data. The same raw data structure is simulated by the Boole digitization application which produces a very similar "RawEvent" object containing a collection of banks with the same format.
  • Interpreting = Decoding: RawBanks are interpreted from within the raw event using a "Decoder" for which there is nominally one per bank type, however, each subdetector uses completely different design principles to write the decoder. Most raw banks are translated into a set of Hits or other objects which live in a different location on the TES, and this translation is usually done by a dedicated decoding algorithm within a specific sequence.

Where can I find the RawEvent?

An MDF file, ("RAW" file) is natively a very similar data format to the raw event, it essentially stores back-to-back raw events. Gaudi when running over these events needs to place the data into a Transient Event store. Elements in the store are accessed by a string which is sort of like a simple directory path, and returns some sort of DataObject. In this case the whole RawEvent is one DataObject.

In the standard form, the raw event appears at DAQ/RawEvent. The object stored here is a RawEvent, which contains within it potentially many different RawBanks.

However, when writing out to a ROOT file (DST) we are free to move/re-arrange this, and store the RawEvent wherever we want to. Potentially we can store several different raw event objects containing different banks. This is described in the RawEventJuggler TWiKi

-- MarcoCattaneo - 23 Jan 2014

Edit | Attach | Watch | Print version | History: r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r2 - 2015-10-11 - RosenMatev
    • 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