R__LOAD_LIBRARY(libDDG4IO.so)
#include "DDG4/Geant4Data.h"
#include "ROOT/RDataFrame.hxx"
#include "TCanvas.h"
#include "TChain.h"
#include <random>

void simple_checking_crystal(const char* fname = "sim_output/output_emcal_electrons.root"){
  ROOT::EnableImplicitMT(); // Tell ROOT you want to go parallel
  double degree = TMath::Pi()/180.0;

  TChain* t = new TChain("EVENT");
  t->Add(fname);

  ROOT::RDataFrame d0(*t);//, {"EcalHits","MCParticles"});
  
  auto nhits = [] (std::vector<dd4hep::sim::Geant4Calorimeter::Hit*>& hits){ return (int) hits.size(); };

  auto d1 = d0.Define("nhits", nhits, {"ZDCHits"});
  auto h0 = d1.Histo1D(TH1D("h0", "nhits; ", 20, 0,20), "nhits");

  auto n0 = d1.Filter([](int n){ return (n>0); },{"nhits"}).Count();

  TCanvas* c = new TCanvas();

  std::cout << *n0 << " events with nonzero hits\n";
  if(*n0<5) {
    std::quick_exit(1);
  }

}