ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonCnv
MuonSimEventAthenaPool
src
RPCSimHitCollectionCnv.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 "
RPCSimHitCollectionCnv.h
"
6
7
// Gaudi
8
#include "GaudiKernel/StatusCode.h"
9
#include "GaudiKernel/MsgStream.h"
10
11
// Athena
12
#include "
StoreGate/StoreGateSvc.h
"
13
14
#include "
MuonSimEvent/RPCSimHitCollection.h
"
15
#include "
MuonSimEventTPCnv/RPCSimHitCollection_p1.h
"
16
#include "
MuonSimEventTPCnv/RPCSimHitCollection_p2.h
"
17
#include "
MuonSimEventTPCnv/RPCSimHitCollection_p3.h
"
18
#include "
MuonSimEventTPCnv/RPCSimHitCollection_p4.h
"
19
#include "
HitManagement/AthenaHitsVector.h
"
//for back-compatibility
20
21
22
RPCSimHitCollectionCnv::RPCSimHitCollectionCnv
(ISvcLocator* svcloc) :
23
RPCSimHitCollectionCnvBase
(svcloc)
24
{
25
}
26
27
RPCSimHitCollectionCnv::~RPCSimHitCollectionCnv
() =
default
;
28
29
RPCSimHitCollection_PERS
*
RPCSimHitCollectionCnv::createPersistent
(
RPCSimHitCollection
* transCont) {
30
MsgStream log(msgSvc(),
"RPCSimHitCollectionCnv"
);
31
if
(log.level() <= MSG::DEBUG) log<<MSG::DEBUG<<
"createPersistent(): main converter"
<<
endmsg
;
32
RPCSimHitCollection_PERS
*pixdc_p=
m_TPConverter_p3
.createPersistent( transCont, log );
33
return
pixdc_p;
34
}
35
36
RPCSimHitCollection
*
RPCSimHitCollectionCnv::createTransient
(
const
Token
* token) {
37
MsgStream log(msgSvc(),
"RPCSimHitCollectionCnv"
);
38
static
const
Guid
p0_guid(
"45EB013E-FC8E-4612-88B7-6E0CAF718F79"
);
// before t/p split
39
static
const
Guid
p1_guid(
"C4C57487-41DC-4706-9604-721D76F0AA52"
);
40
static
const
Guid
p2_guid(
"1B611C70-CC6F-42AE-9F6D-7DA6A9A22546"
);
41
static
const
Guid
p3_guid(
"B48E5E17-FB26-4BC0-A0E2-5324925EAE2F"
);
42
static
const
Guid
p4_guid(
"018E2DAC-18EB-714B-B9BD-F9354E30CB51"
);
43
if
(log.level() <= MSG::DEBUG) log<<MSG::DEBUG<<
"createTransient(const Token* token): main converter"
<<
endmsg
;
44
RPCSimHitCollection
* p_collection(
nullptr
);
45
if
(
compareClassGuid
(token, p4_guid) ) {
46
if
(log.level() <= MSG::DEBUG) log<<MSG::DEBUG<<
"createTransient(const Token* token): T/P version 4 detected"
<<
endmsg
;
47
std::unique_ptr< Muon::RPCSimHitCollection_p4 > col_vect( this->
poolReadObject< Muon::RPCSimHitCollection_p4 >
(token) );
48
p_collection =
m_TPConverter_p4
.createTransient( col_vect.get(), log );
49
}
50
else
if
(
compareClassGuid
(token, p3_guid) ) {
51
if
(log.level() <= MSG::DEBUG) log<<MSG::DEBUG<<
"createTransient(const Token* token): T/P version 3 detected"
<<
endmsg
;
52
std::unique_ptr< Muon::RPCSimHitCollection_p3 > col_vect( this->
poolReadObject< Muon::RPCSimHitCollection_p3 >
(token) );
53
p_collection =
m_TPConverter_p3
.createTransient( col_vect.get(), log );
54
}
55
else
if
(
compareClassGuid
(token, p2_guid) ) {
56
if
(log.level() <= MSG::DEBUG) log<<MSG::DEBUG<<
"createTransient(const Token* token): T/P version 2 detected"
<<
endmsg
;
57
std::unique_ptr< Muon::RPCSimHitCollection_p2 > col_vect( this->
poolReadObject< Muon::RPCSimHitCollection_p2 >
(token) );
58
p_collection =
m_TPConverter_p2
.createTransient( col_vect.get(), log );
59
}
60
else
if
(
compareClassGuid
(token, p1_guid) ) {
61
if
(log.level() <= MSG::DEBUG) log<<MSG::DEBUG<<
"createTransient(const Token* token): T/P version 1 detected"
<<
endmsg
;
62
std::unique_ptr< Muon::RPCSimHitCollection_p1 > col_vect( this->
poolReadObject< Muon::RPCSimHitCollection_p1 >
(token) );
63
p_collection =
m_TPConverter
.createTransient( col_vect.get(), log );
64
}
65
//----------------------------------------------------------------
66
else
if
(
compareClassGuid
(token, p0_guid) ) {
67
if
(log.level() <= MSG::DEBUG) log<<MSG::DEBUG<<
"createTransient(const Token* token): Old input file"
<<std::endl;
68
AthenaHitsVector<RPCSimHit>
* oldColl = this->
poolReadObject< AthenaHitsVector<RPCSimHit>
>(token);
69
size_t
size
= oldColl->
size
();
70
p_collection=
new
RPCSimHitCollection
(
"DefaultCollectionName"
,
size
);
71
p_collection->
reserve
(
size
);
72
//do the copy
73
for
(
const
RPCSimHit
*
hit
: *oldColl) {
74
p_collection->
push_back
(*
hit
);
75
}
76
delete
oldColl;
77
}
78
else
{
79
throw
std::runtime_error(
"Unsupported persistent version of RPCSimHitCollection"
);
80
81
}
82
return
p_collection;
83
}
endmsg
#define endmsg
Definition
AnalysisConfig_Ntuple.cxx:54
AthenaHitsVector.h
hit
bool hit(const Container &ids, int pdgId)
Definition
JetIRCSafeLabelTool.cxx:64
RPCSimHitCollectionCnv.h
RPCSimHitCollection_PERS
Muon::RPCSimHitCollection_p3 RPCSimHitCollection_PERS
Definition
RPCSimHitCollectionCnv.h:18
RPCSimHitCollectionCnvBase
T_AthenaPoolCustomCnv< RPCSimHitCollection, RPCSimHitCollection_PERS > RPCSimHitCollectionCnvBase
Definition
RPCSimHitCollectionCnv.h:19
RPCSimHitCollection.h
RPCSimHitCollection
AtlasHitsVector< RPCSimHit > RPCSimHitCollection
Definition
RPCSimHitCollection.h:15
RPCSimHitCollection_p1.h
RPCSimHitCollection_p2.h
RPCSimHitCollection_p3.h
RPCSimHitCollection_p4.h
StoreGateSvc.h
size
size_t size() const
Number of registered mappings.
AthenaHitsVector
Definition
AthenaHitsVector.h:87
AthenaHitsVector::size
size_type size() const
Definition
AthenaHitsVector.h:199
AtlasHitsVector::push_back
void push_back(const T &t)
Definition
AtlasHitsVector.h:144
AtlasHitsVector::reserve
void reserve(size_type n)
Definition
AtlasHitsVector.h:157
Guid
This class provides a encapsulation of a GUID/UUID/CLSID/IID data structure (128 bit number).
Definition
Guid.h:25
RPCSimHitCollectionCnv::createTransient
virtual RPCSimHitCollection * createTransient(const Token *token)
Definition
RPCSimHitCollectionCnv.cxx:36
RPCSimHitCollectionCnv::createPersistent
virtual RPCSimHitCollection_PERS * createPersistent(RPCSimHitCollection *transCont)
Definition
RPCSimHitCollectionCnv.cxx:29
RPCSimHitCollectionCnv::m_TPConverter_p2
RPCSimHitCollectionCnv_p2 m_TPConverter_p2
Definition
RPCSimHitCollectionCnv.h:40
RPCSimHitCollectionCnv::m_TPConverter
RPCSimHitCollectionCnv_p1 m_TPConverter
Definition
RPCSimHitCollectionCnv.h:39
RPCSimHitCollectionCnv::RPCSimHitCollectionCnv
RPCSimHitCollectionCnv(ISvcLocator *svcloc)
Definition
RPCSimHitCollectionCnv.cxx:22
RPCSimHitCollectionCnv::m_TPConverter_p3
RPCSimHitCollectionCnv_p3 m_TPConverter_p3
Definition
RPCSimHitCollectionCnv.h:41
RPCSimHitCollectionCnv::~RPCSimHitCollectionCnv
virtual ~RPCSimHitCollectionCnv()
RPCSimHitCollectionCnv::m_TPConverter_p4
RPCSimHitCollectionCnv_p4 m_TPConverter_p4
Definition
RPCSimHitCollectionCnv.h:42
RPCSimHit
Definition
RPCSimHit.h:19
T_AthenaPoolCustomCnv< RPCSimHitCollection, RPCSimHitCollection_PERS >::compareClassGuid
virtual bool compareClassGuid(const Token *token, const Guid &clid) const
T_AthenaPoolCustomCnv< RPCSimHitCollection, RPCSimHitCollection_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