ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
InnerDetector
InDetEventCnv
InDetEventAthenaPool
src
TRT_DriftCircleContainerCnv.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 "
TRT_DriftCircleContainerCnv.h
"
6
#include "
InDetIdentifier/TRT_ID.h
"
7
8
#include <memory>
9
10
#include <iostream>
11
12
TRT_DriftCircleContainerCnv::TRT_DriftCircleContainerCnv
(ISvcLocator* svcloc)
13
:
TRT_DriftCircleContainerCnvBase
(svcloc,
"TRT_DriftCircleContainerCnv"
),
14
m_converter_p0
()
15
{}
16
17
18
StatusCode
TRT_DriftCircleContainerCnv::initialize
() {
19
ATH_MSG_INFO
(
"TRT_DriftCircleContainerCnv::initialize()"
);
20
21
ATH_CHECK
(
TRT_DriftCircleContainerCnvBase::initialize
() );
22
23
// Get the trt helper from the detector store
24
const
TRT_ID
* idhelper(
nullptr
);
25
ATH_CHECK
(
detStore
()->retrieve(idhelper,
"TRT_ID"
) );
26
27
ATH_CHECK
(
m_converter_p0
.initialize(
msg
()) );
28
29
ATH_MSG_DEBUG
(
"Converter initialized"
);
30
31
return
StatusCode::SUCCESS;
32
}
33
34
35
InDet::TRT_DriftCircleContainer*
TRT_DriftCircleContainerCnv::createTransient
(
const
Token
* token) {
36
37
static
const
Guid
p0_guid(
"A99630C5-3D7C-4DB4-9E6C-FC3CEF981895"
);
// before t/p split
38
static
const
Guid
p1_guid(
"42B48D79-AF4E-4D45-AAA9-A2BA5A033534"
);
// with TRT_DriftCircle_tlp1
39
static
const
Guid
p2_guid(
"36195EDE-941C-424B-81A1-E04C867C35D8"
);
// with TRT_DriftCircle_p2
40
ATH_MSG_DEBUG
(
"createTransient(const Token* token): main converter"
);
41
InDet::TRT_DriftCircleContainer* p_collection(
nullptr
);
42
if
(
compareClassGuid
(token, p2_guid) ) {
43
ATH_MSG_DEBUG
(
"createTransient(const Token* token): T/P version 2 detected"
);
44
std::unique_ptr< InDet::TRT_DriftCircleContainer_p2 > col_vect(
poolReadObject< InDet::TRT_DriftCircleContainer_p2 >
(token) );
45
ATH_MSG_DEBUG
(
"Delegate TP converter "
);
46
p_collection =
m_TPConverter2
.createTransient( col_vect.get(),
msg
() );
47
}
48
else
if
(
compareClassGuid
(token, p1_guid) ) {
49
ATH_MSG_DEBUG
(
"createTransient(const Token* token): T/P version 1 detected"
);
50
std::unique_ptr< InDet::TRT_DriftCircleContainer_tlp1 > p_coll(
poolReadObject< InDet::TRT_DriftCircleContainer_tlp1 >
(token) );
51
p_collection =
m_TPConverter
.createTransient( p_coll.get(),
msg
() );
52
}
53
//----------------------------------------------------------------
54
else
if
(
compareClassGuid
(token, p0_guid) ) {
55
ATH_MSG_DEBUG
(
"createTransient(const Token* token): Old input file"
);
56
std::unique_ptr< TRT_DriftCircleContainer_p0 > col_vect(
poolReadObject< TRT_DriftCircleContainer_p0 >
(token) );
57
p_collection =
m_converter_p0
.createTransient( col_vect.get(),
msg
() );
58
}
59
else
{
60
throw
std::runtime_error(
"Unsupported persistent version of TRT_DriftCircleContainer"
);
61
62
}
63
return
p_collection;
64
}
65
66
67
TRT_DriftCircleContainer_PERS
*
TRT_DriftCircleContainerCnv::createPersistent
(InDet::TRT_DriftCircleContainer* transCont) {
68
TRT_DriftCircleContainer_PERS
*trtdc_p=
m_TPConverter2
.createPersistent( transCont,
msg
() );
69
return
trtdc_p;
70
}
71
72
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition
AthMsgStreamMacros.h:31
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition
AthMsgStreamMacros.h:29
TRT_DriftCircleContainerCnv.h
TRT_DriftCircleContainer_PERS
InDet::TRT_DriftCircleContainer_p2 TRT_DriftCircleContainer_PERS
Definition
TRT_DriftCircleContainerCnv.h:20
TRT_DriftCircleContainerCnvBase
T_AthenaPoolCustomCnv< InDet::TRT_DriftCircleContainer, TRT_DriftCircleContainer_PERS > TRT_DriftCircleContainerCnvBase
Definition
TRT_DriftCircleContainerCnv.h:21
TRT_ID.h
This is an Identifier helper class for the TRT subdetector.
T_AthenaPoolCustomCnv< InDet::TRT_DriftCircleContainer, TRT_DriftCircleContainer_PERS >::msg
MsgStream & msg() const
Definition
AthMessaging.h:167
T_AthenaPoolCustomCnv< InDet::TRT_DriftCircleContainer, TRT_DriftCircleContainer_PERS >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
Definition
AthenaPoolConverter.h:68
Guid
This class provides a encapsulation of a GUID/UUID/CLSID/IID data structure (128 bit number).
Definition
Guid.h:25
TRT_DriftCircleContainerCnv::m_converter_p0
TRT_DriftCircleContainerCnv_p0 m_converter_p0
Definition
TRT_DriftCircleContainerCnv.h:29
TRT_DriftCircleContainerCnv::createTransient
virtual InDet::TRT_DriftCircleContainer * createTransient(const Token *token) override
Definition
TRT_DriftCircleContainerCnv.cxx:35
TRT_DriftCircleContainerCnv::initialize
virtual StatusCode initialize() override
Gaudi Service Interface method implementations:
Definition
TRT_DriftCircleContainerCnv.cxx:18
TRT_DriftCircleContainerCnv::m_TPConverter
TRT_DriftCircleContainerCnv_tlp1 m_TPConverter
Definition
TRT_DriftCircleContainerCnv.h:30
TRT_DriftCircleContainerCnv::TRT_DriftCircleContainerCnv
TRT_DriftCircleContainerCnv(ISvcLocator *svcloc)
Definition
TRT_DriftCircleContainerCnv.cxx:12
TRT_DriftCircleContainerCnv::createPersistent
virtual TRT_DriftCircleContainer_PERS * createPersistent(InDet::TRT_DriftCircleContainer *transCont) override
Definition
TRT_DriftCircleContainerCnv.cxx:67
TRT_DriftCircleContainerCnv::m_TPConverter2
TRT_DriftCircleContainerCnv_p2 m_TPConverter2
Definition
TRT_DriftCircleContainerCnv.h:31
TRT_ID
This is an Identifier helper class for the TRT subdetector.
Definition
TRT_ID.h:84
T_AthenaPoolCustomCnv< InDet::TRT_DriftCircleContainer, TRT_DriftCircleContainer_PERS >::compareClassGuid
virtual bool compareClassGuid(const Token *token, const Guid &clid) const
T_AthenaPoolCustomCnv< InDet::TRT_DriftCircleContainer, TRT_DriftCircleContainer_PERS >::initialize
virtual StatusCode initialize()
T_AthenaPoolCustomCnv< InDet::TRT_DriftCircleContainer, TRT_DriftCircleContainer_PERS >::poolReadObject
P * poolReadObject(const Token *token)
Token
This class provides a token that identifies in a unique way objects on the persistent storage.
Definition
Token.h:22
Generated on
for ATLAS Offline Software by
1.17.0