Framework structure

Directories overview

After setting up the framework as explained in Installation, you will see the following directories/files:

  • apps/
  • bin/
  • build/
  • configs/
  • libs/
  • tea/
  • CMakeLists.txt

apps

Contains your apps. An app uses tea libraries/modules and is built into an executable that performs some actions. Examples of apps could be a histogrammer or a skimmer.

bin

All executables and configs will end up here and this is where you should run them. In case of python files, a symlink will be created, such that no rebuilding is necessary when you make some modifications. It is a temporary directory, so don’t store anything important there.

build

It’s a temporary directory where the project is built. This also means that when no new files are added, but modifications are made to some existing files, one can run make -j install in this directory to compile and install, without having to configure everything from scratch (which happens when you call ./tea/build.sh).

configs

Constains your python configuration files.

libs

A directory containing user_extensions library for user-defined classes.

tea

The core framework is located in tea directory. Typically, you don’t need to modify anything there. Also, the example apps and configs from tea will be copied to bin directory once you build the project as explained in Build & run, so unless you’re a tea developer, there’s no need to enter this directory.

utils

This is a directory for any standalone python tools you may want to write for your analysis. Maybe it’s a custom plotting script, or some merging script. They are independent from tea, but could include some stuff from your tea configs - just put whatever you want there, it will be linked in the bin directory.

CMakeLists

This is the top-level CMake project definition, which builds your libraries, apps, links them against tea libraries, as well as makes links to python configs and modules. You don’t need to modify this file by hand - newly added apps/configs/classes will be automatically recognized.