20#define M_PI 3.14159265358979323846264338327950288
22#include "HepMC3TestUtils.h"
65 evt.set_event_number(1);
66 evt.add_attribute(
"signal_process_id", std::make_shared<IntAttribute>(20));
68 GenVertexPtr v1=std::make_shared<GenVertex>();
70 GenParticlePtr p1=std::make_shared<GenParticle>(
FourVector(0,0,7000,7000),2212, 3 );
71 evt.add_particle( p1 );
72 p1->add_attribute(
"flow1", std::make_shared<IntAttribute>(231));
73 p1->add_attribute(
"flow1", std::make_shared<IntAttribute>(231));
74 p1->add_attribute(
"theta", std::make_shared<DoubleAttribute>(std::rand()/
double(RAND_MAX)*
M_PI));
75 p1->add_attribute(
"phi", std::make_shared<DoubleAttribute>(std::rand()/
double(RAND_MAX)*
M_PI*2));
77 GenVertexPtr v2=std::make_shared<GenVertex>();
79 GenParticlePtr p2=std::make_shared<GenParticle>(
FourVector(0,0,-7000,7000),2212, 3 );
80 evt.add_particle( p2 );
81 p2->add_attribute(
"flow1", std::make_shared<IntAttribute>(243));
82 p2->add_attribute(
"theta", std::make_shared<DoubleAttribute>(std::rand()/
double(RAND_MAX)*
M_PI));
83 p2->add_attribute(
"phi", std::make_shared<DoubleAttribute>(std::rand()/
double(RAND_MAX)*
M_PI*2));
84 v2->add_particle_in( p2 );
87 GenParticlePtr p3=std::make_shared<GenParticle>(
FourVector(.750,-1.569,32.191,32.238),1, 3 );
88 evt.add_particle( p3 );
89 p3->add_attribute(
"flow1", std::make_shared<IntAttribute>(231));
90 p3->add_attribute(
"theta", std::make_shared<DoubleAttribute>(std::rand()/
double(RAND_MAX)*
M_PI));
91 p3->add_attribute(
"phi", std::make_shared<DoubleAttribute>(std::rand()/
double(RAND_MAX)*
M_PI*2));
92 v1->add_particle_out( p3 );
93 GenParticlePtr p4=std::make_shared<GenParticle>(
FourVector(-3.047,-19.,-54.629,57.920),-2, 3 );
94 evt.add_particle( p4 );
95 p4->add_attribute(
"flow1", std::make_shared<IntAttribute>(243));
96 p4->add_attribute(
"theta", std::make_shared<DoubleAttribute>(std::rand()/
double(RAND_MAX)*
M_PI));
97 p4->add_attribute(
"phi", std::make_shared<DoubleAttribute>(std::rand()/
double(RAND_MAX)*
M_PI*2));
98 v2->add_particle_out( p4 );
101 GenVertexPtr v3=std::make_shared<GenVertex>();
102 evt.add_vertex( v3 );
103 v3->add_particle_in( p3 );
104 v3->add_particle_in( p4 );
105 GenParticlePtr p6=std::make_shared<GenParticle>(
FourVector(-3.813,0.113,-1.833,4.233 ),22, 1 );
106 evt.add_particle( p6 );
107 p6->add_attribute(
"flow1", std::make_shared<IntAttribute>(231));
108 p6->add_attribute(
"theta", std::make_shared<DoubleAttribute>(std::rand()/
double(RAND_MAX)*
M_PI));
109 p6->add_attribute(
"phi", std::make_shared<DoubleAttribute>(std::rand()/
double(RAND_MAX)*
M_PI*2));
110 v3->add_particle_out( p6 );
111 GenParticlePtr p5=std::make_shared<GenParticle>(
FourVector(1.517,-20.68,-20.605,85.925),-24, 3 );
112 evt.add_particle( p5 );
113 p5->add_attribute(
"flow1", std::make_shared<IntAttribute>(243));
114 p5->add_attribute(
"theta", std::make_shared<DoubleAttribute>(std::rand()/
double(RAND_MAX)*
M_PI));
115 p5->add_attribute(
"phi", std::make_shared<DoubleAttribute>(std::rand()/
double(RAND_MAX)*
M_PI*2));
116 v3->add_particle_out( p5 );
119 GenVertexPtr v4=std::make_shared<GenVertex>(
FourVector(0.12,-0.3,0.05,0.004));
120 evt.add_vertex( v4 );
121 v4->add_particle_in( p5 );
123 evt.add_particle( p7 );
124 v4->add_particle_out( p7 );
126 evt.add_particle( p8 );
127 v4->add_particle_out( p8 );
131 evt.add_attribute(
"signal_process_vertex", std::make_shared<IntAttribute>(v3->id()));
135 Print::listing(evt,8);
137 for ( GenParticlePtr ip: evt.particles()) {
138 Print::line(ip,
true);
142 xout1.write_event(evt);
144 xout4.write_event(evt);
149 p2->add_attribute(
"theta", std::make_shared<DoubleAttribute>(std::rand()/
double(RAND_MAX)*
M_PI));
150 p2->add_attribute(
"phi", std::make_shared<DoubleAttribute>(std::rand()/
double(RAND_MAX)*
M_PI));
151 xout2.write_event(evt);
164 bool passed=((COMPARE_ASCII_FILES(
"testPolarization1.dat",
"testPolarization5.out")==0)&&(COMPARE_ASCII_FILES(
"testPolarization1.dat",
"testPolarization2.dat")!=0));
165 if (!passed)
return 1;
Definition of class Attribute, class IntAttribute and class StringAttribute.
#define M_PI
Definition of PI. Needed on some platforms.
Definition of class GenEvent.
Definition of class GenParticle.
Definition of class GenVertex.
Definition of static class Print.
Definition of class WriterAsciiHepMC2.
Definition of class WriterAscii.
Stores event-related information.
Stores particle-related information.
GenEvent I/O serialization for structured text files.
GenEvent I/O serialization for structured text files.
int main(int argc, char **argv)