#include void macro() { std::vector trees; std::vector hv1; std::vector hv2; float v1; float v2; TRandom* generator = new TRandom(); for (int i = 0; i < 5; i++) { // make a new tree TTree* atree = new TTree("t1", "a tree"); atree->Branch("v1", &v1); atree->Branch("v2", &v2); // fill tree with some values for (int j = 0; j < 200; j++) { v1 = generator->Gaus(i, 1.0); v2 = generator->Gaus(i, 1.0); atree->Fill(); } // make new histos // make distributions comparing v1, v2 from each tree // define binning for each variable //use Form to change the names TH1F* a_hv1 = new TH1F(Form("hv1_%d",i), "histogram1", 50, 0, 10.0); TH1F* a_hv2 = new TH1F(Form("hv2_%d",i), "histogram2", 25, 0, 10.0); // add tree to list of trees and empty histograms trees.push_back(atree); hv1.push_back(a_hv1); hv2.push_back(a_hv2); } for (size_t i = 0; i != trees.size(); i++) { trees[i]->Draw(Form("v1>>hv1_%zu",i), "", "goff"); trees[i]->Draw(Form("v2>>hv2_%zu",i), "", "goff"); } //drawing the hv1's hv1[0]->Draw(); for (size_t i = 1; i != trees.size(); i++) hv1[i]->Draw("same"); //drawing the hv2's in another canvaas TCanvas *a_canvas = new TCanvas("a_canvas","a_canvas",600,400); hv2[0]->Draw(); for (size_t i = 1; i != trees.size(); i++) hv2[i]->Draw("same"); }