49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
|
#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)
|