ROOT logo
#ifndef __TMrbOrtec_413A_h__
#define __TMrbOrtec_413A_h__

//_________________________________________________[C++ CLASS DEFINITION FILE]
//////////////////////////////////////////////////////////////////////////////
// Name:           expconf/inc/TMrbOrtec_413A.h
// Purpose:        Define experimental configuration for MARaBOU
// Class:          TMrbOrtec_413A     -- ortec ad413a
// Description:    Class definitions to implement a configuration front-end for MARaBOU
// Author:         R. Lutter
// Revision:       $Id: TMrbOrtec_413A.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:           TMrbOrtec_413A
// Purpose:        Define an ADC of type Ortec AD413A
// Description:    Defines an ADC of type Ortec AD413A.
// Keywords:
//////////////////////////////////////////////////////////////////////////////

class TMrbOrtec_413A : public TMrbCamacModule {

	public:
		enum	EMrbRegisters		{	kRegLowerThresh,
										kRegStatus,
										kRegGate
									};

		enum	EMrbOrtecStatus 	{	kStatusZSD	=	BIT(8),
										kStatusCRE	=	BIT(9),
										kStatusSME	=	BIT(12),
										kStatusCRA	=	BIT(13),
										kStatusCLE	=	BIT(14),
										kStatusOSD	=	BIT(15)
									};

		enum	EMrbOrtecGate	 	{	kGateG1D	=	BIT(0),
										kGateG2D	=	BIT(1),
										kGateG3D	=	BIT(2),
										kGateG4D	=	BIT(3),
										kGateMGD	=	BIT(4)
									};

		enum						{	kDefaultLowerThresh		=	36		};
		enum						{	kDefaultStatus			=	kStatusCRE | kStatusOSD | kStatusZSD | kStatusCRA		};
		enum						{	kDefaultGate			=	kGateG1D | kGateG2D | kGateG3D | kGateG4D		};

	public:

		TMrbOrtec_413A() {};														// default ctor
		TMrbOrtec_413A(const Char_t * ModuleName, const Char_t * ModulePosition);				// define a new silena adc
		~TMrbOrtec_413A() {};														// remove silena 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("ortec_413a"); }; 	// module mnemonic

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

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

	ClassDef(TMrbOrtec_413A, 1) 	// [Config] ORTEC 413A, 4 x 8K CAMAC ADC
};

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