ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
AtlasGeometryCommon
GeoModelEnvelopes
src
ForDetEnvelopeTool.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
ForDetEnvelopeTool.h
"
6
#include "
ForDetEnvelopeFactory.h
"
7
#include "
GeoModelEnvelopes/ForDetEnvelopeManager.h
"
8
#include "
GeoModelUtilities/GeoModelExperiment.h
"
9
10
#include "
StoreGate/StoreGateSvc.h
"
11
12
#include "
AthenaKernel/ClassID_traits.h
"
13
#include "
SGTools/DataProxy.h
"
14
15
ForDetEnvelopeTool::ForDetEnvelopeTool
(
const
std::string&
type
,
16
const
std::string& name,
17
const
IInterface* parent):
18
GeoModelTool
(
type
,name,parent),
19
m_manager
(nullptr)
20
{
21
}
22
23
StatusCode
ForDetEnvelopeTool::create
()
24
{
25
ATH_MSG_INFO
(
"Building Forward Detectors Envelope"
);
26
27
GeoModelExperiment
* theExpt;
28
if
(StatusCode::SUCCESS != detStore()->retrieve(theExpt,
"ATLAS"
)) {
29
ATH_MSG_ERROR
(
"Could not find GeoModelExperiment ATLAS"
);
30
return
StatusCode::FAILURE;
31
}
32
33
if
(
nullptr
==
m_manager
) {
34
GeoPhysVol *world=&*theExpt->
getPhysVol
();
35
36
ForDetEnvelopeFactory
theFactory(detStore().operator->());
37
theFactory.
create
(world);
38
39
m_manager
= theFactory.
getDetectorManager
();
40
theExpt->
addManager
(
m_manager
);
41
StatusCode
sc
= detStore()->record(
m_manager
,
42
m_manager
->getName());
43
44
if
(
sc
.isFailure()) {
45
ATH_MSG_ERROR
(
"Could not register ForDetEnvelope detector manager"
);
46
return
StatusCode::FAILURE;
47
}
48
return
StatusCode::SUCCESS;
49
}
50
return
StatusCode::FAILURE;
51
}
52
53
StatusCode
ForDetEnvelopeTool::clear
()
54
{
55
SG::DataProxy
* proxy = detStore()->proxy(
ClassID_traits<ForDetEnvelopeManager>::ID
(),
m_manager
->getName());
56
if
(proxy) {
57
proxy->reset();
58
m_manager
=
nullptr
;
59
}
60
return
StatusCode::SUCCESS;
61
}
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition
AthMsgStreamMacros.h:33
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition
AthMsgStreamMacros.h:31
ClassID_traits.h
a traits class that associates a CLID to a type T It also detects whether T inherits from Gaudi DataO...
DataProxy.h
ForDetEnvelopeFactory.h
ForDetEnvelopeManager.h
ForDetEnvelopeTool.h
GeoModelExperiment.h
sc
static Double_t sc
Definition
LArPhysWaveHECTool.cxx:37
StoreGateSvc.h
ForDetEnvelopeFactory
Definition
ForDetEnvelopeFactory.h:16
ForDetEnvelopeFactory::getDetectorManager
virtual const ForDetEnvelopeManager * getDetectorManager() const override
Definition
ForDetEnvelopeFactory.cxx:60
ForDetEnvelopeFactory::create
virtual void create(GeoPhysVol *world) override
Definition
ForDetEnvelopeFactory.cxx:30
ForDetEnvelopeTool::clear
virtual StatusCode clear() override final
Definition
ForDetEnvelopeTool.cxx:53
ForDetEnvelopeTool::m_manager
const ForDetEnvelopeManager * m_manager
Definition
ForDetEnvelopeTool.h:24
ForDetEnvelopeTool::ForDetEnvelopeTool
ForDetEnvelopeTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition
ForDetEnvelopeTool.cxx:15
ForDetEnvelopeTool::create
virtual StatusCode create() override final
Definition
ForDetEnvelopeTool.cxx:23
GeoModelExperiment
Definition
GeoModelExperiment.h:32
GeoModelExperiment::getPhysVol
GeoPhysVol * getPhysVol()
Destructor.
Definition
GeoModelExperiment.cxx:21
GeoModelExperiment::addManager
void addManager(const GeoVDetectorManager *)
Definition
GeoModelExperiment.cxx:40
GeoModelTool
Definition
GeoModelTool.h:15
SG::DataProxy
Definition
DataProxy.h:45
ClassID_traits::ID
static constexpr CLID ID()
Definition
Control/AthenaKernel/AthenaKernel/ClassID_traits.h:44
type
Generated on
for ATLAS Offline Software by
1.17.0