Пример #1
0
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);
Пример #3
0
                obsctr = 0;
                for j in range(len(obs2Corr)):
                    for k in range(j+1,len(obs2Corr)):
                        h_2D[a][obsctr].Fill( getattr(t,obs2Corr[j])[0], getattr(t,obs2Corr[k])[0] );

                        tmpList = [];
                        for l in range(len(h_bdts_vars[obsctr])): 
                            tmpList.append( getattr(t,h_bdts_vars[obsctr][l])[0] );
                        bdtOutput = bdtClasses[obsctr].evaluate( tmpList );
                        h_bdts[a][obsctr].Fill(bdtOutput);
                        obsctr += 1;
            
                tmpList = [];
                for j in range(len(obs2Corr)):
                    tmpList.append( getattr(t,obs2Corr[j])[0] );
                h_bdtall[a].Fill( tmva_all.evaluate( tmpList ) );
            ## =====================================================================================

        del f;
        del t;
                
    #######-----------------------------------------------
    ####### plot
    #######-----------------------------------------------

    ## =====================================================================================
    ## 1D stuff

    makeCanvas(h_pt1, types, "jpt1", True);
    makeCanvas(h_pt2, types, "jpt2", True);
    makeCanvas(h_eta1, types, "jeta1", True);
Пример #4
0
                if options.tmvaname == "Wq" or options.tmvaname == "Wg":                      
                    for j in range(len(obs2Corr)):
                        if not (obs2Corr[j] in varFor3Vars):
                            tmpList = [];
                            for l in range(len(h_bdts_vars[obsctr])): 
                                tmpList.append( getattr(t,h_bdts_vars[obsctr][l])[0] );
                            #print "obsctr = ", obsctr,", total length = ", len(bdtClasses)
                            bdtOutput = bdtClasses[obsctr].evaluate( tmpList, tmvamethod );
                            h_bdts[a][obsctr].Fill(bdtOutput);
                            
                            obsctr += 1;
            
                tmpList = [];
                for j in range(len(obs2Corr_all)):
                    tmpList.append( getattr(t,obs2Corr_all[j])[0] );
                h_bdtall[a].Fill( tmva_all.evaluate( tmpList, tmvamethod ) );
                aOvars[a][len(obs2Corr)][0] = tmva_all.evaluate( tmpList, tmvamethod );

            ## =====================================================================================
            otrees[a].Fill();

        del f;
        del t;
    
    # OFILE.cd();
    # for a in range(len(otrees)): otrees[a].Write();
    # OFILE.Close();

    #######-----------------------------------------------
    ####### plot
    #######-----------------------------------------------