diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 01ee584aa9bb534fcdda0bbd53c68f620838bcc8..32f5564b5637798468d993b5c56d359cde6392eb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -97,7 +97,7 @@ roman_pot_simu: - bash trackers/roman_pot_simu.sh allow_failure: true -roman_pot_benchmark: +roman_pot_nhits: stage: benchmarks tags: - sodium @@ -107,6 +107,15 @@ roman_pot_benchmark: - root -b -q trackers/simple_tracking.cxx+ allow_failure: true +roman_pot_eta: + stage: benchmarks + tags: + - sodium + script: + - cp NPDet/src/GenericDetectors/trackers/compact/elements.xml trackers/. + - cp NPDet/src/GenericDetectors/trackers/compact/materials.xml trackers/. + - root -b -q trackers/roman_pot_eta.cxx+ + allow_failure: true deploy_results: stage: deploy diff --git a/trackers/roman_pot_hit_eta.cxx b/trackers/roman_pot_hit_eta.cxx new file mode 100644 index 0000000000000000000000000000000000000000..68ce5151d076138f62d5c21da18296d3eb845822 --- /dev/null +++ b/trackers/roman_pot_hit_eta.cxx @@ -0,0 +1,62 @@ +//R__LOAD_LIBRARY(libfmt.so) +//#include "fmt/core.h" +R__LOAD_LIBRARY(libDDG4IO.so) +// +//#include "DD4hep/Detector.h" +#include "DDG4/Geant4Data.h" +//#include "DDRec/CellIDPositionConverter.h" +//#include "DDRec/SurfaceManager.h" +//#include "DDRec/Surface.h" +#include "ROOT/RDataFrame.hxx" +// +//#include "lcio2/MCParticleData.h" +//#include "lcio2/ReconstructedParticleData.h" + +//#include "Math/Vector3D.h" +//#include "Math/Vector4D.h" +//#include "Math/VectorUtil.h" +#include "TCanvas.h" +//#include "TLegend.h" +//#include "TMath.h" +//#include "TRandom3.h" +//#include "TFile.h" +//#include "TH1F.h" +//#include "TH1D.h" +//#include "TTree.h" +#include "TChain.h" +//#include "TF1.h" +#include <random> +//#include "lcio2/TrackerRawDataData.h" +//#include "lcio2/TrackerRawData.h" + +void simple_tracking2(const char* fname = "../sim_output/roman_pot_out.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); + auto hits_eta = [&](const std::vector<dd4hep::sim::Geant4Tracker::Hit*>& hits){ + std::vector<double> result; + for (const auto& h: hits){ + result.push_back(h->momentum.eta()); + } + return result; + }; + + auto d1 = d0.Define("hits_eta", hits_eta, {"ForwardRomanPotHits"}); + + auto h1 = d1.Histo1D(TH1D("h1", "hits_eta", 300, 0,20), "hits_eta"); + auto n1 = h1->GetMean(); + std::cout << "Pseudorapidity of hits: " << n1 << std::endl; + TCanvas* c = new TCanvas(); + h1->DrawClone(); + + if (n1 < 5) { + std::quick_exit(1); + } + +} +