CMS 3D CMS Logo

Functions
bitset_utilities Namespace Reference

this file contains additional dynamic_bitset methods More...

Functions

boost::dynamic_bitset append (const boost::dynamic_bitset<> &bs1, const boost::dynamic_bitset<> &bs2)
 this method takes two bitsets bs1 and bs2 and returns result of bs2 appended to the end of bs1 More...
 
void bitsetToChar (const boost::dynamic_bitset<> &bs, unsigned char *result)
 this method takes bitset obj and returns char * array More...
 
void printWords (const boost::dynamic_bitset<> &bs)
 
boost::dynamic_bitset ushortToBitset (const unsigned int numberOfBits, unsigned short *buf)
 this method takes numberOfBits bits from unsigned short * array and returns them in the bitset obj. More...
 

Detailed Description

this file contains additional dynamic_bitset methods

Function Documentation

boost::dynamic_bitset bitset_utilities::append ( const boost::dynamic_bitset<> &  bs1,
const boost::dynamic_bitset<> &  bs2 
)

this method takes two bitsets bs1 and bs2 and returns result of bs2 appended to the end of bs1

Definition at line 10 of file bitset_append.cc.

References mps_fire::i, and mps_fire::result.

Referenced by CSCDCCEventData::pack(), CSCDDUEventData::pack(), CSCTMBData::pack(), CSCEventData::pack(), and CSCALCTHeader::pack().

12  {
13  boost::dynamic_bitset<> result(bs1.size()+bs2.size());
14  unsigned size1 = bs1.size();
15  for(unsigned i = 0; i < size1; ++i)
16  {
17  result[i] = bs1[i];
18  }
19  for(unsigned i = 0; i < bs2.size(); ++i)
20  {
21  result[size1+i] = bs2[i];
22  }
23  return result;
24  }
void bitset_utilities::bitsetToChar ( const boost::dynamic_bitset<> &  bs,
unsigned char *  result 
)

this method takes bitset obj and returns char * array

Definition at line 40 of file bitset_append.cc.

References mps_fire::i.

Referenced by CSCDigiToRaw::createFedBuffers(), cscClassPackerCompare(), cscPackAndUnpack(), CSCALCTHeader::pack(), and printWords().

41  {
42  for(unsigned i = 0; i < bs.size(); ++i)
43  {
44  result[i/8] = (bs[i+7]<<7)+
45  (bs[i+6]<<6)+
46  (bs[i+5]<<5)+
47  (bs[i+4]<<4)+
48  (bs[i+3]<<3)+
49  (bs[i+2]<<2)+
50  (bs[i+1]<<1)+
51  bs[i];
52  i+=7;
53  }
54  }
void bitset_utilities::printWords ( const boost::dynamic_bitset<> &  bs)

Definition at line 56 of file bitset_append.cc.

References bitsetToChar(), constexpr, and mps_fire::i.

Referenced by cscClassPackerCompare().

57  {
58  constexpr unsigned int nShorts = 30000;
59  unsigned char words[nShorts*2];
60  bitsetToChar(bs, words);
61  unsigned short * buf= (unsigned short *) words;
62  for (int unsigned i=0;i<bs.size()/16 && i+3 < nShorts;++i) {
63  printf("%04x %04x %04x %04x\n",buf[i+3],buf[i+2],buf[i+1],buf[i]);
64  i+=3;
65  }
66  }
#define constexpr
void bitsetToChar(const boost::dynamic_bitset<> &bs, unsigned char *result)
this method takes bitset obj and returns char * array
boost::dynamic_bitset bitset_utilities::ushortToBitset ( const unsigned int  numberOfBits,
unsigned short *  buf 
)

this method takes numberOfBits bits from unsigned short * array and returns them in the bitset obj.

Definition at line 27 of file bitset_append.cc.

References mps_fire::i, and mps_fire::result.

Referenced by CSCDCCEventData::pack(), CSCDDUEventData::pack(), CSCTMBData::pack(), CSCEventData::pack(), and CSCALCTHeader::pack().

29  {
30  boost::dynamic_bitset<> result(numberOfBits);
31  for(unsigned i = 0; i < result.size(); ++i)
32  {
33  result[i] = (buf[i/16]>>(i%16)) & 0x1;
34  }
35  return result;
36  }