20 HepMC3::GenVertexPtr v0 = std::make_shared<HepMC3::GenVertex>();
27 for (
const auto& v: e->vertices())
29 if (!v->particles_out().empty())
continue;
30 for (
size_t i = 0; i < n; ++i) v->add_particle_out(std::make_shared<HepMC3::GenParticle>());
34 auto vertices=e->vertices();
35 for (
const auto& v: vertices)
37 if (!v->particles_out().empty())
continue;
38 for (
size_t i = 0; i < n; ++i) v->add_particle_out(std::make_shared<HepMC3::GenParticle>());
39 for (
const auto& p: v->particles_out())
41 HepMC3::GenVertexPtr vx=std::make_shared<HepMC3::GenVertex>();
42 vx->add_particle_in(p);
53 std::cout<<
"search_example: start"<<std::endl;
54 auto start0 = std::chrono::system_clock::now();
55 for (
int i = 0; i < 10000; ++i)
60 auto end0 = std::chrono::system_clock::now();
61 std::cout<<
"search_example: generation of events "<<std::chrono::duration_cast<std::chrono::milliseconds>(end0 - start0).count()<<
" ms"<<std::endl;
63 auto start1 = std::chrono::system_clock::now();
65 for (
int i = 0; i < 10000; ++i)
71 auto end1 = std::chrono::system_clock::now();
72 std::cout<<
"search_example: generation of events and descendants_of_same_type() "
73 <<std::chrono::duration_cast<std::chrono::milliseconds>(end1 - start1).count()<<
" ms"
74 <<
" total number of decandants: "<<np1<<std::endl;
76 auto start2 = std::chrono::system_clock::now();
78 for (
int i = 0; i < 10000; ++i)
84 auto end2 = std::chrono::system_clock::now();
85 std::cout<<
"search_example: generation of events and Relatives::DESCENDANTS() "
86 <<std::chrono::duration_cast<std::chrono::milliseconds>(end2 - start2).count()<<
" ms"
87 <<
" total number of decandants: "<<np2<<std::endl;
89 auto start3 = std::chrono::system_clock::now();
91 for (
int i = 0; i < 10000; ++i)
97 auto end3 = std::chrono::system_clock::now();
98 std::cout<<
"search_example: generation of events and ancestors_of_same_type() "
99 <<std::chrono::duration_cast<std::chrono::milliseconds>(end3 - start3).count()<<
" ms"
100 <<
" total number of ancestors: "<<np3<<std::endl;
103 auto start4 = std::chrono::system_clock::now();
105 for (
int i = 0; i < 10000; ++i)
111 auto end4 = std::chrono::system_clock::now();
112 std::cout<<
"search_example: generation of events and Relatives::ANCESTORS() "
113 <<std::chrono::duration_cast<std::chrono::milliseconds>(end4 - start4).count()<<
" ms"
114 <<
" total number of ancestors: "<<np4<<std::endl;
116 auto start1o = std::chrono::system_clock::now();
118 for (
int i = 0; i < 10000; ++i)
124 auto end1o = std::chrono::system_clock::now();
125 std::cout<<
"search_example: generation of events and descendants_of_other_type() "
126 <<std::chrono::duration_cast<std::chrono::milliseconds>(end1o - start1o).count()<<
" ms"
127 <<
" total number of decandants: "<<np1o<<std::endl;
130 auto start3o = std::chrono::system_clock::now();
132 for (
int i = 0; i < 10000; ++i)
138 auto end3o = std::chrono::system_clock::now();
139 std::cout<<
"search_example: generation of events and ancestors_of_other_type() "
140 <<std::chrono::duration_cast<std::chrono::milliseconds>(end3o - start3o).count()<<
" ms"
141 <<
" total number of decandants: "<<np3o<<std::endl;
143 std::cout<<
"search_example: end"<<std::endl;
Definition of class GenEvent.
Definition of class GenParticle.
Definition of class GenVertex.
Definition of static class Print.
Defines helper classes to extract relatives of an input GenParticle or GenVertex.
Stores event-related information.
const std::vector< ConstGenParticlePtr > & particles() const
Get list of particles (const)
static HEPMC3search_Relatives_EXPORT_API thread_local const Ancestors ANCESTORS
Ancestors.
static HEPMC3search_Relatives_EXPORT_API thread_local const Descendants DESCENDANTS
Descendants.
std::vector< HepMC3::ConstGenParticlePtr > ancestor_particles(const HepMC3::ConstGenVertexPtr &obj)
Return ancestor particles.
std::vector< HepMC3::ConstGenParticlePtr > descendant_particles(const HepMC3::ConstGenVertexPtr &obj)
Return descendant particles.
std::vector< HepMC3::ConstGenVertexPtr > ancestor_vertices(const HepMC3::ConstGenParticlePtr &obj)
Return ancestor vertices.
std::vector< HepMC3::ConstGenVertexPtr > descendant_vertices(const HepMC3::ConstGenParticlePtr &obj)
Return descendant vertices.