ATLAS Offline Software
Loading...
Searching...
No Matches
TileDigitsCnv_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// TileDigitsCnv_p1.cxx
8// Implementation file for class TileDigitsCnv_p1
9// Author: Alexander Solodkov <Sanya.Solodkov@cern.ch>
10// Date: June 2009
12
15
16
17void
18TileDigitsCnv_p1::persToTrans(const TileDigits_p1* persObj, TileDigits* transObj, MsgStream &/*log*/) const
19{
20 std::vector<float> digits;
21 digits.reserve(persObj->m_digits.size());
22 for (short d : persObj->m_digits) {
23 digits.push_back( d / 16. );
24 }
25
26 *transObj = TileDigits (HWIdentifier(Identifier32(persObj->m_channelID)),
27 std::move(digits));
28}
29
30
31void
32TileDigitsCnv_p1::transToPers(const TileDigits* transObj, TileDigits_p1* persObj, MsgStream &/*log*/) const
33{
34 persObj->m_channelID = transObj->adc_HWID().get_identifier32().get_compact();
35
36 persObj->m_digits.reserve(transObj->nsamples());
37 for (float d : transObj->samples()) {
38 short val = (short)(std::min(d,2047.F)*16.);
39 persObj->m_digits.push_back( val );
40 }
41}
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 TileDigits_p1 *persObj, TileDigits *transObj, MsgStream &log) const override
Method creating the transient representation TileDigits from its persistent representation TileDigits...
virtual void transToPers(const TileDigits *transObj, TileDigits_p1 *persObj, MsgStream &log) const override
Method creating the persistent representation TileDigits_p1 from its transient representation TileDig...
unsigned int m_channelID
std::vector< short > m_digits
int nsamples() const
Definition TileDigits.h:55
const std::vector< float > & samples() const
Definition TileDigits.h:58
HWIdentifier adc_HWID(void) const
Definition TileRawData.h:53