#ifndef HTOFINOLOOKUP_H
#define HTOFINOLOOKUP_H
#include "TObject.h"
#include "TObjArray.h"
#include "htofinoparset.h"
class HTofinoLookupChan : public TObject {
protected:
Int_t sector;
Int_t module;
Int_t cell;
public:
HTofinoLookupChan() { clear(); }
~HTofinoLookupChan() {;}
Int_t getSector() { return sector; }
Int_t getModule() { return module; }
Int_t getCell() { return cell; }
void getAddress(Int_t& s,Int_t& m,Int_t& c) {
s=sector;
m=module;
c=cell;
}
void fill(const Int_t s,const Int_t m,const Int_t c) {
sector=s;
module=m;
cell=c;
}
void fill(HTofinoLookupChan& r) {
sector=r.getSector();
module=r.getModule();
cell=r.getCell();
}
void setSector(const Int_t n) { sector=n; }
void setModule(const Int_t n) { module=n; }
void setCell(const Int_t n) { cell=n; }
void clear() {
sector=-1;
module=-1;
cell=-1;
}
ClassDef(HTofinoLookupChan,1)
};
class HTofinoLookupDConv: public TObject {
friend class HTofinoLookup;
protected:
TObjArray* array;
Int_t crate;
Int_t slot;
Char_t dConvType;
Int_t nChan;
public:
HTofinoLookupDConv(Int_t n=32);
~HTofinoLookupDConv();
HTofinoLookupChan* getChannel(Int_t c) {
if (c>=0 && c<=nChan) return &((*this)[c]);
else return 0;
}
HTofinoLookupChan& operator[](Int_t i) {
return *static_cast<HTofinoLookupChan*>((*array)[i]);
}
Int_t getSize() { return nChan; }
Int_t getCrate() { return crate; }
Int_t getSlot() { return slot; }
Char_t getType() { return dConvType; }
void setAddress(Int_t c, Int_t s, Char_t t) {
crate=c;
slot=s;
dConvType=t;
}
void clear();
ClassDef(HTofinoLookupDConv,1)
};
class HTofinoLookup : public HTofinoParSet {
protected:
TObjArray* array;
Int_t nDConv;
public:
HTofinoLookup(const Char_t* name="TofinoLookup",
const Char_t* title="Lookup table for Tofino unpacker",
const Char_t* context="",
Int_t numDConv=2, Int_t numChan=32);
~HTofinoLookup();
HTofinoLookupDConv* getDConv(Int_t crate,Int_t slot) {
for(Int_t i=0;i<nDConv;i++) {
HTofinoLookupDConv& dconv=(*this)[i];
if (dconv.crate==crate && dconv.slot==slot) return &dconv;
}
return 0;
}
HTofinoLookupDConv& operator[](Int_t i) {
return *static_cast<HTofinoLookupDConv*>((*array)[i]);
}
Int_t getSize() { return nDConv; }
void clear();
void printParam();
void setAddress(Int_t,Int_t,Char_t,Int_t,Int_t,Int_t,Int_t);
void readline(const Char_t*, Int_t*);
void putAsciiHeader(TString&);
Bool_t writeline(Char_t*, Int_t, Int_t);
ClassDef(HTofinoLookup,1)
};
#endif /*!HTOFINOLOOKUP_H*/
Last change: Sat May 22 13:16:46 2010
Last generated: 2010-05-22 13:16
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.