ATLAS Offline Software
Loading...
Searching...
No Matches
LArRawChannelCnv_p1.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
8
9// LArRawChannelCnv_p1, used for T/P separation
10// author R.Seuster <seuster@cern.ch>
11
12void LArRawChannelCnv_p1::transToPers(const LArRawChannel* /*trans*/, LArRawChannel_p1* /*pers*/, MsgStream &/*log*/) const
13{
14 // No longer used
15}
16
17void LArRawChannelCnv_p1::persToTrans(const LArRawChannel_p1* pers, LArRawChannel* trans, MsgStream &/*log*/) const
18{
19 union {
20 int m_quality ;
21 uint16_t m_qualProv[2];
22 } qprov{};
23
24 // FIXME: persistent data is machine-dependent!
25 int q = pers->m_qualityandgain & 0xFFFF;
26 if (q==65535) {
27 qprov.m_quality = 0xA50000;
28 }
29 else {
30 qprov.m_quality = 0x20A50000 | q;
31 }
32
34 pers->m_energy,
35 pers->m_time,
36 qprov.m_qualProv[0], // quality
37 qprov.m_qualProv[1], // provenance
38 (CaloGain::CaloGain)((pers->m_qualityandgain>>16)&0xF)
39 );
40}
41
virtual void transToPers(const LArRawChannel *trans, LArRawChannel_p1 *pers, MsgStream &log) const override
virtual void persToTrans(const LArRawChannel_p1 *pers, LArRawChannel *trans, MsgStream &log) const override
persistent class for LArRawChannel, version p1.
unsigned int m_channelID
Liquid Argon ROD output object base class.