File not closed after writing a tree to it with CloneTree()

Hi,

I have a problem with my code and I’d like for your help. In my code I read a tree, I rename some of its branches and then I try to write it to a file using CloneTree()->Write().
The problem is that when I try to process this output root file, I get the error :
file …probably not closed, trying to recover
Info in TFile::Recover: …, recovered key TTree:TruthInclusiveRegions_tree_DBGN_OBJMINDELTAR(kTruthWLepton,kTruthZLepton2,0.3) at address 1661708015
Warning in TFile::Init: successfully recovered 1 keys

I attach here my script. Any advice would be more than welcomerenameBranches.C|attachment (10.3 KB)
{
#include <TROOT.h>
#include <TChain.h>
#include <TFile.h>
#include “TString.h”
// Header file for the classes stored in the TTree if any.
#include “TLorentzVector.h”
#include “vector”
#include “vector”
#include “vector”
#include <stdio.h>
#include <stdlib.h>
#include <TTree.h>

TTree::SetMaxTreeSize(200000000000LL);
TFile tfile = new TFile(“hist-tree_mce.361293.root”, “RECREATE”);
TTree
tree1;

TFile *f = TFile::Open(“hist-mc16_13TeV.361293.MGaMcAtNloPy8EG_NNPDF30LO_A14NNPDF23LO_WZ_lvll_FxFx.deriv.DAOD_STDM5.e7958_s3126_r10724_p4097.root”);

  TDirectory * dir = (TDirectory*)f->Get("hist-mc16_13TeV.361293.MGaMcAtNloPy8EG_NNPDF30LO_A14NNPDF23LO_WZ_lvll_FxFx.deriv.DAOD_STDM5.e7958_s3126_r10724_p4097.root:/Nominal");
  dir->GetObject("TruthInclusiveRegions_tree_DBGN_OBJMINDELTAR(kTruthWLepton,kTruthZLepton2,0.3)",tree1);
  
  tree1->GetBranch("genWeightdyn=-1muR=010000E+01muF=010000E+01")->SetTitle("genWeightdyn1muR_010000E01muF_010000E01");
  tree1->GetBranch("genWeightdyn=-1muR=010000E+01muF=010000E+01")->SetName("genWeightdyn1muR_010000E01muF_010000E01");
  tree1->GetLeaf("genWeightdyn=-1muR=010000E+01muF=010000E+01")->SetTitle("genWeightdyn1muR_010000E01muF_010000E01");
  tree1->GetLeaf("genWeightdyn=-1muR=010000E+01muF=010000E+01")->SetName("genWeightdyn1muR_010000E01muF_010000E01");
  
  tree1->GetBranch("genWeightdyn=-1muR=020000E+01muF=010000E+01")->SetTitle("genWeightdyn1muR_020000E01muF_010000E01");
  tree1->GetBranch("genWeightdyn=-1muR=020000E+01muF=010000E+01")->SetName("genWeightdyn1muR_020000E01muF_010000E01");
  tree1->GetLeaf("genWeightdyn=-1muR=020000E+01muF=010000E+01")->SetTitle("genWeightdyn1muR_020000E01muF_010000E01");
  tree1->GetLeaf("genWeightdyn=-1muR=020000E+01muF=010000E+01")->SetName("genWeightdyn1muR_020000E01muF_010000E01");
  
  tree1->GetBranch("genWeightdyn=-1muR=050000E+00muF=010000E+01")->SetTitle("genWeightdyn1muR_050000E00muF_010000E01");
  tree1->GetBranch("genWeightdyn=-1muR=050000E+00muF=010000E+01")->SetName("genWeightdyn1muR_050000E00muF_010000E01");
  tree1->GetLeaf("genWeightdyn=-1muR=050000E+00muF=010000E+01")->SetTitle("genWeightdyn1muR_050000E00muF_010000E01");
  tree1->GetLeaf("genWeightdyn=-1muR=050000E+00muF=010000E+01")->SetName("genWeightdyn1muR_050000E00muF_010000E01");
  
  tree1->GetBranch("genWeightdyn=-1muR=010000E+01muF=020000E+01")->SetTitle("genWeightdyn1muR_010000E01muF_020000E01");
  tree1->GetBranch("genWeightdyn=-1muR=010000E+01muF=020000E+01")->SetName("genWeightdyn1muR_010000E01muF_020000E01");
  tree1->GetLeaf("genWeightdyn=-1muR=010000E+01muF=020000E+01")->SetTitle("genWeightdyn1muR_010000E01muF_020000E01");
  tree1->GetLeaf("genWeightdyn=-1muR=010000E+01muF=020000E+01")->SetName("genWeightdyn1muR_010000E01muF_020000E01");
  
  tree1->GetBranch("genWeightdyn=-1muR=020000E+01muF=020000E+01")->SetTitle("genWeightdyn1muR_020000E01muF_020000E01");
  tree1->GetBranch("genWeightdyn=-1muR=020000E+01muF=020000E+01")->SetName("genWeightdyn1muR_020000E01muF_020000E01");
  tree1->GetLeaf("genWeightdyn=-1muR=020000E+01muF=020000E+01")->SetTitle("genWeightdyn1muR_020000E01muF_020000E01");
  tree1->GetLeaf("genWeightdyn=-1muR=020000E+01muF=020000E+01")->SetName("genWeightdyn1muR_020000E01muF_020000E01");
  
  tree1->GetBranch("genWeightdyn=-1muR=050000E+00muF=020000E+01")->SetTitle("genWeightdyn1muR_050000E00muF_020000E01");
  tree1->GetBranch("genWeightdyn=-1muR=050000E+00muF=020000E+01")->SetName("genWeightdyn1muR_050000E00muF_020000E01");
  tree1->GetLeaf("genWeightdyn=-1muR=050000E+00muF=020000E+01")->SetTitle("genWeightdyn1muR_050000E00muF_020000E01");
  tree1->GetLeaf("genWeightdyn=-1muR=050000E+00muF=020000E+01")->SetName("genWeightdyn1muR_050000E00muF_020000E01");
  
  tree1->GetBranch("genWeightdyn=-1muR=010000E+01muF=050000E+00")->SetTitle("genWeightdyn1muR_010000E01muF_050000E00");
  tree1->GetBranch("genWeightdyn=-1muR=010000E+01muF=050000E+00")->SetName("genWeightdyn1muR_010000E01muF_050000E00");
  tree1->GetLeaf("genWeightdyn=-1muR=010000E+01muF=050000E+00")->SetTitle("genWeightdyn1muR_010000E01muF_050000E00");
  tree1->GetLeaf("genWeightdyn=-1muR=010000E+01muF=050000E+00")->SetName("genWeightdyn1muR_010000E01muF_050000E00");
  
  tree1->GetBranch("genWeightdyn=-1muR=020000E+01muF=050000E+00")->SetTitle("genWeightdyn1muR_020000E01muF_050000E00");
  tree1->GetBranch("genWeightdyn=-1muR=020000E+01muF=050000E+00")->SetName("genWeightdyn1muR_020000E01muF_050000E00");
  tree1->GetLeaf("genWeightdyn=-1muR=020000E+01muF=050000E+00")->SetTitle("genWeightdyn1muR_020000E01muF_050000E00");
  tree1->GetLeaf("genWeightdyn=-1muR=020000E+01muF=050000E+00")->SetName("genWeightdyn1muR_020000E01muF_050000E00");
  
  tree1->GetBranch("genWeightdyn=-1muR=050000E+00muF=050000E+00")->SetTitle("genWeightdyn1muR_050000E00muF_050000E00");
  tree1->GetBranch("genWeightdyn=-1muR=050000E+00muF=050000E+00")->SetName("genWeightdyn1muR_050000E00muF_050000E00");
  tree1->GetLeaf("genWeightdyn=-1muR=050000E+00muF=050000E+00")->SetTitle("genWeightdyn1muR_050000E00muF_050000E00");
  tree1->GetLeaf("genWeightdyn=-1muR=050000E+00muF=050000E+00")->SetName("genWeightdyn1muR_050000E00muF_050000E00");
  
  string  name[] = {
	  "genWeightPDF=260000NNPDF30_nlo_as_0118","genWeightPDF=260001NNPDF30_nlo_as_0118",
						"genWeightPDF=260002NNPDF30_nlo_as_0118","genWeightPDF=260003NNPDF30_nlo_as_0118",
						"genWeightPDF=260004NNPDF30_nlo_as_0118","genWeightPDF=260005NNPDF30_nlo_as_0118",
						"genWeightPDF=260006NNPDF30_nlo_as_0118","genWeightPDF=260007NNPDF30_nlo_as_0118",
						"genWeightPDF=260008NNPDF30_nlo_as_0118","genWeightPDF=260009NNPDF30_nlo_as_0118",
						"genWeightPDF=260010NNPDF30_nlo_as_0118","genWeightPDF=260011NNPDF30_nlo_as_0118",
						"genWeightPDF=260012NNPDF30_nlo_as_0118","genWeightPDF=260013NNPDF30_nlo_as_0118",
						"genWeightPDF=260014NNPDF30_nlo_as_0118","genWeightPDF=260015NNPDF30_nlo_as_0118",
						"genWeightPDF=260016NNPDF30_nlo_as_0118","genWeightPDF=260017NNPDF30_nlo_as_0118",
						"genWeightPDF=260018NNPDF30_nlo_as_0118","genWeightPDF=260019NNPDF30_nlo_as_0118",
						"genWeightPDF=260020NNPDF30_nlo_as_0118","genWeightPDF=260021NNPDF30_nlo_as_0118",
						"genWeightPDF=260022NNPDF30_nlo_as_0118","genWeightPDF=260023NNPDF30_nlo_as_0118",
						"genWeightPDF=260024NNPDF30_nlo_as_0118","genWeightPDF=260025NNPDF30_nlo_as_0118",
						"genWeightPDF=260026NNPDF30_nlo_as_0118","genWeightPDF=260027NNPDF30_nlo_as_0118",
						"genWeightPDF=260028NNPDF30_nlo_as_0118","genWeightPDF=260029NNPDF30_nlo_as_0118",
						"genWeightPDF=260030NNPDF30_nlo_as_0118","genWeightPDF=260031NNPDF30_nlo_as_0118",
						"genWeightPDF=260032NNPDF30_nlo_as_0118","genWeightPDF=260033NNPDF30_nlo_as_0118",
						"genWeightPDF=260034NNPDF30_nlo_as_0118","genWeightPDF=260035NNPDF30_nlo_as_0118",
						"genWeightPDF=260036NNPDF30_nlo_as_0118","genWeightPDF=260037NNPDF30_nlo_as_0118",
						"genWeightPDF=260038NNPDF30_nlo_as_0118","genWeightPDF=260039NNPDF30_nlo_as_0118",
						"genWeightPDF=260040NNPDF30_nlo_as_0118","genWeightPDF=260041NNPDF30_nlo_as_0118",
						"genWeightPDF=260042NNPDF30_nlo_as_0118","genWeightPDF=260043NNPDF30_nlo_as_0118",
						"genWeightPDF=260044NNPDF30_nlo_as_0118","genWeightPDF=260045NNPDF30_nlo_as_0118",
						"genWeightPDF=260046NNPDF30_nlo_as_0118","genWeightPDF=260047NNPDF30_nlo_as_0118",
						"genWeightPDF=260048NNPDF30_nlo_as_0118","genWeightPDF=260049NNPDF30_nlo_as_0118",
						"genWeightPDF=260050NNPDF30_nlo_as_0118","genWeightPDF=260051NNPDF30_nlo_as_0118",
						"genWeightPDF=260052NNPDF30_nlo_as_0118","genWeightPDF=260053NNPDF30_nlo_as_0118",
						"genWeightPDF=260054NNPDF30_nlo_as_0118","genWeightPDF=260055NNPDF30_nlo_as_0118",
						"genWeightPDF=260056NNPDF30_nlo_as_0118","genWeightPDF=260057NNPDF30_nlo_as_0118",
						"genWeightPDF=260058NNPDF30_nlo_as_0118","genWeightPDF=260059NNPDF30_nlo_as_0118",						
						"genWeightPDF=260060NNPDF30_nlo_as_0118","genWeightPDF=260061NNPDF30_nlo_as_0118",
						"genWeightPDF=260062NNPDF30_nlo_as_0118","genWeightPDF=260063NNPDF30_nlo_as_0118",
						"genWeightPDF=260064NNPDF30_nlo_as_0118","genWeightPDF=260065NNPDF30_nlo_as_0118",
						"genWeightPDF=260066NNPDF30_nlo_as_0118","genWeightPDF=260067NNPDF30_nlo_as_0118",
						"genWeightPDF=260068NNPDF30_nlo_as_0118","genWeightPDF=260069NNPDF30_nlo_as_0118",
						"genWeightPDF=260070NNPDF30_nlo_as_0118","genWeightPDF=260071NNPDF30_nlo_as_0118",
						"genWeightPDF=260072NNPDF30_nlo_as_0118","genWeightPDF=260073NNPDF30_nlo_as_0118",
						"genWeightPDF=260074NNPDF30_nlo_as_0118","genWeightPDF=260075NNPDF30_nlo_as_0118",
						"genWeightPDF=260076NNPDF30_nlo_as_0118","genWeightPDF=260077NNPDF30_nlo_as_0118",
						"genWeightPDF=260078NNPDF30_nlo_as_0118","genWeightPDF=260079NNPDF30_nlo_as_0118",
						"genWeightPDF=260080NNPDF30_nlo_as_0118","genWeightPDF=260081NNPDF30_nlo_as_0118",
						"genWeightPDF=260082NNPDF30_nlo_as_0118","genWeightPDF=260083NNPDF30_nlo_as_0118",
						"genWeightPDF=260084NNPDF30_nlo_as_0118","genWeightPDF=260085NNPDF30_nlo_as_0118",
						"genWeightPDF=260086NNPDF30_nlo_as_0118","genWeightPDF=260087NNPDF30_nlo_as_0118",
						"genWeightPDF=260088NNPDF30_nlo_as_0118","genWeightPDF=260089NNPDF30_nlo_as_0118",
						"genWeightPDF=260090NNPDF30_nlo_as_0118","genWeightPDF=260091NNPDF30_nlo_as_0118",
						"genWeightPDF=260092NNPDF30_nlo_as_0118","genWeightPDF=260093NNPDF30_nlo_as_0118",
						"genWeightPDF=260094NNPDF30_nlo_as_0118","genWeightPDF=260095NNPDF30_nlo_as_0118",
						"genWeightPDF=260096NNPDF30_nlo_as_0118","genWeightPDF=260097NNPDF30_nlo_as_0118",
						"genWeightPDF=260098NNPDF30_nlo_as_0118","genWeightPDF=260099NNPDF30_nlo_as_0118",
						"genWeightPDF=260100NNPDF30_nlo_as_0118"};
						
int nNames = sizeof(name)/sizeof(name[0]);
   for (int in =0 ; in< nNames; in++)
   { 
  
     char buffer [33];
 string S= std::to_string(in);
 std::string genName="genPDF_"+S;
 
    const char *nname=name[in].c_str();
    const char *title=genName.c_str();
    tree1->GetBranch(nname)->SetTitle(title);
        tree1->GetBranch(nname)->SetName(title);
        tree1->GetLeaf(nname)->SetTitle(title);
        tree1->GetLeaf(nname)->SetTitle(title);
   }
  
  
  tfile->cd();
  tree1->CloneTree()->Write();
  tree1->Print();
  delete(f);
  delete(tfile);

}


Please read tips for efficient and successful posting and posting code

ROOT Version: Not Provided
Platform: Not Provided
Compiler: Not Provided


Hello,

Welcome to the ROOT forum!

I think what’s missing is explicitly flushing out the written data with

tfile->Write();
tfile->Close();

before you delete the tfile.

Cheers,
Jakob

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.