diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/EfficiencyTool.cxx b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/EfficiencyTool.cxx
index 9c089e3231cd46dd753e1616ff3019af586b12b0..073cef0276a1524ce30569e4a3048f1111ecd69a 100644
--- a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/EfficiencyTool.cxx
+++ b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/EfficiencyTool.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 /**********************************************************************
@@ -153,7 +153,8 @@ bool EfficiencyTool::analyseIsEM(const xAOD::Electron *eg, const std::string pid
     return failisem;
 }
 
-void EfficiencyTool::fillInefficiency(const std::string& pid, const std::string dir,const xAOD::Electron *selEF,const xAOD::Photon *selPh,const xAOD::CaloCluster *clus,const xAOD::TrackParticle *trk)
+void EfficiencyTool::fillInefficiency(const std::string& pid, const std::string dir,const xAOD::Electron *selEF,const xAOD::Photon *selPh,const xAOD::CaloCluster *clus,const xAOD::TrackParticle *trk,
+                                      const asg::AcceptData& acceptData)
 {
     cd(dir);
     ATH_MSG_DEBUG("REGTEST::Inefficiency");
@@ -192,23 +193,23 @@ void EfficiencyTool::fillInefficiency(const std::string& pid, const std::string
     float lastbin = hist1(ineff)->GetNbinsX() - 0.5;
     float sumbin = lastbin - 1;
 
-    if (!getAccept().getCutResult("L2Calo")) {
+    if (!acceptData.getCutResult("L2Calo")) {
         hist1(ineff)->Fill(0.5, 1);
         hist1(ineff)->Fill(sumbin, 1);
     }
-    else if (!getAccept().getCutResult("L2")) {
+    else if (!acceptData.getCutResult("L2")) {
         hist1(ineff)->Fill(1.5, 1);
         hist1(ineff)->Fill(sumbin, 1);
     }
-    else if (!getAccept().getCutResult("EFCalo")) {
+    else if (!acceptData.getCutResult("EFCalo")) {
         hist1(ineff)->Fill(2.5, 1);
         hist1(ineff)->Fill(sumbin, 1);
     }
-    // else if (!getAccept().getCutResult("EFTrack")) {
+    // else if (!acceptData.getCutResult("EFTrack")) {
     //     hist1(ineff)->Fill(3.5, 1);
     //     hist1(ineff)->Fill(13.5, 1);
     // }
-    else if (!getAccept().getCutResult("HLT")) {
+    else if (!acceptData.getCutResult("HLT")) {
         if (reco.test(0)) {
             if (boost::contains(pid, "LH")) failbits = analyseIsEMLH(selEF, pid);
             else failbits = analyseIsEM(selEF, pid);
@@ -297,7 +298,8 @@ void EfficiencyTool::fillInefficiency(const std::string& pid, const std::string
 }
 
 void EfficiencyTool::inefficiency(const std::string& pid, const std::string basePath,const float etthr, 
-                                  std::pair< const xAOD::Egamma*,const HLT::TriggerElement*> pairObj)
+                                  std::pair< const xAOD::Egamma*,const HLT::TriggerElement*> pairObj,
+                                  const asg::AcceptData& acceptData)
 {
     ATH_MSG_DEBUG("INEFF::Start Inefficiency Analysis ======================= " << basePath);
     cd(basePath);
@@ -327,17 +329,17 @@ void EfficiencyTool::inefficiency(const std::string& pid, const std::string base
     const std::string ineff = "Ineff" + pidword;
 
     // Ensure L1 passes and offline passes et cut
-    if(getAccept().getCutResult("L1Calo") && et > etthr) {
+    if(acceptData.getCutResult("L1Calo") && et > etthr) {
         ATH_MSG_DEBUG("INEFF::Passed L1 and offline et");
-        hist1("eff_triggerstep")->Fill("L2Calo",getAccept().getCutResult("L2Calo"));
-        hist1("eff_triggerstep")->Fill("L2",getAccept().getCutResult("L2"));
-        hist1("eff_triggerstep")->Fill("EFCalo",getAccept().getCutResult("EFCalo"));
-        hist1("eff_triggerstep")->Fill("EFTrack",getAccept().getCutResult("EFTrack"));
-        hist1("eff_triggerstep")->Fill("HLT",getAccept().getCutResult("HLT"));
+        hist1("eff_triggerstep")->Fill("L2Calo",acceptData.getCutResult("L2Calo"));
+        hist1("eff_triggerstep")->Fill("L2",acceptData.getCutResult("L2"));
+        hist1("eff_triggerstep")->Fill("EFCalo",acceptData.getCutResult("EFCalo"));
+        hist1("eff_triggerstep")->Fill("EFTrack",acceptData.getCutResult("EFTrack"));
+        hist1("eff_triggerstep")->Fill("HLT",acceptData.getCutResult("HLT"));
 
         // Fill efficiency plot for HLT trigger steps
-        if(!getAccept().getCutResult("HLT")/* || !getAccept().getCutResult("EFTrack")*/ || !getAccept().getCutResult("EFCalo") || 
-           !getAccept().getCutResult("L2") || !getAccept().getCutResult("L2Calo")) {
+        if(!acceptData.getCutResult("HLT")/* || !acceptData.getCutResult("EFTrack")*/ || !acceptData.getCutResult("EFCalo") || 
+           !acceptData.getCutResult("L2") || !acceptData.getCutResult("L2Calo")) {
             ATH_MSG_DEBUG("INEFF::Retrieve features for EF containers only ");
             ATH_MSG_DEBUG("INEFF::Retrieve EF Electron");
             const auto* EFEl = getFeature<xAOD::ElectronContainer>(feat);
@@ -356,7 +358,7 @@ void EfficiencyTool::inefficiency(const std::string& pid, const std::string base
             selPh = closestObject<xAOD::Photon,xAOD::PhotonContainer>(pairObj, dRmax, false);
             selClus = closestObject<xAOD::CaloCluster,xAOD::CaloClusterContainer>(pairObj, dRmax, false,"TrigEFCaloCalibFex");
             selTrk = closestObject<xAOD::TrackParticle,xAOD::TrackParticleContainer>(pairObj, dRmax, false, "InDetTrigTrackingxAODCnv_Electron_IDTrig");
-            fillInefficiency(pid, basePath, selEF, selPh, selClus, selTrk);
+            fillInefficiency(pid, basePath, selEF, selPh, selClus, selTrk, acceptData);
             if (EFClus == nullptr){
                 hist1("eff_hltreco")->Fill("ClusterCont", 0);
                 hist1("eff_hltreco")->Fill("Cluster", 0);
@@ -578,11 +580,12 @@ StatusCode EfficiencyTool::toolExecute(const std::string basePath,const TrigInfo
           
           // ialg = 0 is decision from TDT tool (Efficency dir) [default]
           // ialg = 1 is decision from emulator tool (Emulation dir)
+          asg::AcceptData acceptData (&getAccept());
           if(ialg==0){
-            setAccept(pairObj.second,info); //Sets the trigger accepts
+            acceptData = setAccept(pairObj.second,info); //Sets the trigger accepts
           }else{// ialg==1
             ATH_MSG_DEBUG("Fill efficiency from Emulation tool");
-            setAccept(emulation()->executeTool(pairObj.second, info.trigName));
+            acceptData = emulation()->executeTool(pairObj.second, info.trigName);
           }
 
           if (pairObj.second!=nullptr) {
@@ -590,30 +593,30 @@ StatusCode EfficiencyTool::toolExecute(const std::string basePath,const TrigInfo
               if(!info.trigL1){
                   if(pairObj.first->type()==xAOD::Type::Electron){
                       if(pairObj.first->auxdecor<bool>(pidword)){
-                          inefficiency(pid,dir+"/"+algname+"/HLT",etthr,pairObj);
+                        inefficiency(pid,dir+"/"+algname+"/HLT",etthr,pairObj, acceptData);
                       }
                   }
               }
           } // Features
 
           if(info.trigL1)
-              this->fillEfficiency(dir+"/"+algname+"/L1Calo",getAccept().getCutResult("L1Calo"),etthr,pidword,pairObj.first);
+              this->fillEfficiency(dir+"/"+algname+"/L1Calo",acceptData.getCutResult("L1Calo"),etthr,pidword,pairObj.first);
           else {
-              this->fillEfficiency(dir+"/"+algname+"/HLT",getAccept().getCutResult("HLT"),etthr,pidword,pairObj.first);
-              this->fillEfficiency(dir+"/"+algname+"/L2Calo",getAccept().getCutResult("L2Calo"),etthr,pidword,pairObj.first,m_detailedHists); 
-              this->fillEfficiency(dir+"/"+algname+"/L2",getAccept().getCutResult("L2"),etthr,pidword,pairObj.first,m_detailedHists);
-              this->fillEfficiency(dir+"/"+algname+"/EFCalo",getAccept().getCutResult("EFCalo"),etthr,pidword,pairObj.first,m_detailedHists);
-              this->fillEfficiency(dir+"/"+algname+"/L1Calo",getAccept().getCutResult("L1Calo"),etthr,pidword,pairObj.first);
+              this->fillEfficiency(dir+"/"+algname+"/HLT",acceptData.getCutResult("HLT"),etthr,pidword,pairObj.first);
+              this->fillEfficiency(dir+"/"+algname+"/L2Calo",acceptData.getCutResult("L2Calo"),etthr,pidword,pairObj.first,m_detailedHists); 
+              this->fillEfficiency(dir+"/"+algname+"/L2",acceptData.getCutResult("L2"),etthr,pidword,pairObj.first,m_detailedHists);
+              this->fillEfficiency(dir+"/"+algname+"/EFCalo",acceptData.getCutResult("EFCalo"),etthr,pidword,pairObj.first,m_detailedHists);
+              this->fillEfficiency(dir+"/"+algname+"/L1Calo",acceptData.getCutResult("L1Calo"),etthr,pidword,pairObj.first);
               if(m_detailedHists){
                   for(const auto pid : m_isemname) {
-                      this->fillEfficiency(dir+"/"+algname+"/HLT/"+pid,getAccept().getCutResult("HLT"),etthr,"is"+pid,pairObj.first);
+                      this->fillEfficiency(dir+"/"+algname+"/HLT/"+pid,acceptData.getCutResult("HLT"),etthr,"is"+pid,pairObj.first);
                       if( pairObj.first->auxdecor<bool>("Isolated") ) fillEfficiency(dir+"/"+algname+"/HLT/"+pid+"Iso",
-                          getAccept().getCutResult("HLT"),etthr,"is"+pid,pairObj.first);
+                          acceptData.getCutResult("HLT"),etthr,"is"+pid,pairObj.first);
                   }
                   for(const auto pid : m_lhname) {
-                      this->fillEfficiency(dir+"/"+algname+"/HLT/"+pid,getAccept().getCutResult("HLT"),etthr,"is"+pid,pairObj.first);
+                      this->fillEfficiency(dir+"/"+algname+"/HLT/"+pid,acceptData.getCutResult("HLT"),etthr,"is"+pid,pairObj.first);
                       if( pairObj.first->auxdecor<bool>("Isolated") ) fillEfficiency(dir+"/"+algname+"/HLT/"+pid+"Iso",
-                          getAccept().getCutResult("HLT"),etthr,"is"+pid,pairObj.first);
+                          acceptData.getCutResult("HLT"),etthr,"is"+pid,pairObj.first);
                   }
               }
               ATH_MSG_DEBUG("Complete efficiency");
diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaAnalysisBaseTool.cxx b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaAnalysisBaseTool.cxx
index 1d7145df0c8220c53e37a7ac3b59479cc698f2e2..fcd2a4aee400191fe2a3e27520bf5c87ecf1eac5 100644
--- a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaAnalysisBaseTool.cxx
+++ b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaAnalysisBaseTool.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 /**********************************************************************
@@ -555,9 +555,10 @@ bool TrigEgammaAnalysisBaseTool::isPrescaled(const std::string trigger){
     return false; // Not prescaled, use event
 }
 
-void TrigEgammaAnalysisBaseTool::setAccept(const HLT::TriggerElement *te,const TrigInfo info){
+asg::AcceptData
+TrigEgammaAnalysisBaseTool::setAccept(const HLT::TriggerElement *te,const TrigInfo info){
     ATH_MSG_DEBUG("setAccept");
-    m_accept.clear();
+    asg::AcceptData acceptData (&m_accept);
     bool passedL1Calo=false;
     bool passedL2Calo=false;
     bool passedEFCalo=false;
@@ -599,12 +600,12 @@ void TrigEgammaAnalysisBaseTool::setAccept(const HLT::TriggerElement *te,const T
         }
     }
 
-    m_accept.setCutResult("L1Calo",passedL1Calo);
-    m_accept.setCutResult("L2Calo",passedL2Calo);
-    m_accept.setCutResult("L2",passedL2);
-    m_accept.setCutResult("EFCalo",passedEFCalo);
-    m_accept.setCutResult("EFTrack",passedEFTrk);
-    m_accept.setCutResult("HLT",passedEF);
+    acceptData.setCutResult("L1Calo",passedL1Calo);
+    acceptData.setCutResult("L2Calo",passedL2Calo);
+    acceptData.setCutResult("L2",passedL2);
+    acceptData.setCutResult("EFCalo",passedEFCalo);
+    acceptData.setCutResult("EFTrack",passedEFTrk);
+    acceptData.setCutResult("HLT",passedEF);
     ATH_MSG_DEBUG("Accept results:");
     ATH_MSG_DEBUG("L1: "<< passedL1Calo);
     ATH_MSG_DEBUG("L2Calo: " << passedL2Calo);
@@ -612,6 +613,7 @@ void TrigEgammaAnalysisBaseTool::setAccept(const HLT::TriggerElement *te,const T
     ATH_MSG_DEBUG("EFCalo: "<< passedEFCalo);
     ATH_MSG_DEBUG("HLT: "<<passedEF);
 
+    return acceptData;
 }
 
 float TrigEgammaAnalysisBaseTool::dR(const float eta1, const float phi1, const float eta2, const float phi2){
diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavNtuple.cxx b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavNtuple.cxx
index 001ab83e4c404074dd9e53ccde2d52332edbef67..a15b46ae14857468d84e882fb5460bfc613c8087 100755
--- a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavNtuple.cxx
+++ b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavNtuple.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 
@@ -316,12 +316,12 @@ bool TrigEgammaNavNtuple::executeTrigItemDump(){
         }// loop over calo cluster
       }
 
-      setAccept(feat,info);
-      m_trig_L1_accept       = getAccept().getCutResult("L1Calo"); 
-      m_trig_L2_calo_accept  = getAccept().getCutResult("L2Calo"); 
-      m_trig_L2_el_accept    = getAccept().getCutResult("L2"); 
-      m_trig_EF_calo_accept  = getAccept().getCutResult("EFCalo");  
-      m_trig_EF_el_accept    = getAccept().getCutResult("HLT");  
+      asg::AcceptData acceptData = setAccept(feat,info);
+      m_trig_L1_accept       = acceptData.getCutResult("L1Calo"); 
+      m_trig_L2_calo_accept  = acceptData.getCutResult("L2Calo"); 
+      m_trig_L2_el_accept    = acceptData.getCutResult("L2"); 
+      m_trig_EF_calo_accept  = acceptData.getCutResult("EFCalo");  
+      m_trig_EF_el_accept    = acceptData.getCutResult("HLT");  
       
       ATH_MSG_DEBUG("L1Calo: "  << int(m_trig_L1_accept)); 
       ATH_MSG_DEBUG("L2Calo: "  << int(m_trig_L2_calo_accept));
diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavTPAnalysisTool.cxx b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavTPAnalysisTool.cxx
index 50d2e171e12308a6136d1e1b502a70ef613545e6..57a1a2058f76f9e7f9fbca8b03424a9ad15f0f9e 100644
--- a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavTPAnalysisTool.cxx
+++ b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavTPAnalysisTool.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 
@@ -183,30 +183,30 @@ StatusCode TrigEgammaNavTPAnalysisTool::childExecute()
             if(et < info.trigThrHLT-5.0) continue; 
             if(!offEl->auxdecor<bool>(info.trigPidDecorator)) continue; 
             const HLT::TriggerElement* feat = m_pairObj[i].second;
-            setAccept(feat,info); //Sets the trigger accepts
+            asg::AcceptData acceptData = setAccept(feat,info); //Sets the trigger accepts
             cd(m_dir+"/Expert/Event");
             if(et > info.trigThrHLT + 1.0)
                 hist1(m_anatype+"_nProbes")->Fill(cprobeTrigger,1);
             if ( feat ) {
                 if(et > info.trigThrHLT + 1.0){
-                    hist1(m_anatype+"_EffL1")->Fill(cprobeTrigger,getAccept().getCutResult("L1Calo"));
-                    hist1(m_anatype+"_EffL2Calo")->Fill(cprobeTrigger,getAccept().getCutResult("L2Calo"));
-                    hist1(m_anatype+"_EffL2")->Fill(cprobeTrigger,getAccept().getCutResult("L2"));
-                    hist1(m_anatype+"_EffEFCalo")->Fill(cprobeTrigger,getAccept().getCutResult("EFCalo"));
-                    hist1(m_anatype+"_EffHLT")->Fill(cprobeTrigger,getAccept().getCutResult("HLT"));
-                    if( getAccept().getCutResult("L1Calo")){
+                    hist1(m_anatype+"_EffL1")->Fill(cprobeTrigger,acceptData.getCutResult("L1Calo"));
+                    hist1(m_anatype+"_EffL2Calo")->Fill(cprobeTrigger,acceptData.getCutResult("L2Calo"));
+                    hist1(m_anatype+"_EffL2")->Fill(cprobeTrigger,acceptData.getCutResult("L2"));
+                    hist1(m_anatype+"_EffEFCalo")->Fill(cprobeTrigger,acceptData.getCutResult("EFCalo"));
+                    hist1(m_anatype+"_EffHLT")->Fill(cprobeTrigger,acceptData.getCutResult("HLT"));
+                    if( acceptData.getCutResult("L1Calo")){
                         hist1(m_anatype+"_nProbesL1")->Fill(cprobeTrigger,1);
                     }
-                    if( getAccept().getCutResult("L2Calo") ){
+                    if( acceptData.getCutResult("L2Calo") ){
                         hist1(m_anatype+"_nProbesL2Calo")->Fill(cprobeTrigger,1);
                     }
-                    if( getAccept().getCutResult("L2") ){
+                    if( acceptData.getCutResult("L2") ){
                         hist1(m_anatype+"_nProbesL2")->Fill(cprobeTrigger,1);
                     }
-                    if( getAccept().getCutResult("EFCalo") ){
+                    if( acceptData.getCutResult("EFCalo") ){
                         hist1(m_anatype+"_nProbesEFCalo")->Fill(cprobeTrigger,1);
                     }
-                    if( getAccept().getCutResult("HLT") ){
+                    if( acceptData.getCutResult("HLT") ){
                         hist1(m_anatype+"_nProbesHLT")->Fill(cprobeTrigger,1);
                     }
                 }
diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavTPNtuple.cxx b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavTPNtuple.cxx
index 62484f0cc05dbe118cb2a2b27b97b48ee06069dd..680e786f42f35dbe1fe6acb46eb52ff672b9c156 100755
--- a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavTPNtuple.cxx
+++ b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/Root/TrigEgammaNavTPNtuple.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 /**********************************************************************
@@ -243,12 +243,12 @@ bool TrigEgammaNavTPNtuple::executeProbesItemDump(){
         }
 
 
-        setAccept(feat,info);
-        m_trig_L1_accept       = getAccept().getCutResult("L1Calo"); 
-        m_trig_L2_calo_accept  = getAccept().getCutResult("L2Calo"); 
-        m_trig_L2_el_accept    = getAccept().getCutResult("L2"); 
-        m_trig_EF_calo_accept  = getAccept().getCutResult("EFCalo");  
-        m_trig_EF_el_accept    = getAccept().getCutResult("HLT");   
+        asg::AcceptData acceptData = setAccept(feat,info);
+        m_trig_L1_accept       = acceptData.getCutResult("L1Calo"); 
+        m_trig_L2_calo_accept  = acceptData.getCutResult("L2Calo"); 
+        m_trig_L2_el_accept    = acceptData.getCutResult("L2"); 
+        m_trig_EF_calo_accept  = acceptData.getCutResult("EFCalo");  
+        m_trig_EF_el_accept    = acceptData.getCutResult("HLT");   
 
         ATH_MSG_DEBUG("L1Calo: "  << int(m_trig_L1_accept)); 
         ATH_MSG_DEBUG("L2Calo: "  << int(m_trig_L2_calo_accept));
diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/EfficiencyTool.h b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/EfficiencyTool.h
index 43d14419293930651cf5ddf2a9d49c2b671fd475..14a3a4a0c26c98acc634be5afb811a78fbb40af0 100644
--- a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/EfficiencyTool.h
+++ b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/EfficiencyTool.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef EfficiencyTool_H
@@ -30,8 +30,10 @@ private:
 
 protected:
   void fillEfficiency(const std::string,bool,const float,const std::string,const xAOD::Egamma *,bool fill2D=true);
-  void inefficiency(const std::string&,const std::string,const float,std::pair< const xAOD::Egamma*,const HLT::TriggerElement*> pairObj);
-  void fillInefficiency(const std::string&,const std::string,const xAOD::Electron *,const xAOD::Photon *,const xAOD::CaloCluster *,const xAOD::TrackParticle *); 
+  void inefficiency(const std::string&,const std::string,const float,std::pair< const xAOD::Egamma*,const HLT::TriggerElement*> pairObj,
+                    const asg::AcceptData& acceptData);
+  void fillInefficiency(const std::string&,const std::string,const xAOD::Electron *,const xAOD::Photon *,const xAOD::CaloCluster *,const xAOD::TrackParticle *,
+                        const asg::AcceptData& acceptData); 
   bool analyseIsEM(const xAOD::Electron *,const std::string);
   bool analyseIsEMLH(const xAOD::Electron *,const std::string/*,const std::bitset<4>*/);
    /*! Include more detailed histograms */
diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/TrigEgammaAnalysisBaseTool.h b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/TrigEgammaAnalysisBaseTool.h
index c6abee3996dcb9a0944429f2fe67012a49859706..5a67bcefb1e402147f282fcb5b5e86b363879c60 100644
--- a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/TrigEgammaAnalysisBaseTool.h
+++ b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/TrigEgammaAnalysisBaseTool.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef TrigEgammaAnalysisBaseTool_H
@@ -7,7 +7,8 @@
 
 #include "TrigEgammaAnalysisTools/ITrigEgammaAnalysisBaseTool.h"
 #include "AsgTools/AsgTool.h"
-#include "PATCore/TAccept.h"
+#include "PATCore/AcceptInfo.h"
+#include "PATCore/AcceptData.h"
 #include "TrigDecisionTool/TrigDecisionTool.h"
 #include "TrigEgammaMatchingTool/ITrigEgammaMatchingTool.h"
 #include "TrigEgammaAnalysisTools/ITrigEgammaPlotTool.h"
@@ -49,12 +50,12 @@ ASG_TOOL_CLASS(TrigEgammaAnalysisBaseTool, ITrigEgammaAnalysisBaseTool)
 public:
 
   TrigEgammaAnalysisBaseTool( const std::string& myname);
-  ~TrigEgammaAnalysisBaseTool() {};
+  virtual ~TrigEgammaAnalysisBaseTool() {};
 
-  StatusCode initialize();
-  StatusCode book();
-  StatusCode execute();
-  StatusCode finalize();
+  virtual StatusCode initialize() override;
+  virtual StatusCode book() override;
+  virtual StatusCode execute() override;
+  virtual StatusCode finalize() override;
   template<class T, class B> std::unique_ptr<xAOD::TrigPassBits> createBits(const T* CONT, const B* BITS);
   template<class T> std::unique_ptr<xAOD::TrigPassBits> getBits(const HLT::TriggerElement* te,const T* CONT);
   template<class T> const T* getFeature(const HLT::TriggerElement* te,const std::string key="");
@@ -62,14 +63,14 @@ public:
   template <class T1, class T2> const T1* closestObject(const std::pair<const xAOD::Egamma *, const HLT::TriggerElement *>, 
                                                         float &, bool usePassbits=true,const std::string key="");
   // Interface class methods needed to pass information to additional tools or to set common tools
-  void setParent(IHLTMonTool *parent){ m_parent = parent;};
-  void setPlotTool(ToolHandle<ITrigEgammaPlotTool> tool){m_plot=tool;}
-  void setDetail(bool detail){m_detailedHists=detail;}
-  void setTP(bool tp){m_tp=tp;}
-  void setEmulation(bool doEmu){m_doEmulation=doEmu;}
-  void setEmulationTool(ToolHandle<Trig::ITrigEgammaEmulationTool> tool){m_emulationTool=tool;}
-  void setPVertex(const float onvertex, const float ngoodvertex){m_nPVertex = onvertex; m_nGoodVertex = ngoodvertex;}
-  void setAvgMu(const float onlmu, const float offmu){m_onlmu=onlmu; m_offmu=offmu;} //For tools called by tools
+  virtual void setParent(IHLTMonTool *parent) override { m_parent = parent;};
+  virtual void setPlotTool(ToolHandle<ITrigEgammaPlotTool> tool) override {m_plot=tool;}
+  virtual void setDetail(bool detail) override {m_detailedHists=detail;}
+  virtual void setTP(bool tp) override {m_tp=tp;}
+  virtual void setEmulation(bool doEmu) override {m_doEmulation=doEmu;}
+  virtual void setEmulationTool(ToolHandle<Trig::ITrigEgammaEmulationTool> tool) override {m_emulationTool=tool;}
+  virtual void setPVertex(const float onvertex, const float ngoodvertex) override {m_nPVertex = onvertex; m_nGoodVertex = ngoodvertex;}
+  virtual void setAvgMu(const float onlmu, const float offmu) override {m_onlmu=onlmu; m_offmu=offmu;} //For tools called by tools
 
   // Set current MonGroup
   void cd(const std::string &dir);
@@ -100,8 +101,8 @@ private:
   std::map<std::string,TrigInfo> m_trigInfo;
   /*! Include more detailed histograms */
   bool m_detailedHists;
-  /*! TAccept to store TrigDecision */
-  Root::TAccept m_accept;
+  /*! AcceptInfo to store TrigDecision */
+  asg::AcceptInfo m_accept;
   /*! Helper strings for trigger level analysis */
   static const std::vector<std::string> m_trigLevel;
   static const std::map<std::string,std::string> m_trigLvlMap;
@@ -189,10 +190,9 @@ protected:
   bool getTP() const {return m_tp;}
   bool getEmulation() const {return m_doEmulation;}
 
-  // TAccept
-  Root::TAccept getAccept(){return m_accept;}
-  void setAccept(Root::TAccept accept){m_accept=accept;}
-  void setAccept(const HLT::TriggerElement *,const TrigInfo);
+  // AcceptInfo/Data
+  const asg::AcceptInfo& getAccept() const {return m_accept;}
+  asg::AcceptData setAccept(const HLT::TriggerElement *,const TrigInfo);
   
   //Class Members
   // Athena services
diff --git a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/Root/TrigEgammaEmulationTool.cxx b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/Root/TrigEgammaEmulationTool.cxx
index 89b578b6434c8f370c442bf8e3061ef54f449871..ada6347b3556178df4f2b44ec4bdc834c078a58c 100644
--- a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/Root/TrigEgammaEmulationTool.cxx
+++ b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/Root/TrigEgammaEmulationTool.cxx
@@ -153,7 +153,7 @@ StatusCode TrigEgammaEmulationTool::initialize() {
     }
    
     ATH_MSG_INFO("Initialising accept...");
-    //add cuts into TAccept
+    //add cuts into AcceptInfo
     m_accept.addCut("L1Calo"  , "Trigger L1Calo step"     );
     m_accept.addCut("L2Calo"  , "Trigger L2Calo step"     );
     m_accept.addCut("L2"      , "Trigger L2Electron step" );
@@ -289,10 +289,10 @@ bool TrigEgammaEmulationTool::EventWiseContainer(){
 }
 //!==========================================================================
 //! Emulation from Trigger Element
-const Root::TAccept& TrigEgammaEmulationTool::executeTool(const HLT::TriggerElement *te_external, const std::string &trigger) {
+asg::AcceptData TrigEgammaEmulationTool::executeTool(const HLT::TriggerElement *te_external, const std::string &trigger) {
 
   ATH_MSG_DEBUG("TrigEgammaEmulationTool::executeTool(te, trigger)");
-  m_accept.clear(); 
+  asg::AcceptData acceptData (&m_accept);
   
   if(m_trigInfo.count(trigger) != 0){
 
@@ -311,7 +311,7 @@ const Root::TAccept& TrigEgammaEmulationTool::executeTool(const HLT::TriggerElem
       const auto* l1 = getFeature<xAOD::EmTauRoI>(te_external);
       if(!l1){
         ATH_MSG_WARNING("Can not retrieve the support element because the current TE does not has xAOD::EmTauRoI object!");
-        return m_accept;
+        return acceptData;
       }
       // This object is not fully completed, try to found other.
       for (const auto &fctrigger : m_supportingTrigList){
@@ -347,7 +347,7 @@ const Root::TAccept& TrigEgammaEmulationTool::executeTool(const HLT::TriggerElem
         ATH_MSG_WARNING("This Trigger Element does not have all features needed by the emulation tool. The external match is " <<
                      " not possible! Maybe the support trigger list not attend all requirements."); 
         setTEMatched(nullptr);
-        return m_accept;
+        return acceptData;
       }
     }
 
@@ -369,47 +369,47 @@ const Root::TAccept& TrigEgammaEmulationTool::executeTool(const HLT::TriggerElem
 
     //Level 1
     m_l1Selector->emulation( l1, passedL1Calo , info);
-    m_accept.setCutResult("L1Calo", passedL1Calo);
+    acceptData.setCutResult("L1Calo", passedL1Calo);
 
     if( (passedL1Calo ) && !info.isL1 ){
 
       m_l2Selector->emulation( emCluster, passedL2Calo , info);
-      m_accept.setCutResult("L2Calo", passedL2Calo);
+      acceptData.setCutResult("L2Calo", passedL2Calo);
 
       if(passedL2Calo ){
         if(info.perf){//bypass L2 Electron/Photon Level
           passedL2=true;
-          m_accept.setCutResult("L2", passedL2);
+          acceptData.setCutResult("L2", passedL2);
         }else{
           if (info.type == "electron") {
             if(m_doL2ElectronFex)
               m_l2Selector->emulation( trigElCont, passedL2, info);
             else
               passedL2=true;
-            m_accept.setCutResult("L2", passedL2);
+            acceptData.setCutResult("L2", passedL2);
           }
           else if (info.type == "photon") {
             //m_l2Selector->emulation( trigPhCont, passedL2, trigger);
             //m_efPhotonSelector->emulation( phCont, passedEF, trigger);
             passedL2=true;
-            m_accept.setCutResult("L2", passedL2);
+            acceptData.setCutResult("L2", passedL2);
           }
         }//bypass L2
 
         if (passedL2){
           m_efCaloSelector->emulation( elCont, passedEFCalo, info);
-          m_accept.setCutResult("EFCalo", passedEFCalo);
+          acceptData.setCutResult("EFCalo", passedEFCalo);
           
           if(passedEFCalo){
             passedEFTrack=true;
-            m_accept.setCutResult("EFTrack"    , passedEFTrack);
+            acceptData.setCutResult("EFTrack"    , passedEFTrack);
 
             if(passedEFTrack){
               if(!emulationHLT(elCont, passedHLT, info)){
-                m_accept.clear();
-                return m_accept;
+                acceptData.clear();
+                return acceptData;
               }else{
-                m_accept.setCutResult("HLT"    , passedHLT);
+                acceptData.setCutResult("HLT"    , passedHLT);
               }
             }//EFTrack
           }//EFCalo 
@@ -420,13 +420,13 @@ const Root::TAccept& TrigEgammaEmulationTool::executeTool(const HLT::TriggerElem
     ATH_MSG_WARNING("Can not emulate " << trigger << ". This chain must be added into trigList before the creation.");
   }
 
-  return m_accept;
+  return acceptData;
 }
 //!==========================================================================
 //! Emulation from xAOD containers not using TDT tools
-const Root::TAccept& TrigEgammaEmulationTool::executeTool(const std::string &trigger) {
+asg::AcceptData TrigEgammaEmulationTool::executeTool(const std::string &trigger) {
   clearDecorations();
-  m_accept.clear();
+  asg::AcceptData acceptData (&m_accept);
   
   if( m_trigInfo.count(trigger) != 0){
     Trig::Info info     = getTrigInfo(trigger);
@@ -448,7 +448,7 @@ const Root::TAccept& TrigEgammaEmulationTool::executeTool(const std::string &tri
       bit++;
     }
     if(bitL1Accept.count()>0)  passedL1Calo=true;
-    m_accept.setCutResult("L1Calo", passedL1Calo);
+    acceptData.setCutResult("L1Calo", passedL1Calo);
 
     if(passedL1Calo  && !info.isL1){
       bit=0; pass=false;
@@ -460,44 +460,44 @@ const Root::TAccept& TrigEgammaEmulationTool::executeTool(const std::string &tri
       }
   
       if(bitL2CaloAccept.count()>0)  passedL2Calo=true;
-      m_accept.setCutResult("L2Calo", passedL2Calo);
+      acceptData.setCutResult("L2Calo", passedL2Calo);
       
       if(passedL2Calo) {
         if(info.perf){//bypass L2 Electron/Photon Level
           passedL2=true;
-          m_accept.setCutResult("L2", passedL2);
+          acceptData.setCutResult("L2", passedL2);
         }else{
           if (info.type == "electron") {
             if(m_doL2ElectronFex)
               m_l2Selector->emulation(m_trigElectrons, passedL2, info);
             else
               passedL2=true;
-            m_accept.setCutResult("L2", passedL2);
+            acceptData.setCutResult("L2", passedL2);
           }
           else if (info.type == "photon") {
             //m_l2Selector->emulation( trigPhCont, passedL2, trigger);
             //m_efPhotonSelector->emulation( phCont, passedEF, trigger);
             passedL2=true;
-            m_accept.setCutResult("L2", passedL2);
+            acceptData.setCutResult("L2", passedL2);
           }
         }//bypass L2
 
         if (passedL2){
 
           m_efCaloSelector->emulation(m_onlElectrons, passedEFCalo, info);
-          m_accept.setCutResult("EFCalo", passedEFCalo);
+          acceptData.setCutResult("EFCalo", passedEFCalo);
           
           if(passedEFCalo){
             //TODO: running the EF track step
             passedEFTrack=true;
-            m_accept.setCutResult("EFTrack", passedEFTrack);
+            acceptData.setCutResult("EFTrack", passedEFTrack);
             
             if(passedEFTrack){
               if(!emulationHLT(m_onlElectrons, passedHLT, info)){
-                m_accept.clear();
-                return m_accept;
+                acceptData.clear();
+                return acceptData;
               }else{
-                m_accept.setCutResult("HLT"    , passedHLT);
+                acceptData.setCutResult("HLT"    , passedHLT);
               }
             }//EFTrack
 
@@ -508,27 +508,25 @@ const Root::TAccept& TrigEgammaEmulationTool::executeTool(const std::string &tri
   }else{
     ATH_MSG_WARNING("Can not emulate. Trigger not configurated");
   }
-  return m_accept;
+  return acceptData;
 }
 
 
 //!==========================================================================
 bool TrigEgammaEmulationTool::isPassed(const std::string &trigger) {
-  m_accept.clear();
-  m_accept = executeTool(trigger);
+  asg::AcceptData acceptData = executeTool(trigger);
   ATH_MSG_DEBUG("Trigger = "<< trigger );
-  ATH_MSG_DEBUG("isPassed()::L1Calo = " << m_accept.getCutResult("L1"));
-  ATH_MSG_DEBUG("isPassed()::L2Calo = " << m_accept.getCutResult("L2Calo"));
-  ATH_MSG_DEBUG("isPassed()::L2     = " << m_accept.getCutResult("L2"));
-  ATH_MSG_DEBUG("isPassed()::EFCalo = " << m_accept.getCutResult("EFCalo"));
-  ATH_MSG_DEBUG("isPassed()::EFTrack= " << m_accept.getCutResult("EFTrack"));
-  ATH_MSG_DEBUG("isPassed()::HLT    = " << m_accept.getCutResult("HLT"));
-  return m_accept.getCutResult("HLT");
+  ATH_MSG_DEBUG("isPassed()::L1Calo = " << acceptData.getCutResult("L1"));
+  ATH_MSG_DEBUG("isPassed()::L2Calo = " << acceptData.getCutResult("L2Calo"));
+  ATH_MSG_DEBUG("isPassed()::L2     = " << acceptData.getCutResult("L2"));
+  ATH_MSG_DEBUG("isPassed()::EFCalo = " << acceptData.getCutResult("EFCalo"));
+  ATH_MSG_DEBUG("isPassed()::EFTrack= " << acceptData.getCutResult("EFTrack"));
+  ATH_MSG_DEBUG("isPassed()::HLT    = " << acceptData.getCutResult("HLT"));
+  return acceptData.getCutResult("HLT");
 }
 
 //!==========================================================================
 bool TrigEgammaEmulationTool::isPassed(const std::string &trigger, const std::string &fctrigger) {
-  m_accept.clear();
   const HLT::TriggerElement *finalFC = NULL;
   auto fc = m_trigdec->features(fctrigger, TrigDefs::alsoDeactivateTEs);
   auto vec = fc.get<xAOD::ElectronContainer>();
@@ -539,14 +537,14 @@ bool TrigEgammaEmulationTool::isPassed(const std::string &trigger, const std::st
     bit++;
     finalFC = feat.te();
     if (!finalFC) continue;
-    m_accept = executeTool(finalFC, trigger);
-    if(m_accept.getCutResult("HLT"))  bitAccept.set(bit-1,true);
-    ATH_MSG_DEBUG("isPassed()::L1Calo = " << m_accept.getCutResult("L1"));
-    ATH_MSG_DEBUG("isPassed()::L2Calo = " << m_accept.getCutResult("L2Calo"));
-    ATH_MSG_DEBUG("isPassed()::L2     = " << m_accept.getCutResult("L2"));
-    ATH_MSG_DEBUG("isPassed()::EFCalo = " << m_accept.getCutResult("EFCalo"));
-    ATH_MSG_DEBUG("isPassed()::EFTrack= " << m_accept.getCutResult("EFTrack"));
-    ATH_MSG_DEBUG("isPassed()::HLT    = " << m_accept.getCutResult("HLT")); 
+    asg::AcceptData acceptData = executeTool(finalFC, trigger);
+    if(acceptData.getCutResult("HLT"))  bitAccept.set(bit-1,true);
+    ATH_MSG_DEBUG("isPassed()::L1Calo = " << acceptData.getCutResult("L1"));
+    ATH_MSG_DEBUG("isPassed()::L2Calo = " << acceptData.getCutResult("L2Calo"));
+    ATH_MSG_DEBUG("isPassed()::L2     = " << acceptData.getCutResult("L2"));
+    ATH_MSG_DEBUG("isPassed()::EFCalo = " << acceptData.getCutResult("EFCalo"));
+    ATH_MSG_DEBUG("isPassed()::EFTrack= " << acceptData.getCutResult("EFTrack"));
+    ATH_MSG_DEBUG("isPassed()::HLT    = " << acceptData.getCutResult("HLT")); 
   }
   bool pass=false;
   if(bitAccept.count()>0)  pass=true;
diff --git a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/ITrigEgammaEmulationTool.h b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/ITrigEgammaEmulationTool.h
index a77d0fc14f145bdd2ff87db88adca6f9b7df9380..33c6287e062bec11a0f3e97247c4ab78ec2a554d 100644
--- a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/ITrigEgammaEmulationTool.h
+++ b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/ITrigEgammaEmulationTool.h
@@ -26,7 +26,8 @@
 #include "xAODCaloEvent/CaloClusterAuxContainer.h"
 #include "xAODTrigger/EmTauRoIContainer.h"
 #include "TrigDecisionTool/TrigDecisionTool.h"
-#include "PATCore/TAccept.h"
+#include "PATCore/AcceptInfo.h"
+#include "PATCore/AcceptData.h"
 #include <vector>
 #include <map>
 
@@ -42,11 +43,11 @@ namespace Trig{
 
             virtual bool EventWiseContainer()=0;
 
-            virtual const Root::TAccept& executeTool( const HLT::TriggerElement *, const std::string & )=0;
-            virtual const Root::TAccept& executeTool( const std::string & )=0;
+            virtual asg::AcceptData executeTool( const HLT::TriggerElement *, const std::string & )=0;
+            virtual asg::AcceptData executeTool( const std::string & )=0;
             virtual bool isPassed(const std::string&)=0;
             virtual bool isPassed(const std::string&, const std::string&)=0;
-            virtual const Root::TAccept& getAccept()=0;
+            virtual const asg::AcceptInfo& getAccept() const =0;
             /* Experimental methods */
             virtual void ExperimentalAndExpertMethods()=0;
             virtual void match( const xAOD::Egamma *, const HLT::TriggerElement *&)=0;
diff --git a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/ITrigEgammaSelectorBaseTool.h b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/ITrigEgammaSelectorBaseTool.h
index d2b196d82e320fa137372320d0378eed73721013..295ede74a2fcdd7205db4b64f6a834379eb67b95 100644
--- a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/ITrigEgammaSelectorBaseTool.h
+++ b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/ITrigEgammaSelectorBaseTool.h
@@ -7,7 +7,6 @@
 #define ITrigEgammaSelectorBaseTool_H_
 
 #include "AsgTools/IAsgTool.h"
-#include "PATCore/TAccept.h"
 #include "TrigDecisionTool/TrigDecisionTool.h"
 
 //xAOD include(s)
diff --git a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/TrigEgammaEmulationTool.h b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/TrigEgammaEmulationTool.h
index 9ffb70e1451d24a3862be5d71c11bbd54812c921..5b7432c13378be3ff9ae00acbd20b04c6ad9995d 100644
--- a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/TrigEgammaEmulationTool.h
+++ b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/TrigEgammaEmulationTool.h
@@ -9,7 +9,8 @@
 #include "TrigEgammaEmulationTool/ITrigEgammaEmulationTool.h"
 #include "TrigEgammaEmulationTool/ITrigEgammaSelectorBaseTool.h"
 #include "AsgTools/AsgTool.h"
-#include "PATCore/TAccept.h"
+#include "PATCore/AcceptInfo.h"
+#include "PATCore/AcceptData.h"
 #include "AthContainers/AuxElement.h"
 #include "TrigDecisionTool/TrigDecisionTool.h"
 #include "TrigEgammaMatchingTool/ITrigEgammaMatchingTool.h"
@@ -39,27 +40,27 @@ class TrigEgammaEmulationTool
 
     //****************************************************************************** 
     TrigEgammaEmulationTool(const std::string& myname);
-    ~TrigEgammaEmulationTool() {};
+    virtual ~TrigEgammaEmulationTool() {};
 
-    StatusCode initialize();
-    StatusCode execute();
-    StatusCode finalize();
+    virtual StatusCode initialize() override;
+    virtual StatusCode execute() override;
+    virtual StatusCode finalize() override;
 
     //execute all emulators
-    const Root::TAccept& executeTool( const std::string &);
-    const Root::TAccept& executeTool( const HLT::TriggerElement *, const std::string &);
-    const Root::TAccept& getAccept(){return m_accept;}
+    virtual asg::AcceptData executeTool( const std::string &) override;
+    virtual asg::AcceptData executeTool( const HLT::TriggerElement *, const std::string &) override;
+    virtual const asg::AcceptInfo& getAccept() const override {return m_accept;}
     
-    bool EventWiseContainer();
-    bool isPassed(const std::string&);
-    bool isPassed(const std::string&, const std::string&);
+    virtual bool EventWiseContainer() override;
+    virtual bool isPassed(const std::string&) override;
+    virtual bool isPassed(const std::string&, const std::string&) override;
 
     
     /* Experimental methods */
-    void ExperimentalAndExpertMethods(){m_experimentalAndExpertMethods=true;};
+    virtual void ExperimentalAndExpertMethods() override {m_experimentalAndExpertMethods=true;};
     
-    void match( const xAOD::Egamma *, const HLT::TriggerElement *&);
-    const HLT::TriggerElement* getTEMatched(){return m_teMatched;};
+    virtual void match( const xAOD::Egamma *, const HLT::TriggerElement *&) override;
+    virtual const HLT::TriggerElement* getTEMatched() override {return m_teMatched;};
 
 
   private:
@@ -93,7 +94,7 @@ class TrigEgammaEmulationTool
     std::vector<std::string>                      m_supportingTrigList;
     std::map<std::string, Trig::Info>             m_trigInfo;
 
-    Root::TAccept                                 m_accept;
+    asg::AcceptInfo                               m_accept;
     StoreGateSvc                                 *m_storeGate;
     ToolHandle<Trig::TrigDecisionTool>            m_trigdec;
     ToolHandle<Trig::ITrigEgammaMatchingTool>     m_matchTool;
diff --git a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/TrigEgammaSelectorBaseTool.h b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/TrigEgammaSelectorBaseTool.h
index a5869fb8499eb83ba25f0cc5f7c16ce4167d3d68..e4cac53267cea2b57f519b2daa8b7a75d491eaa1 100644
--- a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/TrigEgammaSelectorBaseTool.h
+++ b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/TrigEgammaEmulationTool/TrigEgammaSelectorBaseTool.h
@@ -8,7 +8,6 @@
 
 
 #include "AsgTools/AsgTool.h"
-#include "PATCore/TAccept.h"
 #include "TrigDecisionTool/TrigDecisionTool.h"
 #include "LumiBlockComps/ILumiBlockMuTool.h"
 #include "LumiBlockComps/ILuminosityTool.h"
@@ -44,10 +43,10 @@ namespace Trig{
 
       //using ITrigEgammaSelectorBaseTool::emulation;
       TrigEgammaSelectorBaseTool(const std::string& myname);
-      ~TrigEgammaSelectorBaseTool(){;}
+      virtual ~TrigEgammaSelectorBaseTool(){;}
 
-      StatusCode initialize();
-      StatusCode finalize();
+      virtual StatusCode initialize() override;
+      virtual StatusCode finalize() override;
 
       //FIXME: static_cast for IParticleContainer to EmTau and emCluster
       //doent work. Because this I add these extra methods. Need to check
diff --git a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolAlg.cxx b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolAlg.cxx
index 3fe7bbac74684a0e67ed843213c265b3b4181eb3..e0600fe97edef0393f6f248fad1c7d3fde332f27 100644
--- a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolAlg.cxx
+++ b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolAlg.cxx
@@ -11,7 +11,6 @@
 #include "xAODCaloEvent/CaloClusterContainer.h"
 #include "xAODEgamma/ElectronContainer.h"
 #include "xAODEgamma/PhotonContainer.h"
-#include "PATCore/TAccept.h"
 
 namespace Trig {
 TrigEgammaEmulationToolAlg::
diff --git a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolAlg.h b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolAlg.h
index e612fab00e7ed6528fe74c81c1328890b87e8396..21905462a78180de414c01564b51b16e3413de69 100644
--- a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolAlg.h
+++ b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolAlg.h
@@ -19,10 +19,10 @@ namespace Trig {
   class TrigEgammaEmulationToolAlg : public AthAlgorithm {
     public:
       TrigEgammaEmulationToolAlg(const std::string& name, ISvcLocator* pSvcLocator);
-      ~TrigEgammaEmulationToolAlg();
-      StatusCode initialize();
-      StatusCode execute();
-      StatusCode finalize();
+      virtual ~TrigEgammaEmulationToolAlg();
+      virtual StatusCode initialize() override;
+      virtual StatusCode execute() override;
+      virtual StatusCode finalize() override;
     private:
       //
       std::vector<std::string>   m_triggerList;
diff --git a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolTest.cxx b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolTest.cxx
index 5a95b72e5f4ae49f7a8de8914c1f03ac104f758f..fbb1ce39d94f165cb1ec5a4ee6521c66052e0945 100644
--- a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolTest.cxx
+++ b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolTest.cxx
@@ -13,7 +13,6 @@
 #include "xAODCaloEvent/CaloClusterContainer.h"
 #include "xAODEgamma/ElectronContainer.h"
 #include "xAODEgamma/PhotonContainer.h"
-#include "PATCore/TAccept.h"
 using std::string;
 
 //**********************************************************************
@@ -118,23 +117,23 @@ StatusCode TrigEgammaEmulationToolTest::Method1() {
         ATH_MSG_DEBUG("TE is nullptr");
         continue;
       }
-      setAccept(finalFC);
+      asg::AcceptData acceptData = setAccept(finalFC);
       
       count("Method1__total__"+trigger);      
-      if(m_accept.getCutResult("L1Calo"))   count("Method1__TDT__L1Calo__" +trigger);
-      if(m_accept.getCutResult("L2Calo"))   count("Method1__TDT__L2Calo__" +trigger);
-      if(m_accept.getCutResult("L2"))       count("Method1__TDT__L2__"     +trigger);
-      if(m_accept.getCutResult("EFTrack"))  count("Method1__TDT__EFTrack__"+trigger);
-      if(m_accept.getCutResult("EFCalo"))   count("Method1__TDT__EFCalo__" +trigger);
-      if(m_accept.getCutResult("HLT"))      count("Method1__TDT__HLT__"    +trigger);
-
-      Root::TAccept accept = m_emulationTool->executeTool(finalFC, trigger);
-      if(accept.getCutResult("L1Calo"))   count("Method1__EMU__L1Calo__" +trigger);
-      if(accept.getCutResult("L2Calo"))   count("Method1__EMU__L2Calo__" +trigger);
-      if(accept.getCutResult("L2"))       count("Method1__EMU__L2__"     +trigger);
-      if(accept.getCutResult("EFTrack"))  count("Method1__EMU__EFTrack__"+trigger);
-      if(accept.getCutResult("EFCalo"))   count("Method1__EMU__EFCalo__" +trigger);
-      if(accept.getCutResult("HLT"))      count("Method1__EMU__HLT__"    +trigger);
+      if(acceptData.getCutResult("L1Calo"))   count("Method1__TDT__L1Calo__" +trigger);
+      if(acceptData.getCutResult("L2Calo"))   count("Method1__TDT__L2Calo__" +trigger);
+      if(acceptData.getCutResult("L2"))       count("Method1__TDT__L2__"     +trigger);
+      if(acceptData.getCutResult("EFTrack"))  count("Method1__TDT__EFTrack__"+trigger);
+      if(acceptData.getCutResult("EFCalo"))   count("Method1__TDT__EFCalo__" +trigger);
+      if(acceptData.getCutResult("HLT"))      count("Method1__TDT__HLT__"    +trigger);
+
+      asg::AcceptData accept2 = m_emulationTool->executeTool(finalFC, trigger);
+      if(accept2.getCutResult("L1Calo"))   count("Method1__EMU__L1Calo__" +trigger);
+      if(accept2.getCutResult("L2Calo"))   count("Method1__EMU__L2Calo__" +trigger);
+      if(accept2.getCutResult("L2"))       count("Method1__EMU__L2__"     +trigger);
+      if(accept2.getCutResult("EFTrack"))  count("Method1__EMU__EFTrack__"+trigger);
+      if(accept2.getCutResult("EFCalo"))   count("Method1__EMU__EFCalo__" +trigger);
+      if(accept2.getCutResult("HLT"))      count("Method1__EMU__HLT__"    +trigger);
       
     }// loop over electrons offline
   }// loop over triggers
@@ -156,22 +155,22 @@ StatusCode TrigEgammaEmulationToolTest::Method2() {
         continue;
       }
 
-      setAccept(finalFC);
+      asg::AcceptData acceptData = setAccept(finalFC);
       count("Method2__total__"+trigger);      
-      if(m_accept.getCutResult("L1Calo"))   count("Method2__TDT__L1Calo__" +trigger);
-      if(m_accept.getCutResult("L2Calo"))   count("Method2__TDT__L2Calo__" +trigger);
-      if(m_accept.getCutResult("L2"))       count("Method2__TDT__L2__"     +trigger);
-      if(m_accept.getCutResult("EFTrack"))  count("Method2__TDT__EFTrack__"+trigger);
-      if(m_accept.getCutResult("EFCalo"))   count("Method2__TDT__EFCalo__" +trigger);
-      if(m_accept.getCutResult("HLT"))      count("Method2__TDT__HLT__"    +trigger);
-
-      Root::TAccept accept = m_emulationTool->executeTool(trigger);
-      if(accept.getCutResult("L1Calo"))   count("Method2__EMU__L1Calo__" +trigger);
-      if(accept.getCutResult("L2Calo"))   count("Method2__EMU__L2Calo__" +trigger);
-      if(accept.getCutResult("L2"))       count("Method2__EMU__L2__"     +trigger);
-      if(accept.getCutResult("EFTrack"))  count("Method2__EMU__EFTrack__"+trigger);
-      if(accept.getCutResult("EFCalo"))   count("Method2__EMU__EFCalo__" +trigger);
-      if(accept.getCutResult("HLT"))      count("Method2__EMU__HLT__"    +trigger);
+      if(acceptData.getCutResult("L1Calo"))   count("Method2__TDT__L1Calo__" +trigger);
+      if(acceptData.getCutResult("L2Calo"))   count("Method2__TDT__L2Calo__" +trigger);
+      if(acceptData.getCutResult("L2"))       count("Method2__TDT__L2__"     +trigger);
+      if(acceptData.getCutResult("EFTrack"))  count("Method2__TDT__EFTrack__"+trigger);
+      if(acceptData.getCutResult("EFCalo"))   count("Method2__TDT__EFCalo__" +trigger);
+      if(acceptData.getCutResult("HLT"))      count("Method2__TDT__HLT__"    +trigger);
+
+      asg::AcceptData accept2 = m_emulationTool->executeTool(trigger);
+      if(accept2.getCutResult("L1Calo"))   count("Method2__EMU__L1Calo__" +trigger);
+      if(accept2.getCutResult("L2Calo"))   count("Method2__EMU__L2Calo__" +trigger);
+      if(accept2.getCutResult("L2"))       count("Method2__EMU__L2__"     +trigger);
+      if(accept2.getCutResult("EFTrack"))  count("Method2__EMU__EFTrack__"+trigger);
+      if(accept2.getCutResult("EFCalo"))   count("Method2__EMU__EFCalo__" +trigger);
+      if(accept2.getCutResult("HLT"))      count("Method2__EMU__HLT__"    +trigger);
     
     }
   }
@@ -213,11 +212,12 @@ void TrigEgammaEmulationToolTest::writeEmulationSummary(){
  
 }
 
-bool TrigEgammaEmulationToolTest::setAccept( const HLT::TriggerElement *finalFC){
-  m_accept.clear();
-  
+asg::AcceptData
+TrigEgammaEmulationToolTest::setAccept( const HLT::TriggerElement *finalFC)
+{
+  asg::AcceptData acceptData (&m_accept);
   if(!finalFC)
-    return false;
+    return acceptData;
     
   bool passedL1         = false;
   bool passedL2Calo     = false;
@@ -254,14 +254,14 @@ bool TrigEgammaEmulationToolTest::setAccept( const HLT::TriggerElement *finalFC)
   if( m_trigdec->ancestor<xAOD::ElectronContainer>(finalFC).te() != nullptr )
     passedHLT=m_trigdec->ancestor<xAOD::ElectronContainer>(finalFC).te()->getActiveState();
 
-  m_accept.setCutResult("L1Calo", passedL1);
-  m_accept.setCutResult("L2Calo", passedL2Calo);
-  m_accept.setCutResult("L2", passedL2);
-  m_accept.setCutResult("EFTrack", passedEFTrack);
-  m_accept.setCutResult("EFCalo", passedEFCalo);
-  m_accept.setCutResult("HLT", passedHLT);
+  acceptData.setCutResult("L1Calo", passedL1);
+  acceptData.setCutResult("L2Calo", passedL2Calo);
+  acceptData.setCutResult("L2", passedL2);
+  acceptData.setCutResult("EFTrack", passedEFTrack);
+  acceptData.setCutResult("EFCalo", passedEFCalo);
+  acceptData.setCutResult("HLT", passedHLT);
 
-  return true;
+  return acceptData;
 }
 
 }///namespace
diff --git a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolTest.h b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolTest.h
index 903832077a1d09398243798606a9dd5ca29cb4da..deb1fd59d7a44f35ba91b252fce6dcb166ce84c5 100644
--- a/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolTest.h
+++ b/Trigger/TrigAnalysis/TrigEgammaEmulationTool/src/TrigEgammaEmulationToolTest.h
@@ -14,6 +14,8 @@
 #include "TrigEgammaMatchingTool/ITrigEgammaMatchingTool.h"
 #include "TrigEgammaEmulationTool/ITrigEgammaEmulationTool.h"
 #include "xAODEgamma/ElectronContainer.h"
+#include "PATCore/AcceptInfo.h"
+#include "PATCore/AcceptData.h"
 
 #include <string>
 #include <map>
@@ -29,12 +31,12 @@ namespace Trig{
             TrigEgammaEmulationToolTest(const std::string& name, ISvcLocator* pSvcLocator);
 
             /// Destructor: 
-            ~TrigEgammaEmulationToolTest(); 
+            virtual ~TrigEgammaEmulationToolTest(); 
 
             /// Athena algorithm's Hooks
-            StatusCode  initialize();
-            StatusCode  execute();
-            StatusCode  finalize();
+            virtual StatusCode  initialize() override;
+            virtual StatusCode  execute() override;
+            virtual StatusCode  finalize() override;
 
         private: 
 
@@ -43,7 +45,7 @@ namespace Trig{
             StatusCode Method1();
             StatusCode Method2();
             void writeEmulationSummary();
-            bool setAccept(const HLT::TriggerElement*);
+            asg::AcceptData setAccept(const HLT::TriggerElement*);
             float ratio(float,float);
 
 
@@ -66,7 +68,7 @@ namespace Trig{
             std::map<std::string, unsigned >m_countMap;
             std::vector<std::string>   m_triggerList;
             StoreGateSvc              *m_storeGate;
-            Root::TAccept              m_accept;
+            asg::AcceptInfo            m_accept;
 
             const xAOD::ElectronContainer   *m_offElectrons;