diff --git a/.gitignore b/.gitignore index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..aa8b5a9b9b9ee5e9b2b549a22ad448633a23efb3 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1,3 @@ +results/* +data/* +datasets/* diff --git a/calorimeters/zdc_neutrons_reader.cxx b/calorimeters/zdc_neutrons_reader.cxx index d6e8c5ee33ce55a8a9b7c5aa9d906c13a7de987b..fcd763e99364bbe758a2bfb93e9bd72191ad948c 100644 --- a/calorimeters/zdc_neutrons_reader.cxx +++ b/calorimeters/zdc_neutrons_reader.cxx @@ -5,23 +5,35 @@ #include "TH1F.h" #include <iostream> +#include <cstdlib> using namespace HepMC3; void zdc_neutrons_reader(){ //------------------------------------- ReaderAscii hepmc_input("data/neutrons_zdc.hepmc"); + if( hepmc_input.failed() ) { + std::cerr << " could not find data file\n"; + std::quick_exit(1); + } + + int events_parsed = 0; GenEvent evt(Units::GEV, Units::MM); TH1F* h_neutron_energy = new TH1F("n energy","; E [GeV]",100,0,200); + // Read event from input file + hepmc_input.read_event(evt); + // If reading failed before loop then fail hard + // because the data wasn't found. + if( hepmc_input.failed() ) { + std::cerr << " could not find first event\n"; + std::quick_exit(1); + } + while(!hepmc_input.failed()) { - // Read event from input file - hepmc_input.read_event(evt); - // If reading failed - exit loop - if( hepmc_input.failed() ) break; for(const auto& v : evt.vertices() ) { for(const auto& p : v->particles_out() ) { @@ -32,6 +44,7 @@ void zdc_neutrons_reader(){ } evt.clear(); events_parsed++; + hepmc_input.read_event(evt); } std::cout << "Events parsed and written: " << events_parsed << std::endl;