{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Simple CVS to ROOT C++ notebook example

" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%jsroot on" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "#include \"Riostream.h\"\n", "#include \"TString.h\"\n", "#include \"TFile.h\"\n", "#include \"TTree.h\"\n", "#include \"TSystem.h\"\n", "#include \n", "#include " ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "--2017-11-23 23:32:48-- http://opendata.atlas.cern/visualisations/CrossFilter/outreach.csv\n", "Resolving opendata.atlas.cern... 188.184.64.13\n", "Connecting to opendata.atlas.cern|188.184.64.13|:80... connected.\n", "HTTP request sent, awaiting response... 200 OK\n", "Length: 8802904 (8.4M) [text/csv]\n", "Saving to: ‘outreach.csv’\n", "\n", " 0K .......... .......... .......... .......... .......... 0% 2.86M 3s\n", " 50K .......... .......... .......... .......... .......... 1% 4.97M 2s\n", " 100K .......... .......... .......... .......... .......... 1% 5.29M 2s\n", " 150K .......... .......... .......... .......... .......... 2% 4.96M 2s\n", " 200K .......... .......... .......... .......... .......... 2% 5.50M 2s\n", " 250K .......... .......... .......... .......... .......... 3% 4.80M 2s\n", " 300K .......... .......... .......... .......... .......... 4% 6.63M 2s\n", " 350K .......... .......... .......... .......... .......... 4% 5.37M 2s\n", " 400K .......... .......... .......... .......... .......... 5% 7.38M 2s\n", " 450K .......... .......... .......... .......... .......... 5% 6.91M 2s\n", " 500K .......... .......... .......... .......... .......... 6% 6.94M 1s\n", " 550K .......... .......... .......... .......... .......... 6% 7.02M 1s\n", " 600K .......... .......... .......... .......... .......... 7% 6.93M 1s\n", " 650K .......... .......... .......... .......... .......... 8% 8.07M 1s\n", " 700K .......... .......... .......... .......... .......... 8% 8.81M 1s\n", " 750K .......... .......... .......... .......... .......... 9% 7.70M 1s\n", " 800K .......... .......... .......... .......... .......... 9% 6.43M 1s\n", " 850K .......... .......... .......... .......... .......... 10% 11.4M 1s\n", " 900K .......... .......... .......... .......... .......... 11% 4.63M 1s\n", " 950K .......... .......... .......... .......... .......... 11% 11.4M 1s\n", " 1000K .......... .......... .......... .......... .......... 12% 5.20M 1s\n", " 1050K .......... .......... .......... .......... .......... 12% 19.7M 1s\n", " 1100K .......... .......... .......... .......... .......... 13% 5.88M 1s\n", " 1150K .......... .......... .......... .......... .......... 13% 11.4M 1s\n", " 1200K .......... .......... .......... .......... .......... 14% 6.10M 1s\n", " 1250K .......... .......... .......... .......... .......... 15% 13.8M 1s\n", " 1300K .......... .......... .......... .......... .......... 15% 9.50M 1s\n", " 1350K .......... .......... .......... .......... .......... 16% 5.94M 1s\n", " 1400K .......... .......... .......... .......... .......... 16% 13.0M 1s\n", " 1450K .......... .......... .......... .......... .......... 17% 8.18M 1s\n", " 1500K .......... .......... .......... .......... .......... 18% 10.8M 1s\n", " 1550K .......... .......... .......... .......... .......... 18% 12.0M 1s\n", " 1600K .......... .......... .......... .......... .......... 19% 8.33M 1s\n", " 1650K .......... .......... .......... .......... .......... 19% 11.4M 1s\n", " 1700K .......... .......... .......... .......... .......... 20% 4.63M 1s\n", " 1750K .......... .......... .......... .......... .......... 20% 98.4M 1s\n", " 1800K .......... .......... .......... .......... .......... 21% 10.4M 1s\n", " 1850K .......... .......... .......... .......... .......... 22% 9.39M 1s\n", " 1900K .......... .......... .......... .......... .......... 22% 26.5M 1s\n", " 1950K .......... .......... .......... .......... .......... 23% 7.69M 1s\n", " 2000K .......... .......... .......... .......... .......... 23% 14.9M 1s\n", " 2050K .......... .......... .......... .......... .......... 24% 11.1M 1s\n", " 2100K .......... .......... .......... .......... .......... 25% 12.8M 1s\n", " 2150K .......... .......... .......... .......... .......... 25% 8.15M 1s\n", " 2200K .......... .......... .......... .......... .......... 26% 9.65M 1s\n", " 2250K .......... .......... .......... .......... .......... 26% 9.20M 1s\n", " 2300K .......... .......... .......... .......... .......... 27% 9.92M 1s\n", " 2350K .......... .......... .......... .......... .......... 27% 13.4M 1s\n", " 2400K .......... .......... .......... .......... .......... 28% 10.2M 1s\n", " 2450K .......... .......... .......... .......... .......... 29% 11.7M 1s\n", " 2500K .......... .......... .......... .......... .......... 29% 12.9M 1s\n", " 2550K .......... .......... .......... .......... .......... 30% 6.31M 1s\n", " 2600K .......... .......... .......... .......... .......... 30% 73.1M 1s\n", " 2650K .......... .......... .......... .......... .......... 31% 7.48M 1s\n", " 2700K .......... .......... .......... .......... .......... 31% 6.94M 1s\n", " 2750K .......... .......... .......... .......... .......... 32% 13.6M 1s\n", " 2800K .......... .......... .......... .......... .......... 33% 15.2M 1s\n", " 2850K .......... .......... .......... .......... .......... 33% 6.33M 1s\n", " 2900K .......... .......... .......... .......... .......... 34% 14.9M 1s\n", " 2950K .......... .......... .......... .......... .......... 34% 15.0M 1s\n", " 3000K .......... .......... .......... .......... .......... 35% 13.2M 1s\n", " 3050K .......... .......... .......... .......... .......... 36% 7.61M 1s\n", " 3100K .......... .......... .......... .......... .......... 36% 12.3M 1s\n", " 3150K .......... .......... .......... .......... .......... 37% 11.1M 1s\n", " 3200K .......... .......... .......... .......... .......... 37% 12.4M 1s\n", " 3250K .......... .......... .......... .......... .......... 38% 18.4M 1s\n", " 3300K .......... .......... .......... .......... .......... 38% 11.3M 1s\n", " 3350K .......... .......... .......... .......... .......... 39% 4.78M 1s\n", " 3400K .......... .......... .......... .......... .......... 40% 55.8M 1s\n", " 3450K .......... .......... .......... .......... .......... 40% 25.6M 1s\n", " 3500K .......... .......... .......... .......... .......... 41% 18.1M 1s\n", " 3550K .......... .......... .......... .......... .......... 41% 13.5M 1s\n", " 3600K .......... .......... .......... .......... .......... 42% 8.27M 1s\n", " 3650K .......... .......... .......... .......... .......... 43% 19.8M 1s\n", " 3700K .......... .......... .......... .......... .......... 43% 14.4M 1s\n", " 3750K .......... .......... .......... .......... .......... 44% 13.7M 1s\n", " 3800K .......... .......... .......... .......... .......... 44% 8.97M 1s\n", " 3850K .......... .......... .......... .......... .......... 45% 12.3M 1s\n", " 3900K .......... .......... .......... .......... .......... 45% 13.9M 1s\n", " 3950K .......... .......... .......... .......... .......... 46% 16.8M 1s\n", " 4000K .......... .......... .......... .......... .......... 47% 14.7M 0s\n", " 4050K .......... .......... .......... .......... .......... 47% 11.2M 0s\n", " 4100K .......... .......... .......... .......... .......... 48% 13.6M 0s\n", " 4150K .......... .......... .......... .......... .......... 48% 13.1M 0s\n", " 4200K .......... .......... .......... .......... .......... 49% 14.9M 0s\n", " 4250K .......... .......... .......... .......... .......... 50% 9.20M 0s\n", " 4300K .......... .......... .......... .......... .......... 50% 13.3M 0s\n", " 4350K .......... .......... .......... .......... .......... 51% 11.0M 0s\n", " 4400K .......... .......... .......... .......... .......... 51% 23.4M 0s\n", " 4450K .......... .......... .......... .......... .......... 52% 13.7M 0s\n", " 4500K .......... .......... .......... .......... .......... 52% 11.9M 0s\n", " 4550K .......... .......... .......... .......... .......... 53% 13.6M 0s\n", " 4600K .......... .......... .......... .......... .......... 54% 13.3M 0s\n", " 4650K .......... .......... .......... .......... .......... 54% 18.1M 0s\n", " 4700K .......... .......... .......... .......... .......... 55% 10.1M 0s\n", " 4750K .......... .......... .......... .......... .......... 55% 3.86M 0s\n", " 4800K .......... .......... .......... .......... .......... 56% 14.8M 0s\n", " 4850K .......... .......... .......... .......... .......... 56% 14.2M 0s\n", " 4900K .......... .......... .......... .......... .......... 57% 9.43M 0s\n", " 4950K .......... .......... .......... .......... .......... 58% 16.9M 0s\n", " 5000K .......... .......... .......... .......... .......... 58% 10.3M 0s\n", " 5050K .......... .......... .......... .......... .......... 59% 15.9M 0s\n", " 5100K .......... .......... .......... .......... .......... 59% 14.6M 0s\n", " 5150K .......... .......... .......... .......... .......... 60% 16.6M 0s\n", " 5200K .......... .......... .......... .......... .......... 61% 11.1M 0s\n", " 5250K .......... .......... .......... .......... .......... 61% 10.5M 0s\n", " 5300K .......... .......... .......... .......... .......... 62% 12.5M 0s\n", " 5350K .......... .......... .......... .......... .......... 62% 15.0M 0s\n", " 5400K .......... .......... .......... .......... .......... 63% 14.8M 0s\n", " 5450K .......... .......... .......... .......... .......... 63% 14.6M 0s\n", " 5500K .......... .......... .......... .......... .......... 64% 14.3M 0s\n", " 5550K .......... .......... .......... .......... .......... 65% 11.2M 0s\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " 5600K .......... .......... .......... .......... .......... 65% 14.4M 0s\n", " 5650K .......... .......... .......... .......... .......... 66% 14.5M 0s\n", " 5700K .......... .......... .......... .......... .......... 66% 18.2M 0s\n", " 5750K .......... .......... .......... .......... .......... 67% 15.2M 0s\n", " 5800K .......... .......... .......... .......... .......... 68% 14.5M 0s\n", " 5850K .......... .......... .......... .......... .......... 68% 14.6M 0s\n", " 5900K .......... .......... .......... .......... .......... 69% 16.4M 0s\n", " 5950K .......... .......... .......... .......... .......... 69% 7.94M 0s\n", " 6000K .......... .......... .......... .......... .......... 70% 48.1M 0s\n", " 6050K .......... .......... .......... .......... .......... 70% 6.39M 0s\n", " 6100K .......... .......... .......... .......... .......... 71% 18.1M 0s\n", " 6150K .......... .......... .......... .......... .......... 72% 15.1M 0s\n", " 6200K .......... .......... .......... .......... .......... 72% 10.6M 0s\n", " 6250K .......... .......... .......... .......... .......... 73% 14.2M 0s\n", " 6300K .......... .......... .......... .......... .......... 73% 19.8M 0s\n", " 6350K .......... .......... .......... .......... .......... 74% 13.5M 0s\n", " 6400K .......... .......... .......... .......... .......... 75% 16.9M 0s\n", " 6450K .......... .......... .......... .......... .......... 75% 14.8M 0s\n", " 6500K .......... .......... .......... .......... .......... 76% 13.8M 0s\n", " 6550K .......... .......... .......... .......... .......... 76% 15.4M 0s\n", " 6600K .......... .......... .......... .......... .......... 77% 8.90M 0s\n", " 6650K .......... .......... .......... .......... .......... 77% 15.0M 0s\n", " 6700K .......... .......... .......... .......... .......... 78% 16.4M 0s\n", " 6750K .......... .......... .......... .......... .......... 79% 11.5M 0s\n", " 6800K .......... .......... .......... .......... .......... 79% 20.4M 0s\n", " 6850K .......... .......... .......... .......... .......... 80% 15.8M 0s\n", " 6900K .......... .......... .......... .......... .......... 80% 11.3M 0s\n", " 6950K .......... .......... .......... .......... .......... 81% 14.7M 0s\n", " 7000K .......... .......... .......... .......... .......... 82% 11.6M 0s\n", " 7050K .......... .......... .......... .......... .......... 82% 18.8M 0s\n", " 7100K .......... .......... .......... .......... .......... 83% 15.2M 0s\n", " 7150K .......... .......... .......... .......... .......... 83% 15.2M 0s\n", " 7200K .......... .......... .......... .......... .......... 84% 12.5M 0s\n", " 7250K .......... .......... .......... .......... .......... 84% 17.4M 0s\n", " 7300K .......... .......... .......... .......... .......... 85% 17.0M 0s\n", " 7350K .......... .......... .......... .......... .......... 86% 17.5M 0s\n", " 7400K .......... .......... .......... .......... .......... 86% 10.2M 0s\n", " 7450K .......... .......... .......... .......... .......... 87% 15.5M 0s\n", " 7500K .......... .......... .......... .......... .......... 87% 12.2M 0s\n", " 7550K .......... .......... .......... .......... .......... 88% 12.1M 0s\n", " 7600K .......... .......... .......... .......... .......... 88% 13.0M 0s\n", " 7650K .......... .......... .......... .......... .......... 89% 19.0M 0s\n", " 7700K .......... .......... .......... .......... .......... 90% 15.0M 0s\n", " 7750K .......... .......... .......... .......... .......... 90% 17.6M 0s\n", " 7800K .......... .......... .......... .......... .......... 91% 14.9M 0s\n", " 7850K .......... .......... .......... .......... .......... 91% 14.8M 0s\n", " 7900K .......... .......... .......... .......... .......... 92% 14.7M 0s\n", " 7950K .......... .......... .......... .......... .......... 93% 15.5M 0s\n", " 8000K .......... .......... .......... .......... .......... 93% 14.6M 0s\n", " 8050K .......... .......... .......... .......... .......... 94% 17.5M 0s\n", " 8100K .......... .......... .......... .......... .......... 94% 15.1M 0s\n", " 8150K .......... .......... .......... .......... .......... 95% 227K 0s\n", " 8200K .......... .......... .......... .......... .......... 95% 11.3M 0s\n", " 8250K .......... .......... .......... .......... .......... 96% 11.6M 0s\n", " 8300K .......... .......... .......... .......... .......... 97% 173M 0s\n", " 8350K .......... .......... .......... .......... .......... 97% 116M 0s\n", " 8400K .......... .......... .......... .......... .......... 98% 134M 0s\n", " 8450K .......... .......... .......... .......... .......... 98% 173M 0s\n", " 8500K .......... .......... .......... .......... .......... 99% 41.9M 0s\n", " 8550K .......... .......... .......... .......... ...... 100% 124M=1.0s\n", "\n", "2017-11-23 23:32:49 (8.61 MB/s) - ‘outreach.csv’ saved [8802904/8802904]\n", "\n" ] } ], "source": [ "//This two lines can be commented out. You just need it once, and in case the CVS file was not provided already\n", "system(\"rm outreach.csv\");\n", "system(\"wget http://opendata.atlas.cern/visualisations/CrossFilter/outreach.csv\");\n", "\n", "//If the file is downloaded with the line above, you *need* to remove the first line of the outreach.csv" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "TString dir = gSystem->UnixPathName(__FILE__);\n", "dir.ReplaceAll(\"outreach.C\",\"\");\n", "dir.ReplaceAll(\"/./\",\"/\");\n", "\n", "TFile *f = new TFile(\"outreach.root\",\"RECREATE\");" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Warning in : Couldn't read formatted data in \"type\" for branch type on line 1; ignoring line\n", "Warning in : Read too few columns (1 < 10) in line 1; ignoring line\n" ] } ], "source": [ "TTree *tree = new TTree(\"ntuple\",\"data from csv file\");\n", "// The file inside has ----> type, Channel, NJets, MET, Mll, LepDeltaPhi, METLLDeltaPhi, SumLepPt, BTags, weight\n", "tree->ReadFile(\"outreach.csv\",\"type/I:Channel/I:NJets/I:MET/F:Mll/F:LepDeltaPhi/F:METLLDeltaPhi/F:SumLepPt/F:BTags/F:weight/F\",',');\n", "f->Write();" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-rw-r--r--@ 1 arturos staff 8.4M Jan 15 2017 outreach.csv\n", "-rw-r--r-- 1 arturos staff 3.0M Nov 23 23:32 outreach.root\n" ] } ], "source": [ "system(\"ls -lhrt outreach.*\");" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "TFile *_file0 = TFile::Open(\"outreach.root\");" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "TCanvas *c3D = new TCanvas(\"c3D\",\"c3D\",10,10,400,400);\n", "ntuple->Draw(\"MET:Mll:LepDeltaPhi\",\"MET>0.\");\n", "c3D->Draw();" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "TCanvas *cz = new TCanvas(\"cz\",\"cz\",10,10,400,400);\n", "ntuple->Draw(\"Mll:MET\",\"weight>-999\",\"colz\");" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", "
\n", "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cz->Draw();" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", "
\n", "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "TCanvas *c2D = new TCanvas(\"c2D\",\"c2D\",10,10,400,400);\n", "ntuple->Draw(\"Mll:LepDeltaPhi\",\"MET>0.\",\"colz\");\n", "c2D->Draw();" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "Below you can try to create a more complex analysis, following what is done in notebook_micro_HEP_analysis_cpp_example.ipynb" ] } ], "metadata": { "kernelspec": { "display_name": "ROOT C++", "language": "c++", "name": "root" }, "language_info": { "codemirror_mode": "text/x-c++src", "file_extension": ".C", "mimetype": " text/x-c++src", "name": "c++" } }, "nbformat": 4, "nbformat_minor": 1 }