ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
LArCalorimeter
LArCnv
LArCondTPCnv
src
LArDSPThresholdsSubsetCnv_p1.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
LArCondTPCnv/LArDSPThresholdsSubsetCnv_p1.h
"
6
7
void
8
LArDSPThresholdsSubsetCnv_p1::persToTrans
(
const
DSPThresholdsPersType
* persObj,
9
DSPThresholdsTransType
* transObj,
10
MsgStream &
/*log*/
)
const
11
{
12
transObj->
initialize
(persObj->
m_subset
.
m_febIds
, persObj->
m_subset
.
m_gain
);
13
14
unsigned
int
nfebids = persObj->
m_subset
.
m_febIds
.size();
15
unsigned
index
=0;
16
const
unsigned
int
nChannelsPerFeb = persObj->
m_subset
.
subsetSize
();
17
auto
subsetIt = transObj->
subsetBegin
();
18
for
(
unsigned
int
i = 0; i < nfebids; ++i, ++subsetIt){
19
// Loop over channels in feb
20
for
(
unsigned
int
j = 0; j < nChannelsPerFeb; ++j){
21
subsetIt->second[j].set(persObj->
m_tQThr
[
index
],persObj->
m_samplesThr
[
index
],persObj->
m_trigSumThr
[
index
]);
22
++
index
;
23
}
24
}
25
26
unsigned
int
ncorrs = persObj->
m_subset
.
m_corrChannels
.size();
27
DSPThresholdsTransType::CorrectionVec
corrs;
28
corrs.resize(ncorrs);
29
30
// Loop over corrections
31
for
(
unsigned
int
i = 0; i < ncorrs; ++i){
32
corrs[i].first = persObj->
m_subset
.
m_corrChannels
[i];
33
corrs[i].second.set(persObj->
m_tQThr
[
index
],persObj->
m_samplesThr
[
index
],persObj->
m_trigSumThr
[
index
]);
34
++
index
;
35
}
36
transObj->
insertCorrections
(std::move (corrs));
37
38
// Copy the rest
39
transObj->
setChannel
(persObj->
m_subset
.
m_channel
);
40
transObj->
setGroupingType
(persObj->
m_subset
.
m_groupingType
);
41
42
return
;
43
}
44
45
46
47
48
49
void
50
LArDSPThresholdsSubsetCnv_p1::transToPers
(
const
DSPThresholdsTransType
* transObj,
51
DSPThresholdsPersType
* persObj,
52
MsgStream &log)
const
53
{
54
// Get the number of channels, corrections and the size of pedestal and pedestalrms
55
unsigned
int
ncorrs = transObj->
correctionVecSize
();
56
unsigned
int
nsubsetsNotEmpty = 0;
57
const
unsigned
int
nChannelsPerFeb = transObj->
channelVectorSize
();
58
const
auto
subsetEnd = transObj->
subsetEnd
();
59
for
(
auto
subsetIt = transObj->
subsetBegin
();
60
subsetIt != subsetEnd;
61
++subsetIt)
62
{
63
unsigned
int
nfebChans = subsetIt->second.size();
64
if
(nfebChans != 0 && nfebChans != nChannelsPerFeb) {
65
log << MSG::ERROR
66
<<
"LArDSPThresholdsSubsetCnv_p1::transToPers - found incorrect number of channels per feb: "
<< nfebChans
67
<<
endmsg
;
68
return
;
69
}
70
if
(nfebChans) ++nsubsetsNotEmpty;
// count number of non-empty subsets
71
}
72
73
// Reserve space in vectors
74
persObj->
m_subset
.
m_febIds
.reserve(nsubsetsNotEmpty);
75
persObj->
m_subset
.
m_corrChannels
.reserve(ncorrs);
76
persObj->
m_tQThr
.reserve(ncorrs+nsubsetsNotEmpty*nChannelsPerFeb);
77
persObj->
m_samplesThr
.reserve(ncorrs+nsubsetsNotEmpty*nChannelsPerFeb);
78
persObj->
m_trigSumThr
.reserve(ncorrs+nsubsetsNotEmpty*nChannelsPerFeb);
79
80
//Copy subsets
81
for
(
auto
subsetIt = transObj->
subsetBegin
();
82
subsetIt != subsetEnd;
83
++subsetIt)
84
{
85
unsigned
int
nfebChans = subsetIt->second.size();
86
if
(nfebChans==0)
continue
;
87
unsigned
int
febid = subsetIt->first;
88
persObj->
m_subset
.
m_febIds
.push_back(febid);
89
for
(
unsigned
int
j=0; j<nfebChans;++j) {
//Loop over channels in FEB
90
persObj->
m_tQThr
.push_back(subsetIt->second[j].tQThr());
91
persObj->
m_samplesThr
.push_back(subsetIt->second[j].samplesThr());
92
persObj->
m_trigSumThr
.push_back(subsetIt->second[j].trigSumThr());
93
}
94
}
95
96
// Copy corrections
97
const
auto
corrEnd = transObj->
correctionVecEnd
();
98
for
(
auto
corrIt = transObj->
correctionVecBegin
();
99
corrIt != corrEnd;
100
++corrIt)
101
{
102
persObj->
m_subset
.
m_corrChannels
.push_back(corrIt->first);
103
persObj->
m_tQThr
.push_back(corrIt->second.tQThr());
104
persObj->
m_samplesThr
.push_back(corrIt->second.samplesThr());
105
persObj->
m_trigSumThr
.push_back(corrIt->second.trigSumThr());
106
}
107
108
// Copy the rest
109
persObj->
m_subset
.
m_gain
= transObj->
gain
();
110
persObj->
m_subset
.
m_channel
= transObj->
channel
();
111
persObj->
m_subset
.
m_groupingType
= transObj->
groupingType
();
112
}
endmsg
#define endmsg
Definition
AnalysisConfig_Ntuple.cxx:54
LArDSPThresholdsSubsetCnv_p1.h
DSPThresholdsTransType
LArConditionsSubset< LArDSPThresholdsP > DSPThresholdsTransType
Definition
LArDSPThresholdsSubsetCnv_p1.h:16
DSPThresholdsPersType
LArDSPThresholdsSubset_p1 DSPThresholdsPersType
Definition
LArDSPThresholdsSubsetCnv_p1.h:17
LArConditionsSubset_p1::m_febIds
std::vector< unsigned int > m_febIds
Definition
LArConditionsSubset_p1.h:75
LArConditionsSubset_p1::m_gain
unsigned int m_gain
Definition
LArConditionsSubset_p1.h:78
LArConditionsSubset_p1::m_corrChannels
std::vector< unsigned int > m_corrChannels
Definition
LArConditionsSubset_p1.h:76
LArConditionsSubset_p1::subsetSize
unsigned int subsetSize() const
Definition
LArConditionsSubset_p1.h:82
LArConditionsSubset_p1::m_channel
unsigned int m_channel
Definition
LArConditionsSubset_p1.h:79
LArConditionsSubset_p1::m_groupingType
unsigned int m_groupingType
Definition
LArConditionsSubset_p1.h:80
LArConditionsSubset::initialize
void initialize(const std::vector< FebId > &ids, unsigned int gain)
Initialize with set of FEB ids.
Definition
LArConditionsSubset.h:529
LArConditionsSubset::subsetEnd
ConstSubsetIt subsetEnd() const
Definition
LArConditionsSubset.h:420
LArConditionsSubset::channelVectorSize
unsigned channelVectorSize() const
Definition
LArConditionsSubset.h:608
LArConditionsSubset::correctionVecBegin
ConstCorrectionVecIt correctionVecBegin() const
Iterators over channel set.
Definition
LArConditionsSubset.h:465
LArConditionsSubset::groupingType
unsigned int groupingType() const
Type of grouping - defined in LArConditionsContainerBase.h.
Definition
LArConditionsSubset.h:507
LArConditionsSubset::correctionVecEnd
ConstCorrectionVecIt correctionVecEnd() const
Definition
LArConditionsSubset.h:472
LArConditionsSubset::setGroupingType
void setGroupingType(unsigned int type)
set the type of grouping - defined in LArConditionsContainerBase.h
Definition
LArConditionsSubset.h:575
LArConditionsSubset::subsetBegin
ConstSubsetIt subsetBegin() const
Iterators over subset.
Definition
LArConditionsSubset.h:412
LArConditionsSubset::gain
unsigned int gain() const
Access to gain.
Definition
LArConditionsSubset.h:490
LArConditionsSubset::correctionVecSize
size_type correctionVecSize() const
Size of channel set.
Definition
LArConditionsSubset.h:481
LArConditionsSubset< LArDSPThresholdsP >::CorrectionVec
std::vector< CorrectionPair > CorrectionVec
Definition
LArConditionsSubset.h:144
LArConditionsSubset::channel
unsigned int channel() const
Access to the COOL channel number.
Definition
LArConditionsSubset.h:498
LArConditionsSubset::insertCorrections
void insertCorrections(CorrectionVec &&corrs)
Insert a group of corrections.
Definition
LArConditionsSubset.h:593
LArConditionsSubset::setChannel
void setChannel(unsigned int channel)
set the COOL channel number
Definition
LArConditionsSubset.h:567
LArDSPThresholdsSubsetCnv_p1::transToPers
virtual void transToPers(const DSPThresholdsTransType *transObj, DSPThresholdsPersType *persObj, MsgStream &log) const override
Definition
LArDSPThresholdsSubsetCnv_p1.cxx:50
LArDSPThresholdsSubsetCnv_p1::persToTrans
virtual void persToTrans(const DSPThresholdsPersType *persObj, DSPThresholdsTransType *transObj, MsgStream &log) const override
Definition
LArDSPThresholdsSubsetCnv_p1.cxx:8
LArDSPThresholdsSubset_p1::m_samplesThr
std::vector< float > m_samplesThr
Definition
LArDSPThresholdsSubset_p1.h:36
LArDSPThresholdsSubset_p1::m_trigSumThr
std::vector< float > m_trigSumThr
Definition
LArDSPThresholdsSubset_p1.h:37
LArDSPThresholdsSubset_p1::m_subset
LArConditionsSubset_p1 m_subset
Definition
LArDSPThresholdsSubset_p1.h:34
LArDSPThresholdsSubset_p1::m_tQThr
std::vector< float > m_tQThr
Definition
LArDSPThresholdsSubset_p1.h:35
index
Definition
index.py:1
Generated on
for ATLAS Offline Software by
1.17.0