diff --git a/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2ElectronFexConfig.py b/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2ElectronFexConfig.py index 4fa479c8a7948fe388d0915fab5107ab66dac238..12d357f2b61c7f39e10950fed1cdde53864a2c1b 100755 --- a/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2ElectronFexConfig.py +++ b/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2ElectronFexConfig.py @@ -28,11 +28,11 @@ class L2ElectronFexBase(TrigL2ElectronFex): self.TrackPt = 1.0 * GeV self.TrackPtHighEt = 2.0 * GeV self.ClusEt = 20.0 * GeV - self.CaloTrackdEtaNoExtrap = 0.5 - self.CaloTrackdEtaNoExtrapHighEt = 0.1 + self.CaloTrackdEtaNoExtrap = 0.3 + self.CaloTrackdEtaNoExtrapHighEt = 0.2 # Calo-Tracking matching cuts - self.CaloTrackdETA = 0.5 - self.CaloTrackdPHI = 0.5 + self.CaloTrackdETA = 0.3 + self.CaloTrackdPHI = 0.3 self.CaloTrackdEoverPLow = 0.0 self.CaloTrackdEoverPHigh = 999.0 diff --git a/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2ElectronHypoConfig.py b/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2ElectronHypoConfig.py index f76bd5eeaae57989ac2a23399d3891c6a584d502..c5c831baf31baf7f3e6e58084b71e04e06e841c8 100755 --- a/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2ElectronHypoConfig.py +++ b/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigL2ElectronHypoConfig.py @@ -59,7 +59,7 @@ class L2ElectronHypo_e_ID (L2ElectronHypoBase): # cuts self.TrackPt = 1.0 * GeV self.CaloTrackdETA = 0.2 - self.CaloTrackdPHI = 999. + self.CaloTrackdPHI = 0.3 if(float(threshold) < 15): self.TrackPt = 1.0 * GeV elif (float(threshold) >= 15 and float(threshold) < 20): diff --git a/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2ElectronFex.cxx b/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2ElectronFex.cxx index 9a654b58bbe4296c3e47fb668d336e369ad8fa13..9fae06bf646d20c8d816b5b90f5c1816db92b774 100755 --- a/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2ElectronFex.cxx +++ b/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2ElectronFex.cxx @@ -38,14 +38,14 @@ TrigL2ElectronFex::TrigL2ElectronFex(const std::string & name, ISvcLocator* pSvc { declareProperty( "AcceptAll", m_acceptAll = false ); declareProperty( "ClusEt", m_clusEtthr = 20.0*CLHEP::GeV ); - declareProperty( "TrackPt", m_trackPtthr = 5.0*CLHEP::GeV ); + declareProperty( "TrackPt", m_trackPtthr = 1.0*CLHEP::GeV ); declareProperty( "CaloTrackdEtaNoExtrap", m_calotrkdeta_noextrap ); - declareProperty( "TrackPtHighEt", m_trackPtthr = 2.0*CLHEP::GeV ); - declareProperty( "CaloTrackdEtaNoExtrapHighEt", m_calotrkdeta_noextrap_highet ); - declareProperty( "CaloTrackdETA", m_calotrackdeta ); - declareProperty( "CaloTrackdPHI", m_calotrackdphi ); - declareProperty( "CaloTrackdEoverPLow", m_calotrackdeoverp_low ); - declareProperty( "CaloTrackdEoverPHigh", m_calotrackdeoverp_high ); + declareProperty( "TrackPtHighEt", m_trackPtthr_highet = 2.0*CLHEP::GeV ); + declareProperty( "CaloTrackdEtaNoExtrapHighEt", m_calotrkdeta_noextrap_highet = 0.5 ); + declareProperty( "CaloTrackdETA", m_calotrackdeta = 0.5); + declareProperty( "CaloTrackdPHI", m_calotrackdphi = 0.5); + declareProperty( "CaloTrackdEoverPLow", m_calotrackdeoverp_low = 0.); + declareProperty( "CaloTrackdEoverPHigh", m_calotrackdeoverp_high = 999.); declareProperty( "RCalBarrelFace", m_RCAL = 1470.0*CLHEP::mm ); declareProperty( "ZCalEndcapFace", m_ZCAL = 3800.0*CLHEP::mm ); declareProperty( "ParticleCaloExtensionTool", m_caloExtensionTool); @@ -218,117 +218,92 @@ HLT::ErrorCode TrigL2ElectronFex::hltExecute(const HLT::TriggerElement* inputTE, float trkPt = fabs((trkIter)->pt()); float etoverpt = fabs(calo_et/trkPt); float calotrkdeta_noextrap = (trkIter)->eta() - calo_eta; - + double etaAtCalo=999.; double phiAtCalo=999.; - if(m_acceptAll){ - if(!extrapolate(*el_t2calo_clus,trkIter,etaAtCalo,phiAtCalo)){ - ATH_MSG_VERBOSE("extrapolator failed"); - continue; - } - else{ - ATH_MSG_VERBOSE("REGTEST: TrigElectron: cluster = " << - el_t2calo_clus.getStorableObjectPointer() << " index = " << el_t2calo_clus.index() << - " track = " << trkIter << " eta = " << etaAtCalo << " phi = " << phiAtCalo); - xAOD::TrigElectron* trigElec = new xAOD::TrigElectron(); - m_trigElecColl->push_back(trigElec); - trigElec->init( initialRoI->roiWord(), - etaAtCalo, phiAtCalo, etoverpt, - el_t2calo_clus, - trkLink); - m_calotrackdeta_mon.push_back(trigElec->trkClusDeta()); - m_calotrackdphi_mon.push_back(trigElec->trkClusDphi()); - m_calotrackdeoverp_mon.push_back(trigElec->etOverPt()); - m_trackpt_mon.push_back(getTkPt(trigElec)); - m_calopt_mon.push_back(getCaloPt(trigElec)); - m_calotrkdeta_noextrap_mon.push_back(calotrkdeta_noextrap); - } + ATH_MSG_DEBUG("Apply cuts"); + if(trkPt < m_trackPtthr){ + ATH_MSG_DEBUG("Failed track pt cut " << trkPt); + continue; } - else { - ATH_MSG_DEBUG("Apply cuts"); - if(trkPt < m_trackPtthr){ - ATH_MSG_DEBUG("Failed track pt cut " << trkPt); - continue; - } - if(fabs(calotrkdeta_noextrap) > m_calotrkdeta_noextrap){ - ATH_MSG_DEBUG("Failed pre extrapolation calo track deta " << calotrkdeta_noextrap); - continue; - } - if(calo_et > m_clusEtthr){ - if(trkPt < m_trackPtthr_highet){ - ATH_MSG_DEBUG("Failed track pt cut for high et cluster"); - continue; - } - if(calotrkdeta_noextrap > m_calotrkdeta_noextrap_highet){ - ATH_MSG_DEBUG("Failed pre extrapolation calo track deta for high et"); - continue; - } - } - if (etoverpt < m_calotrackdeoverp_low){ - ATH_MSG_DEBUG("failed low cut on ET/PT"); - continue; - } - if (etoverpt > m_calotrackdeoverp_high){ - ATH_MSG_DEBUG("failed high cut on ET/PT"); + if(fabs(calotrkdeta_noextrap) > m_calotrkdeta_noextrap){ + ATH_MSG_DEBUG("Failed pre extrapolation calo track deta " << calotrkdeta_noextrap); + continue; + } + if(calo_et > m_clusEtthr){ + if(trkPt < m_trackPtthr_highet){ + ATH_MSG_DEBUG("Failed track pt cut for high et cluster"); continue; } - if(!extrapolate(*el_t2calo_clus,trkIter,etaAtCalo,phiAtCalo)){ - ATH_MSG_DEBUG("extrapolator failed 1"); - continue; - } - // all ok: do track-matching cuts - ATH_MSG_DEBUG("extrapolated eta/phi=" << etaAtCalo << "/" << phiAtCalo); - // match in eta - float dEtaCalo = fabs(etaAtCalo - calo_eta); - ATH_MSG_DEBUG("deta = " << dEtaCalo); - if ( dEtaCalo > m_calotrackdeta){ - ATH_MSG_DEBUG("failed eta match cut " << dEtaCalo); + if(calotrkdeta_noextrap > m_calotrkdeta_noextrap_highet){ + ATH_MSG_DEBUG("Failed pre extrapolation calo track deta for high et"); continue; } + } + if (etoverpt < m_calotrackdeoverp_low){ + ATH_MSG_DEBUG("failed low cut on ET/PT"); + continue; + } + if (etoverpt > m_calotrackdeoverp_high){ + ATH_MSG_DEBUG("failed high cut on ET/PT"); + continue; + } + if(!extrapolate(*el_t2calo_clus,trkIter,etaAtCalo,phiAtCalo)){ + ATH_MSG_DEBUG("extrapolator failed 1"); + continue; + } + // all ok: do track-matching cuts + ATH_MSG_DEBUG("extrapolated eta/phi=" << etaAtCalo << "/" << phiAtCalo); + // match in eta + float dEtaCalo = fabs(etaAtCalo - calo_eta); + ATH_MSG_DEBUG("deta = " << dEtaCalo); + if ( dEtaCalo > m_calotrackdeta){ + ATH_MSG_DEBUG("failed eta match cut " << dEtaCalo); + continue; + } - // match in phi: deal with differences larger than Pi - float dPhiCalo = fabs(phiAtCalo - calo_phi); - dPhiCalo = ( dPhiCalo < M_PI ? dPhiCalo : 2*M_PI - dPhiCalo ); - ATH_MSG_DEBUG("dphi = " << dPhiCalo); - if ( dPhiCalo > m_calotrackdphi) { - ATH_MSG_DEBUG("failed phi match cut " << dPhiCalo); - continue; - } - // all cuts passed - result = true; - /** Create a TrigElectron corresponding to this candidate - assume cluster quantities give better estimate of transverse energy - (probably a safe assumption for large pT) and that track parameters - at perigee give better estimates of angular quantities */ - - ATH_MSG_DEBUG("REGTEST: TrigElectron: cluster = " << - el_t2calo_clus.getStorableObjectPointer() << - " index = " << el_t2calo_clus.index() << - " track = " << trkIter << " eta = " << - etaAtCalo << " phi = " << phiAtCalo << - " deta = " << dEtaCalo << "dphi = " << dPhiCalo); - - xAOD::TrigElectron* trigElec = new xAOD::TrigElectron(); - m_trigElecColl->push_back(trigElec); - trigElec->init( initialRoI->roiWord(), - etaAtCalo, phiAtCalo, etoverpt, - el_t2calo_clus, - trkLink); - ATH_MSG_DEBUG(" deta = " << dEtaCalo << " deta = " << trigElec->trkClusDeta() - << " dphi = " << dPhiCalo << " dphi = " << trigElec->trkClusDphi() - << " caloEta = " << calo_eta << " caloEta = " << trigElec->caloEta() - << " caloPhi = " << calo_phi << " calophi = " << trigElec->caloPhi() - << " etaAtCalo = " << etaAtCalo << " etaAtCalo = " << trigElec->trkEtaAtCalo() - << " phiAtCalo = " << phiAtCalo << " phiAtCalo = " << trigElec->trkPhiAtCalo() - ); - - m_calotrackdeta_mon.push_back(trigElec->trkClusDeta()); - m_calotrackdphi_mon.push_back(trigElec->trkClusDphi()); - m_calotrackdeoverp_mon.push_back(trigElec->etOverPt()); - m_trackpt_mon.push_back(getTkPt(trigElec)); - m_calopt_mon.push_back(getCaloPt(trigElec)); - m_calotrkdeta_noextrap_mon.push_back(calotrkdeta_noextrap); + // match in phi: deal with differences larger than Pi + float dPhiCalo = fabs(phiAtCalo - calo_phi); + dPhiCalo = ( dPhiCalo < M_PI ? dPhiCalo : 2*M_PI - dPhiCalo ); + ATH_MSG_DEBUG("dphi = " << dPhiCalo); + if ( dPhiCalo > m_calotrackdphi) { + ATH_MSG_DEBUG("failed phi match cut " << dPhiCalo); + continue; } + // all cuts passed + result = true; + /** Create a TrigElectron corresponding to this candidate + assume cluster quantities give better estimate of transverse energy + (probably a safe assumption for large pT) and that track parameters + at perigee give better estimates of angular quantities */ + + ATH_MSG_DEBUG("REGTEST: TrigElectron: cluster = " << + el_t2calo_clus.getStorableObjectPointer() << + " index = " << el_t2calo_clus.index() << + " track = " << trkIter << " eta = " << + etaAtCalo << " phi = " << phiAtCalo << + " deta = " << dEtaCalo << "dphi = " << dPhiCalo); + + xAOD::TrigElectron* trigElec = new xAOD::TrigElectron(); + m_trigElecColl->push_back(trigElec); + trigElec->init( initialRoI->roiWord(), + etaAtCalo, phiAtCalo, etoverpt, + el_t2calo_clus, + trkLink); + ATH_MSG_DEBUG(" deta = " << dEtaCalo << " deta = " << trigElec->trkClusDeta() + << " dphi = " << dPhiCalo << " dphi = " << trigElec->trkClusDphi() + << " caloEta = " << calo_eta << " caloEta = " << trigElec->caloEta() + << " caloPhi = " << calo_phi << " calophi = " << trigElec->caloPhi() + << " etaAtCalo = " << etaAtCalo << " etaAtCalo = " << trigElec->trkEtaAtCalo() + << " phiAtCalo = " << phiAtCalo << " phiAtCalo = " << trigElec->trkPhiAtCalo() + ); + + m_calotrackdeta_mon.push_back(trigElec->trkClusDeta()); + m_calotrackdphi_mon.push_back(trigElec->trkClusDphi()); + m_calotrackdeoverp_mon.push_back(trigElec->etOverPt()); + m_trackpt_mon.push_back(getTkPt(trigElec)); + m_calopt_mon.push_back(getCaloPt(trigElec)); + m_calotrkdeta_noextrap_mon.push_back(calotrkdeta_noextrap); } // set output TriggerElement unless acceptAll is set diff --git a/Trigger/TriggerCommon/TriggerMenuXML/CMakeLists.txt b/Trigger/TriggerCommon/TriggerMenuXML/CMakeLists.txt index 3b04211f9b28e77c7de6df4c0fac227c1c6989b4..26f92fe8fa52140c5a58c2079c8c32f722df0f2c 100644 --- a/Trigger/TriggerCommon/TriggerMenuXML/CMakeLists.txt +++ b/Trigger/TriggerCommon/TriggerMenuXML/CMakeLists.txt @@ -108,24 +108,24 @@ atlas_install_xmls( data/*.xml ) # List of menus to be created: -atlas_build_trigger_menu( Physics_pp_v6 ) -atlas_build_trigger_menu( Physics_pp_v6_tight_physics_prescale ) -atlas_build_trigger_menu( MC_pp_v6 ) -atlas_build_trigger_menu( MC_pp_v6_loose_mc_prescale ) -atlas_build_trigger_menu( MC_pp_v6_tight_mc_prescale ) -atlas_build_trigger_menu( MC_pp_v6_tightperf_mc_prescale ) - -atlas_build_trigger_menu( Physics_pp_v7 ) -atlas_build_trigger_menu( Physics_pp_v7_tight_physics_prescale ) +#atlas_build_trigger_menu( Physics_pp_v6 ) +#atlas_build_trigger_menu( Physics_pp_v6_tight_physics_prescale ) +#atlas_build_trigger_menu( MC_pp_v6 ) +#atlas_build_trigger_menu( MC_pp_v6_loose_mc_prescale ) +#atlas_build_trigger_menu( MC_pp_v6_tight_mc_prescale ) +#atlas_build_trigger_menu( MC_pp_v6_tightperf_mc_prescale ) + +#atlas_build_trigger_menu( Physics_pp_v7 ) +#atlas_build_trigger_menu( Physics_pp_v7_tight_physics_prescale ) atlas_build_trigger_menu( MC_pp_v7 ) -atlas_build_trigger_menu( MC_pp_v7_loose_mc_prescale ) -atlas_build_trigger_menu( MC_pp_v7_tight_mc_prescale ) -atlas_build_trigger_menu( MC_pp_v7_tightperf_mc_prescale ) +#atlas_build_trigger_menu( MC_pp_v7_loose_mc_prescale ) +#atlas_build_trigger_menu( MC_pp_v7_tight_mc_prescale ) +#atlas_build_trigger_menu( MC_pp_v7_tightperf_mc_prescale ) -atlas_build_trigger_menu( Physics_HI_v3 ) -atlas_build_trigger_menu( MC_HI_v3 ) -atlas_build_trigger_menu( MC_HI_v3_tight_mc_prescale ) +#atlas_build_trigger_menu( Physics_HI_v3 ) +#atlas_build_trigger_menu( MC_HI_v3 ) +#atlas_build_trigger_menu( MC_HI_v3_tight_mc_prescale ) -atlas_build_trigger_menu( Physics_HI_v4 ) -atlas_build_trigger_menu( MC_HI_v4 ) -atlas_build_trigger_menu( MC_HI_v4_tight_mc_prescale ) +#atlas_build_trigger_menu( Physics_HI_v4 ) +#atlas_build_trigger_menu( MC_HI_v4 ) +#atlas_build_trigger_menu( MC_HI_v4_tight_mc_prescale )