ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
ForwardDetectors
ZDC
ZDC_SD
src
ZDC_G4CalibSDTool.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3
*/
4
#include "
ZDC_G4CalibSDTool.h
"
5
#include "
ZDC_G4CalibSD.h
"
6
#include "
CaloG4Sim/EscapedEnergyRegistry.h
"
7
#include "
HitManagement/HitCollectionMap.h
"
8
#include "
ZDC_HitCollectionBuilders.h
"
9
10
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
11
12
ZDC_G4CalibSDTool::ZDC_G4CalibSDTool
(
const
std::string &
type
,
const
std::string &name,
const
IInterface *parent)
13
:
SensitiveDetectorBase
(
type
, name, parent)
14
{
15
declareProperty(
"deadSD"
,
m_deadSD
=
false
);
16
declareProperty(
"doPid"
,
m_doPid
=
false
);
17
}
18
19
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
20
21
StatusCode
ZDC_G4CalibSDTool::SetupEvent
(
HitCollectionMap
& hitCollections)
22
{
23
hitCollections.
Emplace
<
ZDC_CalibrationHitContainerBuilder
>(
m_outputCollectionNames
[0],
24
m_outputCollectionNames
[0]);
25
return
StatusCode::SUCCESS;
26
}
27
28
StatusCode
ZDC_G4CalibSDTool::Gather
(
HitCollectionMap
& hitCollections)
29
{
30
ATH_MSG_VERBOSE
(
"ZDC_G4CalibSDTool::Gather()"
);
31
auto
* hitCollection = hitCollections.
Find
<
ZDC_CalibrationHitContainerBuilder
>(
m_outputCollectionNames
[0]);
32
if
(!hitCollection) {
33
return
StatusCode::FAILURE;
34
}
35
hitCollection->
Finalize
();
36
CHECK
(hitCollections.
Record
<
CaloCalibrationHitContainer
>(
m_outputCollectionNames
[0]));
37
return
StatusCode::SUCCESS;
38
}
39
40
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
41
42
G4VSensitiveDetector*
ZDC_G4CalibSDTool::makeSD
()
const
43
{
44
ATH_MSG_DEBUG
(
"Initializing ZDC_G4CalibSD"
);
45
46
ZDC_G4CalibSD
*theCalibSD =
new
ZDC_G4CalibSD
(name(),
m_outputCollectionNames
[0],
m_doPid
);
47
48
//Create ZDC_EscapedEnergyProcessing if desired
49
if
(
m_deadSD
){
50
ATH_MSG_DEBUG
(
"Creating EscapedEnergyProcessing and adding to registry"
);
51
// Initialize the escaped energy processing for ZDC volumes.
52
std::unique_ptr<CaloG4::VEscapedEnergyProcessing> eep(
new
ZDC_EscapedEnergyProcessing
(theCalibSD));
53
54
CaloG4::EscapedEnergyRegistry
* registry =
CaloG4::EscapedEnergyRegistry::GetInstance
();
55
registry->AddAndAdoptProcessing(
"ZDC::"
, std::move(eep) );
56
}
57
58
return
theCalibSD;
59
}
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition
AthMsgStreamMacros.h:28
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition
AthMsgStreamMacros.h:29
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition
Control/AthenaKernel/AthenaKernel/errorcheck.h:422
EscapedEnergyRegistry.h
HitCollectionMap.h
ZDC_G4CalibSDTool.h
ZDC_G4CalibSD.h
ZDC_HitCollectionBuilders.h
CaloCalibrationHitContainer
Definition
CaloCalibrationHitContainer.h:25
CaloG4::EscapedEnergyRegistry
Keeps track of which types of volumes use which VEscapedEnergyProcessing objects.
Definition
EscapedEnergyRegistry.h:52
CaloG4::EscapedEnergyRegistry::GetInstance
static EscapedEnergyRegistry * GetInstance()
HitCollectionMap
Small wrapper around hit collection map to facilitate accessing the hit collection.
Definition
HitCollectionMap.h:23
HitCollectionMap::Record
StatusCode Record(std::string const &sgKey, std::string const &hitCollectionName, EventContext const &ctx)
Record the hit collection hitCollectionName to the StoreGate sgKey.
Definition
HitCollectionMap.h:83
HitCollectionMap::Find
T * Find(std::string const &hitCollectionName)
Get the hit collection for a given SDs.
Definition
HitCollectionMap.h:49
HitCollectionMap::Emplace
std::pair< StorageIterator, bool > Emplace(std::string const &hitCollectionName, CollectionArgs &&... args)
Insert a container in the map with in-place construction.
Definition
HitCollectionMap.h:40
SensitiveDetectorBase::m_outputCollectionNames
Gaudi::Property< std::vector< std::string > > m_outputCollectionNames
Names of all output collections written out by this SD.
Definition
SensitiveDetectorBase.h:80
SensitiveDetectorBase::SensitiveDetectorBase
SensitiveDetectorBase(const std::string &type, const std::string &name, const IInterface *parent)
Standard constructor.
Definition
SensitiveDetectorBase.cxx:17
ZDC_CalibrationHitContainerBuilder
Definition
ZDC_HitCollectionBuilders.h:43
ZDC_CalibrationHitContainerBuilder::Finalize
void Finalize()
Definition
ZDC_HitCollectionBuilders.h:58
ZDC_EscapedEnergyProcessing
Definition
ZDC_EscapedEnergyProcessing.h:33
ZDC_G4CalibSDTool::Gather
StatusCode Gather(HitCollectionMap &) override final
End of an athena event.
Definition
ZDC_G4CalibSDTool.cxx:28
ZDC_G4CalibSDTool::m_doPid
bool m_doPid
Definition
ZDC_G4CalibSDTool.h:35
ZDC_G4CalibSDTool::makeSD
G4VSensitiveDetector * makeSD() const override final
Definition
ZDC_G4CalibSDTool.cxx:42
ZDC_G4CalibSDTool::SetupEvent
StatusCode SetupEvent(HitCollectionMap &) override final
Beginning of an athena event.
Definition
ZDC_G4CalibSDTool.cxx:21
ZDC_G4CalibSDTool::ZDC_G4CalibSDTool
ZDC_G4CalibSDTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition
ZDC_G4CalibSDTool.cxx:12
ZDC_G4CalibSDTool::m_deadSD
bool m_deadSD
Definition
ZDC_G4CalibSDTool.h:34
ZDC_G4CalibSD
Definition
ZDC_G4CalibSD.h:24
type
Generated on
for ATLAS Offline Software by
1.17.0