Skip to content

Instantly share code, notes, and snippets.

@oshadura
Last active February 18, 2020 13:54
Show Gist options
  • Save oshadura/8f29c65cfa219316b62ab4c6eb874d61 to your computer and use it in GitHub Desktop.
Save oshadura/8f29c65cfa219316b62ab4c6eb874d61 to your computer and use it in GitHub Desktop.
GSOC exersice

Thank you for the interest in "Pre-conditioners applied to ROOT compression algorithms" project! As this project is a bit technical, it is necessary to have some understanding of ROOT file formats before starting to write proposal. This document is dedicated to give you an introduction of ROOT file formats, which you can try out.

Build ROOT with RNTuple file format support:

git clone https://github.com/root-project/root
mkdir root-build
cd root-build
cmake ../root -Droot7=ON -Dtesting=ON
make -j4

Test ROOT

After building ROOT, check that it works (please be sure you are still in root-build directory):

source bin/thisroot.sh
root.exe

You should see ROOT command line (powered by ROOT interpreter). Try to play with it!

Specific ROOT documentation links

Before starting your exercise, please check documentation for:

  1. TFile: https://root.cern.ch/doc/master/classTFile.html;
  2. TTree: https://root.cern.ch/doc/master/classTTree.html;
  3. RNTuple: https://root.cern.ch/doc/master/md_tree_ntuple_v7_doc_README.html, https://root.cern/doc/master/classROOT_1_1Experimental_1_1RNTuple.html, https://root.cern/doc/master/classROOT_1_1Experimental_1_1Detail_1_1RNTuple.html;

Test

Please try to add Google Test (GTests) unit tests:

  1. for TTree, testing different compression algorithms (https://github.com/root-project/root/tree/master/tree/tree/test)
    or
  2. for RNTuple, testing different compression algorithms (https://github.com/root-project/root/blob/master/tree/ntuple/v7/test/ntuple.cxx)

To pass evaluation it is enough to start with TTree unit test (first option), but if you are curious or can't stop please go ahead with RNTuple (we encourage you!).

Steps:

Use binary comparison [https://github.com/google/googletest/blob/master/googletest/docs/primer.md#binary-comparison] of the values of expected compression algorithm's settings "101" and for setting used in generated TFile (e.g. auto compress = file->GetCompressionSettings();).

IMPORTANT! Please don't hesitate to contact us with any questions! We understand that it could be very complex/confusing from the begining so we are happy to reply to any of your questions!

Contact (put all of us in CC please):

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment