ATLAS Offline Software
LArCalorimeter
LArCOOLConditions
src
LArAutoCorrBlob.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
LArCOOLConditions/LArAutoCorrBlob.h
"
6
#include "
AthenaPoolUtilities/CondAttrListCollection.h
"
7
#include "CoralBase/Blob.h"
8
9
LArAutoCorrBlob::LArAutoCorrBlob
()
10
:m_nChannels(0),
11
m_nPoints(0)
12
{}
13
14
LArAutoCorrBlob::~LArAutoCorrBlob
()
15
{}
16
17
18
void
LArAutoCorrBlob::readBlob
(
const
CondAttrListCollection
* attrList, MsgStream&
msg
) {
19
m_nChannels
=0;
20
m_nPoints
=0;
21
m_pAutoCorr
.clear();
22
23
if
(!attrList)
return
;
24
25
CondAttrListCollection::const_iterator
gainIt=attrList->
begin
();
26
CondAttrListCollection::const_iterator
gainIt_e=attrList->
end
();
27
28
m_pAutoCorr
.resize(attrList->
size
());
29
msg
<<
MSG::DEBUG
<<
"Found data for "
<< attrList->
size
() <<
" gains."
<<
endmsg
;
30
31
int
blobSize=0;
32
33
for
(;gainIt!=gainIt_e;++gainIt) {
34
const
unsigned
gain
=gainIt->first;
35
if
(
gain
>=attrList->
size
() ||
gain
>2) {
36
msg
<< MSG::ERROR <<
"Found unexpected COOL-channel (=gain) number:"
<<
gain
<<
endmsg
;
37
return
;
//ERROR
38
}
39
const
coral::AttributeList
& attr=gainIt->second;
40
const
coral::Blob
& acBlob = attr[
"AutoCorrVec"
].data<
coral::Blob
>();
41
if
(blobSize==0) blobSize=acBlob.size();
42
if
(
m_nPoints
==0)
m_nPoints
=attr[
"nPoints"
].data<
unsigned
>();
43
44
//Sanity checks:
45
if
(blobSize!=acBlob.size()) {
46
msg
<< MSG::ERROR <<
"Unequal blob size ("
<< blobSize <<
"/"
47
<< acBlob.size() <<
")"
<<
endmsg
;
48
return
;
49
}
50
if
(
m_nPoints
!=attr[
"nPoints"
].data<unsigned>()) {
51
msg
<< MSG::ERROR <<
"Unequal number of samples ("
<<
m_nPoints
<<
"/"
52
<< attr[
"nPoints"
].data<
unsigned
>() <<
")"
<<
endmsg
;
53
return
;
54
}
55
56
m_pAutoCorr
[
gain
]=
static_cast<
const
float
*
>
(acBlob.startingAddress());
57
}
// end loop over COOL channels
58
59
60
if
(
m_nPoints
==0) {
61
msg
<< MSG::ERROR <<
"Number of points is zero!"
<<
endmsg
;
62
return
;
63
}
64
m_nChannels
=blobSize/(
sizeof
(
float
)*
m_nPoints
);
65
msg
<<
MSG::DEBUG
<<
"Found data for "
<<
m_nChannels
<<
endmsg
;
66
return
;
67
}
68
LArAutoCorrBlob::m_pAutoCorr
std::vector< const float * > m_pAutoCorr
Definition:
LArAutoCorrBlob.h:41
CondAttrListCollection::end
const_iterator end() const
Definition:
CondAttrListCollection.h:315
LArAutoCorrBlob::m_nChannels
unsigned m_nChannels
Definition:
LArAutoCorrBlob.h:37
CondAttrListCollection.h
This file defines the class for a collection of AttributeLists where each one is associated with a ch...
CaloCondBlobAlgs_fillNoiseFromASCII.gain
gain
Definition:
CaloCondBlobAlgs_fillNoiseFromASCII.py:110
CondAttrListCollection::begin
const_iterator begin() const
Access to Chan/AttributeList pairs via iterators.
Definition:
CondAttrListCollection.h:309
python.subdetectors.tile.Blob
Blob
Definition:
tile.py:17
python.PyKernel.AttributeList
AttributeList
Definition:
PyKernel.py:36
CondAttrListCollection
This class is a collection of AttributeLists where each one is associated with a channel number....
Definition:
CondAttrListCollection.h:52
LArAutoCorrBlob::LArAutoCorrBlob
LArAutoCorrBlob()
Definition:
LArAutoCorrBlob.cxx:9
endmsg
#define endmsg
Definition:
AnalysisConfig_Ntuple.cxx:63
LArAutoCorrBlob::readBlob
void readBlob(const CondAttrListCollection *attrList, MsgStream &msg)
Definition:
LArAutoCorrBlob.cxx:18
LArAutoCorrBlob.h
CondAttrListCollection::size
size_type size() const
number of Chan/AttributeList pairs
Definition:
CondAttrListCollection.h:322
CondAttrListCollection::const_iterator
ChanAttrListMap::const_iterator const_iterator
Definition:
CondAttrListCollection.h:63
DEBUG
#define DEBUG
Definition:
page_access.h:11
LArAutoCorrBlob::m_nPoints
unsigned m_nPoints
Definition:
LArAutoCorrBlob.h:38
LArAutoCorrBlob::~LArAutoCorrBlob
~LArAutoCorrBlob()
Definition:
LArAutoCorrBlob.cxx:14
python.AutoConfigFlags.msg
msg
Definition:
AutoConfigFlags.py:7
readCCLHist.float
float
Definition:
readCCLHist.py:83
Generated on Sun Dec 22 2024 21:13:12 for ATLAS Offline Software by
1.8.18