103 if (trueInfosData.empty()) {
104 trueInfosData.push_back(std::make_unique<GTrueInfoData>(*data));
108 for (
const auto& [varName, value] : data->getDoubleVariablesMap()) {
109 trueInfosData.front()->accumulateVariable(varName, value);
133 if (digitizedData.empty()) {
134 digitizedData.push_back(std::make_unique<GDigitizedData>(*data));
138 for (
const auto& [varName, value] : data->getIntObservablesMap(0)) {
139 digitizedData.front()->accumulateVariable(varName, value);
141 for (
const auto& [varName, value] : data->getDblObservablesMap(0)) {
142 digitizedData.front()->accumulateVariable(varName, value);
158 digitizedData.push_back(std::move(data));
172 trueInfosData.push_back(std::move(data));
186 return trueInfosData;
200 return digitizedData;
213 return digitizedData;
227 std::vector<std::unique_ptr<GTrueInfoData>> trueInfosData;
239 std::vector<std::unique_ptr<GDigitizedData>> digitizedData;
243 os <<
"GDataCollection{";
245 os <<
"trueInfosData=[";
246 for (
size_t i = 0; i < collection.trueInfosData.size(); ++i) {
250 if (collection.trueInfosData[i]) {
251 os << *collection.trueInfosData[i];
259 os <<
", digitizedData=[";
260 for (
size_t i = 0; i < collection.digitizedData.size(); ++i) {
264 if (collection.digitizedData[i]) {
265 os << *collection.digitizedData[i];
Per-sensitive-detector container that owns truth and digitized data objects.
void addTrueInfoData(std::unique_ptr< GTrueInfoData > data)
Appends one truth object in event mode.
auto getDigitizedData() const -> const std::vector< std::unique_ptr< GDigitizedData > > &
Returns read-only access to the stored digitized objects.
GDataCollection()=default
Constructs an empty detector-local data collection.
friend std::ostream & operator<<(std::ostream &os, const GDataCollection &collection)
auto getMutableDigitizedData() -> std::vector< std::unique_ptr< GDigitizedData > > &
Returns mutable access to the stored digitized objects.
~GDataCollection()=default
Destroys the collection and all owned hit objects.
void addDigitizedData(std::unique_ptr< GDigitizedData > data)
Appends one digitized object in event mode.
void collectTrueInfosData(const std::unique_ptr< GTrueInfoData > &data)
Integrates one truth object into the detector-level accumulator.
auto getTrueInfoData() const -> const std::vector< std::unique_ptr< GTrueInfoData > > &
Returns read-only access to the stored truth objects.
void collectDigitizedData(const std::unique_ptr< GDigitizedData > &data)
Integrates one digitized object into the detector-level accumulator.
Stores digitized, electronics-level observables for one hit.
Stores simulation-level observables for one hit.
Container for digitized observables associated with one simulated hit.
Container for simulation-level observables associated with a single hit.