ROOT logo
#ifndef __TMrbAdcd_9701_h__
#define __TMrbAdcd_9701_h__

//_________________________________________________[C++ CLASS DEFINITION FILE]
//////////////////////////////////////////////////////////////////////////////
// Name:           expconf/inc/TMrbAdcd_9701.h
// Purpose:        Define experimental configuration for MARaBOU
// Class:          TMrbAdcd_9701        -- dual flash adc tum/w.liebl
// Description:    Class definitions to implement a configuration front-end for MARaBOU
// Author:         R. Lutter
// Revision:       $Id: TMrbAdcd_9701.h,v 1.9 2008-12-10 12:13:49 Rudolf.Lutter 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 "TObject.h"

#include "TMrbCamacModule.h"

class TMrbModuleChannel;

//______________________________________________________[C++ CLASS DEFINITION]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMrbAdcd_9701
// Purpose:        Define a flash ADC of type ADCD 9701
// Description:    Defines a flash ADC of type ADCD 9701.
// Keywords:
//////////////////////////////////////////////////////////////////////////////

class TMrbAdcd_9701 : public TMrbCamacModule {

	public:
		enum	EMrbRegisters	{	kRegLowerThresh 	};

	public:

		TMrbAdcd_9701() {};  											// default ctor
		TMrbAdcd_9701(const Char_t * ModuleName, const Char_t * ModulePosition, Int_t SubDevice = 0, Int_t Channels = 2048); // define a new flash adc
		~TMrbAdcd_9701() {};											// remove adc from list

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

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

		virtual inline Int_t GetNofSubDevices() const { return(2); };				// houses 2 identical adcs
		virtual inline Bool_t HasRandomReadout() const { return(kFALSE); };		// must be read as a whole

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

	protected:
		void DefineRegisters(); 				// define camac regs

	ClassDef(TMrbAdcd_9701, 1)		// [Config] ADCD 9701, 2 x 2K CAMAC Flash ADC
};

#endif
 TMrbAdcd_9701.h:1
 TMrbAdcd_9701.h:2
 TMrbAdcd_9701.h:3
 TMrbAdcd_9701.h:4
 TMrbAdcd_9701.h:5
 TMrbAdcd_9701.h:6
 TMrbAdcd_9701.h:7
 TMrbAdcd_9701.h:8
 TMrbAdcd_9701.h:9
 TMrbAdcd_9701.h:10
 TMrbAdcd_9701.h:11
 TMrbAdcd_9701.h:12
 TMrbAdcd_9701.h:13
 TMrbAdcd_9701.h:14
 TMrbAdcd_9701.h:15
 TMrbAdcd_9701.h:16
 TMrbAdcd_9701.h:17
 TMrbAdcd_9701.h:18
 TMrbAdcd_9701.h:19
 TMrbAdcd_9701.h:20
 TMrbAdcd_9701.h:21
 TMrbAdcd_9701.h:22
 TMrbAdcd_9701.h:23
 TMrbAdcd_9701.h:24
 TMrbAdcd_9701.h:25
 TMrbAdcd_9701.h:26
 TMrbAdcd_9701.h:27
 TMrbAdcd_9701.h:28
 TMrbAdcd_9701.h:29
 TMrbAdcd_9701.h:30
 TMrbAdcd_9701.h:31
 TMrbAdcd_9701.h:32
 TMrbAdcd_9701.h:33
 TMrbAdcd_9701.h:34
 TMrbAdcd_9701.h:35
 TMrbAdcd_9701.h:36
 TMrbAdcd_9701.h:37
 TMrbAdcd_9701.h:38
 TMrbAdcd_9701.h:39
 TMrbAdcd_9701.h:40
 TMrbAdcd_9701.h:41
 TMrbAdcd_9701.h:42
 TMrbAdcd_9701.h:43
 TMrbAdcd_9701.h:44
 TMrbAdcd_9701.h:45
 TMrbAdcd_9701.h:46
 TMrbAdcd_9701.h:47
 TMrbAdcd_9701.h:48
 TMrbAdcd_9701.h:49
 TMrbAdcd_9701.h:50
 TMrbAdcd_9701.h:51
 TMrbAdcd_9701.h:52
 TMrbAdcd_9701.h:53
 TMrbAdcd_9701.h:54
 TMrbAdcd_9701.h:55
 TMrbAdcd_9701.h:56
 TMrbAdcd_9701.h:57
 TMrbAdcd_9701.h:58
 TMrbAdcd_9701.h:59
 TMrbAdcd_9701.h:60
 TMrbAdcd_9701.h:61
 TMrbAdcd_9701.h:62
 TMrbAdcd_9701.h:63
 TMrbAdcd_9701.h:64
 TMrbAdcd_9701.h:65
 TMrbAdcd_9701.h:66
 TMrbAdcd_9701.h:67