myCLs.sort() myCLsHisto = rt.TH1D("ExpectedCLs_%s" %BoxName, 100, min(myCLs), max(myCLs)) for thisCLs in myCLs: myCLsHisto.Fill(thisCLs) clExpectedTree = rt.TTree("clExpectedTree", "clExpectedTree") rt.gROOT.ProcessLine( "struct MyStruct{\ Double_t m0;\ Double_t m12;\ Double_t CLexp;\ Double_t CLexpPlus;\ Double_t CLexpMinus;};") from ROOT import MyStruct s = MyStruct() clTree.Branch("m0", rt.AddressOf(s,"m0"),'m0/D') clTree.Branch("m12", rt.AddressOf(s,"m12"),'m12/D') clTree.Branch("CLexp_%s" %BoxName, rt.AddressOf(s,"CLexp"),'CLexp/D') clTree.Branch("CLexpPlus_%s" %BoxName, rt.AddressOf(s,"CLexpPlus"),'CLexpPlus/D') clTree.Branch("CLexpMinus_%s" %BoxName, rt.AddressOf(s,"CLexpMinus"),'CLexpMinus/D') s.m0 = m0 s.m12 = m12 s.CLexp, s.CLexpPlus, s.CLexpMinus = ComputeMedian(myCLsHisto) clExpectedTree.Fill() outFile = rt.TFile(fileName.split(".root")[0]+"_expected.root", "recreate") clExpectedTree.Fill() myCLsHisto.Fill() outFile.Close()