Google Summer of Code 2015

ROOT R

Cern Sft Template Information

ROOT-R Interface for Multivariate Data Analysis(TMVA)

Abstract: ROOT - R interface for Multivariate Data Analysis (TMVA)

Provide a short (one paragraph) description of your proposal.
Description: Using the ROOT-R interface many of the statistical packages available in R such as those performing multi-variate analysis can be used in ROOT. The idea of the project is to facilitate the usage of some of the R packages by creating corresponding interface classes in the ROOT system. These classes should implement some of the needed interfaces required to be used by some of the statistical packages of ROOT and they could be loaded at run-time by the ROOT plugin manager system.
Mentors: Lorenzo Moneta and Sergei Gleyzer
Requirements: Knowledge of C++, ROOT and R. Knowledge of computational statistics would be an advantage.

Application

Describe your application in detail. Provide some background, describe the work that you are expecting to do in the time leading to the GSoC start.
Basic Desing
ROOT R

Develop interface classes for some of the most used the multi-variate statistical tools in R for classification and regression. These interface classes should be designed to be used by the TMVA package of ROOT.

Deliverables

What do you expect as a deliverable for your project? Please try to be as precise as you can (e.g. a ready to deploy package (or a patch) ABC implementing XYZ feature tested on Linux/Mac/Windows)
Source Code in an repository that lets you use R in ROOT with the next features:

  1. Class RMethodBase: Base class for all TMVA’s plugins base on R interface, the class have a TRInterface’s object to parse information from R to ROOT and vice versa. The class can load needed R’s packages and it will have a system to control error checking if the package is not installed.
  2. Wrappers for TMVA datatypes
    1. Basically I need to create some new types with class TMVA::Types and I need to wrap it to use in R’s environment to let to the user change options in R’s functions.
    2. To write a wrapper for the class TMVA::MsgLogger to print messages from R’s environment where MVA functions need to print something.
  3. Class with a wrapper for a MVA classification: Class of an R package for MVA classification indicated by the mentor.
  4. Class with a wrapper for a MVA regression: Class of an R package for MVA regression indicated by the mentor.
  5. Examples and tests codes:
    1. An example using the classes for classification and regression from ROOT-R .
    2. Other basic examples about how to create your own plugin for TMVA based in ROOTR
    3. test cases for every feature
  6. Integrate to ROOT:
    1. support for autotools and CMake
    2. support for Linux
    3. support for c++11