void mergetrees(std::string f1, std::string f2, std::string output) { // Load files TFile file1(f1.c_str()); TFile file2(f2.c_str()); // Load trees TTree* tree1 = (TTree*)file1.Get("tracks"); TTree* tree2 = (TTree*)file2.Get("tracks"); //if (tree1->GetEntries() != tree2->GetEntries()) ; // Setup output file TFile _output(output.c_str(), "RECREATE"); // Setup new trees //_versionTree = new TTree("version", "version"); //_euhits = new TTree("fitpoints", "fitpoints"); //_zstree = new TTree("rawdata", "rawdata"); TTree* _eutracks = new TTree("tracks", "tracks"); // int _nTrackParams; std::vector *_xPos; std::vector *_yPos; std::vector *_dxdz; std::vector *_dydz; std::vector *_trackIden; std::vector *_trackNum; std::vector *_chi2; std::vector *_ndof; // Setup branches _eutracks->SetAutoSave(1000000000); _eutracks->Branch("xPos", &_xPos); for (int i = 0; i < tree1->GetEntries(); ++i) { tree1->GetEntry(i); std::cout << i << std::endl; auto vec = tree1->GetLeaf("xPos")->GetValue(0); std::cout << vec << std::endl; } }