├── README.md ├── data ├── ExampleData.txt ├── ExampleMacro.root ├── MySelector.C ├── MySelector.h ├── conductivity_experiment.root ├── cpp2pythonExample.h ├── expo.dat ├── macro4_1_input.txt ├── macro4_1_input_expected.txt └── my_rootfile.root └── notebooks ├── 1-Motivation-and-Introduction.ipynb ├── 2-ROOT-Basics.ipynb ├── 3-ROOT-Macros.ipynb ├── 4-Graphs.ipynb ├── 5-Histograms.ipynb ├── 6-Functions-and-Parameter-Estimation.ipynb ├── 7-File-IO-and-Parallel-Analysis.ipynb ├── 8-ROOT-in-Python.ipynb ├── 9-Concluding-Remarks.ipynb ├── frontpage.pdf ├── images ├── Chapter2.png ├── Chapter3.png ├── Chapter4.png ├── Chapter5.png ├── Chapter6.png ├── Chapter7.png ├── Chapter8.png ├── ROOT-Primer.png ├── ROOT-bar.png ├── ROOTPanel_FitPanel.png ├── ROOTPanel_FitPanel1.png ├── ROOTPanel_SetParameters.png ├── ROOTPanel_notebook.png ├── examplefit.png ├── functions.png ├── open_in_swan_button.png └── rootlogo.png └── timeline.css /README.md: -------------------------------------------------------------------------------- 1 | # Archived 2 | 3 | This repository is of historical interest only. 4 | Please use the [**web Primer**](https://root.cern/primer/) instead! 5 | 6 | 7 | ###   8 | 9 | ###   10 | 11 | ### Interactive ROOT Primer 12 | This is a notebook based version of the [ROOT Primer](https://root.cern/primer/) 13 | 14 | 15 | Translated to Notebooks by 16 | Nefeli Kousi, CERN 17 | Danilo Piparo, CERN 18 | 19 | 21 | -------------------------------------------------------------------------------- /data/ExampleData.txt: -------------------------------------------------------------------------------- 1 | # fake data to demonstrate the use of TGraphErrors 2 | 3 | # x y ex ey 4 | 1. 0.4 0.1 0.05 5 | 1.3 0.3 0.05 0.1 6 | 1.7 0.5 0.15 0.1 7 | 1.9 0.7 0.05 0.1 8 | 2.3 1.3 0.07 0.1 9 | 2.9 1.5 0.2 0.1 -------------------------------------------------------------------------------- /data/ExampleMacro.root: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/root-project/NotebookPrimer/94872732b989291845084f43591d1cfe5c547bc9/data/ExampleMacro.root -------------------------------------------------------------------------------- /data/MySelector.C: -------------------------------------------------------------------------------- 1 | #define ../data/MySelector_cxx 2 | // The class definition in ../data/MySelector.h has been generated automatically 3 | // by the ROOT utility TTree::MakeSelector(). This class is derived 4 | // from the ROOT class TSelector. For more information on the TSelector 5 | // framework see $ROOTSYS/README/README.SELECTOR or the ROOT User Manual. 6 | 7 | 8 | // The following methods are defined in this file: 9 | // Begin(): called every time a loop on the tree starts, 10 | // a convenient place to create your histograms. 11 | // SlaveBegin(): called after Begin(), when on PROOF called only on the 12 | // slave servers. 13 | // Process(): called for each event, in this function you decide what 14 | // to read and fill your histograms. 15 | // SlaveTerminate: called at the end of the loop on the tree, when on PROOF 16 | // called only on the slave servers. 17 | // Terminate(): called at the end of the loop on the tree, 18 | // a convenient place to draw/fit your histograms. 19 | // 20 | // To use this file, try the following session on your Tree T: 21 | // 22 | // root> T->Process("../data/MySelector.C") 23 | // root> T->Process("../data/MySelector.C","some options") 24 | // root> T->Process("../data/MySelector.C+") 25 | // 26 | 27 | 28 | #include "../data/MySelector.h" 29 | #include 30 | #include 31 | 32 | void ../data/MySelector::Begin(TTree * /*tree*/) 33 | { 34 | // The Begin() function is called at the start of the query. 35 | // When running with PROOF Begin() is only called on the client. 36 | // The tree argument is deprecated (on PROOF 0 is passed). 37 | 38 | TString option = GetOption(); 39 | } 40 | 41 | void ../data/MySelector::SlaveBegin(TTree * /*tree*/) 42 | { 43 | // The SlaveBegin() function is called after the Begin() function. 44 | // When running with PROOF SlaveBegin() is called on each slave server. 45 | // The tree argument is deprecated (on PROOF 0 is passed). 46 | 47 | TString option = GetOption(); 48 | 49 | } 50 | 51 | Bool_t ../data/MySelector::Process(Long64_t entry) 52 | { 53 | // The Process() function is called for each entry in the tree (or possibly 54 | // keyed object in the case of PROOF) to be processed. The entry argument 55 | // specifies which entry in the currently loaded tree is to be processed. 56 | // When processing keyed objects with PROOF, the object is already loaded 57 | // and is available via the fObject pointer. 58 | // 59 | // This function should contain the \"body\" of the analysis. It can contain 60 | // simple or elaborate selection criteria, run algorithms on the data 61 | // of the event and typically fill histograms. 62 | // 63 | // The processing can be stopped by calling Abort(). 64 | // 65 | // Use fStatus to set the return value of TTree::Process(). 66 | // 67 | // The return value is currently not used. 68 | 69 | fReader.SetEntry(entry); 70 | 71 | return kTRUE; 72 | } 73 | 74 | void ../data/MySelector::SlaveTerminate() 75 | { 76 | // The SlaveTerminate() function is called after all entries or objects 77 | // have been processed. When running with PROOF SlaveTerminate() is called 78 | // on each slave server. 79 | 80 | } 81 | 82 | void ../data/MySelector::Terminate() 83 | { 84 | // The Terminate() function is the last function to be called during 85 | // a query. It always runs on the client, it can be used to present 86 | // the results graphically or save the results to file. 87 | 88 | } -------------------------------------------------------------------------------- /data/MySelector.h: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////// 2 | // This class has been automatically generated on 3 | // Mon Apr 4 17:37:43 2016 by ROOT version 6.07/05 4 | // from TTree cond_data/Example N-Tuple 5 | // found on file: ../data/conductivity_experiment.root 6 | ////////////////////////////////////////////////////////// 7 | 8 | #ifndef ../data/MySelector_h 9 | #define ../data/MySelector_h 10 | 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | 19 | // Headers needed by this particular selector 20 | 21 | 22 | class ../data/MySelector : public TSelector { 23 | public : 24 | TTreeReader fReader; //!the tree reader 25 | TTree *fChain = 0; //!pointer to the analyzed TTree or TChain 26 | 27 | // Readers to access the data (delete the ones you do not need). 28 | TTreeReaderValue Potential = {fReader, "Potential"}; 29 | TTreeReaderValue Current = {fReader, "Current"}; 30 | TTreeReaderValue Temperature = {fReader, "Temperature"}; 31 | TTreeReaderValue Pressure = {fReader, "Pressure"}; 32 | 33 | 34 | ../data/MySelector(TTree * /*tree*/ =0) { } 35 | virtual ~../data/MySelector() { } 36 | virtual Int_t Version() const { return 2; } 37 | virtual void Begin(TTree *tree); 38 | virtual void SlaveBegin(TTree *tree); 39 | virtual void Init(TTree *tree); 40 | virtual Bool_t Notify(); 41 | virtual Bool_t Process(Long64_t entry); 42 | virtual Int_t GetEntry(Long64_t entry, Int_t getall = 0) { return fChain ? fChain->GetTree()->GetEntry(entry, getall) : 0; } 43 | virtual void SetOption(const char *option) { fOption = option; } 44 | virtual void SetObject(TObject *obj) { fObject = obj; } 45 | virtual void SetInputList(TList *input) { fInput = input; } 46 | virtual TList *GetOutputList() const { return fOutput; } 47 | virtual void SlaveTerminate(); 48 | virtual void Terminate(); 49 | 50 | ClassDef(../data/MySelector,0); 51 | 52 | }; 53 | 54 | #endif 55 | 56 | #ifdef ../data/MySelector_cxx 57 | void ../data/MySelector::Init(TTree *tree) 58 | { 59 | // The Init() function is called when the selector needs to initialize 60 | // a new tree or chain. Typically here the reader is initialized. 61 | // It is normally not necessary to make changes to the generated 62 | // code, but the routine can be extended by the user if needed. 63 | // Init() will be called many times when running on PROOF 64 | // (once per file to be processed). 65 | 66 | fReader.SetTree(tree); 67 | } 68 | 69 | Bool_t ../data/MySelector::Notify() 70 | { 71 | // The Notify() function is called when a new file is opened. This 72 | // can be either for a new TTree in a TChain or when when a new TTree 73 | // is started when using PROOF. It is normally not necessary to make changes 74 | // to the generated code, but the routine can be extended by the 75 | // user if needed. The return value is currently not used. 76 | 77 | return kTRUE; 78 | } 79 | 80 | 81 | #endif // #ifdef ../data/MySelector_cxx 82 | -------------------------------------------------------------------------------- /data/conductivity_experiment.root: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/root-project/NotebookPrimer/94872732b989291845084f43591d1cfe5c547bc9/data/conductivity_experiment.root -------------------------------------------------------------------------------- /data/cpp2pythonExample.h: -------------------------------------------------------------------------------- 1 | #include "stdio.h" 2 | class A{ 3 | public: 4 | A(int i):m_i(i){} 5 | int getI() const {return m_i;} 6 | 7 | private: 8 | int m_i=0; 9 | }; 10 | 11 | void printA(const A& a ){ 12 | printf ("The value of A instance is %i.\n",a.getI()); 13 | } -------------------------------------------------------------------------------- /data/expo.dat: -------------------------------------------------------------------------------- 1 | 4.99871 2 | 0.814549 3 | 1.41309 4 | 4.73601 5 | 1.15828 6 | 2.42487 7 | 4.78738 8 | 3.72153 9 | 2.70022 10 | 3.69976 11 | 3.79972 12 | 3.29318 13 | 1.57819 14 | 4.02202 15 | 2.59836 16 | 0.842862 17 | 2.37765 18 | 1.96157 19 | 1.10834 20 | 1.06595 21 | 0.151676 22 | 1.6677 23 | 0.970744 24 | 4.71858 25 | 2.89966 26 | 4.49152 27 | 3.32782 28 | 2.49305 29 | 2.80314 30 | 0.911423 31 | 1.48263 32 | 0.587045 33 | 0.314588 34 | 3.24063 35 | 3.62709 36 | 3.18566 37 | 3.56943 38 | 0.497881 39 | 3.49634 40 | 0.539062 41 | 0.646214 42 | 2.51202 43 | 1.0389 44 | 1.44455 45 | 0.415874 46 | 0.640621 47 | 2.73686 48 | 0.411598 49 | 1.46071 50 | 4.45812 51 | 1.13559 52 | 2.15923 53 | 0.703665 54 | 2.00196 55 | 3.43473 56 | 0.853355 57 | 2.2041 58 | 0.226683 59 | 1.55648 60 | 2.53091 61 | 0.912054 62 | 2.55516 63 | 3.70394 64 | 1.82994 65 | 0.804044 66 | 2.30053 67 | 3.13918 68 | 3.38802 69 | 3.49098 70 | 2.39268 71 | 0.450538 72 | 1.69364 73 | 0.476069 74 | 2.18271 75 | 2.37337 76 | 2.09623 77 | 3.88768 78 | 3.12305 79 | 4.90218 80 | 1.85215 81 | 4.15406 82 | 0.704032 83 | 3.72043 84 | 4.1487 85 | 1.95552 86 | 3.10978 87 | 1.7335 88 | 0.230848 89 | 3.06533 90 | 2.83687 91 | 2.49447 92 | 3.61901 93 | 0.722753 94 | 0.211516 95 | 1.55394 96 | 0.608206 97 | 1.21035 98 | 1.90529 99 | 2.20064 100 | 2.99898 101 | 102 | -------------------------------------------------------------------------------- /data/macro4_1_input.txt: -------------------------------------------------------------------------------- 1 | # Measurement of Friday 26 March 2 | # Experiment 2 Physics Lab 3 | 4 | 1 6 5 5 | 2 12 5 6 | 3 14 4.7 7 | 4 20 4.5 8 | 5 22 4.2 9 | 6 24 5.1 10 | 7 35 2.9 11 | 8 45 4.1 12 | 9 44 4.8 13 | 10 53 5.43 -------------------------------------------------------------------------------- /data/macro4_1_input_expected.txt: -------------------------------------------------------------------------------- 1 | # Measurement of Friday 26 March 2 | # Experiment 2 Physics Lab 3 | # Expected points from theory predictions 4 | 5 | 1 6 0.5 6 | 2 12 1. 7 | 3 18 1.5 8 | 4 24 2.0 9 | 5 30 3.7 10 | 6 36 4.9 11 | 7 42 5.4 12 | 8 48 6.8 13 | 9 54 7.5 14 | 10 60 9.7 -------------------------------------------------------------------------------- /data/my_rootfile.root: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/root-project/NotebookPrimer/94872732b989291845084f43591d1cfe5c547bc9/data/my_rootfile.root -------------------------------------------------------------------------------- /notebooks/1-Motivation-and-Introduction.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# ROOT Primer\n", 8 | "## Abstract\n", 9 | "[ROOT](http://root.cern) is a software framework for data analysis and I/O: a powerful tool to cope with the demanding tasks, typically state of the art scientific data analysis. Among its prominent features are an advanced graphical user interface, ideal for interactive analysis, an interpreter for the C++ programming language, for rapid and efficient prototyping and a persistency mechanism for C++ objects used also to write petabytes of data recorded by the Large Hadron Collider experiments every year. This introductory guide illustrates the main features of ROOT which are relevant for the typical problems of data analysis: input and plotting of data from measurements and fitting of analytical functions.\n", 10 | "\n", 11 | "This ROOT Primer consists of several jupyter notebooks that can be found in the [SWAN](https://github.com/root-project/NotebookPrimer).\n", 12 | "\n", 13 | "_Original Authors: D. Piparo, G. Quast, M. Zeise_\n", 14 | "\n", 15 | "## 1 Motivation and Introduction\n", 16 | "\n", 17 | "**Welcome to data analysis!**\n", 18 | "\n", 19 | "Comparison of measurements to theoretical models is one of the standard tasks in experimental physics. In the most simple case, a “model” is just a function providing predictions of measured data. Very often, the model depends on parameters. Such a model may simply state “the current *I* is proportional to the voltage *U*”, and the task of the experimentalist consists of determining the resistance, *R*, from a set of measurements.\n", 20 | "\n", 21 | "As a first step, a visualisation of the data is needed. Next, some manipulations typically have to be applied, e.g. corrections or parameter transformations. Quite often, these manipulations are complex ones, and a powerful library of mathematical functions and procedures should be provided - think for example of an integral or peak-search or a Fourier transformation applied to an input spectrum to obtain the actual measurement described by the model.\n", 22 | "\n", 23 | "One specialty of experimental physics are the inevitable uncertainties affecting each measurement, and visualisation tools have to include these. In subsequent analysis, the statistical nature of the errors must be handled properly.\n", 24 | "\n", 25 | "As the last step, measurements are compared to models, and free model parameters need to be determined in this process. See Figure 1.1 for an example of a function (model) fit to data points. Several standard methods are available, and a data analysis tool should provide easy access to more than one of them. Means to quantify the level of agreement between measurements and model must also be available.\n" 26 | ] 27 | }, 28 | { 29 | "cell_type": "markdown", 30 | "metadata": {}, 31 | "source": [ 32 | "\"A\n", 33 | "Figure 1.1: Measured data points with error bars and fitted quadratic function." 34 | ] 35 | }, 36 | { 37 | "cell_type": "markdown", 38 | "metadata": {}, 39 | "source": [ 40 | "Quite often, the data volume to be analyzed is large - think of fine-granular measurements accumulated with the aid of computers. A usable tool therefore must contain easy-to-use and efficient methods for storing and handling data.\n", 41 | "\n", 42 | "In Quantum mechanics, models typically only predict the probability density function (“pdf”) of measurements depending on a number of parameters, and the aim of the experimental analysis is to extract the parameters from the observed distribution of frequencies at which certain values of the measurement are observed. Measurements of this kind require means to generate and visualize frequency distributions, so-called histograms, and stringent statistical treatment to extract the model parameters from purely statistical distributions.\n", 43 | "\n", 44 | "Simulation of expected data is another important aspect in data analysis. By repeated generation of “pseudo-data”, which are analysed in the same manner as intended for the real data, analysis procedures can be validated or compared. In many cases, the distribution of the measurement errors is not precisely known, and simulation offers the possibility to test the effects of different assumptions.\n", 45 | "\n", 46 | "A powerful software framework addressing all of the above requirements is ROOT, an open source project coordinated by the European Organisation for Nuclear Research, CERN in Geneva.\n", 47 | "\n", 48 | "ROOT is very flexible and provides both a programming interface to use in own applications and a graphical user interface for interactive data analysis. The purpose of this document is to serve as a beginners guide and provides extendible examples for your own use cases, based on typical problems addressed in student labs. This guide will hopefully lay the ground for more complex applications in your future scientific work building on a modern, state-of the art tool for data analysis.\n", 49 | "\n", 50 | "This guide in form of a tutorial is intended to introduce you quickly to the ROOT package. This goal will be accomplished using concrete examples, according to the “learning by doing“ principle. Also because of this reason, this guide cannot cover all the complexity of the ROOT package. Nevertheless, once you feel confident with the concepts presented in the following chapters, you will be able to navigate through the [Reference Guide](https://root.cern/doc/master/index.html) to find all the details you might be interested in. You can even look at the code itself, since ROOT is a free, open-source product. Use these documents in parallel to this tutorial!\n", 51 | "\n", 52 | "The ROOT Data Analysis Framework itself is written in and heavily relies on the C++ programming language: some knowledge about C++ is required. Just take advantage from the immense available literature about C++ if you do not have any idea of what this language is about.\n", 53 | "\n", 54 | "ROOT is available for many platforms (Linux, Mac OS X, Windows...), but in this guide we will implicitly assume that you are using Linux. The first thing you need to do with ROOT is install it, don't you ? Obtaining the latest ROOT version is straightforward. Just choose your preferred installation method from [the install page](https://root.cern/install/). You will find precompiled versions for the different architectures, or the ROOT source code to compile yourself. Just pick up the flavour you need and follow the installation instructions.\n", 55 | "\n", 56 | "**Let’s dive into ROOT!**\n", 57 | "\n", 58 | "> **Note**\n", 59 | ">\n", 60 | "> The macros and data files presented is this document can be found\n", 61 | "> in the [ROOT GitHub repository](https://github.com/root-project/root/tree/master/documentation/primer/macros)" 62 | ] 63 | }, 64 | { 65 | "cell_type": "markdown", 66 | "metadata": { 67 | "remove": true, 68 | "truseted": true 69 | }, 70 | "source": [ 71 | "\n", 72 | "
\n", 73 | "

Next Chapter 2 ROOT Basics >>

" 74 | ] 75 | } 76 | ], 77 | "metadata": { 78 | "kernelspec": { 79 | "display_name": "Python 2", 80 | "language": "python", 81 | "name": "python2" 82 | }, 83 | "language_info": { 84 | "codemirror_mode": { 85 | "name": "ipython", 86 | "version": 2 87 | }, 88 | "file_extension": ".py", 89 | "mimetype": "text/x-python", 90 | "name": "python", 91 | "nbconvert_exporter": "python", 92 | "pygments_lexer": "ipython2", 93 | "version": "2.7.11" 94 | } 95 | }, 96 | "nbformat": 4, 97 | "nbformat_minor": 0 98 | } 99 | -------------------------------------------------------------------------------- /notebooks/9-Concluding-Remarks.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# 9 Concluding Remarks\n", 8 | "This is the end of our guided tour for beginners through ROOT. There is still a lot to be said, though by now you are experienced enough to use the ROOT documentation, most importantly the [ROOT home page](https://root.cern.ch) and the [ROOT reference guide](https://root.cern.ch/guides/reference-guide) with the documentation of all ROOT classes, or the [ROOT users guide](https://root.cern.ch/guides/users-guide).\n", 9 | "\n", 10 | "A very useful way for you to continue exploring ROOT is to study the examples in the sub-directory ```tutorials/``` of any ROOT installation.\n", 11 | "\n", 12 | "There are some powerful features of ROOT which were not treated in this document, e.g. packages named RooFit and RooStats providing an advanced framework for model building, fitting and statistical analysis. The ROOT namespace ```TMVA``` offers multi-variate analysis tools including an artificial neural network and many other advanced tools for classification problems. The remarkable ability of ROOT to handle large data volumes was already mentioned in this guide, implemented through the class ```TTree```. But there is still much more for you to explore!\n", 13 | "\n", 14 | "**End of this guide … but hopefully not of your interaction with ROOT !**" 15 | }, 16 | { 17 | "cell_type": "markdown", 18 | "metadata": { 19 | "collapsed": false, 20 | "remove": true, 21 | "truseted": true 22 | }, 23 | "source": [ 24 | "
\n", 25 | "\n", 26 | "

<< Previous Chapter 8 ROOT in Python

" 27 | ] 28 | } 29 | ], 30 | "metadata": { 31 | "kernelspec": { 32 | "display_name": "Python 2", 33 | "language": "python", 34 | "name": "python2" 35 | }, 36 | "language_info": { 37 | "codemirror_mode": { 38 | "name": "ipython", 39 | "version": 2 40 | }, 41 | "file_extension": ".py", 42 | "mimetype": "text/x-python", 43 | "name": "python", 44 | "nbconvert_exporter": "python", 45 | "pygments_lexer": "ipython2", 46 | "version": "2.7.11" 47 | } 48 | }, 49 | "nbformat": 4, 50 | "nbformat_minor": 0 51 | } 52 | -------------------------------------------------------------------------------- /notebooks/frontpage.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/root-project/NotebookPrimer/94872732b989291845084f43591d1cfe5c547bc9/notebooks/frontpage.pdf -------------------------------------------------------------------------------- /notebooks/images/Chapter2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/root-project/NotebookPrimer/94872732b989291845084f43591d1cfe5c547bc9/notebooks/images/Chapter2.png -------------------------------------------------------------------------------- /notebooks/images/Chapter3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/root-project/NotebookPrimer/94872732b989291845084f43591d1cfe5c547bc9/notebooks/images/Chapter3.png -------------------------------------------------------------------------------- /notebooks/images/Chapter4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/root-project/NotebookPrimer/94872732b989291845084f43591d1cfe5c547bc9/notebooks/images/Chapter4.png -------------------------------------------------------------------------------- /notebooks/images/Chapter5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/root-project/NotebookPrimer/94872732b989291845084f43591d1cfe5c547bc9/notebooks/images/Chapter5.png -------------------------------------------------------------------------------- /notebooks/images/Chapter6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/root-project/NotebookPrimer/94872732b989291845084f43591d1cfe5c547bc9/notebooks/images/Chapter6.png -------------------------------------------------------------------------------- /notebooks/images/Chapter7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/root-project/NotebookPrimer/94872732b989291845084f43591d1cfe5c547bc9/notebooks/images/Chapter7.png -------------------------------------------------------------------------------- /notebooks/images/Chapter8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/root-project/NotebookPrimer/94872732b989291845084f43591d1cfe5c547bc9/notebooks/images/Chapter8.png -------------------------------------------------------------------------------- /notebooks/images/ROOT-Primer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/root-project/NotebookPrimer/94872732b989291845084f43591d1cfe5c547bc9/notebooks/images/ROOT-Primer.png -------------------------------------------------------------------------------- /notebooks/images/ROOT-bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/root-project/NotebookPrimer/94872732b989291845084f43591d1cfe5c547bc9/notebooks/images/ROOT-bar.png -------------------------------------------------------------------------------- /notebooks/images/ROOTPanel_FitPanel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/root-project/NotebookPrimer/94872732b989291845084f43591d1cfe5c547bc9/notebooks/images/ROOTPanel_FitPanel.png -------------------------------------------------------------------------------- /notebooks/images/ROOTPanel_FitPanel1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/root-project/NotebookPrimer/94872732b989291845084f43591d1cfe5c547bc9/notebooks/images/ROOTPanel_FitPanel1.png -------------------------------------------------------------------------------- /notebooks/images/ROOTPanel_SetParameters.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/root-project/NotebookPrimer/94872732b989291845084f43591d1cfe5c547bc9/notebooks/images/ROOTPanel_SetParameters.png -------------------------------------------------------------------------------- /notebooks/images/ROOTPanel_notebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/root-project/NotebookPrimer/94872732b989291845084f43591d1cfe5c547bc9/notebooks/images/ROOTPanel_notebook.png -------------------------------------------------------------------------------- /notebooks/images/examplefit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/root-project/NotebookPrimer/94872732b989291845084f43591d1cfe5c547bc9/notebooks/images/examplefit.png -------------------------------------------------------------------------------- /notebooks/images/functions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/root-project/NotebookPrimer/94872732b989291845084f43591d1cfe5c547bc9/notebooks/images/functions.png -------------------------------------------------------------------------------- /notebooks/images/open_in_swan_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/root-project/NotebookPrimer/94872732b989291845084f43591d1cfe5c547bc9/notebooks/images/open_in_swan_button.png -------------------------------------------------------------------------------- /notebooks/images/rootlogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/root-project/NotebookPrimer/94872732b989291845084f43591d1cfe5c547bc9/notebooks/images/rootlogo.png -------------------------------------------------------------------------------- /notebooks/timeline.css: -------------------------------------------------------------------------------- 1 | --------------------------------------------------------------------------------