15 HepMC3::GenVertexPtr v0=std::make_shared<HepMC3::GenVertex>();
24 if (v->particles_out().size()!=0)
continue;
25 for (
int i=0; i<n; i++) v->add_particle_out(std::make_shared<HepMC3::GenParticle>());
30 for (
auto v: vertices)
32 if (v->particles_out().size()!=0)
continue;
33 for (
int i=0; i<n; i++) v->add_particle_out(std::make_shared<HepMC3::GenParticle>());
34 for (
auto p: v->particles_out())
36 HepMC3::GenVertexPtr vx=std::make_shared<HepMC3::GenVertex>();
37 vx->add_particle_in(p);
48 std::cout<<
"search_example: start"<<std::endl;
49 auto start0 = std::chrono::system_clock::now();
50 for (
int i=0; i<10000; i++)
55 auto end0 = std::chrono::system_clock::now();
56 std::cout<<
"search_example: generation of events "<<std::chrono::duration_cast<std::chrono::milliseconds>(end0 - start0).count()<<
" ms"<<std::endl;
58 auto start1 = std::chrono::system_clock::now();
60 for (
int i=0; i<10000; i++)
66 auto end1 = std::chrono::system_clock::now();
67 std::cout<<
"search_example: generation of events and descendants_of_same_type() "<<std::chrono::duration_cast<std::chrono::milliseconds>(end1 - start1).count()<<
" ms"<<std::endl;
69 auto start2 = std::chrono::system_clock::now();
71 for (
int i=0; i<10000; i++)
74 for (
auto p: evt->
particles()) np2+=(HepMC3::Relatives::DESCENDANTS(p)).size();
77 auto end2 = std::chrono::system_clock::now();
78 std::cout<<
"search_example: generation of events and Relatives::DESCENDANTS() "<<std::chrono::duration_cast<std::chrono::milliseconds>(end2 - start2).count()<<
" ms"<<std::endl;
80 auto start3 = std::chrono::system_clock::now();
82 for (
int i=0; i<10000; i++)
88 auto end3 = std::chrono::system_clock::now();
89 std::cout<<
"search_example: generation of events and ancestors_of_same_type() "<<std::chrono::duration_cast<std::chrono::milliseconds>(end3 - start3).count()<<
" ms"<<std::endl;
92 auto start4 = std::chrono::system_clock::now();
94 for (
int i=0; i<10000; i++)
97 for (
auto p: evt->
particles()) np4+=(HepMC3::Relatives::ANCESTORS(p)).size();
100 auto end4 = std::chrono::system_clock::now();
101 std::cout<<
"search_example: generation of events and Relatives::ANCESTORS() "<<std::chrono::duration_cast<std::chrono::milliseconds>(end4 - start4).count()<<
" ms"<<std::endl;
103 auto start1o = std::chrono::system_clock::now();
105 for (
int i=0; i<10000; i++)
111 auto end1o = std::chrono::system_clock::now();
112 std::cout<<
"search_example: generation of events and descendants_of_other_type() "<<std::chrono::duration_cast<std::chrono::milliseconds>(end1o - start1o).count()<<
" ms"<<std::endl;
115 auto start3o = std::chrono::system_clock::now();
117 for (
int i=0; i<10000; i++)
123 auto end3o = std::chrono::system_clock::now();
124 std::cout<<
"search_example: generation of events and ancestors_of_other_type() "<<std::chrono::duration_cast<std::chrono::milliseconds>(end3o - start3o).count()<<
" ms"<<std::endl;
126 std::cout<<
"search_example: end"<<std::endl;
void add_vertex(GenVertexPtr v)
Add vertex.
Definition of class GenParticle.
const std::vector< ConstGenVertexPtr > & vertices() const
Get list of vertices (const)
std::vector< HepMC3::ConstGenVertexPtr > ancestor_vertices(HepMC3::ConstGenParticlePtr obj)
Return ancestor vertices.
Definition of class GenVertex.
Stores event-related information.
Defines helper classes to extract relatives of an input GenParticle or GenVertex.
const std::vector< ConstGenParticlePtr > & particles() const
Get list of particles (const)
std::vector< HepMC3::ConstGenVertexPtr > descendant_vertices(HepMC3::ConstGenParticlePtr obj)
Return descendant vertices.
Definition of static class Print.
std::vector< HepMC3::ConstGenParticlePtr > descendant_particles(HepMC3::ConstGenVertexPtr obj)
Return descendant particles.
int main(int argc, char **argv)
Definition of class GenEvent.
std::vector< HepMC3::ConstGenParticlePtr > ancestor_particles(HepMC3::ConstGenVertexPtr obj)
Return ancestor particles.