From 2da034666b06782756aed3035d7899ca7a101188 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck <wdconinc@gmail.com> Date: Tue, 9 Aug 2022 01:33:51 +0000 Subject: [PATCH] feat: TrackProjector to negative HCal --- .../tracking/options/track_reconstruction.py | 8 +++++--- .../tracking/scripts/rec_multiple_tracks.cxx | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/benchmarks/tracking/options/track_reconstruction.py b/benchmarks/tracking/options/track_reconstruction.py index dbd72179..5c106b50 100644 --- a/benchmarks/tracking/options/track_reconstruction.py +++ b/benchmarks/tracking/options/track_reconstruction.py @@ -232,10 +232,12 @@ parts_from_fit = ParticlesFromTrackFit("parts_from_fit", outputTrackParameters = "outputTrackParameters") algorithms.append( parts_from_fit ) -trk_proj = TrackProjector("trajs_from_fit", +trk_proj_hcal_endcap_n = TrackProjector("trk_proj_hcal_endcap_n", inputTrajectories = trk_find_alg.outputTrajectories, - outputTrackSegments = "outputTrackSegments") -algorithms.append( trk_proj ) + outputTrackSegments = "HcalEndcapNTrackSegments", + firstSmallerThanZ = -200*units.cm, +) +algorithms.append( trk_proj_hcal_endcap_n ) out = PodioOutput("out", filename=output_rec_file) out.outputCommands = ["keep *", diff --git a/benchmarks/tracking/scripts/rec_multiple_tracks.cxx b/benchmarks/tracking/scripts/rec_multiple_tracks.cxx index f4043eba..b5134cab 100644 --- a/benchmarks/tracking/scripts/rec_multiple_tracks.cxx +++ b/benchmarks/tracking/scripts/rec_multiple_tracks.cxx @@ -14,6 +14,7 @@ R__LOAD_LIBRARY(libeicd.so) #include "eicd/ClusterCollection.h" #include "eicd/ClusterData.h" #include "eicd/TrackerHitCollection.h" +#include "eicd/TrackSegmentCollection.h" using ROOT::RDataFrame; using namespace ROOT::VecOps; @@ -26,6 +27,15 @@ auto p_track = [](std::vector<eicd::TrackParametersData> const& in) { return result; }; +auto z_segments = [](const std::vector<eicd::TrackSegmentData>& segments, const std::vector<eicd::TrackPoint>& points) { + std::vector<double> result; + for (const auto& segment: segments) { + for (size_t i = segment.points_begin; i < segment.points_end; i++) { + result.push_back(points[i].position.z); + } + } + return result; +}; std::vector<float> pt (std::vector<edm4hep::MCParticleData> const& in){ std::vector<float> result; @@ -98,8 +108,11 @@ int rec_multiple_tracks(const char* fname = "topside/rec_multiple_tracks.root") .Define("N_Hits", [](std::vector<eicd::TrackerHitData> hits) { return hits.size();}, {"trackingHits"}) .Define("N_BarrelHits", [](std::vector<eicd::TrackerHitData> hits) { return hits.size();}, {"TrackerBarrelRecHits"}) .Define("N_EndcapHits", [](std::vector<eicd::TrackerHitData> hits) { return hits.size();}, {"TrackerEndcapRecHits"}) + .Define("zTrackSegments", z_segments, {"HcalEndcapNTrackSegments", "HcalEndcapNTrackSegments_0"}) ; + 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"); auto h_nTracks = df0.Histo1D({"h_nTracks", "; N tracks ", 10, 0, 10}, "nTracks"); @@ -124,6 +137,11 @@ int rec_multiple_tracks(const char* fname = "topside/rec_multiple_tracks.root") // ----------------------------------------------- auto c = new TCanvas(); + h_zTrackSegment->DrawCopy(); + c->SaveAs("results/tracking/rec_multiple_tracks_zTrackSegment.png"); + c->SaveAs("results/tracking/rec_multiple_tracks_zTrackSegment.pdf"); + + // ----------------------------------------------- h_nTracks->DrawCopy(); c->SaveAs("results/tracking/rec_multiple_tracks_nTracks.png"); c->SaveAs("results/tracking/rec_multiple_tracks_nTracks.pdf"); -- GitLab