void readTree() { TFile *file = new TFile("testTree.root"); //apro il file root file->ls(); // listing del contenuto del file Float_t x,y,z; TTree * Tout= (TTree*)file->Get("T"); Tout->Print(); //listing del contenuto del tree Int_t nentries=Tout->GetEntries(); // numero di entries nel tree cout << " nentries = " << nentries << endl; //in questa modalita' root fa il loop in automatico sulle entries del tree Tout->Draw("x");//grafica x, su un istogramma temporaneo (htemp) c1->Update(); getchar();//hit return to continue TH1F *h1=new TH1F("h1","x distribution",200, -10., 10.); Tout->Draw("x>>h1","y>10.");//grafica x su h1, con selezione su y. c1->Update(); getchar(); Tout->Draw("x>>h1","y>10.","hist ",1000,nentries-1000);//lo stesso, ma per le ultime 100 entries. c1->Update(); getchar(); Tout->Draw("sqrt(x**2+y**2)","log(y)>1.");//sono consentite operazioni c1->Update(); getchar(); Tout->Draw("sqrt(x**2+y**2):log(z)","y>1 && x<0");//sono consentite operazioni c1->Update(); getchar(); Tout->Draw("y:x","1","hist"); //in questa modalita', l'utente fa il loop esplicitamente e recupera singolarmente ogni entry del tree, di cui puo' fare cio' che vuole. Tout->SetBranchAddress("x",&x); Tout->SetBranchAddress("y",&y); Tout->SetBranchAddress("z",&z); for(Int_t i=0;iGetEntry(i); cout << " x = "<< x <<" y = " << y << " z = " << z << endl; } } file->Close(); //chiudo il file }