ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonCnv
MuonEventAthenaPool
src
CscPrepDataContainerCnv.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
CscPrepDataContainerCnv.h
"
6
7
// Gaudi
8
#include "GaudiKernel/StatusCode.h"
9
#include "GaudiKernel/MsgStream.h"
10
11
// Athena
12
#include "
StoreGate/StoreGateSvc.h
"
13
14
// Id includes
15
// #include "MuonIdHelpers/CscIdHelper.h"
16
#include "
MuonPrepRawData/CscPrepDataContainer.h
"
17
#include "
MuonEventTPCnv/CscPrepDataContainerCnv_tlp1.h
"
18
19
20
CscPrepDataContainerCnv::CscPrepDataContainerCnv
(ISvcLocator* svcloc) :
21
CscPrepDataContainerCnvBase
(svcloc)
22
{
23
}
24
25
CscPrepDataContainerCnv::~CscPrepDataContainerCnv
() =
default
;
26
27
StatusCode
CscPrepDataContainerCnv::initialize
() {
28
// Call base clase initialize
29
if
( !
CscPrepDataContainerCnvBase::initialize
().isSuccess() )
30
return
StatusCode::FAILURE;
31
32
// msgSvc()->setOutputLevel( "CscPrepDataContainerCnv", MSG::DEBUG );
33
34
// Get the messaging service, print where you are
35
MsgStream log(msgSvc(),
"CscPrepDataContainerCnv"
);
36
if
(log.level() <= MSG::INFO) log << MSG::INFO <<
"CscPrepDataContainerCnv::initialize()"
<<
endmsg
;
37
38
return
StatusCode::SUCCESS;
39
}
40
41
CscPrepDataContainer_PERS
*
CscPrepDataContainerCnv::createPersistent
(
Muon::CscPrepDataContainer
* transCont) {
42
MsgStream log(msgSvc(),
"CscPrepDataContainerCnv"
);
43
if
(log.level() <= MSG::DEBUG) log<<MSG::DEBUG<<
"createPersistent(): main converter"
<<
endmsg
;
44
CscPrepDataContainer_PERS
*pers=
m_TPConverter
.createPersistent( transCont, log );
45
// COMPRESS CscPrepDataContainer_PERS *pers= m_converter_p2.createPersistent( transCont, log );
46
return
pers;
47
}
48
49
Muon::CscPrepDataContainer
*
CscPrepDataContainerCnv::createTransient
(
const
Token
* token) {
50
MsgStream log(msgSvc(),
"CscPrepDataContainerCnv"
);
51
static
const
Guid
p0_guid(
"C48250B1-7575-DFA1-1313-01AAAF759AEA"
);
// before t/p split
52
static
const
Guid
p1_guid(
"B941657D-1ABF-4A88-B23C-6C4212CD04B3"
);
// with CscPrepData_tlp1
53
static
const
Guid
p2_guid(
"BF5DA875-6D5B-4DCA-9CD8-E0ABC4FD92F5"
);
// with CscPrepDataContainer_p2
54
if
(log.level() <= MSG::DEBUG) log<<MSG::DEBUG<<
"createTransient(const Token* token): main converter"
<<
endmsg
;
55
Muon::CscPrepDataContainer
* p_collection(
nullptr
);
56
if
(
compareClassGuid
(token, p2_guid) ) {
57
if
(log.level() <= MSG::DEBUG) log<<MSG::DEBUG<<
"createTransient(const Token* token): T/P version 2 detected"
<<
endmsg
;
58
std::unique_ptr< Muon::CscPrepDataContainer_p2 > p_coll(
poolReadObject< Muon::CscPrepDataContainer_p2 >
(token) );
59
p_collection =
m_converter_p2
.createTransient( p_coll.get(), log );
60
}
else
if
(
compareClassGuid
(token, p1_guid) ) {
61
CscPrepDataContainerCnv_tlp1
tpConvertor_p1;
62
std::unique_ptr< Muon::CscPrepDataContainer_tlp1 > col_vect(
poolReadObject< Muon::CscPrepDataContainer_tlp1 >
(token) );
63
p_collection =
m_TPConverter
.createTransient( col_vect.get(), log );
64
if
(log.level() <= MSG::DEBUG) log<<MSG::DEBUG<<
"createTransient(const Token* token): T/P version 1 detected"
<<
endmsg
;
65
}
66
//----------------------------------------------------------------
67
else
if
(
compareClassGuid
(token, p0_guid) ) {
68
if
(log.level() <= MSG::DEBUG) log<<MSG::DEBUG<<
"createTransient(const Token* token): Old input file"
<<std::endl;
69
throw
std::runtime_error(
"Not currently supporting reading non TP-split PRDs"
);
70
//std::unique_ptr< CscPrepDataContainer_p0 > col_vect( poolReadObject< CscPrepDataContainer_p0 >(token) );
71
//p_collection = m_converter_p0.createTransient( col_vect.get(), log );
72
}
73
else
{
74
throw
std::runtime_error(
"Unsupported persistent version of CscPrepDataContainer"
);
75
76
}
77
return
p_collection;
78
}
endmsg
#define endmsg
Definition
AnalysisConfig_Ntuple.cxx:54
CscPrepDataContainerCnv.h
CscPrepDataContainer_PERS
Muon::CscPrepDataContainer_tlp1 CscPrepDataContainer_PERS
Definition
CscPrepDataContainerCnv.h:19
CscPrepDataContainerCnvBase
T_AthenaPoolCustomCnv< Muon::CscPrepDataContainer, CscPrepDataContainer_PERS > CscPrepDataContainerCnvBase
Definition
CscPrepDataContainerCnv.h:20
CscPrepDataContainerCnv_tlp1.h
CscPrepDataContainer.h
StoreGateSvc.h
CscPrepDataContainerCnv_tlp1
Definition
CscPrepDataContainerCnv_tlp1.h:23
CscPrepDataContainerCnv::m_converter_p2
Muon::CscPrepDataContainerCnv_p2 m_converter_p2
Definition
CscPrepDataContainerCnv.h:43
CscPrepDataContainerCnv::createPersistent
virtual CscPrepDataContainer_PERS * createPersistent(Muon::CscPrepDataContainer *transCont)
Definition
CscPrepDataContainerCnv.cxx:41
CscPrepDataContainerCnv::createTransient
virtual Muon::CscPrepDataContainer * createTransient(const Token *token)
Definition
CscPrepDataContainerCnv.cxx:49
CscPrepDataContainerCnv::~CscPrepDataContainerCnv
virtual ~CscPrepDataContainerCnv()
CscPrepDataContainerCnv::initialize
virtual StatusCode initialize()
Gaudi Service Interface method implementations:
Definition
CscPrepDataContainerCnv.cxx:27
CscPrepDataContainerCnv::m_TPConverter
CscPrepDataContainerCnv_tlp1 m_TPConverter
Definition
CscPrepDataContainerCnv.h:44
CscPrepDataContainerCnv::CscPrepDataContainerCnv
CscPrepDataContainerCnv(ISvcLocator *svcloc)
Definition
CscPrepDataContainerCnv.cxx:20
Guid
This class provides a encapsulation of a GUID/UUID/CLSID/IID data structure (128 bit number).
Definition
Guid.h:25
T_AthenaPoolCustomCnv< Muon::CscPrepDataContainer, CscPrepDataContainer_PERS >::compareClassGuid
virtual bool compareClassGuid(const Token *token, const Guid &clid) const
T_AthenaPoolCustomCnv< Muon::CscPrepDataContainer, CscPrepDataContainer_PERS >::initialize
virtual StatusCode initialize()
T_AthenaPoolCustomCnv< Muon::CscPrepDataContainer, CscPrepDataContainer_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
Muon::CscPrepDataContainer
MuonPrepDataContainerT< CscPrepData > CscPrepDataContainer
Definition
MuonPrepDataContainer.h:97
Generated on
for ATLAS Offline Software by
1.17.0