_HADES_CLASS_DESCRIPTION HMdcTBArray LookupTable and some useful functions for working with an array of two bits. For MDC it can be used for keeping information about number of cell times: only time1 - 1 only time2 - 2 time1 & time2 - 3 void clear(UChar_t *pF, UChar_t *pL); void set(UChar_t *pF, Int_t pos, UChar_t cont); Int_t get(UChar_t *pF, Int_t pos); void unset(UChar_t *pF, Int_t pos, UChar_t cont); Int_t getNSet(UChar_t *pF, UChar_t *pL); Int_t position(UChar_t *pF, UChar_t *pL, Int_t idx); = content of two bits or =-1 Int_t first(UChar_t *pF, UChar_t *pL); = content of two bits or =-1 Int_t last(UChar_t *pF, UChar_t *pL); = content of two bits or =-1 Int_t next(UChar_t *pF, UChar_t *pL, Int_t prPos); = content of two bits or =-1 Int_t previous(UChar_t *pF, UChar_t *pL, Int_t prPos); = content of two bits or =-1 void shiftRight(UChar_t *pF, UChar_t *pL, UChar_t *pS); void shiftLeft(UChar_t *pF, UChar_t *pL, UChar_t *pS); Int_t compare(UChar_t *pF1, UChar_t *pF2, Int_t nBytes); pF - pointer to the first byte of bytes array pL - pointer to the last byte of bytes array cont - content of two bits, can be = 0,1,2,3 pos - position of element in two bit array (for examp. - num. cell MDC) idx - index of element prPos - position of the element, used for geting position of the next or previous position aftre or before pos. prPos pS - pointer to the byte which mast be moved to *pL (shift to right) or to *pT (shift to left)
HMdcBArray(const HMdcBArray&) | |
static Int_t | andArr(const UChar_t* pF1, const UChar_t* pF2, Int_t nBytes, UChar_t* pOut) |
static Int_t | andArrAndUnset(UChar_t* pNoId, const UChar_t* pEx, Int_t nBytes, UChar_t* pIdnt) |
static TClass* | Class() |
static void | clear(UChar_t* pF, UChar_t* pL) |
static Int_t | compare(const UChar_t* pF1, const UChar_t* pF2, Int_t nBytes) |
static Int_t | first(const UChar_t* pF, const UChar_t* pL) |
static UChar_t | get(const UChar_t* pF, Int_t pos) |
static UChar_t | getNLayOrientation(UChar_t list) |
static Int_t | getNSet(const UChar_t* pF) |
static Int_t | getNSet(const UChar_t byte) |
static Int_t | getNSet(const UChar_t* pF, const UChar_t* pL) |
static Int_t | getNSet2B(const UChar_t* pF) |
static Bool_t | is40DegWireCross(UChar_t list) |
virtual TClass* | IsA() const |
static Int_t | last(const UChar_t* pF, const UChar_t* pL) |
static Int_t | next(const UChar_t* pF, const UChar_t* pL, Int_t prPos) |
static Int_t | nextAndUnset(UChar_t* pF, UChar_t* pL, Int_t prPos) |
HMdcBArray& | operator=(const HMdcBArray&) |
static Int_t | position(const UChar_t* pF, const UChar_t* pL, Int_t idx) |
static Int_t | prevAndUnset(UChar_t* pF, UChar_t* pL, Int_t prPos) |
static Int_t | previous(const UChar_t* pF, const UChar_t* pL, Int_t prPos) |
static void | set(UChar_t* pF, Int_t pos) |
static void | shiftLeft(UChar_t* pT, UChar_t* pL, UChar_t* pS) |
static void | shiftRight(UChar_t* pF, UChar_t* pL, UChar_t* pS) |
virtual void | ShowMembers(TMemberInspector& insp, char* parent) |
virtual void | Streamer(TBuffer& b) |
void | StreamerNVirtual(TBuffer& b) |
static Bool_t | testAndUnset(UChar_t* pF, Int_t pos) |
static void | unset(UChar_t* pF, Int_t pos) |
static Int_t | xorArr(const UChar_t* pF1, const UChar_t* pF2, Int_t nBytes, UChar_t* pOut) |
HMdcBArray() | |
(unknown) | () |
prPos >size = start from latest bit return: -1 previous is absent
The same as nextAndUnset but do it back order. prPos >= (pL-pF+1)*8 = start from latest bit return: -1 next is absent
Function produce list of identical for pF1 & ppF2 bits - pOut return number of identical bits
Function produce list of identical for pNoId & ppEx bits - pIdnt and unset identical bits in pNoId return number of identical bits Int_t nIBits=0; const UChar_t *pExEnd = pEx + nBytes; for(;pEx<pExEnd;pEx++,pIdnt++,pNoId++) { *pIdnt = *pNoId & *pEx; *pNoId ^= *pIdnt; nIBits += nBitLookUp[*pIdnt]; }
Function produce list of nonidentical for pF1 & ppF2 bits - pOut return number of not identical bits in pF1 and pF2