framework

The main project containing the core C++ classes defining framework behaviour and primordial analysis and helper tools. It centralises all other rest-for-physics repositories through submodules.

https://github.com/rest-for-physics/framework

Science Score: 67.0%

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

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

Keywords

data-chain metadata processing-chain root-cern
Last synced: 6 months ago · JSON representation ·

Repository

The main project containing the core C++ classes defining framework behaviour and primordial analysis and helper tools. It centralises all other rest-for-physics repositories through submodules.

Basic Info
  • Host: GitHub
  • Owner: rest-for-physics
  • License: gpl-3.0
  • Language: C++
  • Default Branch: master
  • Homepage:
  • Size: 108 MB
Statistics
  • Stars: 19
  • Watchers: 5
  • Forks: 12
  • Open Issues: 85
  • Releases: 42
Topics
data-chain metadata processing-chain root-cern
Created about 5 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing Citation Codeowners

README.md

The REST Framework

DOI pipeline status website api forum

The REST-for-Physics (Rare Event Searches Toolkit) Framework is mainly written in C++ and it is fully integrated with ROOT I/O interface. REST was initially born as a collaborative software effort to provide common tools for acquisition, simulation, and data analysis of gaseous Time Projection Chambers (TPCs). However, the framework is already extending its usage to be non-exclusive of detector data analysis. The possibilities of the framework are provided by the different libraries and packages written for REST in our community.

The REST Framework provides 3 interfaces that prototype the use of event types, metadata and event processes through TRestEvent, TRestMetadata and TRestEventProcess abstract class definitions. Any REST library will implement specific objects that inherit from those 3 basic interfaces.

Different event processes can be combined to build complex event processing chains with full traceability. The metadata objects will allow us to provide input parameters or information to the framework using a XML-like format. REST integrates a special metadata object named TRestManager that encapsulates all the required information to launch the processing of a particular data chain. REST will produce output using ROOT format. Any REST file will always contain a TRestRun metadata object. TRestRun is a metadata object responsible to encapsulate and give access to all the objects stored inside the REST/ROOT file; i.e. the specific resulting TRestEvent output, the TRestAnalysisTree, and any specific TRestMetadata object used during a processing chain.

This framework provides additionally different interfaces to browse data, TRestBrowser, event visualization TRestEventViewer, define a event data processing infraestructure, TRestProcessRunner, event analysis and metadata plotting, TRestAnalysisPlot or TRestMetadataPlot, a common access analysis tree based on TTree ROOT object, TRestAnalysisTree, and centralizing the use of REST through a manager TRestManager are few of the features the framework offers when used standalone.

Other objects included in the framework will help to add unit definitions, REST_Units, define physical constants and basic physical routines, REST_Physics or access to geometrical calculations, TRestMesh. Additional objects provide methods to help on text formatting as TRestStringHelper or define output styles, TRestStringOutput.

Basic pure analysis tasks will also be included in this framework, such as a processes performing fundamental routines, such as performing generic fits on observables/branches found inside the analysis tree, producing a summary report, creating data quality rules definitions, or basic interfaces to external databases.

Mirror repositories

REST is mirrored to the following repositories where pipelines are executed, and where code can also be retrieved.

  • https://gitlab.cern.ch/rest-for-physics

Code can be pulled for read-access from those mirrors, however, development is centralized at the main GitHub public repository.

Installing

Please, visit the REST-for-Physics userguide for installation instructions.

Useful links or references

Contributing

Please read CONTRIBUTING.md to get some guidelines on how to contribute to this project. Before any contribution, those guidelines must be assimilated and accepted. In any case, changes, improvements, or addons, to CONTRIBUTING.md are aceptable after proposal and discussion with other authors at the REST Framework forum.

The framework exploits the Git tagging system to produce its own versioning system. It is important to emphasize that the REST framework centralizes the versioning of all the submodules (libraries, packages, ...) that it contains. Details on how the REST version number is produced are given in CONTRIBUTING.md.

Versioning

Any metadata object written with REST will be stamped with few metadata members that will allow to identify the state of the code when the object was produced. Those data members are: - fVersion: A string containing the human version number. - fCommit: The latest commit hash value when the compilation took place. - fLibraryVersion: The human version library. It is fixed by CMakeLists at the library submodules. - fOfficialRelease: It will be true if the commit was tagged at the repository. - fCleanState: It will be true if there are no local modifications (including submodules). To remove any local modifications and recover a clean state we may execute source clean-state.sh at the project root.

If different REST versions were used to write a ROOT file, e.g. at different steps of the data processing chain, the historic metadata objects will preserve their original version. However, the TRestRun metadata object will always store the version used to write the ROOT file.

After REST release 2.2.1., REST implements correctly the ROOT schema evolution. Therefore, any new REST version should always be backwards compatible. I.e. Any file written after v2.2.1 should be readable without problems with any future version.

A major change at 2.3 will prevent from backwards compatibility, since class names have been reviewed.

Publications

Presentations

License

This project is licensed under the GNU License - see the LICENSE file for details

Acknowledgments

We acknowledge support from the the European Research Council (ERC) under the European Union’s Horizon 2020 research and innovation programme, grant agreement ERC-2017-AdG788781 (IAXO+), and from the Spanish Agencia Estatal de Investigacion under grant FPA2016-76978-C3-1-P

Insitution logos

Owner

  • Name: REST-for-Physics
  • Login: rest-for-physics
  • Kind: organization

REST-for-Physics is a ROOT based framework with multi-purpose ...

Citation (CITATION.cff)

cff-version: 1.2.0
title: "REST-for-Physics"
message: "If you use this software, please cite it as below."
doi: "10.5281/zenodo.4528985"
date-released: "2021-02-10"
authors:
- family-names: "Altenmüller"
  given-names: "Konrad"
  affiliation: "Center for Astroparticles and High Energy Physics (CAPA), University of Zaragoza"
- family-names: "Cebrián"
  given-names: "Susana"
  affiliation: "Center for Astroparticles and High Energy Physics (CAPA), University of Zaragoza"
- family-names: "Dafni"
  given-names: "Theopisti"
  affiliation: "Center for Astroparticles and High Energy Physics (CAPA), University of Zaragoza"
- family-names: "Díez-Ibáñez"
  given-names: "David"
  affiliation: "Center for Astroparticles and High Energy Physics (CAPA), University of Zaragoza"
- family-names: "Galán"
  given-names: "Javier"
  email: "javier.galan@unizar.es"
  orcid: "https://orcid.org/0000-0001-5673-4431"
  affiliation: "Center for Astroparticles and High Energy Physics (CAPA), University of Zaragoza"
- family-names: "Galindo"
  given-names: "Javier"
  affiliation: "Center for Astroparticles and High Energy Physics (CAPA), University of Zaragoza"
- family-names: "García"
  given-names: "Juan"
  affiliation: "Center for Astroparticles and High Energy Physics (CAPA), University of Zaragoza"
- family-names: "Irastorza"
  given-names: "Igor"
  affiliation: "Center for Astroparticles and High Energy Physics (CAPA), University of Zaragoza"
- family-names: "Luzón"
  given-names: "Gloria"
  affiliation: "Center for Astroparticles and High Energy Physics (CAPA), University of Zaragoza"
- family-names: "Margalejo"
  given-names: "Cristina"
  affiliation: "Center for Astroparticles and High Energy Physics (CAPA), University of Zaragoza"
- family-names: "Mirallas"
  given-names: "Hector"
  affiliation: "Center for Astroparticles and High Energy Physics (CAPA), University of Zaragoza"
- family-names: "Obis"
  given-names: "Luis"
  affiliation: "Center for Astroparticles and High Energy Physics (CAPA), University of Zaragoza"
  email: "luis.antonio.obis@gmail.com"
  orcid: "https://orcid.org/0000-0002-7990-2060"
- family-names: "Pérez"
  given-names: "Oscar"
  affiliation: "Center for Astroparticles and High Energy Physics (CAPA), University of Zaragoza"
- family-names: "Han"
  given-names: "Ke"
  affiliation: "Shanghai Jiao Tong University"
- family-names: "Ni"
  given-names: "Kaixiang"
  affiliation: "Shanghai Jiao Tong University"
- family-names: "Bedfer"
  given-names: "Yann"
  affiliation: "IRFU, CEA, Université Paris-Saclay; Institut de Ciències del Cosmos, Universitat de Barcelona"
- family-names: "Biasuzzi"
  given-names: "Barbara"
  affiliation: "IRFU, CEA, Université Paris-Saclay; Institut de Ciències del Cosmos, Universitat de Barcelona"
- family-names: "Ferrer-Ribas"
  given-names: "Esther"
  affiliation: "IRFU, CEA, Université Paris-Saclay; Institut de Ciències del Cosmos, Universitat de Barcelona"
- family-names: "Neyret"
  given-names: "Damien"
  affiliation: "IRFU, CEA, Université Paris-Saclay; Institut de Ciències del Cosmos, Universitat de Barcelona"
- family-names: "Papaevangelou"
  given-names: "Thomas"
  affiliation: "IRFU, CEA, Université Paris-Saclay; Institut de Ciències del Cosmos, Universitat de Barcelona"
- family-names: "Cogollos"
  given-names: "Cristian"
  affiliation: "Departament de Física Quàntica i Astrofísica, Universitat de Barcelona; Institut de Ciències del Cosmos, Universitat de Barcelona"
- family-names: "Picatoste"
  given-names: "Eduardo"
  affiliation: "Departament de Física Quàntica i Astrofísica, Universitat de Barcelona; Institut de Ciències del Cosmos, Universitat de Barcelona"

GitHub Events

Total
  • Issues event: 1
  • Delete event: 10
  • Issue comment event: 5
  • Push event: 64
  • Pull request review event: 18
  • Pull request event: 20
  • Create event: 7
Last Year
  • Issues event: 1
  • Delete event: 10
  • Issue comment event: 5
  • Push event: 64
  • Pull request review event: 18
  • Pull request event: 20
  • Create event: 7

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 1
  • Total pull requests: 9
  • Average time to close issues: N/A
  • Average time to close pull requests: 3 months
  • Total issue authors: 1
  • Total pull request authors: 4
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.33
  • Merged pull requests: 7
  • Bot issues: 0
  • Bot pull requests: 2
Past Year
  • Issues: 1
  • Pull requests: 7
  • Average time to close issues: N/A
  • Average time to close pull requests: 12 days
  • Issue authors: 1
  • Pull request authors: 3
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.43
  • Merged pull requests: 5
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • jgalan (2)
  • AlvaroEzq (1)
  • lobis (1)
Pull Request Authors
  • lobis (13)
  • jgalan (12)
  • AlvaroEzq (9)
  • dependabot[bot] (5)
  • juanangp (3)
  • JPorron (2)
  • jovoy (1)
Top Labels
Issue Labels
question (1) install (1)
Pull Request Labels
dependencies (4) development (1) bug (1)

Dependencies

.github/actions/build/action.yml actions
  • actions/checkout v3 composite
.github/workflows/validation.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/upload-artifact v3 composite
  • rest-for-physics/framework/.github/actions/build master composite
.github/actions/checkout/action.yml actions
  • actions/checkout v3 composite
pipeline/dockerfiles/base/Dockerfile docker
  • rootproject/root latest build
.github/workflows/docs.yml actions
  • actions/checkout v3 composite
  • actions/deploy-pages v1 composite
  • actions/setup-python v3 composite
  • actions/upload-pages-artifact v1 composite