ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Calorimeter
CaloCnv
CaloTPCnv
src
CaloSamplingDataCnv_p1.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
CaloTPCnv/CaloSamplingDataCnv_p1.h
"
6
#include "
CaloTPCnv/CaloSamplingData_p1.h
"
7
#include "
CaloEvent/CaloSamplingData.h
"
8
9
#include <algorithm>
10
#include <cassert>
11
12
13
CaloSamplingDataCnv_p1::CaloSamplingDataCnv_p1
()
14
{
15
}
16
17
18
void
CaloSamplingDataCnv_p1::persToTrans
(
const
CaloSamplingData_p1
* pers,
19
CaloSamplingData
*
trans
/*, MsgStream &*/
)
const
20
{
21
trans
->m_varTypePattern=pers->
m_varTypePattern
;
22
if
(pers->
m_dataStore
.empty()) {
23
trans
->m_dataStore.clear();
24
return
;
25
}
26
27
size_t
nSamplings=
trans
->fastNsamp();
28
trans
->m_dataStore.resize (
trans
->index (pers->
m_dataStore
.size(), 0));
29
30
std::vector<std::vector<float> >
::const_iterator
it=pers->
m_dataStore
.begin();
31
std::vector<std::vector<float> >
::const_iterator
it_e=pers->
m_dataStore
.end();
32
CaloSamplingData::variable_store_type::iterator pos =
trans
->m_dataStore.begin();
33
for
(;it!=it_e;++it) {
34
size_t
nPersSamplings = it->size();
35
size_t
nCopySamplings = std::min (nSamplings, nPersSamplings);
36
std::copy(it->begin(),it->begin()+nCopySamplings,pos);
37
if
(nCopySamplings < nSamplings)
38
std::fill(pos+nCopySamplings, pos+nSamplings, 0);
39
pos += nSamplings;
40
}
41
assert (pos ==
trans
->m_dataStore.end());
42
}
43
44
45
void
CaloSamplingDataCnv_p1::transToPers
(
const
CaloSamplingData
*
trans
,
46
CaloSamplingData_p1
* pers
/*, MsgStream &*/
)
const
47
{
48
pers->
m_varTypePattern
=
trans
->m_varTypePattern;
49
if
(
trans
->m_dataStore.empty()) {
50
pers->
m_dataStore
.clear();
51
return
;
52
}
53
size_t
nsamp =
trans
->fastNsamp();
54
pers->
m_dataStore
.resize(
trans
->m_dataStore.size() / nsamp);
55
CaloSamplingData::variable_store_type::const_iterator it=
trans
->m_dataStore.begin();
56
CaloSamplingData::variable_store_type::const_iterator it_e=
trans
->m_dataStore.end();
57
unsigned
i=0;
58
for
(; it<it_e; it += nsamp) {
59
pers->
m_dataStore
[i].assign (it, it+nsamp);
60
++i;
61
}
62
}
CaloSamplingDataCnv_p1.h
CaloSamplingData.h
CaloSamplingData_p1.h
const_iterator
CaloSamplingDataCnv_p1::persToTrans
void persToTrans(const CaloSamplingData_p1 *, CaloSamplingData *) const
Definition
CaloSamplingDataCnv_p1.cxx:18
CaloSamplingDataCnv_p1::CaloSamplingDataCnv_p1
CaloSamplingDataCnv_p1()
Definition
CaloSamplingDataCnv_p1.cxx:13
CaloSamplingDataCnv_p1::transToPers
void transToPers(const CaloSamplingData *, CaloSamplingData_p1 *) const
Definition
CaloSamplingDataCnv_p1.cxx:45
CaloSamplingData_p1
Definition
CaloSamplingData_p1.h:11
CaloSamplingData_p1::m_dataStore
std::vector< std::vector< float > > m_dataStore
Definition
CaloSamplingData_p1.h:14
CaloSamplingData_p1::m_varTypePattern
unsigned int m_varTypePattern
Definition
CaloSamplingData_p1.h:13
CaloSamplingData
Simple data object to store all variables in calorimeter samplings.
Definition
CaloSamplingData.h:18
trans
TH1F * trans(TH1F *h, bool t=false)
Definition
comparitor.cxx:199
Generated on
for ATLAS Offline Software by
1.17.0