ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Simulation
G4Utilities
TrackWriteFastSim
TrackWriteFastSim
TrackFastSimSD.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 TRACKWRITEFASTSIM_TRACKFASTSIMSD_H
6
#define TRACKWRITEFASTSIM_TRACKFASTSIMSD_H
7
8
// Base class header
9
#include "G4VSensitiveDetector.hh"
10
11
// Athena headers
12
#include "
TrackRecord/TrackRecordCollection.h
"
13
14
// STL headers
15
#include <string>
16
#include <utility>
17
18
// G4 needed classes
19
class
G4Step;
20
class
G4TouchableHistory;
21
class
G4Track;
22
23
class
TrackFastSimSD
:
public
G4VSensitiveDetector
24
{
25
public
:
26
TrackFastSimSD
(
const
std::string& name,
const
std::string& outputCollectionName,
const
int
SD_type=0);
27
~TrackFastSimSD
() {}
28
29
// Initialize from G4
30
void
Initialize
(G4HCofThisEvent *)
override
final
;
31
32
G4bool
ProcessHits
(G4Step*, G4TouchableHistory*)
override
final
;
33
void
WriteTrack
(
const
G4Track*,
const
bool
,
const
bool
);
34
38
template
<
class
...
Args
>
bool
AddHit
(
Args
&&... args)
39
{
40
if
(
m_trackRecordCollection
) {
41
m_trackRecordCollection
->Emplace(std::forward<Args>(args)...);
42
return
true
;
43
}
44
return
false
;
45
}
46
47
private
:
48
TrackRecordCollection
*
getTrackRecordCollection
()
const
;
49
50
std::string
m_outputCollectionName
;
51
// Non-owning cache set by Initialize; HitCollectionMap owns the collection.
52
TrackRecordCollection
*
m_trackRecordCollection
{};
53
int
m_SD_type
;
//TrackRecorderSD=1, CosmicTRSD=2
54
};
55
56
#endif
// TRACKWRITEFASTSIM_TRACKFASTSIMSD_H
TrackRecordCollection.h
TrackRecordCollection
AtlasHitsVector< TrackRecord > TrackRecordCollection
Definition
TrackRecordCollection.h:12
TrackFastSimSD::ProcessHits
G4bool ProcessHits(G4Step *, G4TouchableHistory *) override final
Definition
TrackFastSimSD.cxx:39
TrackFastSimSD::AddHit
bool AddHit(Args &&... args)
Templated method to stuff a single hit into the sensitive detector class.
Definition
TrackFastSimSD.h:38
TrackFastSimSD::m_trackRecordCollection
TrackRecordCollection * m_trackRecordCollection
Definition
TrackFastSimSD.h:52
TrackFastSimSD::m_SD_type
int m_SD_type
Definition
TrackFastSimSD.h:53
TrackFastSimSD::TrackFastSimSD
TrackFastSimSD(const std::string &name, const std::string &outputCollectionName, const int SD_type=0)
Definition
TrackFastSimSD.cxx:26
TrackFastSimSD::getTrackRecordCollection
TrackRecordCollection * getTrackRecordCollection() const
Definition
TrackFastSimSD.cxx:132
TrackFastSimSD::Initialize
void Initialize(G4HCofThisEvent *) override final
Definition
TrackFastSimSD.cxx:34
TrackFastSimSD::m_outputCollectionName
std::string m_outputCollectionName
Definition
TrackFastSimSD.h:50
TrackFastSimSD::WriteTrack
void WriteTrack(const G4Track *, const bool, const bool)
Definition
TrackFastSimSD.cxx:98
TrackFastSimSD::~TrackFastSimSD
~TrackFastSimSD()
Definition
TrackFastSimSD.h:27
Args
Definition
test_lwtnn_fastgraph.cxx:12
Generated on
for ATLAS Offline Software by
1.17.0