55 lines
1.7 KiB
Python
55 lines
1.7 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
|
|
|
|
'''
|
|
Tool for removing multiple candidates after TMVA.
|
|
Adds a branch with a boolean for each TMVA cut, whether the event should be removed or not
|
|
New version, as there is something wrong with 2016
|
|
'''
|
|
|
|
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)
|