diff --git a/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/test/TruthEtIsolationsCnv_p1_test.cxx b/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/test/TruthEtIsolationsCnv_p1_test.cxx
index 06167120af78644a976f9bd0c590da050b0a8c2f..ed5a2ad7ed59cad0a5f85ff301b0cb1b210c5314 100644
--- a/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/test/TruthEtIsolationsCnv_p1_test.cxx
+++ b/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/test/TruthEtIsolationsCnv_p1_test.cxx
@@ -57,6 +57,17 @@ void test1 (SGTest::TestStore& store)
   evcoll->push_back (std::make_unique<HepMC::GenEvent>());
 
   auto ge = std::make_unique<HepMC::GenEvent>();
+#ifdef HEPMC3
+  auto gv=HepMC::newGenVertexPtr() ;
+  std::vector<HepMC::GenParticlePtr> parts;
+  for (size_t i = 0; i < 5; i++) {
+    auto gp = HepMC::newGenParticlePtr(HepMC::FourVector(i*10 + 1.5,i*10 + 2.5,i*10 + 3.5,i*10 + 4.5),i+20);
+    HepMC::suggest_barcode(gp,1000+i);
+    parts.push_back (gp);
+    gv->add_particle_out(gp);
+  }
+  ge->add_vertex (gv);
+#else
   auto gv = std::make_unique<HepMC::GenVertex>();
   std::vector<HepMC::GenParticle*> parts;
   for (size_t i = 0; i < 5; i++) {
@@ -71,6 +82,7 @@ void test1 (SGTest::TestStore& store)
     gv->add_particle_out (gp.release());
   }
   ge->add_vertex (gv.release());
+#endif
   evcoll->push_back (std::move(ge));
   store.record (std::move(evcoll), "mcevt");
   ElementLink<McEventCollection> evlink ("mcevt", 2);
diff --git a/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/test/TruthParticleContainerCnv_p5_test.cxx b/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/test/TruthParticleContainerCnv_p5_test.cxx
index 09a28a1d645df546cf65a4346a8bbc4e1336eac1..ab48c241e0cdaf8e63ace72a91d1bbb3299c78d9 100644
--- a/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/test/TruthParticleContainerCnv_p5_test.cxx
+++ b/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/test/TruthParticleContainerCnv_p5_test.cxx
@@ -92,6 +92,23 @@ void test1 (SGTest::TestStore& store)
   std::cout << "test1\n";
 
   auto evcoll = std::make_unique<McEventCollection>();
+#ifdef HEPMC3
+  //Signal process id is obsolete in HepMC3
+  evcoll->push_back (std::make_unique<HepMC::GenEvent>());
+  evcoll->back()->set_event_number(4);
+  evcoll->push_back (std::make_unique<HepMC::GenEvent>());
+  evcoll->back()->set_event_number(5);
+  auto ge = std::make_unique<HepMC::GenEvent>();
+  ge->set_event_number(7);
+  auto gv = HepMC::newGenVertexPtr();
+  std::vector<HepMC::GenParticlePtr> parts;
+  for (size_t i = 0; i < 5; i++) {
+    auto gp = HepMC::newGenParticlePtr(HepMC::FourVector (i*10 + 1.5,i*10 + 2.5,i*10 + 3.5,i*10 + 4.5),i+20);
+    parts.push_back (gp);
+    gv->add_particle_out (gp);
+  }
+  ge->add_vertex (gv);
+#else
   evcoll->push_back (std::make_unique<HepMC::GenEvent>(1000082, 4));
   evcoll->push_back (std::make_unique<HepMC::GenEvent>(1000087, 5));
 
@@ -109,6 +126,7 @@ void test1 (SGTest::TestStore& store)
     gv->add_particle_out (gp.release());
   }
   ge->add_vertex (gv.release());
+#endif
   evcoll->push_back (std::move(ge));
   store.record (std::move(evcoll), "GEN_AOD");
   // create a dummy EventContext
diff --git a/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/test/TruthParticleContainerCnv_p6_test.cxx b/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/test/TruthParticleContainerCnv_p6_test.cxx
index fcb94b06dda16bcad9faf0729647ed8cad0111a1..e0aacbd1d35463033b8c76fd5377c176c8b23cfb 100644
--- a/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/test/TruthParticleContainerCnv_p6_test.cxx
+++ b/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/test/TruthParticleContainerCnv_p6_test.cxx
@@ -79,6 +79,23 @@ void test1 (SGTest::TestStore& store)
   std::cout << "test1\n";
 
   auto evcoll = std::make_unique<McEventCollection>();
+#ifdef HEPMC3
+  //Signal process id is obsolete in HepMC3
+  evcoll->push_back (std::make_unique<HepMC::GenEvent>());
+  evcoll.back()->set_event_number(4);
+  evcoll->push_back (std::make_unique<HepMC::GenEvent>());
+  evcoll.back()->set_event_number(5);
+  auto ge = std::make_unique<HepMC::GenEvent>();
+  ge->set_event_number(7);
+  auto gv = HepMC::newGenVertexPtr();
+  std::vector<HepMC::GenParticlePtr> parts;
+  for (size_t i = 0; i < 5; i++) {
+    auto gp = HepMC::newGenParticlePtr(HepMC::FourVector(i*10 + 1.5, i*10 + 2.5, i*10 +3.5, i*10 + 4.5), i+20);
+    parts.push_back (gp);
+    gv->add_particle_out (gp);
+  }
+  ge->add_vertex (gv);
+#else
   evcoll->push_back (std::make_unique<HepMC::GenEvent>(1000082, 4));
   evcoll->push_back (std::make_unique<HepMC::GenEvent>(1000087, 5));
 
@@ -96,6 +113,7 @@ void test1 (SGTest::TestStore& store)
     gv->add_particle_out (gp.release());
   }
   ge->add_vertex (gv.release());
+#endif
   evcoll->push_back (std::move(ge));
   store.record (std::move(evcoll), "GEN_AOD");
   // create a dummy EventContext