ATLAS Offline Software
Loading...
Searching...
No Matches
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
7#include "CoralBase/Blob.h"
8#include "GaudiKernel/MsgStream.h"
9
10
14
15void LArSingleFloatBlob::readBlob(const CondAttrListCollection* attrList, const char* attrName, MsgStream& msg) {
17
18 if (!attrList) return;
19
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
#define endmsg
This file defines the class for a collection of AttributeLists where each one is associated with a ch...
This class is a collection of AttributeLists where each one is associated with a channel number.
const_iterator end() const
const_iterator begin() const
Access to Chan/AttributeList pairs via iterators.
size_type size() const
number of Chan/AttributeList pairs
ChanAttrListMap::const_iterator const_iterator
void readBlob(const CondAttrListCollection *attrList, const char *attrName, MsgStream &msg)
std::vector< const float * > m_pValues
MsgStream & msg
Definition testRead.cxx:32