ROOT logo
#ifndef __DGFModule_h__
#define __DGFModule_h__

//_________________________________________________[C++ CLASS DEFINITION FILE]
//////////////////////////////////////////////////////////////////////////////
// Name:           DGFModule.h
// Purpose:        Class defs for the XIA DGF-4C GUI
// Class:          DGFModule
// Description:    A GUI to operate a XIA DGF-4C
// Author:         R. Lutter
// Revision:       $Id: DGFModule.h,v 1.4 2006-10-09 08:59:16 Rudolf.Lutter Exp $       
// Date:           
// URL:            
// Keywords:       
//////////////////////////////////////////////////////////////////////////////

#include "TNamed.h"
#include "TString.h"

#include "TMrbDGF.h"
#include "DGFControlCommon.h"

//______________________________________________________[C++ CLASS DEFINITION]
//////////////////////////////////////////////////////////////////////////////
// Name:           DGFModule
// Purpose:        A wrapper class for TMrbDGF
/// Description:   Stores internal DGF data;
//                 acts as interface to real DGF objects connected to CAMAC
// Keywords:       
//////////////////////////////////////////////////////////////////////////////

class DGFModule : public TNamed {

	public:
		DGFModule() {};
		DGFModule(const Char_t * Name, const Char_t * Host, Int_t Crate, Int_t Station);
		~DGFModule() {};

//		DGFModule(const DGFModule & f) {};	// default copy ctor

		inline void SetHost(const Char_t * HostName) { fHostName = HostName; };
		inline const Char_t * GetHost() { return(fHostName.Data()); };
		Bool_t SetCrate(Int_t Crate);
		inline Int_t GetCrate() { return(fCrate); };
		Bool_t SetStation(Int_t Station);
		inline Int_t GetStation() { return(fStation); };
		inline void SetAddr(TMrbDGF * Addr) { fAddr = Addr; };
		inline TMrbDGF * GetAddr() { return(fAddr); };
		inline void SetActive(Bool_t Flag = kTRUE) { fIsActive = Flag; };
		inline Bool_t IsActive() { return(fIsActive); };
				
		inline void SetClusterID(Int_t ClusterSerial = 0, const Char_t * ClusterColor = "", const Char_t * SegmentID = "", Int_t HexNum = 0) {
			fClusterID.Set((Int_t) (ClusterSerial << 12) + HexNum, ClusterColor, SegmentID);
		};
		inline TMrbNamedX * GetClusterID() { return(&fClusterID); };
		inline Int_t GetClusterSerial() const { return((Int_t) (fClusterID.GetIndex() >> 12)); }; 		// use TMrbNamedX object:
		inline Int_t GetClusterHexNum() const { return(fClusterID.GetIndex() & 0xFFF); }; 		// use TMrbNamedX object:
		inline const Char_t * GetClusterColor() const { return(fClusterID.GetName()); };	// index <- serial, name <- color
		inline const Char_t * GetClusterSegments() const { return(fClusterID.GetTitle()); };	// title <- segment info
		
	protected:
		Bool_t fIsActive;
		TString fHostName;
		Int_t fCrate;
		Int_t fStation;
		TMrbDGF * fAddr;
		TMrbNamedX fClusterID;

	ClassDef(DGFModule, 1)		// [DGFControl] Module definitions
};

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