Skip to content
Snippets Groups Projects
Commit 2da03466 authored by Wouter Deconinck's avatar Wouter Deconinck
Browse files

feat: TrackProjector to negative HCal

parent 6bbcc86c
Branches
Tags
1 merge request!261feat: TrackProjector to negative HCal
......@@ -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 *",
......
......@@ -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");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment