1#include "Tracking/Reco/TruthMatchingTool.h"
6TruthMatchingTool::TruthInfo TruthMatchingTool::evaluate(
7 const std::unordered_map<unsigned int, unsigned int>& trk_trackIDs,
14 for (std::unordered_map<unsigned int, unsigned int>::const_iterator it =
16 it != trk_trackIDs.end(); it++) {
17 double current_truth_prob = (double)it->second / (
double)n_meas;
18 if (current_truth_prob > ti.truth_prob_) {
19 ti.truth_prob_ = current_truth_prob;
20 ti.track_id_ = it->first;
24 if (ti.track_id_ > 0) ti.pdg_id_ = map_[ti.track_id_].getPdgID();
30 const std::vector<ldmx::Measurement>& vmeas) {
31 std::unordered_map<unsigned int, unsigned int> trk_track_i_ds;
33 for (
auto meas : vmeas) {
34 for (
auto trk_id : meas.getTrackIds()) {
35 if (trk_track_i_ds.find(trk_id) != trk_track_i_ds.end())
36 trk_track_i_ds[trk_id]++;
38 trk_track_i_ds[trk_id] = 1;
42 return evaluate(trk_track_i_ds, vmeas.size());
57 std::unordered_map<unsigned int, unsigned int> trk_track_i_ds;
59 for (
auto meas_id : trk.getMeasurementsIdxs()) {
60 auto meas = measurements_.at(meas_id);
62 std::cout <<
"Getting measurement at ID:" << meas_id << std::endl;
63 std::cout << meas << std::endl;
64 std::cout << meas.getTrackIds().size() << std::endl;
67 for (
auto trk_id : meas.getTrackIds()) {
68 if (trk_track_i_ds.find(trk_id) != trk_track_i_ds.end()) {
69 trk_track_i_ds[trk_id]++;
71 trk_track_i_ds[trk_id] = 1;
77 std::cout <<
"The trackIDs maps look like:" << std::endl;
78 for (std::unordered_map<unsigned int, unsigned int>::iterator it =
79 trk_track_i_ds.begin();
80 it != trk_track_i_ds.end(); it++) {
81 std::cout << it->first <<
" " << it->second << std::endl;
86 return evaluate(trk_track_i_ds, trk.getMeasurementsIdxs().size());
Implementation of a track object.
The measurement calibrator can be a function or a class/struct able to retrieve the sim hits containe...