Coder Social home page Coder Social logo

gogo2 / fairroot Goto Github PK

View Code? Open in Web Editor NEW

This project forked from fairrootgroup/fairroot

0.0 0.0 0.0 211.89 MB

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

Home Page: http://fairroot.gsi.de

License: Other

CMake 6.59% Shell 1.89% C 12.89% C++ 72.36% GLSL 4.29% HTML 1.93% Python 0.06%

fairroot's Introduction

FairRoot

license DOI OpenSSF Best Practices fair-software.eu

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 : fairroot.gsi.de for details.

Using the Project template

FairRoot delivers various project templates that can be used as a starting point for anybody who would like to build simulation and reconstruction with FairRoot. The project Templates are located in the FairRoot/templates directory.

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

It is also possible to set the folder/tree names using corresponding (SetFolderName()/SetTreeName()) methods of the FairRootManager.

Step by Step installation

  1. Install FairSoft

  2. Install FairRoot

    # Set the shell variable SIMPATH to the FairSoft installation directory
    export SIMPATH=~/fair_install/FairSoft/install
    [setenv SIMPATH ~/fair_install/FairSoft/install]
    
    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/FairRoot/install" ..
    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 SIMPATH=~/fair_install/FairSoft/install
    [setenv SIMPATH ~/fair_install/FairSoft/install]
    export FAIRROOTPATH=~/fair_install/FairRoot/install
    [setenv FAIRROOTPATH ~/fair_install/FairRoot/install]
    
    cd ~/fair_install
    cp  -rf  FairRoot/templates/project_root_containers   MyTest
    cd MyTest
    ./rename.sh  MyExperiment MyExp det
    
    # 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
    
    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 ../macro/run_sim.C
    root ../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

fairroot's People

Contributors

a2susanna avatar ababai avatar aphecetche avatar barthelemy avatar christiantackegsi avatar danielwielanek avatar davidrohr avatar denisbertini avatar dennisklein avatar evovch avatar fonsrademakers avatar fuhlig1 avatar ihrivnac avatar janmayer avatar karabowi avatar klenze avatar kresan avatar ktf avatar matthiasrichter avatar mkrzewic avatar mohammadalturany avatar nicolaswinckler avatar olantwin avatar paloizeau avatar rbx avatar sawenzel avatar sbinet avatar spflueger avatar tkollegger avatar tobiasstockmanns avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.