|
|
#Reorganizes the arrays in TGraph in a way x is ascending, as ROOT is stupidly behaving when plotting when it is not the case #Renata Kopecna
from ROOT import TTree, TChain, TFile, TVector3, TObject, TGraphErrors, TGraph import numpy as np import os
def redoGraph(Run, graphFile, name):
graph = graphFile.Get("MLP "+name+"Run"+str(Run)) size = graph.GetN() buffer_X = graph.GetX() X = np.fromiter(buffer_X,dtype=np.float, count = size) buffer_Y = graph.GetY() Y = np.fromiter(buffer_Y,dtype=np.float, count = size) arr = np.column_stack((X,Y)) arr = np.unique(arr,axis=0) print(arr)
X = arr[:,0].flatten('C') Y = arr[:,1].flatten('C') newGraph = TGraph(X.size,X,Y) newGraph.SetTitle(name) newGraph.SetName(name) return newGraph
def rewriteMVAscan(Run): path = "/home/lhcb/kopecna/B2KstarMuMu_clean/Data/Tuples/FinalSelection/KplusPi0Resolved_BDTscan_Run"+str(Run)+"_fine.root"
graphFile = TFile.Open(path,"READ")
list_of_names = ["sigYield","bkgYield","bkgYield_fromAllEvts","refYield","significance","significance_fromAllEvts"] newFile = TFile.Open(path.replace(".root","_new.root"),"RECREATE") newFile.cd() for name in list_of_names: redoGraph(Run,graphFile,name).Write() newFile.Close() graphFile.Close()
cmd = "mv " + path + " " + path.replace(".root","_old.root") os.system(cmd) cmd = "mv " + path.replace(".root","_new.root") + " " + path os.system(cmd)
rewriteMVAscan(1) rewriteMVAscan(2)
|