#ifndef __TMrbSilena_4418V_h__
#define __TMrbSilena_4418V_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 "TMrbCamacModule.h"
class TMrbModuleChannel;
class TMrbSubevent;
class TMrbSilena_4418V : public TMrbCamacModule {
public:
enum EMrbRegisters { kRegLowerThresh,
kRegUpperThresh,
kRegOffset,
kRegStatus,
kRegCommonThresh
};
enum EMrbSilenaStatus { kStatusSUB = BIT(9),
kStatusEEN = BIT(10),
kStatusOVF = BIT(11),
kStatusCCE = BIT(12),
kStatusCSR = BIT(13),
kStatusCLE = BIT(14)
};
enum { kDefaultOffset = 140 };
enum { kDefaultCommonThresh = 40 };
enum { kDefaultStatus = kStatusSUB };
enum { kZeroCompressionStatus = kStatusSUB | kStatusCCE | kStatusCSR };
public:
TMrbSilena_4418V() {};
TMrbSilena_4418V(const Char_t * ModuleName, const Char_t * ModulePosition);
~TMrbSilena_4418V() {};
Bool_t MakeReadoutCode(ofstream & RdoStrm, TMrbConfig::EMrbModuleTag TagIndex);
Bool_t MakeReadoutCode(ofstream & RdoStrm, TMrbConfig::EMrbModuleTag TagIndex, TMrbModuleChannel * Channel, Int_t Value = 0);
inline void SetZeroSuppression(Bool_t Flag = kTRUE) { fZeroSuppression = Flag; };
inline Bool_t HasZeroSuppression() const { return(fZeroSuppression); };
virtual inline const Char_t * GetMnemonic() const { return("sil_4418v"); };
virtual Bool_t CheckSubeventType(TMrbSubevent * Subevent) const;
inline void Help() { gSystem->Exec(Form("mrbHelp %s", this->ClassName())); };
protected:
void DefineRegisters();
protected:
Bool_t fZeroSuppression;
ClassDef(TMrbSilena_4418V, 1)
};
#endif