Skip to content

v2.3.0

Compare
Choose a tag to compare
@jgalan jgalan released this 08 Jan 23:34
· 2899 commits to master since this release

Completely new directory structure:

  • We have differentiated the main framework classes at source/framework. Subdivided into:

    • analysis: Basic metadata classes and processes for pure analysis purposes.
    • tools: Basic helper classes, strings, physics, simple geometrical calculations, etc.
    • core: Main C++ classes prototyping REST classes, and providing REST basic artifacts, such as analysis tree, plotting tools, and event data or metadata visualisation.
  • The libraries are now placed under the directory source/libraries/. Any library is now outside the main repository and it is installed as a submodule.

  • The packages are also connected to this main repository through submodules as source/packages/.

  • There is a new directory at the repository named projects that we dedicate to host different standalone REST projects with public or restricted access.

Few considerations when moving from 2.2 to 2.3.

  • All public libraries and submodules can be downloaded using python3.X pull-submodules.py.

  • All private libraries and submodules were you got access rights can be downloaded using python3.X pull-submodules.py --private.

  • Libraries must be enabled at compilation time, when executing cmake. For example the detector library will be enabled using -DRESTLIB_DETECTOR=ON or the raw library will be enabled using -DRESTLIB_RAW=ON. Following always the convention -DRESTLIB_LIBDIRNAME=ON.

  • Packages compilation flag convention is similar. a restPackage will be added for compilation as REST_PACKAGE. Just as restG4 will be enabled using -DREST_G4=ON.

  • A new script has been added at the root directory, clean-state.sh that can be sourced source clean-state.sh in order to assure the recover a clean git repository state that is identical to the remote repository. WARNING this will erase any local modifications or commits!

  • We adopt for the first time a naming convention for c++ classes inside libraries. TRestLibName... For example, detector library classes will always start by TRestDetector. This will help to identify all the classes that have a common relation, by using auto-completion inside restRoot. Usually all library processes and metadata structures share a common event data type.

  • This new naming convention has forced us to produce the renaming of many classes to follow the new library organisation. All renamed classes have been registered at the framework/renamed.classes file.

  • There is a new script updateClassNamesToV2.3.py. This script uses the renamed.classes file to apply a find and replace to the files with a given extension found in specific absolute or relative path. I.e. using it as: python3.X updateClassNamesToV2.3.py PATH FILE_EXTENSION. Such as python3.5 updateClassNamesToV2.3.py ../projects/ rml.