ROOT logo
#ifndef __TMrbDGFData_h__
#define __TMrbDGFData_h__

//_________________________________________________[C++ CLASS DEFINITION FILE]
//////////////////////////////////////////////////////////////////////////////
// Name:           xiadgf/inc/TMrbDGFData.h
// Purpose:        Interface to module XIA DGF-4C
// Class:          TMrbDGFData        -- data base to store DSP and FPGA data
// Description:    Class definitions to operate the XIA DGF-4C module.
// Author:         R. Lutter
// Revision:       $Id: TMrbDGFData.h,v 1.9 2005-10-20 13:09:51 Rudolf.Lutter Exp $       
// Date:           
// Keywords:
//////////////////////////////////////////////////////////////////////////////

#include "TObject.h"
#include "TSystem.h"
#include "TString.h"
#include "TArrayS.h"

#include "TMrbNamedX.h"
#include "TMrbLofNamedX.h"

//______________________________________________________[C++ CLASS DEFINITION]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMrbDGFData
// Purpose:        Data base to hold DSP / FPGA data
// Methods:
// Description:    
// Keywords:
//////////////////////////////////////////////////////////////////////////////

class TMrbDGFData : public TObject {

	friend class TMrbDGF;

	public:

		// buffer sizes
		enum					{	kFPGAMaxSize			=	0x10000			};
		enum					{	kDSPMaxSize				=	0x8000			};

		// file types for DSP and FPGA code files
		enum	EMrbDGFFileType {	kFileUndef				=	1,
										kFileAscii				=	2,
										kFileBinary 			=	3
									};

		// FPGA types
		enum	EMrbFPGAType 	{	kSystemFPGA,
										kFippiFPGA
									};

		// layout of parameter section in DSP memory
		enum					{	kNofDSPInputParams		=	256 			};
		enum					{	kNofDSPOutputParams		=	160 			};

		enum					{	kNofDSPInparModule		=	64	 			};
		enum					{	kNofDSPInparChannel		=	48	 			};

		enum					{	kDSPInparStartAddr	 	=	0x4000			};
		enum					{	kDSPOutparStartAddr	 	=	kDSPInparStartAddr + kNofDSPInputParams		};
		
		// bit definitions in the control/status reg of the CAMAC Fippi FPGA
		enum EMrbCamacCSR		{
									kRunEna 				=	BIT(0),
									kNewRun 					=	BIT(1),
									kEnaLAM 					=	BIT(3),
									kDSPReset				=	BIT(4),
									kDSPError				=	BIT(12),
									kActive 					=	BIT(13),
									kLAMActive				=	BIT(14)
								};
		enum					{	kCamacCSRMask			=	kRunEna | kNewRun | kEnaLAM |
																	kDSPError | kActive | kLAMActive
								};

		// bit definitions in the control/status reg of the CAMAC System FPGA
		enum EMrbCamacICSR		{
									kSystemFPGAReset		 	=	BIT(0),
									kFippiFPGA0Reset 			=	BIT(4),
									kFippiFPGA1Reset 			=	BIT(5),
									kFippiFPGA2Reset 			=	BIT(6),
									kFippiFPGA3Reset 			=	BIT(7),
									kConnectDSPFromRight 	 	=	BIT(8),
									kConnectDSPFromLeft			=	BIT(9),
									kTerminateDSP	 			=	BIT(10),
									kConnectFastFromRight		=	BIT(11),
									kConnectFastFromLeft		=	BIT(12),
									kTerminateFast				=	BIT(13),
									kSwitchBusNormal			=	0
								};
		enum					{	kFippiFPGAReset 		=	kFippiFPGA0Reset | kFippiFPGA1Reset |
																	kFippiFPGA2Reset | kFippiFPGA3Reset
								};
		enum					{	kFPGAReset  				=	kSystemFPGAReset | kFippiFPGAReset };
		enum					{	kConnectDSPTrigger		=	kConnectDSPFromRight | kConnectDSPFromLeft |
																		kTerminateDSP
								};
		enum					{	kConnectFastTrigger		=	kConnectFastFromRight | kConnectFastFromLeft |
																		kTerminateFast
								};
		enum					{	kSwitchBus				=	kConnectDSPTrigger | kConnectFastTrigger };
		enum					{	kCamacICSRMask			=	kFPGAReset | kSwitchBus };

		// bit definitions in parameter MODCSRA: module control/status reg A
		enum EMrbModCSRA		{};

		// bit definitions in parameter MODCSRB: module control/status reg B (reserved)
		enum EMrbModCSRB		{	kCallUserCode				=	1	};

		// value definitions for parameter RUNTASK: defines kind of run task to be started
		enum EMrbRunTask		{
									kRunSlowControl 	 		=	0,
									kRunStdListMode				=	0x100,
									kRunStdListModeNoTrace		=	0x101,
									kRunStdListModeShort4 		=	0x102,
									kRunStdListModeShort2 		=	0x103,
									kRunFastListMode			=	0x200,
									kRunFastListModeNoTrace		=	0x201,
									kRunFastListModeShort4 		=	0x202,
									kRunFastListModeShort2 		=	0x203,
									kRunMCA 					=	0x301
								};

		// value definitions for parameter CONTROLTASK: defines control tasks
		enum EMrbControlTask	{
									kProgramDACs 		=	0,
									kConnectInputs		=	1,
									kDisconnectInputs	=	2,
									kCalibrate			=	3,
									kSampleADCs 	 	=	4,
									kUpdateFPGA 		=	5,
									kReadHistoFirstPage =	9,
									kReadHistoNextPage	=	10
								};

		// bit definitions in parameter CHANCSRA: control/status reg A for channel X
		enum EMrbChanCSRA		{
									kGroupTriggerOnly	=	BIT(0),
									kIndivLiveTime		=	BIT(1),
									kGoodChannel		=	BIT(2),
									kReadAlways 		=	BIT(3),
									kEnableTrigger		=	BIT(4),
									kTriggerPositive	=	BIT(5),
									kGFLTValidate		=	BIT(6),
									kHistoEnergies		=	BIT(7),
									kHistoBaselines 	=	BIT(8),
									kCorrBallDeficit	=	BIT(9),
									kComputeCFT 		=	BIT(10),
									kEnaMultiplicity	=	BIT(11),
									kBipolarSignals 	=	BIT(15)
								};

		// psa offsets from param userin
		enum EMrbUserPsaData	{	kPsaBaseline03		=	0,
									kPsaCutOff01,
									kPsaCutOff23,
									kPsaT0Thresh01,
									kPsaT0Thresh23,
									kPsaT90Thresh03,
									kPsaPSACh0,
									kPsaPSACh1,
									kPsaPSACh2,
									kPsaPSACh3,
									kPsaPSALength01,
									kPsaPSALength23,
									kPsaPSAOffset01,
									kPsaPSAOffset23,
									kPsaTFACutOff01,
									kPsaTFACutOff23
								};

		// bit definitions for user psa: control reg
		enum EMrbUserPsaCSR		{
									kT0 				=	BIT(0),
									kT90				=	BIT(1),
									kTslope 			=	BIT(2),
									kQmax		 		=	BIT(3),
									kUseEnergyCutTFA 	=	BIT(4),
									kUseTFA 			=	BIT(5),
									kInitTFA			=	BIT(6),
									kForceAveTiming		=	BIT(7),
									kAvePulseShape		=	BIT(8),
									kAveRefT0			=	BIT(9),
									kAveRefT90 			=	BIT(10),
									kRefPsaOffsLength	=	BIT(11),
									kQuadInterpolT0 	=	BIT(12),
									kInterpolT0Tslope	=	BIT(13),
									kOverwriteGSLT		=	BIT(14),
									kInterpolT50T90 	=	BIT(15)
								};


		enum					{	kChanCSRAMask		=	0xffff			};

		// bit definitions in parameter CHANCSRB: control/status reg B for channel X (reserved)
		enum EMrbChanCSRB		{};

		// bit definitions: software status (data)
		enum EMrbDGFStatusDBits	{
									kSystemFPGACodeRead		=	BIT(2),
									kFippiFPGARevDCodeRead	=	BIT(3),
									kFippiFPGARevECodeRead	=	BIT(4),
									kDSPCodeRead 				=	BIT(5),
									kParamNamesRead			=	BIT(6)
								};

		// number of channels per module
		enum					{	kNofChannels		=	4			};
		enum					{	kNofMCAPages		=	8			};
		enum					{	kMCAPageSize		=	32 * 1024	};
		enum					{	kUntrigTraceLength	=	8192		};
		enum					{	kChannelPattern	=	0xF };

		// module revision
		enum EMrbDGFRevision	{	kRevUnknown 		= -1,
									kOrigRevD			= 3,
									kOrigRevE			= 4,
									kRevD				= 0,
									kRevE				= 1
								};
		enum					{	kNofRevs			= kRevE - kRevD + 1 };

	public:
		TMrbDGFData();				 					// default ctor

		~TMrbDGFData() { Reset(); };					// default dtor

		// FPGA section
		Int_t ReadFPGACodeBinary(EMrbFPGAType FPGAType, const Char_t * CodeFile = "", Int_t Rev = kRevUnknown, Bool_t Forced = kFALSE);	// read FPGA data (binary) from file
		Int_t ReadFPGACodeBinary(const Char_t * FPGAType, const Char_t * CodeFile = "", Int_t Rev = kRevUnknown, Bool_t Forced = kFALSE);
		Int_t ReadFPGACodeAscii(EMrbFPGAType FPGAType, const Char_t * CodeFile = "", Int_t Rev = kRevUnknown, Bool_t Forced = kFALSE); 	// read FPGA data (ascii) from file
		Int_t ReadFPGACodeAscii(const Char_t * FPGAType, const Char_t * CodeFile = "", Int_t Rev = kRevUnknown, Bool_t Forced = kFALSE);
		Int_t ReadFPGACode(EMrbFPGAType FPGAType, const Char_t * CodeFile = "", Int_t Rev = kRevUnknown, Bool_t Forced = kFALSE);	// read FPGA data depending on file ext
		Int_t ReadFPGACode(const Char_t * FPGAType, const Char_t * CodeFile = "", Int_t Rev = kRevUnknown, Bool_t Forced = kFALSE);
		Bool_t FPGACodeRead(EMrbFPGAType FPGAType, Int_t Rev = kRevUnknown) const;
		Bool_t FPGACodeRead(const Char_t * FPGAType, Int_t Rev = kRevUnknown) const;
		inline Int_t GetFPGACodeSize(EMrbFPGAType FPGAType, Int_t Rev = kRevUnknown) const {
			return (FPGAType == kSystemFPGA ? fSystemFPGASize : fFippiFPGASize[Rev]);
		};
		inline UShort_t * GetFPGACodeAddr(EMrbFPGAType FPGAType, Int_t Rev = kRevUnknown) {
			return (FPGAType == kSystemFPGA ? (UShort_t *) fSystemFPGACode.GetArray() : (UShort_t *) fFippiFPGACode[Rev].GetArray());
		};
				
		// DSP section
		Int_t ReadDSPCodeBinary(const Char_t * CodeFile = "", Bool_t Forced = kFALSE); 	// read DSP data (binary) from file
		Int_t ReadDSPCodeAscii(const Char_t * CodeFile = "", Bool_t Forced = kFALSE);	// read DSP data (ascii) from file
		Int_t ReadDSPCode(const Char_t * CodeFile = "", Bool_t Forced = kFALSE);		// read DSP data depending on file ext
		inline Bool_t DSPCodeRead() const { return((fStatusD & kDSPCodeRead) != 0); };
		inline Int_t GetDSPCodeSize() const { return(fDSPSize); };
		UShort_t * GetDSPCodeAddr() { return((UShort_t *) fDSPCode.GetArray()); };
		
		
		// parameter section
		Int_t ReadNameTable(const Char_t * ParamFile = "", Bool_t Forced = kFALSE);		// read parameter names from file
		Int_t AddToNameTable(const Char_t * ParamFile, const Char_t * Comment = NULL);
		Int_t AddToNameTable(const Char_t * ParamName, Int_t Index, const Char_t * Comment = NULL);
		inline TMrbNamedX * FindParam(const Char_t * ParamName) const { return((TMrbNamedX *) fParamNames.FindByName(ParamName)); };
		inline TMrbNamedX * FindParam(Int_t Offset) const { return((TMrbNamedX *) fParamNames.FindByIndex(Offset)); };
		TMrbNamedX * FindParam(Int_t Channel, const Char_t * ParamName);

		inline TMrbNamedX * FirstParam() const { return((TMrbNamedX *) fParamNames.First()); };
		inline TMrbNamedX * NextParam(TMrbNamedX * Param) const { return((TMrbNamedX *) fParamNames.After(Param)); };
		inline Bool_t ParamNamesRead() const { return((fStatusD & kParamNamesRead) != 0); };
		inline Int_t GetNofParams() const { return(fNofParams); };
		inline TMrbLofNamedX * GetLofParamNames() { return(&fParamNames); };
		
		inline Int_t GetXiaRelease() const { return(fXiaRelease); };					// return xia release
		void PrintXiaRelease() const;
		
		void Print(Option_t * Option) const { TObject::Print(Option); };												// show status
		void Print() const;												// show status

		inline void SetLocal(Bool_t LocalFlag) { fLocalData = LocalFlag; };	// local data base?

		inline void SetVerboseMode(Bool_t VerboseFlag = kTRUE) { fVerboseMode = VerboseFlag;};	// verbose mode on/off
		inline Bool_t IsVerbose() const { return(fVerboseMode); };
		
		inline void Help() { gSystem->Exec(Form("mrbHelp %s", this->ClassName())); };

	public:																// public lists of bits & bytes
		TMrbLofNamedX fLofDGFStatusDBits;								// soft status (data)
		TMrbLofNamedX fLofDGFFileTypes;								// file types for DSP and FPGA code files
		TMrbLofNamedX fLofFPGATypes;								// FPGA types: system or fippi
		TMrbLofNamedX fLofCamacCSRBits;								// camac control & status
		TMrbLofNamedX fLofCamacICSRBits;							// ... (system)
		TMrbLofNamedX fLofModCSRABits; 								// module control & status A
		TMrbLofNamedX fLofModCSRBBits; 								// module control B
		TMrbLofNamedX fLofChanCSRABits;								// channel control & status A
		TMrbLofNamedX fLofUserPsaCSRBits;							// user psa control reg
		TMrbLofNamedX fLofRunTasks;									// list of run tasks	
		TMrbLofNamedX fLofControlTasks;								// list of control tasks

	protected:
		void Reset();												// reset data base
		void Setup();												// initialize data base
		Bool_t CheckXiaRelease();									// check release
		
	protected:
		Bool_t fVerboseMode;				// common verbosity flag for all DGF modules

		UInt_t fXiaRelease;					// xia release
	
		UInt_t fStatusD;					// soft status (data)
		Bool_t fLocalData;					// kTRUE if data base is local

		TString fDSPFile;					// name of DSP code file
		EMrbDGFFileType fDSPType;			// type of DSP file: ascii or binary
		Int_t fDSPSize;						// actual size of DSP code
		TArrayS fDSPCode;					// DSP code: 32 bit words, stored in 2 * UShort_t

		TString fSystemFPGAFile;			// name of FPGA code file (SYSTEM)
		EMrbDGFFileType fSystemFPGAType;	// type of FPGA file: ascii or binary
		Int_t fSystemFPGASize;				// actual size of FPGA code
		TArrayS fSystemFPGACode;			// FPGA code: byte oriented, stored in UShort_t(LSB), MSB=0

		TString fFippiFPGAFile[kNofRevs];	// name of FPGA code file (FIPPI)
		EMrbDGFFileType fFippiFPGAType[kNofRevs];	// type of FPGA file: ascii or binary
		Int_t fFippiFPGASize[kNofRevs];		// actual size of FPGA code
		TArrayS fFippiFPGACode[kNofRevs];	// FPGA code: byte oriented, stored in UShort_t(LSB), MSB=0

		TString fParamFile; 				// file containing param names
		Int_t fNofParams;					// number of params
		TMrbLofNamedX fParamNames; 			// DSP param table, pairs of (ParamName, Offset)

	ClassDef(TMrbDGFData, 1)		// [XIA DGF-4C] Data base common to all DGF modules
};

#endif
 TMrbDGFData.h:1
 TMrbDGFData.h:2
 TMrbDGFData.h:3
 TMrbDGFData.h:4
 TMrbDGFData.h:5
 TMrbDGFData.h:6
 TMrbDGFData.h:7
 TMrbDGFData.h:8
 TMrbDGFData.h:9
 TMrbDGFData.h:10
 TMrbDGFData.h:11
 TMrbDGFData.h:12
 TMrbDGFData.h:13
 TMrbDGFData.h:14
 TMrbDGFData.h:15
 TMrbDGFData.h:16
 TMrbDGFData.h:17
 TMrbDGFData.h:18
 TMrbDGFData.h:19
 TMrbDGFData.h:20
 TMrbDGFData.h:21
 TMrbDGFData.h:22
 TMrbDGFData.h:23
 TMrbDGFData.h:24
 TMrbDGFData.h:25
 TMrbDGFData.h:26
 TMrbDGFData.h:27
 TMrbDGFData.h:28
 TMrbDGFData.h:29
 TMrbDGFData.h:30
 TMrbDGFData.h:31
 TMrbDGFData.h:32
 TMrbDGFData.h:33
 TMrbDGFData.h:34
 TMrbDGFData.h:35
 TMrbDGFData.h:36
 TMrbDGFData.h:37
 TMrbDGFData.h:38
 TMrbDGFData.h:39
 TMrbDGFData.h:40
 TMrbDGFData.h:41
 TMrbDGFData.h:42
 TMrbDGFData.h:43
 TMrbDGFData.h:44
 TMrbDGFData.h:45
 TMrbDGFData.h:46
 TMrbDGFData.h:47
 TMrbDGFData.h:48
 TMrbDGFData.h:49
 TMrbDGFData.h:50
 TMrbDGFData.h:51
 TMrbDGFData.h:52
 TMrbDGFData.h:53
 TMrbDGFData.h:54
 TMrbDGFData.h:55
 TMrbDGFData.h:56
 TMrbDGFData.h:57
 TMrbDGFData.h:58
 TMrbDGFData.h:59
 TMrbDGFData.h:60
 TMrbDGFData.h:61
 TMrbDGFData.h:62
 TMrbDGFData.h:63
 TMrbDGFData.h:64
 TMrbDGFData.h:65
 TMrbDGFData.h:66
 TMrbDGFData.h:67
 TMrbDGFData.h:68
 TMrbDGFData.h:69
 TMrbDGFData.h:70
 TMrbDGFData.h:71
 TMrbDGFData.h:72
 TMrbDGFData.h:73
 TMrbDGFData.h:74
 TMrbDGFData.h:75
 TMrbDGFData.h:76
 TMrbDGFData.h:77
 TMrbDGFData.h:78
 TMrbDGFData.h:79
 TMrbDGFData.h:80
 TMrbDGFData.h:81
 TMrbDGFData.h:82
 TMrbDGFData.h:83
 TMrbDGFData.h:84
 TMrbDGFData.h:85
 TMrbDGFData.h:86
 TMrbDGFData.h:87
 TMrbDGFData.h:88
 TMrbDGFData.h:89
 TMrbDGFData.h:90
 TMrbDGFData.h:91
 TMrbDGFData.h:92
 TMrbDGFData.h:93
 TMrbDGFData.h:94
 TMrbDGFData.h:95
 TMrbDGFData.h:96
 TMrbDGFData.h:97
 TMrbDGFData.h:98
 TMrbDGFData.h:99
 TMrbDGFData.h:100
 TMrbDGFData.h:101
 TMrbDGFData.h:102
 TMrbDGFData.h:103
 TMrbDGFData.h:104
 TMrbDGFData.h:105
 TMrbDGFData.h:106
 TMrbDGFData.h:107
 TMrbDGFData.h:108
 TMrbDGFData.h:109
 TMrbDGFData.h:110
 TMrbDGFData.h:111
 TMrbDGFData.h:112
 TMrbDGFData.h:113
 TMrbDGFData.h:114
 TMrbDGFData.h:115
 TMrbDGFData.h:116
 TMrbDGFData.h:117
 TMrbDGFData.h:118
 TMrbDGFData.h:119
 TMrbDGFData.h:120
 TMrbDGFData.h:121
 TMrbDGFData.h:122
 TMrbDGFData.h:123
 TMrbDGFData.h:124
 TMrbDGFData.h:125
 TMrbDGFData.h:126
 TMrbDGFData.h:127
 TMrbDGFData.h:128
 TMrbDGFData.h:129
 TMrbDGFData.h:130
 TMrbDGFData.h:131
 TMrbDGFData.h:132
 TMrbDGFData.h:133
 TMrbDGFData.h:134
 TMrbDGFData.h:135
 TMrbDGFData.h:136
 TMrbDGFData.h:137
 TMrbDGFData.h:138
 TMrbDGFData.h:139
 TMrbDGFData.h:140
 TMrbDGFData.h:141
 TMrbDGFData.h:142
 TMrbDGFData.h:143
 TMrbDGFData.h:144
 TMrbDGFData.h:145
 TMrbDGFData.h:146
 TMrbDGFData.h:147
 TMrbDGFData.h:148
 TMrbDGFData.h:149
 TMrbDGFData.h:150
 TMrbDGFData.h:151
 TMrbDGFData.h:152
 TMrbDGFData.h:153
 TMrbDGFData.h:154
 TMrbDGFData.h:155
 TMrbDGFData.h:156
 TMrbDGFData.h:157
 TMrbDGFData.h:158
 TMrbDGFData.h:159
 TMrbDGFData.h:160
 TMrbDGFData.h:161
 TMrbDGFData.h:162
 TMrbDGFData.h:163
 TMrbDGFData.h:164
 TMrbDGFData.h:165
 TMrbDGFData.h:166
 TMrbDGFData.h:167
 TMrbDGFData.h:168
 TMrbDGFData.h:169
 TMrbDGFData.h:170
 TMrbDGFData.h:171
 TMrbDGFData.h:172
 TMrbDGFData.h:173
 TMrbDGFData.h:174
 TMrbDGFData.h:175
 TMrbDGFData.h:176
 TMrbDGFData.h:177
 TMrbDGFData.h:178
 TMrbDGFData.h:179
 TMrbDGFData.h:180
 TMrbDGFData.h:181
 TMrbDGFData.h:182
 TMrbDGFData.h:183
 TMrbDGFData.h:184
 TMrbDGFData.h:185
 TMrbDGFData.h:186
 TMrbDGFData.h:187
 TMrbDGFData.h:188
 TMrbDGFData.h:189
 TMrbDGFData.h:190
 TMrbDGFData.h:191
 TMrbDGFData.h:192
 TMrbDGFData.h:193
 TMrbDGFData.h:194
 TMrbDGFData.h:195
 TMrbDGFData.h:196
 TMrbDGFData.h:197
 TMrbDGFData.h:198
 TMrbDGFData.h:199
 TMrbDGFData.h:200
 TMrbDGFData.h:201
 TMrbDGFData.h:202
 TMrbDGFData.h:203
 TMrbDGFData.h:204
 TMrbDGFData.h:205
 TMrbDGFData.h:206
 TMrbDGFData.h:207
 TMrbDGFData.h:208
 TMrbDGFData.h:209
 TMrbDGFData.h:210
 TMrbDGFData.h:211
 TMrbDGFData.h:212
 TMrbDGFData.h:213
 TMrbDGFData.h:214
 TMrbDGFData.h:215
 TMrbDGFData.h:216
 TMrbDGFData.h:217
 TMrbDGFData.h:218
 TMrbDGFData.h:219
 TMrbDGFData.h:220
 TMrbDGFData.h:221
 TMrbDGFData.h:222
 TMrbDGFData.h:223
 TMrbDGFData.h:224
 TMrbDGFData.h:225
 TMrbDGFData.h:226
 TMrbDGFData.h:227
 TMrbDGFData.h:228
 TMrbDGFData.h:229
 TMrbDGFData.h:230
 TMrbDGFData.h:231
 TMrbDGFData.h:232
 TMrbDGFData.h:233
 TMrbDGFData.h:234
 TMrbDGFData.h:235
 TMrbDGFData.h:236
 TMrbDGFData.h:237
 TMrbDGFData.h:238
 TMrbDGFData.h:239
 TMrbDGFData.h:240
 TMrbDGFData.h:241
 TMrbDGFData.h:242
 TMrbDGFData.h:243
 TMrbDGFData.h:244
 TMrbDGFData.h:245
 TMrbDGFData.h:246
 TMrbDGFData.h:247
 TMrbDGFData.h:248
 TMrbDGFData.h:249
 TMrbDGFData.h:250
 TMrbDGFData.h:251
 TMrbDGFData.h:252
 TMrbDGFData.h:253
 TMrbDGFData.h:254
 TMrbDGFData.h:255
 TMrbDGFData.h:256
 TMrbDGFData.h:257
 TMrbDGFData.h:258
 TMrbDGFData.h:259
 TMrbDGFData.h:260
 TMrbDGFData.h:261
 TMrbDGFData.h:262
 TMrbDGFData.h:263
 TMrbDGFData.h:264
 TMrbDGFData.h:265
 TMrbDGFData.h:266
 TMrbDGFData.h:267
 TMrbDGFData.h:268
 TMrbDGFData.h:269
 TMrbDGFData.h:270
 TMrbDGFData.h:271
 TMrbDGFData.h:272
 TMrbDGFData.h:273
 TMrbDGFData.h:274
 TMrbDGFData.h:275
 TMrbDGFData.h:276
 TMrbDGFData.h:277
 TMrbDGFData.h:278
 TMrbDGFData.h:279
 TMrbDGFData.h:280
 TMrbDGFData.h:281
 TMrbDGFData.h:282
 TMrbDGFData.h:283
 TMrbDGFData.h:284
 TMrbDGFData.h:285
 TMrbDGFData.h:286
 TMrbDGFData.h:287
 TMrbDGFData.h:288
 TMrbDGFData.h:289
 TMrbDGFData.h:290
 TMrbDGFData.h:291
 TMrbDGFData.h:292
 TMrbDGFData.h:293
 TMrbDGFData.h:294
 TMrbDGFData.h:295
 TMrbDGFData.h:296
 TMrbDGFData.h:297
 TMrbDGFData.h:298
 TMrbDGFData.h:299
 TMrbDGFData.h:300
 TMrbDGFData.h:301
 TMrbDGFData.h:302
 TMrbDGFData.h:303
 TMrbDGFData.h:304
 TMrbDGFData.h:305
 TMrbDGFData.h:306
 TMrbDGFData.h:307
 TMrbDGFData.h:308
 TMrbDGFData.h:309
 TMrbDGFData.h:310
 TMrbDGFData.h:311
 TMrbDGFData.h:312
 TMrbDGFData.h:313
 TMrbDGFData.h:314
 TMrbDGFData.h:315
 TMrbDGFData.h:316
 TMrbDGFData.h:317
 TMrbDGFData.h:318
 TMrbDGFData.h:319
 TMrbDGFData.h:320
 TMrbDGFData.h:321
 TMrbDGFData.h:322
 TMrbDGFData.h:323
 TMrbDGFData.h:324
 TMrbDGFData.h:325
 TMrbDGFData.h:326
 TMrbDGFData.h:327
 TMrbDGFData.h:328
 TMrbDGFData.h:329
 TMrbDGFData.h:330