LDMX Software
TruthMatchingTool.h
1#pragma once
2#include "Acts/EventData/VectorTrackContainer.hpp"
3#include "SimCore/Event/SimParticle.h"
4#include "Tracking/Event/Measurement.h"
5#include "Tracking/Event/Track.h"
6#include "Tracking/Reco/TruthMatchingTool.h"
7
8namespace tracking {
9namespace sim {
10
12 public:
13 struct TruthInfo {
14 int track_id_;
15 double truth_prob_;
16 int pdg_id_;
17 };
18
19 TruthMatchingTool() = default;
20
28 TruthMatchingTool(const std::map<int, ldmx::SimParticle>& particleMap,
29 const std::vector<ldmx::Measurement>& measurements) {
30 setup(particleMap, measurements);
31 };
32
33 void setup(const std::map<int, ldmx::SimParticle>& particleMap,
34 const std::vector<ldmx::Measurement>& measurements) {
35 map_ = particleMap;
36 measurements_ = measurements;
37 configured_ = true;
38 }
39
43 virtual ~TruthMatchingTool() = default;
44
46 TruthInfo evaluate(
47 const std::unordered_map<unsigned int, unsigned int>& trk_trackIDs,
48 int n_meas);
49 TruthInfo truthMatch(const std::vector<ldmx::Measurement>& vmeas);
50
51 bool configured() { return configured_; }
52
53 private:
54 std::map<int, ldmx::SimParticle> map_;
55 std::vector<ldmx::Measurement> measurements_;
56 bool debug_{false};
57 std::shared_ptr<tracking::sim::TruthMatchingTool> truth_matching_tool_ =
58 nullptr;
59 bool configured_{false};
60};
61
62} // namespace sim
63} // namespace tracking
Implementation of a track object.
Definition Track.h:53
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...