diff --git a/forward_ions_reader.cxx b/forward_ions_reader.cxx new file mode 100644 index 0000000000000000000000000000000000000000..a2886fdebdcced229bbfd74d9aed02da9e8d3eca --- /dev/null +++ b/forward_ions_reader.cxx @@ -0,0 +1,44 @@ +#include "HepMC3/GenEvent.h" +#include "HepMC3/ReaderAscii.h" +#include "HepMC3/WriterAscii.h" +#include "HepMC3/Print.h" + +#include "TH1F.h" +#include <iostream> +using namespace HepMC3; + +void forward_ions_reader(){ + + //------------------------------------- + ReaderAscii hepmc_input("data/forward_ions.hepmc"); + int events_parsed = 0; + GenEvent evt(Units::GEV, Units::MM); + + TH1F* h_neutron_energy = new TH1F("eta","; eta",100,0,10); + + 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() ) { + if(p->pid() == 2212) { + h_neutron_energy->Fill(p->momentum().eta()); + } + } + } + evt.clear(); + events_parsed++; + } + std::cout << "Events parsed and written: " << events_parsed << std::endl; + + TCanvas* c = new TCanvas(); + h_neutron_energy->Draw(); + c->SaveAs("results/forward_ions_reader.png"); + c->SaveAs("results/forward_ions_reader.pdf"); +} + + diff --git a/results/forward_ions_reader.pdf b/results/forward_ions_reader.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6a7612828b868aa753d40760f7aa3a5a3e4f455e Binary files /dev/null and b/results/forward_ions_reader.pdf differ diff --git a/results/forward_ions_reader.png b/results/forward_ions_reader.png new file mode 100644 index 0000000000000000000000000000000000000000..415d7548df1a2bc463f6f4a7b6fa1848ec907979 Binary files /dev/null and b/results/forward_ions_reader.png differ