37 #ifdef XAOD_STANDALONE
82 m_phi_reso_pt20(nullptr),
83 m_phi_reso_pt50(nullptr),
84 m_phi_reso_pt100(nullptr)
115 ATH_MSG_WARNING(
" tool wasn't updated for EMTopo jets so far and is not supported.");
119 m_file = TFile::Open(configpath.c_str());
129 ATH_MSG_ERROR(
"PU Jet Uncertainty TFile is not valid: " << configpath);
130 return StatusCode::FAILURE;
147 else ATH_MSG_WARNING(
"No jet calibration tool or config provided for MET Significance");
153 asg::AsgToolConfig toolConfig (
"CP::MuonCalibTool/METSigAutoConf_MuonCalibrationAndSmearingTool");
159 else ATH_MSG_WARNING(
"No muon calibration tool or config provided for MET Significance");
165 asg::AsgToolConfig toolConfig (
"CP::EgammaCalibrationAndSmearingTool/METSigAutoConf_EgammaCalibrationAndSmearingTool");
173 else ATH_MSG_WARNING(
"No egamma calibration tool or config provided for MET Significance");
186 else ATH_MSG_WARNING(
"No tau calibration tool or config provided for MET Significance");
189 return StatusCode::SUCCESS;
199 return StatusCode::SUCCESS;
211 double particle_sum[2][2] = {{0.0,0.0}, {0.0,0.0}};
222 unsigned nIterSoft=0;
223 double softSumET=0.0;
226 if(metCont->
find(totalMETName)!=metCont->
end()){
229 ATH_MSG_ERROR(
"NOT the total MET with name:" <<totalMETName);
230 return StatusCode::SUCCESS;
241 ATH_MSG_ERROR(
"Could not find the total MET with name:" <<totalMETName);
242 return StatusCode::SUCCESS;
247 for(
const auto met : *metCont) {
254 if(
met->source()==invisSource)
continue;
262 if(
met->name()!=softTermName || nIterSoft>0){
263 if(nIterSoft>0)
ATH_MSG_ERROR(
"Found multiple soft terms with the name:" <<softTermName <<
". Your MET configuration is wrong!!!");
277 for(
const auto&
el : acc_constitObjLinks(*
met)) {
279 float pt_reso=0.0, phi_reso=0.0;
281 ATH_MSG_ERROR(
"Particle pointer is not valid. This will likely result in a crash " <<
obj);
282 return StatusCode::FAILURE;
291 if(
met->name()!=jetTermName)
continue;
309 double particle_u[2][2] = {{pt_reso*pt_reso*
obj->pt()*
obj->pt()/
m_GeV/
m_GeV,0.0},
311 double particle_u_rot[2][2] = {{pt_reso*pt_reso*
obj->pt()*
obj->pt()/
m_GeV/
m_GeV,0.0},
314 m_VarL+=particle_u_rot[0][0];
315 m_VarT+=particle_u_rot[1][1];
316 m_CvLT+=particle_u_rot[0][1];
320 particle_u_rot[1][1],
321 particle_u_rot[0][1],
324 RotateXY (particle_u, particle_u_rot,
obj->p4().Phi());
325 AddMatrix(particle_sum, particle_u_rot, particle_sum);
328 ATH_MSG_VERBOSE(
"Resolution: " << pt_reso <<
" phi reso: " << phi_reso );
348 met_vect.SetXYZ(MEx,MEy,0.0);
357 met_vect.SetXYZ(MEx,MEy,0.0);
380 return StatusCode::SUCCESS;
398 return StatusCode::SUCCESS;
422 return StatusCode::SUCCESS;
429 bool DoEMuReso =
false;
434 if(
obj->pt()>0.5e6) pt_reso=0.03;
435 if(
obj->pt()>1.0e6) pt_reso=0.1;
439 ATH_MSG_ERROR(
"MET Significance received a muon but was not configured for muons!");
440 return StatusCode::FAILURE;
443 if(
muon->muonType()==0){
446 else if(
muon->muonType()==1){
449 else if(
muon->muonType()>1){
453 ATH_MSG_VERBOSE(
"This muon had none of the normal muon types (ID,MS,CB) - check this in detail");
454 return StatusCode::FAILURE;
464 ATH_MSG_VERBOSE(
"muon: " << pt_reso <<
" dettype: " << dettype <<
" " <<
muon->pt() <<
" " <<
muon->p4().Eta() <<
" " <<
muon->p4().Phi());
469 ATH_MSG_VERBOSE(
"muon: " << pt_reso <<
" dettype: " << dettype <<
" " <<
obj->pt() <<
" " <<
obj->p4().Eta() <<
" " <<
obj->p4().Phi());
478 return StatusCode::SUCCESS;
485 ATH_MSG_ERROR(
"MET Significance received an electron but was not configured for egamma!");
486 return StatusCode::FAILURE;
489 bool DoEMuReso =
false;
499 ATH_MSG_VERBOSE(
"el: " << pt_reso <<
" " << ele->
pt() <<
" " << ele->
p4().Eta() <<
" " << ele->
p4().Phi());
504 DoEMuReso = acc_EMReso.
isAvailable(*ele) ? acc_EMReso(*ele) :
false;
514 return StatusCode::SUCCESS;
521 ATH_MSG_ERROR(
"MET Significance received a photon but was not configured for egamma!");
522 return StatusCode::FAILURE;
533 ATH_MSG_VERBOSE(
"pho: " << pt_reso <<
" " << pho->
pt() <<
" " << pho->
p4().Eta() <<
" " << pho->
p4().Phi());
535 return StatusCode::SUCCESS;
542 double pt_reso_dbl_data=0.0, pt_reso_dbl_mc=0.0, pt_reso_dbl_max=0.0;
549 ATH_MSG_ERROR(
"MET Significance received a jet but was not configured for jets!");
550 return StatusCode::FAILURE;
555 pt_reso_dbl_max =
std::max(pt_reso_dbl_data,pt_reso_dbl_mc);
556 pt_reso = pt_reso_dbl_max;
562 double jet_pu_unc = 0.;
563 if(acc_fjvt.isAvailable(*
jet))
565 else if(acc_fjvt_der.isAvailable(*
jet))
568 ATH_MSG_ERROR(
"No fJVT decoration available - must have treat pileup jets set to off or provide fJVT!");
569 return StatusCode::FAILURE;
571 pt_reso = std::sqrt(jet_pu_unc*jet_pu_unc + pt_reso*pt_reso);
579 phi_reso =
jet->pt()*jet_phi_unc;
586 float extra_relative_pt_reso = acc_extra(*
jet);
587 pt_reso = std::sqrt(pt_reso*pt_reso + extra_relative_pt_reso*extra_relative_pt_reso);
591 return StatusCode::SUCCESS;
604 ATH_MSG_ERROR(
"MET Significance received a tau but was not configured for taus!");
605 return StatusCode::FAILURE;
609 pt_reso = combp4->getMvaEnergyResolution(*tau);
613 ATH_MSG_VERBOSE(
"tau: " << pt_reso <<
" " << tau->
pt() <<
" " << tau->
p4().Eta() <<
" " << tau->
p4().Phi() <<
" phi reso: " << phi_reso);
615 return StatusCode::SUCCESS;
635 m_VarL+=particle_u_rot[0][0];
636 m_VarT+=particle_u_rot[1][1];
637 m_CvLT+=particle_u_rot[0][1];
641 particle_u_rot[1][1],
642 particle_u_rot[0][1],
645 RotateXY (particle_u, particle_u_rot,-1.0*soft->
phi());
646 AddMatrix(particle_sum, particle_u_rot, particle_sum);
649 <<
" Var_L: " << particle_u_rot[0][0] <<
" Var_T: " << particle_u_rot[1][1]
650 <<
" " << particle_u_rot[0][1]);
654 ATH_MSG_VERBOSE(
"Resolution Soft term parameterized in pthard direction");
662 double particle_u[2][2] = {{varTST,0.0},
664 double particle_u_rot[2][2] = {{varTST,0.0},
668 m_VarL+=particle_u_rot[0][0];
669 m_VarT+=particle_u_rot[1][1];
670 m_CvLT+=particle_u_rot[0][1];
674 particle_u_rot[1][1],
675 particle_u_rot[0][1],
679 AddMatrix(particle_sum, particle_u_rot, particle_sum);
690 double particle_u[2][2] = {{varTST,0.0},
692 double particle_u_rot[2][2] = {{varTST,0.0},
696 m_VarL+=particle_u_rot[0][0];
697 m_VarT+=particle_u_rot[1][1];
698 m_CvLT+=particle_u_rot[0][1];
702 particle_u_rot[1][1],
703 particle_u_rot[0][1],
706 RotateXY (particle_u, particle_u_rot,-1.0*soft->
phi());
707 AddMatrix(particle_sum, particle_u_rot, particle_sum);
717 double jet_pt,
double jet_jvt,
725 if(std::abs(jet_eta)<2.4){
727 if(jet_jvt<0.11) unc = 1;
728 else if(jet_jvt<0.25) unc = 0.0730 + 0.0024 * avgmu + 0.00001 * avgmu * avgmu;
729 else if(jet_jvt<0.85) unc = 0.0995 + 0.0031 * avgmu + 0.00005 * avgmu * avgmu;
730 else if(jet_jvt<0.95) unc = 0.0311 + 0.0025 * avgmu + 0.00005 * avgmu * avgmu;
731 else unc = 0.0308 -0.0010 * avgmu + 0.00006 * avgmu * avgmu ;
733 if(jet_jvt<0.11) unc = 1.;
734 else if(jet_jvt<0.25) unc = 1.;
735 else if(jet_jvt<0.85) unc = -0.0188 + 0.0039 * avgmu + 0.00002 * avgmu * avgmu;
736 else if(jet_jvt<0.95) unc = 0.0252 -0.0009 * avgmu + 0.00006 * avgmu * avgmu ;
737 else unc = 0.0085 -0.0003 * avgmu + 0.00002 * avgmu * avgmu ;
739 if(jet_jvt<0.11) unc = 1;
740 else if(jet_jvt<0.25) unc = 0.0345 -0.0006 * avgmu + 0.00004 * avgmu * avgmu ;
741 else if(jet_jvt<0.85) unc = 0.1078 -0.0051 * avgmu + 0.00011 * avgmu * avgmu ;
742 else if(jet_jvt<0.95) unc = -0.0026 + 0.0005 * avgmu + 0.00002 * avgmu * avgmu;
743 else unc = 0.0090 -0.0004 * avgmu + 0.00001 * avgmu * avgmu ;
745 if(jet_jvt<0.11) unc = 1;
746 else if(jet_jvt<0.25) unc = -0.0321 + 0.0030 * avgmu -0.00002 * avgmu * avgmu;
747 else if(jet_jvt<0.85) unc = 0.0260 -0.0007 * avgmu + 0.00003 * avgmu * avgmu ;
748 else unc = -0.0040 + 0.0003 * avgmu;
749 }
else if(jet_pt<100){
750 unc = 0.9492 -2.0757 * jet_jvt + 1.13328 * jet_jvt * jet_jvt;
751 }
else if(jet_pt<150){
752 unc = 0.7888 -1.8372 * jet_jvt + 1.05539 * jet_jvt * jet_jvt;
754 }
else if(std::abs(jet_eta)<2.6){
756 if(jet_jvt<0.11) unc = 0.2633 + 0.0091 * avgmu + -0.00009 * avgmu * avgmu;
757 else if(jet_jvt<0.25) unc = 0.1841 + 0.0144 * avgmu + -0.00008 * avgmu * avgmu;
758 else if(jet_jvt<0.85) unc = 0.1401 + 0.0048 * avgmu + 0.00006 * avgmu * avgmu ;
759 else if(jet_jvt<0.95) unc = -0.0118 + 0.0076 * avgmu + 0.00003 * avgmu * avgmu;
760 else unc = 0.0534 + -0.0011 * avgmu + 0.00010 * avgmu * avgmu;
762 if(jet_jvt<0.11) unc = 0.1497 + 0.0133 * avgmu + -0.00015 * avgmu * avgmu ;
763 else if(jet_jvt<0.25) unc = -0.2260 + 0.0276 * avgmu + -0.00021 * avgmu * avgmu ;
764 else if(jet_jvt<0.85) unc = 0.2743 + -0.0093 * avgmu + 0.00022 * avgmu * avgmu ;
765 else if(jet_jvt<0.95) unc = 0.0604 + 0.0006 * avgmu + 0.00006 * avgmu * avgmu ;
766 else unc = 0.0478 + -0.0009 * avgmu + 0.00004 * avgmu * avgmu ;
768 if(jet_jvt<0.11) unc = -0.2187 + 0.0317 * avgmu + -0.00037 * avgmu * avgmu ;
769 else if(jet_jvt<0.25) unc = 0.0964 + 0.0053 * avgmu + 0.00002 * avgmu * avgmu ;
770 else if(jet_jvt<0.85) unc = 1.1730 + -0.0624 * avgmu + 0.00088 * avgmu * avgmu ;
771 else if(jet_jvt<0.95) unc = -0.2011 + 0.0151 * avgmu + -0.00018 * avgmu * avgmu ;
772 else unc = 0.0145 + -0.0003 * avgmu + 0.00002 * avgmu * avgmu ;
774 if(jet_jvt<0.11) unc = 0.0051 + 0.0113 * avgmu + -0.00008 * avgmu * avgmu ;
775 else if(jet_jvt<0.25) unc = -0.1024 + 0.0109 * avgmu + -0.00006 * avgmu * avgmu ;
776 else if(jet_jvt<0.85) unc = 1.2491 + -0.0501 * avgmu + 0.00052 * avgmu * avgmu ;
777 else unc = 0.0267 + -0.0014 * avgmu + 0.00003 * avgmu * avgmu ;
778 }
else if(jet_pt<100){
779 unc = 0.8951 -2.4995 * jet_jvt + 1.63229 * jet_jvt * jet_jvt;
780 }
else if(jet_pt<150){
781 unc = 0.9998 -1.7319 * jet_jvt + 0.72680 * jet_jvt * jet_jvt;
783 }
else if(std::abs(jet_eta)<2.7){
785 if(jet_jvt<0.11) unc = 0.3001 + 0.0054 * avgmu -0.00004 * avgmu * avgmu ;
786 else if(jet_jvt<0.25) unc = 0.0663 + 0.0198 * avgmu -0.00013 * avgmu * avgmu ;
787 else if(jet_jvt<0.85) unc = -0.0842 + 0.0163 * avgmu -0.00008 * avgmu * avgmu ;
788 else if(jet_jvt<0.95) unc = -0.0219 + 0.0080 * avgmu + 0.00003 * avgmu * avgmu;
789 else unc = 0.0461 -0.0003 * avgmu + 0.00012 * avgmu * avgmu ;
791 if(jet_jvt<0.11) unc = 0.1885 + 0.0083 * avgmu -0.00006 * avgmu * avgmu ;
792 else if(jet_jvt<0.25) unc = -0.0286 + 0.0150 * avgmu -0.00007 * avgmu * avgmu;
793 else if(jet_jvt<0.85) unc = 0.0152 + 0.0028 * avgmu + 0.00005 * avgmu * avgmu;
794 else if(jet_jvt<0.95) unc = 0.1815 -0.0076 * avgmu + 0.00018 * avgmu * avgmu ;
795 else unc = 0.0192 -0.0003 * avgmu + 0.00007 * avgmu * avgmu ;
797 if(jet_jvt<0.11) unc = 0.1257 + 0.0074 * avgmu -0.00004 * avgmu * avgmu ;
798 else if(jet_jvt<0.25) unc = -0.0276 + 0.0080 * avgmu + 0.00000 * avgmu * avgmu;
799 else if(jet_jvt<0.85) unc = 0.1403 -0.0051 * avgmu + 0.00009 * avgmu * avgmu ;
800 else if(jet_jvt<0.95) unc = 0.2078 -0.0101 * avgmu + 0.00017 * avgmu * avgmu ;
801 else unc = 0.2597 -0.0132 * avgmu + 0.00020 * avgmu * avgmu ;
803 if(jet_jvt<0.11) unc = 0.1111 + 0.0045 * avgmu -0.00000 * avgmu * avgmu ;
804 else if(jet_jvt<0.25) unc = 0.0975 -0.0011 * avgmu + 0.00008 * avgmu * avgmu ;
805 else if(jet_jvt<0.85) unc = 0.0920 -0.0053 * avgmu + 0.00013 * avgmu * avgmu ;
806 else unc = -0.0071 + 0.0016 * avgmu -0.00001 * avgmu * avgmu;
807 }
else if(jet_pt<100){
808 unc = 0.4660 -1.2116 * jet_jvt + 0.78807 * jet_jvt * jet_jvt;
809 }
else if(jet_pt<150){
810 unc = 0.2254 -0.5476 * jet_jvt + 0.32617 * jet_jvt * jet_jvt;
814 float fjvt = jet_fjvt>0.6 ? 0.6 : jet_fjvt;
815 if(jet_pt<30) unc = 0.5106 + 1.2566 * fjvt -1.15060 * fjvt * fjvt;
816 else if(jet_pt<40) unc = 0.2972 + 1.9418 * fjvt -1.82694 * fjvt * fjvt;
817 else if(jet_pt<50) unc = 0.1543 + 1.9864 * fjvt -1.48429 * fjvt * fjvt;
818 else if(jet_pt<60) unc = 0.1050 + 1.3196 * fjvt + 0.03554 * fjvt * fjvt;
819 else if(jet_pt<120) unc = 0.0400 + 0.5653 * fjvt + 1.96323 * fjvt * fjvt;
821 if(jet_fjvt>0.6) unc = 0.9;
827 if(std::abs(jet_eta)<2.4){
829 if(jet_jvt<0.11) unc = 0.524466 + 0.00750057 * avgmu -4.73422e-05 * avgmu * avgmu ;
830 else if(jet_jvt<0.25) unc = 4.17584e-01 + 1.00112e-02 * avgmu -7.43546e-05 * avgmu * avgmu ;
831 else if(jet_jvt<0.85) unc = 2.12625e-01 + 1.03484e-02 * avgmu -5.68063e-05 * avgmu * avgmu;
832 else if(jet_jvt<0.95) unc = 1.08396e-01 + 1.04273e-02 * avgmu -5.00299e-05 * avgmu * avgmu;
833 else unc = 1.26304e-03 +2.10385e-04 * avgmu + 1.10086e-06 * avgmu * avgmu ;
835 if(jet_jvt<0.11) unc = 3.78090e-01 + 8.83535e-03 * avgmu -5.38873e-05* avgmu * avgmu;
836 else if(jet_jvt<0.25) unc = 2.67244e-01+ 9.81193e-03* avgmu -5.87765e-05 * avgmu * avgmu;
837 else if(jet_jvt<0.85) unc = 9.60892e-02 +8.11069e-03 * avgmu -3.73101e-05 * avgmu * avgmu ;
838 else if(jet_jvt<0.95) unc = 5.16235e-02 +6.27371e-03 * avgmu -1.95433e-05 * avgmu * avgmu ;
839 else unc = -2.74714e-03 +2.45273e-04* avgmu -1.44731e-06* avgmu * avgmu ;
841 if(jet_jvt<0.11) unc = 2.44953e-01 + 1.23246e-02 * avgmu -8.48696e-05 * avgmu * avgmu;
842 else if(jet_jvt<0.25) unc = 1.78141e-01 + 1.09451e-02 * avgmu -6.90796e-05 * avgmu * avgmu;
843 else if(jet_jvt<0.85) unc = 9.60998e-02+6.21945e-03* avgmu -2.76203e-05* avgmu * avgmu ;
844 else if(jet_jvt<0.95) unc = 5.79210e-02+ 4.49780e-03 * avgmu + -1.15125e-05 * avgmu * avgmu ;
845 else unc = -2.96644e-03 +2.27707e-04 * avgmu -1.86712e-06 * avgmu * avgmu ;
847 if(jet_jvt<0.11) unc = 1.97017e-01 + 1.34089e-02 * avgmu -9.18923e-05 * avgmu * avgmu ;
848 else if(jet_jvt<0.25) unc = 1.27602e-01 + 1.12287e-02 * avgmu -6.62192e-05 * avgmu * avgmu ;
849 else if(jet_jvt<0.85) unc = 6.94905e-02 + 6.27784e-03 * avgmu -3.07298e-05 * avgmu * avgmu;
850 else if(jet_jvt<0.95) unc = 3.58417e-02 +4.62268e-03 * avgmu -2.12417e-05 * avgmu * avgmu ;
851 else unc = 1.35616e-03 + 5.46723e-06* avgmu + 1.92327e-07 * avgmu * avgmu;
852 }
else if(jet_pt<100){
853 unc = 6.19009e-01 -8.96042e-01 * jet_jvt + 2.89066e-01 * jet_jvt * jet_jvt;
854 }
else if(jet_pt<150){
855 unc = 6.18350e-01 -8.97327e-01 * jet_jvt + 2.90998e-01 * jet_jvt * jet_jvt;
857 }
else if(std::abs(jet_eta)<2.6){
859 if(jet_jvt<0.11) unc = 5.06496e-01 + 8.21123e-03 * avgmu -5.17501e-05 * avgmu * avgmu;
860 else if(jet_jvt<0.25) unc = 4.26616e-01 + 9.25936e-03 * avgmu -5.68847e-05 * avgmu * avgmu;
861 else if(jet_jvt<0.85) unc = 2.03333e-01 + 1.11951e-02 * avgmu-6.09233e-05 * avgmu * avgmu ;
862 else if(jet_jvt<0.95) unc = 1.03167e-01 + 1.13444e-02 * avgmu -5.43274e-05 * avgmu * avgmu;
863 else unc = 1.51480e-03 + 2.08394e-04 * avgmu + 1.39579e-06 * avgmu * avgmu;
865 if(jet_jvt<0.11) unc = 3.40612e-01 + 9.94199e-03 * avgmu + -5.93760e-05* avgmu * avgmu ;
866 else if(jet_jvt<0.25) unc = 2.43360e-01 + 1.05579e-02* avgmu + -6.05403e-05* avgmu * avgmu ;
867 else if(jet_jvt<0.85) unc = 8.34364e-02 + 8.76364e-03 * avgmu -3.64035e-05 * avgmu * avgmu ;
868 else if(jet_jvt<0.95) unc = 4.40362e-02 + 6.92580e-03 * avgmu -1.79853e-05 * avgmu * avgmu ;
869 else unc = -2.68670e-03 + 2.50861e-04 * avgmu + -1.46410e-06* avgmu * avgmu ;
871 if(jet_jvt<0.11) unc = 2.36561e-01 + 1.14078e-02 * avgmu +-7.10025e-05 * avgmu * avgmu ;
872 else if(jet_jvt<0.25) unc = 1.86653e-01 +9.61140e-03 * avgmu +-5.15356e-05 * avgmu * avgmu ;
873 else if(jet_jvt<0.85) unc = 9.37026e-02 +5.93028e-03 * avgmu +-2.02571e-05 * avgmu * avgmu ;
874 else if(jet_jvt<0.95) unc = 5.79210e-02+ 4.49780e-03 * avgmu + -1.15125e-05 * avgmu * avgmu ;
875 else unc = -3.02487e-03 + 2.31337e-04* avgmu + -1.85225e-06 * avgmu * avgmu ;
877 if(jet_jvt<0.11) unc =1.75215e-01+ 1.21805e-02 * avgmu + -7.48846e-05 * avgmu * avgmu ;
878 else if(jet_jvt<0.25) unc = 1.26276e-01+ 9.80117e-03 * avgmu + -4.99913e-05 * avgmu * avgmu ;
879 else if(jet_jvt<0.85) unc = 7.91422e-02 + 5.26009e-03 * avgmu +-1.87388e-05 * avgmu * avgmu ;
880 else if(jet_jvt<0.95) unc = 4.39136e-02+ 4.09435e-03* avgmu +-1.35926e-05 * avgmu * avgmu ;
881 else unc = 1.21410e-03 + 1.14188e-05 * avgmu + 1.53654e-07 * avgmu * avgmu ;
882 }
else if( jet_pt<100){
883 unc = 6.44179e-01 -9.20194e-01* jet_jvt + 2.89686e-01 * jet_jvt * jet_jvt;
884 }
else if(jet_pt<150){
885 unc = 6.43423e-01 -9.21407e-01 * jet_jvt + 2.91648e-01 * jet_jvt * jet_jvt;
887 }
else if(std::abs(jet_eta)<2.7){
889 if(jet_jvt<0.11) unc = 4.76243e-01 + 9.22046e-03 * avgmu -5.88765e-05 * avgmu * avgmu;
890 else if(jet_jvt<0.25) unc = 4.07406e-01+ 1.01167e-02 * avgmu -6.30429e-05 * avgmu * avgmu;
891 else if(jet_jvt<0.85) unc = 2.01324e-01+ 1.20631e-02 * avgmu -6.75582e-05 * avgmu * avgmu;
892 else if(jet_jvt<0.95) unc = 1.03815e-01 + 1.24007e-02 * avgmu -6.26892e-05 * avgmu * avgmu;
893 else unc = 1.63714e-03 +2.00682e-04 * avgmu + 1.53621e-06 * avgmu * avgmu;
895 if(jet_jvt<0.11) unc = 2.89505e-01 + 1.11643e-02 * avgmu -6.45475e-05* avgmu * avgmu;
896 else if(jet_jvt<0.25) unc = 2.15968e-01 + 1.14451e-02* avgmu -6.32545e-05 * avgmu * avgmu;
897 else if(jet_jvt<0.85) unc = 7.92319e-02 +9.66239e-03* avgmu -3.81872e-05 * avgmu * avgmu ;
898 else if(jet_jvt<0.95) unc = 4.25501e-02 +7.90022e-03 * avgmu -1.93561e-05 * avgmu * avgmu;
899 else unc = -2.68089e-03 +2.50117e-04 * avgmu -1.43591e-06 * avgmu * avgmu ;
901 if(jet_jvt<0.11) unc = 1.66062e-01+ 1.21029e-02 * avgmu -7.00743e-05 * avgmu * avgmu;
902 else if(jet_jvt<0.25) unc = 1.36874e-01+ 1.03543e-02 * avgmu -5.13482e-05 * avgmu * avgmu;
903 else if(jet_jvt<0.85) unc = 7.24015e-02 +6.72611e-03 * avgmu -1.98316e-05 * avgmu * avgmu;
904 else if(jet_jvt<0.95) unc = 4.84508e-02 +5.10548e-03* avgmu -8.65067e-06 * avgmu * avgmu;
905 else unc = -3.02710e-03 +2.31422e-04* avgmu -1.84795e-06 * avgmu * avgmu;
907 if(jet_jvt<0.11) unc =1.33626e-01 + 1.02813e-02 * avgmu -4.87698e-05 * avgmu * avgmu;
908 else if(jet_jvt<0.25) unc = 1.06724e-01 + 8.45131e-03 * avgmu -3.26833e-05 * avgmu * avgmu;
909 else if(jet_jvt<0.85) unc = 7.47468e-02 +4.85387e-03 * avgmu -1.01430e-05* avgmu * avgmu;
910 else if(jet_jvt<0.95) unc = 4.57521e-02 + 3.86782e-03 * avgmu -6.38948e-06 * avgmu * avgmu;
911 else unc = 1.20495e-03 +1.18941e-05* avgmu +1.47846e-07 * avgmu * avgmu;
912 }
else if( jet_pt<100){
913 unc = 6.59079e-01 -9.29754e-01 * jet_jvt + 2.83653e-01 * jet_jvt * jet_jvt;
914 }
else if(jet_pt<150){
915 unc = 6.58295e-01 -9.31032e-01 * jet_jvt + 2.85724e-01 * jet_jvt * jet_jvt;
919 float fjvt = jet_fjvt>0.6 ? 0.6 : jet_fjvt;
920 if(jet_pt<30) unc = 0.605329 + 0.625734 * fjvt -0.42484 * fjvt * fjvt;
921 else if(jet_pt<40) unc = 0.409696 + 1.00173 * fjvt -0.609179 * fjvt * fjvt;
922 else if(jet_pt<50) unc = 0.173755 + 1.48847 * fjvt -0.803771 * fjvt * fjvt;
923 else if(jet_pt<60) unc = 0.0140303 + 1.79909 * fjvt -0.889274 * fjvt * fjvt;
924 else if(jet_pt<120) unc = -0.0828333 + 1.81167 * fjvt -0.716881 * fjvt * fjvt;
926 if(jet_fjvt>0.6) unc = 0.9;
950 else if(jet_pt<100.0)
957 if(-4.5<jet_eta && -3.8>=jet_eta)
return 1;
958 else if(-3.8<jet_eta && -3.5>=jet_eta)
return 2;
959 else if(-3.5<jet_eta && -3.0>=jet_eta)
return 3;
960 else if(-3.0<jet_eta && -2.7>=jet_eta)
return 4;
961 else if(-2.7<jet_eta && -2.4>=jet_eta)
return 5;
962 else if(-2.4<jet_eta && -1.5>=jet_eta)
return 6;
963 else if(-1.5<jet_eta && -0.5>=jet_eta)
return 7;
964 else if(-0.5<jet_eta && 0.0>=jet_eta)
return 8;
965 else if(0.0<jet_eta && 0.5>=jet_eta)
return 9;
966 else if(0.5<jet_eta && 1.5>=jet_eta)
return 10;
967 else if(1.5<jet_eta && 2.4>=jet_eta)
return 11;
968 else if(2.4<jet_eta && 2.7>=jet_eta)
return 12;
969 else if(2.7<jet_eta && 3.0>=jet_eta)
return 13;
970 else if(3.0<jet_eta && 3.5>=jet_eta)
return 14;
971 else if(3.5<jet_eta && 3.8>=jet_eta)
return 15;
972 else if(3.8<jet_eta )
return 16;
981 return std::make_tuple( V11, V22, V12);
986 Double_t
rho =
cov / std::sqrt( var_parall * var_perpen ) ;
987 Double_t Significance = 0;
988 if (std::abs(
rho ) >= 0.9 ){
995 if( std::abs(Significance) >= 10
e+15)
1011 if(
det==0.0)
return;
1020 mat_new[0][0]=
X[0][0]+
Y[0][0];
1021 mat_new[0][1]=
X[0][1]+
Y[0][1];
1022 mat_new[1][0]=
X[1][0]+
Y[1][0];
1023 mat_new[1][1]=
X[1][1]+
Y[1][1];
1048 if (PtSoft<60.)
return (0.145)+(-0.45)*PtSoft;
1049 else return (0.145)+(-0.45)*(60.);
1056 if (PtSoft<50.)
return 41.9+3.8*PtSoft+0.1*
std::pow(PtSoft,2)-12.7+ 1.39*SoftSumet-0.03*
std::pow(SoftSumet,2);
1057 else return 41.9+3.8*50.+0.1*
std::pow(50.,2)-12.7+ 1.39*SoftSumet-0.03*
std::pow(SoftSumet,2);
1060 if (PtSoft<50.)
return 41.9+3.8*PtSoft+0.1*
std::pow(PtSoft,2);
1061 else return (40.5614)+(4.10965)*50.+(0.0955044)*
std::pow(50.,2);
1067 if (PtSoft<45.)
return 40. + 2*PtSoft + 0.1*
std::pow(PtSoft,2);
1068 else return 40. + 2*45 + 0.1*
std::pow(45,2);
1074 if (-60.<=PtSoft_Parall && PtSoft_Parall<0.)
return -8. -0.4*PtSoft_Parall;
1075 if (-60.>PtSoft_Parall)
return -8. -0.4 * (-60.);
1076 if( PtSoft_Parall>=0. && PtSoft_Parall<60.)
return -8. -PtSoft_Parall;
1077 if(PtSoft_Parall>60.)
return -8. -60.;