ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Simulation
Overlay
OverlayCopyAlgs
src
CopyTRT_DriftCircleContainer.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
CopyTRT_DriftCircleContainer.h
"
6
#include "
InDetPrepRawData/TRT_DriftCircleCollection.h
"
7
#include "
InDetPrepRawData/TRT_DriftCircle.h
"
8
#include "
InDetIdentifier/TRT_ID.h
"
9
10
CopyTRT_DriftCircleContainer::CopyTRT_DriftCircleContainer
(
const
std::string &name, ISvcLocator *pSvcLocator)
11
:
AthReentrantAlgorithm
(name, pSvcLocator) { }
12
13
StatusCode
CopyTRT_DriftCircleContainer::initialize
()
14
{
15
ATH_MSG_DEBUG
(
"Initializing..."
);
16
17
// Check and initialize keys
18
ATH_CHECK
(
m_inputKey
.initialize() );
19
ATH_MSG_VERBOSE
(
"Initialized ReadHandleKey: "
<<
m_inputKey
);
20
ATH_CHECK
(
m_outputKey
.initialize() );
21
ATH_MSG_VERBOSE
(
"Initialized WriteHandleKey: "
<<
m_outputKey
);
22
23
ATH_CHECK
(
detStore
()->retrieve(
m_idHelper
,
"TRT_ID"
));
24
25
return
StatusCode::SUCCESS;
26
}
27
28
StatusCode
CopyTRT_DriftCircleContainer::execute
(
const
EventContext& ctx)
const
29
{
30
ATH_MSG_DEBUG
(
"execute() begin"
);
31
// Reading the input container
32
ATH_MSG_VERBOSE
(
"Retrieving input container"
);
33
34
SG::ReadHandle<InDet::TRT_DriftCircleContainer>
inputContainer(
m_inputKey
, ctx);
35
if
(!inputContainer.
isValid
()) {
36
ATH_MSG_ERROR
(
"Could not get pileup TRT_DriftCircleContainer "
<< inputContainer.
name
() <<
" from store "
<< inputContainer.
store
());
37
return
StatusCode::FAILURE;
38
}
39
ATH_MSG_DEBUG
(
"Found pileup TRT_DriftCircleContainer "
<< inputContainer.
name
() <<
" in store "
<< inputContainer.
store
());
40
41
// Creating output RDO container
42
SG::WriteHandle<InDet::TRT_DriftCircleContainer>
outputContainer(
m_outputKey
, ctx);
43
ATH_CHECK
(outputContainer.
record
(std::make_unique<InDet::TRT_DriftCircleContainer>(
m_idHelper
->straw_layer_hash_max())));
44
if
(!outputContainer.
isValid
()) {
45
ATH_MSG_ERROR
(
"Could not record output TRT_DriftCircleContainer "
<< outputContainer.
name
() <<
" to store "
<< outputContainer.
store
());
46
return
StatusCode::FAILURE;
47
}
48
ATH_MSG_DEBUG
(
"Recorded output TRT_DriftCircleContainer container "
<< outputContainer.
name
() <<
" in store "
<< outputContainer.
store
());
49
50
for
(
const
InDet::TRT_DriftCircleCollection* col : *inputContainer){
51
InDet::TRT_DriftCircleCollection* newCol=
new
InDet::TRT_DriftCircleCollection(col->identifyHash());
52
newCol->setIdentifier(col->identify());
53
newCol->reserve(col->size());
54
for
(
const
InDet::TRT_DriftCircle
* clus : *col){
55
newCol->push_back(std::make_unique<InDet::TRT_DriftCircle>(*clus));
56
}
57
ATH_CHECK
(outputContainer->addCollection(newCol,newCol->identifyHash()));
58
}
59
return
StatusCode::SUCCESS;
60
}
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition
AthMsgStreamMacros.h:33
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition
AthMsgStreamMacros.h:28
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition
AthMsgStreamMacros.h:29
CopyTRT_DriftCircleContainer.h
TRT_DriftCircleCollection.h
TRT_DriftCircle.h
TRT_ID.h
This is an Identifier helper class for the TRT subdetector.
AthCommonAlgorithm< Gaudi::Algorithm >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
Definition
AthCommonDataStore.h:95
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition
AthReentrantAlgorithm.h:74
CopyTRT_DriftCircleContainer::m_inputKey
SG::ReadHandleKey< InDet::TRT_DriftCircleContainer > m_inputKey
Definition
CopyTRT_DriftCircleContainer.h:23
CopyTRT_DriftCircleContainer::initialize
virtual StatusCode initialize() override
Definition
CopyTRT_DriftCircleContainer.cxx:13
CopyTRT_DriftCircleContainer::m_outputKey
SG::WriteHandleKey< InDet::TRT_DriftCircleContainer > m_outputKey
Definition
CopyTRT_DriftCircleContainer.h:24
CopyTRT_DriftCircleContainer::CopyTRT_DriftCircleContainer
CopyTRT_DriftCircleContainer(const std::string &name, ISvcLocator *pSvcLocator)
Definition
CopyTRT_DriftCircleContainer.cxx:10
CopyTRT_DriftCircleContainer::m_idHelper
const TRT_ID * m_idHelper
Definition
CopyTRT_DriftCircleContainer.h:26
CopyTRT_DriftCircleContainer::execute
virtual StatusCode execute(const EventContext &ctx) const override
Definition
CopyTRT_DriftCircleContainer.cxx:28
InDet::TRT_DriftCircle
Definition
TRT_DriftCircle.h:32
SG::ReadHandle
Definition
StoreGate/StoreGate/ReadHandle.h:67
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
SG::VarHandleBase::store
std::string store() const
Return the name of the store holding the object we are proxying.
Definition
StoreGate/src/VarHandleBase.cxx:382
SG::VarHandleBase::name
const std::string & name() const
Return the StoreGate ID for the referenced object.
Definition
AthToolSupport/AsgDataHandles/Root/VarHandleBase.cxx:75
SG::WriteHandle
Definition
StoreGate/StoreGate/WriteHandle.h:73
SG::WriteHandle::record
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
SG::WriteHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
Generated on
for ATLAS Offline Software by
1.17.0