ROOT logo
//__________________________________________________[C++ CLASS IMPLEMENTATION]
//////////////////////////////////////////////////////////////////////////////
// Name:           xiadgf/src/TMrbDGFHistogramBuffer.cxx
// Purpose:        Methods to operate a module XIA DGF-4C
// Description:    Implements class methods for module XIA DGF-4C
// Header files:   TMrbDGF.h          -- class defs
// Keywords:
// Author:         R. Lutter
// Mailto:         <a href=mailto:rudi.lutter@physik.uni-muenchen.de>R. Lutter</a>
// Revision:       $Id: TMrbDGFHistogramBuffer.cxx,v 1.9 2006-07-19 09:08:58 Rudolf.Lutter Exp $       
// Date:           
//////////////////////////////////////////////////////////////////////////////

namespace std {} using namespace std;

#include <cstdlib>
#include <iostream>
#include <sstream>
#include <iomanip>
#include <fstream>

#include "TROOT.h"
#include "TFile.h"

#include "TMrbLogger.h"

#include "TMrbDGFData.h"
#include "TMrbDGF.h"
#include "TMrbDGFCommon.h"
#include "TMrbDGFHistogramBuffer.h"

#include "SetColor.h"

extern TMrbDGFData * gMrbDGFdata;				// common data base for all DGF modules
extern TMrbLogger * gMrbLog;

ClassImp(TMrbDGFHistogramBuffer)

TMrbDGFHistogramBuffer::TMrbDGFHistogramBuffer(const Char_t * BufferName, TObject * Module) :
																	TNamed(BufferName, "DGF-4C Histogram Buffer") {
//__________________________________________________________________[C++ CTOR]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMrbDGFHistogramBuffer
// Purpose:        DGF's histogram buffer
// Description:    Describes the histogram buffer.
// Keywords:       |
//////////////////////////////////////////////////////////////////////////////

	if (gMrbLog == NULL) gMrbLog = new TMrbLogger();
	fModule = Module;
	this->Reset();
}

void TMrbDGFHistogramBuffer::Reset() {
//________________________________________________________________[C++ METHOD]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMrbDGFHistogramBuffer::Reset
// Purpose:        Reset to initial values
// Arguments:      --
// Results:        --
// Exceptions:
// Description:    Resets event buffer
// Keywords:
//////////////////////////////////////////////////////////////////////////////

	Int_t i;

	fNofChannels = 0;
	fSize = 0;
	fSizePerChannel = 0;

	for (i = 0; i < TMrbDGFData::kNofChannels; i++) {
		fIsActive[i] = kFALSE;
		fHistNo[i] = -1;
		fHistogram[i] = NULL;
	}
	this->Set(0);			// reset data
}

Bool_t TMrbDGFHistogramBuffer::SetActive(Int_t Channel, Int_t HistNo) {
//________________________________________________________________[C++ METHOD]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMrbDGFHistogramBuffer::SetActive
// Purpose:        Mark channel active
// Arguments:      Int_t Channel          -- channel number
//                 Int_t HistNo           -- histogram number
// Results:        kTRUE/kFALSE
// Exceptions:
// Description:    Sets active flag for given channel.
// Keywords:
//////////////////////////////////////////////////////////////////////////////

	if (Channel >= TMrbDGFData::kNofChannels) {
		gMrbLog->Err()	<< "Channel number out of range - " << Channel
						<< " (should be in [0," << TMrbDGFData::kNofChannels - 1 << "])" << endl;
		gMrbLog->Flush(this->ClassName(), "SetActive");
		return(kFALSE);
	}
	fIsActive[Channel] = kTRUE;
	fHistNo[Channel] = HistNo;
	return(kTRUE);
}

Bool_t TMrbDGFHistogramBuffer::IsActive(Int_t Channel) {
//________________________________________________________________[C++ METHOD]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMrbDGFHistogramBuffer::IsActive
// Purpose:        Test if channel active
// Arguments:      Int_t Channel         -- channel number
// Results:        kTRUE/kFALSE
// Exceptions:
// Description:    Tests a given channel.
// Keywords:
//////////////////////////////////////////////////////////////////////////////

	if (Channel >= TMrbDGFData::kNofChannels) {
		gMrbLog->Err()	<< "Channel number out of range - " << Channel
						<< " (should be in [0," << TMrbDGFData::kNofChannels - 1 << "])" << endl;
		gMrbLog->Flush(this->ClassName(), "IsActive");
		return(kFALSE);
	}
	return(fIsActive[Channel]);
}

void TMrbDGFHistogramBuffer::Print(ostream & OutStrm) {
//________________________________________________________________[C++ METHOD]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMrbDGFHistogramBuffer::Print
// Purpose:        Output buffer statistics
// Arguments:      ostream & Outstrm   -- output stream (defaults to cout)
// Results:        --
// Exceptions:
// Description:    Buffer printout
// Keywords:
//////////////////////////////////////////////////////////////////////////////

	Int_t chn;

	if (fNofChannels == 0) {
		gMrbLog->Err() << "Buffer is empty" << endl;
		gMrbLog->Flush(this->ClassName(), "Print");
	} else {
		OutStrm	<< "===========================================================================================" << endl
				<< " DGF-4C Histogram buffer" << endl
				<< "..........................................................................................." << endl
				<< " Number of active channels   : " << fNofChannels << endl
				<< " Size of energy region       : " << fSize << endl
				<< "             ... per channel : " << fSizePerChannel << endl
				<< "..........................................................................................." << endl;
		for (chn = 0; chn < TMrbDGFData::kNofChannels; chn++) {
			if (fIsActive[chn]) OutStrm	<< " Counts in channel # " << chn << "       : " << this->GetContents(chn) << endl;
		}
		OutStrm	<< "-------------------------------------------------------------------------------------------" << endl;
	}
}

Int_t TMrbDGFHistogramBuffer::GetContents(Int_t Channel) {
//________________________________________________________________[C++ METHOD]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMrbDGFHistogramBuffer::GetContents
// Purpose:        Get channel contents
// Arguments:      Int_t Channel   -- DGF channel
// Results:        Int_t Contents  -- channel contents
// Exceptions:
// Description:    Returns histogram contents for a given channel.
// Keywords:
//////////////////////////////////////////////////////////////////////////////

	Int_t sum;
	Int_t i, k;

	sum = 0;
	if (fIsActive[Channel]) {
		k = fHistNo[Channel] * fSizePerChannel;
		for (i = 0; i < fSizePerChannel; i++, k++) sum += fArray[k];
	}
	return(sum);
}

Bool_t TMrbDGFHistogramBuffer::FillHistogram(Int_t Channel, Bool_t DrawIt) {
//________________________________________________________________[C++ METHOD]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMrbDGFHistogramBuffer::FillHistogram
// Purpose:        Fill and display histogram
// Arguments:      Int_t Channel   -- DGF channel
// Results:        kTRUE/kFALSE
// Exceptions:
// Description:    Fills and draws a MCA histogram for a given channel.
// Keywords:
//////////////////////////////////////////////////////////////////////////////

	if (Channel >= TMrbDGFData::kNofChannels) {
		gMrbLog->Err()	<< "Channel number out of range - " << Channel
						<< " (should be in [0," << TMrbDGFData::kNofChannels - 1 << "])" << endl;
		gMrbLog->Flush(this->ClassName(), "FillHistogram");
		return(kFALSE);
	}

	if (!IsActive(Channel)) {
		gMrbLog->Err() << "Channel not active - " << Channel << endl;
		gMrbLog->Flush(this->ClassName(), "FillHistogram");
		return(kFALSE);
	}

	TMrbString hName = fModule->GetName();
	hName += "_mca_chn"; hName += Channel;
	TMrbString hTitle = fModule->GetName();
	hTitle += ": MCA histogram chn "; hTitle += Channel;
	TH1F * h = fHistogram[Channel];

	if (h) delete h;

	h = new TH1F(hName.Data(), hTitle.Data(), fSizePerChannel, 0., (Float_t) fSizePerChannel);

	Int_t k = fHistNo[Channel] * fSizePerChannel;
	for (Int_t i = 1; i <= fSizePerChannel; i++, k++) h->SetBinContent(i, (Stat_t) fArray[k]);
	h->SetEntries(h->Integral());
	if (DrawIt) h->Draw();
	fHistogram[Channel] = h;
	return(kTRUE);
}

Bool_t TMrbDGFHistogramBuffer::Save(const Char_t * McaFile, Int_t Channel) {
//________________________________________________________________[C++ METHOD]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMrbDGFHistogramBuffer::Save
// Purpose:        Save histograms to root file
// Arguments:      Char_t * McaFile   -- file name
//                 Int_t Channel      -- DGF channel
// Results:        kTRUE/kFALSE
// Exceptions:
// Description:    Saves histograms to root file.
// Keywords:
//////////////////////////////////////////////////////////////////////////////

	if (Channel >= TMrbDGFData::kNofChannels) {
		gMrbLog->Err()	<< "Channel number out of range - " << Channel
						<< " (should be in [0," << TMrbDGFData::kNofChannels - 1 << "])" << endl;
		gMrbLog->Flush(this->ClassName(), "Draw");
		return(kFALSE);
	}

	TFile * mcaFile = NULL;
	TH1F * h = NULL;

	Int_t nofChannels = 0;
	Int_t nofHistos = 0;
	for (Int_t chn = 0; chn < TMrbDGFData::kNofChannels; chn++) {
		Int_t chnNo = (Channel == -1) ? chn : Channel;
		if (this->IsActive(chn) && (chnNo == chn)) {
			nofChannels++;
			if (this->GetContents(chn) > 0) {
				if (mcaFile == NULL) {
					mcaFile = new TFile(McaFile, "RECREATE");
					if (!mcaFile->IsOpen()) {
						gMrbLog->Err() << "Can't open file " << McaFile << endl;
						gMrbLog->Flush(this->ClassName(), "Save");
						return(kFALSE);
					}
				}
				TMrbString hName = fModule->GetName();
				hName += "_mca_chn"; hName += chn;
				TMrbString hTitle = "MCA histogram ";
				hTitle += ((TMrbDGF *) fModule)->GetName();
				hTitle += ", chn ";
				hTitle += chn;
				if (h) delete h;
				h = new TH1F(hName.Data(), hTitle.Data(), fSizePerChannel, 0., (Float_t) fSizePerChannel);
				Int_t k = fHistNo[chn] * fSizePerChannel;
				for (Int_t i = 0; i < fSizePerChannel; i++, k++) h->Fill((Axis_t) i, (Float_t) fArray[k]);
				h->Write();
				nofHistos++;
			} else {
				gMrbLog->Err() << "Histogram for channel " << chn << " is empty" << endl;
				gMrbLog->Flush(this->ClassName(), "Save");
			}
			if (Channel != -1) break;
		}
	}
	if (mcaFile) mcaFile->Close();

	if (nofChannels == 0) {
		gMrbLog->Err() << "No active channels found" << endl;
		gMrbLog->Flush(this->ClassName(), "Save");
		return(kFALSE);
	} else if (nofHistos == 0) {
		gMrbLog->Err() << "No histograms saved" << endl;
		gMrbLog->Flush(this->ClassName(), "Save");
		return(kFALSE);
	} else {
		gMrbLog->Out() << nofChannels << " MCA channel(s) saved to " << McaFile	<< endl;
		gMrbLog->Flush(this->ClassName(), "Save()", setblue);
		return(kTRUE);
	}
}

TH1F * TMrbDGFHistogramBuffer::Histogram(Int_t Channel) {
//________________________________________________________________[C++ METHOD]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMrbDGFHistogramBuffer::Histogram
// Purpose:        Return histo addr for given channel
// Arguments:      Int_t Channel     -- DGF channel
// Results:        TH1F * HistAddr   -- histo addr
// Exceptions:
// Description:    Rerutns histo addr.
// Keywords:
//////////////////////////////////////////////////////////////////////////////

	if (Channel >= TMrbDGFData::kNofChannels) {
		gMrbLog->Err()	<< "Channel number out of range - " << Channel
						<< " (should be in [0," << TMrbDGFData::kNofChannels - 1 << "])" << endl;
		gMrbLog->Flush(this->ClassName(), "Histogram");
		return(NULL);
	}

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