ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
LArCalorimeter
LArG4
LArG4Code
LArG4Code
LArHitContainerBuilder.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_LARHITCONTAINERBUILDER_H
6
#define LARG4CODE_LARHITCONTAINERBUILDER_H
7
8
#include "
LArSimEvent/LArHit.h
"
9
#include "
LArSimEvent/LArHitContainer.h
"
10
11
#include "G4Types.hh"
12
13
#include <map>
14
#include <memory>
15
#include <set>
16
#include <string>
17
#include <vector>
18
34
class
LArHitContainerBuilder
:
public
LArHitContainer
35
{
36
public
:
37
using
LArHitContainer::LArHitContainer
;
38
using
hit_ptr_t
= std::unique_ptr<LArHit>;
39
40
class
LessHit
{
41
public
:
42
bool
operator()
(
const
hit_ptr_t
& lhs,
const
hit_ptr_t
& rhs)
const
43
{
44
return
lhs->
Less
(rhs.get());
45
}
46
};
47
48
using
hits_t
= std::set<hit_ptr_t, LessHit>;
49
using
timeBins_t
= std::map<G4int, hits_t>;
50
51
~LArHitContainerBuilder
()
override
=
default
;
52
54
void
RegisterSource
(
const
std::string& sourceName);
56
void
AddHit
(
const
std::string& sourceName,
hit_ptr_t
hit
, G4int timeBin);
58
void
Finalize
();
59
60
private
:
61
struct
Partition
62
{
63
std::string
sourceName
;
64
timeBins_t
timeBins
;
65
};
66
67
static
void
AddHit
(
timeBins_t
& timeBins,
hit_ptr_t
hit
, G4int timeBin);
68
void
Finalize
(
timeBins_t
& timeBins);
69
Partition
&
FindOrCreatePartition
(
const
std::string& sourceName);
70
71
std::vector<Partition>
m_partitions
;
72
timeBins_t
m_directHits
;
73
};
74
75
#endif
hit
bool hit(const Container &ids, int pdgId)
Definition
JetIRCSafeLabelTool.cxx:64
LArHitContainer.h
LArHit.h
LArHitContainerBuilder::LessHit
Definition
LArHitContainerBuilder.h:40
LArHitContainerBuilder::LessHit::operator()
bool operator()(const hit_ptr_t &lhs, const hit_ptr_t &rhs) const
Definition
LArHitContainerBuilder.h:42
LArHitContainerBuilder
Event-owned builder for standard LAr hits.
Definition
LArHitContainerBuilder.h:35
LArHitContainerBuilder::RegisterSource
void RegisterSource(const std::string &sourceName)
Register a regular-SD partition in final output order.
LArHitContainerBuilder::AddHit
void AddHit(const std::string &sourceName, hit_ptr_t hit, G4int timeBin)
Take ownership of a hit and add it to one regular-SD partition.
LArHitContainerBuilder::hits_t
std::set< hit_ptr_t, LessHit > hits_t
Definition
LArHitContainerBuilder.h:48
LArHitContainerBuilder::Finalize
void Finalize()
Move merged hits into the persisted container in final output order.
LArHitContainerBuilder::timeBins_t
std::map< G4int, hits_t > timeBins_t
Definition
LArHitContainerBuilder.h:49
LArHitContainerBuilder::m_directHits
timeBins_t m_directHits
Definition
LArHitContainerBuilder.h:72
LArHitContainerBuilder::AddHit
static void AddHit(timeBins_t &timeBins, hit_ptr_t hit, G4int timeBin)
LArHitContainerBuilder::LArHitContainer
LArHitContainer(const std::string &collectionName="DefaultCollectionName")
Definition
LArHitContainer.cxx:11
LArHitContainerBuilder::~LArHitContainerBuilder
~LArHitContainerBuilder() override=default
LArHitContainerBuilder::Finalize
void Finalize(timeBins_t &timeBins)
LArHitContainerBuilder::FindOrCreatePartition
Partition & FindOrCreatePartition(const std::string &sourceName)
LArHitContainerBuilder::hit_ptr_t
std::unique_ptr< LArHit > hit_ptr_t
Definition
LArHitContainerBuilder.h:38
LArHitContainerBuilder::m_partitions
std::vector< Partition > m_partitions
Definition
LArHitContainerBuilder.h:71
LArHitContainer::LArHitContainer
LArHitContainer(const std::string &collectionName="DefaultCollectionName")
Definition
LArHitContainer.cxx:11
LArHit::Less
bool Less(LArHit *const &h) const
Operator Less than this for hit ordering.
Definition
LArHit.h:123
LArHitContainerBuilder::Partition
Definition
LArHitContainerBuilder.h:62
LArHitContainerBuilder::Partition::timeBins
timeBins_t timeBins
Definition
LArHitContainerBuilder.h:64
LArHitContainerBuilder::Partition::sourceName
std::string sourceName
Definition
LArHitContainerBuilder.h:63
Generated on
for ATLAS Offline Software by
1.17.0