#ifndef HMDCEVREADOUT_H
#define HMDCEVREADOUT_H
#include "TObjArray.h"
#include "hparset.h"
class HParIo;
class HMdcEvReadoutBus: public TObject {
protected:
Int_t sec;
Int_t mod;
Int_t mbo;
public:
HMdcEvReadoutBus(Int_t s=-1,Int_t m=-1, Int_t l=-1) {
sec=s;
mod=m;
mbo=l;
}
~HMdcEvReadoutBus() {}
void setSec(Int_t n) {sec=n;}
void setMod(Int_t n) {mod=n;}
void setMbo(Int_t n) {mbo=n;}
void fill(Int_t s,Int_t m, Int_t l) {
sec=s;
mod=m;
mbo=l;
}
Int_t getSec() {return sec;}
Int_t getMod() {return mod;}
Int_t getMbo() {return mbo;}
void clear() {
sec=-1;
mod=-1;
mbo=-1;
}
ClassDef(HMdcEvReadoutBus,1)
};
class HMdcEvReadoutBusPos: public TObject {
protected:
TObjArray* array;
public:
HMdcEvReadoutBusPos(Int_t n=4);
~HMdcEvReadoutBusPos();
HMdcEvReadoutBus& operator[](Int_t i) {
return *static_cast<HMdcEvReadoutBus*>((*array)[i]);
}
Int_t getSize() {return array->GetEntries();}
ClassDef(HMdcEvReadoutBusPos,1)
};
class HMdcEvReadoutRoc: public TObject {
protected:
TObjArray* array;
public:
HMdcEvReadoutRoc(Int_t n=2);
~HMdcEvReadoutRoc();
HMdcEvReadoutBusPos& operator[](Int_t i) {
return *static_cast<HMdcEvReadoutBusPos*>((*array)[i]);
}
Int_t getSize() {return array->GetEntries();}
ClassDef(HMdcEvReadoutRoc,1)
};
class HMdcEvReadoutSam: public TObject {
protected:
TObjArray* array;
Int_t sector;
public:
HMdcEvReadoutSam(Int_t n=8);
~HMdcEvReadoutSam();
HMdcEvReadoutRoc& operator[](Int_t i) {
return *static_cast<HMdcEvReadoutRoc*>((*array)[i]);
}
Int_t getSize() {return array->GetEntries();}
ClassDef(HMdcEvReadoutSam,1)
};
class HMdcEvReadout : public HParSet {
protected:
TObjArray* array;
Int_t *samNumberToSector;
Int_t *samNumberToModule;
Int_t arrayBaseSize;
public:
HMdcEvReadout(const Char_t* name="MdcEvReadout",
const Char_t* title="Mdc subevent readout addresses",
const Char_t* context="",
Int_t n=48);
~HMdcEvReadout();
HMdcEvReadoutSam& operator[](Int_t i) {
return *static_cast<HMdcEvReadoutSam*>((*array)[i]);
}
Bool_t init(HParIo* input);
Int_t write(HParIo* output);
Int_t getArrayBaseSize(){return arrayBaseSize;};
Int_t getSize() {return array->GetEntries();};
Int_t getSamNumberToSector(Int_t samNo)
{
if (0 <= samNo && samNo < arrayBaseSize) return samNumberToSector[samNo];
Error("getSamNumberToSector()","sam number %i out of range [%i,%i[ of lookup table",samNo,0,arrayBaseSize);
return -1;
};
Int_t getSamNumberToModule(Int_t samNo)
{
if (0 <= samNo && samNo < arrayBaseSize) return samNumberToModule[samNo];
Error("getSamNumberToModule()","sam number %i out of range [%i,%i[ of lookup table",samNo,0,arrayBaseSize);
return -1;
};
Int_t getModuleAndSectorToSamNumber(Int_t moduleNo, Int_t sectorNo)
{
for (Int_t index = 0; index < arrayBaseSize; index++)
{
if (moduleNo == samNumberToModule[index] &&
sectorNo == samNumberToSector[index] ) return index;
}
Error("getModuleAndSectorToSamNumber()","no matching sam number to module %i and sector %i found", moduleNo, sectorNo);
return -1;
};
void clear();
void printParam();
ClassDef(HMdcEvReadout,1)
};
#endif /* !HMDCEVREADOUT_H */
Last change: Sat May 22 13:01:48 2010
Last generated: 2010-05-22 13:01
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.