ATLAS Offline Software
CSCSimHitCollectionCnv_p4.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
9 
10 //#include <cmath>
12 
13 // Gaudi
14 #include "GaudiKernel/MsgStream.h"
15 // Athena
16 #include "StoreGate/StoreGateSvc.h"
17 
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_p3 hepMcPLCnv;
37  HepMcParticleLink_p3 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 
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 
69 {
70  HepMcParticleLinkCnv_p3 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 }
HepMcParticleLinkCnv_p3
Definition: HepMcParticleLinkCnv_p3.h:29
HepMcParticleLinkCnv_p3.h
Muon::CSCSimHitCollection_p4
Definition: CSCSimHitCollection_p4.h:13
Muon::CSCSimHitCollection_p4::m_enZ
std::vector< float > m_enZ
Represents m_hitEnd in transient class.
Definition: CSCSimHitCollection_p4.h:19
HepMcParticleLinkCnv_p3::persToTrans
virtual void persToTrans(const HepMcParticleLink_p3 *persObj, HepMcParticleLink *transObj, MsgStream &msg) const override
Method creating the transient representation of HepMcParticleLink from its persistent representation ...
Definition: HepMcParticleLinkCnv_p3.cxx:15
mergePhysValFiles.start
start
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:14
AtlasHitsVector
Definition: AtlasHitsVector.h:33
skel.it
it
Definition: skel.GENtoEVGEN.py:396
AtlasHitsVector::begin
const_iterator begin() const
Definition: AtlasHitsVector.h:131
CSCSimHitCollectionCnv_p4::persToTrans
virtual void persToTrans(const Muon::CSCSimHitCollection_p4 *persCont, CSCSimHitCollection *transCont, MsgStream &log)
Definition: CSCSimHitCollectionCnv_p4.cxx:68
Muon::CSCSimHitCollection_p4::m_stZ
std::vector< float > m_stZ
Represents m_hitStart in transient class.
Definition: CSCSimHitCollection_p4.h:18
AtlasHitsVector::const_iterator
CONT::const_iterator const_iterator
Definition: AtlasHitsVector.h:43
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
CSCSimHitCollection
AtlasHitsVector< CSCSimHit > CSCSimHitCollection
Definition: CSCSimHitCollection.h:14
Muon::CSCSimHitCollection_p4::m_stX
std::vector< float > m_stX
Definition: CSCSimHitCollection_p4.h:18
AtlasHitsVector::Emplace
void Emplace(Args &&... args)
Definition: AtlasHitsVector.h:81
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
GeoPrimitives.h
Muon::CSCSimHitCollection_p4::m_enX
std::vector< float > m_enX
Definition: CSCSimHitCollection_p4.h:19
Muon::CSCSimHitCollection_p4::m_CSCid
std::vector< int > m_CSCid
Definition: CSCSimHitCollection_p4.h:15
lumiFormat.i
int i
Definition: lumiFormat.py:85
Muon::CSCSimHitCollection_p4::m_enY
std::vector< float > m_enY
Definition: CSCSimHitCollection_p4.h:19
Muon::CSCSimHitCollection_p4::m_stY
std::vector< float > m_stY
Definition: CSCSimHitCollection_p4.h:18
Muon::CSCSimHitCollection_p4::m_kineticEnergy
std::vector< float > m_kineticEnergy
Definition: CSCSimHitCollection_p4.h:23
HepMcParticleLinkCnv_p3::transToPers
virtual void transToPers(const HepMcParticleLink *transObj, HepMcParticleLink_p3 *persObj, MsgStream &msg) const override
Method creating the persistent representation HepMcParticleLink_p3 from its transient representation ...
Definition: HepMcParticleLinkCnv_p3.cxx:33
CSCSimHitCollectionCnv_p4.h
Muon::CSCSimHitCollection_p4::m_energyDeposit
std::vector< float > m_energyDeposit
Definition: CSCSimHitCollection_p4.h:17
Muon::CSCSimHitCollection_p4::m_globalTime
std::vector< float > m_globalTime
Definition: CSCSimHitCollection_p4.h:16
CSCSimHit.h
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
AtlasHitsVector::end
const_iterator end() const
Definition: AtlasHitsVector.h:134
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
AtlasHitsVector::size
size_type size() const
Definition: AtlasHitsVector.h:143
Muon::CSCSimHitCollection_p4::m_particleID
std::vector< int > m_particleID
Definition: CSCSimHitCollection_p4.h:20
CSCSimHitCollection_p4.h
Muon::CSCSimHitCollection_p4::m_partLink
std::vector< HepMcParticleLink_p3 > m_partLink
Definition: CSCSimHitCollection_p4.h:22
StoreGateSvc.h
CSCSimHitCollectionCnv_p4::transToPers
virtual void transToPers(const CSCSimHitCollection *transCont, Muon::CSCSimHitCollection_p4 *persCont, MsgStream &log)
Definition: CSCSimHitCollectionCnv_p4.cxx:18
CSCSimHitCollectionCnv_p4::createTransient
virtual CSCSimHitCollection * createTransient(const Muon::CSCSimHitCollection_p4 *persObj, MsgStream &log)
Definition: CSCSimHitCollectionCnv_p4.cxx:61