All Projects → FairRootGroup → Fairroot

FairRootGroup / Fairroot

Licence: other
C++ simulation, reconstruction and analysis framework for particle physics experiments

Projects that are alternatives of or similar to Fairroot

Spirit
Atomistic Spin Simulation Framework
Stars: ✭ 67 (+63.41%)
Mutual labels:  cmake, simulation
Polyfem
A polyvalent C++ FEM library
Stars: ✭ 147 (+258.54%)
Mutual labels:  cmake, simulation
Andes
Python toolbox / library for power system transient dynamics simulation with symbolic modeling and numerical analysis 🔥
Stars: ✭ 68 (+65.85%)
Mutual labels:  analysis, simulation
Sparkle
🎇 A modern particle engine running on GPU, using c++14 and OpenGL 4.4.
Stars: ✭ 162 (+295.12%)
Mutual labels:  cmake, simulation
Stuntrally
The main repository containing Stunt Rally sources and game data. A 3D racing game based on VDrift and OGRE with track editor.
Stars: ✭ 314 (+665.85%)
Mutual labels:  cmake, simulation
Openloco
An open source re-implementation of Chris Sawyer's Locomotion
Stars: ✭ 504 (+1129.27%)
Mutual labels:  cmake, simulation
Openrct2
An open source re-implementation of RollerCoaster Tycoon 2 🎢
Stars: ✭ 10,115 (+24570.73%)
Mutual labels:  cmake, simulation
mdtoolbox
MDToolbox: A MATLAB/Octave toolbox for statistical analysis of molecular dynamics trajectories
Stars: ✭ 21 (-48.78%)
Mutual labels:  analysis, simulation
Arachni
Web Application Security Scanner Framework
Stars: ✭ 2,942 (+7075.61%)
Mutual labels:  analysis, modular
Cnl
A Compositional Numeric Library for C++
Stars: ✭ 397 (+868.29%)
Mutual labels:  cmake, simulation
Ros Academy For Beginners
中国大学MOOC《机器人操作系统入门》代码示例 ROS tutorial
Stars: ✭ 861 (+2000%)
Mutual labels:  cmake, simulation
Iobroker.sourceanalytix
Detailed analysis of your Energy, gas and liquid consumptions
Stars: ✭ 40 (-2.44%)
Mutual labels:  analysis
Adaptive Control
Adaptive control methods developed by Karl Johan Åström and Björn Wittenmark from the 70-80's for industrial use
Stars: ✭ 38 (-7.32%)
Mutual labels:  simulation
Guldkorn
Tool for finding interesting forks of projects on GitHub.
Stars: ✭ 38 (-7.32%)
Mutual labels:  analysis
Pandemic Simulator
Simulate a pandemic with artificial life objects.
Stars: ✭ 38 (-7.32%)
Mutual labels:  simulation
Game Dogfight
Air to air combat game, created in Python 3 using HARFANG 3D.
Stars: ✭ 41 (+0%)
Mutual labels:  simulation
Librevault
Librevault - Peer-to-peer, decentralized and open source file sync.
Stars: ✭ 1,001 (+2341.46%)
Mutual labels:  cmake
Blender Flip Fluids
FLIP Fluids is a powerful liquid simulation plugin that gives you the ability to create high quality fluid effects all within Blender, the free and open source 3D creation suite.
Stars: ✭ 983 (+2297.56%)
Mutual labels:  simulation
Memo
Decorators that help you remember.
Stars: ✭ 34 (-17.07%)
Mutual labels:  simulation
Ibus Table Chinese
Chinese tables for IBus-Table
Stars: ✭ 36 (-12.2%)
Mutual labels:  cmake

FairRoot license Codacy Badge

The FairRoot framework

A simulation, reconstruction and analysis framework that is based on the ROOT system. The user can create simulated data and/or perform analysis with the same framework. Geant3 and Geant4 transport engines are supported, however the user code that creates simulated data do not depend on a particular monte carlo engine. The framework delivers base classes which enable the users to construct their detectors and /or analysis tasks in a simple way, it also delivers some general functionality like track visualization. Moreover an interface for reading magnetic field maps is also implemented.

License

FairRoot is distributed under the terms of the GNU Lesser General Public Licence version 3 (LGPLv3).

Release information

Please see : https://github.com/FairRootGroup/FairRoot/releases

Getting started

Please see : http://fairroot.gsi.de/getting_started for details.

Using the Project template

FairRoot deliver meanwhile a project template that can be used as a starting point for anybody who would like to build simulation and reconstruction on FairRoot. The project Template is in the FairRoot/template/project_template directory

The template demonstrate and implement the following:

  1. General structure of the software (cake config files, VMC/Geant configurations, etc ..)
  2. Example detector with sensitive and passive volumes (NewDetector) and data class
  3. Particle Stack for Geant3/4 with filtering infrastructure
  4. Event generators (Pathia6,8) more are available directly from FairRoot
  5. Passive component implementation (Magnet Yoke, Beam Pipe)
  6. Track visualisation tool (Event display)
  7. A rename script which replace all the generic names to user defined ones

Optional change of output tree name

By default, the name of the tree in output ROOT file is "cbmsim". In case you want to change it for your Project, you need to create "config" folder inside of top source directory of the Project and place there "rootmanager.dat" text file with following single line: "treename=name_you_chose".

cd PROJECT_TOP_DIR
mkdir config
echo 'treename=name_you_chose' > config/rootmanager.dat

Step by Step installation

  1. Install FairSoft

  2. Install FairRoot

    # Set the shell variable SIMPATH to the FairSoft installation directory
    export SIMPATH=~/fair_install/FairSoftInst
    [setenv SIMPATH ~/fair_install/FairSoftInst]
    
    cd ~/fair_install
    git clone -b dev https://github.com/FairRootGroup/FairRoot.git
    cd FairRoot
    mkdir build
    cd build
    cmake -DCMAKE_INSTALL_PREFIX="~/fair_install/FairRootInst" ..
    make
    make install
    

    To run the tests do:

    # To run test: make new shell, do not define SIMPATH
    cd ~/fair_install/FairRoot/build
    make test
    
  3. Install the template:

    you need to copy the project template to you own directory

    # Set the shell variable FAIRROOTPATH to the FairRoot installation directory
    export FAIRROOTPATH=~/fair_install/FairRootInst
    [setenv FAIRROOTPATH ~/fair_install/FairRootInst]
    
    cd ~/fair_install
    cp  -rf  FairRoot/templates/project_template   MyTest
    cd MyTest
    ./rename.sh  MyExperiment  PREFIX  MyDetector
    
    # Please call the script with three parameters. The first one is the
    # name of the project. The second one is the prefix in front of
    # the class names. and some directories. So this second parameter
    # shouldn't be to long. The third parameter is the name of the
    # detector you want to implement.
    # As an example the if you want to create a project for the Panda
    # experiment and you want to implement a Straw Tube Tracker (stt)
    # you would call the script in the following way.
    # ./rename.sh Panda Pnd stt
    
    cd ..
    mkdir build
    cd build
    cmake ../MyExperiment
      make
    . config.sh    [or source config.csh]
    

    Now you can for example simulate some events and run the event display:

    root -q ../MyExperiment/macro/run_sim.C
    root ../MyExperiment/macro/eventDisplay.C
    // Click on "FairEventManager" (in the top-left pane)
    // Click on the "Info" tab (on top of the bottom-left pane)
    // Increase the "Current Event" to >0 to see the events
    root [1] .q
    

Generating Doxygen documentation

If the flage -DBUILD_DOXYGEN=ON is set when calling cmake, the doxygen documentation will be generated when calling make. The generated html files can then be found in "build/doxygen/doc/html"

Doxygen documantation is also available online here

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].