ROOT logo
HYDRA - THE HADES ANALYSIS PACKAGE » UTIL » HBitMan

class HBitMan: public TObject

_HADES_CLASS_DESCRIPTION

 HBitMan

 library of static functions
 look here for auxiliary functions for:
 bit manipulations.

 The direct bit functions can be used static.
 Bit counting starts at 0. 0 represents the lowest bit.
 The function do not check the range! Take care you
 stay inside the range.
 For the bit functions using names see the following
 example:

  bits in Integer:
  11
  10       tofrec     (no sign)
  9
  8
  7.       charge -1 0 1 (sign)
  6.
  5.       system 0-3 (no sign)
  4........
  3........sector 0-7 (no sign)
  2........
  1........

 // allocate the word map. Bit are allocated
 // in the order of declaration. word width include the
 // extra bit for sign if sign is specified!
 HBitMan bitman;
 bitman.createWord("sector",3,kFALSE);
 bitman.createWord("sys"   ,3,kFALSE);
 bitman.createWord("charge",3,kTRUE);  // 2bits+sign = 3
 bitman.createWord("tofrec",3,kFALSE);
 bitman.init();



 UInt_t common = 0;               // flag integer

 // set values
 bitman.setWord(common,"sector",3);
 bitman.setWord(common,"sys"   ,1);
 bitman.setWord(common,"charge",-1);
 bitman.setWord(common,"tofrec",3);


 bitman.printBits(common); // print binary representation
 cout<<bitman.getWord(common,"sector")<<endl;
 cout<<bitman.getWord(common,"sys")   <<endl;
 cout<<bitman.getWord(common,"charge")<<endl;
 cout<<bitman.getWord(common,"tofrec")<<endl;
 bitman.unsetWord(common,"sector");  // set bits for this word to 0
 bitman.printBits(common);


Function Members (Methods)

public:
HBitMan()
HBitMan(const HBitMan&)
virtual~HBitMan()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
voidcreateWord(const TString name, Int_t width, Bool_t sign = kFALSE)
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
static Bool_tgetBit(UInt_t& data, Int_t bit)
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
virtual const char*TObject::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
Int_tgetWord(UInt_t& data, const TString name)
Int_tgetWord(UInt_t& data, Int_t num, Int_t width, Bool_t sign = kFALSE)
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
voidinit()
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
HBitMan&operator=(const HBitMan&)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
static voidprintBits(UInt_t data)
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
static voidsetBit(UInt_t& data, Int_t bit)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTObject::SetUniqueID(UInt_t uid)
voidsetWord(UInt_t& data, const TString name, Int_t val)
static voidsetWord(UInt_t& data, Int_t num, Int_t width, Int_t val, Bool_t sign = kFALSE)
virtual voidShowMembers(TMemberInspector&)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
static voidunsetBit(UInt_t& data, Int_t bit)
voidunsetWord(UInt_t& data, const TString name)
static voidunsetWord(UInt_t& data, Int_t num, Int_t width)
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()

Data Members

protected:
vector<word>list!
map<TString,word>wordmap!

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

HBitMan()
~HBitMan()
void printBits(UInt_t data)
 print the binary reprentation of data.
 Lowest bits at the right side
void setBit(UInt_t& data, Int_t bit)
{ data |= ( 0x01 << bit ); }
void unsetBit(UInt_t& data, Int_t bit)
{ data &= ~( 0x01 << bit ); }
Bool_t getBit(UInt_t& data, Int_t bit)
{ return (data >> bit ) & 0x01 ; }
void setWord(UInt_t& data, Int_t num, Int_t width, Int_t val, Bool_t sign = kFALSE)
 add data starting at bit num (from low) with n bits width
 width includes the sign bit if sign is kTRUE.
void unsetWord(UInt_t& data, Int_t num, Int_t width)
 unset data starting at bit num (from low) with n bits width
Int_t getWord(UInt_t& data, Int_t num, Int_t width, Bool_t sign = kFALSE)
void createWord(const TString name, Int_t width, Bool_t sign = kFALSE)
 bit setting using names
void init()
 bit setting using names needs init after
 defining all word to complete the catalog
void setWord(UInt_t& data, const TString name, Int_t val)
 set word with lable name to value val
void unsetWord(UInt_t& data, const TString name)
 unset word with lable name to value 0
Int_t getWord(UInt_t& data, const TString name)
 retrieve word with lable name
HBitMan()