CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Classes | Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Friends
SiStripNoises Class Reference

#include <SiStripNoises.h>

Classes

struct  DetRegistry
 
struct  ratioData
 
class  StrictWeakOrdering
 

Public Types

typedef std::vector< unsigned
char > 
Container
 
typedef std::vector< unsigned
char >::const_iterator 
ContainerIterator
 
typedef std::vector< uint16_t > InputVector
 
typedef std::pair
< ContainerIterator,
ContainerIterator
Range
 
typedef std::vector< DetRegistryRegistry
 
typedef Registry::const_iterator RegistryIterator
 

Public Member Functions

void allNoises (std::vector< float > &noises, const Range &range) const
 
ContainerIterator getDataVectorBegin () const
 
ContainerIterator getDataVectorEnd () const
 
void getDetIds (std::vector< uint32_t > &DetIds_) const
 
const Range getRange (const uint32_t detID) const
 
Range getRangeByPos (unsigned short pos) const
 
RegistryIterator getRegistryVectorBegin () const
 
RegistryIterator getRegistryVectorEnd () const
 
std::vector< ratioDataoperator/ (const SiStripNoises &d)
 
void printDebug (std::stringstream &ss) const
 
void printSummary (std::stringstream &ss) const
 
bool put (const uint32_t &detID, const InputVector &input)
 
void setData (float noise_, InputVector &vped)
 
 SiStripNoises (const SiStripNoises &)
 
 SiStripNoises ()
 
 ~SiStripNoises ()
 

Static Public Member Functions

static float getNoise (uint16_t strip, const Range &range)
 
static float getNoiseFast (const uint16_t &strip, const Range &range)
 

Private Member Functions

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

Static Private Member Functions

static uint16_t decode (uint16_t strip, const Range &range)
 
static void encode (const InputVector &Vi, std::vector< unsigned char > &Vo_CHAR)
 
static uint16_t get9bits (const uint8_t *&ptr, int8_t skip)
 

Private Attributes

Registry indexes
 
Container v_noises
 

Friends

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

Detailed Description

Stores the noise value for all the strips.
The values are encoded from a vector<uint16_t> to a vector<unsigned char>

The printSummary method prints: Nstrips, mean, rms, min and max noise for each detId. The print Debug method prints the noise for every strip.

Definition at line 23 of file SiStripNoises.h.

Member Typedef Documentation

typedef std::vector<unsigned char> SiStripNoises::Container

Definition at line 46 of file SiStripNoises.h.

typedef std::vector<unsigned char>::const_iterator SiStripNoises::ContainerIterator

Definition at line 47 of file SiStripNoises.h.

typedef std::vector<uint16_t> SiStripNoises::InputVector

Definition at line 51 of file SiStripNoises.h.

Definition at line 48 of file SiStripNoises.h.

typedef std::vector<DetRegistry> SiStripNoises::Registry

Definition at line 49 of file SiStripNoises.h.

typedef Registry::const_iterator SiStripNoises::RegistryIterator

Definition at line 50 of file SiStripNoises.h.

Constructor & Destructor Documentation

SiStripNoises::SiStripNoises ( const SiStripNoises input)

Definition at line 9 of file SiStripNoises.cc.

SiStripNoises::SiStripNoises ( )
inline

Definition at line 54 of file SiStripNoises.h.

54 {}
SiStripNoises::~SiStripNoises ( )
inline

Definition at line 55 of file SiStripNoises.h.

55 {}

Member Function Documentation

void SiStripNoises::allNoises ( std::vector< float > &  noises,
const Range range 
) const

Definition at line 131 of file SiStripNoises.cc.

uint16_t SiStripNoises::decode ( uint16_t  strip,
const Range range 
)
inlinestaticprivate

Definition at line 118 of file SiStripNoises.h.

References data.

Referenced by ztail.Decoder::follow(), getNoiseFast(), and ztail.Decoder::initial_synchronize().

118  {
119  const unsigned char *data = &*(range.second -1); // pointer to the last byte of data
120  static const uint16_t BITS_PER_STRIP = 9;
121 
122  uint32_t lowBit = strip * BITS_PER_STRIP;
123  uint8_t firstByteBit = (lowBit & 7);//module 8
124 
125  uint16_t vin = uint16_t(*(data-lowBit/8)) | (uint16_t(*(data-lowBit/8-1))<<8);
126  vin = vin >> firstByteBit; vin &= 0x1FF;
127  return vin;
128 
129  /*
130  uint8_t firstByteNBits = 8 - firstByteBit;
131  uint8_t firstByteMask = 0xffu << firstByteBit;
132  uint8_t secondByteMask = ~(0xffu << (BITS_PER_STRIP - firstByteNBits));
133  uint16_t value = ((uint16_t(*(data-lowBit/8 )) & firstByteMask) >> firstByteBit) | ((uint16_t(*(data-lowBit/8-1)) & secondByteMask) << firstByteNBits);
134 
135  if(vin!=value) std::cout << vin << ',' <<value << std::endl;
136  */
137  /*
138  if(strip < 25){
139  std::cout << "***************DECODE*********************"<<"\n"
140  << "strip "<<strip << " "
141  << value
142  <<"\t :"<<print_as_binary(value)
143  <<"\t :"<<print_as_binary( ((uint16_t(*(data-lowBit/8 )) & firstByteMask) >> firstByteBit) )
144  << "-"<<print_as_binary( ((uint16_t(*(data-lowBit/8-1)) & secondByteMask) <<firstByteNBits) )
145  << "\t *(data-lowBit/8) " << print_as_binary( *(data-lowBit/8 ))
146  << "\t *(data-lowBit/8-1) " << print_as_binary( *(data-lowBit/8 -1 ))
147  << "\tlowBit:"<< lowBit
148  << "\tfirstByteMask :"<<print_as_binary(firstByteMask)
149  << "\tsecondByteMask:"<<print_as_binary(secondByteMask)
150  << "\tfirstByteBit:"<<print_as_binary(firstByteBit)
151  << std::endl;
152  }
153  */
154  //return value;
155 }
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
void SiStripNoises::encode ( const InputVector Vi,
std::vector< unsigned char > &  Vo_CHAR 
)
staticprivate

Definition at line 85 of file SiStripNoises.cc.

uint16_t SiStripNoises::get9bits ( const uint8_t *&  ptr,
int8_t  skip 
)
inlinestaticprivate

Get 9 bits from a bit stream, starting from the right, skipping the first 'skip' bits (0 < skip < 8). Ptr must point to the rightmost bit, and is updated by this function

Get 9 bit words from a bit stream, starting from the right, skipping the first 'skip' bits (0 < skip < 8). Ptr must point to the rightmost byte that has some bits of this word, and is updated by this function

Definition at line 110 of file SiStripNoises.h.

References runTheMatrix::ret, and createPayload::skip.

110  {
111  uint8_t maskThis = (0xFF << skip);
112  uint8_t maskThat = ((2 << skip) - 1);
113  uint16_t ret = ( ((*ptr) & maskThis) >> skip );
114  --ptr;
115  return ret | ( ((*ptr) & maskThat) << (8 - skip) );
116 }
tuple ret
prodAgent to be discontinued
ContainerIterator SiStripNoises::getDataVectorBegin ( ) const
inline

Definition at line 62 of file SiStripNoises.h.

References v_noises.

62 {return v_noises.begin();}
Container v_noises
Definition: SiStripNoises.h:95
ContainerIterator SiStripNoises::getDataVectorEnd ( ) const
inline

Definition at line 63 of file SiStripNoises.h.

References v_noises.

63 {return v_noises.end();}
Container v_noises
Definition: SiStripNoises.h:95
void SiStripNoises::getDetIds ( std::vector< uint32_t > &  DetIds_) const

Definition at line 59 of file SiStripNoises.cc.

static float SiStripNoises::getNoise ( uint16_t  strip,
const Range range 
)
inlinestatic

Definition at line 74 of file SiStripNoises.h.

References getNoiseFast().

Referenced by StripClusterizerAlgorithm::Det::noise().

74 { return getNoiseFast(strip,range);}
static float getNoiseFast(const uint16_t &strip, const Range &range)
Definition: SiStripNoises.h:67
static float SiStripNoises::getNoiseFast ( const uint16_t &  strip,
const Range range 
)
inlinestatic

Definition at line 67 of file SiStripNoises.h.

References decode().

Referenced by getNoise().

67  {
68  return 0.1f*float(decode(strip,range));
69  }
static uint16_t decode(uint16_t strip, const Range &range)
const SiStripNoises::Range SiStripNoises::getRange ( const uint32_t  detID) const

Definition at line 34 of file SiStripNoises.cc.

SiStripNoises::Range SiStripNoises::getRangeByPos ( unsigned short  pos) const

Definition at line 49 of file SiStripNoises.cc.

RegistryIterator SiStripNoises::getRegistryVectorBegin ( ) const
inline

Definition at line 64 of file SiStripNoises.h.

References indexes.

64 {return indexes.begin();}
Registry indexes
Definition: SiStripNoises.h:96
RegistryIterator SiStripNoises::getRegistryVectorEnd ( ) const
inline

Definition at line 65 of file SiStripNoises.h.

References indexes.

65 {return indexes.end();}
Registry indexes
Definition: SiStripNoises.h:96
std::vector< SiStripNoises::ratioData > SiStripNoises::operator/ ( const SiStripNoises d)

Definition at line 262 of file SiStripNoises.cc.

void SiStripNoises::printDebug ( std::stringstream &  ss) const

Definition at line 196 of file SiStripNoises.cc.

void SiStripNoises::printSummary ( std::stringstream &  ss) const

Definition at line 223 of file SiStripNoises.cc.

bool SiStripNoises::put ( const uint32_t &  detID,
const InputVector input 
)
template<class Archive >
void SiStripNoises::serialize ( Archive &  ar,
const unsigned int  version 
)
private
void SiStripNoises::setData ( float  noise_,
InputVector vped 
)

Friends And Related Function Documentation

friend class boost::serialization::access
friend

Definition at line 105 of file SiStripNoises.h.

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

Definition at line 105 of file SiStripNoises.h.

Member Data Documentation

Registry SiStripNoises::indexes
private

Definition at line 96 of file SiStripNoises.h.

Referenced by getRegistryVectorBegin(), and getRegistryVectorEnd().

Container SiStripNoises::v_noises
private

Definition at line 95 of file SiStripNoises.h.

Referenced by getDataVectorBegin(), and getDataVectorEnd().