#include "TFile.h" #include "TTree.h" #include #include void testclone(){ TFile* file1 = TFile::Open("file1.root","RECREATE"); TTree* tree1 = new TTree("tree1","tree1"); std::vector numbers; tree1->Branch("numbers","std::vector",&numbers,32000,0); for(int i = 0; i < 10; ++i){ numbers = {i,i+1,i+2}; tree1->Fill(); } tree1->Write(); file1->Close(); TFile* file_ref = TFile::Open("file1.root"); TTree* tree_ref = (TTree*)file_ref->Get("tree1"); auto n_ref = tree_ref->Draw("numbers","","goff"); std::cout << n_ref << std::endl; tree_ref->SetMakeClass(1); TTree* tree2 = tree_ref->CloneTree(0); for(int i = 0; i < 10; ++i){ tree_ref->GetEntry(i); tree2->Fill(); } TFile* file2 = TFile::Open("file2.root","RECREATE"); tree2->Write(); file2->Close(); file_ref->Close(); TFile* file_test = TFile::Open("file2.root"); TTree* tree_test = (TTree*)file_test->Get("tree1"); auto n_test = tree_test->Draw("numbers","","goff"); std::cout << n_test << std::endl; }