#ifndef __TMrbVulomTB_h__
#define __TMrbVulomTB_h__
namespace std {} using namespace std;
#include <cstdlib>
#include <iostream>
#include <sstream>
#include <iomanip>
#include <fstream>
#include "Rtypes.h"
#include "TSystem.h"
#include "TObject.h"
#include "TMrbVMEChannel.h"
#include "TMrbVMEModule.h"
class TMrbVulomTB : public TMrbVMEModule {
public:
enum { kSegSize = 0x10000 };
enum { kAddrMod = 0x09 };
enum { kNofChannels = 16 };
enum { kMaxScaleDown = 15 };
enum { kScSetInput = BIT(0) };
enum { kScSetInhibit = BIT(1) };
enum { kScSetScaleDown = BIT(2) };
enum { kScSetAll = kScSetInput | kScSetInhibit | kScSetScaleDown };
public:
TMrbVulomTB() {};
TMrbVulomTB(const Char_t * ModuleName, UInt_t BaseAddr, Int_t NofScalerChans = kNofChannels, UInt_t ScalerSet = kScSetAll);
~TMrbVulomTB() {};
inline Int_t GetNofScalerChans() { return(fNofScalerChans); };
virtual inline const Char_t * GetMnemonic() const { return("vulomTB"); };
Bool_t MakeReadoutCode(ofstream & RdoStrm, TMrbConfig::EMrbModuleTag TagIndex);
Bool_t MakeReadoutCode(ofstream & RdoStrm, TMrbConfig::EMrbModuleTag TagIndex, TMrbVMEChannel * Channel, Int_t Value = 0);
Bool_t MakeRcFile(ofstream & RcStrm, TMrbConfig::EMrbRcFileTag TagIndex, const Char_t * ResourceName);
inline void SetEnableMask(UInt_t EnableMask) { fEnableMask = EnableMask; };
inline UInt_t GetEnableMask() { return(fEnableMask); };
Bool_t SetScaleDown(Int_t ScaleDown, Int_t ChannelNo);
Int_t GetScaleDown(Int_t ChannelNo);
inline void SetRdoScaleDown(Int_t RdoScd) { fRdoScaleDown = RdoScd; };
inline Int_t GetRdoScaleDown() { return(fRdoScaleDown); };
inline void Help() { gSystem->Exec(Form("mrbHelp %s", this->ClassName())); };
protected:
Int_t fNofScalerChans;
Int_t fNofScalerSets;
UInt_t fScalerSetMask;
UInt_t fEnableMask;
TArrayI fScaleDown;
Int_t fRdoScaleDown;
ClassDef(TMrbVulomTB, 1)
};
#endif