diff --git a/PhysicsAnalysis/NtupleDumper/src/NtupleDumperAlg.cxx b/PhysicsAnalysis/NtupleDumper/src/NtupleDumperAlg.cxx
index 1369684d16f1071c2b5eab6e5853b87459d0e06a..b61be213ac21f4c7cb568b9bb97177260c266090 100644
--- a/PhysicsAnalysis/NtupleDumper/src/NtupleDumperAlg.cxx
+++ b/PhysicsAnalysis/NtupleDumper/src/NtupleDumperAlg.cxx
@@ -548,10 +548,10 @@ StatusCode NtupleDumperAlg::execute(const EventContext &ctx) const
     {
       for (auto particle : *truthParticleContainer)
       {
-        if ( particle->barcode() <= 3) 
+        if ( particle->barcode() == 1 || particle->barcode() == 2 || particle->barcode() == 3 ) 
         {
 
-	if ( particle->barcode() == 1) // mother particle (A')
+	if ( particle->pdgId() == 32) // mother particle (A')
 	  {
 
 	  m_truthM_P.push_back(particle->p4().P());
@@ -1218,6 +1218,31 @@ NtupleDumperAlg::clearTree() const
   m_truthLeptonMomentum = 0;
   m_truthBarcode = 0;
   m_truthPdg = 0;
+
+ m_truthM_P.clear();
+  m_truthM_px.clear();
+  m_truthM_py.clear();
+  m_truthM_pz.clear();
+  m_truthM_x.clear();
+  m_truthM_y.clear();
+  m_truthM_z.clear();
+
+  m_truthd0_P.clear();
+  m_truthd0_px.clear();
+  m_truthd0_py.clear();
+  m_truthd0_pz.clear();
+  m_truthd0_x.clear();
+  m_truthd0_y.clear();
+  m_truthd0_z.clear();
+
+  m_truthd1_P.clear();
+  m_truthd1_px.clear();
+  m_truthd1_py.clear();
+  m_truthd1_pz.clear();
+  m_truthd1_x.clear();
+  m_truthd1_y.clear();
+  m_truthd1_z.clear();
+
 }
 
 void NtupleDumperAlg::setNaN() const {