diff --git a/Generators/EvgenProdTools/src/TestHepMC.cxx b/Generators/EvgenProdTools/src/TestHepMC.cxx
index eff96cbbf2e9c794e7f23207d4385eadfc86d063..2fb6dcc8be5ce0cb9cca2baf2d12e8c41414bba1 100644
--- a/Generators/EvgenProdTools/src/TestHepMC.cxx
+++ b/Generators/EvgenProdTools/src/TestHepMC.cxx
@@ -33,6 +33,7 @@ TestHepMC::TestHepMC(const std::string& name, ISvcLocator* pSvcLocator)
   declareProperty("AccuracyMargin",   m_accur_margin=0.); //MeV
 
   declareProperty("G4ExtraWhiteFile", m_paramFile       = "g4_extrawhite.param" );
+  // a list of allowed pdgid which however might not follow the official rules
   declareProperty("UnknownPDGIDFile", m_unknownPDGIDFile = "pdgid_extras.txt" );
 
   declareProperty("NoDecayVertexStatuses", m_vertexStatuses );
@@ -386,11 +387,13 @@ StatusCode TestHepMC::execute() {
         for (auto part_it = vtx->particles_in_const_begin(); part_it != vtx->particles_in_const_end(); ++part_it) {
         auto part=(*part_it);
 #endif
-          ATH_MSG_WARNING("Outgoing particle : ");
-          if (m_dumpEvent) HepMC::Print::line(std::cout,part);
+          if (m_dumpEvent){
+            ATH_MSG_WARNING("Outgoing particle : ");
+            HepMC::Print::line(msg( MSG::WARNING ).stream(),part);
+          }
           ATH_MSG_WARNING("production vertex = " << part->production_vertex()->position().x() << ", " << part->production_vertex()->position().y() << ", " << part->production_vertex()->position().z());
           ATH_MSG_WARNING("end vertex        = " << part->end_vertex()->position().x() << ", " << part->end_vertex()->position().y() << ", " << part->end_vertex()->position().z());
-          ATH_MSG_WARNING("parents info: ");
+          if (m_dumpEvent) ATH_MSG_WARNING("parents info: ");
           if (part->production_vertex()) {
 #ifdef HEPMC3
             for(auto p_parents: part->production_vertex()->particles_in()) {
@@ -398,8 +401,10 @@ StatusCode TestHepMC::execute() {
             for(auto p_parents_it = part->production_vertex()->particles_in_const_begin(); p_parents_it != part->production_vertex()->particles_in_const_end(); ++p_parents_it) {
             auto p_parents=(*p_parents_it);
 #endif
-              if (m_dumpEvent) HepMC::Print::line(std::cout,p_parents);
-              ATH_MSG_WARNING("\t");
+              if (m_dumpEvent){
+                msg(MSG::WARNING) << "\t";
+                HepMC::Print::line( msg( MSG::WARNING ).stream() , p_parents );
+              }
             }
           } // Done with fancy print
 
@@ -464,7 +469,7 @@ StatusCode TestHepMC::execute() {
         if (m_momNaNTest) {
           filter_pass = false;
         }
-      } // End of check for NaNs and infiinities
+      } // End of check for NaNs and infinities
 
       // Check for undecayed pi0s
       if (pstatus == 1 || pstatus == 2) {
@@ -529,8 +534,9 @@ StatusCode TestHepMC::execute() {
 
       // Check for bad PDG IDs
       if (!MC::PID::isValid(ppdgid)){
-        ATH_MSG_WARNING("Invalid PDG ID found: " << ppdgid);
-        if (m_unknownPDGIDTest && std::find(m_uknownPDGID_tab.begin(),m_uknownPDGID_tab.end(),ppdgid)!=m_uknownPDGID_tab.end()){
+        ATH_MSG_DEBUG("Invalid PDG ID found: " << ppdgid);
+        if (m_unknownPDGIDTest && std::find(m_uknownPDGID_tab.begin(),m_uknownPDGID_tab.end(),ppdgid)==m_uknownPDGID_tab.end()){
+          ATH_MSG_WARNING("Invalid and unmasked PDG ID found: " << ppdgid);
           filter_pass = false;
         }
       } // End of check for invalid PDG IDs