18 #include "HepMC3TestUtils.h"
19 using namespace HepMC3;
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;
const std::vector< ConstGenVertexPtr > & vertices() const
Get list of vertices (const)
Definition of class GenParticle.
Definition of class WriterAscii.
int event_number() const
Get event number.
Parser for HepMC2 I/O files.
Definition of class ReaderAsciiHepMC2.
Stores event-related information.
Definition of class ReaderAscii.
Definition of static class Print.
int main(int argc, char **argv)
Definition of class GenEvent.
Definition of attribute class GenCrossSection.
void clear()
Remove contents of this event.
const std::vector< ConstGenParticlePtr > & particles() const
Get list of particles (const)
GenEvent I/O serialization for structured text files.