18#include "HepMC3TestUtils.h"
23 std::ofstream os(
"testMultipleCopies.out" );
27 if (ascii_in.failed())
return 1;
30 if (ascii_in2.failed())
return 2;
31 std::ofstream os1(
"testMultipleOriginals.out" );
32 std::ofstream os2(
"testMultipleCopies1.out" ) ;
33 std::ofstream os3(
"testMultipleCopies2.out" ) ;
42 int num_good_events=0;
45 ascii_in.read_event(evt1);
46 if (ascii_in.failed())
return 3;
48 ascii_in2.read_event(evt2);
49 if (ascii_in2.failed())
return 4;
51 ascii_in.read_event(evt3);
52 if (ascii_in.failed())
return 5;
53 while ( !ascii_in.failed() && !ascii_in2.failed() )
57 os <<
"Processing Event Number " << icount
65 os <<
"good event in stream 1 # "
67 out1.write_event(evt1);
75 os <<
"particle " << icnt <<
" barcode " << std::endl;
78 out2.write_event(evt4);
85 ascii_in.read_event(evt1);
86 ascii_in2.read_event(evt2);
95 os << num_good_events <<
" out of " << icount
96 <<
" processed events passed the cuts." << std::endl;
98 os <<
" GenEvent copy constructor passes the test" << std::endl;
108 if (ascii_in.failed())
return 4;
111 ascii_in.read_event(evt5);
113 os <<
"event number for evt5: " << evt5.
event_number() << std::endl;
114 os <<
"event number for evt6: " << evt6.
event_number() << std::endl;
119 os <<
"event number for evt6 after copy: " << evt6.
event_number() << std::endl;
122 os <<
" GenEvent operator= passes the test" << std::endl;
125 ascii_in.read_event(evt5);
126 if (ascii_in.failed())
return 5;
127 ascii_in.read_event(evt6);
128 if (ascii_in.failed())
return 6;
131 os <<
"event number for evt5: " << evt5.
event_number() << std::endl;
132 os <<
"event number for evt6: " << evt6.
event_number() << std::endl;
133 os <<
"before swap, evt5 has: " << evt5.
vertices().size() <<
" vertices and "
134 << evt5.
particles().size() <<
" particles" << std::endl;
135 os <<
"before swap, evt6 has: " << evt6.
vertices().size() <<
" vertices and "
136 << evt6.
particles().size() <<
" particles" << std::endl;
137 os <<
"before swap, evt7 has: " << evt7.vertices().size() <<
" vertices and "
138 << evt7.particles().size() <<
" particles" << std::endl;
139 os <<
"before swap, evt8 has: " << evt8.vertices().size() <<
" vertices and "
140 << evt8.particles().size() <<
" particles" << std::endl;
141 std::swap(evt6,evt5);
142 os <<
"event number for evt5 after swap: " << evt5.
event_number() << std::endl;
143 os <<
"event number for evt6 after swap: " << evt6.
event_number() << std::endl;
145 os <<
"after swap, evt6 has: " << evt6.
vertices().size() <<
" vertices and "
146 << evt6.
particles().size() <<
" particles" << std::endl;
147 os <<
"after swap, evt7 has: " << evt7.vertices().size() <<
" vertices and "
148 << evt7.particles().size() <<
" particles" << std::endl;
151 os <<
"after swap, evt5 has: " << evt5.
vertices().size() <<
" vertices and "
152 << evt5.
particles().size() <<
" particles" << std::endl;
153 os <<
"after swap, evt8 has: " << evt8.vertices().size() <<
" vertices and "
154 << evt8.particles().size() <<
" particles" << std::endl;
157 os <<
" GenEvent swap passes the test" << std::endl;
165 (COMPARE_ASCII_FILES(
"testMultipleCopies1.out",
"testMultipleCopies2.out")==0)
167 (COMPARE_ASCII_FILES(
"testMultipleCopies1.out",
"testMultipleOriginals.out")==0)
169 if (!passed)
return 1;
Definition of attribute class GenCrossSection.
Definition of class GenEvent.
Definition of class GenParticle.
Definition of static class Print.
Definition of class ReaderAsciiHepMC2.
Definition of class ReaderAscii.
Definition of class WriterAscii.
Stores event-related information.
int event_number() const
Get event number.
const std::vector< ConstGenVertexPtr > & vertices() const
Get list of vertices (const)
void clear()
Remove contents of this event.
const std::vector< ConstGenParticlePtr > & particles() const
Get list of particles (const)
Parser for HepMC2 I/O files.
GenEvent I/O serialization for structured text files.