From 04ef2518f1091f656c53f3f6721dc30204a36566 Mon Sep 17 00:00:00 2001 From: Whitney Armstrong <warmstrong@anl.gov> Date: Mon, 20 Jul 2020 21:05:30 -0500 Subject: [PATCH] modified: .gitlab-ci.yml new file: calorimeters/zdc_neutrons_reader.cxx --- .gitlab-ci.yml | 2 ++ calorimeters/zdc_neutrons_reader.cxx | 44 ++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 calorimeters/zdc_neutrons_reader.cxx diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 255be922..87394b0f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -11,6 +11,8 @@ get_data: - sodium script: - git clone https://eicweb.phy.anl.gov/EIC/datasets.git datasets + - ln -s datasets/data + - mkdir -p results # artifacts: # paths: # - datasets diff --git a/calorimeters/zdc_neutrons_reader.cxx b/calorimeters/zdc_neutrons_reader.cxx new file mode 100644 index 00000000..d6e8c5ee --- /dev/null +++ b/calorimeters/zdc_neutrons_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 zdc_neutrons_reader(){ + + //------------------------------------- + ReaderAscii hepmc_input("data/neutrons_zdc.hepmc"); + int events_parsed = 0; + GenEvent evt(Units::GEV, Units::MM); + + TH1F* h_neutron_energy = new TH1F("n energy","; E [GeV]",100,0,200); + + 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() == 2112) { + h_neutron_energy->Fill(p->momentum().e()); + } + } + } + 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/zdc_neutrons_reader.png"); + c->SaveAs("results/zdc_neutrons_reader.pdf"); +} + + -- GitLab