ROOT logo
#ifndef __TMrbSubeventRaw_h__
#define __TMrbSubeventRaw_h__

//_________________________________________________[C++ CLASS DEFINITION FILE]
//////////////////////////////////////////////////////////////////////////////
// Name:           expconf/inc/TMrbSubeventRaw.h
// Purpose:        Define experimental configuration for MARaBOU
// Class:          TMrbSubeventRaw    -- a MBS subevent having raw (used-defined) data
// Description:    Class definitions to implement a configuration front-end for MARaBOU
// Author:         R. Lutter
// Revision:       $Id: TMrbSubeventRaw.h,v 1.6 2005-09-09 06:59:14 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 "TMrbConfig.h"
#include "TMrbSubevent.h"
#include "TMrbTemplate.h"

//______________________________________________________[C++ CLASS DEFINITION]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMrbSubeventRaw
// Purpose:        Define a user-defined subevent
// Description:    Defines a subevent having any structure. Generates code.
// Keywords:
//////////////////////////////////////////////////////////////////////////////

class TMrbSubeventRaw : public TMrbSubevent {

	public:

		TMrbSubeventRaw() {}; 														// default ctor
		TMrbSubeventRaw(const Char_t * SevtName, const Char_t * SevtTitle, 			// ctor
												UInt_t SevtType, UInt_t SevtSubtype,
												Option_t * LegalDataTypes = "I",
												Bool_t CreateSerial = kFALSE);
		~TMrbSubeventRaw() {};	 													// remove current subevent from list

		Bool_t MakeReadoutCode(ofstream & RdoStrm, TMrbConfig::EMrbReadoutTag TagIndex, 	// generate part of code for this subevent
										TMrbTemplate & Template, const Char_t * Prefix = NULL);

		inline Bool_t HasFixedLengthFormat() const { return(kFALSE); };		// variable length data
		inline Bool_t AllowsMultipleModules() const { return(kFALSE); };		// one module per subevent only
		inline Bool_t SerialToBeCreated() const { return(fSerialToBeCreated); }	// create unique serial internally?

		virtual inline Bool_t IsRaw() const { return(kTRUE); };				// indicates raw (userr-defined) mode

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

	protected:
		Bool_t fSerialToBeCreated;

	ClassDef(TMrbSubeventRaw, 1)		// [Config] A "raw" (user-defined) subevent
};

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