Exemple #1
0
def DoMassRecoBoost(ak4Jets, higgsJet, higgsSoftDropMass, leptonP4, nuP4,
                    higgsMass, topMass, chi2_dR1, chi2_dR2, chi2_higgs1,
                    chi2_higgs2, chi2_top1, chi2_top2):
    ak4JetsP4 = [
        TLorentzVector(0.0, 0.0, 0.0, 0.0),
        TLorentzVector(0.0, 0.0, 0.0, 0.0)
    ]
    chi2 = 100000.0
    dR = 100000.0
    minChi2 = 100000.0
    topP4 = TLorentzVector(0.0, 0.0, 0.0, 0.0)
    higgsP4 = TLorentzVector(0.0, 0.0, 0.0, 0.0)
    indexnum = 2

    if len(higgsJet) > 0 and len(ak4Jets) > 0:
        if len(ak4Jets) >= indexnum and len(higgsJet) >= indexnum:
            for i in range(0, indexnum):
                for j in range(0, indexnum):
                    jetsP4PassToChi2 = []
                    higgsjetsP4PassToChi2 = []

                    if len(jetsP4PassToChi2) != 0:
                        jetsP4PassToChi2.clear()
                    if len(higgsjetsP4PassToChi2) != 0:
                        higgsjetsP4PassToChi2.clear()
                    topP4.Clear()
                    higgsP4.Clear()
                    ak4JetsP4 = []
                    higgsJetsP4 = []

                    jetsP4PassToChi2.append(ak4Jets[i])

                    higgsjetsP4PassToChi2.append(higgsJet[j])

                    chi2, dR, topP4, higgsP4 = GetChi2Boosted(
                        jetsP4PassToChi2, higgsjetsP4PassToChi2,
                        higgsSoftDropMass, leptonP4, nuP4, topMass, higgsMass,
                        topP4, higgsP4, dR)

                    if (chi2 < minChi2):
                        minChi2 = chi2

                        chi2_higgs1 = minChi2
                        chi2_higgs2 = higgsP4

                        chi2_top1 = minChi2
                        chi2_top2 = topP4

                        chi2_dR1 = minChi2
                        chi2_dR2 = dR
        elif len(ak4Jets) < indexnum and len(higgsJet) >= indexnum:
            for i in range(0, len(ak4Jets)):
                for j in range(0, indexnum):
                    jetsP4PassToChi2 = []
                    higgsjetsP4PassToChi2 = []

                    if len(jetsP4PassToChi2) != 0:
                        jetsP4PassToChi2.clear()
                    if len(higgsjetsP4PassToChi2) != 0:
                        higgsjetsP4PassToChi2.clear()
                    topP4.Clear()
                    higgsP4.Clear()
                    ak4JetsP4 = []
                    higgsJetsP4 = []

                    jetsP4PassToChi2.append(ak4Jets[i])

                    higgsjetsP4PassToChi2.append(higgsJet[j])

                    chi2, dR, topP4, higgsP4 = GetChi2Boosted(
                        jetsP4PassToChi2, higgsjetsP4PassToChi2,
                        higgsSoftDropMass, leptonP4, nuP4, topMass, higgsMass,
                        topP4, higgsP4, dR)

                    if (chi2 < minChi2):
                        minChi2 = chi2

                        chi2_higgs1 = minChi2
                        chi2_higgs2 = higgsP4

                        chi2_top1 = minChi2
                        chi2_top2 = topP4

                        chi2_dR1 = minChi2
                        chi2_dR2 = dR
        elif len(ak4Jets) >= indexnum and len(higgsJet) < indexnum:
            for i in range(0, indexnum):
                for j in range(0, len(higgsJet)):
                    jetsP4PassToChi2 = []
                    higgsjetsP4PassToChi2 = []

                    if len(jetsP4PassToChi2) != 0:
                        jetsP4PassToChi2.clear()
                    if len(higgsjetsP4PassToChi2) != 0:
                        higgsjetsP4PassToChi2.clear()
                    topP4.Clear()
                    higgsP4.Clear()
                    ak4JetsP4 = []
                    higgsJetsP4 = []

                    jetsP4PassToChi2.append(ak4Jets[i])

                    higgsjetsP4PassToChi2.append(higgsJet[j])

                    chi2, dR, topP4, higgsP4 = GetChi2Boosted(
                        jetsP4PassToChi2, higgsjetsP4PassToChi2,
                        higgsSoftDropMass, leptonP4, nuP4, topMass, higgsMass,
                        topP4, higgsP4, dR)

                    if (chi2 < minChi2):
                        minChi2 = chi2

                        chi2_higgs1 = minChi2
                        chi2_higgs2 = higgsP4

                        chi2_top1 = minChi2
                        chi2_top2 = topP4

                        chi2_dR1 = minChi2
                        chi2_dR2 = dR
        elif len(ak4Jets) < indexnum and len(higgsJet) < indexnum:
            for i in range(0, len(ak4Jets)):
                for j in range(0, len(higgsJet)):
                    jetsP4PassToChi2 = []
                    higgsjetsP4PassToChi2 = []

                    if len(jetsP4PassToChi2) != 0:
                        jetsP4PassToChi2.clear()
                    if len(higgsjetsP4PassToChi2) != 0:
                        higgsjetsP4PassToChi2.clear()
                    topP4.Clear()
                    higgsP4.Clear()
                    ak4JetsP4 = []
                    higgsJetsP4 = []

                    jetsP4PassToChi2.append(ak4Jets[i])

                    higgsjetsP4PassToChi2.append(higgsJet[j])

                    chi2, dR, topP4, higgsP4 = GetChi2Boosted(
                        jetsP4PassToChi2, higgsjetsP4PassToChi2,
                        higgsSoftDropMass, leptonP4, nuP4, topMass, higgsMass,
                        topP4, higgsP4, dR)

                    if (chi2 < minChi2):
                        minChi2 = chi2

                        chi2_higgs1 = minChi2
                        chi2_higgs2 = higgsP4

                        chi2_top1 = minChi2
                        chi2_top2 = topP4

                        chi2_dR1 = minChi2
                        chi2_dR2 = dR

    return chi2_higgs1, chi2_higgs2, chi2_top2, chi2_dR2