HepMC3 event record library
SimpleEventTool.cc
1// -*- C++ -*-
2//
3// This file is part of HepMC
4// Copyright (C) 2014-2019 The HepMC collaboration (see AUTHORS for details)
5//
6#include "SimpleEventTool.h"
7
9 // Create some four vectors for the electrons
10 double ele_mass_sqr = 0.000511*0.000511;
11 FourVector momentum_e1;
12 FourVector momentum_e2;
13
14 momentum_e1.setPz( -2);
15 momentum_e2.setPz(3.5);
16
17 momentum_e1.setE(std::sqrt(momentum_e1.pz()*momentum_e1.pz() + ele_mass_sqr));
18 momentum_e2.setE(std::sqrt(momentum_e2.pz()*momentum_e2.pz() + ele_mass_sqr));
19
20 FourVector momentum_tau1(+1.38605041e+00,+1.38605041e+00,+7.50000000e-01,+2.75000005e+00);
21 FourVector momentum_tau2(-1.38605041e+00,-1.38605041e+00,+7.50000000e-01,+2.75000005e+00);
22
23 // Make particles
24 HEPMC2CODE(
25 GenParticle *e1 = new GenParticle( momentum_e1, -11, 2 );
26 GenParticle *e2 = new GenParticle( momentum_e2, 11, 2 );
27 GenParticle *tau1 = new GenParticle( momentum_tau1, -15, 1 );
28 GenParticle *tau2 = new GenParticle( momentum_tau2, 15, 1 );
29 GenVertex *vertex = new GenVertex();
30 )
31 HEPMC3CODE(
32 // Although the code for HepMC2 would work (thanks to backward compatibility)
33 // we don't want to use deprecated functions
34 GenParticlePtr e1 = std::make_shared<GenParticle>( momentum_e1, -11, 2 );
35 GenParticlePtr e2 = std::make_shared<GenParticle>( momentum_e2, 11, 2 );
36 GenParticlePtr tau1 = std::make_shared<GenParticle>( momentum_tau1, -15, 1 );
37 GenParticlePtr tau2 = std::make_shared<GenParticle>( momentum_tau2, 15, 1 );
38 GenVertexPtr vertex = std::make_shared<GenVertex>();
39 )
40
41 // Set masses
42 e1-> set_generated_mass(0.000511);
43 e2-> set_generated_mass(0.000511);
44 tau1->set_generated_mass(1.777);
45 tau2->set_generated_mass(1.777);
46
47 // Make vertex
48 vertex->add_particle_in(e1);
49 vertex->add_particle_in(e2);
50 vertex->add_particle_out(tau1);
51 vertex->add_particle_out(tau2);
52
53 hepmc.add_vertex(vertex);
54 return 0;
55}
Generic 4-vector.
Definition: FourVector.h:36
void setE(double ee)
Definition: FourVector.h:135
double pz() const
z-component of momentum
Definition: FourVector.h:124
void setPz(double pzz)
Definition: FourVector.h:128
Stores event-related information.
Definition: GenEvent.h:41
void add_vertex(GenVertexPtr v)
Add vertex.
Definition: GenEvent.cc:96
Stores particle-related information.
Definition: GenParticle.h:31
void set_generated_mass(double m)
Set generated mass.
Definition: GenParticle.cc:52
Stores vertex-related information.
Definition: GenVertex.h:26
void add_particle_in(GenParticlePtr p)
Add incoming particle.
Definition: GenVertex.cc:36
void add_particle_out(GenParticlePtr p)
Add outgoing particle.
Definition: GenVertex.cc:52
int process(GenEvent &hepmc)
Process event.