ATLAS Offline Software
Loading...
Searching...
No Matches
ZDC_HitCollectionBuilders.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef ZDC_SD_ZDC_HITCOLLECTIONBUILDERS_H
6#define ZDC_SD_ZDC_HITCOLLECTIONBUILDERS_H
7
10
11#include <cstdint>
12#include <map>
13#include <memory>
14
16{
17public:
19
20 void AddHit(const Identifier& id, const float energy)
21 {
22 const uint32_t hash = id.get_identifier32().get_compact();
23 auto [it, inserted] = m_hitMap.try_emplace(hash, id, 1, energy);
24 if (!inserted) {
25 it->second.Add(1, energy);
26 }
27 }
28
29 void Finalize()
30 {
31 for (const auto& [hash, hit] : m_hitMap) {
32 (void)hash;
33 Emplace(hit);
34 }
35 m_hitMap.clear();
36 }
37
38private:
39 std::map<uint32_t, ZDC_SimFiberHit> m_hitMap;
40};
41
43{
44public:
46
47 void MergeHit(std::unique_ptr<CaloCalibrationHit> hit)
48 {
49 const uint32_t hash = hit->cellID().get_identifier32().get_compact();
50 auto it = m_hitMap.find(hash);
51 if (it == m_hitMap.end()) {
52 m_hitMap.emplace(hash, std::move(hit));
53 } else {
54 it->second->Add(hit.get());
55 }
56 }
57
58 void Finalize()
59 {
60 for (auto& [hash, hit] : m_hitMap) {
61 (void)hash;
62 push_back(hit.release());
63 }
64 m_hitMap.clear();
65 }
66
67private:
68 std::map<uint32_t, std::unique_ptr<CaloCalibrationHit>> m_hitMap;
69};
70
71#endif
void push_back(CaloCalibrationHit *t)
CaloCalibrationHitContainer(const std::string &collectionName="DefaultCollectionName")
Constructor of CaloCalibrationHitContainer.
void MergeHit(std::unique_ptr< CaloCalibrationHit > hit)
std::map< uint32_t, std::unique_ptr< CaloCalibrationHit > > m_hitMap
CaloCalibrationHitContainer(const std::string &collectionName="DefaultCollectionName")
Constructor of CaloCalibrationHitContainer.
ZDC_SimFiberHit_Collection(const std::string &name="ZDC_SimFiberHit_Collection")
void AddHit(const Identifier &id, const float energy)
std::map< uint32_t, ZDC_SimFiberHit > m_hitMap
ZDC_SimFiberHit_Collection(const std::string &name="ZDC_SimFiberHit_Collection")