diff --git a/Trigger/TrigAlgorithms/TrigEgammaRec/TrigEgammaRec/TrigEgammaRec.h b/Trigger/TrigAlgorithms/TrigEgammaRec/TrigEgammaRec/TrigEgammaRec.h index 1115fa33d9cdf6e627ad2d29b009548f6b3632ca..17658466f9f0621da90bede3745111fad86f3296 100755 --- a/Trigger/TrigAlgorithms/TrigEgammaRec/TrigEgammaRec/TrigEgammaRec.h +++ b/Trigger/TrigAlgorithms/TrigEgammaRec/TrigEgammaRec/TrigEgammaRec.h @@ -32,7 +32,6 @@ #include "xAODEgamma/EgammaContainer.h" #include "egammaInterfaces/IegammaBaseTool.h" -#include "egammaInterfaces/IEMAmbiguityTool.h" #include "egammaInterfaces/IEMTrackMatchBuilder.h" #include "egammaInterfaces/IEMConversionBuilder.h" #include "egammaInterfaces/IEMShowerBuilder.h" @@ -42,6 +41,7 @@ #include "xAODPrimitives/IsolationType.h" #include "RecoToolInterfaces/IsolationCommon.h" +class IEGammaAmbiguityTool; namespace xAOD { class ITrackIsolationTool; @@ -90,8 +90,8 @@ private: ToolHandle<IEMConversionBuilder> m_conversionBuilder; ToolHandle<IEMShowerBuilder> m_showerBuilder; // trigger specific ToolHandle<IEMFourMomBuilder> m_fourMomBuilder; // trigger specific - ToolHandle<IEMAmbiguityTool> m_ambiguityTool; - + ToolHandle<IEGammaAmbiguityTool> m_ambiguityTool; + /** @brief Tool for decorating electron PID isEM and LH */ ToolHandle<IegammaBaseTool> m_electronPIDBuilder; diff --git a/Trigger/TrigAlgorithms/TrigEgammaRec/cmt/requirements b/Trigger/TrigAlgorithms/TrigEgammaRec/cmt/requirements index 446c31c535d4861e9a2409cf728e9ffa23e5bdf2..a6f5a58730f8f643cf9ed05ae34bd140f6f5fb3e 100755 --- a/Trigger/TrigAlgorithms/TrigEgammaRec/cmt/requirements +++ b/Trigger/TrigAlgorithms/TrigEgammaRec/cmt/requirements @@ -33,6 +33,7 @@ use xAODEgammaCnv xAODEgammaCnv-* Event/xAOD use CaloEvent CaloEvent-* Calorimeter use TrigTimeAlgs TrigTimeAlgs-* Trigger/TrigTools use AtlasROOT AtlasROOT-* External +use ElectronPhotonSelectorTools ElectronPhotonSelectorTools-* PhysicsAnalysis/ElectronPhotonID public # ===================================================================== diff --git a/Trigger/TrigAlgorithms/TrigEgammaRec/python/TrigEgammaRecConfig.py b/Trigger/TrigAlgorithms/TrigEgammaRec/python/TrigEgammaRecConfig.py index a2ebe9559b0e2f4a2874704b6c53b9fa46605c98..8bf91da9b325da39d58123fcca6fa9fe41e8bfe2 100755 --- a/Trigger/TrigAlgorithms/TrigEgammaRec/python/TrigEgammaRecConfig.py +++ b/Trigger/TrigAlgorithms/TrigEgammaRec/python/TrigEgammaRecConfig.py @@ -18,7 +18,7 @@ from egammaRec.Factories import Factory, ToolFactory, FcnWrapper, getPropertyVal # Import tools required for trigger reconstruction from egammaTools.egammaToolsFactories import \ - EMTrackMatchBuilder, EMVertexBuilder, EMConversionBuilder, EMAmbiguityTool, \ + EMTrackMatchBuilder, EMVertexBuilder, EMConversionBuilder, EGammaAmbiguityTool, \ EMFourMomBuilder, EMShowerBuilder # Not importing # egammaCheckEnergyDepositTool, EMBremCollectionBuilder, @@ -48,10 +48,10 @@ TrackIsolationTool = ToolFactory(xAOD__TrackIsolationTool, name = 'TrigEgammaTra #tit = CfgMgr.xAOD__TrackIsolationTool('TrigEgammaTrackIsolationTool') #tit.TrackSelectionTool.maxZ0SinTheta = 15 -import ROOT, PyCintex +import ROOT, cppyy # Need to be sure base dict is loaded first. -PyCintex.loadDictionary('xAODCoreRflxDict') -PyCintex.loadDictionary('xAODPrimitivesDict') +cppyy.loadDictionary('xAODCoreRflxDict') +cppyy.loadDictionary('xAODPrimitivesDict') isoPar = ROOT.xAOD.Iso #IsoTypes = [[ int(isoPar.ptcone20), int(isoPar.ptcone30), int(isoPar.ptcone40) ],] @@ -148,7 +148,7 @@ TrigEgammaRec = Factory(TrigEgammaRecConf.TrigEgammaRec, name="TrigEgammaRec",do # Tools with default configuration # VertexBuilderTool = EMVertexBuilder, ConversionBuilderTool = EMConversionBuilder, - AmbiguityTool = EMAmbiguityTool, + AmbiguityTool = EGammaAmbiguityTool, FourMomBuilderTool = EMFourMomBuilder, # Flags diff --git a/Trigger/TrigAlgorithms/TrigEgammaRec/src/TrigEgammaRec.cxx b/Trigger/TrigAlgorithms/TrigEgammaRec/src/TrigEgammaRec.cxx index 009ba652cc79bc18b238c93861417c2447edf2a2..286770c9a3ed5128c287879cc0f31fb2cd2d671a 100755 --- a/Trigger/TrigAlgorithms/TrigEgammaRec/src/TrigEgammaRec.cxx +++ b/Trigger/TrigAlgorithms/TrigEgammaRec/src/TrigEgammaRec.cxx @@ -51,7 +51,7 @@ PURPOSE: Algorithm is an adaptation for the trigger of the egammaBuilder.cxx #include "egammaInterfaces/IEMShowerBuilder.h" #include "egammaInterfaces/IEMBremCollectionBuilder.h" #include "egammaInterfaces/IEMFourMomBuilder.h" -#include "egammaInterfaces/IEMAmbiguityTool.h" +#include "ElectronPhotonSelectorTools/IEGammaAmbiguityTool.h" #include "RecoToolInterfaces/ITrackIsolationTool.h" #include "RecoToolInterfaces/ICaloCellIsolationTool.h" #include "RecoToolInterfaces/ICaloTopoClusterIsolationTool.h" @@ -84,6 +84,7 @@ PURPOSE: Algorithm is an adaptation for the trigger of the egammaBuilder.cxx // needed for online monitor histograms class ISvcLocator; + // Template class for monitoring namespace { template <class DEST,class SRC> @@ -295,7 +296,7 @@ HLT::ErrorCode TrigEgammaRec::hltInitialize() { } } if (m_ambiguityTool.empty()) { - ATH_MSG_ERROR("EMAmbiguityTool is empty"); + ATH_MSG_ERROR("EGammaAmbiguityTool is empty"); return HLT::BAD_JOB_SETUP; } @@ -305,7 +306,7 @@ HLT::ErrorCode TrigEgammaRec::hltInitialize() { } else{ ATH_MSG_DEBUG("Retrieved Tool "<<m_ambiguityTool); - if (timerSvc()) m_timerTool3 = addTimer("EMAmbiguityTool"); + if (timerSvc()) m_timerTool3 = addTimer("EGammaAmbiguityTool"); } if (m_fourMomBuilder.empty()) { @@ -835,7 +836,9 @@ HLT::ErrorCode TrigEgammaRec::hltExecute( const HLT::TriggerElement* inputTE, // For now set author as Electron ATH_MSG_DEBUG("REGTEST:: Running AmbiguityTool"); if (timerSvc()) m_timerTool3->start(); //timer - unsigned int author = m_ambiguityTool->ambiguityResolve(egRec); + unsigned int author = m_ambiguityTool->ambiguityResolve(egRec->caloCluster(), + egRec->vertex(), + egRec->trackParticle()); if (timerSvc()) m_timerTool3->stop(); //timer ATH_MSG_DEBUG("REGTEST:: AmbiguityTool Author " << author); // Set author