ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonCnv
MuonSimEventAthenaPool
src
TGCSimHitCollectionCnv.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 "
TGCSimHitCollectionCnv.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/TGCSimHitCollection.h
"
15
#include "
MuonSimEventTPCnv/TGCSimHitCollection_p1.h
"
16
#include "
MuonSimEventTPCnv/TGCSimHitCollection_p2.h
"
17
#include "
MuonSimEventTPCnv/TGCSimHitCollection_p3.h
"
18
#include "
MuonSimEventTPCnv/TGCSimHitCollection_p4.h
"
19
#include "
MuonSimEventTPCnv/TGCSimHitCollection_p5.h
"
20
#include "
HitManagement/AthenaHitsVector.h
"
//for back-compatibility
21
22
23
TGCSimHitCollectionCnv::TGCSimHitCollectionCnv
(ISvcLocator* svcloc) :
24
TGCSimHitCollectionCnvBase
(svcloc)
25
{
26
}
27
28
TGCSimHitCollectionCnv::~TGCSimHitCollectionCnv
() =
default
;
29
30
TGCSimHitCollection_PERS
*
TGCSimHitCollectionCnv::createPersistent
(
TGCSimHitCollection
* transCont) {
31
MsgStream log(msgSvc(),
"TGCSimHitCollectionCnv"
);
32
log<<MSG::DEBUG<<
"createPersistent(): main converter"
<<
endmsg
;
33
TGCSimHitCollection_PERS
*pixdc_p=
m_TPConverter_p4
.createPersistent( transCont, log );
34
return
pixdc_p;
35
}
36
37
TGCSimHitCollection
*
TGCSimHitCollectionCnv::createTransient
(
const
Token
* token) {
38
MsgStream log(msgSvc(),
"TGCSimHitCollectionCnv"
);
39
static
const
Guid
p0_guid(
"D7C91818-4730-4717-A650-107F52C0221E"
);
// before t/p split
40
static
const
Guid
p1_guid(
"BD569381-2489-4402-BBD3-91EE8C009F26"
);
41
static
const
Guid
p2_guid(
"710241EE-D5F7-4CB6-A1D7-6E80D040E637"
);
42
static
const
Guid
p3_guid(
"BACD19A8-4737-4857-A22D-B9DF833A0A80"
);
43
static
const
Guid
p4_guid(
"F8F77562-BBD9-45DB-A276-6A21018EA7FA"
);
44
static
const
Guid
p5_guid(
"018E2DAC-18EB-7E5B-9F18-CC2E36343F17"
);
45
log<<MSG::DEBUG<<
"createTransient(const Token* token): main converter"
<<
endmsg
;
46
TGCSimHitCollection
* p_collection(
nullptr
);
47
if
(
compareClassGuid
(token, p5_guid) ) {
48
log<<MSG::DEBUG<<
"createTransient(const Token* token): T/P version 5 detected"
<<
endmsg
;
49
std::unique_ptr< Muon::TGCSimHitCollection_p5 > col_vect( this->
poolReadObject< Muon::TGCSimHitCollection_p5 >
(token) );
50
p_collection =
m_TPConverter_p5
.createTransient( col_vect.get(), log );
51
}
52
//----------------------------------------------------------------
53
else
if
(
compareClassGuid
(token, p4_guid) ) {
54
log<<MSG::DEBUG<<
"createTransient(const Token* token): T/P version 4 detected"
<<
endmsg
;
55
std::unique_ptr< Muon::TGCSimHitCollection_p4 > col_vect( this->
poolReadObject< Muon::TGCSimHitCollection_p4 >
(token) );
56
p_collection =
m_TPConverter_p4
.createTransient( col_vect.get(), log );
57
}
58
//----------------------------------------------------------------
59
else
if
(
compareClassGuid
(token, p3_guid) ) {
60
log<<MSG::DEBUG<<
"createTransient(const Token* token): T/P version 3 detected"
<<
endmsg
;
61
std::unique_ptr< Muon::TGCSimHitCollection_p3 > col_vect( this->
poolReadObject< Muon::TGCSimHitCollection_p3 >
(token) );
62
p_collection =
m_TPConverter_p3
.createTransient( col_vect.get(), log );
63
}
64
//----------------------------------------------------------------
65
else
if
(
compareClassGuid
(token, p2_guid) ) {
66
log<<MSG::DEBUG<<
"createTransient(const Token* token): T/P version 2 detected"
<<
endmsg
;
67
std::unique_ptr< Muon::TGCSimHitCollection_p2 > col_vect( this->
poolReadObject< Muon::TGCSimHitCollection_p2 >
(token) );
68
p_collection =
m_TPConverter_p2
.createTransient( col_vect.get(), log );
69
}
70
//----------------------------------------------------------------
71
else
if
(
compareClassGuid
(token, p1_guid) ) {
72
log<<MSG::DEBUG<<
"createTransient(const Token* token): T/P version 1 detected"
<<
endmsg
;
73
std::unique_ptr< Muon::TGCSimHitCollection_p1 > col_vect( this->
poolReadObject< Muon::TGCSimHitCollection_p1 >
(token) );
74
p_collection =
m_TPConverter_p1
.createTransient( col_vect.get(), log );
75
}
76
//----------------------------------------------------------------
77
else
if
(
compareClassGuid
(token, p0_guid) ) {
78
log<<MSG::DEBUG<<
"createTransient(const Token* token): Old input file"
<<std::endl;
79
AthenaHitsVector<TGCSimHit>
* oldColl = this->
poolReadObject< AthenaHitsVector<TGCSimHit>
>(token);
80
size_t
size
= oldColl->
size
();
81
p_collection=
new
TGCSimHitCollection
(
"DefaultCollectionName"
,
size
);
82
p_collection->
reserve
(
size
);
83
//do the copy
84
for
(
const
TGCSimHit
*
hit
: *oldColl) {
85
p_collection->
push_back
(*
hit
);
86
}
87
delete
oldColl;
88
}
89
else
{
90
throw
std::runtime_error(
"Unsupported persistent version of TGCSimHitCollection"
);
91
92
}
93
return
p_collection;
94
}
endmsg
#define endmsg
Definition
AnalysisConfig_Ntuple.cxx:54
AthenaHitsVector.h
hit
bool hit(const Container &ids, int pdgId)
Definition
JetIRCSafeLabelTool.cxx:64
StoreGateSvc.h
size
size_t size() const
Number of registered mappings.
TGCSimHitCollectionCnv.h
TGCSimHitCollectionCnvBase
T_AthenaPoolCustomCnv< TGCSimHitCollection, TGCSimHitCollection_PERS > TGCSimHitCollectionCnvBase
Definition
TGCSimHitCollectionCnv.h:19
TGCSimHitCollection_PERS
Muon::TGCSimHitCollection_p4 TGCSimHitCollection_PERS
Definition
TGCSimHitCollectionCnv.h:18
TGCSimHitCollection.h
TGCSimHitCollection
AtlasHitsVector< TGCSimHit > TGCSimHitCollection
Definition
TGCSimHitCollection.h:15
TGCSimHitCollection_p1.h
TGCSimHitCollection_p2.h
TGCSimHitCollection_p3.h
TGCSimHitCollection_p4.h
TGCSimHitCollection_p5.h
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
TGCSimHitCollectionCnv::m_TPConverter_p5
TGCSimHitCollectionCnv_p5 m_TPConverter_p5
Definition
TGCSimHitCollectionCnv.h:43
TGCSimHitCollectionCnv::createTransient
virtual TGCSimHitCollection * createTransient(const Token *token)
Definition
TGCSimHitCollectionCnv.cxx:37
TGCSimHitCollectionCnv::TGCSimHitCollectionCnv
TGCSimHitCollectionCnv(ISvcLocator *svcloc)
Definition
TGCSimHitCollectionCnv.cxx:23
TGCSimHitCollectionCnv::m_TPConverter_p2
TGCSimHitCollectionCnv_p2 m_TPConverter_p2
Definition
TGCSimHitCollectionCnv.h:40
TGCSimHitCollectionCnv::m_TPConverter_p3
TGCSimHitCollectionCnv_p3 m_TPConverter_p3
Definition
TGCSimHitCollectionCnv.h:41
TGCSimHitCollectionCnv::~TGCSimHitCollectionCnv
virtual ~TGCSimHitCollectionCnv()
TGCSimHitCollectionCnv::m_TPConverter_p1
TGCSimHitCollectionCnv_p1 m_TPConverter_p1
Definition
TGCSimHitCollectionCnv.h:39
TGCSimHitCollectionCnv::createPersistent
virtual TGCSimHitCollection_PERS * createPersistent(TGCSimHitCollection *transCont)
Definition
TGCSimHitCollectionCnv.cxx:30
TGCSimHitCollectionCnv::m_TPConverter_p4
TGCSimHitCollectionCnv_p4 m_TPConverter_p4
Definition
TGCSimHitCollectionCnv.h:42
TGCSimHit
Definition
TGCSimHit.h:19
T_AthenaPoolCustomCnv< TGCSimHitCollection, TGCSimHitCollection_PERS >::compareClassGuid
virtual bool compareClassGuid(const Token *token, const Guid &clid) const
T_AthenaPoolCustomCnv< TGCSimHitCollection, TGCSimHitCollection_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