ROOT logo
#ifndef __TMrbGanelec_Q1612F_h__
#define __TMrbGanelec_Q1612F_h__

//_________________________________________________[C++ CLASS DEFINITION FILE]
//////////////////////////////////////////////////////////////////////////////
// Name:           expconf/inc/TMrbGanelec_Q1612F.h
// Purpose:        Define experimental configuration for MARaBOU
// Class:          TMrbGanelec_Q1612F	-- ganelec qdc 16 fold
// Description:    Class definitions to implement a configuration front-end for MARaBOU
// Author:         R. Lutter
// Revision:       $Id: TMrbGanelec_Q1612F.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:           TMrbGanelec_Q1612F
// Purpose:        Define an QDC of type Ganelec QDC1612F
// Description:    Defines an QDC of type Ganelec QDC1612F.
// Keywords:
//////////////////////////////////////////////////////////////////////////////

class TMrbGanelec_Q1612F : public TMrbCamacModule {

	public:
		enum	EMrbRegisters		{	kRegOffset,
										kRegCommonOffset,
										kRegMasterGate,
										kRegStatus
									};

		enum	EMrbGanelecStatus	{	kStatusEPS	=	0x1,
										kStatusECE	=	0x2,
										kStatusEEN	=	0x4,
										kStatusCPS	=	0x8,
										kStatusCCE	=	0x10,
										kStatusCSR	=	0x20,
										kStatusCLE	=	0x40,
										kStatusOFS	=	0x80,
										kStatusIND	=	0x100,
									};

		enum						{	kDefaultOffset			=	0		};
		enum						{	kDefaultCommonOffset	=	0x7F	};
		enum						{	kDefaultGate			=	4		};

		enum						{	kBitMGT 	=	10		};
		enum						{	kMaskMGT	=	0x1E00	};

	public:

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

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

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

	ClassDef(TMrbGanelec_Q1612F, 1) 	// [Config] GANELEC Q1612F, 16 x 4K CAMAC QDC
};

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