HepMC3 event record library
testIO5.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 "HepMC3/GenEvent.h"
7 #include "HepMC3/ReaderAscii.h"
8 #include "HepMC3/WriterAscii.h"
11 #include "HepMC3TestUtils.h"
12 #include <fstream>
13 #include <iostream> // std::ios, std::istream, std::cout
14 #include <fstream> // std::filebuf
15 using namespace HepMC3;
16 int main()
17 {
18 
19  std::filebuf isrA;
20  isrA.open("inputI05.hepmc",std::ios::in );
21  std::istream SisrA(&isrA);
22  ReaderAsciiHepMC2 inputA(SisrA);
23  if(inputA.failed()) return 1;
24  std::filebuf osrA;
25  osrA.open("frominputI05.hepmc",std::ios::out);
26  std::ostream SosrA(&osrA);
27  WriterAscii outputA(SosrA);
28  if(outputA.failed()) return 2;
29  while( !inputA.failed() )
30  {
31  GenEvent evt(Units::GEV,Units::MM);
32  inputA.read_event(evt);
33  if( inputA.failed() ) {
34  printf("End of file reached. Exit.\n");
35  break;
36  }
37  outputA.write_event(evt);
38  evt.clear();
39  }
40  inputA.close();
41  outputA.close();
42 
43  std::filebuf isrB;
44  isrB.open("frominputI05.hepmc",ios_base::in );
45  std::istream SisrB(&isrB);
46  ReaderAscii inputB(SisrB);
47  if(inputB.failed()) return 3;
48  std::filebuf osrB;
49  osrB.open ("fromfrominputI05.hepmc",ios_base::out );
50  std::ostream SosrB(&osrB);
51  WriterAsciiHepMC2 outputB(SosrB);
52  if(outputB.failed()) return 4;
53  while( !inputB.failed() )
54  {
55  GenEvent evt(Units::GEV,Units::MM);
56  inputB.read_event(evt);
57  if( inputB.failed() ) {
58  printf("End of file reached. Exit.\n");
59  break;
60  }
61  outputB.write_event(evt);
62  evt.clear();
63  }
64  inputB.close();
65  outputB.close();
66  return COMPARE_ASCII_FILES("fromfrominputI05.hepmc","inputI05.hepmc");
67 }
GenEvent I/O serialization for structured text files.
GenEvent I/O parsing for structured text files.
Definition: ReaderAscii.h:29
Definition of class WriterAscii.
Parser for HepMC2 I/O files.
Definition of class ReaderAsciiHepMC2.
Stores event-related information.
Definition: GenEvent.h:41
Definition of class ReaderAscii.
Definition of class WriterAsciiHepMC2.
int main(int argc, char **argv)
Definition of class GenEvent.
GenEvent I/O serialization for structured text files.
Definition: WriterAscii.h:25