ROOT logo
#ifndef __TUsrDeadTime_h__
#define __TUsrDeadTime_h__

//_________________________________________________[C++ CLASS DEFINITION FILE]
//////////////////////////////////////////////////////////////////////////////
// Name:           TUsrDeadTime.h
// Purpose:        Class to store dead time values
// Description:
// Author:         R. Lutter
// Revision:       $Id: TUsrDeadTime.h,v 1.1 2005-11-23 11:51:53 Rudolf.Lutter Exp $       
// Date:           
// URL:            
// Keywords:       
//////////////////////////////////////////////////////////////////////////////

namespace std {} using namespace std;

#include <iostream>
#include <iomanip>

#include "TObject.h"
#include "TSystem.h"
#include "TFile.h"
#include "TTree.h"

//______________________________________________________[C++ CLASS DEFINITION]
//////////////////////////////////////////////////////////////////////////////
// Name:           TUsrDeadTime
// Purpose:        Class to store dead-time data
// Description:    Defines methods for dead-time (sub)events
// Keywords:       
//////////////////////////////////////////////////////////////////////////////

class TUsrDeadTime : public TObject {

	public:
		TUsrDeadTime() {							// ctor
			fTimeStamp = 0;
			fTotalEvents = 0;
			fAccuEvents = 0;
			fScalerContents = 0;
			fDeadTime = 0;
		};

		~TUsrDeadTime() {}; 						// default dtor

		void Set(Int_t TimeStamp, Int_t TotalEvents, Int_t AccuEvents, Int_t ScalerContents);
		inline Float_t Get() const { return(fDeadTime); };			// get dead time in %

		inline Int_t GetTimeStamp() const { return(fTimeStamp); };	// return time stamp (100 microsecs since start)
		inline Int_t GetTotalEvents() const { return(fTotalEvents); }; 	// get event number

		void Print(Option_t * Option) const { TObject::Print(Option); };
		void Print();

		inline void SetReplayMode(const Bool_t ReplayMode = kTRUE) {
			fReplayMode = (fTreeIn == NULL) ? kFALSE : ReplayMode;
		};
		inline Bool_t IsReplayMode() const { return(fReplayMode); };

		Bool_t CreateTree();										// create tree to hold dead-time data
		Bool_t InitializeTree(TFile * RootFile);					// initialize dead-time tree for replay
		inline TTree * GetTreeIn() const { return(fTreeIn); };
		inline TTree * GetTreeOut() const { return(fTreeOut); };
	
		inline void Help() { gSystem->Exec(Form("mrbHelp %s", this->ClassName())); };

	protected:
		Int_t fTimeStamp;					// time stamp (since start)
		Int_t fTotalEvents; 				// event count
		Int_t fAccuEvents;					// accumulated events
		Int_t fScalerContents;				// contents of dead-tim scaler
		Float_t fDeadTime;					// dead time (%)

		Bool_t fReplayMode;

		TTree * fTreeIn;					//! dead time (input)
		TTree * fTreeOut;					//! ... (output)
		TObject * fBranch;					//! ptr to dead-time obj to be used in TTree::Branch()

	ClassDef(TUsrDeadTime, 1)		// [Analyze] Keep track of dead time
};

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