ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
ForwardDetectors
AFP
AFP_G4_SD
src
AFP_TDSensitiveDetector.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef AFP_G4_SD_AFP_TDSensitiveDetector_h
6
#define AFP_G4_SD_AFP_TDSensitiveDetector_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_TDSensitiveDetector
:
public
G4VSensitiveDetector
23
{
24
FRIEND_TEST
( AFP_TDSensitiveDetectortest,
ProcessHits
);
25
FRIEND_TEST
( AFP_TDSensitiveDetectortest,
AddHit
);
26
27
public
:
28
// Constructor
29
AFP_TDSensitiveDetector
(
const
std::string& name,
const
std::string& hitCollectionName);
30
31
// Destructor
32
~AFP_TDSensitiveDetector
() {
/* 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
static
constexpr
double
TDMaxQEff
= 0.15;
49
50
private
:
51
AFP_TDSimHitCollectionBuilder
*
getHitCollection
()
const
;
52
53
int
m_nHitID
;
54
// The hits collection
55
std::string
m_hitCollectionName
;
56
// Non-owning cache set by Initialize; HitCollectionMap owns the collection.
57
AFP_TDSimHitCollectionBuilder
*
m_HitColl
{};
58
};
59
60
#endif
//AFP_G4_SD_AFP_TDSensitiveDetector_h
AFP_HitCollectionBuilders.h
AFP_TDSensitiveDetector::m_HitColl
AFP_TDSimHitCollectionBuilder * m_HitColl
Definition
AFP_TDSensitiveDetector.h:57
AFP_TDSensitiveDetector::getHitCollection
AFP_TDSimHitCollectionBuilder * getHitCollection() const
Definition
AFP_TDSensitiveDetector.cxx:413
AFP_TDSensitiveDetector::m_hitCollectionName
std::string m_hitCollectionName
Definition
AFP_TDSensitiveDetector.h:55
AFP_TDSensitiveDetector::~AFP_TDSensitiveDetector
~AFP_TDSensitiveDetector()
Definition
AFP_TDSensitiveDetector.h:32
AFP_TDSensitiveDetector::FRIEND_TEST
FRIEND_TEST(AFP_TDSensitiveDetectortest, AddHit)
AFP_TDSensitiveDetector::ProcessHits
G4bool ProcessHits(G4Step *, G4TouchableHistory *) override final
Definition
AFP_TDSensitiveDetector.cxx:48
AFP_TDSensitiveDetector::TDMaxQEff
static constexpr double TDMaxQEff
Definition
AFP_TDSensitiveDetector.h:48
AFP_TDSensitiveDetector::AFP_TDSensitiveDetector
AFP_TDSensitiveDetector(const std::string &name, const std::string &hitCollectionName)
Definition
AFP_TDSensitiveDetector.cxx:32
AFP_TDSensitiveDetector::Initialize
void Initialize(G4HCofThisEvent *) override final
Definition
AFP_TDSensitiveDetector.cxx:41
AFP_TDSensitiveDetector::AddHit
void AddHit(Args &&... args)
Templated method to stuff a single hit into the sensitive detector class.
Definition
AFP_TDSensitiveDetector.h:41
AFP_TDSensitiveDetector::FRIEND_TEST
FRIEND_TEST(AFP_TDSensitiveDetectortest, ProcessHits)
AFP_TDSensitiveDetector::m_nHitID
int m_nHitID
Definition
AFP_TDSensitiveDetector.h:53
AFP_TDSimHitCollectionBuilder
Definition
AFP_HitCollectionBuilders.h:14
Args
Definition
test_lwtnn_fastgraph.cxx:12
Generated on
for ATLAS Offline Software by
1.17.0