ATLAS Offline Software
LArCalorimeter
LArCOOLConditions
src
LArSingleFloatBlob.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/LArSingleFloatBlob.h
"
6
#include "
AthenaPoolUtilities/CondAttrListCollection.h
"
7
#include "CoralBase/Blob.h"
8
#include "GaudiKernel/MsgStream.h"
9
10
11
LArSingleFloatBlob::LArSingleFloatBlob
():
12
m_nChannels(0)
13
{}
14
15
void
LArSingleFloatBlob::readBlob
(
const
CondAttrListCollection
* attrList,
const
char
*
attrName
, MsgStream&
msg
) {
16
m_nChannels
=0;
17
18
if
(!attrList)
return
;
19
20
CondAttrListCollection::const_iterator
gainIt=attrList->
begin
();
21
CondAttrListCollection::const_iterator
gainIt_e=attrList->
end
();
22
23
m_pValues
.resize(attrList->
size
());
24
msg
<<
MSG::DEBUG
<<
"Found data for "
<< attrList->
size
() <<
" gains."
<<
endmsg
;
25
26
int
blobSize=0;
//FIXME Force size to hash-max??? m_onlineHelper->channelHashMax()
27
28
for
(;gainIt!=gainIt_e;++gainIt) {
29
unsigned
gain
=gainIt->first;
30
//Special case: Single-gain constant in channel 1
31
if
(
gain
==1 && attrList->
size
()==1)
gain
=0;
32
33
if
(
gain
>=attrList->
size
() ||
gain
>2) {
34
msg
<< MSG::ERROR <<
"Found unexpected COOL-channel (=gain) number:"
<<
gain
<<
endmsg
;
35
return
;
//ERROR
36
}
37
38
const
coral::AttributeList
& attr=gainIt->second;
39
const
coral::Blob
& myBlob = attr[
attrName
].data<
coral::Blob
>();
40
m_pValues
[
gain
]=
static_cast<
const
float
*
>
(myBlob.startingAddress());
41
if
(blobSize==0) {
42
blobSize=myBlob.size();
43
}
44
else
{
45
if
(blobSize!=myBlob.size())
46
msg
<< MSG::ERROR <<
"Unequal blob size ("
<< blobSize <<
"/"
<< myBlob.size() <<
")"
<<
endmsg
;
47
}
48
}
// end loop over COOL channels
49
50
m_nChannels
=blobSize/
sizeof
(
float
);
51
msg
<<
MSG::DEBUG
<<
"Found data for "
<<
m_nChannels
<<
" Channels"
<<
endmsg
;
52
return
;
53
}
54
CondAttrListCollection::end
const_iterator end() const
Definition:
CondAttrListCollection.h:315
LArSingleFloatBlob::readBlob
void readBlob(const CondAttrListCollection *attrList, const char *attrName, MsgStream &msg)
Definition:
LArSingleFloatBlob.cxx:15
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
LArSingleFloatBlob::LArSingleFloatBlob
LArSingleFloatBlob()
Definition:
LArSingleFloatBlob.cxx:11
LArSingleFloatBlob::m_nChannels
unsigned m_nChannels
Definition:
LArSingleFloatBlob.h:30
endmsg
#define endmsg
Definition:
AnalysisConfig_Ntuple.cxx:63
LArSingleFloatBlob::m_pValues
std::vector< const float * > m_pValues
Definition:
LArSingleFloatBlob.h:29
CondAttrListCollection::size
size_type size() const
number of Chan/AttributeList pairs
Definition:
CondAttrListCollection.h:322
LArSingleFloatBlob.h
python.PoolAttributeHelper.attrName
attrName
Definition:
PoolAttributeHelper.py:100
CondAttrListCollection::const_iterator
ChanAttrListMap::const_iterator const_iterator
Definition:
CondAttrListCollection.h:63
DEBUG
#define DEBUG
Definition:
page_access.h:11
python.AutoConfigFlags.msg
msg
Definition:
AutoConfigFlags.py:7
readCCLHist.float
float
Definition:
readCCLHist.py:83
Generated on Thu Nov 7 2024 21:20:03 for ATLAS Offline Software by
1.8.18