Skip to content
Snippets Groups Projects

fix: support both podio v0.16 and v0.17 relations and vector members

Merged Wouter Deconinck requested to merge podio-v0.16-v0.17 into master
1 file
+ 15
2
Compare changes
  • Side-by-side
  • Inline
@@ -6,6 +6,7 @@
#include "TProfile.h"
#include "Math/Vector4D.h"
#include <fmt/format.h>
#include <iostream>
R__LOAD_LIBRARY(libedm4eic.so)
@@ -91,8 +92,14 @@ auto delta_p_over_p = [](const std::vector<double>& tracks, const std::vector<do
int rec_multiple_tracks(const char* fname = "topside/rec_multiple_tracks.root")
{
ROOT::EnableImplicitMT();
ROOT::RDataFrame podio_metadata_df("podio_metadata", fname);
auto podioBuildVersion_major = podio_metadata_df.Take<unsigned short>("PodioBuildVersion.major");
auto podioBuildVersion_minor = podio_metadata_df.Take<unsigned short>("PodioBuildVersion.minor");
auto podioBuildVersion = fmt::format("{:d}.{:d}", podioBuildVersion_major->front(), podioBuildVersion_minor->front());
std::cout << "podioBuildVersion: " << podioBuildVersion << std::endl;
ROOT::RDataFrame df("events", fname);
auto df0 = df.Define("isThrown", "MCParticles.generatorStatus == 1")
@@ -108,9 +115,15 @@ int rec_multiple_tracks(const char* fname = "topside/rec_multiple_tracks.root")
.Define("N_Hits", [](std::vector<edm4eic::TrackerHitData> hits) { return hits.size();}, {"trackingHits"})
.Define("N_BarrelHits", [](std::vector<edm4eic::TrackerHitData> hits) { return hits.size();}, {"TrackerBarrelRecHits"})
.Define("N_EndcapHits", [](std::vector<edm4eic::TrackerHitData> hits) { return hits.size();}, {"TrackerEndcapRecHits"})
.Define("zTrackSegments", z_segments, {"HcalEndcapNTrackSegments", "HcalEndcapNTrackSegments_0"})
;
if (podioBuildVersion == "0.16") {
df0 = df0.Define("zTrackSegments", z_segments, {"HcalEndcapNTrackSegments", "HcalEndcapNTrackSegments_0"});
}
if (podioBuildVersion == "0.17") {
df0 = df0.Define("zTrackSegments", z_segments, {"HcalEndcapNTrackSegments", "_HcalEndcapNTrackSegments_points"});
}
auto h_zTrackSegment = df0.Histo1D({"h_zTrackSegment", "z ; #z", 400, -400, 400}, "zTrackSegments");
auto h_nTracks_vs_theta = df0.Histo2D({"h_nTracks_vs_theta", "; #theta; N tracks ", 40,0,180,10, 0, 10}, "theta0","nTracks");
Loading