ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
ForwardDetectors
AFP
AFP_G4_SD
src
AFP_SiDSensitiveDetector.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef AFP_G4_SD_AFP_SiDSensitiveDetector_h
6
#define AFP_G4_SD_AFP_SiDSensitiveDetector_h
7
8
// Base class
9
#include "G4VSensitiveDetector.hh"
10
11
// use of the hits
12
#include "
AFP_HitCollectionBuilders.h
"
13
#include <gtest/gtest_prod.h>
14
15
// STL header
16
#include <string>
17
#include <utility>
18
19
class
G4Step;
20
class
G4TouchableHistory;
21
22
class
AFP_SiDSensitiveDetector
:
public
G4VSensitiveDetector
23
{
24
FRIEND_TEST
( AFP_SiDSensitiveDetectortest,
ProcessHits
);
25
FRIEND_TEST
( AFP_SiDSensitiveDetectortest,
AddHit
);
26
27
public
:
28
// Constructor
29
AFP_SiDSensitiveDetector
(
const
std::string& name,
const
std::string& hitCollectionName);
30
31
// Destructor
32
~AFP_SiDSensitiveDetector
() {
/* I don't own myHitColl if all has gone well */
}
33
34
// Called from G4 at the start of each G4 event
35
void
Initialize
(G4HCofThisEvent *)
override
final
;
36
G4bool
ProcessHits
(G4Step*, G4TouchableHistory*)
override
final
;
37
41
template
<
class
...
Args
>
void
AddHit
(
Args
&&... args)
42
{
43
if
(
m_HitColl
) {
44
m_HitColl
->Emplace(std::forward<Args>(args)...);
45
}
46
}
47
48
private
:
49
AFP_SIDSimHitCollectionBuilder
*
getHitCollection
()
const
;
50
51
int
m_nHitID
;
52
53
float
m_delta_pixel_x
,
m_delta_pixel_y
;
54
float
m_death_edge
[4][10];
55
float
m_lower_edge
[4][10];
56
57
// The hits collections
58
std::string
m_hitCollectionName
;
59
// Non-owning cache set by Initialize; HitCollectionMap owns the collection.
60
AFP_SIDSimHitCollectionBuilder
*
m_HitColl
{};
61
62
};
63
64
#endif
//AFP_G4_SD_AFP_SiDSensitiveDetector_h
AFP_HitCollectionBuilders.h
AFP_SIDSimHitCollectionBuilder
Definition
AFP_HitCollectionBuilders.h:55
AFP_SiDSensitiveDetector::~AFP_SiDSensitiveDetector
~AFP_SiDSensitiveDetector()
Definition
AFP_SiDSensitiveDetector.h:32
AFP_SiDSensitiveDetector::getHitCollection
AFP_SIDSimHitCollectionBuilder * getHitCollection() const
Definition
AFP_SiDSensitiveDetector.cxx:518
AFP_SiDSensitiveDetector::m_lower_edge
float m_lower_edge[4][10]
Definition
AFP_SiDSensitiveDetector.h:55
AFP_SiDSensitiveDetector::AFP_SiDSensitiveDetector
AFP_SiDSensitiveDetector(const std::string &name, const std::string &hitCollectionName)
Definition
AFP_SiDSensitiveDetector.cxx:33
AFP_SiDSensitiveDetector::ProcessHits
G4bool ProcessHits(G4Step *, G4TouchableHistory *) override final
Definition
AFP_SiDSensitiveDetector.cxx:57
AFP_SiDSensitiveDetector::AddHit
void AddHit(Args &&... args)
Templated method to stuff a single hit into the sensitive detector class.
Definition
AFP_SiDSensitiveDetector.h:41
AFP_SiDSensitiveDetector::m_nHitID
int m_nHitID
Definition
AFP_SiDSensitiveDetector.h:51
AFP_SiDSensitiveDetector::FRIEND_TEST
FRIEND_TEST(AFP_SiDSensitiveDetectortest, ProcessHits)
AFP_SiDSensitiveDetector::FRIEND_TEST
FRIEND_TEST(AFP_SiDSensitiveDetectortest, AddHit)
AFP_SiDSensitiveDetector::m_HitColl
AFP_SIDSimHitCollectionBuilder * m_HitColl
Definition
AFP_SiDSensitiveDetector.h:60
AFP_SiDSensitiveDetector::m_hitCollectionName
std::string m_hitCollectionName
Definition
AFP_SiDSensitiveDetector.h:58
AFP_SiDSensitiveDetector::m_death_edge
float m_death_edge[4][10]
Definition
AFP_SiDSensitiveDetector.h:54
AFP_SiDSensitiveDetector::Initialize
void Initialize(G4HCofThisEvent *) override final
Definition
AFP_SiDSensitiveDetector.cxx:50
AFP_SiDSensitiveDetector::m_delta_pixel_y
float m_delta_pixel_y
Definition
AFP_SiDSensitiveDetector.h:53
AFP_SiDSensitiveDetector::m_delta_pixel_x
float m_delta_pixel_x
Definition
AFP_SiDSensitiveDetector.h:53
Args
Definition
test_lwtnn_fastgraph.cxx:12
Generated on
for ATLAS Offline Software by
1.17.0