LDMX Software
SiElectrodeData.h
1#pragma once
2
3//---< SimCore >---//
4#include <set>
5
7
8namespace tracking {
9namespace digitization {
10
12 public:
14
15 SiElectrodeData(int charge) { charge_ = charge; }
16
17 ~SiElectrodeData() { sim_hits_.clear(); }
18
19 SiElectrodeData(int charge, const ldmx::SimTrackerHit& sim_hit) {
20 charge_ = charge;
21 sim_hits_.insert(sim_hit);
22 }
23
24 // TODO:: Maybe use the vector directly?
25 SiElectrodeData(int charge,
26 const std::vector<ldmx::SimTrackerHit>& sim_hits) {
27 charge_ = charge;
28
29 for (auto& sim_hit : sim_hits) {
30 sim_hits_.insert(sim_hit);
31 }
32 }
33
34 bool isValid() const { return (getCharge() != 0); }
35
36 int getCharge() const { return charge_; }
37
38 std::set<ldmx::SimTrackerHit> getSimulatedHits() const { return sim_hits_; }
39
40 // TODO Change to operator overloading for cleaner code
41 SiElectrodeData add(const SiElectrodeData& electrode_data);
42
43 SiElectrodeData add(int charge, std::set<ldmx::SimTrackerHit> simulated_hits);
44
45 SiElectrodeData addCharge(int charge);
46
47 SiElectrodeData addSimulatedHit(const ldmx::SimTrackerHit hit);
48
49 private:
50 int charge_{};
51 std::set<ldmx::SimTrackerHit> sim_hits_;
52};
53
54} // namespace digitization
55} // namespace tracking
Class which encapsulates information from a hit in a simulated tracking detector.
Represents a simulated tracker hit in the simulation.
The measurement calibrator can be a function or a class/struct able to retrieve the sim hits containe...