ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonCnv
MuonSimEventTPCnv
src
CSCSimHitCollectionCnv_p2.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
MuonSimEvent/CSCSimHit.h
"
6
#include "
MuonSimEventTPCnv/CSCSimHitCollectionCnv_p2.h
"
7
#include "
MuonSimEventTPCnv/CSCSimHitCollection_p2.h
"
8
#include "
GeneratorObjectsTPCnv/HepMcParticleLinkCnv_p1.h
"
9
10
//#include <cmath>
11
#include "
GeoPrimitives/GeoPrimitives.h
"
12
13
// Gaudi
14
#include "GaudiKernel/MsgStream.h"
15
// Athena
16
#include "
StoreGate/StoreGateSvc.h
"
17
18
void
CSCSimHitCollectionCnv_p2::transToPers
(
const
CSCSimHitCollection
* transCont,
Muon::CSCSimHitCollection_p2
* persCont, MsgStream &log)
19
{
20
// for reasons of efficiency, set size before hand
21
unsigned
int
size
=transCont->
size
();
22
persCont->
m_CSCid
.reserve(
size
);
23
persCont->
m_globalTime
.reserve(
size
);
24
persCont->
m_energyDeposit
.reserve(
size
);
25
persCont->
m_stX
.reserve(
size
);
26
persCont->
m_stY
.reserve(
size
);
27
persCont->
m_stZ
.reserve(
size
);
28
persCont->
m_enX
.reserve(
size
);
29
persCont->
m_enY
.reserve(
size
);
30
persCont->
m_enZ
.reserve(
size
);
31
persCont->
m_particleID
.reserve(
size
);
32
// persCont->m_meanTime.reserve(size);
33
persCont->
m_partLink
.reserve(
size
);
34
35
// make convertor to handle HepMcParticleLinks
36
HepMcParticleLinkCnv_p1
hepMcPLCnv;
37
HepMcParticleLink_p1
persLink;
// will use this as a temp object inside the loop
38
39
// loop through container, filling pers object
40
CSCSimHitCollection::const_iterator
it = transCont->
begin
(), itEnd = transCont->
end
();
41
for
(; it != itEnd; ++it) {
42
persCont->
m_CSCid
.push_back(it->CSCid());
43
persCont->
m_globalTime
.push_back(it->globalTime());
44
persCont->
m_energyDeposit
.push_back(it->energyDeposit());
45
persCont->
m_stX
.push_back(it->getHitStart().x());
46
persCont->
m_stY
.push_back(it->getHitStart().y());
47
persCont->
m_stZ
.push_back(it->getHitStart().z());
48
persCont->
m_enX
.push_back(it->getHitEnd().x());
49
persCont->
m_enY
.push_back(it->getHitEnd().y());
50
persCont->
m_enZ
.push_back(it->getHitEnd().z());
51
persCont->
m_particleID
.push_back(it->particleID());
52
// persCont->m_meanTime.push_back(hit->m_meanTime);
53
54
hepMcPLCnv.
transToPers
(&(it->particleLink()),&persLink, log);
55
persCont->
m_partLink
.push_back(persLink);
56
persCont->
m_kineticEnergy
.push_back(it->kineticEnergy());
57
}
58
}
59
60
61
CSCSimHitCollection
*
CSCSimHitCollectionCnv_p2::createTransient
(
const
Muon::CSCSimHitCollection_p2
* persObj, MsgStream &log) {
62
std::unique_ptr<CSCSimHitCollection> trans(
new
CSCSimHitCollection
(
"DefaultCollectionName"
,persObj->
m_globalTime
.size()));
63
persToTrans
(persObj, trans.get(), log);
64
return
(trans.release());
65
}
66
67
68
void
CSCSimHitCollectionCnv_p2::persToTrans
(
const
Muon::CSCSimHitCollection_p2
* persCont,
CSCSimHitCollection
* transCont, MsgStream &log)
69
{
70
HepMcParticleLinkCnv_p1
hepMcPLCnv;
71
72
//transCont->reserve(persCont->m_CSCid.size());//done in createTransient
73
for
(
unsigned
int
i = 0; i < persCont->
m_CSCid
.size(); i++) {
74
Amg::Vector3D
start(persCont->
m_stX
[i], persCont->
m_stY
[i], persCont->
m_stZ
[i]);
75
Amg::Vector3D
end(persCont->
m_enX
[i], persCont->
m_enY
[i], persCont->
m_enZ
[i]);
76
77
HepMcParticleLink
link;
78
hepMcPLCnv.
persToTrans
(&persCont->
m_partLink
[i],&link, log);
79
80
transCont->
Emplace
(persCont->
m_CSCid
[i], persCont->
m_globalTime
[i], persCont->
m_energyDeposit
[i], start, end, persCont->
m_particleID
[i],
81
link, persCont->
m_kineticEnergy
[i]);
82
}
83
}
84
CSCSimHitCollectionCnv_p2.h
CSCSimHitCollection
AtlasHitsVector< CSCSimHit > CSCSimHitCollection
Definition
CSCSimHitCollection.h:14
CSCSimHitCollection_p2.h
CSCSimHit.h
GeoPrimitives.h
HepMcParticleLinkCnv_p1.h
StoreGateSvc.h
size
size_t size() const
Number of registered mappings.
AtlasHitsVector< CSCSimHit >::const_iterator
CONT::const_iterator const_iterator
Definition
AtlasHitsVector.h:42
AtlasHitsVector::begin
const_iterator begin() const
Definition
AtlasHitsVector.h:130
AtlasHitsVector::Emplace
void Emplace(Args &&... args)
Definition
AtlasHitsVector.h:80
AtlasHitsVector::size
size_type size() const
Definition
AtlasHitsVector.h:142
AtlasHitsVector::end
const_iterator end() const
Definition
AtlasHitsVector.h:133
CSCSimHitCollectionCnv_p2::persToTrans
virtual void persToTrans(const Muon::CSCSimHitCollection_p2 *persCont, CSCSimHitCollection *transCont, MsgStream &log)
Definition
CSCSimHitCollectionCnv_p2.cxx:68
CSCSimHitCollectionCnv_p2::transToPers
virtual void transToPers(const CSCSimHitCollection *transCont, Muon::CSCSimHitCollection_p2 *persCont, MsgStream &log)
Definition
CSCSimHitCollectionCnv_p2.cxx:18
CSCSimHitCollectionCnv_p2::createTransient
virtual CSCSimHitCollection * createTransient(const Muon::CSCSimHitCollection_p2 *persObj, MsgStream &log)
Definition
CSCSimHitCollectionCnv_p2.cxx:61
HepMcParticleLinkCnv_p1
Definition
HepMcParticleLinkCnv_p1.h:33
HepMcParticleLinkCnv_p1::persToTrans
virtual void persToTrans(const HepMcParticleLink_p1 *persObj, HepMcParticleLink *transObj, MsgStream &msg) const override
Method creating the transient representation of HepMcParticleLink from its persistent representation ...
Definition
HepMcParticleLinkCnv_p1.cxx:31
HepMcParticleLinkCnv_p1::transToPers
virtual void transToPers(const HepMcParticleLink *transObj, HepMcParticleLink_p1 *persObj, MsgStream &msg) const override
Method creating the persistent representation HepMcParticleLink_p1 from its transient representation ...
Definition
HepMcParticleLinkCnv_p1.cxx:51
HepMcParticleLink_p1
Definition
HepMcParticleLink_p1.h:21
HepMcParticleLink
a link optimized in size for a GenParticle in a McEventCollection
Definition
HepMcParticleLink.h:72
Muon::CSCSimHitCollection_p2
Definition
CSCSimHitCollection_p2.h:13
Muon::CSCSimHitCollection_p2::m_kineticEnergy
std::vector< float > m_kineticEnergy
Definition
CSCSimHitCollection_p2.h:23
Muon::CSCSimHitCollection_p2::m_energyDeposit
std::vector< float > m_energyDeposit
Definition
CSCSimHitCollection_p2.h:17
Muon::CSCSimHitCollection_p2::m_stY
std::vector< float > m_stY
Definition
CSCSimHitCollection_p2.h:18
Muon::CSCSimHitCollection_p2::m_enY
std::vector< float > m_enY
Definition
CSCSimHitCollection_p2.h:19
Muon::CSCSimHitCollection_p2::m_enZ
std::vector< float > m_enZ
Represents m_hitEnd in transient class.
Definition
CSCSimHitCollection_p2.h:19
Muon::CSCSimHitCollection_p2::m_enX
std::vector< float > m_enX
Definition
CSCSimHitCollection_p2.h:19
Muon::CSCSimHitCollection_p2::m_partLink
std::vector< HepMcParticleLink_p1 > m_partLink
Definition
CSCSimHitCollection_p2.h:22
Muon::CSCSimHitCollection_p2::m_globalTime
std::vector< float > m_globalTime
Definition
CSCSimHitCollection_p2.h:16
Muon::CSCSimHitCollection_p2::m_particleID
std::vector< int > m_particleID
Definition
CSCSimHitCollection_p2.h:20
Muon::CSCSimHitCollection_p2::m_stZ
std::vector< float > m_stZ
Represents m_hitStart in transient class.
Definition
CSCSimHitCollection_p2.h:18
Muon::CSCSimHitCollection_p2::m_stX
std::vector< float > m_stX
Definition
CSCSimHitCollection_p2.h:18
Muon::CSCSimHitCollection_p2::m_CSCid
std::vector< int > m_CSCid
Definition
CSCSimHitCollection_p2.h:15
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition
GeoPrimitives.h:47
Generated on
for ATLAS Offline Software by
1.17.0