ROOT logo
#ifndef __TMrbSis_3302_h__
#define __TMrbSis_3302_h__

//_________________________________________________[C++ CLASS DEFINITION FILE]
//////////////////////////////////////////////////////////////////////////////
// Name:           expconf/inc/TMrbSis_3302.h
// Purpose:        Define experimental configuration for MARaBOU
// Class:          TMrbSis_3302        -- VME digitizer adc
// Description:    Class definitions to implement a configuration front-end for MARaBOU
// Author:         R. Lutter
// Revision:       $Id: TMrbSis_3302.h,v 1.6 2012-01-18 11:11:32 Marabou Exp $
// Date:
// Keywords:
//////////////////////////////////////////////////////////////////////////////

namespace std {} using namespace std;

#include <cstdlib>
#include <iostream>
#include <sstream>
#include <iomanip>
#include <fstream>

#include "Rtypes.h"
#include "TSystem.h"
#include "TEnv.h"
#include "TObject.h"

//______________________________________________________[C++ CLASS DEFINITION]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMrbSis_3302
// Purpose:        Define a VME module type SIS 3302
// Description:    Defines a VME module SIS 3302
// Keywords:
//////////////////////////////////////////////////////////////////////////////

class TMrbSis_3302 : public TMrbVMEModule {

	public:
		enum				{	kSegSizeReduced		=	0x1000000L	};
		enum				{	kSegSizeNormal		=	0x8000000L	};
		enum				{	kAddrMod			=	0x09	};

		enum				{	kNofGroups		=	4	};
		enum				{	kNofChannels	=	8	};

	public:

		TMrbSis_3302() {};  												// default ctor
		TMrbSis_3302(const Char_t * ModuleName, UInt_t BaseAddr, Bool_t ReducedAddrSpace = kFALSE); 			// define a new module
		~TMrbSis_3302() {};													// default dtor

		Bool_t MakeReadoutCode(ofstream & RdoStrm, TMrbConfig::EMrbModuleTag TagIndex);  	// generate part of code
		Bool_t MakeReadoutCode(ofstream & RdoStrm, TMrbConfig::EMrbModuleTag TagIndex, TMrbVMEChannel * Channel, Int_t Value = 0);  	// generate code for given channel

		virtual inline const Char_t * GetMnemonic() const { return("sis_3302"); }; 	// module mnemonic

		inline void SetTracingMode(Bool_t Flag = kFALSE) { fTracingMode = Flag; };
		inline Bool_t TracingEnabled() { return(fTracingMode); };

		inline void SetBlockXfer(Bool_t Flag = kTRUE) { fBlockXfer = Flag; };
		inline Bool_t BlockXferEnabled() { return(fBlockXfer); };

		inline void SetMaxEvents(Int_t Events) { fMaxEvents = Events; };
		inline Int_t GetMaxEvents() { return(fMaxEvents); };

		inline Bool_t HasBlockXfer() const { return(kTRUE); };			// module is capable of using BLT

		TEnv * UseSettings(const Char_t * SettingsFile = NULL);

		virtual Bool_t CheckProcType();
		
		inline void Help() { gSystem->Exec(Form("mrbHelp %s", this->ClassName())); };

	protected:
		void DefineRegisters(); 							// define vme registers

	protected:
		Bool_t fTracingMode;
		Bool_t fBlockXfer;
		Int_t fMaxEvents;
		TString fSettingsFile;
		TString fDumpFile;

	ClassDef(TMrbSis_3302, 1)		// [Config] SIS 3302, VME digitizing adc
};

#endif
 TMrbSis_3302.h:1
 TMrbSis_3302.h:2
 TMrbSis_3302.h:3
 TMrbSis_3302.h:4
 TMrbSis_3302.h:5
 TMrbSis_3302.h:6
 TMrbSis_3302.h:7
 TMrbSis_3302.h:8
 TMrbSis_3302.h:9
 TMrbSis_3302.h:10
 TMrbSis_3302.h:11
 TMrbSis_3302.h:12
 TMrbSis_3302.h:13
 TMrbSis_3302.h:14
 TMrbSis_3302.h:15
 TMrbSis_3302.h:16
 TMrbSis_3302.h:17
 TMrbSis_3302.h:18
 TMrbSis_3302.h:19
 TMrbSis_3302.h:20
 TMrbSis_3302.h:21
 TMrbSis_3302.h:22
 TMrbSis_3302.h:23
 TMrbSis_3302.h:24
 TMrbSis_3302.h:25
 TMrbSis_3302.h:26
 TMrbSis_3302.h:27
 TMrbSis_3302.h:28
 TMrbSis_3302.h:29
 TMrbSis_3302.h:30
 TMrbSis_3302.h:31
 TMrbSis_3302.h:32
 TMrbSis_3302.h:33
 TMrbSis_3302.h:34
 TMrbSis_3302.h:35
 TMrbSis_3302.h:36
 TMrbSis_3302.h:37
 TMrbSis_3302.h:38
 TMrbSis_3302.h:39
 TMrbSis_3302.h:40
 TMrbSis_3302.h:41
 TMrbSis_3302.h:42
 TMrbSis_3302.h:43
 TMrbSis_3302.h:44
 TMrbSis_3302.h:45
 TMrbSis_3302.h:46
 TMrbSis_3302.h:47
 TMrbSis_3302.h:48
 TMrbSis_3302.h:49
 TMrbSis_3302.h:50
 TMrbSis_3302.h:51
 TMrbSis_3302.h:52
 TMrbSis_3302.h:53
 TMrbSis_3302.h:54
 TMrbSis_3302.h:55
 TMrbSis_3302.h:56
 TMrbSis_3302.h:57
 TMrbSis_3302.h:58
 TMrbSis_3302.h:59
 TMrbSis_3302.h:60
 TMrbSis_3302.h:61
 TMrbSis_3302.h:62
 TMrbSis_3302.h:63
 TMrbSis_3302.h:64
 TMrbSis_3302.h:65
 TMrbSis_3302.h:66
 TMrbSis_3302.h:67
 TMrbSis_3302.h:68
 TMrbSis_3302.h:69
 TMrbSis_3302.h:70
 TMrbSis_3302.h:71
 TMrbSis_3302.h:72
 TMrbSis_3302.h:73
 TMrbSis_3302.h:74
 TMrbSis_3302.h:75
 TMrbSis_3302.h:76
 TMrbSis_3302.h:77
 TMrbSis_3302.h:78
 TMrbSis_3302.h:79
 TMrbSis_3302.h:80
 TMrbSis_3302.h:81
 TMrbSis_3302.h:82
 TMrbSis_3302.h:83
 TMrbSis_3302.h:84
 TMrbSis_3302.h:85
 TMrbSis_3302.h:86
 TMrbSis_3302.h:87
 TMrbSis_3302.h:88