ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonCnv
MuonSimEventAthenaPool
src
CSCSimHitCollectionCnv.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 "
CSCSimHitCollectionCnv.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/CSCSimHitCollection.h
"
15
#include "
MuonSimEventTPCnv/CSCSimHitCollection_p1.h
"
16
#include "
MuonSimEventTPCnv/CSCSimHitCollection_p2.h
"
17
#include "
MuonSimEventTPCnv/CSCSimHitCollection_p3.h
"
18
#include "
MuonSimEventTPCnv/CSCSimHitCollection_p4.h
"
19
#include "
HitManagement/AthenaHitsVector.h
"
//for back-compatibility
20
21
22
CSCSimHitCollectionCnv::CSCSimHitCollectionCnv
(ISvcLocator* svcloc) :
23
CSCSimHitCollectionCnvBase
(svcloc)
24
{
25
}
26
27
CSCSimHitCollectionCnv::~CSCSimHitCollectionCnv
() =
default
;
28
29
CSCSimHitCollection_PERS
*
CSCSimHitCollectionCnv::createPersistent
(
CSCSimHitCollection
* transCont) {
30
MsgStream log(msgSvc(),
"CSCSimHitCollectionCnv"
);
31
if
(log.level() <= MSG::DEBUG) log<<MSG::DEBUG<<
"createPersistent(): main converter"
<<
endmsg
;
32
CSCSimHitCollection_PERS
*pixdc_p=
m_TPConverter_p3
.createPersistent( transCont, log );
33
return
pixdc_p;
34
}
35
36
CSCSimHitCollection
*
CSCSimHitCollectionCnv::createTransient
(
const
Token
* token) {
37
MsgStream log(msgSvc(),
"CSCSimHitCollectionCnv"
);
38
static
const
Guid
p0_guid(
"DC744F9B-078A-4C61-B03F-D035D885B559"
);
// before t/p split
39
static
const
Guid
p1_guid(
"E45CD293-4599-41BE-8B65-945A18F41AB7"
);
40
static
const
Guid
p2_guid(
"7E5A120C-E64F-4519-A24B-B485A58724BF"
);
41
static
const
Guid
p3_guid(
"6BFFE81C-C99E-43D9-B06F-1A998C3B3E40"
);
42
static
const
Guid
p4_guid(
"018E2DAC-18EB-71D2-A246-66F818B3681B"
);
43
if
(log.level() <= MSG::DEBUG) log<<MSG::DEBUG<<
"createTransient(const Token* token): main converter"
<<
endmsg
;
44
CSCSimHitCollection
* 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::CSCSimHitCollection_p4 > col_vect( this->
poolReadObject< Muon::CSCSimHitCollection_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::CSCSimHitCollection_p3 > col_vect( this->
poolReadObject< Muon::CSCSimHitCollection_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::CSCSimHitCollection_p2 > col_vect( this->
poolReadObject< Muon::CSCSimHitCollection_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::CSCSimHitCollection_p1 > col_vect( this->
poolReadObject< Muon::CSCSimHitCollection_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<CSCSimHit>
* oldColl = this->
poolReadObject< AthenaHitsVector<CSCSimHit>
>(token);
69
size_t
size
= oldColl->
size
();
70
p_collection=
new
CSCSimHitCollection
(
"DefaultCollectionName"
,
size
);
71
p_collection->
reserve
(
size
);
72
//do the copy
73
for
(
const
CSCSimHit
*
hit
: *oldColl) {
74
p_collection->
push_back
(*
hit
);
75
}
76
delete
oldColl;
77
}
78
else
{
79
throw
std::runtime_error(
"Unsupported persistent version of CSCSimHitCollection"
);
80
}
81
return
p_collection;
82
}
endmsg
#define endmsg
Definition
AnalysisConfig_Ntuple.cxx:54
AthenaHitsVector.h
CSCSimHitCollectionCnv.h
CSCSimHitCollection_PERS
Muon::CSCSimHitCollection_p3 CSCSimHitCollection_PERS
Definition
CSCSimHitCollectionCnv.h:17
CSCSimHitCollectionCnvBase
T_AthenaPoolCustomCnv< CSCSimHitCollection, CSCSimHitCollection_PERS > CSCSimHitCollectionCnvBase
Definition
CSCSimHitCollectionCnv.h:18
CSCSimHitCollection.h
CSCSimHitCollection
AtlasHitsVector< CSCSimHit > CSCSimHitCollection
Definition
CSCSimHitCollection.h:14
CSCSimHitCollection_p1.h
CSCSimHitCollection_p2.h
CSCSimHitCollection_p3.h
CSCSimHitCollection_p4.h
hit
bool hit(const Container &ids, int pdgId)
Definition
JetIRCSafeLabelTool.cxx:64
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
CSCSimHitCollectionCnv::createPersistent
virtual CSCSimHitCollection_PERS * createPersistent(CSCSimHitCollection *transCont)
Definition
CSCSimHitCollectionCnv.cxx:29
CSCSimHitCollectionCnv::m_TPConverter_p2
CSCSimHitCollectionCnv_p2 m_TPConverter_p2
Definition
CSCSimHitCollectionCnv.h:39
CSCSimHitCollectionCnv::CSCSimHitCollectionCnv
CSCSimHitCollectionCnv(ISvcLocator *svcloc)
Definition
CSCSimHitCollectionCnv.cxx:22
CSCSimHitCollectionCnv::~CSCSimHitCollectionCnv
virtual ~CSCSimHitCollectionCnv()
CSCSimHitCollectionCnv::createTransient
virtual CSCSimHitCollection * createTransient(const Token *token)
Definition
CSCSimHitCollectionCnv.cxx:36
CSCSimHitCollectionCnv::m_TPConverter
CSCSimHitCollectionCnv_p1 m_TPConverter
Definition
CSCSimHitCollectionCnv.h:38
CSCSimHitCollectionCnv::m_TPConverter_p3
CSCSimHitCollectionCnv_p3 m_TPConverter_p3
Definition
CSCSimHitCollectionCnv.h:40
CSCSimHitCollectionCnv::m_TPConverter_p4
CSCSimHitCollectionCnv_p4 m_TPConverter_p4
Definition
CSCSimHitCollectionCnv.h:41
CSCSimHit
Definition
CSCSimHit.h:18
Guid
This class provides a encapsulation of a GUID/UUID/CLSID/IID data structure (128 bit number).
Definition
Guid.h:25
T_AthenaPoolCustomCnv< CSCSimHitCollection, CSCSimHitCollection_PERS >::compareClassGuid
virtual bool compareClassGuid(const Token *token, const Guid &clid) const
T_AthenaPoolCustomCnv< CSCSimHitCollection, CSCSimHitCollection_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