def save_raw(f_in, cms, t, MODE): m_runNo = array('i', [0]) m_evtNo = array('i', [0]) m_mode = array('i', [0]) m_charm = array('i', [0]) m_rrawm_Dpipi = array('d', [999.]) m_rawm_D = array('d', [999.]) m_m_D = array('d', [999.]) m_p_D = array('d', [999.]) m_E_D = array('d', [999.]) m_rm_D = array('d', [999.]) m_rm_pipi = array('d', [999.]) m_m_pipi = array('d', [999.]) m_p_pipi = array('d', [999.]) m_E_pipi = array('d', [999.]) m_m_Dpi = array('d', [999.]) m_rm_Dpi = array('d', [999.]) m_m_Dpip = array('d', [999.]) m_m_Dpim = array('d', [999.]) m_m2_Kpip = array('d', [999.]) m_m2_Kpim = array('d', [999.]) m_m_Dpipi = array('d', [999.]) m_rm_Dpipi = array('d', [999.]) m_chi2_vf = array('d', [999.]) m_chi2_kf = array('d', [999.]) m_n_othershws = array('i', [0]) m_n_othertrks = array('i', [0]) m_charge_left = array('i', [0]) m_m_piplus0 = array('d', [999.]) m_m_piminus0 = array('d', [999.]) m_p_piplus0 = array('d', [999.]) m_p_piminus0 = array('d', [999.]) m_E_piplus0 = array('d', [999.]) m_E_piminus0 = array('d', [999.]) m_chi2_pi0 = array('d', [999.]) m_m_Dpi0 = array('d', [999.]) m_m_pi0 = array('d', [999.]) m_p_pi0 = array('d', [999.]) m_E_pi0 = array('d', [999.]) m_n_pi0 = array('i', [0]) m_matched_D = array('i', [0]) m_matched_pi = array('i', [0]) m_indexmc = array('i', [0]) m_motheridx = array('i', 100 * [0]) m_pdgid = array('i', 100 * [0]) t.Branch('runNo', m_runNo, 'm_runNo/I') t.Branch('evtNo', m_evtNo, 'm_evtNo/I') t.Branch('mode', m_mode, 'm_mode/I') t.Branch('charm', m_charm, 'm_charm/I') t.Branch('rrawm_Dpipi', m_rrawm_Dpipi, 'm_rrawm_Dpipi/D') t.Branch('rawm_D', m_rawm_D, 'm_rawm_D/D') t.Branch('m_D', m_m_D, 'm_m_D/D') t.Branch('p_D', m_p_D, 'm_p_D/D') t.Branch('E_D', m_E_D, 'm_E_D/D') t.Branch('rm_D', m_rm_D, 'm_rm_D/D') t.Branch('rm_pipi', m_rm_pipi, 'm_rm_pipi/D') t.Branch('m_pipi', m_m_pipi, 'm_m_pipi/D') t.Branch('p_pipi', m_p_pipi, 'm_p_pipi/D') t.Branch('E_pipi', m_E_pipi, 'm_E_pipi/D') t.Branch('m_Dpi', m_m_Dpi, 'm_m_Dpi/D') t.Branch('rm_Dpi', m_rm_Dpi, 'm_rm_Dpi/D') t.Branch('m_Dpip', m_m_Dpip, 'm_m_Dpip/D') t.Branch('m_Dpim', m_m_Dpim, 'm_m_Dpim/D') t.Branch('m2_Kpip', m_m2_Kpip, 'm_m2_Kpip/D') t.Branch('m2_Kpim', m_m2_Kpim, 'm_m2_Kpim/D') t.Branch('m_Dpipi', m_m_Dpipi, 'm_m_Dpipi/D') t.Branch('rm_Dpipi', m_rm_Dpipi, 'm_rm_Dpipi/D') t.Branch('chi2_vf', m_chi2_vf, 'm_chi2_vf/D') t.Branch('chi2_kf', m_chi2_kf, 'm_chi2_kf/D') t.Branch('n_othertrks', m_n_othertrks, 'm_n_othertrks/I') t.Branch('n_othershws', m_n_othershws, 'm_n_othershws/I') t.Branch('charge_left', m_charge_left, 'm_charge_left/I') t.Branch('m_piplus0', m_m_piplus0, 'm_m_piplus0/D') t.Branch('m_piminus0', m_m_piminus0, 'm_m_piminus0/D') t.Branch('p_piplus0', m_p_piplus0, 'm_p_piplus0/D') t.Branch('p_piminus0', m_p_piminus0, 'm_p_piminus0/D') t.Branch('E_piplus0', m_E_piplus0, 'm_E_piplus0/D') t.Branch('E_piminus0', m_E_piminus0, 'm_E_piminus0/D') t.Branch('chi2_pi0', m_chi2_pi0, 'm_chi2_pi0/D') t.Branch('m_Dpi0', m_m_Dpi0, 'm_m_Dpi0/D') t.Branch('m_pi0', m_m_pi0, 'm_m_pi0/D') t.Branch('p_pi0', m_p_pi0, 'm_p_pi0/D') t.Branch('E_pi0', m_E_pi0, 'm_E_pi0/D') t.Branch('n_pi0', m_n_pi0, 'm_n_pi0/I') t.Branch('matched_D', m_matched_D, 'm_matched_D/I') t.Branch('matched_pi', m_matched_pi, 'm_matched_pi/I') t.Branch('indexmc', m_indexmc, 'indexmc/I') t.Branch('motheridx', m_motheridx, 'motheridx[100]/I') t.Branch('pdgid', m_pdgid, 'pdgid[100]/I') t_std = f_in.Get('STD') nentries = t_std.GetEntries() for ientry in range(nentries): t_std.GetEntry(ientry) if t_std.mode != 200: continue pD_raw = TLorentzVector(0, 0, 0, 0) pD = TLorentzVector(0, 0, 0, 0) pKpip = TLorentzVector(0, 0, 0, 0) pKpim = TLorentzVector(0, 0, 0, 0) for iTrk in range(t_std.n_trkD): ptrack_raw = TLorentzVector(0, 0, 0, 0) ptrack_Kpip = TLorentzVector(0, 0, 0, 0) ptrack_Kpim = TLorentzVector(0, 0, 0, 0) ptrack = TLorentzVector(0, 0, 0, 0) ptrack_raw.SetPxPyPzE(t_std.rawp4_Dtrk[iTrk * 6 + 0], t_std.rawp4_Dtrk[iTrk * 6 + 1], t_std.rawp4_Dtrk[iTrk * 6 + 2], t_std.rawp4_Dtrk[iTrk * 6 + 3]) if MODE == 'raw_signal': ptrack.SetPxPyPzE(t_std.p4_Dtrk[iTrk * 4 + 0], t_std.p4_Dtrk[iTrk * 4 + 1], t_std.p4_Dtrk[iTrk * 4 + 2], t_std.p4_Dtrk[iTrk * 4 + 3]) if MODE == 'raw_sidebandlow': ptrack.SetPxPyPzE(t_std.p4_Dlowtrk[iTrk * 4 + 0], t_std.p4_Dlowtrk[iTrk * 4 + 1], t_std.p4_Dlowtrk[iTrk * 4 + 2], t_std.p4_Dlowtrk[iTrk * 4 + 3]) if MODE == 'raw_sidebandup': ptrack.SetPxPyPzE(t_std.p4_Duptrk[iTrk * 4 + 0], t_std.p4_Duptrk[iTrk * 4 + 1], t_std.p4_Duptrk[iTrk * 4 + 2], t_std.p4_Duptrk[iTrk * 4 + 3]) pD_raw += ptrack_raw pD += ptrack if t_std.rawp4_Dtrk[iTrk * 6 + 5] == 3: ptrack_Kpip.SetPxPyPzE(t_std.rawp4_Dtrk[iTrk * 6 + 0], t_std.rawp4_Dtrk[iTrk * 6 + 1], t_std.rawp4_Dtrk[iTrk * 6 + 2], t_std.rawp4_Dtrk[iTrk * 6 + 3]) ptrack_Kpim.SetPxPyPzE(t_std.rawp4_Dtrk[iTrk * 6 + 0], t_std.rawp4_Dtrk[iTrk * 6 + 1], t_std.rawp4_Dtrk[iTrk * 6 + 2], t_std.rawp4_Dtrk[iTrk * 6 + 3]) pKpip += ptrack_Kpip pKpim += ptrack_Kpim if t_std.rawp4_Dtrk[iTrk * 6 + 4] == 1 and t_std.rawp4_Dtrk[iTrk * 6 + 5] == 2: ptrack_Kpip.SetPxPyPzE(t_std.rawp4_Dtrk[iTrk * 6 + 0], t_std.rawp4_Dtrk[iTrk * 6 + 1], t_std.rawp4_Dtrk[iTrk * 6 + 2], t_std.rawp4_Dtrk[iTrk * 6 + 3]) pKpip += ptrack_Kpip if t_std.rawp4_Dtrk[iTrk * 6 + 4] == -1 and t_std.rawp4_Dtrk[iTrk * 6 + 5] == 2: ptrack_Kpim.SetPxPyPzE(t_std.rawp4_Dtrk[iTrk * 6 + 0], t_std.rawp4_Dtrk[iTrk * 6 + 1], t_std.rawp4_Dtrk[iTrk * 6 + 2], t_std.rawp4_Dtrk[iTrk * 6 + 3]) pKpim += ptrack_Kpim for iShw in range(t_std.n_shwD): pshower_raw = TLorentzVector(0, 0, 0, 0) pshower = TLorentzVector(0, 0, 0, 0) pshower_raw.SetPxPyPzE(t_std.rawp4_Dshw[iShw * 4 + 0], t_std.rawp4_Dshw[iShw * 4 + 1], t_std.rawp4_Dshw[iShw * 4 + 2], t_std.rawp4_Dshw[iShw * 4 + 3]) if MODE == 'raw_signal': pshower.SetPxPyPzE(t_std.p4_Dshw[iShw * 4 + 0], t_std.p4_Dshw[iShw * 4 + 1], t_std.p4_Dshw[iShw * 4 + 2], t_std.p4_Dshw[iShw * 4 + 3]) if MODE == 'raw_sidebandlow': pshower.SetPxPyPzE(t_std.p4_Dlowshw[iShw * 4 + 0], t_std.p4_Dlowshw[iShw * 4 + 1], t_std.p4_Dlowshw[iShw * 4 + 2], t_std.p4_Dlowshw[iShw * 4 + 3]) if MODE == 'raw_sidebandup': pshower.SetPxPyPzE(t_std.p4_Dupshw[iShw * 4 + 0], t_std.p4_Dupshw[iShw * 4 + 1], t_std.p4_Dupshw[iShw * 4 + 2], t_std.p4_Dupshw[iShw * 4 + 3]) pD_raw += pshower_raw pD += pshower pPip = TLorentzVector(0, 0, 0, 0) pPim = TLorentzVector(0, 0, 0, 0) count = 0 for iTrk1 in range(t_std.n_othertrks): if t_std.rawp4_otherMdcKaltrk[iTrk1 * 7 + 4] != 1: continue if t_std.rawp4_otherMdcKaltrk[iTrk1 * 7 + 5] != 2: continue pPip.SetPxPyPzE(t_std.rawp4_otherMdcKaltrk[iTrk1 * 7 + 0], t_std.rawp4_otherMdcKaltrk[iTrk1 * 7 + 1], t_std.rawp4_otherMdcKaltrk[iTrk1 * 7 + 2], t_std.rawp4_otherMdcKaltrk[iTrk1 * 7 + 3]) for iTrk2 in range(t_std.n_othertrks): if t_std.rawp4_otherMdcKaltrk[iTrk2 * 7 + 4] != -1: continue if t_std.rawp4_otherMdcKaltrk[iTrk2 * 7 + 5] != 2: continue pPim.SetPxPyPzE(t_std.rawp4_otherMdcKaltrk[iTrk2 * 7 + 0], t_std.rawp4_otherMdcKaltrk[iTrk2 * 7 + 1], t_std.rawp4_otherMdcKaltrk[iTrk2 * 7 + 2], t_std.rawp4_otherMdcKaltrk[iTrk2 * 7 + 3]) m_runNo[0] = t_std.runNo m_evtNo[0] = t_std.evtNo m_mode[0] = t_std.mode m_charm[0] = t_std.charm m_rrawm_Dpipi[0] = (cms - pD_raw - pPip - pPim).M() m_rawm_D[0] = pD_raw.M() m_m_D[0] = pD.M() m_p_D[0] = pD.P() m_E_D[0] = pD.E() m_rm_D[0] = (cms - pD).M() m_rm_pipi[0] = (cms - pPip - pPim).M() m_m_pipi[0] = (pPip + pPim).M() m_p_pipi[0] = (pPip + pPim).P() m_E_pipi[0] = (pPip + pPim).E() m_m_Dpim[0] = (pD + pPim).M() m_m_Dpip[0] = (pD + pPip).M() if t_std.charm > 0 and t_std.rawp4_otherMdcKaltrk[iTrk2 * 7 + 4] == -1: m_m_Dpi[0] = (pD + pPim).M() m_rm_Dpi[0] = (cms - pD - pPim).M() elif t_std.charm < 0 and t_std.rawp4_otherMdcKaltrk[iTrk2 * 7 + 4] == 1: m_m_Dpi[0] = (pD + pPip).M() m_rm_Dpi[0] = (cms - pD - pPip).M() m_m2_Kpip[0] = pKpip.M2() m_m2_Kpim[0] = pKpim.M2() m_m_Dpipi[0] = (pD + pPip + pPim).M() m_rm_Dpipi[0] = (cms - pD - pPip - pPim).M() m_chi2_vf[0] = t_std.chi2_vf if MODE == 'raw_signal': m_chi2_kf[0] = t_std.chi2_kf if MODE == 'raw_sidebandlow': m_chi2_kf[0] = t_std.chi2_kf_low if MODE == 'raw_sidebandup': m_chi2_kf[0] = t_std.chi2_kf_up m_n_othershws[0] = t_std.n_othershws m_n_othertrks[0] = t_std.n_othertrks charge_left = 0 for i in range(t_std.n_othertrks): if i != iTrk1 and i != iTrk2: charge_left += t_std.rawp4_otherMdcKaltrk[i * 7 + 4] m_charge_left[0] = int(charge_left) m_m_piplus0[0] = pPip.M() m_m_piminus0[0] = pPim.M() m_p_piplus0[0] = pPip.P() m_p_piminus0[0] = pPim.P() m_E_piplus0[0] = pPip.E() m_E_piminus0[0] = pPim.E() m_chi2_pi0[0] = t_std.chi2_pi0_save m_Dpi0 = pD.M() pPi0 = TLorentzVector(0, 0, 0, 0) pPi0.SetPxPyPzE(t_std.p4_pi0_save[0], t_std.p4_pi0_save[1], t_std.p4_pi0_save[2], t_std.p4_pi0_save[3]) if pPi0.M() > 0: m_Dpi0 = (pD + pPi0).M() m_m_Dpi0[0] = m_Dpi0 m_m_pi0[0] = pPi0.M() m_p_pi0[0] = pPi0.P() m_E_pi0[0] = pPi0.E() m_n_pi0[0] = t_std.n_pi0 m_matched_D[0] = t_std.matched_D if t_std.rawp4_otherMdcKaltrk[ iTrk1 * 7 + 6] == 1 and t_std.rawp4_otherMdcKaltrk[iTrk2 * 7 + 6] == 1: m_matched_pi[0] = 1 else: m_matched_pi[0] = 0 m_indexmc[0] = t_std.indexmc for i in range(t_std.indexmc): m_motheridx[i] = t_std.motheridx[i] m_pdgid[i] = t_std.pdgid[i] t.Fill()
def save_missing(f_in, cms, t, MODE): m_runNo = array('i', [0]) m_evtNo = array('i', [0]) m_mode = array('i', [0]) m_charm = array('i', [0]) m_rawm_D = array('d', [999.]) m_m_Dold = array('d', [999.]) m_rrawm_D = array('d', [999.]) m_m_D = array('d', [999.]) m_p_D = array('d', [999.]) m_E_D = array('d', [999.]) m_rm_D = array('d', [999.]) m_rm_D_old = array('d', [999.]) m_rm_Dmiss = array('d', [999.]) m_rm_DDmisspip = array('d', [999.]) m_rm_DDmisspim = array('d', [999.]) m_rm_pipi = array('d', [999.]) m_m_pipi = array('d', [999.]) m_p_pipi = array('d', [999.]) m_E_pipi = array('d', [999.]) m_m_Dpi = array('d', [999.]) m_m_DDmiss = array('d', [999.]) m_rm_DDmiss = array('d', [999.]) m_m_Dmisspi = array('d', [999.]) m_rm_Dmisspi = array('d', [999.]) m_rm_Dmisspipi = array('d', [999.]) m_rm_Dpi = array('d', [999.]) m_m_Dpip = array('d', [999.]) m_m_Dpim = array('d', [999.]) m_m2_Kpip = array('d', [999.]) m_m_Kpip = array('d', [999.]) m_rm_Kpip = array('d', [999.]) m_m2_Kpim = array('d', [999.]) m_m_Kpim = array('d', [999.]) m_rm_Kpim = array('d', [999.]) m_m_Dpipi = array('d', [999.]) m_rm_Dpipi = array('d', [999.]) m_m_Dmiss = array('d', [999.]) m_chi2_vf = array('d', [999.]) m_chi2_kf = array('d', [999.]) m_chi2_svf = array('d', [999.]) m_ctau_svf = array('d', [999.]) m_L_svf = array('d', [999.]) m_Lerr_svf = array('d', [999.]) m_n_othershws = array('i', [0]) m_n_othertrks = array('i', [0]) m_charge_left = array('i', [0]) m_m_piplus0 = array('d', [999.]) m_m_piminus0 = array('d', [999.]) m_p_piplus0 = array('d', [999.]) m_p_piminus0 = array('d', [999.]) m_E_piplus0 = array('d', [999.]) m_E_piminus0 = array('d', [999.]) m_chi2_pi0 = array('d', [999.]) m_m_Dpi0 = array('d', [999.]) m_rm_Dpi0 = array('d', [999.]) m_m_Dmisspi0 = array('d', [999.]) m_rm_Dmisspi0 = array('d', [999.]) m_m_pi0 = array('d', [999.]) m_p_pi0 = array('d', [999.]) m_E_pi0 = array('d', [999.]) m_n_pi0 = array('i', [0]) if MODE == 'STDDmiss_signal': m_matched_D = array('i', [0]) m_matched_pi = array('i', [0]) m_matched_piplus = array('i', [0]) m_matched_piminus = array('i', [0]) m_indexmc = array('i', [0]) m_motheridx = array('i', 100 * [0]) m_pdgid = array('i', 100 * [0]) t.Branch('runNo', m_runNo, 'm_runNo/I') t.Branch('evtNo', m_evtNo, 'm_evtNo/I') t.Branch('mode', m_mode, 'm_mode/I') t.Branch('charm', m_charm, 'm_charm/I') t.Branch('rawm_D', m_rawm_D, 'm_rawm_D/D') t.Branch('m_Dold', m_m_Dold, 'm_m_Dold/D') t.Branch('rrawm_D', m_rrawm_D, 'm_rrawm_D/D') t.Branch('m_D', m_m_D, 'm_m_D/D') t.Branch('p_D', m_p_D, 'm_p_D/D') t.Branch('E_D', m_E_D, 'm_E_D/D') t.Branch('rm_D', m_rm_D, 'm_rm_D/D') t.Branch('rm_D_old', m_rm_D_old, 'm_rm_D_old/D') t.Branch('rm_Dmiss', m_rm_Dmiss, 'm_rm_Dmiss/D') t.Branch('rm_DDmisspip', m_rm_DDmisspip, 'm_rm_DDmisspip/D') t.Branch('rm_DDmisspim', m_rm_DDmisspim, 'm_rm_DDmisspim/D') t.Branch('rm_pipi', m_rm_pipi, 'm_rm_pipi/D') t.Branch('m_pipi', m_m_pipi, 'm_m_pipi/D') t.Branch('p_pipi', m_p_pipi, 'm_p_pipi/D') t.Branch('E_pipi', m_E_pipi, 'm_E_pipi/D') t.Branch('m_Dpi', m_m_Dpi, 'm_m_Dpi/D') t.Branch('m_DDmiss', m_m_DDmiss, 'm_m_DDmiss/D') t.Branch('rm_DDmiss', m_rm_DDmiss, 'm_rm_DDmiss/D') t.Branch('m_Dmisspi', m_m_Dmisspi, 'm_m_Dmisspi/D') t.Branch('rm_Dmisspi', m_rm_Dmisspi, 'm_rm_Dmisspi/D') t.Branch('rm_Dmisspipi', m_rm_Dmisspipi, 'm_rm_Dmisspipi/D') t.Branch('rm_Dpi', m_rm_Dpi, 'm_rm_Dpi/D') t.Branch('m_Dpip', m_m_Dpip, 'm_m_Dpip/D') t.Branch('m_Dpim', m_m_Dpim, 'm_m_Dpim/D') t.Branch('m2_Kpip', m_m2_Kpip, 'm_m2_Kpip/D') t.Branch('m_Kpip', m_m_Kpip, 'm_m_Kpip/D') t.Branch('rm_Kpip', m_rm_Kpip, 'm_rm_Kpip/D') t.Branch('m2_Kpim', m_m2_Kpim, 'm_m2_Kpim/D') t.Branch('m_Kpim', m_m_Kpim, 'm_m_Kpim/D') t.Branch('rm_Kpim', m_rm_Kpim, 'm_rm_Kpim/D') t.Branch('m_Dpipi', m_m_Dpipi, 'm_m_Dpipi/D') t.Branch('rm_Dpipi', m_rm_Dpipi, 'm_rm_Dpipi/D') t.Branch('m_Dmiss', m_m_Dmiss, 'm_m_Dmiss/D') t.Branch('chi2_vf', m_chi2_vf, 'm_chi2_vf/D') t.Branch('chi2_kf', m_chi2_kf, 'm_chi2_kf/D') t.Branch('chi2_svf', m_chi2_svf, 'm_chi2_svf/D') t.Branch('ctau_svf', m_ctau_svf, 'm_ctau_svf/D') t.Branch('L_svf', m_L_svf, 'm_L_svf/D') t.Branch('Lerr_svf', m_Lerr_svf, 'm_Lerr_svf/D') t.Branch('n_othertrks', m_n_othertrks, 'm_n_othertrks/I') t.Branch('n_othershws', m_n_othershws, 'm_n_othershws/I') t.Branch('charge_left', m_charge_left, 'm_charge_left/I') t.Branch('m_piplus0', m_m_piplus0, 'm_m_piplus0/D') t.Branch('m_piminus0', m_m_piminus0, 'm_m_piminus0/D') t.Branch('p_piplus0', m_p_piplus0, 'm_p_piplus0/D') t.Branch('p_piminus0', m_p_piminus0, 'm_p_piminus0/D') t.Branch('E_piplus0', m_E_piplus0, 'm_E_piplus0/D') t.Branch('E_piminus0', m_E_piminus0, 'm_E_piminus0/D') t.Branch('chi2_pi0', m_chi2_pi0, 'm_chi2_pi0/D') t.Branch('m_Dpi0', m_m_Dpi0, 'm_m_Dpi0/D') t.Branch('rm_Dpi0', m_rm_Dpi0, 'm_rm_Dpi0/D') t.Branch('m_Dmisspi0', m_m_Dmisspi0, 'm_m_Dmisspi0/D') t.Branch('rm_Dmisspi0', m_rm_Dmisspi0, 'm_rm_Dmisspi0/D') t.Branch('m_pi0', m_m_pi0, 'm_m_pi0/D') t.Branch('p_pi0', m_p_pi0, 'm_p_pi0/D') t.Branch('E_pi0', m_E_pi0, 'm_E_pi0/D') t.Branch('n_pi0', m_n_pi0, 'm_n_pi0/I') if MODE == 'STDDmiss_signal': t.Branch('matched_D', m_matched_D, 'm_matched_D/I') t.Branch('matched_pi', m_matched_pi, 'm_matched_pi/I') t.Branch('matched_piplus', m_matched_piplus, 'm_matched_piplus/I') t.Branch('matched_piminus', m_matched_piminus, 'm_matched_piminus/I') t.Branch('indexmc', m_indexmc, 'indexmc/I') t.Branch('motheridx', m_motheridx, 'motheridx[100]/I') t.Branch('pdgid', m_pdgid, 'pdgid[100]/I') t_in = f_in.Get('STDDmiss') nentries = t_in.GetEntries() for ientry in range(nentries): t_in.GetEntry(ientry) if t_in.mode != 200: continue pD_raw = TLorentzVector(0, 0, 0, 0) pD_old = TLorentzVector(0, 0, 0, 0) pD = TLorentzVector(0, 0, 0, 0) pKpip = TLorentzVector(0, 0, 0, 0) pKpim = TLorentzVector(0, 0, 0, 0) for iTrk in range(t_in.n_trkD): ptrack_raw = TLorentzVector(0, 0, 0, 0) ptrack_old = TLorentzVector(0, 0, 0, 0) ptrack_Kpip = TLorentzVector(0, 0, 0, 0) ptrack_Kpim = TLorentzVector(0, 0, 0, 0) ptrack = TLorentzVector(0, 0, 0, 0) ptrack_raw.SetPxPyPzE(t_in.rawp4_Dtrk[iTrk * 6 + 0], t_in.rawp4_Dtrk[iTrk * 6 + 1], t_in.rawp4_Dtrk[iTrk * 6 + 2], t_in.rawp4_Dtrk[iTrk * 6 + 3]) ptrack_old.SetPxPyPzE(t_in.p4_Dtrkold[iTrk * 4 + 0], t_in.p4_Dtrkold[iTrk * 4 + 1], t_in.p4_Dtrkold[iTrk * 4 + 2], t_in.p4_Dtrkold[iTrk * 4 + 3]) if MODE == 'STDDmiss_signal': ptrack.SetPxPyPzE(t_in.p4_Dtrk[iTrk * 4 + 0], t_in.p4_Dtrk[iTrk * 4 + 1], t_in.p4_Dtrk[iTrk * 4 + 2], t_in.p4_Dtrk[iTrk * 4 + 3]) if MODE == 'STDDmiss_sidebandlow': ptrack.SetPxPyPzE(t_in.p4_Dtrk_low[iTrk * 4 + 0], t_in.p4_Dtrk_low[iTrk * 4 + 1], t_in.p4_Dtrk_low[iTrk * 4 + 2], t_in.p4_Dtrk_low[iTrk * 4 + 3]) if MODE == 'STDDmiss_sidebandup': ptrack.SetPxPyPzE(t_in.p4_Dtrk_up[iTrk * 4 + 0], t_in.p4_Dtrk_up[iTrk * 4 + 1], t_in.p4_Dtrk_up[iTrk * 4 + 2], t_in.p4_Dtrk_up[iTrk * 4 + 3]) pD_raw += ptrack_raw pD_old += ptrack_old pD += ptrack if t_in.rawp4_Dtrk[iTrk * 6 + 5] == 3: ptrack_Kpip.SetPxPyPzE(t_in.rawp4_Dtrk[iTrk * 6 + 0], t_in.rawp4_Dtrk[iTrk * 6 + 1], t_in.rawp4_Dtrk[iTrk * 6 + 2], t_in.rawp4_Dtrk[iTrk * 6 + 3]) ptrack_Kpim.SetPxPyPzE(t_in.rawp4_Dtrk[iTrk * 6 + 0], t_in.rawp4_Dtrk[iTrk * 6 + 1], t_in.rawp4_Dtrk[iTrk * 6 + 2], t_in.rawp4_Dtrk[iTrk * 6 + 3]) pKpip += ptrack_Kpip pKpim += ptrack_Kpim if t_in.rawp4_Dtrk[iTrk * 6 + 4] == 1 and t_in.rawp4_Dtrk[iTrk * 6 + 5] == 2: ptrack_Kpip.SetPxPyPzE(t_in.rawp4_Dtrk[iTrk * 6 + 0], t_in.rawp4_Dtrk[iTrk * 6 + 1], t_in.rawp4_Dtrk[iTrk * 6 + 2], t_in.rawp4_Dtrk[iTrk * 6 + 3]) pKpip += ptrack_Kpip if t_in.rawp4_Dtrk[iTrk * 6 + 4] == -1 and t_in.rawp4_Dtrk[iTrk * 6 + 5] == 2: ptrack_Kpim.SetPxPyPzE(t_in.rawp4_Dtrk[iTrk * 6 + 0], t_in.rawp4_Dtrk[iTrk * 6 + 1], t_in.rawp4_Dtrk[iTrk * 6 + 2], t_in.rawp4_Dtrk[iTrk * 6 + 3]) pKpim += ptrack_Kpim for iShw in range(t_in.n_shwD): pshower_raw = TLorentzVector(0, 0, 0, 0) pshower_old = TLorentzVector(0, 0, 0, 0) pshower = TLorentzVector(0, 0, 0, 0) pshower_raw.SetPxPyPzE(t_in.rawp4_Dshw[iShw * 4 + 0], t_in.rawp4_Dshw[iShw * 4 + 1], t_in.rawp4_Dshw[iShw * 4 + 2], t_in.rawp4_Dshw[iShw * 4 + 3]) pshower_old.SetPxPyPzE(t_in.p4_Dshwold[iShw * 4 + 0], t_in.p4_Dshwold[iShw * 4 + 1], t_in.p4_Dshwold[iShw * 4 + 2], t_in.p4_Dshwold[iShw * 4 + 3]) if MODE == 'STDDmiss_signal': pshower.SetPxPyPzE(t_in.p4_Dshw[iShw * 4 + 0], t_in.p4_Dshw[iShw * 4 + 1], t_in.p4_Dshw[iShw * 4 + 2], t_in.p4_Dshw[iShw * 4 + 3]) if MODE == 'STDDmiss_sidebandlow': pshower.SetPxPyPzE(t_in.p4_Dshw_low[iShw * 4 + 0], t_in.p4_Dshw_low[iShw * 4 + 1], t_in.p4_Dshw_low[iShw * 4 + 2], t_in.p4_Dshw_low[iShw * 4 + 3]) if MODE == 'STDDmiss_sidebandup': pshower.SetPxPyPzE(t_in.p4_Dshw_up[iShw * 4 + 0], t_in.p4_Dshw_up[iShw * 4 + 1], t_in.p4_Dshw_up[iShw * 4 + 2], t_in.p4_Dshw_up[iShw * 4 + 3]) pD_raw += pshower_raw pD_old += pshower_old pD += pshower pPip = TLorentzVector(0, 0, 0, 0) pPim = TLorentzVector(0, 0, 0, 0) pDmiss = TLorentzVector(0, 0, 0, 0) rawpPip = TLorentzVector(0, 0, 0, 0) rawpPim = TLorentzVector(0, 0, 0, 0) pPi0 = TLorentzVector(0, 0, 0, 0) if MODE == 'STDDmiss_signal': pPip.SetPxPyPzE(t_in.p4_piplus[0], t_in.p4_piplus[1], t_in.p4_piplus[2], t_in.p4_piplus[3]) pPim.SetPxPyPzE(t_in.p4_piminus[0], t_in.p4_piminus[1], t_in.p4_piminus[2], t_in.p4_piminus[3]) pDmiss.SetPxPyPzE(t_in.p4_Dmiss[0], t_in.p4_Dmiss[1], t_in.p4_Dmiss[2], t_in.p4_Dmiss[3]) if MODE == 'STDDmiss_sidebandlow': pPip.SetPxPyPzE(t_in.p4_piplus_low[0], t_in.p4_piplus_low[1], t_in.p4_piplus_low[2], t_in.p4_piplus_low[3]) pPim.SetPxPyPzE(t_in.p4_piminus_low[0], t_in.p4_piminus_low[1], t_in.p4_piminus_low[2], t_in.p4_piminus_low[3]) pDmiss.SetPxPyPzE(t_in.p4_Dmiss_low[0], t_in.p4_Dmiss_low[1], t_in.p4_Dmiss_low[2], t_in.p4_Dmiss_low[3]) if MODE == 'STDDmiss_sidebandup': pPip.SetPxPyPzE(t_in.p4_piplus_up[0], t_in.p4_piplus_up[1], t_in.p4_piplus_up[2], t_in.p4_piplus_up[3]) pPim.SetPxPyPzE(t_in.p4_piminus_up[0], t_in.p4_piminus_up[1], t_in.p4_piminus_up[2], t_in.p4_piminus_up[3]) pDmiss.SetPxPyPzE(t_in.p4_Dmiss_up[0], t_in.p4_Dmiss_up[1], t_in.p4_Dmiss_up[2], t_in.p4_Dmiss_up[3]) rawpPip.SetPxPyPzE(t_in.rawp4_tagPiplus[0], t_in.rawp4_tagPiplus[1], t_in.rawp4_tagPiplus[2], t_in.rawp4_tagPiplus[3]) rawpPim.SetPxPyPzE(t_in.rawp4_tagPiminus[0], t_in.rawp4_tagPiminus[1], t_in.rawp4_tagPiminus[2], t_in.rawp4_tagPiminus[3]) pPi0.SetPxPyPzE(t_in.p4_pi0_save[0], t_in.p4_pi0_save[1], t_in.p4_pi0_save[2], t_in.p4_pi0_save[3]) m_runNo[0] = t_in.runNo m_evtNo[0] = t_in.evtNo m_mode[0] = t_in.mode m_charm[0] = t_in.charm m_rawm_D[0] = pD_raw.M() m_m_Dold[0] = pD_old.M() m_rrawm_D[0] = (cms - pD_raw).M() m_m_D[0] = pD.M() m_p_D[0] = pD.P() m_E_D[0] = pD.E() m_rm_D[0] = (cms - pD).M() m_rm_D_old[0] = (cms - pD_old).M() m_rm_Dmiss[0] = (cms - pDmiss).M() m_rm_pipi[0] = (cms - pPip - pPim).M() m_m_pipi[0] = (pPip + pPim).M() m_p_pipi[0] = (rawpPip + rawpPim).P() m_E_pipi[0] = (rawpPip + rawpPim).E() m_m_Dpim[0] = (pD + pPim).M() m_m_Dpip[0] = (pD + pPip).M() if t_in.charm > 0: m_m_Dmisspi[0] = (pDmiss + pPip).M() m_rm_Dmisspi[0] = (cms - pDmiss - pPip).M() m_m_Dpi[0] = (pD_old + rawpPim).M() m_rm_Dpi[0] = (cms - pD_old - rawpPim).M() elif t_in.charm < 0: m_m_Dmisspi[0] = (pDmiss + pPim).M() m_rm_Dmisspi[0] = (cms - pDmiss - pPim).M() m_m_Dpi[0] = (pD_old + rawpPip).M() m_rm_Dpi[0] = (cms - pD_old - rawpPip).M() m_m_DDmiss[0] = (pDmiss + pD).M() m_rm_DDmiss[0] = (cms - pDmiss).M() + (cms - pD).M() m_rm_DDmisspip[0] = (cms - pDmiss - pD - pPip).M() m_rm_DDmisspim[0] = (cms - pDmiss - pD - pPim).M() m_rm_Dmisspipi[0] = (cms - pDmiss - pPip - pPim).M() m_m2_Kpip[0] = pKpip.M2() m_m_Kpip[0] = pKpip.M() m_rm_Kpip[0] = (cms - pKpip).M() m_m2_Kpim[0] = pKpim.M2() m_m_Kpim[0] = pKpim.M() m_rm_Kpim[0] = (cms - pKpim).M() m_m_Dpipi[0] = (pD + pPip + pPim).M() m_rm_Dpipi[0] = t_in.rm_Dpipi m_m_Dmiss[0] = pDmiss.M() m_chi2_vf[0] = t_in.chi2_vf if MODE == 'STDDmiss_signal': m_chi2_kf[0] = t_in.chi2_kf if MODE == 'STDDmiss_sidebandlow': m_chi2_kf[0] = t_in.chi2_kf_low if MODE == 'STDDmiss_sidebandup': m_chi2_kf[0] = t_in.chi2_kf_up m_chi2_svf[0] = t_in.chi2_svf m_ctau_svf[0] = t_in.ctau_svf m_L_svf[0] = t_in.L_svf m_Lerr_svf[0] = t_in.Lerr_svf m_n_othershws[0] = t_in.n_othershws m_n_othertrks[0] = t_in.n_othertrks m_charge_left[0] = t_in.charge_left m_m_piplus0[0] = rawpPip.M() m_m_piminus0[0] = rawpPim.M() m_p_piplus0[0] = rawpPip.P() m_p_piminus0[0] = rawpPim.P() m_E_piplus0[0] = rawpPip.E() m_E_piminus0[0] = rawpPim.E() m_chi2_pi0[0] = t_in.chi2_pi0_save m_Dpi0 = pD.M() rm_Dpi0 = (cms - pD).M() if pPi0.M() > 0: m_Dpi0 = (pD + pPi0).M() rm_Dpi0 = (cms - pD - pPi0).M() deltaM = 999. m_Dmisspi0 = pDmiss.M() rm_Dmisspi0 = (cms - pDmiss).M() for iPi0 in range(t_in.n_pi0): ppi0 = TLorentzVector(0, 0, 0, 0) ppi0.SetPxPyPzE(t_in.p4_pi0[iPi0 * 4 + 0], t_in.p4_pi0[iPi0 * 4 + 1], t_in.p4_pi0[iPi0 * 4 + 2], t_in.p4_pi0[iPi0 * 4 + 3]) if (fabs((pDmiss + ppi0).M() - 2.000685) < deltaM): deltaM = fabs((pDmiss + ppi0).M() - 2.01026) m_Dmisspi0 = (pDmiss + ppi0).M() rm_Dmisspi0 = (cms - pDmiss - ppi0).M() m_m_Dmisspi0[0] = m_Dmisspi0 m_rm_Dmisspi0[0] = rm_Dmisspi0 m_m_Dpi0[0] = m_Dpi0 m_rm_Dpi0[0] = rm_Dpi0 m_m_pi0[0] = pPi0.M() m_p_pi0[0] = pPi0.P() m_E_pi0[0] = pPi0.E() m_n_pi0[0] = t_in.n_pi0 if MODE == 'STDDmiss_signal': m_matched_D[0] = t_in.matched_D m_matched_pi[0] = t_in.matched_pi m_matched_piplus[0] = t_in.matched_piplus m_matched_piminus[0] = t_in.matched_piminus m_indexmc[0] = t_in.indexmc for i in range(t_in.indexmc): m_motheridx[i] = t_in.motheridx[i] m_pdgid[i] = t_in.pdgid[i] t.Fill()