ROOT logo
#ifndef __TMrbModuleListEntry_h__
#define __TMrbModuleListEntry_h__

//_________________________________________________[C++ CLASS DEFINITION FILE]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMrbModuleListEntry.h
// Purpose:        Class to manage a list of modules
// Description:
// Author:         R. Lutter
// Revision:       $Id: TMrbModuleListEntry.h,v 1.2 2009-10-15 08:18:38 Rudolf.Lutter Exp $
// Date:
// URL:
// Keywords:
//////////////////////////////////////////////////////////////////////////////

#include "TArrayI.h"
#include "TMrbNamedX.h"

//______________________________________________________[C++ CLASS DEFINITION]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMrbModuleListEntry
// Purpose:        An entry in user's module list
// Description:    Bookkeeping: Connects modules to params & histos
// Keywords:
//////////////////////////////////////////////////////////////////////////////

class TMrbModuleListEntry : public TObject {

	public:
		TMrbModuleListEntry(	Int_t NofParams = 0,						// ctor
								Int_t IndexOfFirstParam = 0,
								Int_t TimeOffset = 0,
								TMrbNamedX * FirstParam = NULL,
								TMrbNamedX * FirstHisto = NULL,
								TMrbNamedX * FirstSingle = NULL) :
										fNofParams(NofParams),
										fIndexOfFirstParam(IndexOfFirstParam),
										fTimeOffset(TimeOffset),
										fFirstParam(FirstParam),
										fFirstHisto(FirstHisto),
										fFirstSingle(FirstSingle) {
											fNofEventHits = 0;
											fEventsPerTrigger = 0;
											fNofChannelHits.Set(NofParams);
											fNofChannelHits.Reset();
										};

		virtual ~TMrbModuleListEntry() {}; 									// dtor

		inline Int_t GetNofParams() const { return(fNofParams); };
		inline void SetNofParams(Int_t NofParams) { fNofParams = NofParams; };
		inline Int_t GetTimeOffset() const { return(fTimeOffset); };
		inline void SetTimeOffset(Int_t TimeOffset) { fTimeOffset = TimeOffset; };
		inline Int_t GetIndexOfFirstParam() const { return(fIndexOfFirstParam); };
		inline void SetIndexOfFirstParam(Int_t FirstParam) { fIndexOfFirstParam = FirstParam; };
		inline TMrbNamedX * GetFirstParam() const { return(fFirstParam); };
		inline void SetFirstParam(TMrbNamedX * FirstParam) { fFirstParam = FirstParam; };
		inline TMrbNamedX * GetFirstHisto(Bool_t SingleFlag = kFALSE) const {
			return(SingleFlag ? fFirstSingle : fFirstHisto);
		};
		inline void SetFirstHisto(TMrbNamedX * FirstHisto, Bool_t SingleFlag = kFALSE) {
			if (SingleFlag) 	fFirstSingle = FirstHisto;
			else				fFirstHisto = FirstHisto;
		};

		void ResetChannelHits(Int_t Channel = -1);
		inline void ResetEventHits() { fNofEventHits = 0; };
		inline void ResetAllHits() { fNofEventHits = 0; fNofChannelHits.Reset(); };
		inline void IncrEventHits() { fNofEventHits++; };
		void IncrChannelHits(Int_t Channel);
		inline Int_t GetEventHits() { return(fNofEventHits); };
		Int_t GetChannelHits(Int_t Channel);
		inline void IncrEventsPerTrigger() { fEventsPerTrigger++; };
		inline void ResetEventsPerTrigger() { fEventsPerTrigger = 0; };
		inline Int_t GetEventsPerTrigger() { return(fEventsPerTrigger); };

	protected:
		Int_t fNofParams;
		Int_t fIndexOfFirstParam;
		Int_t fTimeOffset;
		Int_t fNofEventHits;
		Int_t fEventsPerTrigger;
		TArrayI fNofChannelHits;
		TMrbNamedX * fFirstParam;
		TMrbNamedX * fFirstHisto;
		TMrbNamedX * fFirstSingle;

	ClassDef(TMrbModuleListEntry, 0) 	// [Analyze] List of modules
};

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