ATLAS Offline Software
Loading...
Searching...
No Matches
TileHitCnv_p1.cxx
Go to the documentation of this file.
1
2
3/*
4 Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
5*/
6
7// TileHitCnv_p1.cxx
8// Implementation file for class TileHitCnv_p1
9// Author: Author: Davide Costanzo
10// Date: March 2007
12
15#include <stdexcept>
16
17
18void
19TileHitCnv_p1::persToTrans(const TileHit_p1* persObj, TileHit* transObj, MsgStream &/*log*/) const
20{
21 size_t sz = persObj->m_energy.size();
22 if (sz != persObj->m_time.size())
23 throw std::runtime_error ("TileHit_p1 vector size mismatch");
24
25 *transObj = TileHit (Identifier(Identifier32(persObj->m_channelID)));
26 transObj->resize (sz);
27
28 for (size_t i = 0; i < sz; i++) {
29 transObj->setEnergy (persObj->m_energy[i], i);
30 transObj->setTime (persObj->m_time[i], i);
31 }
32}
33
34void
35TileHitCnv_p1::transToPers(const TileHit* transObj, TileHit_p1* persObj, MsgStream &/*log*/) const
36{
37 persObj->m_channelID = transObj->identify().get_identifier32().get_compact();
38
39 size_t sz = transObj->size();
40 persObj->m_energy.resize (sz);
41 persObj->m_time.resize (sz);
42 for (size_t i = 0; i < sz; i++) {
43 persObj->m_energy[i] = transObj->energy(i);
44 persObj->m_time[i] = transObj->time(i);
45 }
46}
static Double_t sz
value_type get_compact() const
Get the compact id.
Identifier32 get_identifier32() const
Get the 32-bit version Identifier, will be invalid if >32 bits needed.
virtual void persToTrans(const TileHit_p1 *persObj, TileHit *transObj, MsgStream &log) const override
virtual void transToPers(const TileHit *transObj, TileHit_p1 *persObj, MsgStream &log) const override
std::vector< float > m_time
Definition TileHit_p1.h:17
std::vector< float > m_energy
Definition TileHit_p1.h:16
unsigned int m_channelID
Definition TileHit_p1.h:15
void setTime(float t, int ind=0)
Set time of ind-th sub-hit in a hit.
float time(int ind=0) const
Return time of ind-th sub-hit.
void resize(int len)
Resize energy and time vectors in a hit.
void setEnergy(float e, int ind=0)
Set energy of ind-th sub-hit in a hit.
float energy(int ind=0) const
Return energy of ind-th sub-hit.
Identifier identify(void) const
Return logical ID of the pmt.
int size(void) const
Return length of energy/time vectors.