HepMC3 event record library
testSkip1.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"
11#include "HepMC3TestUtils.h"
12using namespace HepMC3;
13int main()
14{
15 auto tA = chrono::steady_clock::now();
16 ReaderAsciiHepMC2 inputA("inputSkip1.hepmc");
17 if(inputA.failed()) return 1;
18 WriterAscii outputA("frominputSkip1A.hepmc");
19 if(outputA.failed()) return 2;
20
21 int i=0;
22 while( !inputA.failed() )
23 {
24 GenEvent evt(Units::GEV,Units::MM);
25 inputA.read_event(evt);
26 if( inputA.failed() ) {
27 printf("End of file reached. Exit.\n");
28 break;
29 }
30 if (i%10==0) outputA.write_event(evt);
31 i++;
32 evt.clear();
33 }
34 inputA.close();
35 outputA.close();
36 printf("Time taken A: %.2fms\n", chrono::duration <double, milli> (chrono::steady_clock::now()-tA).count());
37 auto tB = chrono::steady_clock::now();
38
39 ReaderAsciiHepMC2 inputB("inputSkip1.hepmc");
40 if(inputB.failed()) return 1;
41
42 WriterAscii outputB("frominputSkip1B.hepmc");
43 if(outputB.failed()) return 2;
44
45 while( !inputB.failed() )
46 {
47 GenEvent evt(Units::GEV,Units::MM);
48 inputB.read_event(evt);
49 if( inputB.failed() ) {
50 printf("End of file reached. Exit.\n");
51 break;
52 }
53 outputB.write_event(evt);
54 evt.clear();
55 inputB.skip(9);
56 }
57 inputB.close();
58 outputB.close();
59 printf("Time taken B: %.2fms\n", chrono::duration <double, milli> (chrono::steady_clock::now()-tB).count());
60
61 return COMPARE_ASCII_FILES("frominputSkip1A.hepmc","frominputSkip1B.hepmc");
62}
Definition of class GenEvent.
Definition of class ReaderAsciiHepMC2.
Definition of class ReaderAscii.
Definition of class WriterAsciiHepMC2.
Definition of class WriterAscii.
Stores event-related information.
Definition: GenEvent.h:41
Parser for HepMC2 I/O files.
GenEvent I/O serialization for structured text files.
Definition: WriterAscii.h:25
HepMC3 main namespace.