ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
ForwardDetectors
ZDC
ZDC_SD
src
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
8
#include "
CaloSimEvent/CaloCalibrationHitContainer.h
"
9
#include "
ZDC_SimEvent/ZDC_SimFiberHit_Collection.h
"
10
11
#include <cstdint>
12
#include <map>
13
#include <memory>
14
15
class
ZDC_SimFiberHitCollectionBuilder
:
public
ZDC_SimFiberHit_Collection
16
{
17
public
:
18
using
ZDC_SimFiberHit_Collection::ZDC_SimFiberHit_Collection
;
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
38
private
:
39
std::map<uint32_t, ZDC_SimFiberHit>
m_hitMap
;
40
};
41
42
class
ZDC_CalibrationHitContainerBuilder
:
public
CaloCalibrationHitContainer
43
{
44
public
:
45
using
CaloCalibrationHitContainer::CaloCalibrationHitContainer
;
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
67
private
:
68
std::map<uint32_t, std::unique_ptr<CaloCalibrationHit>>
m_hitMap
;
69
};
70
71
#endif
CaloCalibrationHitContainer.h
hit
bool hit(const Container &ids, int pdgId)
Definition
JetIRCSafeLabelTool.cxx:64
ZDC_SimFiberHit_Collection.h
AthenaHitsVector< CaloCalibrationHit >::push_back
void push_back(CaloCalibrationHit *t)
Definition
AthenaHitsVector.h:201
AtlasHitsVector< ZDC_SimFiberHit >::Emplace
void Emplace(Args &&... args)
Definition
AtlasHitsVector.h:80
CaloCalibrationHitContainer::CaloCalibrationHitContainer
CaloCalibrationHitContainer(const std::string &collectionName="DefaultCollectionName")
Constructor of CaloCalibrationHitContainer.
Definition
CaloCalibrationHitContainer.cxx:18
ZDC_CalibrationHitContainerBuilder
Definition
ZDC_HitCollectionBuilders.h:43
ZDC_CalibrationHitContainerBuilder::MergeHit
void MergeHit(std::unique_ptr< CaloCalibrationHit > hit)
Definition
ZDC_HitCollectionBuilders.h:47
ZDC_CalibrationHitContainerBuilder::Finalize
void Finalize()
Definition
ZDC_HitCollectionBuilders.h:58
ZDC_CalibrationHitContainerBuilder::m_hitMap
std::map< uint32_t, std::unique_ptr< CaloCalibrationHit > > m_hitMap
Definition
ZDC_HitCollectionBuilders.h:68
ZDC_CalibrationHitContainerBuilder::CaloCalibrationHitContainer
CaloCalibrationHitContainer(const std::string &collectionName="DefaultCollectionName")
Constructor of CaloCalibrationHitContainer.
Definition
CaloCalibrationHitContainer.cxx:18
ZDC_SimFiberHitCollectionBuilder
Definition
ZDC_HitCollectionBuilders.h:16
ZDC_SimFiberHitCollectionBuilder::ZDC_SimFiberHit_Collection
ZDC_SimFiberHit_Collection(const std::string &name="ZDC_SimFiberHit_Collection")
Definition
ZDC_SimFiberHit_Collection.h:20
ZDC_SimFiberHitCollectionBuilder::AddHit
void AddHit(const Identifier &id, const float energy)
Definition
ZDC_HitCollectionBuilders.h:20
ZDC_SimFiberHitCollectionBuilder::m_hitMap
std::map< uint32_t, ZDC_SimFiberHit > m_hitMap
Definition
ZDC_HitCollectionBuilders.h:39
ZDC_SimFiberHitCollectionBuilder::Finalize
void Finalize()
Definition
ZDC_HitCollectionBuilders.h:29
ZDC_SimFiberHit_Collection::ZDC_SimFiberHit_Collection
ZDC_SimFiberHit_Collection(const std::string &name="ZDC_SimFiberHit_Collection")
Definition
ZDC_SimFiberHit_Collection.h:20
Identifier
Definition
IdentifierFieldParser.cxx:14
Generated on
for ATLAS Offline Software by
1.17.0