Skip to content

General framework description

Javier Galan edited this page May 15, 2021 · 1 revision

REST is developed based on ROOT. It provides additional classes for the data analysis. The property of REST's analysis lies in its the event-orientation. An event is the collection of all physical existence due to one incident particle. Events are independent from each other, while their content is from a same random process in a same run. In REST we define several types of events, such as RawSignalEvent, SignalEvent, HitEvent and TrackEvent. We also define process classes to deal with these events, to make analysis for them or to change types between them. Some configuration and definitions are needed to make a process, so we define metadata classes to read config file with specific format, or to save/load the object into/from a ROOT file.

REST is organized with several libraries. The center of them is libRestCore. Inside this library we have several base classes which builds up the whole framework of REST. libRestCore relies on the library libRestTools, which provide some basic tools(string tools, output tools, units tools) and some external codes. Up on libRestCore, other REST libraries such as libRestProcesses, libRestMetadata, libRestEvents and libRestTasks are built.

  1. TRestMetadata : Initializing REST classes through XML format configuration files
  2. TRestManager : managing REST core classes