diff --git a/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorAnalysisAlgorithm.cxx b/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorAnalysisAlgorithm.cxx index daa0dc8a5b3229cd9f9a0d1406410afd4dacf50a..19b477ba66ae40f91bd7329282d2f63c4e3fa2eb 100644 --- a/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorAnalysisAlgorithm.cxx +++ b/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorAnalysisAlgorithm.cxx @@ -923,6 +923,7 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillHLTElectronResolution(const std::st const float feta = abs(onl_eta); const float onl_et = getEt(onl)/Gaudi::Units::GeV; const float avgmu=lbAverageInteractionsPerCrossing( Gaudi::Hive::currentContext() ); + const float dummy=dummy; eta_vec.push_back( onl_eta ); et_vec.push_back( onl_et ); @@ -931,7 +932,10 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillHLTElectronResolution(const std::st val_off=getTrack_pt(off); if(val_off!=0.){ res_pt_vec.push_back( (getTrack_pt(off)-val_off)/val_off ); - } + }else{ + } + + val_off=getEt(off); if(val_off!=0.){ res_et_vec.push_back( (getEt(onl)-val_off)/val_off ); @@ -944,61 +948,103 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillHLTElectronResolution(const std::st else if( feta >= 1.8 && feta < 2.45 ) res_etInEta3_vec.push_back((getEt(onl)-val_off)/val_off); } + val_off=off->eta(); if(val_off!=0.){ res_eta_vec.push_back( (onl_eta-val_off)/val_off ); + }else{ + res_eta_vec.push_back( dummy ); } + val_off=off->phi(); if(val_off!=0.){ res_phi_vec.push_back( (onl->phi()-val_off)/val_off ); + }else{ + res_phi_vec.push_back(dummy ); } + val_off=getShowerShape_ethad(off); if(val_off!=0.) { res_ethad_vec.push_back((getShowerShape_ethad(onl)-val_off)/val_off); + }else{ + res_ethad_vec.push_back( dummy ); } + val_off=getShowerShape_ethad1(off); if(val_off!=0){ res_ethad1_vec.push_back((getShowerShape_ethad1(onl)-val_off)/val_off); + }else{ + res_ethad1_vec.push_back( dummy); } + val_off=getShowerShape_Rhad(off); if(val_off!=0.){ res_Rhad_vec.push_back( (getShowerShape_Rhad(onl)-val_off)/val_off ); + }else{ + res_Rhad_vec.push_back( dummy ); } + val_off=getShowerShape_Rhad1(off); if(val_off!=0.){ res_Rhad1_vec.push_back( (getShowerShape_Rhad1(onl)-val_off)/val_off ); + }else{ + res_Rhad1_vec.push_back( dummy ); } + val_off=getShowerShape_Reta(off); if(val_off!=0.){ res_Reta_vec.push_back( (getShowerShape_Reta(onl)-val_off)/val_off ); + }else{ + res_Reta_vec.push_back( dummy ); } + val_off=getShowerShape_Rphi(off); if(val_off!=0.){ res_Rphi_vec.push_back( (getShowerShape_Rphi(onl)-val_off)/val_off ); + }else{ + res_Rphi_vec.push_back( (getShowerShape_Rphi(onl)-val_off)/val_off ); } + val_off=getShowerShape_weta1(off); if(val_off!=0.){ res_weta1_vec.push_back( (getShowerShape_weta1(onl)-val_off)/val_off ); + }else{ + res_weta1_vec.push_back( dummy ); } + val_off=getShowerShape_weta2(off); if(val_off!=0.){ res_weta2_vec.push_back( (getShowerShape_weta2(onl)-val_off)/val_off ); + }else{ + res_weta2_vec.push_back( dummy ); } + val_off=getShowerShape_wtots1(off); if(val_off!=0.){ res_wtots1_vec.push_back( (getShowerShape_wtots1(onl)-val_off)/val_off ); + }else{ + res_wtots1_vec.push_back( dummy ); } + val_off=getShowerShape_f1(off); if(val_off!=0.){ res_f1_vec.push_back( (getShowerShape_f1(onl)-val_off)/val_off ); + }else{ + res_f1_vec.push_back(dummy ); } + val_off=getShowerShape_f3(off); if(val_off!=0.){ res_f3_vec.push_back( (getShowerShape_f3(onl)-val_off)/val_off ); + }else{ + res_f3_vec.push_back( dummy ); } + val_off=getShowerShape_Eratio(off); if(val_off!=0.){ res_eratio_vec.push_back( (getShowerShape_Eratio(onl)-val_off)/val_off ); + }else{ + res_eratio_vec.push_back( dummy ); } @@ -1007,28 +1053,52 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillHLTElectronResolution(const std::st // val_off=getTrack_pt(off); - if(val_off!=0.) + if(val_off!=0.){ res_pt_vec.push_back( (getTrack_pt(onl)-val_off)/val_off ); + }else{ + res_pt_vec.push_back( dummy ); + } + val_off=getEt(off); - if(val_off!=0.) + if(val_off!=0.) { res_et_vec.push_back( (getEt(onl)-val_off)/val_off ); + }else{ + res_et_vec.push_back( dummy ); + } + val_off=getCaloTrackMatch_deltaEta1(off); - if(val_off!=0.) + if(val_off!=0.) { res_deta1_vec.push_back( (getCaloTrackMatch_deltaEta1(onl)-val_off)/val_off ); + }else{ + res_deta1_vec.push_back( dummy ); + } + val_off=getCaloTrackMatch_deltaEta2(off); res_deta2_vec.push_back( (getCaloTrackMatch_deltaEta2(onl)-val_off)/val_off ); val_off=getCaloTrackMatch_deltaPhi2(off); - if(val_off!=0.) + if(val_off!=0.) { res_dphi2_vec.push_back( (getCaloTrackMatch_deltaPhi2(onl)-val_off)/val_off ); + }else{ + res_dphi2_vec.push_back(dummy ); + } + val_off=getCaloTrackMatch_deltaPhiRescaled2(off); res_dphiresc_vec.push_back( (getCaloTrackMatch_deltaPhiRescaled2(onl)-val_off)/val_off ); // Absolute resolution for impact parameter val_off=getTrack_d0(off); - if(val_off!=0.) + if(val_off!=0.) { res_d0_vec.push_back( getTrack_d0(onl)-val_off ); + }else{ + res_d0_vec.push_back( dummy ); + } + val_off=getD0sig(off); - if(val_off!=0.) + if(val_off!=0.) { res_d0sig_vec.push_back( getD0sig(onl)-val_off ); + }else{ + res_d0sig_vec.push_back( dummy ); + } + // Absolute resolution on track summary ints/floats val_off=getTrackSummaryFloat_eProbabilityHT(off); res_eprobht_vec.push_back( (getTrackSummaryFloat_eProbabilityHT(onl)-val_off) ); @@ -1041,16 +1111,18 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillHLTElectronResolution(const std::st if(filliso){ float val_off=getIsolation_ptcone20(off); - if (getEt(onl) > 0. && getEt(off) > 0.){ - // Fill 2D here - } if (val_off > 0.) { res_ptcone20_vec.push_back((getIsolation_ptcone20(onl)-val_off)/val_off); if (getEt(onl) > 0. && getEt(off) > 0.) { const float reliso_onl=getIsolation_ptcone20(onl)/getEt(onl); const float reliso_off=getIsolation_ptcone20(off)/getEt(off); res_ptcone20_rel_vec.push_back((reliso_onl-reliso_off)/reliso_off); + }else{ + res_ptcone20_rel_vec.push_back(dummy); } + }else{ + res_ptcone20_vec.push_back(dummy); + res_ptcone20_rel_vec.push_back(dummy); } // ptvarcone20 isolation @@ -1061,7 +1133,12 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillHLTElectronResolution(const std::st const float reliso_onl=getIsolation_ptvarcone20(onl)/getEt(onl); const float reliso_off=getIsolation_ptvarcone20(off)/getEt(off); res_ptvarcone20_rel_vec.push_back((reliso_onl-reliso_off)/reliso_off); + }else{ + res_ptvarcone20_rel_vec.push_back(dummy); } + }else{ + res_ptvarcone20_vec.push_back(dummy); + res_ptvarcone20_rel_vec.push_back(dummy); } } @@ -1215,6 +1292,7 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillHLTPhotonResolution(const std::stri const float onl_eta=onl->eta(); const float feta = abs(onl_eta); const float onl_et = getCluster_et(onl)/Gaudi::Units::GeV; + const float dummy=dummy; const float avgmu=lbAverageInteractionsPerCrossing( Gaudi::Hive::currentContext() ); et_vec.push_back( onl_et ); @@ -1233,10 +1311,8 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillHLTPhotonResolution(const std::stri res_etInEta2_vec.push_back((getCluster_et(onl)-val_off)/val_off); else if( feta >= 1.8 && feta < 2.45 ) res_etInEta3_vec.push_back((getCluster_et(onl)-val_off)/val_off); - if(xAOD::EgammaHelpers::isConvertedPhoton(off)){ - res_et_cnv_vec.push_back((getCluster_et(onl)-val_off)/val_off); if( feta < 1.37 ) res_cnv_etInEta0_vec.push_back((getCluster_et(onl)-val_off)/val_off); @@ -1246,7 +1322,6 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillHLTPhotonResolution(const std::stri res_cnv_etInEta2_vec.push_back((getCluster_et(onl)-val_off)/val_off); else if( feta >= 1.8 && feta < 2.45 ) res_cnv_etInEta3_vec.push_back((getCluster_et(onl)-val_off)/val_off); - }else{ res_et_uncnv_vec.push_back((getCluster_et(onl)-val_off)/val_off); if( feta < 1.37 ) @@ -1257,64 +1332,105 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillHLTPhotonResolution(const std::stri res_uncnv_etInEta2_vec.push_back((getCluster_et(onl)-val_off)/val_off); else if( feta >= 1.8 && feta < 2.45 ) res_uncnv_etInEta3_vec.push_back((getCluster_et(onl)-val_off)/val_off); - } } + val_off=off->eta(); if(val_off!=0.){ res_eta_vec.push_back( (onl_eta-val_off)/val_off ) ; + }else{ + res_eta_vec.push_back( dummy ) ; } + val_off=off->phi(); if(val_off!=0.){ res_phi_vec.push_back( (onl->phi()-val_off)/val_off ); + }else{ + res_phi_vec.push_back(dummy ); } + val_off=getShowerShape_ethad(off); if(val_off!=0.) { res_ethad_vec.push_back((getShowerShape_ethad(onl)-val_off)/val_off); + }else{ + res_ethad_vec.push_back(dummy); } + val_off=getShowerShape_ethad1(off); if(val_off!=0){ res_ethad1_vec.push_back((getShowerShape_ethad1(onl)-val_off)/val_off); + }else{ + res_ethad1_vec.push_back(dummy); } + val_off=getShowerShape_Rhad(off); if(val_off!=0.){ res_Rhad_vec.push_back( (getShowerShape_Rhad(onl)-val_off)/val_off ); + }else{ + res_Rhad_vec.push_back(dummy ); } + val_off=getShowerShape_Rhad1(off); if(val_off!=0.){ res_Rhad1_vec.push_back( (getShowerShape_Rhad1(onl)-val_off)/val_off ); + }else{ + res_Rhad1_vec.push_back(dummy ); } + val_off=getShowerShape_Reta(off); if(val_off!=0.){ res_Reta_vec.push_back( (getShowerShape_Reta(onl)-val_off)/val_off ); + }else{ + res_Reta_vec.push_back( dummy ); } + val_off=getShowerShape_Rphi(off); if(val_off!=0.){ res_Rphi_vec.push_back( (getShowerShape_Rphi(onl)-val_off)/val_off ); + }else{ + res_Rphi_vec.push_back(dummy ); } + val_off=getShowerShape_weta1(off); if(val_off!=0.){ res_weta1_vec.push_back( (getShowerShape_weta1(onl)-val_off)/val_off ); + }else{ + res_weta1_vec.push_back( dummy ); } + val_off=getShowerShape_weta2(off); if(val_off!=0.){ res_weta2_vec.push_back( (getShowerShape_weta2(onl)-val_off)/val_off ); + }else{ + res_weta2_vec.push_back(dummy); } + val_off=getShowerShape_wtots1(off); if(val_off!=0.){ res_wtots1_vec.push_back( (getShowerShape_wtots1(onl)-val_off)/val_off ); + }else{ + res_wtots1_vec.push_back( dummy ); } + val_off=getShowerShape_f1(off); if(val_off!=0.){ res_f1_vec.push_back( (getShowerShape_f1(onl)-val_off)/val_off ); + }else{ + res_f1_vec.push_back( dummy ); } + val_off=getShowerShape_f3(off); if(val_off!=0.){ res_f3_vec.push_back( (getShowerShape_f3(onl)-val_off)/val_off ); + }else{ + res_f3_vec.push_back( dummy ); } + val_off=getShowerShape_Eratio(off); if(val_off!=0.){ res_eratio_vec.push_back( (getShowerShape_Eratio(onl)-val_off)/val_off); + }else{ + res_eratio_vec.push_back( dummy); } @@ -1329,9 +1445,12 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillHLTPhotonResolution(const std::stri const float reliso_onl=getIsolation_topoetcone20(onl)/etonl; const float reliso_off=getIsolation_topoetcone20(off)/etoff; res_topoetcone20_rel_vec.push_back((reliso_onl-reliso_off)/reliso_off); + }else{ + res_topoetcone20_rel_vec.push_back(dummy); } - } - if (etonl > 0. && etoff > 0.) { + }else{ + res_topoetcone20_vec.push_back(dummy); + res_topoetcone20_rel_vec.push_back(dummy); } } @@ -1434,26 +1553,33 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillL2CaloResolution(const std::string if(!onl) continue; + et_vec.push_back(onl->et()*1e-3); + eta_vec.push_back(onl->eta()); + const float dummy=-999; + float val_off=0.; val_off=off->caloCluster()->et(); if(val_off!=0.){ res_et_vec.push_back(((onl->et())-val_off)/val_off); + }else{ + res_et_vec.push_back(dummy); } + val_off=off->caloCluster()->eta(); if(val_off!=0.){ res_eta_vec.push_back((onl->eta()-val_off)/val_off); + }else{ + res_eta_vec.push_back(dummy); } + val_off=off->caloCluster()->phi(); if(val_off!=0.){ res_phi_vec.push_back((onl->phi()-val_off)/val_off); + }else{ + res_phi_vec.push_back((onl->phi()-val_off)/val_off); } - - et_vec.push_back(onl->et()*1e-3); - - eta_vec.push_back(onl->eta()); - float elonl_ethad = onl->energy( CaloSampling::HEC0 ); elonl_ethad += onl->energy( CaloSampling::HEC1 ); elonl_ethad += onl->energy( CaloSampling::HEC2 ); elonl_ethad += onl->energy( CaloSampling::HEC3 ); elonl_ethad += onl->energy( CaloSampling::TileBar0 ); elonl_ethad += onl->energy( CaloSampling::TileExt0 ); @@ -1463,49 +1589,75 @@ void TrigEgammaMonitorAnalysisAlgorithm::fillL2CaloResolution(const std::string val_off=getShowerShape_ethad(off); if(val_off!=0.){ res_ethad_vec.push_back((elonl_ethad-val_off)/val_off); + }else{ + res_ethad_vec.push_back(dummy); } + val_off=getShowerShape_ethad1(off); if(val_off!=0.){ res_ethad1_vec.push_back(( (onl->ehad1()/TMath::Abs(onl->eta()) )-val_off)/val_off); + }else{ + res_ethad1_vec.push_back(dummy); } + float elonl_Rhad = elonl_ethad / onl->energy() ; val_off=getShowerShape_Rhad(off); if(val_off!=0.){ res_Rhad_vec.push_back(( elonl_Rhad-val_off)/val_off); + }else{ + res_Rhad_vec.push_back(dummy); } + float elonl_Rhad1 = onl->ehad1() / onl->energy() ; val_off=getShowerShape_Rhad1(off); if(val_off!=0.){ res_Rhad1_vec.push_back(( elonl_Rhad1-val_off)/val_off); + }else{ + res_Rhad1_vec.push_back(dummy); } + float onl_reta= 999.0; if ( fabsf ( onl->e277() ) > 0.01 ) onl_reta = onl->e237() / onl->e277(); val_off=getShowerShape_Reta(off); if(val_off!=0.){ res_Reta_vec.push_back( (onl_reta -val_off)/val_off); + }else{ + res_Reta_vec.push_back(dummy); } + val_off=getShowerShape_weta2(off); if(val_off!=0.){ res_weta2_vec.push_back(( (onl->weta2())-val_off)/val_off); + }else{ + res_weta2_vec.push_back(dummy); } + float onl_f1 = onl->energy(CaloSampling::EMB1)+onl->energy(CaloSampling::EME1); onl_f1 /= onl->energy(); val_off=getShowerShape_f1(off); if(val_off!=0.){ res_f1_vec.push_back(( (onl_f1)-val_off)/val_off); + }else{ + res_f1_vec.push_back(dummy); } + float onl_f3 = onl->energy(CaloSampling::EMB3)+onl->energy(CaloSampling::EME3); onl_f3 /= onl->energy(); val_off=getShowerShape_f3(off); if(val_off!=0.){ res_f3_vec.push_back(( (onl_f3)-val_off)/val_off); + }else{ + res_f3_vec.push_back(dummy); } + float onl_eratio = 999.0; if ( fabsf(onl->emaxs1() + onl->e2tsts1()) > 0.01 ) onl_eratio = (onl->emaxs1() - onl->e2tsts1()) / (onl->emaxs1() + onl->e2tsts1()); val_off=getShowerShape_Eratio(off); if(val_off!=0.){ res_eratio_vec.push_back(( (onl_eratio)-val_off)/val_off); + }else{ + res_eratio_vec.push_back(dummy); } }// Loop over all pair objects