ROOT logo
//__________________________________________________[C++ CLASS IMPLEMENTATION]
//////////////////////////////////////////////////////////////////////////////
// Name:           mbssetup/src/TMbsEvtBuilder.cxx
// Purpose:        MBS setup
// Description:    Implements class methods to define a MBS setup 
// Keywords:
// Author:         R. Lutter
// Mailto:         <a href=mailto:rudi.lutter@physik.uni-muenchen.de>R. Lutter</a>
// Revision:       $Id: TMbsEvtBuilder.cxx,v 1.10 2007-12-17 14:36:49 Marabou Exp $       
// Date:           
//////////////////////////////////////////////////////////////////////////////

namespace std {} using namespace std;

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

#include "Rtypes.h"

#include "TMrbLogger.h"

#include "TMbsSetup.h"
#include "TMbsEvtBuilder.h"

#include "SetColor.h"

extern TSystem * gSystem;
extern TMrbLogger * gMrbLog;
extern TMbsSetup * gMbsSetup;

ClassImp(TMbsEvtBuilder)

TMbsEvtBuilder::TMbsEvtBuilder() {
//__________________________________________________________________[C++ CTOR]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMbsEvtBuilder
// Purpose:        Define a MBS event builder
// Arguments:      --
// Results:        --
// Exceptions:
// Description:    Class constructor
// Keywords:
//////////////////////////////////////////////////////////////////////////////

	if (gMrbLog == NULL) gMrbLog = new TMrbLogger("mbssetup.log");
	gMbsSetup->CopyDefaults("EvtBuilder", kFALSE);	// get defaults
}

void TMbsEvtBuilder::RemoveSetup() {
//________________________________________________________________[C++ METHOD]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMbsEvtBuilder::RemoveSetup
// Purpose:        Remove entries from setup data base
// Arguments:      --
// Results:        --
// Exceptions:
// Description:    Remove resources "TMbsSetup.EvtBuilder.*".
// Keywords:
//////////////////////////////////////////////////////////////////////////////

	gMbsSetup->Remove("EvtBuilder", kFALSE);	// remove entries
}

void TMbsEvtBuilder::Reset() {
//________________________________________________________________[C++ METHOD]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMbsEvtBuilder::Reset
// Purpose:        Reset to default
// Arguments:      --
// Results:        --
// Exceptions:
// Description:    Reset resources "TMbsSetup.EvtBuilder.*" to default values.
// Keywords:
//////////////////////////////////////////////////////////////////////////////

	gMbsSetup->CopyDefaults("EvtBuilder", kFALSE, kTRUE);	// force copy
}

Bool_t TMbsEvtBuilder::SetProcName(const Char_t * ProcName) {
//________________________________________________________________[C++ METHOD]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMbsEvtBuilder::SetProcName
// Purpose:        Set event builder name
// Arguments:      Char_t * ProcName    -- name
// Results:        kTRUE/kFALSE
// Exceptions:
// Description:    Defines resource "TMbsSetup.EvtBuilder.Name".
// Keywords:
//////////////////////////////////////////////////////////////////////////////

	TInetAddress * ia;
	TString procName;
	TString procType;
	TMrbNamedX * ptype;
	TString rshCmd;
	Int_t n;
	
	procName = ProcName;
	procName.ToLower();					// use always lower case names

	ia = new TInetAddress(gSystem->GetHostByName(ProcName));
	procName = ia->GetHostName();
	if (procName.CompareTo("UnknownHost") == 0) {
		gMrbLog->Err() << "No such processor - " << ProcName << endl;
		gMrbLog->Flush(this->ClassName(), "SetName");
		return(kFALSE);
	} else {
		gMbsSetup->Set("EvtBuilder.Name", ProcName);				// name
		gMbsSetup->Set("EvtBuilder.Address", ia->GetHostName());	// inet addr
		cout	<< this->ClassName() << "::SetName(): " << ProcName
				<< " has addr " << ia->GetHostName()
				<< " (" << ia->GetHostAddress() << ")"
				<< endl;

		ptype = this->GetType();
		if (ptype == NULL) {
			procType = ProcName;				// try to determine proc type
			if ((n = procType.Index("-")) >= 0) {
				procType = procType(0, n);
				ptype = gMbsSetup->fLofProcs.FindByName(procType.Data(),
												TMrbLofNamedX::kFindExact | TMrbLofNamedX::kFindIgnoreCase);
			}
		}
		if (ptype == NULL) {
			gMrbLog->Err() << ProcName << " is of unknown type - must be defined separately" << endl;
			gMrbLog->Flush(this->ClassName(), "SetName");
			return(kFALSE);
		} else {
			if (this->SetType((EMbsProcType) ptype->GetIndex())) {
				cout	<< this->ClassName() << "::SetName(): " << ProcName
						<< " is of type " << ptype->GetName()
						<< "(" << ptype->GetIndex() << ")"
						<< endl;
			} else {
				return(kFALSE);
			}
		}
		return(kTRUE);
	}
}

const Char_t * TMbsEvtBuilder::GetProcName() {
//________________________________________________________________[C++ METHOD]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMbsEvtBuilder::GetProcName
// Purpose:        Get event builder name
// Arguments:      --
// Results:        Char_t * ProcName    -- name
// Exceptions:
// Description:    Reads resource "TMbsSetup.EvtBuilder.Name".
// Keywords:
//////////////////////////////////////////////////////////////////////////////

	gMbsSetup->Get(fName, "EvtBuilder.Name");
	return(fName.Data());
}

const Char_t * TMbsEvtBuilder::GetProcAddr() {
//________________________________________________________________[C++ METHOD]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMbsEvtBuilder::GetProcAddr
// Purpose:        Get event builder address
// Arguments:      --
// Results:        Char_t * ProcAddr    -- addr
// Exceptions:
// Description:    Reads resource "TMbsSetup.EvtBuilder.Address".
// Keywords:
//////////////////////////////////////////////////////////////////////////////

	gMbsSetup->Get(fAddr, "EvtBuilder.Address");
	return(fAddr.Data());
}

Bool_t TMbsEvtBuilder::SetType(const Char_t * ProcType) {
//________________________________________________________________[C++ METHOD]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMbsEvtBuilder::SetType
// Purpose:        Set event builder type
// Arguments:      Char_t * ProcType    -- processor type
// Results:        kTRUE/kFALSE
// Exceptions:
// Description:    Defines resource "TMbsSetup.EvtBuilder.Type".
// Keywords:
//////////////////////////////////////////////////////////////////////////////

	TMrbNamedX * procType = gMbsSetup->fLofProcs.FindByName(ProcType, TMrbLofNamedX::kFindExact | TMrbLofNamedX::kFindIgnoreCase);
	if (procType == NULL) {
		gMrbLog->Err() << "Wrong processor type - " << ProcType << endl;
		gMrbLog->Flush(this->ClassName(), "SetType");
		cerr	<< this->ClassName() << "::SetType(): Legal types are - "
				<< endl;
		gMbsSetup->fLofProcs.Print(cerr, "   > ");
		return(kFALSE);
	}

	TString proc = Form("%s(%d)", procType->GetName(), procType->GetIndex());
	gMbsSetup->Set("EvtBuilder.Type", proc.Data());
	return(kTRUE);
}

Bool_t TMbsEvtBuilder::SetType(EMbsProcType ProcType) {
//________________________________________________________________[C++ METHOD]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMbsEvtBuilder::SetType
// Purpose:        Set event builder type
// Arguments:      EMbsProcType ProcType    -- processor type
// Results:        kTRUE/kFALSE
// Exceptions:
// Description:    Defines resource "TMbsSetup.EvtBuilder.Type".
// Keywords:
//////////////////////////////////////////////////////////////////////////////

	TMrbNamedX * procType = gMbsSetup->fLofProcs.FindByIndex(ProcType);
	if (procType == NULL) {
		gMrbLog->Err() << "Wrong processor type - " << ProcType << endl;
		gMrbLog->Flush(this->ClassName(), "SetType");
		cerr	<< this->ClassName() << "::SetType(): Legal types are - "
				<< endl;
		gMbsSetup->fLofProcs.Print(cerr, "   > ");
		return(kFALSE);
	}

	TString proc = Form("%s(%d)", procType->GetName(), procType->GetIndex());
	gMbsSetup->Set("EvtBuilder.Type", proc.Data());
	return(kTRUE);
}

TMrbNamedX * TMbsEvtBuilder::GetType() const {
//________________________________________________________________[C++ METHOD]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMbsEvtBuilder::GetType
// Purpose:        Read event builder type
// Arguments:      --
// Results:        TMrbNamedX * ProcType
// Exceptions:
// Description:    Reads resource "TMbsSetup.EvtBuilder.Type".
// Keywords:
//////////////////////////////////////////////////////////////////////////////

	TMrbNamedX * procType;
	TString resValue;
	Int_t n;

	gMbsSetup->Get(resValue, "EvtBuilder.Type");
	if ((n = resValue.Index("(")) >= 0) resValue = resValue(0, n);
	if (resValue.IsNull()) resValue = gEnv->GetValue("TMbsSetup.ProcType", "undef");
	procType = gMbsSetup->fLofProcs.FindByName(resValue, TMrbLofNamedX::kFindExact | TMrbLofNamedX::kFindIgnoreCase);
	return(procType);
}

Bool_t TMbsEvtBuilder::SetCrate(Int_t Crate) {
//________________________________________________________________[C++ METHOD]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMbsEvtBuilder::SetCrate
// Purpose:        Define crate number
// Arguments:      Int_t Crate    -- crate number
// Results:        --
// Exceptions:
// Description:    Sets resource "TMbsSetup.EvtBuilder.Crate".
// Keywords:
//////////////////////////////////////////////////////////////////////////////

	gMbsSetup->Set("EvtBuilder.Crate", Crate);
	return(kTRUE);
}

Int_t TMbsEvtBuilder::GetCrate() const {
//________________________________________________________________[C++ METHOD]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMbsEvtBuilder::GetCrate
// Purpose:        Return crate number
// Arguments:      --
// Results:        Int_t Crate  -- crate number
// Exceptions:
// Description:    Reads resource "TMbsSetup.EvtBuilder.Crate".
// Keywords:
//////////////////////////////////////////////////////////////////////////////

	return(gMbsSetup->Get("EvtBuilder.Crate", -1));
}

Bool_t TMbsEvtBuilder::SetFlushTime(Int_t Seconds) {
//________________________________________________________________[C++ METHOD]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMbsEvtBuilder::SetFlushTime
// Purpose:        Define flush time
// Arguments:      Int_t Seconds    -- flush time in secs
// Results:        --
// Exceptions:
// Description:    Sets resource "TMbsSetup.EvtBuilder.FlushTime".
// Keywords:
//////////////////////////////////////////////////////////////////////////////

	gMbsSetup->Set("EvtBuilder.FlushTime", Seconds);
	return(kTRUE);
}

Int_t TMbsEvtBuilder::GetFlushTime() const {
//________________________________________________________________[C++ METHOD]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMbsEvtBuilder::GetFlushTime
// Purpose:        Return current flush time
// Arguments:      --
// Results:        Int_t Seconds  -- flush time in seconds
// Exceptions:
// Description:    Reads resource "TMbsSetup.EvtBuilder.FlushTime".
// Keywords:
//////////////////////////////////////////////////////////////////////////////

	return(gMbsSetup->Get("EvtBuilder.FlushTime", 0));
}

Bool_t TMbsEvtBuilder::SetVSBAddr(UInt_t Addr) {
//________________________________________________________________[C++ METHOD]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMbsEvtBuilder::SetVSBAddr
// Purpose:        Define vsb address
// Arguments:      UInt_t Addr    -- address
// Results:        --
// Exceptions:
// Description:    Sets resource "TMbsSetup.EvtBuilder.VSBAddr".
// Keywords:
//////////////////////////////////////////////////////////////////////////////

	gMbsSetup->Set("EvtBuilder.VSBAddr", (Int_t) Addr, 16);
	return(kTRUE);
}

UInt_t TMbsEvtBuilder::GetVSBAddr() const {
//________________________________________________________________[C++ METHOD]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMbsEvtBuilder::GetVSBAddr
// Purpose:        Return vsb address
// Arguments:      --
// Results:        UInt_t Addr  -- address
// Exceptions:
// Description:    Reads resource "TMbsSetup.EvtBuilder.VSBAddr".
// Keywords:
//////////////////////////////////////////////////////////////////////////////

	return(gMbsSetup->Get("EvtBuilder.VSBAddr", 0));
}

void TMbsEvtBuilder::SetBuffers(Int_t BufferSize, Int_t NofBuffers, Int_t NofStreams) {
//________________________________________________________________[C++ METHOD]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMbsEvtBuilder::SetBuffers
// Purpose:        Define buffer size
// Arguments:      Int_t BufferSize   -- buffer size
//                 Int_t NofBuffers   -- buffers per stream
//                 Int_t NofStreams   -- number of streams
// Results:        --
// Exceptions:
// Description:    Sets resources "TMbsSetup.EvtBuilder.BufferSize",
//                                "TMbsSetup.EvtBuilder.NofBuffers",
//                 and            "TMbsSetup.EvtBuilder.NofStreams"
// Keywords:
//////////////////////////////////////////////////////////////////////////////

	gMbsSetup->Set("EvtBuilder.BufferSize", BufferSize, 16);
	gMbsSetup->Set("EvtBuilder.NofBuffers", NofBuffers);
	gMbsSetup->Set("EvtBuilder.NofStreams", NofStreams);
}

Int_t TMbsEvtBuilder::GetBufferSize() const {
//________________________________________________________________[C++ METHOD]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMbsEvtBuilder::GetBufferSize
// Purpose:        Return buffer size
// Arguments:      --
// Results:        Int_t BufferSize  -- buffer size
// Exceptions:
// Description:    Reads resource "TMbsSetup.EvtBuilder.BufferSize".
// Keywords:
//////////////////////////////////////////////////////////////////////////////

	return(gMbsSetup->Get("EvtBuilder.BufferSize", 0));
}

Int_t TMbsEvtBuilder::GetNofBuffers() const {
//________________________________________________________________[C++ METHOD]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMbsEvtBuilder::GetNofBuffers
// Purpose:        Return number of buffers
// Arguments:      --
// Results:        Int_t NofBuffers  -- number of buffers
// Exceptions:
// Description:    Reads resource "TMbsSetup.EvtBuilder.NofBuffers".
// Keywords:
//////////////////////////////////////////////////////////////////////////////

	return(gMbsSetup->Get("EvtBuilder.NofBuffers", 0));
}

Int_t TMbsEvtBuilder::GetNofStreams() const {
//________________________________________________________________[C++ METHOD]
//////////////////////////////////////////////////////////////////////////////
// Name:           TMbsEvtBuilder::GetNofStreams
// Purpose:        Return number of streams
// Arguments:      --
// Results:        Int_t NofStreams  -- number of streams
// Exceptions:
// Description:    Reads resource "TMbsSetup.EvtBuilder.NofStreams".
// Keywords:
//////////////////////////////////////////////////////////////////////////////

	return(gMbsSetup->Get("EvtBuilder.NofStreams", 0));
}
 TMbsEvtBuilder.cxx:1
 TMbsEvtBuilder.cxx:2
 TMbsEvtBuilder.cxx:3
 TMbsEvtBuilder.cxx:4
 TMbsEvtBuilder.cxx:5
 TMbsEvtBuilder.cxx:6
 TMbsEvtBuilder.cxx:7
 TMbsEvtBuilder.cxx:8
 TMbsEvtBuilder.cxx:9
 TMbsEvtBuilder.cxx:10
 TMbsEvtBuilder.cxx:11
 TMbsEvtBuilder.cxx:12
 TMbsEvtBuilder.cxx:13
 TMbsEvtBuilder.cxx:14
 TMbsEvtBuilder.cxx:15
 TMbsEvtBuilder.cxx:16
 TMbsEvtBuilder.cxx:17
 TMbsEvtBuilder.cxx:18
 TMbsEvtBuilder.cxx:19
 TMbsEvtBuilder.cxx:20
 TMbsEvtBuilder.cxx:21
 TMbsEvtBuilder.cxx:22
 TMbsEvtBuilder.cxx:23
 TMbsEvtBuilder.cxx:24
 TMbsEvtBuilder.cxx:25
 TMbsEvtBuilder.cxx:26
 TMbsEvtBuilder.cxx:27
 TMbsEvtBuilder.cxx:28
 TMbsEvtBuilder.cxx:29
 TMbsEvtBuilder.cxx:30
 TMbsEvtBuilder.cxx:31
 TMbsEvtBuilder.cxx:32
 TMbsEvtBuilder.cxx:33
 TMbsEvtBuilder.cxx:34
 TMbsEvtBuilder.cxx:35
 TMbsEvtBuilder.cxx:36
 TMbsEvtBuilder.cxx:37
 TMbsEvtBuilder.cxx:38
 TMbsEvtBuilder.cxx:39
 TMbsEvtBuilder.cxx:40
 TMbsEvtBuilder.cxx:41
 TMbsEvtBuilder.cxx:42
 TMbsEvtBuilder.cxx:43
 TMbsEvtBuilder.cxx:44
 TMbsEvtBuilder.cxx:45
 TMbsEvtBuilder.cxx:46
 TMbsEvtBuilder.cxx:47
 TMbsEvtBuilder.cxx:48
 TMbsEvtBuilder.cxx:49
 TMbsEvtBuilder.cxx:50
 TMbsEvtBuilder.cxx:51
 TMbsEvtBuilder.cxx:52
 TMbsEvtBuilder.cxx:53
 TMbsEvtBuilder.cxx:54
 TMbsEvtBuilder.cxx:55
 TMbsEvtBuilder.cxx:56
 TMbsEvtBuilder.cxx:57
 TMbsEvtBuilder.cxx:58
 TMbsEvtBuilder.cxx:59
 TMbsEvtBuilder.cxx:60
 TMbsEvtBuilder.cxx:61
 TMbsEvtBuilder.cxx:62
 TMbsEvtBuilder.cxx:63
 TMbsEvtBuilder.cxx:64
 TMbsEvtBuilder.cxx:65
 TMbsEvtBuilder.cxx:66
 TMbsEvtBuilder.cxx:67
 TMbsEvtBuilder.cxx:68
 TMbsEvtBuilder.cxx:69
 TMbsEvtBuilder.cxx:70
 TMbsEvtBuilder.cxx:71
 TMbsEvtBuilder.cxx:72
 TMbsEvtBuilder.cxx:73
 TMbsEvtBuilder.cxx:74
 TMbsEvtBuilder.cxx:75
 TMbsEvtBuilder.cxx:76
 TMbsEvtBuilder.cxx:77
 TMbsEvtBuilder.cxx:78
 TMbsEvtBuilder.cxx:79
 TMbsEvtBuilder.cxx:80
 TMbsEvtBuilder.cxx:81
 TMbsEvtBuilder.cxx:82
 TMbsEvtBuilder.cxx:83
 TMbsEvtBuilder.cxx:84
 TMbsEvtBuilder.cxx:85
 TMbsEvtBuilder.cxx:86
 TMbsEvtBuilder.cxx:87
 TMbsEvtBuilder.cxx:88
 TMbsEvtBuilder.cxx:89
 TMbsEvtBuilder.cxx:90
 TMbsEvtBuilder.cxx:91
 TMbsEvtBuilder.cxx:92
 TMbsEvtBuilder.cxx:93
 TMbsEvtBuilder.cxx:94
 TMbsEvtBuilder.cxx:95
 TMbsEvtBuilder.cxx:96
 TMbsEvtBuilder.cxx:97
 TMbsEvtBuilder.cxx:98
 TMbsEvtBuilder.cxx:99
 TMbsEvtBuilder.cxx:100
 TMbsEvtBuilder.cxx:101
 TMbsEvtBuilder.cxx:102
 TMbsEvtBuilder.cxx:103
 TMbsEvtBuilder.cxx:104
 TMbsEvtBuilder.cxx:105
 TMbsEvtBuilder.cxx:106
 TMbsEvtBuilder.cxx:107
 TMbsEvtBuilder.cxx:108
 TMbsEvtBuilder.cxx:109
 TMbsEvtBuilder.cxx:110
 TMbsEvtBuilder.cxx:111
 TMbsEvtBuilder.cxx:112
 TMbsEvtBuilder.cxx:113
 TMbsEvtBuilder.cxx:114
 TMbsEvtBuilder.cxx:115
 TMbsEvtBuilder.cxx:116
 TMbsEvtBuilder.cxx:117
 TMbsEvtBuilder.cxx:118
 TMbsEvtBuilder.cxx:119
 TMbsEvtBuilder.cxx:120
 TMbsEvtBuilder.cxx:121
 TMbsEvtBuilder.cxx:122
 TMbsEvtBuilder.cxx:123
 TMbsEvtBuilder.cxx:124
 TMbsEvtBuilder.cxx:125
 TMbsEvtBuilder.cxx:126
 TMbsEvtBuilder.cxx:127
 TMbsEvtBuilder.cxx:128
 TMbsEvtBuilder.cxx:129
 TMbsEvtBuilder.cxx:130
 TMbsEvtBuilder.cxx:131
 TMbsEvtBuilder.cxx:132
 TMbsEvtBuilder.cxx:133
 TMbsEvtBuilder.cxx:134
 TMbsEvtBuilder.cxx:135
 TMbsEvtBuilder.cxx:136
 TMbsEvtBuilder.cxx:137
 TMbsEvtBuilder.cxx:138
 TMbsEvtBuilder.cxx:139
 TMbsEvtBuilder.cxx:140
 TMbsEvtBuilder.cxx:141
 TMbsEvtBuilder.cxx:142
 TMbsEvtBuilder.cxx:143
 TMbsEvtBuilder.cxx:144
 TMbsEvtBuilder.cxx:145
 TMbsEvtBuilder.cxx:146
 TMbsEvtBuilder.cxx:147
 TMbsEvtBuilder.cxx:148
 TMbsEvtBuilder.cxx:149
 TMbsEvtBuilder.cxx:150
 TMbsEvtBuilder.cxx:151
 TMbsEvtBuilder.cxx:152
 TMbsEvtBuilder.cxx:153
 TMbsEvtBuilder.cxx:154
 TMbsEvtBuilder.cxx:155
 TMbsEvtBuilder.cxx:156
 TMbsEvtBuilder.cxx:157
 TMbsEvtBuilder.cxx:158
 TMbsEvtBuilder.cxx:159
 TMbsEvtBuilder.cxx:160
 TMbsEvtBuilder.cxx:161
 TMbsEvtBuilder.cxx:162
 TMbsEvtBuilder.cxx:163
 TMbsEvtBuilder.cxx:164
 TMbsEvtBuilder.cxx:165
 TMbsEvtBuilder.cxx:166
 TMbsEvtBuilder.cxx:167
 TMbsEvtBuilder.cxx:168
 TMbsEvtBuilder.cxx:169
 TMbsEvtBuilder.cxx:170
 TMbsEvtBuilder.cxx:171
 TMbsEvtBuilder.cxx:172
 TMbsEvtBuilder.cxx:173
 TMbsEvtBuilder.cxx:174
 TMbsEvtBuilder.cxx:175
 TMbsEvtBuilder.cxx:176
 TMbsEvtBuilder.cxx:177
 TMbsEvtBuilder.cxx:178
 TMbsEvtBuilder.cxx:179
 TMbsEvtBuilder.cxx:180
 TMbsEvtBuilder.cxx:181
 TMbsEvtBuilder.cxx:182
 TMbsEvtBuilder.cxx:183
 TMbsEvtBuilder.cxx:184
 TMbsEvtBuilder.cxx:185
 TMbsEvtBuilder.cxx:186
 TMbsEvtBuilder.cxx:187
 TMbsEvtBuilder.cxx:188
 TMbsEvtBuilder.cxx:189
 TMbsEvtBuilder.cxx:190
 TMbsEvtBuilder.cxx:191
 TMbsEvtBuilder.cxx:192
 TMbsEvtBuilder.cxx:193
 TMbsEvtBuilder.cxx:194
 TMbsEvtBuilder.cxx:195
 TMbsEvtBuilder.cxx:196
 TMbsEvtBuilder.cxx:197
 TMbsEvtBuilder.cxx:198
 TMbsEvtBuilder.cxx:199
 TMbsEvtBuilder.cxx:200
 TMbsEvtBuilder.cxx:201
 TMbsEvtBuilder.cxx:202
 TMbsEvtBuilder.cxx:203
 TMbsEvtBuilder.cxx:204
 TMbsEvtBuilder.cxx:205
 TMbsEvtBuilder.cxx:206
 TMbsEvtBuilder.cxx:207
 TMbsEvtBuilder.cxx:208
 TMbsEvtBuilder.cxx:209
 TMbsEvtBuilder.cxx:210
 TMbsEvtBuilder.cxx:211
 TMbsEvtBuilder.cxx:212
 TMbsEvtBuilder.cxx:213
 TMbsEvtBuilder.cxx:214
 TMbsEvtBuilder.cxx:215
 TMbsEvtBuilder.cxx:216
 TMbsEvtBuilder.cxx:217
 TMbsEvtBuilder.cxx:218
 TMbsEvtBuilder.cxx:219
 TMbsEvtBuilder.cxx:220
 TMbsEvtBuilder.cxx:221
 TMbsEvtBuilder.cxx:222
 TMbsEvtBuilder.cxx:223
 TMbsEvtBuilder.cxx:224
 TMbsEvtBuilder.cxx:225
 TMbsEvtBuilder.cxx:226
 TMbsEvtBuilder.cxx:227
 TMbsEvtBuilder.cxx:228
 TMbsEvtBuilder.cxx:229
 TMbsEvtBuilder.cxx:230
 TMbsEvtBuilder.cxx:231
 TMbsEvtBuilder.cxx:232
 TMbsEvtBuilder.cxx:233
 TMbsEvtBuilder.cxx:234
 TMbsEvtBuilder.cxx:235
 TMbsEvtBuilder.cxx:236
 TMbsEvtBuilder.cxx:237
 TMbsEvtBuilder.cxx:238
 TMbsEvtBuilder.cxx:239
 TMbsEvtBuilder.cxx:240
 TMbsEvtBuilder.cxx:241
 TMbsEvtBuilder.cxx:242
 TMbsEvtBuilder.cxx:243
 TMbsEvtBuilder.cxx:244
 TMbsEvtBuilder.cxx:245
 TMbsEvtBuilder.cxx:246
 TMbsEvtBuilder.cxx:247
 TMbsEvtBuilder.cxx:248
 TMbsEvtBuilder.cxx:249
 TMbsEvtBuilder.cxx:250
 TMbsEvtBuilder.cxx:251
 TMbsEvtBuilder.cxx:252
 TMbsEvtBuilder.cxx:253
 TMbsEvtBuilder.cxx:254
 TMbsEvtBuilder.cxx:255
 TMbsEvtBuilder.cxx:256
 TMbsEvtBuilder.cxx:257
 TMbsEvtBuilder.cxx:258
 TMbsEvtBuilder.cxx:259
 TMbsEvtBuilder.cxx:260
 TMbsEvtBuilder.cxx:261
 TMbsEvtBuilder.cxx:262
 TMbsEvtBuilder.cxx:263
 TMbsEvtBuilder.cxx:264
 TMbsEvtBuilder.cxx:265
 TMbsEvtBuilder.cxx:266
 TMbsEvtBuilder.cxx:267
 TMbsEvtBuilder.cxx:268
 TMbsEvtBuilder.cxx:269
 TMbsEvtBuilder.cxx:270
 TMbsEvtBuilder.cxx:271
 TMbsEvtBuilder.cxx:272
 TMbsEvtBuilder.cxx:273
 TMbsEvtBuilder.cxx:274
 TMbsEvtBuilder.cxx:275
 TMbsEvtBuilder.cxx:276
 TMbsEvtBuilder.cxx:277
 TMbsEvtBuilder.cxx:278
 TMbsEvtBuilder.cxx:279
 TMbsEvtBuilder.cxx:280
 TMbsEvtBuilder.cxx:281
 TMbsEvtBuilder.cxx:282
 TMbsEvtBuilder.cxx:283
 TMbsEvtBuilder.cxx:284
 TMbsEvtBuilder.cxx:285
 TMbsEvtBuilder.cxx:286
 TMbsEvtBuilder.cxx:287
 TMbsEvtBuilder.cxx:288
 TMbsEvtBuilder.cxx:289
 TMbsEvtBuilder.cxx:290
 TMbsEvtBuilder.cxx:291
 TMbsEvtBuilder.cxx:292
 TMbsEvtBuilder.cxx:293
 TMbsEvtBuilder.cxx:294
 TMbsEvtBuilder.cxx:295
 TMbsEvtBuilder.cxx:296
 TMbsEvtBuilder.cxx:297
 TMbsEvtBuilder.cxx:298
 TMbsEvtBuilder.cxx:299
 TMbsEvtBuilder.cxx:300
 TMbsEvtBuilder.cxx:301
 TMbsEvtBuilder.cxx:302
 TMbsEvtBuilder.cxx:303
 TMbsEvtBuilder.cxx:304
 TMbsEvtBuilder.cxx:305
 TMbsEvtBuilder.cxx:306
 TMbsEvtBuilder.cxx:307
 TMbsEvtBuilder.cxx:308
 TMbsEvtBuilder.cxx:309
 TMbsEvtBuilder.cxx:310
 TMbsEvtBuilder.cxx:311
 TMbsEvtBuilder.cxx:312
 TMbsEvtBuilder.cxx:313
 TMbsEvtBuilder.cxx:314
 TMbsEvtBuilder.cxx:315
 TMbsEvtBuilder.cxx:316
 TMbsEvtBuilder.cxx:317
 TMbsEvtBuilder.cxx:318
 TMbsEvtBuilder.cxx:319
 TMbsEvtBuilder.cxx:320
 TMbsEvtBuilder.cxx:321
 TMbsEvtBuilder.cxx:322
 TMbsEvtBuilder.cxx:323
 TMbsEvtBuilder.cxx:324
 TMbsEvtBuilder.cxx:325
 TMbsEvtBuilder.cxx:326
 TMbsEvtBuilder.cxx:327
 TMbsEvtBuilder.cxx:328
 TMbsEvtBuilder.cxx:329
 TMbsEvtBuilder.cxx:330
 TMbsEvtBuilder.cxx:331
 TMbsEvtBuilder.cxx:332
 TMbsEvtBuilder.cxx:333
 TMbsEvtBuilder.cxx:334
 TMbsEvtBuilder.cxx:335
 TMbsEvtBuilder.cxx:336
 TMbsEvtBuilder.cxx:337
 TMbsEvtBuilder.cxx:338
 TMbsEvtBuilder.cxx:339
 TMbsEvtBuilder.cxx:340
 TMbsEvtBuilder.cxx:341
 TMbsEvtBuilder.cxx:342
 TMbsEvtBuilder.cxx:343
 TMbsEvtBuilder.cxx:344
 TMbsEvtBuilder.cxx:345
 TMbsEvtBuilder.cxx:346
 TMbsEvtBuilder.cxx:347
 TMbsEvtBuilder.cxx:348
 TMbsEvtBuilder.cxx:349
 TMbsEvtBuilder.cxx:350
 TMbsEvtBuilder.cxx:351
 TMbsEvtBuilder.cxx:352
 TMbsEvtBuilder.cxx:353
 TMbsEvtBuilder.cxx:354
 TMbsEvtBuilder.cxx:355
 TMbsEvtBuilder.cxx:356
 TMbsEvtBuilder.cxx:357
 TMbsEvtBuilder.cxx:358
 TMbsEvtBuilder.cxx:359
 TMbsEvtBuilder.cxx:360
 TMbsEvtBuilder.cxx:361
 TMbsEvtBuilder.cxx:362
 TMbsEvtBuilder.cxx:363
 TMbsEvtBuilder.cxx:364
 TMbsEvtBuilder.cxx:365
 TMbsEvtBuilder.cxx:366
 TMbsEvtBuilder.cxx:367
 TMbsEvtBuilder.cxx:368
 TMbsEvtBuilder.cxx:369
 TMbsEvtBuilder.cxx:370
 TMbsEvtBuilder.cxx:371
 TMbsEvtBuilder.cxx:372
 TMbsEvtBuilder.cxx:373
 TMbsEvtBuilder.cxx:374
 TMbsEvtBuilder.cxx:375
 TMbsEvtBuilder.cxx:376
 TMbsEvtBuilder.cxx:377
 TMbsEvtBuilder.cxx:378
 TMbsEvtBuilder.cxx:379
 TMbsEvtBuilder.cxx:380
 TMbsEvtBuilder.cxx:381
 TMbsEvtBuilder.cxx:382
 TMbsEvtBuilder.cxx:383
 TMbsEvtBuilder.cxx:384
 TMbsEvtBuilder.cxx:385
 TMbsEvtBuilder.cxx:386
 TMbsEvtBuilder.cxx:387
 TMbsEvtBuilder.cxx:388
 TMbsEvtBuilder.cxx:389
 TMbsEvtBuilder.cxx:390
 TMbsEvtBuilder.cxx:391
 TMbsEvtBuilder.cxx:392
 TMbsEvtBuilder.cxx:393
 TMbsEvtBuilder.cxx:394
 TMbsEvtBuilder.cxx:395
 TMbsEvtBuilder.cxx:396
 TMbsEvtBuilder.cxx:397
 TMbsEvtBuilder.cxx:398
 TMbsEvtBuilder.cxx:399
 TMbsEvtBuilder.cxx:400
 TMbsEvtBuilder.cxx:401
 TMbsEvtBuilder.cxx:402
 TMbsEvtBuilder.cxx:403
 TMbsEvtBuilder.cxx:404
 TMbsEvtBuilder.cxx:405
 TMbsEvtBuilder.cxx:406
 TMbsEvtBuilder.cxx:407
 TMbsEvtBuilder.cxx:408
 TMbsEvtBuilder.cxx:409
 TMbsEvtBuilder.cxx:410
 TMbsEvtBuilder.cxx:411