ATLAS Offline Software
Loading...
Searching...
No Matches
LArSingleFloatBlob Class Reference

#include <LArSingleFloatBlob.h>

Inherited by LArDAC2uAFlat, LArDAC2uASC, LArHVScaleCorrFlat, LArHVScaleCorrSC, LArMinBiasAverageSC, LArMinBiasSC, LArMphysOverMcalFlat, LArMphysOverMcalSC, LArNoiseSC, LArOFCweightSC, LArfSamplSC, LAruA2MeVFlat, and LAruA2MeVSC.

Collaboration diagram for LArSingleFloatBlob:

Public Member Functions

 LArSingleFloatBlob ()
void readBlob (const CondAttrListCollection *attrList, const char *attrName, MsgStream &msg)

Protected Member Functions

const float & getDataByHash (const IdentifierHash &hs, const unsigned gain) const

Protected Attributes

std::vector< const float * > m_pValues
unsigned m_nChannels

Detailed Description

Definition at line 15 of file LArSingleFloatBlob.h.

Constructor & Destructor Documentation

◆ LArSingleFloatBlob()

LArSingleFloatBlob::LArSingleFloatBlob ( )

Definition at line 11 of file LArSingleFloatBlob.cxx.

11 :
13 {}

Member Function Documentation

◆ getDataByHash()

const float & LArSingleFloatBlob::getDataByHash ( const IdentifierHash & hs,
const unsigned gain ) const
inlineprotected

◆ readBlob()

void LArSingleFloatBlob::readBlob ( const CondAttrListCollection * attrList,
const char * attrName,
MsgStream & msg )

Definition at line 15 of file LArSingleFloatBlob.cxx.

15 {
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}
#define endmsg
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
MsgStream & msg
Definition testRead.cxx:32

Member Data Documentation

◆ m_nChannels

unsigned LArSingleFloatBlob::m_nChannels
protected

Definition at line 30 of file LArSingleFloatBlob.h.

◆ m_pValues

std::vector<const float*> LArSingleFloatBlob::m_pValues
protected

Definition at line 29 of file LArSingleFloatBlob.h.


The documentation for this class was generated from the following files: