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.;