ROOT logo
#ifndef __TMbsReadoutProc_h__
#define __TMbsReadoutProc_h__

//_________________________________________________[C++ CLASS DEFINITION FILE]
//////////////////////////////////////////////////////////////////////////////
// Name:           mbssetup/inc/TMbsReadoutProc.h
// Purpose:        Define a MBS setup
// Class:          TMbsReadoutProc      -- readout proc
// Description:    Class definitions to generate a MBS setup.
// Author:         R. Lutter
// Revision:       $Id: TMbsReadoutProc.h,v 1.7 2011-03-08 10:31:22 Marabou Exp $       
// Date:           
// Keywords:
//////////////////////////////////////////////////////////////////////////////

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

#include "TMrbNamedX.h"

#include "TMbsSetupCommon.h"
#include "TMbsTriggerModule.h"

//______________________________________________________[C++ CLASS DEFINITION]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMbsReadoutProc
// Purpose:        Define readout process
// Methods:
// Description:    Creates a readout process.
// Keywords:
//////////////////////////////////////////////////////////////////////////////

class TMbsReadoutProc : public TObject {

	public:

		TMbsReadoutProc() {};				// default ctor

		TMbsReadoutProc(Int_t ProcNo);		// explicit ctor

		~TMbsReadoutProc() {};				// default dtor

		Bool_t SetProcName(const Char_t * ProcName);	// proc name/addr
		const Char_t * GetProcName();
		const Char_t * GetProcAddr();

		Bool_t SetType(const Char_t * ProcType);	// processor type
		Bool_t SetType(EMbsProcType ProcType);
		TMrbNamedX * GetType() const;

		Bool_t SetPath(const Char_t * Path, Bool_t Create = kFALSE);		// subdir where to put setup files
		const Char_t * GetPath();

		Bool_t SetCrate(Int_t Crate);		// crate number
		Int_t GetCrate() const;

		Bool_t SetCratesToBeRead(Int_t C1 = -1, Int_t C2 = -1, Int_t C3 = -1, Int_t C4 = -1, Int_t C5 = -1);	// crates connected
		Int_t GetCratesToBeRead(TArrayI & LofCrates) const;

		Bool_t SetController(const Char_t * ContrlType);		// crate controller
		Bool_t SetController(EMbsControllerType ContrlType);
		TMrbNamedX * GetController() const;

		Bool_t SetVSBAddr(UInt_t Addr);			// vsb addr
		UInt_t GetVSBAddr() const;
		Bool_t SetPipeBase(UInt_t Addr); 		// pipe base addr
		UInt_t GetPipeBase() const;
		Bool_t SetPipeType(Int_t Type); 		// pipe base type
		Int_t GetPipeType() const;
		Bool_t SetPipeSegLength(Int_t Length); 	// pipe seg length
		Int_t GetPipeSegLength() const;
		Bool_t SetPipeLength(Int_t NofSevts);	 	// pipe length (= max number of subevents in pipe)
		Int_t GetPipeLength() const;
		Bool_t SetSevtSize(Int_t Trigger, Int_t SevtSize); 	// subevent size
		Int_t GetSevtSize(Int_t Trigger = 0) const;

		inline Int_t GetID() const { return(fId); }; // readout id

		inline TMbsTriggerModule * TriggerModule() const { return(fTriggerModule); };	// trigger module

		Bool_t SetCodeName(const Char_t * Source); 					// define name code files
		const Char_t * GetCodeName();								// ... return code file name
		Bool_t CopyMakefile(const Char_t * SrcDir = "");			// copy makefile to readout dir
		Bool_t CompileReadout(const Char_t * Version = "deve"); 	// compile readout source

		void RemoveSetup(); 				// remove entries from setup data base
		void Reset();	 					// reset to default

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

	protected:
		Int_t fId; 						// id number for this readout proc

 		TMbsTriggerModule * fTriggerModule;	//! trigger module

		TString fName;						// temp storage: name
		TString fAddr;						// ... addr
		TString fPath;						// ... path
		TString fCode;						// ... name of code file

	ClassDef(TMbsReadoutProc, 1)		// [MBS Setup] Readout processor
};

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