LDMX Software
SiElectrodeDataCollection.cxx
1#include "Tracking/Digitization/SiElectrodeDataCollection.h"
2
3namespace tracking {
4namespace digitization {
5
6SiElectrodeDataCollection::SiElectrodeDataCollection(
7 const SiElectrodeDataCollection& electrode_data) {
8 collection_ = electrode_data.getCollection();
9}
10
11SiElectrodeDataCollection::SiElectrodeDataCollection(
12 const std::map<int, int>& electrode_charge, ldmx::SimTrackerHit hit) {
13 for (auto pair : electrode_charge) {
14 collection_[pair.first] = SiElectrodeData(pair.second, hit);
15 }
16}
17
18std::map<int, int> SiElectrodeDataCollection::getChargeMap() const {
19 std::map<int, int> charge_map;
20
21 for (auto pair : collection_) {
22 charge_map[pair.first] = pair.second.getCharge();
23 }
24
25 return charge_map;
26}
27
28void SiElectrodeDataCollection::add(
29 const std::map<int, SiElectrodeData>& electrode_data_collection) {
30 for (auto pair : electrode_data_collection) {
31 // Check if the internal collection_ has a key
32 if (collection_.count(pair.first))
33 collection_[pair.first].add(pair.second);
34
35 else
36 collection_[pair.first] = pair.second;
37 }
38}
39
40void SiElectrodeDataCollection::add(int cellid,
41 SiElectrodeData electrode_data) {
42 if (electrode_data.isValid())
43 if (collection_.count(cellid))
44 collection_[cellid].add(electrode_data);
45 else
46 collection_[cellid] = electrode_data;
47}
48
49} // namespace digitization
50} // namespace tracking
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...