Гистограмма с помощью ntuple с использованием CERN ROOT - PullRequest
0 голосов
/ 26 марта 2019

Невозможно получить / заполнить гистограмму, начиная с ntuple, используя ROOT.

Я искал предыдущие ответы, и все они используют ttree, включая корневую документацию. У меня его нет. Не новичок в root, но я борюсь много, используя его. Ни один из найденных методов не работает с моим кодом (или я не знаю, как их реализовать).

Это более или менее то, что я нашел везде:

https://root.cern.ch/root/roottalk/roottalk03/2620.html

но нет, я делаю TH1F и у меня нет ttree (см. Код ниже)

{    
   gROOT->Reset();

#include "Riostream.h"
#include <iostream>
#include <fstream>

  in.open( "somefile.dat");

TNtuple *ntuple = new TNtuple("ntuple","some data from ascii file","index1:index2:index3");

//declare variables, create histograms   
   Double_t x,y,Price[215000],Diff[215000],Ret[215000],trend, Data[215000];
   TFile *f = new TFile("TrendsCountBove.root","RECREATE");
   TH1F *h1 = new TH1F("h1","Retornos",100,-0.3,0.3);
   TH1F *histo = new TH1F ("hist_from_ntuple", "some title", nbins, min,max);

//do some stuff (didn't paste all calculations i do, but that works fine)

for (Int_t i = 0; i+1 < nlines-1; i++) {
     Diff[i] = Price[i+1]-Price[i];
     Ret[i] = TMath::Log(Price[i+1])-TMath::Log(Price[i]);
     h1->Fill(Ret[i]);
     ntuple->Fill(i*1.0,Ret[i],Price[i+1]);
  }

Итак, все работает нормально, никаких проблем. Но опять же, если хотите, кто-нибудь мог бы объяснить мне как можно более подробно, как я могу заполнить гисто, скажем, index1, или 2 или 3. Я сосу на c ++, и мне это действительно не нравится, и я не понимаю.

Я ожидаю красивую гистограмму, где я могу установить все параметры, такие как заголовок, максимум и минимум, поле статистики и т. Д. По умолчанию root делает это через ntuple, но это не то, что мне нужно.

Заранее большое спасибо.

1 Ответ

0 голосов
/ 28 марта 2019

Спасибо большое, ребята, первый ответ сработал как надо.Теперь я бы хотел использовать Python вместо ROOT.Проблема в том, что мои директора тезисов (оба физики, оба из частиц) никогда не хотели этого делать.В результате около шести месяцев мучаюсь с с ++ и ROOT.Такое сопротивление.

Еще раз спасибо!

...