void GlobalRecoTTbarPlugin::CalculateVariables(Jet const &bTopLep, Jet const &bTopHad, Jet const &q1TopHad, Jet const &q2TopHad) { // Calculate variables related to the top quark decaying semileptonically auto const &lepton = (*reader)->GetLeptons().front(); Candidate const wLep(lepton.P4() + (*reader)->GetNeutrino().P4()); Candidate const topLep(wLep.P4() + bTopLep.P4()); //bfMass_TopLep = topLep.M(); LogPt_TopLep = log(topLep.Pt()); //bfEta_TopLep = topLep.Eta(); //bfPt_BTopLep = bTopLep.Pt(); //bfEta_BTopLep = bTopLep.Eta(); //PassBTag_BTopLep = 0 + bTagger->IsTagged(bTopLep); //bfCharge_BTopLep = bTopLep.Charge() * lepton.Charge(); LogMass_BTopLepLep = log((bTopLep.P4() + lepton.P4()).M()); DeltaR_BTopLepWLep = bTopLep.P4().DeltaR(wLep.P4()); //bfDEta_TopLepLep = fabs(topLep.Eta() - lepton.Eta()); // Calculate the cosine // TVector3 b((wLep.P4()).BoostVector()); // TLorentzVector boostedLepton(lepton.P4()); // boostedLepton.Boost(-b); // TVector3 p3Lepton(boostedLepton.Vect()); // TLorentzVector boostedBJet(bTopLep.P4()); // boostedBJet.Boost(-b); // TVector3 const p3BJet(boostedBJet.Vect()); // bfCos_LepBTopLep_WLep = p3Lepton.Dot(p3BJet) / (p3Lepton.Mag() * p3BJet.Mag()); // Calculate variables related to the top quark decaying semileptonically Candidate const wHad(q1TopHad.P4() + q2TopHad.P4()); Candidate const topHad(wHad.P4() + bTopHad.P4()); //bfMass_TopHad = topHad.M(); LogPt_TopHad = log(topHad.Pt()); AbsEta_TopHad = fabs(topHad.Eta()); LogMass_WHad = log(wHad.M()); //bfPt_WHad = wHad.Pt(); //bfEta_WHad= wHad.Eta(); DeltaR_BTopHadWHad = bTopHad.P4().DeltaR(wHad.P4()); //bfPt_BTopHad = bTopHad.Pt(); //bfEta_BTopHad = bTopHad.Eta(); //PassBTag_BTopHad = 0 + bTagger->IsTagged(bTopHad); //bfCharge_BTopHad = bTopHad.Charge() * lepton.Charge(); //bfMinPt_Light = min(fabs(q1TopHad.Pt()), fabs(q2TopHad.Pt())); //bfMaxEta_Light = max(fabs(q1TopHad.Eta()), fabs(q2TopHad.Eta())); SumCharge_Light = (q1TopHad.Charge() + q2TopHad.Charge()) * lepton.Charge(); NumBTag_Light = 0 + bTagger->IsTagged(q1TopHad) + bTagger->IsTagged(q2TopHad); DeltaR_Light = q1TopHad.P4().DeltaR(q2TopHad.P4()); // bfMaxMass_BTopHadLight = // max((bTopHad.P4() + q1TopHad.P4()).M(), (bTopHad.P4() + q2TopHad.P4()).M()); LogDMass_TopHadWHad = log(topHad.M() - wHad.M()); // Calcualate variables with correlations between different objects double Ht = lepton.Pt() + (*reader)->GetMET().Pt(); for (auto const &j: (*reader)->GetJets()) Ht += j.Pt(); RelHt = (topLep.Pt() + topHad.Pt()) / Ht; //bfMass_TopLepTopHad = (topLep.P4() + topHad.P4()).M(); //bfPt_TopLepTopHad = (topLep.P4() + topHad.P4()).Pt(); //bfEta_TopLepTopHad = (topLep.P4() + topHad.P4()).Eta(); //bfDeltaR_TopLepTopHad = topLep.P4().DeltaR(topHad.P4()); DCharge_BTopHadBTopLep = (bTopHad.Charge() - bTopLep.Charge()) * lepton.Charge(); }