diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 255be922a7a4c79777a83744f5a9e263197659a0..87394b0f7756ae5cfc0fdcb479fe29f77c0da317 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 0000000000000000000000000000000000000000..d6e8c5ee33ce55a8a9b7c5aa9d906c13a7de987b --- /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"); +} + +