本文整理汇总了C++中TLorentzVector::SetXYZT方法的典型用法代码示例。如果您正苦于以下问题:C++ TLorentzVector::SetXYZT方法的具体用法?C++ TLorentzVector::SetXYZT怎么用?C++ TLorentzVector::SetXYZT使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TLorentzVector
的用法示例。
在下文中一共展示了TLorentzVector::SetXYZT方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: test_JVBF
//.........这里部分代码省略.........
myJetMass.clear();
myJetCosTheta.clear();
TLorentzVector jet1(0, 0, 1e-3, 1e-3), jet2(0, 0, 1e-3, 1e-3), higgs(0, 0, 0, 0);
TLorentzVector p4[3], jets[2];
higgs.SetPtEtaPhiM(ZZPt, ZZEta, ZZPhi, ZZMass);
for (int i = 0; i < NJets30; i++){
myJetPt.push_back(JetPt->at(i));
myJetEta.push_back(JetEta->at(i));
myJetPhi.push_back(JetPhi->at(i));
myJetMass.push_back(JetMass->at(i));
myJetCosTheta.push_back(eta_to_costheta(JetEta->at(i)));
}
int filled = 0;
if (myJetPt.size()>=1){
jets[0].SetPxPyPzE(0, 0, 0, 1);
jets[1].SetPxPyPzE(0, 0, 0, 1);
for (int i = 0; i < myJetPt.size(); i++){
jets[filled].SetPtEtaPhiM(myJetPt[i], myJetEta[i], myJetPhi[i], myJetMass[i]);
if (filled==0){
double jetE = jets[filled].Energy();
double jetP = jets[filled].P();
double ratio = (jetP>0 ? jetE/jetP : 1);
ratio = 1.;
jet1.SetPxPyPzE(jets[filled].Px()*ratio, jets[filled].Py()*ratio, jets[filled].Pz()*ratio, jetE);
filled++;
jet1Pt = jet1.Pt();
jet1Eta = jet1.Eta();
jet1Phi = jet1.Phi();
jet1E = jet1.E();
jet2.SetXYZT(0, 0, 0, 0);
}
else if(filled==1){
double jetE = jets[filled].Energy();
double jetP = jets[filled].P();
double ratio = (jetP>0 ? jetE/jetP : 1);
ratio = 1.;
jet2.SetXYZT(jets[filled].Px()*ratio, jets[filled].Py()*ratio, jets[filled].Pz()*ratio, jetE);
filled++;
jet2Pt = jet2.Pt();
jet2Eta = jet2.Eta();
jet2Phi = jet2.Phi();
jet2E = jet2.E();
}
else continue;
/*
if (filled == 0){
if (jets[filled].Pt()>jet1.Pt()){
jet1.SetPxPyPzE(jets[filled].Px(), jets[filled].Py(), jets[filled].Pz(), jetE);
jet1Pt = jet1.Pt();
}
if (i == myJetPt.size() - 1){
filled++;
i = 0;
}
}
else{
if (jets[filled].Pt()<jet1.Pt() && jets[filled].Pt()>jet2.Pt()){
jet2.SetPxPyPzE(jets[filled].Px(), jets[filled].Py(), jets[filled].Pz(), jetE);
jet2Pt = jet2.Pt();
}
if (i == myJetPt.size() - 1){
示例2: main
//.........这里部分代码省略.........
// filling tau variables
pt_2 = analysisTree.tau_pt[tauIndex];
eta_2 = analysisTree.tau_eta[tauIndex];
phi_2 = analysisTree.tau_phi[tauIndex];
q_2 = -1;
if (analysisTree.tau_charge[tauIndex]>0)
q_2 = 1;
mva_2 = -9999;
d0_2 = analysisTree.tau_leadchargedhadrcand_dxy[tauIndex];
dZ_2 = analysisTree.tau_leadchargedhadrcand_dz[tauIndex];
iso_2 = isoTauMin;
m_2 = analysisTree.tau_mass[tauIndex];
float dPhiMETTau = dPhiFrom2P(analysisTree.tau_px[tauIndex],analysisTree.tau_py[tauIndex],
analysisTree.pfmet_ex,analysisTree.pfmet_ey);
mt_2 = TMath::Sqrt(2*met*analysisTree.tau_pt[tauIndex]*(1-TMath::Cos(dPhiMETTau)));
byCombinedIsolationDeltaBetaCorrRaw3Hits_2 = analysisTree.tau_byCombinedIsolationDeltaBetaCorrRaw3Hits[tauIndex];
againstElectronLooseMVA5_2 = analysisTree.tau_againstElectronLooseMVA5[tauIndex];
againstElectronMediumMVA5_2 = analysisTree.tau_againstElectronMediumMVA5[tauIndex];
againstElectronTightMVA5_2 = analysisTree.tau_againstElectronTightMVA5[tauIndex];
againstElectronVLooseMVA5_2 = analysisTree.tau_againstElectronVLooseMVA5[tauIndex];
againstElectronVTightMVA5_2 = analysisTree.tau_againstElectronVTightMVA5[tauIndex];
againstMuonLoose3_2 = analysisTree.tau_againstMuonLoose3[tauIndex];
againstMuonTight3_2 = analysisTree.tau_againstMuonTight3[tauIndex];
TLorentzVector muonLV; muonLV.SetXYZM(analysisTree.muon_px[muonIndex],
analysisTree.muon_py[muonIndex],
analysisTree.muon_pz[muonIndex],
muonMass);
TLorentzVector tauLV; tauLV.SetXYZT(analysisTree.tau_px[tauIndex],
analysisTree.tau_py[tauIndex],
analysisTree.tau_pz[tauIndex],
analysisTree.tau_e[tauIndex]);
TLorentzVector metLV; metLV.SetXYZT(analysisTree.pfmet_ex,
analysisTree.pfmet_ey,
0,
TMath::Sqrt(analysisTree.pfmet_ex*analysisTree.pfmet_ex + analysisTree.pfmet_ey*analysisTree.pfmet_ey));
TLorentzVector dileptonLV = muonLV + tauLV;
// visible mass
m_vis = dileptonLV.M();
// visible ditau pt
pt_tt = (dileptonLV+metLV).Pt();
// bisector of electron and muon transverse momenta
float tauUnitX = tauLV.Px()/tauLV.Pt();
float tauUnitY = tauLV.Py()/tauLV.Pt();
float muonUnitX = muonLV.Px()/muonLV.Pt();
float muonUnitY = muonLV.Py()/muonLV.Pt();
float zetaX = tauUnitX + muonUnitX;
float zetaY = tauUnitY + muonUnitY;
float normZeta = TMath::Sqrt(zetaX*zetaX+zetaY*zetaY);
zetaX = zetaX/normZeta;
zetaY = zetaY/normZeta;
// choosing mva met