class observableContainer: # ------------------------------------- def __init__(self, signame, bkgname, variables, cuts, label, treeName, weightloc='weights', MVAMethod="BDTG"): self._f_sig = ROOT.TFile(signame) self._f_bkg = ROOT.TFile(bkgname) self._t_sig = self._f_sig.Get(treeName) self._t_bkg = self._f_bkg.Get(treeName) self._discVariables = variables #,"MHT","nJets_30"]; #tmva cut self._cutstring = "(" cutctr = 0 for cut in cuts: self._cutstring += "(" + cut[0] + " > " + str( cut[1]) + ") && (" + cut[0] + " < " + str(cut[2]) + ")" if cutctr < len(cuts) - 1: self._cutstring += "&&" cutctr += 1 self._cutstring += ")" print "cutstring = ", self._cutstring # self._spectatorVariables = ["lheWeight"]; self._spectatorVariables = [] self._trees = [self._t_sig, self._t_bkg] self._bdt = TMVAhelper("MVA_" + label, self._discVariables, self._trees, self._spectatorVariables, weightloc) print ";;weightloc = ", weightloc # ------------------------------------- def doTraining(self): self._bdt.train(self._cutstring) def readMVA(self, method="BDTG"): # read in weight files (one can train and loop at different times) self._bdt.read(method) def evaluateMVA(self, val, method="BDTG"): return self._bdt.evaluate(val, method)
class observableContainer: # ------------------------------------- def __init__(self,signame,bkgname,variables,cuts,label,treeName,weightloc='weights',MVAMethod="BDTG"): self._f_sig = ROOT.TFile(signame); self._f_bkg = ROOT.TFile(bkgname); self._t_sig = self._f_sig.Get(treeName); self._t_bkg = self._f_bkg.Get(treeName); self._discVariables = variables;#,"MHT","nJets_30"]; #tmva cut self._cutstring = "("; cutctr = 0; for cut in cuts: self._cutstring += "(" + cut[0] + " > " + str(cut[1]) + ") && (" + cut[0] + " < " + str(cut[2]) + ")" if cutctr < len(cuts) - 1: self._cutstring += "&&"; cutctr+=1; self._cutstring += ")"; print "cutstring = ", self._cutstring; # self._spectatorVariables = ["lheWeight"]; self._spectatorVariables = []; self._trees = [self._t_sig,self._t_bkg]; self._bdt = TMVAhelper("MVA_"+label,self._discVariables,self._trees,self._spectatorVariables,weightloc); print ";;weightloc = ",weightloc # ------------------------------------- def doTraining(self): self._bdt.train(self._cutstring); def readMVA(self,method="BDTG"): # read in weight files (one can train and loop at different times) self._bdt.read(method); def evaluateMVA(self,val,method="BDTG"): return self._bdt.evaluate(val,method);
def __init__(self, signame, bkgname, variables, cuts, label, treeName, weightloc='weights', MVAMethod="BDTG"): self._f_sig = ROOT.TFile(signame) self._f_bkg = ROOT.TFile(bkgname) self._t_sig = self._f_sig.Get(treeName) self._t_bkg = self._f_bkg.Get(treeName) self._discVariables = variables #,"MHT","nJets_30"]; #tmva cut self._cutstring = "(" cutctr = 0 for cut in cuts: self._cutstring += "(" + cut[0] + " > " + str( cut[1]) + ") && (" + cut[0] + " < " + str(cut[2]) + ")" if cutctr < len(cuts) - 1: self._cutstring += "&&" cutctr += 1 self._cutstring += ")" print "cutstring = ", self._cutstring # self._spectatorVariables = ["lheWeight"]; self._spectatorVariables = [] self._trees = [self._t_sig, self._t_bkg] self._bdt = TMVAhelper("MVA_" + label, self._discVariables, self._trees, self._spectatorVariables, weightloc) print ";;weightloc = ", weightloc
def __init__(self,signame,bkgname,variables,cuts,label,treeName,weightloc='weights',MVAMethod="BDTG"): self._f_sig = ROOT.TFile(signame); self._f_bkg = ROOT.TFile(bkgname); self._t_sig = self._f_sig.Get(treeName); self._t_bkg = self._f_bkg.Get(treeName); self._discVariables = variables;#,"MHT","nJets_30"]; #tmva cut self._cutstring = "("; cutctr = 0; for cut in cuts: self._cutstring += "(" + cut[0] + " > " + str(cut[1]) + ") && (" + cut[0] + " < " + str(cut[2]) + ")" if cutctr < len(cuts) - 1: self._cutstring += "&&"; cutctr+=1; self._cutstring += ")"; print "cutstring = ", self._cutstring; # self._spectatorVariables = ["lheWeight"]; self._spectatorVariables = []; self._trees = [self._t_sig,self._t_bkg]; self._bdt = TMVAhelper("MVA_"+label,self._discVariables,self._trees,self._spectatorVariables,weightloc); print ";;weightloc = ",weightloc
## TMVA stuff ## classifier ## inputs, list of variables, list of ntuples bdtClasses = []; bdtctr = 0; for i in range(len(obs2Corr)): for j in range(i+1,len(obs2Corr)): vars_tmp = [obs2Corr[i],obs2Corr[j]]; tmva_tmp = TMVAhelper("tmva_"+options.tmvaname+"_"+obs2Corr[i]+"_"+obs2Corr[j],vars_tmp,files); bdtClasses.append(tmva_tmp); if options.train: bdtClasses[bdtctr].train(); bdtClasses[bdtctr].read(); bdtctr += 1; tmva_all = TMVAhelper("tmva_"+options.tmvaname+"_all",obs2Corr,files); if options.train: tmva_all.train(); tmva_all.read(); ## ===================================================================================== ## ===================================================================================== #######----------------------------------------------- ####### loop #######----------------------------------------------- for a in range(len(types)): f = ROOT.TFile(files[a]); t = f.Get("t");
for i in range(len(obs2Corr)): vars_tmp = [varFor3Vars[0]+"[0]",varFor3Vars[1]+"[0]"] if not (obs2Corr[i] in varFor3Vars): vars_tmp.append(obs2Corr[i]+"[0]") tmvaname = "tmva_"+options.tmvaname+"_"+varFor3Vars[0]+"_"+varFor3Vars[1]+"_"+obs2Corr[i]+"_"+cone+"_pt%04i" % (binp1); #"weights/TMVAClassification_tmva_Wg_j_mass_mmdt_j_mass_sdb2_1000_ak08_BDTG.weights.xml" tmva_tmp = TMVAhelper( "tmva_"+options.tmvaname+"_"+varFor3Vars[0]+"_"+varFor3Vars[1]+"_"+obs2Corr[i]+"_"+str(bin)+"_"+cone,vars_tmp,trainingFiles); bdtClasses.append(tmva_tmp); if options.train or options.train3: bdtClasses[bdtctr].train(bin_cut,binp1_cut); bdtClasses[bdtctr].read(tmvamethod); bdtctr += 1; print "bdtctr = ", bdtctr tmva_all = TMVAhelper("tmva_"+options.tmvaname+"_all"+"_"+cone+"_pt%04i" % (bin),obs2Corr_all,trainingFiles); if options.train or options.trainAllOnly: tmva_all.train(bin_cut,binp1_cut); tmva_all.read(tmvamethod); ## ===================================================================================== ## ===================================================================================== #######----------------------------------------------- ####### loop #######----------------------------------------------- for a in range(len(types)): f = ROOT.TFile(files[a]); t = f.Get("t");