ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
ForwardDetectors
AFP
AFP_G4_SD
src
AFP_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 AFP_G4_SD_AFP_HITCOLLECTIONBUILDERS_H
6
#define AFP_G4_SD_AFP_HITCOLLECTIONBUILDERS_H
7
8
#include "
AFP_SimEv/AFP_SIDSimHitCollection.h
"
9
#include "
AFP_SimEv/AFP_TDSimHitCollection.h
"
10
11
#include <array>
12
13
class
AFP_TDSimHitCollectionBuilder
:
public
AFP_TDSimHitCollection
14
{
15
public
:
16
static
constexpr
int
TDMaxCnt
= 4000;
17
18
using
AFP_TDSimHitCollection::AFP_TDSimHitCollection;
19
20
bool
HasReachedLimit
(
const
int
stationID,
const
int
quarticID,
const
int
detectorID)
const
21
{
22
const
int
index
=
CounterIndex
(stationID, quarticID);
23
return
index
>= 0 && detectorID >= 0 && detectorID < static_cast<int>(
m_hitsPerBar
[
index
].
size
()) &&
24
m_hitsPerBar
[
index
][detectorID] >=
TDMaxCnt
;
25
}
26
27
void
CountHit
(
const
int
stationID,
const
int
quarticID,
const
int
detectorID)
28
{
29
++
m_numberOfHits
;
30
const
int
index
=
CounterIndex
(stationID, quarticID);
31
if
(
index
>= 0 && detectorID >= 0 && detectorID <
static_cast<
int
>
(
m_hitsPerBar
[
index
].
size
())) {
32
++
m_hitsPerBar
[
index
][detectorID];
33
}
34
}
35
36
void
CountHit
() { ++
m_numberOfHits
; }
37
38
int
NumberOfHits
()
const
{
return
m_numberOfHits
; }
39
40
private
:
41
static
int
CounterIndex
(
const
int
stationID,
const
int
quarticID)
42
{
43
if
(stationID == 0 && quarticID == 0)
return
0;
44
if
(stationID == 0 && quarticID == 1)
return
1;
45
if
(stationID == 3 && quarticID == 0)
return
2;
46
if
(stationID == 3 && quarticID == 1)
return
3;
47
return
-1;
48
}
49
50
int
m_numberOfHits
{};
51
std::array<std::array<int, 32>, 4>
m_hitsPerBar
{};
52
};
53
54
class
AFP_SIDSimHitCollectionBuilder
:
public
AFP_SIDSimHitCollection
55
{
56
public
:
57
static
constexpr
int
SiDMaxCnt
= 1000;
58
59
using
AFP_SIDSimHitCollection::AFP_SIDSimHitCollection;
60
61
bool
HasReachedLimit
(
const
int
stationID)
const
62
{
63
return
stationID >= 0 && stationID < static_cast<int>(
m_hitsPerStation
.size()) &&
64
m_hitsPerStation
[stationID] >=
SiDMaxCnt
;
65
}
66
67
void
CountHit
(
const
int
stationID)
68
{
69
++
m_numberOfHits
;
70
if
(stationID >= 0 && stationID <
static_cast<
int
>
(
m_hitsPerStation
.size())) {
71
++
m_hitsPerStation
[stationID];
72
}
73
}
74
75
int
NumberOfHits
()
const
{
return
m_numberOfHits
; }
76
77
private
:
78
int
m_numberOfHits
{};
79
std::array<int, 4>
m_hitsPerStation
{};
80
};
81
82
#endif
AFP_SIDSimHitCollection.h
AFP_SIDSimHitCollection
AtlasHitsVector< AFP_SIDSimHit > AFP_SIDSimHitCollection
Definition
AFP_SIDSimHitCollection.h:13
AFP_TDSimHitCollection.h
AFP_TDSimHitCollection
AtlasHitsVector< AFP_TDSimHit > AFP_TDSimHitCollection
Definition
AFP_TDSimHitCollection.h:14
AFP_SIDSimHitCollectionBuilder
Definition
AFP_HitCollectionBuilders.h:55
AFP_SIDSimHitCollectionBuilder::CountHit
void CountHit(const int stationID)
Definition
AFP_HitCollectionBuilders.h:67
AFP_SIDSimHitCollectionBuilder::HasReachedLimit
bool HasReachedLimit(const int stationID) const
Definition
AFP_HitCollectionBuilders.h:61
AFP_SIDSimHitCollectionBuilder::m_hitsPerStation
std::array< int, 4 > m_hitsPerStation
Definition
AFP_HitCollectionBuilders.h:79
AFP_SIDSimHitCollectionBuilder::m_numberOfHits
int m_numberOfHits
Definition
AFP_HitCollectionBuilders.h:78
AFP_SIDSimHitCollectionBuilder::SiDMaxCnt
static constexpr int SiDMaxCnt
Definition
AFP_HitCollectionBuilders.h:57
AFP_SIDSimHitCollectionBuilder::NumberOfHits
int NumberOfHits() const
Definition
AFP_HitCollectionBuilders.h:75
AFP_TDSimHitCollectionBuilder
Definition
AFP_HitCollectionBuilders.h:14
AFP_TDSimHitCollectionBuilder::m_hitsPerBar
std::array< std::array< int, 32 >, 4 > m_hitsPerBar
Definition
AFP_HitCollectionBuilders.h:51
AFP_TDSimHitCollectionBuilder::m_numberOfHits
int m_numberOfHits
Definition
AFP_HitCollectionBuilders.h:50
AFP_TDSimHitCollectionBuilder::TDMaxCnt
static constexpr int TDMaxCnt
Definition
AFP_HitCollectionBuilders.h:16
AFP_TDSimHitCollectionBuilder::NumberOfHits
int NumberOfHits() const
Definition
AFP_HitCollectionBuilders.h:38
AFP_TDSimHitCollectionBuilder::HasReachedLimit
bool HasReachedLimit(const int stationID, const int quarticID, const int detectorID) const
Definition
AFP_HitCollectionBuilders.h:20
AFP_TDSimHitCollectionBuilder::CountHit
void CountHit(const int stationID, const int quarticID, const int detectorID)
Definition
AFP_HitCollectionBuilders.h:27
AFP_TDSimHitCollectionBuilder::CounterIndex
static int CounterIndex(const int stationID, const int quarticID)
Definition
AFP_HitCollectionBuilders.h:41
AFP_TDSimHitCollectionBuilder::CountHit
void CountHit()
Definition
AFP_HitCollectionBuilders.h:36
AtlasHitsVector< AFP_TDSimHit >::size
size_type size() const
Definition
AtlasHitsVector.h:142
index
Definition
index.py:1
Generated on
for ATLAS Offline Software by
1.17.0