From 9ee0590b24509f6e46009847ba47d8d5eb8c1fe1 Mon Sep 17 00:00:00 2001
From: Andrii Verbytskyi <andrii.verbytskyi@cern.ch>
Date: Tue, 8 Dec 2020 10:45:24 +0000
Subject: [PATCH] Migrate TruthParticleContainer tests to HepMC3

---
 .../test/TruthEtIsolationsCnv_p1_test.cxx      | 12 ++++++++++++
 .../test/TruthParticleContainerCnv_p5_test.cxx | 18 ++++++++++++++++++
 .../test/TruthParticleContainerCnv_p6_test.cxx | 18 ++++++++++++++++++
 3 files changed, 48 insertions(+)

diff --git a/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/test/TruthEtIsolationsCnv_p1_test.cxx b/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/test/TruthEtIsolationsCnv_p1_test.cxx
index 06167120af7..ed5a2ad7ed5 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 09a28a1d645..ab48c241e0c 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 fcb94b06dda..e0aacbd1d35 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
-- 
GitLab