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.
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
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
Statistics
- Stars: 19
- Watchers: 5
- Forks: 12
- Open Issues: 85
- Releases: 42
Topics
Metadata Files
README.md
The REST Framework
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
- Doxygen documentation.
- The REST Framework forum for open discussions is available here.
- ROOT naming convention and coding rules are Taligent rules.
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
- AlphaCAMM, a Micromegas-based camera for high-sensitivity screening of alpha surface contamination, K. Altenmüller et al., Journal of Instrumentation, Volume 17, August 2022, arXiv:2201.01859.
- REST-for-Physics, a ROOT-based framework for event oriented data analysis and combined Monte Carlo response, K. Altenmüller, S. Cebrián, T. Dafni et al., , Computer Physics Communications, 108281, April 2022.
- Topological background discrimination in the PandaX-III neutrinoless double beta decay experiment, J Galan et al 2020 J. Phys. G: Nucl. Part. Phys. 47 045108, arxiv:1903.03979.
- Background assessment for the TREX Dark Matter experiment. Castel, J., Cebrián, S., Coarasa, I. et al. Eur. Phys. J. C 79, 782 (2019). arXiv:1812.04519.
- PandaX-III: Searching for neutrinoless double beta decay with high pressure 136Xe gas time projection chambers. X. Chen et al., Science China Physics, Mechanics & Astronomy 60, 061011 (2017) arXiv:1610.08883.
Presentations
- An overview of REST-for-Physics, Gloria Luzón, 2025-Mar, Journées 2025 du réseau détecteurs gazeux IN2P3/CEA, Paris-Saclay
- Background model studies for IAXO using the REST-for-Physics framework, Luis Obis, 2024-Apr, VIEnna Workshop on Simulations 2024 (VIEWS24), Vienna.
- REST-for-Physics framework for Geant4 simulations and data analysis, Álvaro Ezquerro, 2024-Apr, VIEnna Workshop on Simulations 2024 (VIEWS24), Vienna.
- REST-for-Physics, Luis Obis, 2022-May, ROOT Users Workshop, FermiLab.
- REST v2.0 : A data analysis and simulation framework for micro-patterned readout detectors., Javier Galan, 2016-Dec, 8th Symposium on Large TPCs for low-energy rare event detection, Paris.
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

Owner
- Name: REST-for-Physics
- Login: rest-for-physics
- Kind: organization
- Website: rest-for-physics.github.io
- Repositories: 14
- Profile: https://github.com/rest-for-physics
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
Pull Request Labels
Dependencies
- actions/checkout v3 composite
- actions/cache v3 composite
- actions/checkout v3 composite
- actions/upload-artifact v3 composite
- rest-for-physics/framework/.github/actions/build master composite
- actions/checkout v3 composite
- rootproject/root latest build
- actions/checkout v3 composite
- actions/deploy-pages v1 composite
- actions/setup-python v3 composite
- actions/upload-pages-artifact v1 composite