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