v2.3.0
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 asREST_PACKAGE
. Just asrestG4
will be enabled using-DREST_G4=ON
. -
A new script has been added at the root directory,
clean-state.sh
that can be sourcedsource 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 insiderestRoot
. 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 therenamed.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 aspython3.5 updateClassNamesToV2.3.py ../projects/ rml
.