Example #1
0
    def createDataSet(self, dname, dcut):
        """Return named dataset, create if not exist"""
        if dname in self.dataset.keys() and not self.process.cfg['args'].force:
            self.logger.logINFO("\033[0;34;47m Dataset: ", dname,
                                " Already Exists! \033[0m. Total Entries:",
                                self.dataset[dname].sumEntries())
            self.logger.logDEBUG(dcut, Stamp=False)
            return 1
        tempfile_preload = ROOT.TFile(tempfile.gettempdir() + "/temp.root",
                                      'RECREATE')  #Pritam
        RooCut = ROOT.RooFit.Cut(dcut)
        Import = ROOT.RooFit.Import(self.ch)
        Range = ROOT.RooFit.CutRange(
            dname.split(".")[2])  # Not taking effect, need review
        Weight = ROOT.RooFit.WeightVar(self.cfg['weight'])
        if self.argset.find("Bmass"):
            self.argset.find(
                "Bmass").removeRange()  # Analysis specific line introduced
        if "dataReader" in dname or "sigMCGENReader" in dname:
            data = RooDataSet(dname, "", self.argset, Import, RooCut, Range)
        else:
            data = RooDataSet(dname, "Weighted dataset", self.argset, Import,
                              RooCut, Range, Weight)

        if self.argset.find("Phimass"):
            self.argset.find("Phimass").setBins(20)
            datahist = ROOT.RooDataHist(
                dname + ".hist", "",
                ROOT.RooArgSet(self.argset.find("Phimass")), data)
            self.dataset[dname + ".hist"] = deepcopy(datahist)
        data.Write()
        self.dataset[dname] = deepcopy(data)
        self.logger.logINFO("\033[0;34;47m Creating Dataset: ", dname,
                            ": \033[0m. Total Entries:", data.sumEntries())
        self.logger.logDEBUG(dcut, Stamp=False)
        tempfile_preload.Close()  #Pritam
        return 1
Example #2
0
hlt = RooRealVar("xHlt", "xHlt", 0.0, 20.0)
masskk = RooRealVar("kkM", "kkM", 0.5, 1.5)
massbins = 100
masskk.setBins(int(massbins))
massmumu = RooRealVar("mumuM", "mumuM", 2.5, 3.5)
cutFormula = RooFormulaVar("cutFormula", "cutFormula", "xHlt!=8.0",
                           RooArgList(hlt))

# In[9]:

alldata = RooDataSet("alldata", "alldata", xTuple,
                     RooArgSet(masskk, mass, lxy, hlt,
                               massmumu))  #,cutFormula)
datasetfile = TFile("xMassDataset.root", "RECREATE")
datasetfile.cd()
alldata.Write()

# In[10]:

alldata.numEntries()

# In[ ]:

#xb->setRange("alt","x_coarse_bin1,x_coarse_bin3,x_coarse_bin5,x_coarse_bin7,x_coarse_bin9") ;
b0dataNonPrompt = ((
    alldata.reduce('xHlt!=8')).reduce('xM>5.2')).reduce("xL>3.0")

# In[ ]:

b0dataNonPromptMass = b0dataNonPrompt.reduce(SelectVars(RooArgSet(mass)))
b0dataNonPrompt.numEntries()
def makeRooDataSet(type, infile_name, outfile_name, tree_name, nevents):
    """ Make RooDataSets from TTrees"""

    inputfile = TFile.Open(infile_name, "READ")
    print "Importing tree"
    tree = TTree()
    inputfile.GetObject(tree_name, tree)  #get the tree from the data file

    #define variables for the RooDataSet
    m_mumu = RooRealVar("m_mumu", "m_mumu", 0.0, 4.0)
    y_mumu = RooRealVar("y_mumu", "y_mumu", 0.0, 2.0)
    pt_mumu = RooRealVar("pt_mumu", "pt_mumu", 0.0, 260.0)
    eta_gamma = RooRealVar("eta_gamma", "eta_gamma", -3.5, 3.5)
    pt_gamma = RooRealVar("pt_gamma", "pt_gamma", 0.0, 100.0)
    m_gamma = RooRealVar("m_gamma", "m_gamma", -0.1, 0.1)

    m_chi_rf1S = RooRealVar("m_chi_rf1S", "m_chi_rf1S", 0.0, 7.0)
    m_chi_rf2S = RooRealVar("m_chi_rf2S", "m_chi_rf2S", -1.0, 1.0)
    Qvalue = RooRealVar("Qvalue", "Q", -15., 15.)

    ctpv = RooRealVar("ctpv", "ctpv", -1.0, 3.5)
    ctpv_error = RooRealVar("ctpv_err", "ctpv_err", -1.0, 1.0)
    pi0_abs_mass = RooRealVar("pi0_abs_mass", "pi0_abs_mass", 0.0, 2.2)
    psi1S_nsigma = RooRealVar("psi1S_nsigma", "psi1S_nsigma", 0.0, 1.0)
    psi2S_nsigma = RooRealVar("psi2S_nsigma", "psi2S_nsigma", 0.0, 1.0)
    psi3S_nsigma = RooRealVar("psi3S_nsigma", "psi3S_nsigma", 0.0, 1.0)
    rho_conv = RooRealVar("rho_conv", "rho_conv", 0.0, 70.0)
    dz = RooRealVar("dz", "dz", -1.0, 1.0)

    probFit1S = RooRealVar('probFit1S', 'probFit1S', 0, 1)
    probFit2S = RooRealVar('probFit2S', 'probFit2S', 0, 1)
    probFit3S = RooRealVar('probFit3S', 'probFit3S', 0, 1)

    dataArgSet = RooArgSet(m_mumu, y_mumu, pt_mumu, eta_gamma, pt_gamma,
                           m_gamma, m_chi_rf1S)

    dataArgSet.add(m_chi_rf2S)
    dataArgSet.add(Qvalue)
    dataArgSet.add(ctpv)
    dataArgSet.add(ctpv_error)
    dataArgSet.add(pi0_abs_mass)
    dataArgSet.add(psi1S_nsigma)
    dataArgSet.add(psi2S_nsigma)
    dataArgSet.add(rho_conv)
    dataArgSet.add(dz)
    dataArgSet.add(probFit1S)
    dataArgSet.add(probFit2S)
    dataArgSet.add(probFit3S)

    print "Creating DataSet"
    dataSet = RooDataSet("chicds", "Chic RooDataSet", dataArgSet)

    entries = tree.GetEntries()
    print entries

    if nevents is not 0:
        entries = nevents

    for ientry in range(0, entries):
        tree.GetEntry(ientry)

        # unfort ntuples are slightly different for chic and chib

        if applyscale:

            if usekinfit:
                spatial = tree.rf1S_photon_p4.Vect()
                spatial *= (1 / escale)
                corr_photon_p4 = TLorentzVector()
                #corr_photon_p4.SetVectM(spatial,tree.rf1S_photon_p4.M())
                corr_photon_p4.SetVectM(spatial, 0)
                corr_chi_p4 = tree.rf1S_dimuon_p4 + corr_photon_p4

            else:

                spatial = tree.photon_p4.Vect()
                spatial *= (1 / escale)
                corr_photon_p4 = TLorentzVector()
                corr_photon_p4.SetVectM(spatial, tree.photon_p4.M())
                corr_chi_p4 = tree.dimuon_p4 + corr_photon_p4

        else:
            corr_chi_p4 = tree.chi_p4

        if type == 'chic':

            m_mumu.setVal(tree.dimuon_p4.M())
            y_mumu.setVal(tree.dimuon_p4.Rapidity())
            pt_mumu.setVal(tree.dimuon_p4.Pt())
            eta_gamma.setVal(tree.photon_p4.Eta())
            pt_gamma.setVal(tree.photon_p4.Pt())
            m_gamma.setVal(tree.photon_p4.M())
            m_chi_rf1S.setVal(tree.rf1S_chi_p4.M())
            m_chi_rf1S.setVal(tree.rf2S_chi_p4.M())

            if usekinfit: Qvalue.setVal(corr_chi_p4.M())
            else: Qvalue.setVal((corr_chi_p4).M() - tree.dimuon_p4.M())
            print 'corr value ', corr_chi_p4.M()

            #Qvalue.setVal((tree.chi_p4).M()**2 - tree.dimuon_p4.M()**2)
            psi1S_nsigma.setVal(tree.psi1S_nsigma)
            psi2S_nsigma.setVal(tree.psi2S_nsigma)
            psi3S_nsigma.setVal(0)

        elif type == 'chib':

            m_mumu.setVal(tree.dimuon_p4.M())
            y_mumu.setVal(tree.dimuon_p4.Rapidity())
            pt_mumu.setVal(tree.dimuon_p4.Pt())
            eta_gamma.setVal(tree.photon_p4.Eta())
            pt_gamma.setVal(tree.photon_p4.Pt())
            m_chi_rf1S.setVal(tree.rf1S_chi_p4.M())
            m_chi_rf2S.setVal(tree.rf2S_chi_p4.M())

            if usekinfit: Qvalue.setVal(corr_chi_p4.M())
            else: Qvalue.setVal(corr_chi_p4.M() - tree.dimuon_p4.M())

            psi1S_nsigma.setVal(tree.Y1S_nsigma)
            psi2S_nsigma.setVal(tree.Y2S_nsigma)
            psi3S_nsigma.setVal(tree.Y3S_nsigma)

            probFit1S.setVal(tree.probFit1S)
            probFit2S.setVal(tree.probFit2S)
            probFit3S.setVal(tree.probFit3S)

        ctpv.setVal(tree.ctpv)
        ctpv_error.setVal(tree.ctpv_error)
        pi0_abs_mass.setVal(tree.pi0_abs_mass)

        rho_conv.setVal(tree.conv_vertex)
        dz.setVal(tree.dz)

        if selectchi1:
            if (tree.chic_pdgId == 20443): dataSet.add(dataArgSet)
        else:
            dataSet.add(dataArgSet)

    outfile = TFile(outfile_name, 'recreate')
    dataSet.Write()
Example #4
0
def makeRooDataSet(type, infile_name, outfile_name, tree_name, nevents):
    """ Make RooDataSets from TTrees"""

    inputfile = TFile.Open(infile_name, "READ")
    print "Importing tree"
    tree = TTree()
    inputfile.GetObject(tree_name, tree)  #get the tree from the data file

    #define variables for the RooDataSet
    m_mumu = RooRealVar("m_mumu", "m_mumu", 0.0, 4.0)
    y_mumu = RooRealVar("y_mumu", "y_mumu", 0.0, 2.0)
    pt_mumu = RooRealVar("pt_mumu", "pt_mumu", 0.0, 260.0)
    eta_gamma = RooRealVar("eta_gamma", "eta_gamma", -3.5, 3.5)
    pt_gamma = RooRealVar("pt_gamma", "pt_gamma", 0.0, 100.0)
    m_gamma = RooRealVar("m_gamma", "m_gamma", -0.1, 0.1)

    m_chi_rf1S = RooRealVar("m_chi_rf1S", "m_chi_rf1S", 0.0, 7.0)
    m_chi_rf2S = RooRealVar("m_chi_rf2S", "m_chi_rf2S", -1.0, 1.0)
    #Qvalue        = RooRealVar("Qvalue","Q", -15., 15.)
    s = RooRealVar("s", "s", -10., 10.)

    ctpv = RooRealVar("ctpv", "ctpv", -1.0, 3.5)
    ctpv_error = RooRealVar("ctpv_err", "ctpv_err", -1.0, 1.0)
    pi0_abs_mass = RooRealVar("pi0_abs_mass", "pi0_abs_mass", 0.0, 2.2)
    psi1S_nsigma = RooRealVar("psi1S_nsigma", "psi1S_nsigma", 0.0, 1.0)
    psi2S_nsigma = RooRealVar("psi2S_nsigma", "psi2S_nsigma", 0.0, 1.0)
    psi3S_nsigma = RooRealVar("psi3S_nsigma", "psi3S_nsigma", 0.0, 1.0)
    rho_conv = RooRealVar("rho_conv", "rho_conv", 0.0, 70.0)
    dz = RooRealVar("dz", "dz", -1.0, 1.0)
    probFit1S = RooRealVar("probFit1S", "probFit1S", 0, 1)
    probFit2S = RooRealVar("probFit2S", "probFit2S", 0, 1)

    dataArgSet = RooArgSet(m_mumu, y_mumu, pt_mumu, eta_gamma, pt_gamma,
                           m_gamma, m_chi_rf1S)

    dataArgSet.add(m_chi_rf2S)
    dataArgSet.add(s)
    dataArgSet.add(ctpv)
    dataArgSet.add(ctpv_error)
    dataArgSet.add(pi0_abs_mass)
    dataArgSet.add(psi1S_nsigma)
    dataArgSet.add(psi2S_nsigma)
    dataArgSet.add(rho_conv)
    dataArgSet.add(dz)
    dataArgSet.add(probFit1S)
    dataArgSet.add(probFit2S)

    print "Creating DataSet"
    dataSet = RooDataSet("chicds", "Chic RooDataSet", dataArgSet)

    entries = tree.GetEntries()
    print entries

    if nevents is not 0:
        entries = nevents

    for ientry in range(0, entries):
        tree.GetEntry(ientry)

        # unfort ntuples are slightly different for chic and chib

        if type == 'chic':

            m_mumu.setVal(tree.dimuon_mass)
            y_mumu.setVal(tree.dimuon_rapidity)
            pt_mumu.setVal(tree.dimuon_pt)
            eta_gamma.setVal(tree.photon_eta)
            pt_gamma.setVal(tree.photon_pt)
            #m_gamma.setVal(tree.photon_p4.M())
            m_chi_rf1S.setVal(tree.rf1S_chic_mass)
            #m_chi_rf1S.setVal(tree.rf2S_chi_p4.M())
            #Qvalue.setVal((tree.chi_p4).M() - tree.dimuon_p4.M())
            #Qvalue.setVal((tree.chi_p4).M()**2 - tree.dimuon_p4.M()**2)
            #Qvalue.setVal((tree.rf1S_chic_mass**2 -tree.dimuon_mass**2)
            #              / (3.5107**2 - 3.0969**2 ) -1)

            #           this should be the correct one if the refitted variable was available
            #           s.setVal((tree.rf1S_chic_mass**2 - tree.rf1S_dimuon_p4.M()**2)/ (3.5107**2 - 3.0969**2 ) -1)

            s.setVal((tree.rf1S_chic_mass**2 - 3.0969**2) /
                     (3.5107**2 - 3.0969**2) - 1)

            psi1S_nsigma.setVal(tree.psi1S_nsigma)
            psi2S_nsigma.setVal(0)
            psi3S_nsigma.setVal(0)

        elif type == 'chib':

            m_mumu.setVal(tree.dimuon_mass)
            y_mumu.setVal(tree.dimuon_rapidity)
            pt_mumu.setVal(tree.dimuon_pt)
            eta_gamma.setVal(tree.photon_eta)
            pt_gamma.setVal(tree.photon_pt)
            m_chi_rf1S.setVal(tree.rf1S_chib_mass)
            m_chi_rf2S.setVal(tree.rf2S_chib_mass)
            Qvalue.setVal(tree.chib_mass - tree.dimuon_mass)
            psi1S_nsigma.setVal(tree.Y1S_nsigma)
            psi2S_nsigma.setVal(tree.Y2S_nsigma)
            psi3S_nsigma.setVal(tree.Y3S_nsigma)

        ctpv.setVal(tree.ct_pv)
        ctpv_error.setVal(tree.ct_pv_error)
        #pi0_abs_mass.setVal(tree.pi0_abs_mass)

        rho_conv.setVal(tree.Conv)
        dz.setVal(tree.Dz)
        probFit1S.setVal(tree.probfit1S)
        #probFit2S.setVal(tree.probFit2S)

        #if (tree.chic_pdgId == 20443):dataSet.add(dataArgSet)
        dataSet.add(dataArgSet)

    outfile = TFile(outfile_name, 'recreate')
    dataSet.Write()