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