ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
LArCalorimeter
LArG4
LArG4Code
LArG4Code
LArCalibrationHitContainerBuilder.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 LARG4CODE_LARCALIBRATIONHITCONTAINERBUILDER_H
6
#define LARG4CODE_LARCALIBRATIONHITCONTAINERBUILDER_H
7
8
#include "
CaloSimEvent/CaloCalibrationHit.h
"
9
#include "
CaloSimEvent/CaloCalibrationHitContainer.h
"
10
#include "
CaloSimEvent/SrCaloCalibrationHitContainer.h
"
11
12
#include <memory>
13
#include <set>
14
#include <string>
15
#include <vector>
16
28
template
<
class
HitContainerT>
29
class
LArCalibrationHitContainerBuilderBase
:
public
HitContainerT
30
{
31
public
:
32
using
HitContainerT::HitContainerT;
33
using
hit_ptr_t
= std::unique_ptr<CaloCalibrationHit>;
34
35
class
LessHit
{
36
public
:
37
bool
operator()
(
const
hit_ptr_t
& lhs,
const
hit_ptr_t
& rhs)
const
38
{
39
return
lhs->
Less
(rhs.get());
40
}
41
};
42
43
using
hits_t
= std::set<hit_ptr_t, LessHit>;
44
45
~LArCalibrationHitContainerBuilderBase
()
override
=
default
;
46
48
void
RegisterSource
(
const
std::string& sourceName);
50
void
AddHit
(
const
std::string& sourceName,
hit_ptr_t
hit
);
52
void
Finalize
();
53
54
private
:
55
struct
Partition
56
{
57
std::string
sourceName
;
58
hits_t
hits
;
59
};
60
61
static
void
AddHit
(
hits_t
& hits,
hit_ptr_t
hit
);
62
void
Finalize
(
hits_t
& hits);
63
Partition&
FindOrCreatePartition
(
const
std::string& sourceName);
64
65
std::vector<Partition>
m_partitions
;
66
hits_t
m_directHits
;
67
};
68
69
using
LArCalibrationHitContainerBuilder
=
70
LArCalibrationHitContainerBuilderBase<CaloCalibrationHitContainer>
;
71
using
LArSrCalibrationHitContainerBuilder
=
72
LArCalibrationHitContainerBuilderBase<SrCaloCalibrationHitContainer>
;
73
74
#endif
CaloCalibrationHitContainer.h
CaloCalibrationHit.h
hit
bool hit(const Container &ids, int pdgId)
Definition
JetIRCSafeLabelTool.cxx:64
LArCalibrationHitContainerBuilder
LArCalibrationHitContainerBuilderBase< CaloCalibrationHitContainer > LArCalibrationHitContainerBuilder
Definition
LArCalibrationHitContainerBuilder.h:69
LArSrCalibrationHitContainerBuilder
LArCalibrationHitContainerBuilderBase< SrCaloCalibrationHitContainer > LArSrCalibrationHitContainerBuilder
Definition
LArCalibrationHitContainerBuilder.h:71
SrCaloCalibrationHitContainer.h
CaloCalibrationHit::Less
bool Less(const CaloCalibrationHit *h) const
Calibration hits are ordered by values of their identifiers.
Definition
CaloCalibrationHit.h:183
LArCalibrationHitContainerBuilderBase::LessHit
Definition
LArCalibrationHitContainerBuilder.h:35
LArCalibrationHitContainerBuilderBase::LessHit::operator()
bool operator()(const hit_ptr_t &lhs, const hit_ptr_t &rhs) const
Definition
LArCalibrationHitContainerBuilder.h:37
LArCalibrationHitContainerBuilderBase
Event-owned builder for calibration-hit containers.
Definition
LArCalibrationHitContainerBuilder.h:30
LArCalibrationHitContainerBuilderBase< CaloCalibrationHitContainer >::m_directHits
hits_t m_directHits
Definition
LArCalibrationHitContainerBuilder.h:66
LArCalibrationHitContainerBuilderBase::hit_ptr_t
std::unique_ptr< CaloCalibrationHit > hit_ptr_t
Definition
LArCalibrationHitContainerBuilder.h:33
LArCalibrationHitContainerBuilderBase::Finalize
void Finalize()
Move merged hits into the persisted container in final output order.
LArCalibrationHitContainerBuilderBase< CaloCalibrationHitContainer >::m_partitions
std::vector< Partition > m_partitions
Definition
LArCalibrationHitContainerBuilder.h:65
LArCalibrationHitContainerBuilderBase::AddHit
void AddHit(const std::string &sourceName, hit_ptr_t hit)
Take ownership of a hit and add it to one regular-SD partition.
LArCalibrationHitContainerBuilderBase::AddHit
static void AddHit(hits_t &hits, hit_ptr_t hit)
LArCalibrationHitContainerBuilderBase::FindOrCreatePartition
Partition & FindOrCreatePartition(const std::string &sourceName)
LArCalibrationHitContainerBuilderBase::Finalize
void Finalize(hits_t &hits)
LArCalibrationHitContainerBuilderBase::RegisterSource
void RegisterSource(const std::string &sourceName)
Register a regular-SD partition in final output order.
LArCalibrationHitContainerBuilderBase::hits_t
std::set< hit_ptr_t, LessHit > hits_t
Definition
LArCalibrationHitContainerBuilder.h:43
LArCalibrationHitContainerBuilderBase::~LArCalibrationHitContainerBuilderBase
~LArCalibrationHitContainerBuilderBase() override=default
LArCalibrationHitContainerBuilderBase::Partition
Definition
LArCalibrationHitContainerBuilder.h:56
LArCalibrationHitContainerBuilderBase::Partition::hits
hits_t hits
Definition
LArCalibrationHitContainerBuilder.h:58
LArCalibrationHitContainerBuilderBase::Partition::sourceName
std::string sourceName
Definition
LArCalibrationHitContainerBuilder.h:57
Generated on
for ATLAS Offline Software by
1.17.0