Пример #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
    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
Пример #5
0
        ## 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");
    
Пример #6
0
            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");