LDMX Software
TruthMatchingTool.h
1#pragma once
2#include <memory>
3
4#include "SimCore/Event/SimParticle.h"
5#include "Tracking/Event/Measurement.h"
6#include "Tracking/Event/Track.h"
7#include "Tracking/Reco/TruthMatchingTool.h"
8
9namespace tracking {
10namespace sim {
11
13 public:
14 struct TruthInfo {
15 int track_id_;
16 double truth_prob_;
17 int pdg_id_;
18 };
19
20 TruthMatchingTool() = default;
21
29 TruthMatchingTool(const std::map<int, ldmx::SimParticle>& particleMap,
30 const std::vector<ldmx::Measurement>& measurements) {
31 setup(particleMap, measurements);
32 };
33
34 void setup(const std::map<int, ldmx::SimParticle>& particleMap,
35 const std::vector<ldmx::Measurement>& measurements) {
36 map_ = particleMap;
37 measurements_ = measurements;
38 configured_ = true;
39 }
40
44 virtual ~TruthMatchingTool() = default;
45
47 TruthInfo evaluate(
48 const std::unordered_map<unsigned int, unsigned int>& trk_trackIDs,
49 int n_meas);
50 TruthInfo truthMatch(const std::vector<ldmx::Measurement>& vmeas);
51
52 bool configured() { return configured_; }
53
54 private:
55 std::map<int, ldmx::SimParticle> map_;
56 std::vector<ldmx::Measurement> measurements_;
57 bool debug_{false};
58 std::shared_ptr<tracking::sim::TruthMatchingTool> truth_matching_tool_ =
59 nullptr;
60 bool configured_{false};
61};
62
63} // namespace sim
64} // namespace tracking
Implementation of a track object.
Definition Track.h:54
virtual ~TruthMatchingTool()=default
Destructor.
TruthInfo truthMatch(const ldmx::Track &trk)
Performs the truth matching by checking all the trackIDs associated to the measurements on track.
TruthMatchingTool(const std::map< int, ldmx::SimParticle > &particleMap, const std::vector< ldmx::Measurement > &measurements)
Constructor.
The measurement calibrator can be a function or a class/struct able to retrieve the sim hits containe...