ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
LArCalorimeter
LArCnv
LArTPCnv
src
LArDigitContainerCnv_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
5
#include "
LArTPCnv/LArDigitContainerCnv_p1.h
"
6
#include "
LArRawEvent/LArDigitContainer.h
"
7
#include "Identifier/Identifier.h"
8
#include "
LArTPCnv/LArDigitContainer_p1.h
"
9
10
11
12
void
13
LArDigitContainerCnv_p1::persToTrans
(
const
LArDigitContainer_p1
* pers,
14
LArDigitContainer
* trans, MsgStream &log)
const
15
{
16
const
unsigned
nDigits=pers->
m_channelID
.size();
17
if
(nDigits != pers->
m_gain
.size() || nDigits != pers->
m_nSamples
.size()) {
18
log << MSG::ERROR <<
"LArDigitContainer_p1 is inconsistent! "
<< std::endl;
19
return
;
20
}
21
22
//LArDigit digit;
23
trans->
clear
();
24
trans->
reserve
(nDigits);
25
std::vector<unsigned short>::const_iterator sample_it=pers->
m_samples
.begin();
26
std::vector<unsigned short>::const_iterator sample_it_e;
27
28
for
(
unsigned
i=0;i<nDigits;i++) {
29
sample_it_e=sample_it+pers->
m_nSamples
[i];
30
std::vector<short> samples (sample_it,sample_it_e);
31
32
trans->
push_back
(
new
LArDigit
(
HWIdentifier
(
Identifier32
(pers->
m_channelID
[i])),
33
(
CaloGain::CaloGain
)pers->
m_gain
[i],
34
std::move(samples)));
35
36
sample_it = sample_it_e;
37
38
39
//std:: cout << "Working on channel "<< i << "(" << std::hex
40
// << pers->m_channelID[i] <<std::dec << ")" <<std::endl;
41
}
42
}
43
44
45
void
46
LArDigitContainerCnv_p1::transToPers
(
const
LArDigitContainer
* trans,
47
LArDigitContainer_p1
* pers, MsgStream &
/*log*/
)
const
48
{
49
50
unsigned
int
nDigits=trans->
size
();
51
pers->
m_channelID
.reserve(nDigits);
52
pers->
m_gain
.reserve(nDigits);
53
pers->
m_nSamples
.reserve(nDigits);
54
if
(nDigits)
55
pers->
m_samples
.reserve(
56
(*(trans->
begin
()))->nsamples()
57
* nDigits);
58
59
for
(
const
LArDigit
* transDigit : *trans) {
60
pers->
m_channelID
.push_back(transDigit->hardwareID().get_identifier32().get_compact());
61
pers->
m_gain
.push_back((
unsigned
char
)transDigit->gain());
62
pers->
m_nSamples
.push_back(transDigit->samples().size());
63
pers->
m_samples
.insert (pers->
m_samples
.end(),
64
transDigit->samples().begin(),
65
transDigit->samples().end());
66
}
67
}
68
LArDigitContainerCnv_p1.h
LArDigitContainer.h
LArDigitContainer_p1.h
DataVector::reserve
void reserve(size_type n)
Attempt to preallocate enough memory for a specified number of elements.
DataVector::push_back
value_type push_back(value_type pElem)
Add an element to the end of the collection.
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
DataVector::clear
void clear()
Erase all the elements in the collection.
HWIdentifier
Definition
HWIdentifier.h:13
Identifier32
Definition
Identifier32.h:28
LArDigitContainerCnv_p1::persToTrans
virtual void persToTrans(const LArDigitContainer_p1 *pers, LArDigitContainer *trans, MsgStream &log) const override
Definition
LArDigitContainerCnv_p1.cxx:13
LArDigitContainerCnv_p1::transToPers
virtual void transToPers(const LArDigitContainer *trans, LArDigitContainer_p1 *pers, MsgStream &log) const override
Definition
LArDigitContainerCnv_p1.cxx:46
LArDigitContainer_p1
Definition
LArDigitContainer_p1.h:12
LArDigitContainer_p1::m_samples
std::vector< unsigned short > m_samples
Definition
LArDigitContainer_p1.h:19
LArDigitContainer_p1::m_nSamples
std::vector< unsigned short > m_nSamples
Definition
LArDigitContainer_p1.h:18
LArDigitContainer_p1::m_channelID
std::vector< unsigned int > m_channelID
Definition
LArDigitContainer_p1.h:16
LArDigitContainer_p1::m_gain
std::vector< unsigned char > m_gain
Definition
LArDigitContainer_p1.h:17
LArDigitContainer
Container class for LArDigit.
Definition
LArDigitContainer.h:24
LArDigit
Liquid Argon digit base class.
Definition
LArDigit.h:25
CaloGain::CaloGain
CaloGain
Definition
CaloGain.h:11
Generated on
for ATLAS Offline Software by
1.17.0