37 #ifdef XAOD_STANDALONE
74 m_phi_reso_pt20(nullptr),
75 m_phi_reso_pt50(nullptr),
76 m_phi_reso_pt100(nullptr)
110 m_file = TFile::Open(configpath.c_str());
120 ATH_MSG_ERROR(
"PU Jet Uncertainty TFile is not valid: " << configpath);
121 return StatusCode::FAILURE;
124 std::string toolName;
125 std::string
jetcoll =
"AntiKt4EMTopoJets";
132 std::string
config =
"JES_data2017_2016_2015_Recommendation_Aug2018_rel21.config";
133 std::string calibSeq =
"JetArea_Residual_EtaJES_GSC_Smear";
134 std::string calibArea =
"00-04-81";
136 config =
"JES_data2017_2016_2015_Recommendation_PFlow_Aug2018_rel21.config";
137 calibSeq =
"JetArea_Residual_EtaJES_GSC_Smear";
138 calibArea =
"00-04-81";
150 ATH_MSG_INFO(
"Set up MuonCalibrationAndSmearing tools");
151 toolName =
"MuonCalibrationAndSmearingTool";
153 ATH_MSG_WARNING(
"Setup the muon calibration tool with calib mode 1. Please consider to configure the tool via the 'MuonCalibTool' property.");
161 toolName =
"EgammaCalibrationAndSmearingTool";
163 asg::AsgToolConfig toolConfig (
"CP::EgammaCalibrationAndSmearingTool/METSigAutoConf_" + toolName);
172 toolName =
"TauPerfTool";
181 return StatusCode::SUCCESS;
191 return StatusCode::SUCCESS;
203 double particle_sum[2][2] = {{0.0,0.0}, {0.0,0.0}};
214 unsigned nIterSoft=0;
215 double softSumET=0.0;
218 if(metCont->
find(totalMETName)!=metCont->
end()){
221 ATH_MSG_ERROR(
"NOT the total MET with name:" <<totalMETName);
222 return StatusCode::SUCCESS;
233 ATH_MSG_ERROR(
"Could not find the total MET with name:" <<totalMETName);
234 return StatusCode::SUCCESS;
239 for(
const auto met : *metCont) {
246 if(
met->source()==invisSource)
continue;
254 if(
met->name()!=softTermName || nIterSoft>0){
255 if(nIterSoft>0)
ATH_MSG_ERROR(
"Found multiple soft terms with the name:" <<softTermName <<
". Your MET configuration is wrong!!!");
269 for(
const auto&
el : acc_constitObjLinks(*
met)) {
271 float pt_reso=0.0, phi_reso=0.0;
273 ATH_MSG_ERROR(
"Particle pointer is not valid. This will likely result in a crash " <<
obj);
274 return StatusCode::FAILURE;
283 if(
met->name()!=jetTermName)
continue;
301 double particle_u[2][2] = {{pt_reso*pt_reso*
obj->pt()*
obj->pt()/
m_GeV/
m_GeV,0.0},
303 double particle_u_rot[2][2] = {{pt_reso*pt_reso*
obj->pt()*
obj->pt()/
m_GeV/
m_GeV,0.0},
306 m_VarL+=particle_u_rot[0][0];
307 m_VarT+=particle_u_rot[1][1];
308 m_CvLT+=particle_u_rot[0][1];
312 particle_u_rot[1][1],
313 particle_u_rot[0][1],
316 RotateXY (particle_u, particle_u_rot,
obj->p4().Phi());
317 AddMatrix(particle_sum, particle_u_rot, particle_sum);
320 ATH_MSG_VERBOSE(
"Resolution: " << pt_reso <<
" phi reso: " << phi_reso );
340 met_vect.SetXYZ(MEx,MEy,0.0);
349 met_vect.SetXYZ(MEx,MEy,0.0);
372 return StatusCode::SUCCESS;
390 return StatusCode::SUCCESS;
414 return StatusCode::SUCCESS;
421 bool DoEMuReso =
false;
426 if(
obj->pt()>0.5e6) pt_reso=0.03;
427 if(
obj->pt()>1.0e6) pt_reso=0.1;
431 if(
muon->muonType()==0){
434 else if(
muon->muonType()==1){
437 else if(
muon->muonType()>1){
441 ATH_MSG_VERBOSE(
"This muon had none of the normal muon types (ID,MS,CB) - check this in detail");
442 return StatusCode::FAILURE;
452 ATH_MSG_VERBOSE(
"muon: " << pt_reso <<
" dettype: " << dettype <<
" " <<
muon->pt() <<
" " <<
muon->p4().Eta() <<
" " <<
muon->p4().Phi());
457 ATH_MSG_VERBOSE(
"muon: " << pt_reso <<
" dettype: " << dettype <<
" " <<
obj->pt() <<
" " <<
obj->p4().Eta() <<
" " <<
obj->p4().Phi());
466 return StatusCode::SUCCESS;
472 bool DoEMuReso =
false;
482 ATH_MSG_VERBOSE(
"el: " << pt_reso <<
" " << ele->
pt() <<
" " << ele->
p4().Eta() <<
" " << ele->
p4().Phi());
487 DoEMuReso = acc_EMReso.
isAvailable(*ele) ? acc_EMReso(*ele) :
false;
497 return StatusCode::SUCCESS;
511 ATH_MSG_VERBOSE(
"pho: " << pt_reso <<
" " << pho->
pt() <<
" " << pho->
p4().Eta() <<
" " << pho->
p4().Phi());
513 return StatusCode::SUCCESS;
520 double pt_reso_dbl_data=0.0, pt_reso_dbl_mc=0.0, pt_reso_dbl_max=0.0;
528 pt_reso_dbl_max =
std::max(pt_reso_dbl_data,pt_reso_dbl_mc);
529 pt_reso = pt_reso_dbl_max;
535 double jet_pu_unc = 0.;
536 if(acc_fjvt.isAvailable(*
jet))
538 else if(acc_fjvt_der.isAvailable(*
jet))
541 ATH_MSG_ERROR(
"No fJVT decoration available - must have treat pileup jets set to off or provide fJVT!");
542 return StatusCode::FAILURE;
544 pt_reso = std::sqrt(jet_pu_unc*jet_pu_unc + pt_reso*pt_reso);
552 phi_reso =
jet->pt()*jet_phi_unc;
559 float extra_relative_pt_reso = acc_extra(*
jet);
560 pt_reso = std::sqrt(pt_reso*pt_reso + extra_relative_pt_reso*extra_relative_pt_reso);
564 return StatusCode::SUCCESS;
578 pt_reso = combp4->getMvaEnergyResolution(*tau);
582 ATH_MSG_VERBOSE(
"tau: " << pt_reso <<
" " << tau->
pt() <<
" " << tau->
p4().Eta() <<
" " << tau->
p4().Phi() <<
" phi reso: " << phi_reso);
603 m_VarL+=particle_u_rot[0][0];
604 m_VarT+=particle_u_rot[1][1];
605 m_CvLT+=particle_u_rot[0][1];
609 particle_u_rot[1][1],
610 particle_u_rot[0][1],
613 RotateXY (particle_u, particle_u_rot,-1.0*soft->
phi());
614 AddMatrix(particle_sum, particle_u_rot, particle_sum);
617 <<
" Var_L: " << particle_u_rot[0][0] <<
" Var_T: " << particle_u_rot[1][1]
618 <<
" " << particle_u_rot[0][1]);
622 ATH_MSG_VERBOSE(
"Resolution Soft term parameterized in pthard direction");
630 double particle_u[2][2] = {{varTST,0.0},
632 double particle_u_rot[2][2] = {{varTST,0.0},
636 m_VarL+=particle_u_rot[0][0];
637 m_VarT+=particle_u_rot[1][1];
638 m_CvLT+=particle_u_rot[0][1];
642 particle_u_rot[1][1],
643 particle_u_rot[0][1],
647 AddMatrix(particle_sum, particle_u_rot, particle_sum);
658 double particle_u[2][2] = {{varTST,0.0},
660 double particle_u_rot[2][2] = {{varTST,0.0},
664 m_VarL+=particle_u_rot[0][0];
665 m_VarT+=particle_u_rot[1][1];
666 m_CvLT+=particle_u_rot[0][1];
670 particle_u_rot[1][1],
671 particle_u_rot[0][1],
674 RotateXY (particle_u, particle_u_rot,-1.0*soft->
phi());
675 AddMatrix(particle_sum, particle_u_rot, particle_sum);
685 double jet_pt,
double jet_jvt,
693 if(std::abs(jet_eta)<2.4){
695 if(jet_jvt<0.11) unc = 1;
696 else if(jet_jvt<0.25) unc = 0.0730 + 0.0024 * avgmu + 0.00001 * avgmu * avgmu;
697 else if(jet_jvt<0.85) unc = 0.0995 + 0.0031 * avgmu + 0.00005 * avgmu * avgmu;
698 else if(jet_jvt<0.95) unc = 0.0311 + 0.0025 * avgmu + 0.00005 * avgmu * avgmu;
699 else unc = 0.0308 -0.0010 * avgmu + 0.00006 * avgmu * avgmu ;
701 if(jet_jvt<0.11) unc = 1.;
702 else if(jet_jvt<0.25) unc = 1.;
703 else if(jet_jvt<0.85) unc = -0.0188 + 0.0039 * avgmu + 0.00002 * avgmu * avgmu;
704 else if(jet_jvt<0.95) unc = 0.0252 -0.0009 * avgmu + 0.00006 * avgmu * avgmu ;
705 else unc = 0.0085 -0.0003 * avgmu + 0.00002 * avgmu * avgmu ;
707 if(jet_jvt<0.11) unc = 1;
708 else if(jet_jvt<0.25) unc = 0.0345 -0.0006 * avgmu + 0.00004 * avgmu * avgmu ;
709 else if(jet_jvt<0.85) unc = 0.1078 -0.0051 * avgmu + 0.00011 * avgmu * avgmu ;
710 else if(jet_jvt<0.95) unc = -0.0026 + 0.0005 * avgmu + 0.00002 * avgmu * avgmu;
711 else unc = 0.0090 -0.0004 * avgmu + 0.00001 * avgmu * avgmu ;
713 if(jet_jvt<0.11) unc = 1;
714 else if(jet_jvt<0.25) unc = -0.0321 + 0.0030 * avgmu -0.00002 * avgmu * avgmu;
715 else if(jet_jvt<0.85) unc = 0.0260 -0.0007 * avgmu + 0.00003 * avgmu * avgmu ;
716 else unc = -0.0040 + 0.0003 * avgmu;
717 }
else if(jet_pt<100){
718 unc = 0.9492 -2.0757 * jet_jvt + 1.13328 * jet_jvt * jet_jvt;
719 }
else if(jet_pt<150){
720 unc = 0.7888 -1.8372 * jet_jvt + 1.05539 * jet_jvt * jet_jvt;
722 }
else if(std::abs(jet_eta)<2.6){
724 if(jet_jvt<0.11) unc = 0.2633 + 0.0091 * avgmu + -0.00009 * avgmu * avgmu;
725 else if(jet_jvt<0.25) unc = 0.1841 + 0.0144 * avgmu + -0.00008 * avgmu * avgmu;
726 else if(jet_jvt<0.85) unc = 0.1401 + 0.0048 * avgmu + 0.00006 * avgmu * avgmu ;
727 else if(jet_jvt<0.95) unc = -0.0118 + 0.0076 * avgmu + 0.00003 * avgmu * avgmu;
728 else unc = 0.0534 + -0.0011 * avgmu + 0.00010 * avgmu * avgmu;
730 if(jet_jvt<0.11) unc = 0.1497 + 0.0133 * avgmu + -0.00015 * avgmu * avgmu ;
731 else if(jet_jvt<0.25) unc = -0.2260 + 0.0276 * avgmu + -0.00021 * avgmu * avgmu ;
732 else if(jet_jvt<0.85) unc = 0.2743 + -0.0093 * avgmu + 0.00022 * avgmu * avgmu ;
733 else if(jet_jvt<0.95) unc = 0.0604 + 0.0006 * avgmu + 0.00006 * avgmu * avgmu ;
734 else unc = 0.0478 + -0.0009 * avgmu + 0.00004 * avgmu * avgmu ;
736 if(jet_jvt<0.11) unc = -0.2187 + 0.0317 * avgmu + -0.00037 * avgmu * avgmu ;
737 else if(jet_jvt<0.25) unc = 0.0964 + 0.0053 * avgmu + 0.00002 * avgmu * avgmu ;
738 else if(jet_jvt<0.85) unc = 1.1730 + -0.0624 * avgmu + 0.00088 * avgmu * avgmu ;
739 else if(jet_jvt<0.95) unc = -0.2011 + 0.0151 * avgmu + -0.00018 * avgmu * avgmu ;
740 else unc = 0.0145 + -0.0003 * avgmu + 0.00002 * avgmu * avgmu ;
742 if(jet_jvt<0.11) unc = 0.0051 + 0.0113 * avgmu + -0.00008 * avgmu * avgmu ;
743 else if(jet_jvt<0.25) unc = -0.1024 + 0.0109 * avgmu + -0.00006 * avgmu * avgmu ;
744 else if(jet_jvt<0.85) unc = 1.2491 + -0.0501 * avgmu + 0.00052 * avgmu * avgmu ;
745 else unc = 0.0267 + -0.0014 * avgmu + 0.00003 * avgmu * avgmu ;
746 }
else if(jet_pt<100){
747 unc = 0.8951 -2.4995 * jet_jvt + 1.63229 * jet_jvt * jet_jvt;
748 }
else if(jet_pt<150){
749 unc = 0.9998 -1.7319 * jet_jvt + 0.72680 * jet_jvt * jet_jvt;
751 }
else if(std::abs(jet_eta)<2.7){
753 if(jet_jvt<0.11) unc = 0.3001 + 0.0054 * avgmu -0.00004 * avgmu * avgmu ;
754 else if(jet_jvt<0.25) unc = 0.0663 + 0.0198 * avgmu -0.00013 * avgmu * avgmu ;
755 else if(jet_jvt<0.85) unc = -0.0842 + 0.0163 * avgmu -0.00008 * avgmu * avgmu ;
756 else if(jet_jvt<0.95) unc = -0.0219 + 0.0080 * avgmu + 0.00003 * avgmu * avgmu;
757 else unc = 0.0461 -0.0003 * avgmu + 0.00012 * avgmu * avgmu ;
759 if(jet_jvt<0.11) unc = 0.1885 + 0.0083 * avgmu -0.00006 * avgmu * avgmu ;
760 else if(jet_jvt<0.25) unc = -0.0286 + 0.0150 * avgmu -0.00007 * avgmu * avgmu;
761 else if(jet_jvt<0.85) unc = 0.0152 + 0.0028 * avgmu + 0.00005 * avgmu * avgmu;
762 else if(jet_jvt<0.95) unc = 0.1815 -0.0076 * avgmu + 0.00018 * avgmu * avgmu ;
763 else unc = 0.0192 -0.0003 * avgmu + 0.00007 * avgmu * avgmu ;
765 if(jet_jvt<0.11) unc = 0.1257 + 0.0074 * avgmu -0.00004 * avgmu * avgmu ;
766 else if(jet_jvt<0.25) unc = -0.0276 + 0.0080 * avgmu + 0.00000 * avgmu * avgmu;
767 else if(jet_jvt<0.85) unc = 0.1403 -0.0051 * avgmu + 0.00009 * avgmu * avgmu ;
768 else if(jet_jvt<0.95) unc = 0.2078 -0.0101 * avgmu + 0.00017 * avgmu * avgmu ;
769 else unc = 0.2597 -0.0132 * avgmu + 0.00020 * avgmu * avgmu ;
771 if(jet_jvt<0.11) unc = 0.1111 + 0.0045 * avgmu -0.00000 * avgmu * avgmu ;
772 else if(jet_jvt<0.25) unc = 0.0975 -0.0011 * avgmu + 0.00008 * avgmu * avgmu ;
773 else if(jet_jvt<0.85) unc = 0.0920 -0.0053 * avgmu + 0.00013 * avgmu * avgmu ;
774 else unc = -0.0071 + 0.0016 * avgmu -0.00001 * avgmu * avgmu;
775 }
else if(jet_pt<100){
776 unc = 0.4660 -1.2116 * jet_jvt + 0.78807 * jet_jvt * jet_jvt;
777 }
else if(jet_pt<150){
778 unc = 0.2254 -0.5476 * jet_jvt + 0.32617 * jet_jvt * jet_jvt;
782 float fjvt = jet_fjvt>0.6 ? 0.6 : jet_fjvt;
783 if(jet_pt<30) unc = 0.5106 + 1.2566 * fjvt -1.15060 * fjvt * fjvt;
784 else if(jet_pt<40) unc = 0.2972 + 1.9418 * fjvt -1.82694 * fjvt * fjvt;
785 else if(jet_pt<50) unc = 0.1543 + 1.9864 * fjvt -1.48429 * fjvt * fjvt;
786 else if(jet_pt<60) unc = 0.1050 + 1.3196 * fjvt + 0.03554 * fjvt * fjvt;
787 else if(jet_pt<120) unc = 0.0400 + 0.5653 * fjvt + 1.96323 * fjvt * fjvt;
789 if(jet_fjvt>0.6) unc = 0.9;
793 if(std::abs(jet_eta)<2.4){
795 if(jet_jvt<0.11) unc = 1;
796 else if(jet_jvt<0.25) unc = 0.2494 + 0.0076 * avgmu -0.00001 * avgmu * avgmu ;
797 else if(jet_jvt<0.85) unc = 0.0626 + 0.0037 * avgmu + 0.00004 * avgmu * avgmu;
798 else if(jet_jvt<0.95) unc = 0.0192 + 0.0017 * avgmu + 0.00005 * avgmu * avgmu;
799 else unc = 0.0147 -0.0003 * avgmu + 0.00004 * avgmu * avgmu ;
801 if(jet_jvt<0.11) unc = 1;
802 else if(jet_jvt<0.25) unc = 0.1979 + 0.0034 * avgmu + 0.00003 * avgmu * avgmu;
803 else if(jet_jvt<0.85) unc = 0.0731 -0.0022 * avgmu + 0.00009 * avgmu * avgmu ;
804 else if(jet_jvt<0.95) unc = 0.0281 -0.0012 * avgmu + 0.00006 * avgmu * avgmu ;
805 else unc = 0.0086 -0.0003 * avgmu + 0.00002 * avgmu * avgmu ;
807 if(jet_jvt<0.11) unc = 1;
808 else if(jet_jvt<0.25) unc = 0.2242 -0.0010 * avgmu + 0.00006 * avgmu * avgmu ;
809 else if(jet_jvt<0.85) unc = 0.0568 -0.0019 * avgmu + 0.00006 * avgmu * avgmu ;
810 else if(jet_jvt<0.95) unc = -0.0050 + 0.0008 * avgmu + 0.00001 * avgmu * avgmu;
811 else unc = 0.0037 -0.0000 * avgmu + 0.00000 * avgmu * avgmu ;
813 if(jet_jvt<0.11) unc = 1;
814 else if(jet_jvt<0.25) unc = 0.0027 + 0.0058 * avgmu -0.00001 * avgmu * avgmu ;
815 else if(jet_jvt<0.85) unc = -0.0143 + 0.0008 * avgmu + 0.00001 * avgmu * avgmu;
816 else unc = -0.0012 + 0.0001 * avgmu + 0.00000 * avgmu * avgmu;
817 }
else if(jet_pt<100){
818 unc = 0.8558 -1.8519 * jet_jvt + 1.00208 * jet_jvt * jet_jvt;
819 }
else if(jet_pt<150){
820 unc = 0.6474 -1.4491 * jet_jvt + 0.80591 * jet_jvt * jet_jvt;
822 }
else if(std::abs(jet_eta)<2.6){
824 if(jet_jvt<0.11) unc = 0.2633 + 0.0091 * avgmu + -0.00009 * avgmu * avgmu;
825 else if(jet_jvt<0.25) unc = 0.1841 + 0.0144 * avgmu + -0.00008 * avgmu * avgmu;
826 else if(jet_jvt<0.85) unc = 0.1401 + 0.0048 * avgmu + 0.00006 * avgmu * avgmu ;
827 else if(jet_jvt<0.95) unc = -0.0118 + 0.0076 * avgmu + 0.00003 * avgmu * avgmu;
828 else unc = 0.0534 + -0.0011 * avgmu + 0.00010 * avgmu * avgmu;
830 if(jet_jvt<0.11) unc = 0.1497 + 0.0133 * avgmu + -0.00015 * avgmu * avgmu ;
831 else if(jet_jvt<0.25) unc = -0.2260 + 0.0276 * avgmu + -0.00021 * avgmu * avgmu ;
832 else if(jet_jvt<0.85) unc = 0.2743 + -0.0093 * avgmu + 0.00022 * avgmu * avgmu ;
833 else if(jet_jvt<0.95) unc = 0.0604 + 0.0006 * avgmu + 0.00006 * avgmu * avgmu ;
834 else unc = 0.0478 + -0.0009 * avgmu + 0.00004 * avgmu * avgmu ;
836 if(jet_jvt<0.11) unc = -0.2187 + 0.0317 * avgmu + -0.00037 * avgmu * avgmu ;
837 else if(jet_jvt<0.25) unc = 0.0964 + 0.0053 * avgmu + 0.00002 * avgmu * avgmu ;
838 else if(jet_jvt<0.85) unc = 1.1730 + -0.0624 * avgmu + 0.00088 * avgmu * avgmu ;
839 else if(jet_jvt<0.95) unc = -0.2011 + 0.0151 * avgmu + -0.00018 * avgmu * avgmu ;
840 else unc = 0.0145 + -0.0003 * avgmu + 0.00002 * avgmu * avgmu ;
842 if(jet_jvt<0.11) unc = 0.0051 + 0.0113 * avgmu + -0.00008 * avgmu * avgmu ;
843 else if(jet_jvt<0.25) unc = -0.1024 + 0.0109 * avgmu + -0.00006 * avgmu * avgmu ;
844 else if(jet_jvt<0.85) unc = 1.2491 + -0.0501 * avgmu + 0.00052 * avgmu * avgmu ;
845 else unc = 0.0267 + -0.0014 * avgmu + 0.00003 * avgmu * avgmu ;
846 }
else if(jet_pt<100){
847 unc = 0.8802 -1.6233 * jet_jvt + 0.74604 * jet_jvt * jet_jvt;
848 }
else if(jet_pt<150){
849 unc = 0.9762 -2.4160 * jet_jvt + 1.45763 * jet_jvt * jet_jvt;
851 }
else if(std::abs(jet_eta)<2.7){
853 if(jet_jvt<0.11) unc = 0.2877 + 0.0056 * avgmu -0.00004 * avgmu * avgmu;
854 else if(jet_jvt<0.25) unc = 0.0353 + 0.0196 * avgmu -0.00012 * avgmu * avgmu;
855 else if(jet_jvt<0.85) unc = -0.1616 + 0.0188 * avgmu -0.00009 * avgmu * avgmu;
856 else if(jet_jvt<0.95) unc = 0.0373 + 0.0048 * avgmu + 0.00006 * avgmu * avgmu;
857 else unc = 0.0666 -0.0007 * avgmu + 0.00013 * avgmu * avgmu;
859 if(jet_jvt<0.11) unc = 0.1331 + 0.0098 * avgmu -0.00007 * avgmu * avgmu;
860 else if(jet_jvt<0.25) unc = 0.0570 + 0.0096 * avgmu -0.00000 * avgmu * avgmu;
861 else if(jet_jvt<0.85) unc = 0.2338 -0.0094 * avgmu + 0.00019 * avgmu * avgmu;
862 else if(jet_jvt<0.95) unc = 0.2930 -0.0127 * avgmu + 0.00023 * avgmu * avgmu;
863 else unc = 0.0152 -0.0003 * avgmu + 0.00007 * avgmu * avgmu;
865 if(jet_jvt<0.11) unc = 0.1582 + 0.0060 * avgmu -0.00003 * avgmu * avgmu;
866 else if(jet_jvt<0.25) unc = -0.0079 + 0.0057 * avgmu + 0.00003 * avgmu * avgmu;
867 else if(jet_jvt<0.85) unc = 0.1865 -0.0081 * avgmu + 0.00013 * avgmu * avgmu;
868 else if(jet_jvt<0.95) unc = 0.9103 -0.0405 * avgmu + 0.00049 * avgmu * avgmu;
869 else unc = 0.1183 -0.0048 * avgmu + 0.00009 * avgmu * avgmu;
871 if(jet_jvt<0.11) unc = 0.0859 + 0.0047 * avgmu -0.00000 * avgmu * avgmu;
872 else if(jet_jvt<0.25) unc = 0.0249 + 0.0027 * avgmu + 0.00004 * avgmu * avgmu;
873 else if(jet_jvt<0.85) unc = 0.1865 -0.0087 * avgmu + 0.00012 * avgmu * avgmu;
874 else unc = 0.2069 -0.0087 * avgmu + 0.00011 * avgmu * avgmu;
875 }
else if(jet_pt<100){
876 unc = 0.4281 -1.1109 * jet_jvt + 0.71551 * jet_jvt * jet_jvt;
877 }
else if(jet_pt<150){
878 unc = 0.2033 -0.5162 * jet_jvt + 0.33810 * jet_jvt * jet_jvt;
882 float fjvt = jet_fjvt>0.6 ? 0.6 : jet_fjvt;
883 if(jet_pt<30) unc = 0.5295 + 1.2467 * fjvt -1.13946 * fjvt * fjvt;
884 else if(jet_pt<40) unc = 0.3118 + 1.9951 * fjvt -1.86882 * fjvt * fjvt;
885 else if(jet_pt<50) unc = 0.1347 + 2.3884 * fjvt -1.96891 * fjvt * fjvt;
886 else if(jet_pt<60) unc = 0.0872 + 1.5718 * fjvt + 0.02135 * fjvt * fjvt;
887 else if(jet_pt<120) unc = 0.0303 + 0.8560 * fjvt + 1.89537 * fjvt * fjvt;
889 if(jet_fjvt>0.6) unc = 0.9;
913 else if(jet_pt<100.0)
920 if(-4.5<jet_eta && -3.8>=jet_eta)
return 1;
921 else if(-3.8<jet_eta && -3.5>=jet_eta)
return 2;
922 else if(-3.5<jet_eta && -3.0>=jet_eta)
return 3;
923 else if(-3.0<jet_eta && -2.7>=jet_eta)
return 4;
924 else if(-2.7<jet_eta && -2.4>=jet_eta)
return 5;
925 else if(-2.4<jet_eta && -1.5>=jet_eta)
return 6;
926 else if(-1.5<jet_eta && -0.5>=jet_eta)
return 7;
927 else if(-0.5<jet_eta && 0.0>=jet_eta)
return 8;
928 else if(0.0<jet_eta && 0.5>=jet_eta)
return 9;
929 else if(0.5<jet_eta && 1.5>=jet_eta)
return 10;
930 else if(1.5<jet_eta && 2.4>=jet_eta)
return 11;
931 else if(2.4<jet_eta && 2.7>=jet_eta)
return 12;
932 else if(2.7<jet_eta && 3.0>=jet_eta)
return 13;
933 else if(3.0<jet_eta && 3.5>=jet_eta)
return 14;
934 else if(3.5<jet_eta && 3.8>=jet_eta)
return 15;
935 else if(3.8<jet_eta )
return 16;
944 return std::make_tuple( V11, V22, V12);
949 Double_t
rho =
cov / std::sqrt( var_parall * var_perpen ) ;
950 Double_t Significance = 0;
951 if (std::abs(
rho ) >= 0.9 ){
958 if( std::abs(Significance) >= 10
e+15)
983 mat_new[0][0]=
X[0][0]+
Y[0][0];
984 mat_new[0][1]=
X[0][1]+
Y[0][1];
985 mat_new[1][0]=
X[1][0]+
Y[1][0];
986 mat_new[1][1]=
X[1][1]+
Y[1][1];
1011 if (PtSoft<60.)
return (0.145)+(-0.45)*PtSoft;
1012 else return (0.145)+(-0.45)*(60.);
1019 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);
1020 else return 41.9+3.8*50.+0.1*
std::pow(50.,2)-12.7+ 1.39*SoftSumet-0.03*
std::pow(SoftSumet,2);
1023 if (PtSoft<50.)
return 41.9+3.8*PtSoft+0.1*
std::pow(PtSoft,2);
1024 else return (40.5614)+(4.10965)*50.+(0.0955044)*
std::pow(50.,2);
1030 if (PtSoft<45.)
return 40. + 2*PtSoft + 0.1*
std::pow(PtSoft,2);
1031 else return 40. + 2*45 + 0.1*
std::pow(45,2);
1037 if (-60.<=PtSoft_Parall && PtSoft_Parall<0.)
return -8. -0.4*PtSoft_Parall;
1038 if (-60.>PtSoft_Parall)
return -8. -0.4 * (-60.);
1039 if( PtSoft_Parall>=0. && PtSoft_Parall<60.)
return -8. -PtSoft_Parall;
1040 if(PtSoft_Parall>60.)
return -8. -60.;