16 const char *BtagAlgo =
"trackCountingJetTags";
21 if(DEBUG)
std::cout<<
"---------- Start calculating the LR observables ----------"<<std::endl;
24 std::vector<pat::Jet> TopJets;
27 for(
unsigned int i = 0 ;
i<SelectedTopJets.size() ;
i++)
29 TopJets.push_back(SelectedTopJets[
i]);
35 TLorentzVector * Hadp =
new TLorentzVector();
36 Hadp->SetPxPyPzE(TopJets[3].px(),TopJets[3].py(),TopJets[3].pz(),TopJets[3].
energy());
38 TLorentzVector * Hadq =
new TLorentzVector();
39 Hadq->SetPxPyPzE(TopJets[2].px(),TopJets[2].py(),TopJets[2].pz(),TopJets[2].
energy());
41 TLorentzVector * Hadb =
new TLorentzVector();
42 Hadb->SetPxPyPzE(TopJets[1].px(),TopJets[1].py(),TopJets[1].pz(),TopJets[1].
energy());
44 TLorentzVector * Lepb =
new TLorentzVector();
45 Lepb->SetPxPyPzE(TopJets[0].px(),TopJets[0].py(),TopJets[0].pz(),TopJets[0].
energy());
47 TLorentzVector * Lept =
new TLorentzVector();
51 TLorentzVector *Lepn =
new TLorentzVector();
65 double Obs1 = Lept->Pt();
67 if(DEBUG)
std::cout<<
"------ LR observable 1 "<<Obs1<<
" calculated ------"<<std::endl;
73 if(DEBUG)
std::cout<<
"------ LR observable 2 "<<Obs2<<
" calculated ------"<<std::endl;
78 for(
unsigned int i=0;
i<4;
i++)
80 HT += TopJets[
i].et();
85 if(DEBUG)
std::cout<<
"------ LR observable 3 "<<Obs3<<
" calculated ------"<<std::endl;
89 double EtSum = TopJets[2].et()+TopJets[3].et();
92 if(DEBUG)
std::cout<<
"------ LR observable 4 "<<Obs4<<
" calculated ------"<<std::endl;
96 double Obs5 = EtSum/HT;
98 if(DEBUG)
std::cout<<
"------ LR observable 5 "<<Obs5<<
" calculated ------"<<std::endl;
102 double Obs6 = (HT-EtSum)/HT;
104 if(DEBUG)
std::cout<<
"------ LR observable 6 "<<Obs6<<
" calculated ------"<<std::endl;
108 TLorentzVector TtbarSystem = (*Hadp)+(*Hadq)+(*Hadb)+(*Lepb)+(*Lept)+(*Lepn);
109 double MT = TtbarSystem.Mt();
112 if(DEBUG)
std::cout<<
"------ LR observable 7 "<<Obs7<<
" calculated ------"<<std::endl;
125 double BGap = TopJets[1].bDiscriminator(BtagAlgo) - TopJets[2].bDiscriminator(BtagAlgo);
128 double BjetsBdiscSum = TopJets[0].bDiscriminator(BtagAlgo) + TopJets[1].bDiscriminator(BtagAlgo);
129 double LjetsBdiscSum = TopJets[2].bDiscriminator(BtagAlgo) + TopJets[3].bDiscriminator(BtagAlgo);
131 Obs8 = (TopJets[2].bDiscriminator(BtagAlgo) > -10 ?
log(BGap) : -5);
132 if(DEBUG)
std::cout<<
"------ LR observable 8 "<<Obs8<<
" calculated ------"<<std::endl;
133 Obs9 = (BjetsBdiscSum*BGap);
134 if(DEBUG)
std::cout<<
"------ LR observable 9 "<<Obs9<<
" calculated ------"<<std::endl;
135 Obs10 = (BjetsBdiscSum/LjetsBdiscSum);
136 if(DEBUG)
std::cout<<
"------ LR observable 10 "<<Obs10<<
" calculated ------"<<std::endl;
138 Obs11 = 0.707*((BjetsBdiscSum+LjetsBdiscSum)/2 +10);
139 if(DEBUG)
std::cout<<
"------ LR observable 11 "<<Obs11<<
" calculated ------"<<std::endl;
152 double N=0,
D=0,C_tmp=0,
C=10000;
153 double N_NoNu=0,D_NoNu=0,C_NoNu_tmp=0,C_NoNu=10000;
158 for(
unsigned int i=0;
i<4;
i++)
160 D += fabs(TopJets[
i].pt());
163 D += fabs(Lept->Pt());
165 D += fabs(Lepn->Pt());
171 for(
unsigned int i=0;
i<720;
i++)
179 for(
unsigned int i=0;
i<4;
i++)
181 N += fabs(TopJets[
i].px()*nx+TopJets[
i].py()*ny+TopJets[
i].pz()*nz);
184 N += fabs(Lept->Px()*nx+Lept->Py()*ny+Lept->Pz()*nz);
186 N += fabs(Lepn->Px()*nx+Lepn->Py()*ny+Lepn->Pz()*nz);
191 C_NoNu_tmp = 2*N_NoNu/D_NoNu;
193 if(C_tmp<
C)
C = C_tmp;
196 if(C_NoNu_tmp<C_NoNu) C_NoNu = C_NoNu_tmp;
200 double Obs12 = (
C!=10000 ?
C : 0);
202 if(DEBUG)
std::cout<<
"------ LR observable 12 "<<Obs12<<
" calculated ------"<<std::endl;
206 double Obs13 = ( C_NoNu != 10000 ? C_NoNu : 0);
208 if(DEBUG)
std::cout<<
"------ LR observable 13 "<<Obs13<<
" calculated ------"<<std::endl;
213 for(
unsigned int i=0;
i<4;
i++)
215 H += TopJets[
i].energy();
220 if(DEBUG)
std::cout<<
"------ LR observable 14 "<<Obs14<<
" calculated ------"<<std::endl;
230 double P2 = PX2+PY2+PZ2;
232 double PXY = Hadp->Px()*Hadp->Py()+Hadq->Px()*Hadq->Py()+Hadb->Px()*Hadb->Py()+Lepb->Px()*Lepb->Py()+Lept->Px()*Lept->Py()+Lepn->Px()*Lepn->Py();
233 double PXZ = Hadp->Px()*Hadp->Pz()+Hadq->Px()*Hadq->Pz()+Hadb->Px()*Hadb->Pz()+Lepb->Px()*Lepb->Pz()+Lept->Px()*Lept->Pz()+Lepn->Px()*Lepn->Pz();
234 double PYZ = Hadp->Py()*Hadp->Pz()+Hadq->Py()*Hadq->Pz()+Hadb->Py()*Hadb->Pz()+Lepb->Py()*Lepb->Pz()+Lept->Py()*Lept->Pz()+Lepn->Py()*Lepn->Pz();
240 TMatrixDSymEigen pTensor(
Matrix);
242 std::vector<double> EigValues;
246 EigValues.push_back(pTensor.GetEigenValues()[
i]);
251 double Sphericity = 1.5*(EigValues[1]+EigValues[2]);
252 double Aplanarity = 1.5*EigValues[2];
254 double Obs15 = (
isnan(Sphericity) ? 0 : Sphericity);
256 if(DEBUG)
std::cout<<
"------ LR observable 15 "<<Obs15<<
" calculated ------"<<std::endl;
258 double Obs16 = (
isnan(Aplanarity) ? 0 : Aplanarity);
260 if(DEBUG)
std::cout<<
"------ LR observable 16 "<<Obs16<<
" calculated ------"<<std::endl;
265 TVector3 BoostBackToCM = -(TtbarSystem.BoostVector());
266 Hadp->Boost(BoostBackToCM);
267 Hadq->Boost(BoostBackToCM);
268 Hadb->Boost(BoostBackToCM);
269 Lepb->Boost(BoostBackToCM);
270 Lept->Boost(BoostBackToCM);
271 Lepn->Boost(BoostBackToCM);
278 double BOOST_P2 = BOOST_PX2+BOOST_PY2+BOOST_PZ2;
280 double BOOST_PXY = Hadp->Px()*Hadp->Py()+Hadq->Px()*Hadq->Py()+Hadb->Px()*Hadb->Py()+Lepb->Px()*Lepb->Py()+Lept->Px()*Lept->Py()+Lepn->Px()*Lepn->Py();
281 double BOOST_PXZ = Hadp->Px()*Hadp->Pz()+Hadq->Px()*Hadq->Pz()+Hadb->Px()*Hadb->Pz()+Lepb->Px()*Lepb->Pz()+Lept->Px()*Lept->Pz()+Lepn->Px()*Lepn->Pz();
282 double BOOST_PYZ = Hadp->Py()*Hadp->Pz()+Hadq->Py()*Hadq->Pz()+Hadb->Py()*Hadb->Pz()+Lepb->Py()*Lepb->Pz()+Lept->Py()*Lept->Pz()+Lepn->Py()*Lepn->Pz();
284 TMatrixDSym BOOST_Matrix(3);
286 BOOST_Matrix(0,0) = BOOST_PX2/BOOST_P2; BOOST_Matrix(0,1) = BOOST_PXY/BOOST_P2; BOOST_Matrix(0,2) = BOOST_PXZ/BOOST_P2;
287 BOOST_Matrix(1,0) = BOOST_PXY/BOOST_P2; BOOST_Matrix(1,1) = BOOST_PY2/BOOST_P2; BOOST_Matrix(1,2) = BOOST_PYZ/BOOST_P2;
288 BOOST_Matrix(2,0) = BOOST_PXZ/BOOST_P2; BOOST_Matrix(2,1) = BOOST_PYZ/BOOST_P2; BOOST_Matrix(2,2) = BOOST_PZ2/BOOST_P2;
290 TMatrixDSymEigen BOOST_pTensor(BOOST_Matrix);
292 std::vector<double> BOOST_EigValues;
293 BOOST_EigValues.clear();
296 BOOST_EigValues.push_back(BOOST_pTensor.GetEigenValues()[
i]);
301 double BOOST_Sphericity = 1.5*(BOOST_EigValues[1]+BOOST_EigValues[2]);
302 double BOOST_Aplanarity = 1.5*BOOST_EigValues[2];
304 double Obs17 = (
isnan(BOOST_Sphericity) ? 0 : BOOST_Sphericity );
306 if(DEBUG)
std::cout<<
"------ LR observable 17 "<<Obs17<<
" calculated ------"<<std::endl;
308 double Obs18 = (
isnan(BOOST_Aplanarity) ? 0 : BOOST_Aplanarity );
310 if(DEBUG)
std::cout<<
"------ LR observable 18 "<<Obs18<<
" calculated ------"<<std::endl;
314 double Obs19 = (TopJets.size() > 4) ? TopJets[4].et()/HT : 1.0;
316 if(DEBUG)
std::cout<<
"------ LR observable 19 "<<Obs19<<
" calculated ------"<<std::endl;
320 double HT_alljets = 0;
321 double H_alljets = 0;
322 for(
unsigned int i=0;
i<TopJets.size();
i++)
324 HT_alljets += TopJets[
i].et();
325 H_alljets += TopJets[
i].energy();
327 double Obs20 = HT_alljets;
329 if(DEBUG)
std::cout<<
"------ LR observable 20 "<<Obs20<<
" calculated ------"<<std::endl;
333 double HT3_alljets = 0;
334 for(
unsigned int i=2;
i<TopJets.size();
i++)
336 HT3_alljets += TopJets[
i].et();
338 double Obs21 = HT3_alljets;
340 if(DEBUG)
std::cout<<
"------ LR observable 21 "<<Obs21<<
" calculated ------"<<std::endl;
344 double ET0 = TopJets[0].et()/HT_alljets;
347 if(DEBUG)
std::cout<<
"------ LR observable 22 "<<Obs22<<
" calculated ------"<<std::endl;
351 double Obs23 = ( (H_alljets>0) ? HT_alljets/H_alljets : 0);
353 if(DEBUG)
std::cout<<
"------ LR observable 23 "<<Obs23<<
" calculated ------"<<std::endl;
357 double FW_momentum_0=0, FW_momentum_1=0, FW_momentum_2=0, FW_momentum_3=0, FW_momentum_4=0, FW_momentum_5=0, FW_momentum_6=0;
359 for(
unsigned int i=0;
i<TopJets.size();
i++)
361 for(
unsigned int j=0;
j<TopJets.size();
j++)
363 double ET_ij_over_ETSum2= TopJets[
i].et()*TopJets[
j].et()/(
std::pow(HT_alljets,2));
364 double cosTheta_ij = (TopJets[
i].px()*TopJets[
j].px()+
365 TopJets[
i].py()*TopJets[
j].py()+
366 TopJets[
i].pz()*TopJets[
j].pz())
367 /(TopJets[
i].
p4().R()*TopJets[
j].p4().R());
368 FW_momentum_0 += ET_ij_over_ETSum2;
369 FW_momentum_1 += ET_ij_over_ETSum2 * cosTheta_ij;
370 FW_momentum_2 += ET_ij_over_ETSum2 * 0.5 * ( 3*
std::pow(cosTheta_ij,2)- 1);
371 FW_momentum_3 += ET_ij_over_ETSum2 * 0.5 * ( 5*
std::pow(cosTheta_ij,3)- 3*cosTheta_ij);
372 FW_momentum_4 += ET_ij_over_ETSum2 * 0.125 * ( 35*
std::pow(cosTheta_ij,4)- 30*
std::pow(cosTheta_ij,2)+3);
373 FW_momentum_5 += ET_ij_over_ETSum2 * 0.125 * ( 63*
std::pow(cosTheta_ij,5)- 70*
std::pow(cosTheta_ij,3)+15*cosTheta_ij);
374 FW_momentum_6 += ET_ij_over_ETSum2 * 0.0625* (231*
std::pow(cosTheta_ij,6)-315*
std::pow(cosTheta_ij,4)+105*
std::pow(cosTheta_ij,2)-5);
378 double Obs24 = FW_momentum_0;
380 if(DEBUG)
std::cout<<
"------ LR observable 24 "<<Obs24<<
" calculated ------"<<std::endl;
381 double Obs25 = FW_momentum_1;
383 if(DEBUG)
std::cout<<
"------ LR observable 25 "<<Obs25<<
" calculated ------"<<std::endl;
384 double Obs26 = FW_momentum_2;
386 if(DEBUG)
std::cout<<
"------ LR observable 26 "<<Obs26<<
" calculated ------"<<std::endl;
387 double Obs27 = FW_momentum_3;
389 if(DEBUG)
std::cout<<
"------ LR observable 27 "<<Obs27<<
" calculated ------"<<std::endl;
390 double Obs28 = FW_momentum_4;
392 if(DEBUG)
std::cout<<
"------ LR observable 28 "<<Obs28<<
" calculated ------"<<std::endl;
393 double Obs29 = FW_momentum_5;
395 if(DEBUG)
std::cout<<
"------ LR observable 29 "<<Obs29<<
" calculated ------"<<std::endl;
396 double Obs30 = FW_momentum_6;
398 if(DEBUG)
std::cout<<
"------ LR observable 30 "<<Obs30<<
" calculated ------"<<std::endl;
402 TVector3
n(0,0,0), n_tmp(0,0,0);
404 double Thrust_D = 0, Thrust_N = 0;
405 double Thrust = -1, Thrust_tmp =0;
406 double Thrust_Major = -1, Thrust_Major_tmp =0;
407 double Thrust_Minor = -1;
409 for(
unsigned int i=0;
i<TopJets.size();
i++)
411 Thrust_D += TopJets[
i].p();
414 Thrust_D += Lept->P();
419 for(
unsigned int i=0;
i<720;
i++)
421 for(
unsigned int j=0;
j<360;
j++)
425 n_tmp.SetZ(
cos((
PI/360)*
j));
427 for(
unsigned int k=0;
k<TopJets.size();
k++)
429 Thrust_N += fabs(TopJets[
k].px()*(n_tmp.x())+TopJets[
k].py()*(n_tmp.y())+TopJets[
k].pz()*(n_tmp.z()));
431 Thrust_N += fabs(Lept->Px()*(n_tmp.x())+Lept->Py()*(n_tmp.y())+Lept->Pz()*(n_tmp.z()));
433 Thrust_tmp = Thrust_N/Thrust_D;
436 if(Thrust_tmp > Thrust)
439 n.SetXYZ(n_tmp.x(),n_tmp.y(),n_tmp.z());
445 TVector3 nT =
n.Orthogonal();
447 for(
unsigned int i=0;
i<720;
i++)
449 nT.Rotate((2*
PI/720)*
i,
n);
450 for(
unsigned int j=0;
j<TopJets.size();
j++)
452 Thrust_N += fabs(TopJets[
j].px()*(nT.x())+TopJets[
j].py()*(nT.y())+TopJets[
j].pz()*(nT.z()));
454 Thrust_N += fabs(Lept->Px()*nT.x()+Lept->Py()*(nT.y())+Lept->Pz()*(nT.z()));
456 Thrust_Major_tmp = Thrust_N/Thrust_D;
459 if(Thrust_Major_tmp > Thrust_Major)
461 Thrust_Major = Thrust_Major_tmp;
467 TVector3 nMinor = nT.Cross(
n);
468 nMinor = nMinor.Unit();
470 for(
unsigned int i=0;
i<TopJets.size();
i++)
472 Thrust_N += fabs(TopJets[
i].px()*(nMinor.x())+TopJets[
i].py()*(nMinor.y())+TopJets[
i].pz()*(nMinor.z()));
474 Thrust_N += fabs(Lept->Px()*nMinor.x()+Lept->Py()*(nMinor.y())+Lept->Pz()*(nMinor.z()));
476 Thrust_Minor = Thrust_N/Thrust_D;
479 double Obs31 = Thrust;
481 if(DEBUG)
std::cout<<
"------ LR observable 31 "<<Obs31<<
" calculated ------"<<std::endl;
482 double Obs32 = Thrust_Major;
484 if(DEBUG)
std::cout<<
"------ LR observable 32 "<<Obs32<<
" calculated ------"<<std::endl;
485 double Obs33 = Thrust_Minor;
487 if(DEBUG)
std::cout<<
"------ LR observable 33 "<<Obs33<<
" calculated ------"<<std::endl;
491 double Obs34 = Thrust_Major-Thrust_Minor;
493 if(DEBUG)
std::cout<<
"------ LR observable 34 "<<Obs34<<
" calculated ------"<<std::endl;
497 TMatrixDSym Matrix_NoNu(3);
503 double P2_NoNu = PX2_NoNu+PY2_NoNu+PZ2_NoNu;
505 double PXY_NoNu = Hadp->Px()*Hadp->Py()+Hadq->Px()*Hadq->Py()+Hadb->Px()*Hadb->Py()+Lepb->Px()*Lepb->Py()+Lept->Px()*Lept->Py();
506 double PXZ_NoNu = Hadp->Px()*Hadp->Pz()+Hadq->Px()*Hadq->Pz()+Hadb->Px()*Hadb->Pz()+Lepb->Px()*Lepb->Pz()+Lept->Px()*Lept->Pz();
507 double PYZ_NoNu = Hadp->Py()*Hadp->Pz()+Hadq->Py()*Hadq->Pz()+Hadb->Py()*Hadb->Pz()+Lepb->Py()*Lepb->Pz()+Lept->Py()*Lept->Pz();
509 Matrix_NoNu(0,0) = PX2_NoNu/P2_NoNu; Matrix_NoNu(0,1) = PXY_NoNu/P2_NoNu; Matrix_NoNu(0,2) = PXZ_NoNu/P2_NoNu;
510 Matrix_NoNu(1,0) = PXY_NoNu/P2_NoNu; Matrix_NoNu(1,1) = PY2_NoNu/P2_NoNu; Matrix_NoNu(1,2) = PYZ_NoNu/P2_NoNu;
511 Matrix_NoNu(2,0) = PXZ_NoNu/P2_NoNu; Matrix_NoNu(2,1) = PYZ_NoNu/P2_NoNu; Matrix_NoNu(2,2) = PZ2_NoNu/P2_NoNu;
513 TMatrixDSymEigen pTensor_NoNu(Matrix_NoNu);
515 std::vector<double> EigValues_NoNu;
516 EigValues_NoNu.clear();
519 EigValues_NoNu.push_back(pTensor_NoNu.GetEigenValues()[
i]);
524 double Sphericity_NoNu = 1.5*(EigValues_NoNu[1]+EigValues_NoNu[2]);
525 double Aplanarity_NoNu = 1.5*EigValues_NoNu[2];
527 double Obs35 = (
isnan(Sphericity_NoNu) ? 0 : Sphericity_NoNu);
529 if(DEBUG)
std::cout<<
"------ LR observable 35 "<<Obs35<<
" calculated ------"<<std::endl;
531 double Obs36 = (
isnan(Aplanarity_NoNu) ? 0 : Aplanarity_NoNu);
533 if(DEBUG)
std::cout<<
"------ LR observable 36 "<<Obs36<<
" calculated ------"<<std::endl;
537 TMatrixDSym Matrix_NoNuNoLep(3);
543 double P2_NoNuNoLep = PX2_NoNuNoLep+PY2_NoNuNoLep+PZ2_NoNuNoLep;
545 double PXY_NoNuNoLep = Hadp->Px()*Hadp->Py()+Hadq->Px()*Hadq->Py()+Hadb->Px()*Hadb->Py()+Lepb->Px()*Lepb->Py();
546 double PXZ_NoNuNoLep = Hadp->Px()*Hadp->Pz()+Hadq->Px()*Hadq->Pz()+Hadb->Px()*Hadb->Pz()+Lepb->Px()*Lepb->Pz();
547 double PYZ_NoNuNoLep = Hadp->Py()*Hadp->Pz()+Hadq->Py()*Hadq->Pz()+Hadb->Py()*Hadb->Pz()+Lepb->Py()*Lepb->Pz();
549 Matrix_NoNuNoLep(0,0) = PX2_NoNuNoLep/P2_NoNuNoLep; Matrix_NoNuNoLep(0,1) = PXY_NoNuNoLep/P2_NoNuNoLep; Matrix_NoNuNoLep(0,2) = PXZ_NoNuNoLep/P2_NoNuNoLep;
550 Matrix_NoNuNoLep(1,0) = PXY_NoNuNoLep/P2_NoNuNoLep; Matrix_NoNuNoLep(1,1) = PY2_NoNuNoLep/P2_NoNuNoLep; Matrix_NoNuNoLep(1,2) = PYZ_NoNuNoLep/P2_NoNuNoLep;
551 Matrix_NoNuNoLep(2,0) = PXZ_NoNuNoLep/P2_NoNuNoLep; Matrix_NoNuNoLep(2,1) = PYZ_NoNuNoLep/P2_NoNuNoLep; Matrix_NoNuNoLep(2,2) = PZ2_NoNuNoLep/P2_NoNuNoLep;
553 TMatrixDSymEigen pTensor_NoNuNoLep(Matrix_NoNuNoLep);
555 std::vector<double> EigValues_NoNuNoLep;
556 EigValues_NoNuNoLep.clear();
559 EigValues_NoNuNoLep.push_back(pTensor_NoNuNoLep.GetEigenValues()[
i]);
564 double Sphericity_NoNuNoLep = 1.5*(EigValues_NoNuNoLep[1]+EigValues_NoNuNoLep[2]);
565 double Aplanarity_NoNuNoLep = 1.5*EigValues_NoNuNoLep[2];
567 double Obs37 = (
isnan(Sphericity_NoNuNoLep) ? 0 : Sphericity_NoNuNoLep);
569 if(DEBUG)
std::cout<<
"------ LR observable 37 "<<Obs37<<
" calculated ------"<<std::endl;
571 double Obs38 = (
isnan(Aplanarity_NoNuNoLep) ? 0 : Aplanarity_NoNuNoLep);
573 if(DEBUG)
std::cout<<
"------ LR observable 38 "<<Obs38<<
" calculated ------"<<std::endl;
578 if(DEBUG)
std::cout<<
"------ Observable values stored in the event ------"<<std::endl;
581 if(DEBUG)
std::cout<<
"------ Pointer to Hadp deleted ------"<<std::endl;
583 if(DEBUG)
std::cout<<
"------ Pointer to Hadq deleted ------"<<std::endl;
585 if(DEBUG)
std::cout<<
"------ Pointer to Hadb deleted ------"<<std::endl;
587 if(DEBUG)
std::cout<<
"------ Pointer to Lepb deleted ------"<<std::endl;
589 if(DEBUG)
std::cout<<
"------ Pointer to Lepn deleted ------"<<std::endl;
591 if(DEBUG)
std::cout<<
"------ Pointer to Mez deleted ------"<<std::endl;
594 if(DEBUG)
std::cout<<
"------------ LR observables calculated -----------"<<std::endl;
void SetLepton(const pat::Particle &lepton, bool isMuon=true)
Set lepton.
string MT
|_ _( _ ) | _ \ | _ \ __ _(_)_ __ ___ | | / _ \/\ |_) | | |_) / _` | | '__/ __| | || (_> < __/ | __/...
virtual double et() const
transverse energy
CompareBdisc BdiscComparator
CompareDouble dComparator
Sin< T >::type sin(const T &t)
std::string getDecay() const
std::vector< std::pair< unsigned int, double > > evtselectVarVal
pat::Muon getMuon() const
void SetMET(const pat::MET &MET)
Set MET.
virtual double energy() const
energy
double Calculate(int type=1)
member functions
Cos< T >::type cos(const T &t)
pat::Electron getElectron() const
void setLRSignalEvtObservables(std::vector< std::pair< unsigned int, double > > varval)
virtual double px() const
x coordinate of momentum vector
virtual double pz() const
z coordinate of momentum vector
pat::MET getNeutrino() const
DecomposeProduct< arg, typename Div::arg > D
virtual double py() const
y coordinate of momentum vector
Power< A, B >::type pow(const A &a, const B &b)