ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonCnv
MuonSimEventAthenaPool
src
MDTSimHitCollectionCnv.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 "
MDTSimHitCollectionCnv.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/MDTSimHitCollection.h
"
15
#include "
MuonSimEventTPCnv/MDTSimHitCollection_p1.h
"
16
#include "
MuonSimEventTPCnv/MDTSimHitCollection_p2.h
"
17
#include "
MuonSimEventTPCnv/MDTSimHitCollection_p3.h
"
18
#include "
MuonSimEventTPCnv/MDTSimHitCollection_p4.h
"
19
#include "
HitManagement/AthenaHitsVector.h
"
//for back-compatibility
20
21
22
MDTSimHitCollectionCnv::MDTSimHitCollectionCnv
(ISvcLocator* svcloc) :
23
MDTSimHitCollectionCnvBase
(svcloc)
24
{
25
}
26
27
MDTSimHitCollectionCnv::~MDTSimHitCollectionCnv
() =
default
;
28
29
MDTSimHitCollection_PERS
*
MDTSimHitCollectionCnv::createPersistent
(
MDTSimHitCollection
* transCont) {
30
MsgStream log(msgSvc(),
"MDTSimHitCollectionCnv"
);
31
ATH_MSG_DEBUG
(
"createPersistent(): main converter"
);
32
MDTSimHitCollection_PERS
*pixdc_p=
m_TPConverter_p3
.createPersistent( transCont, log );
33
return
pixdc_p;
34
}
35
36
MDTSimHitCollection
*
MDTSimHitCollectionCnv::createTransient
(
const
Token
* token) {
37
MsgStream log(msgSvc(),
"MDTSimHitCollectionCnv"
);
38
static
const
Guid
p0_guid(
"D76D06CC-C15F-43E6-BBC3-480DE5DA065D"
);
// before t/p split
39
static
const
Guid
p1_guid(
"EA781971-65C5-4B30-9D22-EEFB764BA0B3"
);
40
static
const
Guid
p2_guid(
"92880B97-75BB-4C5D-8183-577338059FCC"
);
41
static
const
Guid
p3_guid(
"0E9EEEE2-304F-44B8-B1DF-E75297183A02"
);
42
static
const
Guid
p4_guid(
"018E2DAC-18EB-7BBC-92AF-EFE3F0E400C2"
);
43
ATH_MSG_DEBUG
(
"createTransient(const Token* token): main converter"
);
44
MDTSimHitCollection
* p_collection(
nullptr
);
45
if
(
compareClassGuid
(token, p4_guid) ) {
46
ATH_MSG_DEBUG
(
"createTransient(const Token* token): T/P version 4 detected"
);
47
std::unique_ptr< Muon::MDTSimHitCollection_p4 > col_vect( this->
poolReadObject< Muon::MDTSimHitCollection_p4 >
(token) );
48
p_collection =
m_TPConverter_p4
.createTransient( col_vect.get(), log );
49
}
else
if
(
compareClassGuid
(token, p3_guid) ) {
50
ATH_MSG_DEBUG
(
"createTransient(const Token* token): T/P version 3 detected"
);
51
std::unique_ptr< Muon::MDTSimHitCollection_p3 > col_vect( this->
poolReadObject< Muon::MDTSimHitCollection_p3 >
(token) );
52
p_collection =
m_TPConverter_p3
.createTransient( col_vect.get(), log );
53
}
else
if
(
compareClassGuid
(token, p2_guid) ) {
54
ATH_MSG_DEBUG
(
"createTransient(const Token* token): T/P version 2 detected"
);
55
std::unique_ptr< Muon::MDTSimHitCollection_p2 > col_vect( this->
poolReadObject< Muon::MDTSimHitCollection_p2 >
(token) );
56
p_collection =
m_TPConverter_p2
.createTransient( col_vect.get(), log );
57
}
else
if
(
compareClassGuid
(token, p1_guid) ) {
58
ATH_MSG_DEBUG
(
"createTransient(const Token* token): T/P version 1 detected"
);
59
std::unique_ptr< Muon::MDTSimHitCollection_p1 > col_vect( this->
poolReadObject< Muon::MDTSimHitCollection_p1 >
(token) );
60
p_collection =
m_TPConverter_p1
.createTransient( col_vect.get(), log );
61
}
62
//----------------------------------------------------------------
63
else
if
(
compareClassGuid
(token, p0_guid) ) {
64
if
(log.level() <= MSG::DEBUG) log<<MSG::DEBUG<<
"createTransient(const Token* token): Old input file"
<<std::endl;
65
AthenaHitsVector<MDTSimHit>
* oldColl = this->
poolReadObject< AthenaHitsVector<MDTSimHit>
>(token);
66
size_t
size
= oldColl->
size
();
67
p_collection=
new
MDTSimHitCollection
(
"DefaultCollectionName"
,
size
);
68
p_collection->
reserve
(
size
);
69
//do the copy
70
for
(
const
MDTSimHit
*
hit
: *oldColl) {
71
p_collection->
push_back
(*
hit
);
72
}
73
delete
oldColl;
74
}
75
else
{
76
throw
std::runtime_error(
"Unsupported persistent version of MDTSimHitCollection"
);
77
78
}
79
return
p_collection;
80
}
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition
AthMsgStreamMacros.h:29
AthenaHitsVector.h
hit
bool hit(const Container &ids, int pdgId)
Definition
JetIRCSafeLabelTool.cxx:64
MDTSimHitCollectionCnv.h
MDTSimHitCollectionCnvBase
T_AthenaPoolCustomCnv< MDTSimHitCollection, MDTSimHitCollection_PERS > MDTSimHitCollectionCnvBase
Definition
MDTSimHitCollectionCnv.h:18
MDTSimHitCollection_PERS
Muon::MDTSimHitCollection_p3 MDTSimHitCollection_PERS
Definition
MDTSimHitCollectionCnv.h:17
MDTSimHitCollection.h
MDTSimHitCollection
AtlasHitsVector< MDTSimHit > MDTSimHitCollection
Definition
MDTSimHitCollection.h:14
MDTSimHitCollection_p1.h
MDTSimHitCollection_p2.h
MDTSimHitCollection_p3.h
MDTSimHitCollection_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
MDTSimHitCollectionCnv::~MDTSimHitCollectionCnv
virtual ~MDTSimHitCollectionCnv()
MDTSimHitCollectionCnv::MDTSimHitCollectionCnv
MDTSimHitCollectionCnv(ISvcLocator *svcloc)
Definition
MDTSimHitCollectionCnv.cxx:22
MDTSimHitCollectionCnv::m_TPConverter_p2
MDTSimHitCollectionCnv_p2 m_TPConverter_p2
Definition
MDTSimHitCollectionCnv.h:39
MDTSimHitCollectionCnv::m_TPConverter_p1
MDTSimHitCollectionCnv_p1 m_TPConverter_p1
Definition
MDTSimHitCollectionCnv.h:38
MDTSimHitCollectionCnv::createTransient
virtual MDTSimHitCollection * createTransient(const Token *token)
Definition
MDTSimHitCollectionCnv.cxx:36
MDTSimHitCollectionCnv::m_TPConverter_p3
MDTSimHitCollectionCnv_p3 m_TPConverter_p3
Definition
MDTSimHitCollectionCnv.h:40
MDTSimHitCollectionCnv::m_TPConverter_p4
MDTSimHitCollectionCnv_p4 m_TPConverter_p4
Definition
MDTSimHitCollectionCnv.h:41
MDTSimHitCollectionCnv::createPersistent
virtual MDTSimHitCollection_PERS * createPersistent(MDTSimHitCollection *transCont)
Definition
MDTSimHitCollectionCnv.cxx:29
MDTSimHit
Definition
MDTSimHit.h:21
T_AthenaPoolCustomCnv< MDTSimHitCollection, MDTSimHitCollection_PERS >::compareClassGuid
virtual bool compareClassGuid(const Token *token, const Guid &clid) const
T_AthenaPoolCustomCnv< MDTSimHitCollection, MDTSimHitCollection_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