CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes | Friends
SiPixelDbItem Class Reference

#include <SiPixelDbItem.h>

Classes

class  Packing
 Pack the pixel information to use less memory. More...
 

Public Member Functions

float gain ()
 
short noise ()
 
PackedPixDbType packedValue ()
 
short pedestal ()
 
void set (short noise, short pedestal, float gain, char status)
 A fast version which sets all in one go. More...
 
void setGain (float g)
 
void setNoise (short n)
 
void setPackedVal (PackedPixDbType p)
 
void setPedestal (short p)
 
void setStatus (char s)
 
 SiPixelDbItem ()
 
char status ()
 
 ~SiPixelDbItem ()
 

Private Types

typedef uint32_t PackedPixDbType
 

Private Member Functions

template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 

Private Attributes

PackedPixDbType packedVal_
 

Static Private Attributes

static Packing packing_
 

Friends

class boost::serialization::access
 
template<typename CondSerializationT , typename Enabled >
struct cond::serialization::access
 

Detailed Description

Definition at line 21 of file SiPixelDbItem.h.

Member Typedef Documentation

◆ PackedPixDbType

typedef uint32_t SiPixelDbItem::PackedPixDbType
private

Definition at line 22 of file SiPixelDbItem.h.

Constructor & Destructor Documentation

◆ SiPixelDbItem()

SiPixelDbItem::SiPixelDbItem ( )
inline

Definition at line 25 of file SiPixelDbItem.h.

25 : packedVal_(0) { set(2, 0, 1.0, 0); } // TO DO: is noise==2 in shifted rep or not???

References set().

◆ ~SiPixelDbItem()

SiPixelDbItem::~SiPixelDbItem ( )
inline

Definition at line 26 of file SiPixelDbItem.h.

26 {}

Member Function Documentation

◆ gain()

float SiPixelDbItem::gain ( )
inline

◆ noise()

short SiPixelDbItem::noise ( )
inline

◆ packedValue()

PackedPixDbType SiPixelDbItem::packedValue ( )
inline

Definition at line 31 of file SiPixelDbItem.h.

31 { return packedVal_; }

References packedVal_.

◆ pedestal()

short SiPixelDbItem::pedestal ( )
inline

◆ serialize()

template<class Archive >
void SiPixelDbItem::serialize ( Archive &  ar,
const unsigned int  version 
)
private

◆ set()

void SiPixelDbItem::set ( short  noise,
short  pedestal,
float  gain,
char  status 
)

A fast version which sets all in one go.

Definition at line 55 of file SiPixelDbItem.cc.

55  {
56  // Convert gain into a shifted-integer
57  int mult_factor = 1 << packing_.gain_shift; // TO DO: check usage here
58  unsigned short gInIntRep = int(gain * mult_factor);
59 
61  (gInIntRep << packing_.gain_shift) | (status << packing_.status_shift);
62 }

References gain(), SiPixelDbItem::Packing::gain_shift, createfilelist::int, noise(), SiPixelDbItem::Packing::noise_shift, packedVal_, packing_, pedestal(), SiPixelDbItem::Packing::pedestal_shift, status(), and SiPixelDbItem::Packing::status_shift.

Referenced by SiPixelDbItem().

◆ setGain()

void SiPixelDbItem::setGain ( float  g)

Definition at line 38 of file SiPixelDbItem.cc.

38  {
39  // Convert gain into a shifted-integer
40  int mult_factor = 1 << packing_.gain_shift; // TO DO: check
41  unsigned short gInIntRep = int(g * mult_factor);
42 
43  PackedPixDbType newGain = (gInIntRep & packing_.gain_mask) << packing_.gain_shift;
45  packedVal_ = oldValue | newGain;
46 }

References g, SiPixelDbItem::Packing::gain_mask, SiPixelDbItem::Packing::gain_shift, createfilelist::int, packedVal_, and packing_.

◆ setNoise()

void SiPixelDbItem::setNoise ( short  n)

The logic of individual setters: First, we put the new value into newXXX, which is a 32-bit word which has the new value at the bits where it should go, and 0's everywhere else. To make it, we:

  • assign the value
  • AND with a mask – so all others are zeroes
  • shift up by noise_shift bits

Next, we prepare the oldValue with a whole where newXXX needs to go. ~(mask << shift) has 1's everywhere except where the new value will go, so AND-ing packedVal_ with it creates a ‘whole’ for the new value.

Finally, the new value is an OR of the two (since the wholes have 0's)

Example: 00 03 c3 02 – old, new one must blow c3 away, so we AND with ff ff 00 ff, and get 00 03 00 02. The new number is now positioned to be ff ff a2 ff, and then we AND these two and get 00 03 a2 02. We have replaced c3 with a2.

Definition at line 26 of file SiPixelDbItem.cc.

26  {
29  packedVal_ = oldValue | newNoise;
30 }

References dqmiodumpmetadata::n, SiPixelDbItem::Packing::noise_mask, SiPixelDbItem::Packing::noise_shift, packedVal_, and packing_.

◆ setPackedVal()

void SiPixelDbItem::setPackedVal ( PackedPixDbType  p)
inline

Definition at line 33 of file SiPixelDbItem.h.

33 { packedVal_ = p; }

References AlCaHLTBitMon_ParallelJobs::p, and packedVal_.

◆ setPedestal()

void SiPixelDbItem::setPedestal ( short  p)

◆ setStatus()

void SiPixelDbItem::setStatus ( char  s)

◆ status()

char SiPixelDbItem::status ( )
inline

Friends And Related Function Documentation

◆ boost::serialization::access

friend class boost::serialization::access
friend

Definition at line 67 of file SiPixelDbItem.h.

◆ cond::serialization::access

template<typename CondSerializationT , typename Enabled >
friend struct cond::serialization::access
friend

Definition at line 67 of file SiPixelDbItem.h.

Member Data Documentation

◆ packedVal_

PackedPixDbType SiPixelDbItem::packedVal_
private

◆ packing_

SiPixelDbItem::Packing SiPixelDbItem::packing_
staticprivate

Definition at line 65 of file SiPixelDbItem.h.

Referenced by gain(), noise(), pedestal(), set(), setGain(), setNoise(), setPedestal(), setStatus(), and status().

SiPixelDbItem::Packing::pedestal_shift
int pedestal_shift
Definition: SiPixelDbItem.h:56
dqmiodumpmetadata.n
n
Definition: dqmiodumpmetadata.py:28
SiPixelDbItem::packing_
static Packing packing_
Definition: SiPixelDbItem.h:65
SiPixelDbItem::Packing::status_mask
PackedPixDbType status_mask
Definition: SiPixelDbItem.h:57
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
alignCSCRings.s
s
Definition: alignCSCRings.py:92
SiPixelDbItem::pedestal
short pedestal()
Definition: SiPixelDbItem.h:28
SiPixelDbItem::status
char status()
Definition: SiPixelDbItem.h:30
SiPixelDbItem::Packing::pedestal_mask
PackedPixDbType pedestal_mask
Definition: SiPixelDbItem.h:60
SiPixelDbItem::set
void set(short noise, short pedestal, float gain, char status)
A fast version which sets all in one go.
Definition: SiPixelDbItem.cc:55
SiPixelDbItem::Packing::status_shift
int status_shift
Definition: SiPixelDbItem.h:53
SiPixelDbItem::Packing::noise_mask
PackedPixDbType noise_mask
Definition: SiPixelDbItem.h:59
SiPixelDbItem::gain
float gain()
Definition: SiPixelDbItem.h:29
createfilelist.int
int
Definition: createfilelist.py:10
SiPixelDbItem::noise
short noise()
Definition: SiPixelDbItem.h:27
SiPixelDbItem::Packing::gain_shift
int gain_shift
Definition: SiPixelDbItem.h:54
SiPixelDbItem::packedVal_
PackedPixDbType packedVal_
Definition: SiPixelDbItem.h:43
SiPixelDbItem::PackedPixDbType
uint32_t PackedPixDbType
Definition: SiPixelDbItem.h:22
SiPixelDbItem::Packing::gain_mask
PackedPixDbType gain_mask
Definition: SiPixelDbItem.h:58
g
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
Definition: Activities.doc:4
SiPixelDbItem::Packing::noise_shift
int noise_shift
Definition: SiPixelDbItem.h:55