GitHub Forum API Documentation Zenodo Publication School


These pages are under continuous construction. Some sections need to be documented yet. If you are willing to see any of the sections in these pages to be completed or updated, please, do not hesitate to create an issue at this documentation repository asking for missing docs. Thanks!

The REST (Rare Event Searches Toolkit) Framework is mainly written in C++ and it is fully integrated with ROOT I/O interface. REST was born as a collaborative software effort to provide common tools for acquisition, simulation, and data analysis of gaseous Time Projection Chambers (TPCs). 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.

The REST Framework provides additionally different interfaces to browse data, TRestBrowser, and to plot data, TRestAnalysisPlot, by accessing TRestEvent and TRestAnalysisTree ROOT-based drawing methods. Other objects included in the framework will help to add unit definitions, REST_Units, define physical constants REST_Physics, or provide methods to help on text formatting TRestStringHelper or define output styles, TRestStringOutput.

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