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

Class for storing a number of floats (Flt) and functions on those. More...

#include <CaloCondBlobFlt.h>

Inheritance diagram for CaloCondBlobFlt:
Collaboration diagram for CaloCondBlobFlt:

Public Types

typedef std::vector< std::vector< float > > DefType
 Object to hold default data used for initialization.

Public Member Functions

virtual ~CaloCondBlobFlt ()
 Dtor.
virtual uint16_t getType () const
 Returns CaloCondType::FLT.
float getCalib (unsigned int channel, unsigned int adc, float x, bool invert=false) const
 Returns the calibrated energy for a given channel/gain and input energy.
float getData (const unsigned int channel, const unsigned int adc, const unsigned int idx) const
 Returns a single T belonging to a channel/gain.
void init (const DefType &def, uint32_t nChans, uint16_t objVers, const std::string &author="", const std::string &comment="", uint64_t timeStamp=0)
 Initializing function.
void setData (unsigned int channel, unsigned int adc, unsigned int idx, float data)
 Sets a single T belonging to a channel/gain.
virtual void dump () const
 Prints out the content of the blob to std::out.
virtual void dump (std::ostream &stm) const
 Prints the BLOB header summary information.
const void * getAddress (unsigned int iEle) const
 Returns start address of iEle-th basic unit.
void * getAddress (unsigned int iEle)
long getBlobSize () const
 Returns the BLOB size.
uint16_t getObjType () const
 Returns the BLOB object type.
uint16_t getObjVersion () const
 Returns the BLOB object version.
uint32_t getObjSizeUint32 () const
 Returns the size of a data object in units of uint32_t.
uint32_t getObjSizeByte () const
 Returns the size of a data object in units of bytes.
uint32_t getNObjs () const
 Returns the number of data objects stored int the BLOB.
uint32_t getNChans () const
 Returns the number of channels stored in the BLOB.
uint32_t getNGains () const
 Returns the number of gains stored for each channel.
uint32_t getCommentSizeUint32 () const
 Returns the space occupied by the comment fields in units of uint32_t.
uint32_t getCommentSizeChar () const
 Returns the space occupied by the comment fields in units of chars.
unsigned int getHdrSize () const
 Returns the size of the header in units of uint32_t.
std::string getAuthor () const
 Returns the comment author.
std::string getComment () const
 Returns the actual comment.
uint64_t getTimeStamp () const
 Returns the unix timestamp of the comment (seconds since 1.1.1970)
std::string getDate () const
 Returns the date of the comment as string (derived from timestamp)
std::string getFullComment () const
 Returns a formated string build from all comment fields.

Static Public Member Functions

static CaloCondBlobFltgetInstance (coral::Blob &blob)
 Returns a pointer to a non-const CaloCondBlobFlt.
static const CaloCondBlobFltgetInstance (const coral::Blob &blob)
 Returns a pointer to a const CaloCondBlobFlt.

Protected Member Functions

 CaloCondBlobFlt (const coral::Blob &blob)
 Ctor.
 CaloCondBlobFlt (coral::Blob &blob)
 Ctor.
const float * getAddress (const unsigned int channel, const unsigned int adc) const
 Returns a pointer to the first value for the specified channel/gain.
uint32_t createBlob (uint16_t objType, uint16_t objVersion, uint32_t objSizeUint32, uint32_t nObjs, uint32_t nChans, uint16_t nGains, const std::string &author="", const std::string &comment="", uint64_t timeStamp=0)
 (re-)creation of the referenced BLOB object.
void dumpHeader (std::ostream &stm) const
 Prints the BLOB header summary information.

Protected Attributes

const void * m_pDataStart

Private Member Functions

const uint32_t * getBlobStart () const
 Returns the BLOB start address as uint32_t pointer.
uint32_t * getBlobStart ()
 Returns the BLOB start address as uint32_t pointer.

Static Private Member Functions

static uint32_t packGainAndNchans (const uint32_t gain, const uint32_t nChans)
static uint32_t unpacknGains (const uint32_t gainAndnChans)
static uint32_t unpacknChans (const uint32_t gainAndnChans)

Private Attributes

coral::Blob * m_blob_nc
 Non-const reference to the BLOB.
const coral::Blob * m_blob
 Const reference to the BLOB (always there)
bool m_isBlobOwner
 Do I own the BLOB?
unsigned m_sizeOfObj
 Chache of some frequently-used numbers.
unsigned m_nChans
unsigned m_nGains

Detailed Description

Class for storing a number of floats (Flt) and functions on those.

Author
Nils Gollub nils..nosp@m.goll.nosp@m.ub@ce.nosp@m.rn.c.nosp@m.h

This class implements the infrastructure to store a (variable) number of floats for each channel or ADC. The stored floats can be used to define a function of one parameter. Different functional forms can be implemented and differentiated by the objVersion header variable (this allows for e.g. schema evolution). The functions are evaluated by calling the getCalib() function.

Definition at line 28 of file CaloCondBlobFlt.h.

Member Typedef Documentation

◆ DefType

typedef std::vector<std::vector<float> > CaloCondBlobDat< float >::DefType
inherited

Object to hold default data used for initialization.

The length of the outer and inner vector determines respectively the number of gains and values per gain to be stored. The indexing is thus DefType[iGain][iValue].

Definition at line 37 of file CaloCondBlobDat.h.

Constructor & Destructor Documentation

◆ ~CaloCondBlobFlt()

virtual CaloCondBlobFlt::~CaloCondBlobFlt ( )
inlinevirtual

Dtor.

Definition at line 33 of file CaloCondBlobFlt.h.

33{}

◆ CaloCondBlobFlt() [1/2]

CaloCondBlobFlt::CaloCondBlobFlt ( const coral::Blob & blob)
protected

Ctor.

Definition at line 26 of file CaloCondBlobFlt.cxx.

28{
29 //=== check for correct blob type
30 if(getBlobSize()){
32 throw CaloCond::TypeConflict("CaloCondBlobFlt::Ctor",getObjType(),CaloCondBlobFlt::getType());
33 }
34 }
35}
CaloCondBlobDat(const coral::Blob &blob)
virtual uint16_t getType() const
Returns CaloCondType::FLT.

◆ CaloCondBlobFlt() [2/2]

CaloCondBlobFlt::CaloCondBlobFlt ( coral::Blob & blob)
protected

Ctor.

Definition at line 39 of file CaloCondBlobFlt.cxx.

41{
42 //=== check for correct blob type
43 if(getBlobSize()){
45 throw CaloCond::TypeConflict("CaloCondBlobFlt::Ctor",getObjType(),CaloCondBlobFlt::getType());
46 }
47 }
48}

Member Function Documentation

◆ createBlob()

uint32_t CaloCondBlobBase::createBlob ( uint16_t objType,
uint16_t objVersion,
uint32_t objSizeUint32,
uint32_t nObjs,
uint32_t nChans,
uint16_t nGains,
const std::string & author = "",
const std::string & comment = "",
uint64_t timeStamp = 0 )
protectedinherited

(re-)creation of the referenced BLOB object.

Parameters
objTypeObject type
objVersionObject version
objSizeUint32Size of a data object (in uint32_t)
nObjsTotal number of data objects
nChansnumber of stored channels
nGainsnumber of stored gains
authorcomment author
commentactual comment
timeStampunix time stamp (if 0, current time is used)

Definition at line 129 of file CaloCondBlobBase.cxx.

93{
94
95 //=== blob data length including header in bytes
97
98 //=== calculate comment length, including two ASCII NULLs to end text fields
100 if(!author.empty() || !comment.empty() || timeStamp){
101 commentSizeChar += author.size()+comment.size()+sizeof(uint64_t) + 2;
102 //=== force comment length to end on 4 byte boundary
104 (sizeof(uint32_t)-(commentSizeChar % sizeof(uint32_t))) : 0;
105 }
106
107 //=== create blob
109 m_blob_nc->resize(blobSizeInBytes);
110
111 //=== fill header
112 reinterpret_cast<uint16_t*>(getBlobStart())[0] = objType;
113 reinterpret_cast<uint16_t*>(getBlobStart())[1] = objVersion;
116 getBlobStart()[2] = nObjs;
121
122 //==== fill comment fields
123 if(commentSizeChar){
124 if(!timeStamp) timeStamp = ::time(nullptr);
125 uint8_t* pChar = reinterpret_cast<uint8_t*> (getBlobStart()+dataSizeByte/sizeof(uint32_t));
128 for(; iStr!=author.end(); ++iStr){ *pChar = *iStr; ++pChar; }
129 *pChar = 0;
130 for(iStr=comment.begin(); iStr!=comment.end(); ++iStr){ *(++pChar) = *iStr; }
131 *(++pChar) = 0;
132 }
133
134 m_pDataStart=static_cast<const void*>(getBlobStart()+getHdrSize());
135 return (blobSizeInBytes/sizeof(uint32_t));
136}
const uint32_t * getBlobStart() const
static uint32_t packGainAndNchans(const uint32_t gain, const uint32_t nChans)
unsigned int getHdrSize() const
Generic template class for storing a number of "T"s for each channel/gain.
void set_unaligned< uint64_t >(uint8_t *ATH_RESTRICT &p, uint64_t val)

◆ dump() [1/2]

virtual void CaloCondBlobBase::dump ( std::ostream & stm) const
inlinevirtualinherited

Prints the BLOB header summary information.

Parameters
stmThe output stream to use

Reimplemented in CaloCondBlobDat< T >.

Definition at line 59 of file CaloCondBlobBase.h.

59{dumpHeader(stm);}
void dumpHeader(std::ostream &stm) const
Prints the BLOB header summary information.

◆ dump() [2/2]

virtual void CaloCondBlobDat< float >::dump ( ) const
inlinevirtualinherited

Prints out the content of the blob to std::out.

Reimplemented from CaloCondBlobBase.

Definition at line 89 of file CaloCondBlobDat.h.

89{ dump(std::cout); }
virtual void dump() const

◆ dumpHeader()

void CaloCondBlobBase::dumpHeader ( std::ostream & stm) const
protectedinherited

Prints the BLOB header summary information.

Parameters
stmoutput stream to use

Definition at line 141 of file CaloCondBlobBase.cxx.

230{
231 stm << "This is a " << CaloCondType::getClassName(getObjType()) << std::endl;
232 stm << "ObjType : " << getObjType() << std::endl;
233 stm << "ObjVersion : " << getObjVersion() << std::endl;
234 stm << "ObjSize [bytes]: " << getObjSizeByte() << std::endl;
235 stm << "NObjs : " << getNObjs() << std::endl;
236 stm << "NChannels : " << getNChans() << std::endl;
237 stm << "NGains : " << getNGains() << std::endl;
239 stm << "=== No comment available ===" << std::endl;
240 }
241 else{
242 stm << "Author : " << getAuthor() << std::endl;
243 stm << "Date : " << getDate() << " ("<< getTimeStamp() << ")" << std::endl;
244 stm << "Comment: : " << getComment() << std::endl;
245 }
246}
std::string getDate() const
uint64_t getTimeStamp() const
std::string getAuthor() const
uint32_t getCommentSizeUint32() const
std::string getComment() const
uint32_t getObjSizeByte() const
uint16_t getObjVersion() const
static std::string getClassName(CaloCondType::TYPE type)
Returns the class name.

◆ getAddress() [1/3]

const float * CaloCondBlobDat< float >::getAddress ( const unsigned int channel,
const unsigned int adc ) const
protectedinherited

Returns a pointer to the first value for the specified channel/gain.

Parameters
channelThe channel number; if >= getNChans() it is reset to 0 without warning (default policy)
adcThe gain index; if >= getNGains() it is reset to 0 without warning (default policy)

Definition at line 104 of file CaloCondBlobDat.h.

170{
171 //=== check for out of bounds
172 if(channel >= getNChans()){
173 throw CaloCond::IndexOutOfRange("CaloCondBlobDat::getAddress(channel)",channel,getNChans());
174 }
175 if(adc>=getNGains()){
176 throw CaloCond::IndexOutOfRange("CaloCondBlobDat::getAddress(gain)",adc,getNGains());
177 }
178
179 const unsigned int idx = channel*getNGains() + adc;
180 return static_cast<const T*>(CaloCondBlobBase::getAddress(idx));
181}
const void * getAddress(unsigned int iEle) const
Returns start address of iEle-th basic unit.

◆ getAddress() [2/3]

void * CaloCondBlobBase::getAddress ( unsigned int iEle)
inlineinherited

Definition at line 109 of file CaloCondBlobBase.h.

273{
274 if(iEle>=getNObjs()){
275 throw CaloCond::IndexOutOfRange("CaloCondBlobBase::getAddress", iEle, getNObjs());
276 }
277 return static_cast<void*>
279}
uint32_t getObjSizeUint32() const

◆ getAddress() [3/3]

const void * CaloCondBlobBase::getAddress ( unsigned int iEle) const
inlineinherited

Returns start address of iEle-th basic unit.

Parameters
iElesequential basic unit number

Definition at line 108 of file CaloCondBlobBase.h.

261{
262 if(iEle>=getNObjs()){
263 throw CaloCond::IndexOutOfRange("CaloCondBlobBase::getAddress", iEle, getNObjs());
264 }
265 return static_cast<const void*>
267}

◆ getAuthor()

std::string CaloCondBlobBase::getAuthor ( ) const
inherited

Returns the comment author.

Definition at line 92 of file CaloCondBlobBase.cxx.

177{
178 if(!getCommentSizeUint32()) return std::string("");
179 const char* iBeg =
180 reinterpret_cast<const char*>(getBlobStart()+getHdrSize() +
182 sizeof(uint64_t)/sizeof(uint32_t));
183 return std::string(iBeg);
184}

◆ getBlobSize()

long CaloCondBlobBase::getBlobSize ( ) const
inlineinherited

Returns the BLOB size.

Definition at line 66 of file CaloCondBlobBase.h.

66{return m_blob->size(); }
const coral::Blob * m_blob

◆ getBlobStart() [1/2]

uint32_t * CaloCondBlobBase::getBlobStart ( )
inlineprivateinherited

Returns the BLOB start address as uint32_t pointer.

Definition at line 154 of file CaloCondBlobBase.h.

187{
188 return static_cast<uint32_t*>(m_blob_nc->startingAddress());
189}

◆ getBlobStart() [2/2]

const uint32_t * CaloCondBlobBase::getBlobStart ( ) const
inlineprivateinherited

Returns the BLOB start address as uint32_t pointer.

Definition at line 152 of file CaloCondBlobBase.h.

179{
180 return static_cast<const uint32_t*>(m_blob->startingAddress());
181}

◆ getCalib()

float CaloCondBlobFlt::getCalib ( unsigned int channel,
unsigned int adc,
float x,
bool invert = false ) const

Returns the calibrated energy for a given channel/gain and input energy.

Parameters
channelThe channel number
adcThe gain index
xParameter of the (calibration) function
invertIf true, the calibration is undone

Definition at line 53 of file CaloCondBlobFlt.cxx.

54{
55 //=== interpretation of data depends on the objVersion
56 if(getObjVersion()==1){
57 //=== Total noise parameterized as
58 //=== Sigma**2 = a**2 + b**2 * Lumi
59 float a = getData(channel,adc,0);
60 float b = getData(channel,adc,1);
61 if(invert){ x = (x*x - a*a) / (b*b) ;}
62 else { x = std::sqrt( a*a + b*b*x );}
63 }
64 else if (getObjVersion()==2) {
65 //== parameterization for pedestal = a + b*Lumi
66 float a = getData(channel,adc,0);
67 float b = getData(channel,adc,1);
68 if(invert){ x = (x - a) / (b) ;}
69 else { x = a+b*x;}
70 }
71 else{
72 throw CaloCond::VersionConflict("CaloCondBlobFlt::getCalib",getObjVersion());
73 }
74
75 return x;
76}
static Double_t a
#define x
float getData(const unsigned int channel, const unsigned int adc, const unsigned int idx) const

◆ getComment()

std::string CaloCondBlobBase::getComment ( ) const
inherited

Returns the actual comment.

Definition at line 94 of file CaloCondBlobBase.cxx.

191{
192 if(!getCommentSizeUint32()) return std::string("");
193 const char* iBeg =
194 reinterpret_cast<const char*>(getBlobStart()+getHdrSize() +
196 sizeof(uint64_t)/sizeof(uint32_t));
197 const char* iEnd = iBeg + getCommentSizeChar();
198 iBeg = std::find(iBeg,iEnd,0);
199 return std::string(++iBeg);
200}
uint32_t getCommentSizeChar() const

◆ getCommentSizeChar()

uint32_t CaloCondBlobBase::getCommentSizeChar ( ) const
inlineinherited

Returns the space occupied by the comment fields in units of chars.

Definition at line 84 of file CaloCondBlobBase.h.

84{return getCommentSizeUint32()*sizeof(uint32_t);}

◆ getCommentSizeUint32()

uint32_t CaloCondBlobBase::getCommentSizeUint32 ( ) const
inlineinherited

Returns the space occupied by the comment fields in units of uint32_t.

Definition at line 82 of file CaloCondBlobBase.h.

251{
252 if(uint64_t(m_blob->size())<getHdrSize()*sizeof(uint32_t))
253 throw CaloCond::InvalidBlob("CaloCondBlobBase::getCommentSizeUint32");
254 return static_cast<const uint32_t*>(m_blob->startingAddress())[4];
255}

◆ getData()

float CaloCondBlobDat< float >::getData ( const unsigned int channel,
const unsigned int adc,
const unsigned int idx ) const
inherited

Returns a single T belonging to a channel/gain.

Parameters
channelThe channel number
adcThe gain index
idxThe index of the requested value

Definition at line 49 of file CaloCondBlobDat.h.

135{
137 else{throw CaloCond::IndexOutOfRange("CaloCondBlobDat::getData",idx,getObjVersion());}
138}
const float * getAddress(const unsigned int channel, const unsigned int adc) const

◆ getDate()

std::string CaloCondBlobBase::getDate ( ) const
inherited

Returns the date of the comment as string (derived from timestamp)

Definition at line 98 of file CaloCondBlobBase.cxx.

206{
207 if(!getCommentSizeUint32()) return std::string("");
209 char buf[26];
210 char* iBeg = ::ctime_r(&timeStamp, buf);
211 char* iEnd = iBeg;
212 while(*iEnd!='\n'){++iEnd;}
213 return std::string(iBeg,iEnd-iBeg);
214}

◆ getFullComment()

std::string CaloCondBlobBase::getFullComment ( ) const
inherited

Returns a formated string build from all comment fields.

Definition at line 100 of file CaloCondBlobBase.cxx.

220{
221 if(!getCommentSizeUint32()) return std::string("");
222 return getAuthor()+" ("+getDate()+"): "+getComment();
223}

◆ getHdrSize()

unsigned int CaloCondBlobBase::getHdrSize ( ) const
inlineinherited

Returns the size of the header in units of uint32_t.

Definition at line 86 of file CaloCondBlobBase.h.

86{return 5;}

◆ getInstance() [1/2]

const CaloCondBlobFlt * CaloCondBlobFlt::getInstance ( const coral::Blob & blob)
static

Returns a pointer to a const CaloCondBlobFlt.

Definition at line 19 of file CaloCondBlobFlt.cxx.

20{
21 return (new CaloCondBlobFlt(blob));
22}
CaloCondBlobFlt(const coral::Blob &blob)
Ctor.

◆ getInstance() [2/2]

CaloCondBlobFlt * CaloCondBlobFlt::getInstance ( coral::Blob & blob)
static

Returns a pointer to a non-const CaloCondBlobFlt.

Definition at line 12 of file CaloCondBlobFlt.cxx.

13{
14 return (new CaloCondBlobFlt(blob));
15}

◆ getNChans()

uint32_t CaloCondBlobBase::getNChans ( ) const
inlineinherited

Returns the number of channels stored in the BLOB.

Definition at line 78 of file CaloCondBlobBase.h.

233{
234 return m_nChans;
235}

◆ getNGains()

uint32_t CaloCondBlobBase::getNGains ( ) const
inlineinherited

Returns the number of gains stored for each channel.

Definition at line 80 of file CaloCondBlobBase.h.

241{
242 return m_nGains;
243
244
245}

◆ getNObjs()

uint32_t CaloCondBlobBase::getNObjs ( ) const
inlineinherited

Returns the number of data objects stored int the BLOB.

Definition at line 76 of file CaloCondBlobBase.h.

223{
224 if(uint64_t(m_blob->size())<getHdrSize()*sizeof(uint32_t))
225 throw CaloCond::InvalidBlob("CaloCondBlobBase::getNObjs");
226 return static_cast<const uint32_t*>(m_blob->startingAddress())[2];
227}

◆ getObjSizeByte()

uint32_t CaloCondBlobBase::getObjSizeByte ( ) const
inlineinherited

Returns the size of a data object in units of bytes.

Definition at line 74 of file CaloCondBlobBase.h.

74{return getObjSizeUint32()*sizeof(uint32_t);}

◆ getObjSizeUint32()

uint32_t CaloCondBlobBase::getObjSizeUint32 ( ) const
inlineinherited

Returns the size of a data object in units of uint32_t.

Definition at line 72 of file CaloCondBlobBase.h.

215{
216 return m_sizeOfObj;
217}

◆ getObjType()

uint16_t CaloCondBlobBase::getObjType ( ) const
inlineinherited

Returns the BLOB object type.

Definition at line 68 of file CaloCondBlobBase.h.

195{
196 if(uint64_t(m_blob->size())<getHdrSize()*sizeof(uint32_t))
197 throw CaloCond::InvalidBlob("CaloCondBlobBase::getObjType");
198 return static_cast<const uint16_t*>(m_blob->startingAddress())[0];
199}

◆ getObjVersion()

uint16_t CaloCondBlobBase::getObjVersion ( ) const
inlineinherited

Returns the BLOB object version.

Definition at line 70 of file CaloCondBlobBase.h.

205{
206 if(uint64_t(m_blob->size())<getHdrSize()*sizeof(uint32_t))
207 throw CaloCond::InvalidBlob("CaloCondBlobBase::getObjVersion");
208 return static_cast<const uint16_t*>(m_blob->startingAddress())[1];
209}

◆ getTimeStamp()

uint64_t CaloCondBlobBase::getTimeStamp ( ) const
inlineinherited

Returns the unix timestamp of the comment (seconds since 1.1.1970)

Definition at line 96 of file CaloCondBlobBase.h.

285{
286 if(!getCommentSizeUint32()) return 0;
287 auto p = reinterpret_cast<const uint8_t*>(getBlobStart()+getHdrSize() +
290}
uint64_t get_unaligned64(const uint8_t *ATH_RESTRICT &p)
Read an 8-byte little-endian value from a possibly unaligned pointer.

◆ getType()

virtual uint16_t CaloCondBlobFlt::getType ( ) const
inlinevirtual

Returns CaloCondType::FLT.

Reimplemented from CaloCondBlobBase.

Definition at line 36 of file CaloCondBlobFlt.h.

36{return CaloCondType::FLT;}
@ FLT
Enum for CaloCondBlobFlt class.

◆ init()

void CaloCondBlobDat< float >::init ( const DefType & def,
uint32_t nChans,
uint16_t objVers,
const std::string & author = "",
const std::string & comment = "",
uint64_t timeStamp = 0 )
inherited

Initializing function.

Parameters
defA reference to a DefType object, specifying the inital layout and values
nChansNumber of channels to create
objTypeType of the object
objVersVersion of the object
authorString containing the author user id
commentString containing the actual comment
timeStampUnix time stamp (if 0, current time is used)

Definition at line 67 of file CaloCondBlobDat.h.

117{
118 uint32_t objSize = def.begin()->size() * sizeof(T)/sizeof(uint32_t);
119 uint16_t nGains = def.size();
122
123 //=== fill the blob with default
124 for(unsigned int channel=0; channel<nChans; ++channel){
125 for(unsigned int adc=0; adc<nGains; ++adc){
127 }
128 }
129}
uint32_t createBlob(uint16_t objType, uint16_t objVersion, uint32_t objSizeUint32, uint32_t nObjs, uint32_t nChans, uint16_t nGains, const std::string &author="", const std::string &comment="", uint64_t timeStamp=0)
virtual uint16_t getType() const
void setData(unsigned int channel, unsigned int adc, unsigned int idx, float data)

◆ packGainAndNchans()

uint32_t CaloCondBlobBase::packGainAndNchans ( const uint32_t gain,
const uint32_t nChans )
staticprivateinherited

Definition at line 147 of file CaloCondBlobBase.cxx.

139 {
140
141 if (gain>0x7F)
142 throw CaloCond::InvalidBlob("CaloCondBlobBase::packGainAndNchans: Gain too large");
143
144 if (nChans>0xFFFFFF)
145 throw CaloCond::InvalidBlob("CaloCondBlobBase::packGainAndNchans: Number of channels too large");
146
147 return 0x80000000 | (gain << 24) | nChans;
148}

◆ setData()

void CaloCondBlobDat< float >::setData ( unsigned int channel,
unsigned int adc,
unsigned int idx,
float data )
inherited

Sets a single T belonging to a channel/gain.

Parameters
channelThe channel number
adcThe gain index
idxThe index of the value to set
dataThe data value to set

Definition at line 79 of file CaloCondBlobDat.h.

151{
153 else{throw CaloCond::IndexOutOfRange("CaloCondBlobDat::setData",idx,getObjVersion());}
154}

◆ unpacknChans()

uint32_t CaloCondBlobBase::unpacknChans ( const uint32_t gainAndnChans)
staticprivateinherited

Definition at line 149 of file CaloCondBlobBase.cxx.

160 {
161 if (gainAndnChans & 0x80000000) { //new version: 24 bytes for the nChans, 7 for the gain
162 //std::cout << "CaloCondBlobBase: Reading nChans from new version" << std::endl;
163 return gainAndnChans & 0xFFFFFF;
164 }
165 else //Old version: 16 bits for nChans
166 //std::cout << "CaloCondBlobBase: Reading nChangs from old version" << std::endl;
167 return gainAndnChans & 0xFFFF;
168}

◆ unpacknGains()

uint32_t CaloCondBlobBase::unpacknGains ( const uint32_t gainAndnChans)
staticprivateinherited

Definition at line 148 of file CaloCondBlobBase.cxx.

150 {
151 if (gainAndnChans & 0x80000000) { //new version: 24 bytes for the nChans, 7 for the gain
152 //std::cout << "CaloCondBlobBase: Reading gain from new version" << std::endl;
153 return (gainAndnChans>>24) & 0x7F;
154 }
155 else //Old version: 16 bigs for gain
156 //std::cout << "CaloCondBlobBase: Reading gain from old version" << std::endl;
157 return (gainAndnChans>>16) & 0xFFFF;
158}

Member Data Documentation

◆ m_blob

const coral::Blob* CaloCondBlobBase::m_blob
privateinherited

Const reference to the BLOB (always there)

Definition at line 161 of file CaloCondBlobBase.h.

◆ m_blob_nc

coral::Blob* CaloCondBlobBase::m_blob_nc
privateinherited

Non-const reference to the BLOB.

(Only present if we were created with a non-const blob.)

Definition at line 158 of file CaloCondBlobBase.h.

◆ m_isBlobOwner

bool CaloCondBlobBase::m_isBlobOwner
privateinherited

Do I own the BLOB?

Definition at line 164 of file CaloCondBlobBase.h.

◆ m_nChans

unsigned CaloCondBlobBase::m_nChans
privateinherited

Definition at line 168 of file CaloCondBlobBase.h.

◆ m_nGains

unsigned CaloCondBlobBase::m_nGains
privateinherited

Definition at line 169 of file CaloCondBlobBase.h.

◆ m_pDataStart

const void* CaloCondBlobBase::m_pDataStart
protectedinherited

Definition at line 171 of file CaloCondBlobBase.h.

◆ m_sizeOfObj

unsigned CaloCondBlobBase::m_sizeOfObj
privateinherited

Chache of some frequently-used numbers.

Definition at line 167 of file CaloCondBlobBase.h.


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