Невозможно получить / заполнить гистограмму, начиная с 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, но это не то, что мне нужно.
Заранее большое спасибо.