fairroot

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

https://github.com/fairrootgroup/fairroot

Science Score: 49.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (17.9%) to scientific vocabulary

Keywords

analysis c-plus-plus cmake fairroot geant4 modular reconstruction simulation vmc
Last synced: 4 months ago · JSON representation

Repository

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

Basic Info
  • Host: GitHub
  • Owner: FairRootGroup
  • License: other
  • Language: C++
  • Default Branch: master
  • Homepage: http://fairroot.gsi.de
  • Size: 208 MB
Statistics
  • Stars: 63
  • Watchers: 20
  • Forks: 97
  • Open Issues: 78
  • Releases: 59
Topics
analysis c-plus-plus cmake fairroot geant4 modular reconstruction simulation vmc
Created almost 12 years ago · Last pushed 4 months ago
Metadata Files
Readme Changelog Contributing License Authors Codemeta Zenodo

README.md

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=nameyouchose":

bash 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

    ```bash

    Set the shell variable SIMPATH to the FairSoft installation directory

    export SIMPATH=~/fairinstall/FairSoft/install [setenv SIMPATH ~/fairinstall/FairSoft/install]

    cd ~/fairinstall git clone -b dev https://github.com/FairRootGroup/FairRoot.git cd FairRoot mkdir build cd build cmake -DCMAKEINSTALLPREFIX="~/fairinstall/FairRoot/install" .. make make install ```

    To run the tests do:

    ```bash

    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

```bash
# 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:

```bash
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

Owner

  • Name: FairRoot Group at GSI
  • Login: FairRootGroup
  • Kind: organization
  • Email: m.al-turany@gsi.de
  • Location: GSI Darmstadt/ Germany

CodeMeta (codemeta.json)

{
  "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
  "@type": "SoftwareSourceCode",
  "name": "FairRoot",
  "description": "<p>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.</p>",
  "license": "https://spdx.org/licenses/LGPL-3.0-only",
  "softwareVersion": "19.0.0",
  "datePublished": "2012-05-25",
  "keywords": [
    "geant4",
    "c-plus-plus",
    "cmake",
    "reconstruction",
    "vmc",
    "modular",
    "analysis",
    "simulation"
  ],
  "maintainer": {
    "@type": "Person",
    "familyName": "Karabowicz",
    "givenName": "Radoslaw"
  },
  "readme": "https://github.com/FairRootGroup/FairRoot/blob/master/README.md",
  "codeRepository": "https://github.com/FairRootGroup/FairRoot/",
  "identifier": "https://doi.org/10.5281/zenodo.3896282",
  "issueTracker": "https://github.com/FairRootGroup/FairRoot/issues",
  "author": [
    {
      "@type": "Person",
      "@id": "https://orcid.org/0000-0002-8071-4497",
      "givenName": "Mohammad",
      "familyName": "Al-Turany"
    },
    {
      "@type": "Person",
      "@id": "https://orcid.org/0009-0005-4083-2711",
      "givenName": "Radoslaw",
      "familyName": "Karabowicz"
    },
    {
      "@type": "Person",
      "@id": "https://orcid.org/0000-0003-3787-1910",
      "givenName": "Dennis",
      "familyName": "Klein"
    },
    {
      "@type": "Person",
      "@id": "https://orcid.org/0000-0002-7537-2875",
      "givenName": "Dmytro",
      "familyName": "Kresan"
    },
    {
      "@type": "Person",
      "@id": "https://orcid.org/0000-0002-6249-155X",
      "givenName": "Alexey",
      "familyName": "Rybalchenko"
    },
    {
      "@type": "Person",
      "@id": "https://orcid.org/0000-0002-5321-8404",
      "givenName": "Christian",
      "familyName": "Tacke"
    },
    {
      "@type": "Person",
      "@id": "https://orcid.org/0009-0005-3057-8561",
      "givenName": "Florian",
      "familyName": "Uhlig"
    }
  ],
  "contributor": [
    {
      "@type": "Person",
      "givenName": "Laurent",
      "familyName": "Aphecetche"
    },
    {
      "@type": "Person",
      "givenName": "Arya",
      "familyName": "Babai"
    },
    {
      "@type": "Person",
      "givenName": "Dario",
      "familyName": "Berzano"
    },
    {
      "@type": "Person",
      "givenName": "Denis",
      "familyName": "Bertini"
    },
    {
      "@type": "Person",
      "givenName": "Sebastien",
      "familyName": "Binet"
    },
    {
      "@type": "Person",
      "givenName": "Susanna",
      "familyName": "Costanza"
    },
    {
      "@type": "Person",
      "givenName": "Giulio",
      "familyName": "Eulisse"
    },
    {
      "@type": "Person",
      "givenName": "Volker",
      "familyName": "Friese"
    },
    {
      "@type": "Person",
      "givenName": "Konstantin",
      "familyName": "Gertsenberger"
    },
    {
      "@type": "Person",
      "givenName": "Ivana",
      "familyName": "Hřivnáčová"
    },
    {
      "@type": "Person",
      "givenName": "Roman",
      "familyName": "Klasen"
    },
    {
      "@type": "Person",
      "givenName": "Ralf",
      "familyName": "Kliemt"
    },
    {
      "@type": "Person",
      "givenName": "Philipp",
      "familyName": "Klenze"
    },
    {
      "@type": "Person",
      "givenName": "Thorsten",
      "familyName": "Kollegger"
    },
    {
      "@type": "Person",
      "givenName": "Ilse",
      "familyName": "Koenig"
    },
    {
      "@type": "Person",
      "givenName": "Mikolaj",
      "familyName": "Krzewicki"
    },
    {
      "@type": "Person",
      "givenName": "Lia",
      "familyName": "Lavezzi"
    },
    {
      "@type": "Person",
      "givenName": "Evgeny",
      "familyName": "Lavrik"
    },
    {
      "@type": "Person",
      "givenName": "Oliver",
      "familyName": "Lantwin"
    },
    {
      "@type": "Person",
      "givenName": "Anar",
      "familyName": "Manafov"
    },
    {
      "@type": "Person",
      "givenName": "Jan",
      "familyName": "Mayer"
    },
    {
      "@type": "Person",
      "givenName": "Gvozden",
      "familyName": "Neskovic"
    },
    {
      "@type": "Person",
      "givenName": "Sebastian",
      "familyName": "Neubert"
    },
    {
      "@type": "Person",
      "givenName": "Egor",
      "familyName": "Ovcharenko"
    },
    {
      "@type": "Person",
      "givenName": "Carmelo",
      "familyName": "Pellegrino"
    },
    {
      "@type": "Person",
      "givenName": "Loizeau",
      "familyName": "Pierre-Alain"
    },
    {
      "@type": "Person",
      "givenName": "Stefan",
      "familyName": "Pflueger"
    },
    {
      "@type": "Person",
      "givenName": "Matthias",
      "familyName": "Richter"
    },
    {
      "@type": "Person",
      "givenName": "Fons",
      "familyName": "Rademakers"
    },
    {
      "@type": "Person",
      "givenName": "David",
      "familyName": "Rohr"
    },
    {
      "@type": "Person",
      "givenName": "Ruben",
      "familyName": "Shahoyan"
    },
    {
      "@type": "Person",
      "givenName": "Tobias",
      "familyName": "Stockmanns"
    },
    {
      "@type": "Person",
      "givenName": "Andrey",
      "familyName": "Ustyuzhanin"
    },
    {
      "@type": "Person",
      "givenName": "Barthélémy",
      "familyName": "von Haller"
    },
    {
      "@type": "Person",
      "@id": "https://orcid.org/0000-0002-7006-7986",
      "givenName": "Yanzhao",
      "familyName": "Wang"
    },
    {
      "@type": "Person",
      "givenName": "Sandro",
      "familyName": "Wenzel"
    },
    {
      "@type": "Person",
      "givenName": "Daniel",
      "familyName": "Wielanek"
    },
    {
      "@type": "Person",
      "givenName": "Nicolas",
      "familyName": "Winckler"
    },
    {
      "@type": "Person",
      "givenName": "Lorenzo",
      "familyName": "Zanetti"
    }
  ]
}

GitHub Events

Total
  • Issues event: 8
  • Watch event: 5
  • Issue comment event: 45
  • Push event: 18
  • Pull request review comment event: 15
  • Pull request review event: 37
  • Pull request event: 17
  • Fork event: 3
  • Create event: 1
Last Year
  • Issues event: 8
  • Watch event: 5
  • Issue comment event: 45
  • Push event: 18
  • Pull request review comment event: 15
  • Pull request review event: 37
  • Pull request event: 17
  • Fork event: 3
  • Create event: 1

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 5
  • Total pull requests: 9
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 21 days
  • Total issue authors: 2
  • Total pull request authors: 4
  • Average comments per issue: 0.2
  • Average comments per pull request: 1.44
  • Merged pull requests: 5
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 5
  • Pull requests: 9
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 21 days
  • Issue authors: 2
  • Pull request authors: 4
  • Average comments per issue: 0.2
  • Average comments per pull request: 1.44
  • Merged pull requests: 5
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • dennisklein (15)
  • YanzhaoW (7)
  • LeoFoorm (3)
  • mgoncerz (2)
  • TobiasStockmanns (2)
  • ChristianTackeGSI (2)
  • klenze (1)
  • cdevanne (1)
  • karabowi (1)
  • jose-luis-rs (1)
  • pbelecky (1)
  • emssay (1)
  • fuhlig1 (1)
Pull Request Authors
  • ChristianTackeGSI (46)
  • dennisklein (17)
  • fuhlig1 (9)
  • karabowi (8)
  • YanzhaoW (3)
  • rbx (2)
  • TobiasStockmanns (1)
  • cvilelahep (1)
  • DanielWielanek (1)
  • jose-luis-rs (1)
Top Labels
Issue Labels
feature (5) bug (3) documentation (1) need-feedback:submitter (1)
Pull Request Labels
bug (1) feature (1)