#include "TVirtualPacketizer.h"
#include "TEnv.h"
#include "TFile.h"
#include "TTree.h"
#include "TKey.h"
#include "TDSet.h"
#include "TError.h"
#include "TEventList.h"
#include "TEntryList.h"
#include "TMap.h"
#include "TMessage.h"
#include "TObjString.h"
#include "TParameter.h"
#include "TProof.h"
#include "TProofDebug.h"
#include "TProofPlayer.h"
#include "TProofServ.h"
#include "TSlave.h"
#include "TSocket.h"
#include "TTimer.h"
#include "TUrl.h"
#include "TMath.h"
#include "TMonitor.h"
#include "TNtuple.h"
#include "TNtupleD.h"
#include "TPerfStats.h"
ClassImp(TVirtualPacketizer)
TVirtualPacketizer::TVirtualPacketizer(TList *input, TProofProgressStatus *st)
{
fInput = input;
fMinPacketTime = 3;
Double_t minPacketTime = 0;
if (TProof::GetParameter(input, "PROOF_MinPacketTime", minPacketTime) == 0) {
Info("TVirtualPacketizer", "setting minimum time for a packet to %f",
minPacketTime);
fMinPacketTime = (Int_t) minPacketTime;
}
fMaxPacketTime = 20;
Double_t maxPacketTime = 0;
if (TProof::GetParameter(input, "PROOF_MaxPacketTime", maxPacketTime) == 0) {
Info("TVirtualPacketizer", "setting maximum packet time for a packet to %f",
maxPacketTime);
fMaxPacketTime = (Int_t) maxPacketTime;
}
ResetBit(TVirtualPacketizer::kIsTree);
fConfigParams = new TList;
fConfigParams->SetName("PROOF_PacketizerConfigParams");
fConfigParams->Add(new TParameter<Double_t>("PROOF_MinPacketTime", fMinPacketTime));
fConfigParams->Add(new TParameter<Double_t>("PROOF_MaxPacketTime", fMaxPacketTime));
fProgressStatus = st;
if (!fProgressStatus) {
Error("TVirtualPacketizer", "No progress status");
return;
}
fTotalEntries = 0;
fValid = kTRUE;
fStop = kFALSE;
fFailedPackets = 0;
fDataSet = "";
fSlaveStats = 0;
fStartTime = gSystem->Now();
SetBit(TVirtualPacketizer::kIsInitializing);
ResetBit(TVirtualPacketizer::kIsDone);
fInitTime = 0;
fProcTime = 0;
fTimeUpdt = -1.;
fCircProg = new TNtupleD("CircNtuple","Circular progress info","tm:ev:mb:rc:al");
fCircN = 5;
TProof::GetParameter(input, "PROOF_ProgressCircularity", fCircN);
fCircProg->SetCircular(fCircN);
fCircProg->SetDirectory(0);
TString startProgress("yes");
TProof::GetParameter(input, "PROOF_StartProgressTimer", startProgress);
fProgress = 0;
if (startProgress == "yes") {
Long_t period = 500;
TProof::GetParameter(input, "PROOF_ProgressPeriod", period);
fProgress = new TTimer;
fProgress->SetObject(this);
fProgress->Start(period, kFALSE);
}
fProgressPerf = 0;
TString saveProgressPerf("no");
if (TProof::GetParameter(input, "PROOF_SaveProgressPerf", saveProgressPerf) == 0) {
if (fProgress && saveProgressPerf == "yes")
fProgressPerf = new TNtuple("PROOF_ProgressPerfNtuple",
"{Active workers, evt rate, MB read} vs processing time", "tm:aw:er:mb:ns");
}
fProcTimeLast = -1.;
fActWrksLast = -1;
fEvtRateLast = -1.;
fMBsReadLast = -1.;
fEffSessLast = -1.;
fAWLastFill = kFALSE;
fReportPeriod = -1.;
TString estopt;
if (TProof::GetParameter(input, "PROOF_RateEstimation", estopt) != 0 ||
estopt.IsNull()) {
estopt = gEnv->GetValue("Proof.RateEstimation", "");
}
fUseEstOpt = kEstOff;
if (estopt == "current")
fUseEstOpt = kEstCurrent;
else if (estopt == "average")
fUseEstOpt = kEstAverage;
}
TVirtualPacketizer::~TVirtualPacketizer()
{
SafeDelete(fCircProg);
SafeDelete(fProgress);
SafeDelete(fFailedPackets);
SafeDelete(fConfigParams);
SafeDelete(fProgressPerf);
fProgressStatus = 0;
}
Long64_t TVirtualPacketizer::GetEntries(Bool_t tree, TDSetElement *e)
{
Long64_t entries;
TFile *file = TFile::Open(e->GetFileName());
if (!file || (file && file->IsZombie())) {
const char *emsg = (file) ? strerror(file->GetErrno()) : "<undef>";
Error("GetEntries","Cannot open file: %s (%s)", e->GetFileName(), emsg);
return -1;
}
TDirectory *dirsave = gDirectory;
if ( ! file->cd(e->GetDirectory()) ) {
Error("GetEntries","Cannot cd to: %s", e->GetDirectory() );
delete file;
return -1;
}
TDirectory *dir = gDirectory;
dirsave->cd();
if ( tree ) {
TKey *key = dir->GetKey(e->GetObjName());
if ( key == 0 ) {
Error("GetEntries","Cannot find tree \"%s\" in %s",
e->GetObjName(), e->GetFileName() );
delete file;
return -1;
}
TTree *t = (TTree *) key->ReadObj();
if ( t == 0 ) {
delete file;
return -1;
}
entries = (Long64_t) t->GetEntries();
delete t;
} else {
TList *keys = dir->GetListOfKeys();
entries = keys->GetSize();
}
delete file;
return entries;
}
TDSetElement *TVirtualPacketizer::GetNextPacket(TSlave *, TMessage *)
{
AbstractMethod("GetNextPacket");
return 0;
}
void TVirtualPacketizer::StopProcess(Bool_t , Bool_t stoptimer)
{
fStop = kTRUE;
if (stoptimer) HandleTimer(0);
}
TDSetElement* TVirtualPacketizer::CreateNewPacket(TDSetElement* base,
Long64_t first, Long64_t num)
{
TDSetElement* elem = new TDSetElement(base->GetFileName(), base->GetObjName(),
base->GetDirectory(), first, num,
0, fDataSet.Data());
TList *friends = base->GetListOfFriends();
if (friends) {
TIter nxf(friends);
TDSetElement *fe = 0;
while ((fe = (TDSetElement *) nxf())) {
PDB(kLoop,2)
Info("CreateNewPacket", "friend: file '%s', obj:'%s'",
fe->GetFileName(), fe->GetObjName());
TDSetElement *xfe = new TDSetElement(fe->GetFileName(), fe->GetObjName(),
fe->GetDirectory(), first, num);
elem->AddFriend(xfe, 0);
}
}
return elem;
}
Bool_t TVirtualPacketizer::HandleTimer(TTimer *)
{
PDB(kPacketizer,2)
Info("HandleTimer", "fProgress: %p, isDone: %d",
fProgress, TestBit(TVirtualPacketizer::kIsDone));
if (fProgress == 0 || TestBit(TVirtualPacketizer::kIsDone)) {
if (fProgress) fProgress->Stop();
return kFALSE;
}
TTime tnow = gSystem->Now();
Float_t now = Long64_t(tnow - fStartTime) / (Float_t)1000.;
Long64_t estent = GetEntriesProcessed();
Long64_t estmb = GetBytesRead();
Long64_t estrc = GetReadCalls();
Float_t evtrti = -1., mbrti = -1.;
if (TestBit(TVirtualPacketizer::kIsInitializing)) {
fInitTime = now;
} else {
if (fCircProg->GetEntries() <= 0) {
fCircProg->Fill((Double_t)0., 0., 0., 0., 0.);
}
fTimeUpdt = now - fProcTime;
fProcTime = now - fInitTime;
Double_t *ar = fCircProg->GetArgs();
fCircProg->GetEntry(fCircProg->GetEntries()-1);
Bool_t all = kTRUE;
evtrti = GetCurrentRate(all);
Double_t xall = (all) ? 1. : 0.;
GetEstEntriesProcessed(0, estent, estmb, estrc);
if (estent >= fTotalEntries) {
estent = GetEntriesProcessed();
estmb = GetBytesRead();
estrc = GetReadCalls();
}
Double_t evts = (Double_t) estent;
Double_t mbs = (estmb > 0) ? estmb / TMath::Power(2.,20.) : 0.;
Double_t rcs = (Double_t) estrc;
fCircProg->Fill((Double_t)fProcTime, evts, mbs, rcs, xall);
fCircProg->GetEntry(fCircProg->GetEntries()-2);
if (all) {
Double_t dt = (Double_t)fProcTime - ar[0];
Long64_t de = (evts > ar[1]) ? (Long64_t) (evts - ar[1]) : 0;
Long64_t db = (mbs > ar[2]) ? (Long64_t) ((mbs - ar[2])*TMath::Power(2.,20.)) : 0;
if (gPerfStats)
gPerfStats->RateEvent((Double_t)fProcTime, dt, de, db);
Double_t rc = (Double_t)estrc - ar[3];
mbrti = (rc > 0 && mbs > ar[2]) ? (Float_t) (mbs - ar[2]) / rc : 0. ;
}
if (fTotalEntries > 0 && GetEntriesProcessed() >= fTotalEntries)
SetBit(TVirtualPacketizer::kIsDone);
PDB(kPacketizer,2)
Info("HandleTimer", "ent:%lld, bytes:%lld, proct:%f, evtrti:%f, mbrti:%f (%f,%f)",
estent, estmb, fProcTime, evtrti, mbrti, mbs, ar[2]);
}
if (gProofServ) {
TMessage m(kPROOF_PROGRESS);
if (gProofServ->GetProtocol() > 25) {
Int_t actw = GetActiveWorkers();
Int_t acts = gProofServ->GetActSessions();
Float_t effs = gProofServ->GetEffSessions();
if (fProgressPerf && estent > 0) {
if (fProcTime > 0.) {
fReportPeriod = (Float_t) fTotalEntries / (Double_t) estent * fProcTime / 100.;
if (fReportPeriod > 0. && fReportPeriod < 5.) fReportPeriod = 5.;
}
if (fProgressPerf->GetEntries() <= 0) {
fProgressPerf->Fill(fProcTime, (Float_t)actw, -1., -1., -1.);
} else {
Float_t *far = fProgressPerf->GetArgs();
fProgressPerf->GetEntry(fProgressPerf->GetEntries()-1);
Bool_t doReport = (fReportPeriod > 0. &&
(fProcTime - far[0]) >= fReportPeriod) ? kTRUE : kFALSE;
Float_t mbsread = estmb / 1024. / 1024.;
if (TMath::Abs((Float_t)actw - far[1]) > 0.1) {
if (fAWLastFill)
fProgressPerf->Fill(fProcTimeLast, (Float_t)fActWrksLast,
fEvtRateLast, fMBsReadLast, fEffSessLast);
fProgressPerf->Fill(fProcTime, (Float_t)actw, evtrti, mbsread, effs);
fAWLastFill = kFALSE;
} else if (doReport) {
fProgressPerf->Fill(fProcTime, (Float_t)actw, evtrti, mbsread, effs);
fAWLastFill = kFALSE;
} else {
fAWLastFill = kTRUE;
}
fProcTimeLast = fProcTime;
fActWrksLast = actw;
fEvtRateLast = evtrti;
fMBsReadLast = mbsread;
fEffSessLast = effs;
}
}
TProofProgressInfo pi(fTotalEntries, estent, estmb, fInitTime,
fProcTime, evtrti, mbrti, actw, acts, effs);
m << π
} else if (gProofServ->GetProtocol() > 11) {
m << fTotalEntries << estent << estmb << fInitTime << fProcTime
<< evtrti << mbrti;
} else {
m << fTotalEntries << GetEntriesProcessed();
}
gProofServ->GetSocket()->Send(m);
} else {
if (gProof && gProof->GetPlayer()) {
gProof->GetPlayer()->Progress(fTotalEntries, estent, estmb,
fInitTime, fProcTime, evtrti, mbrti);
}
}
if (fTotalEntries > 0 && GetEntriesProcessed() >= fTotalEntries)
SetBit(TVirtualPacketizer::kIsDone);
return kFALSE;
}
void TVirtualPacketizer::SetInitTime()
{
if (TestBit(TVirtualPacketizer::kIsInitializing)) {
fInitTime = Long64_t(gSystem->Now() - fStartTime) / (Float_t)1000.;
ResetBit(TVirtualPacketizer::kIsInitializing);
PDB(kPacketizer,2)
Info("SetInitTime","fInitTime set to %f s", fInitTime);
}
}
Int_t TVirtualPacketizer::AddWorkers(TList *)
{
Warning("AddWorkers", "Not implemented for this packetizer");
return -1;
}
TVirtualPacketizer.cxx:10 TVirtualPacketizer.cxx:11 TVirtualPacketizer.cxx:12 TVirtualPacketizer.cxx:13 TVirtualPacketizer.cxx:14 TVirtualPacketizer.cxx:15 TVirtualPacketizer.cxx:16 TVirtualPacketizer.cxx:17 TVirtualPacketizer.cxx:18 TVirtualPacketizer.cxx:19 TVirtualPacketizer.cxx:20 TVirtualPacketizer.cxx:21 TVirtualPacketizer.cxx:22 TVirtualPacketizer.cxx:23 TVirtualPacketizer.cxx:24 TVirtualPacketizer.cxx:25 TVirtualPacketizer.cxx:26 TVirtualPacketizer.cxx:27 TVirtualPacketizer.cxx:28 TVirtualPacketizer.cxx:29 TVirtualPacketizer.cxx:30 TVirtualPacketizer.cxx:31 TVirtualPacketizer.cxx:32 TVirtualPacketizer.cxx:33 TVirtualPacketizer.cxx:34 TVirtualPacketizer.cxx:35 TVirtualPacketizer.cxx:36 TVirtualPacketizer.cxx:37 TVirtualPacketizer.cxx:38 TVirtualPacketizer.cxx:39 TVirtualPacketizer.cxx:40 TVirtualPacketizer.cxx:41 TVirtualPacketizer.cxx:42 TVirtualPacketizer.cxx:43 TVirtualPacketizer.cxx:44 TVirtualPacketizer.cxx:45 TVirtualPacketizer.cxx:46 TVirtualPacketizer.cxx:47 TVirtualPacketizer.cxx:48 TVirtualPacketizer.cxx:49 TVirtualPacketizer.cxx:50 TVirtualPacketizer.cxx:51 TVirtualPacketizer.cxx:52 TVirtualPacketizer.cxx:53 TVirtualPacketizer.cxx:54 TVirtualPacketizer.cxx:55 TVirtualPacketizer.cxx:56 TVirtualPacketizer.cxx:57 TVirtualPacketizer.cxx:58 TVirtualPacketizer.cxx:59 TVirtualPacketizer.cxx:60 TVirtualPacketizer.cxx:61 TVirtualPacketizer.cxx:62 TVirtualPacketizer.cxx:63 TVirtualPacketizer.cxx:64 TVirtualPacketizer.cxx:65 TVirtualPacketizer.cxx:66 TVirtualPacketizer.cxx:67 TVirtualPacketizer.cxx:68 TVirtualPacketizer.cxx:69 TVirtualPacketizer.cxx:70 TVirtualPacketizer.cxx:71 TVirtualPacketizer.cxx:72 TVirtualPacketizer.cxx:73 TVirtualPacketizer.cxx:74 TVirtualPacketizer.cxx:75 TVirtualPacketizer.cxx:76 TVirtualPacketizer.cxx:77 TVirtualPacketizer.cxx:78 TVirtualPacketizer.cxx:79 TVirtualPacketizer.cxx:80 TVirtualPacketizer.cxx:81 TVirtualPacketizer.cxx:82 TVirtualPacketizer.cxx:83 TVirtualPacketizer.cxx:84 TVirtualPacketizer.cxx:85 TVirtualPacketizer.cxx:86 TVirtualPacketizer.cxx:87 TVirtualPacketizer.cxx:88 TVirtualPacketizer.cxx:89 TVirtualPacketizer.cxx:90 TVirtualPacketizer.cxx:91 TVirtualPacketizer.cxx:92 TVirtualPacketizer.cxx:93 TVirtualPacketizer.cxx:94 TVirtualPacketizer.cxx:95 TVirtualPacketizer.cxx:96 TVirtualPacketizer.cxx:97 TVirtualPacketizer.cxx:98 TVirtualPacketizer.cxx:99 TVirtualPacketizer.cxx:100 TVirtualPacketizer.cxx:101 TVirtualPacketizer.cxx:102 TVirtualPacketizer.cxx:103 TVirtualPacketizer.cxx:104 TVirtualPacketizer.cxx:105 TVirtualPacketizer.cxx:106 TVirtualPacketizer.cxx:107 TVirtualPacketizer.cxx:108 TVirtualPacketizer.cxx:109 TVirtualPacketizer.cxx:110 TVirtualPacketizer.cxx:111 TVirtualPacketizer.cxx:112 TVirtualPacketizer.cxx:113 TVirtualPacketizer.cxx:114 TVirtualPacketizer.cxx:115 TVirtualPacketizer.cxx:116 TVirtualPacketizer.cxx:117 TVirtualPacketizer.cxx:118 TVirtualPacketizer.cxx:119 TVirtualPacketizer.cxx:120 TVirtualPacketizer.cxx:121 TVirtualPacketizer.cxx:122 TVirtualPacketizer.cxx:123 TVirtualPacketizer.cxx:124 TVirtualPacketizer.cxx:125 TVirtualPacketizer.cxx:126 TVirtualPacketizer.cxx:127 TVirtualPacketizer.cxx:128 TVirtualPacketizer.cxx:129 TVirtualPacketizer.cxx:130 TVirtualPacketizer.cxx:131 TVirtualPacketizer.cxx:132 TVirtualPacketizer.cxx:133 TVirtualPacketizer.cxx:134 TVirtualPacketizer.cxx:135 TVirtualPacketizer.cxx:136 TVirtualPacketizer.cxx:137 TVirtualPacketizer.cxx:138 TVirtualPacketizer.cxx:139 TVirtualPacketizer.cxx:140 TVirtualPacketizer.cxx:141 TVirtualPacketizer.cxx:142 TVirtualPacketizer.cxx:143 TVirtualPacketizer.cxx:144 TVirtualPacketizer.cxx:145 TVirtualPacketizer.cxx:146 TVirtualPacketizer.cxx:147 TVirtualPacketizer.cxx:148 TVirtualPacketizer.cxx:149 TVirtualPacketizer.cxx:150 TVirtualPacketizer.cxx:151 TVirtualPacketizer.cxx:152 TVirtualPacketizer.cxx:153 TVirtualPacketizer.cxx:154 TVirtualPacketizer.cxx:155 TVirtualPacketizer.cxx:156 TVirtualPacketizer.cxx:157 TVirtualPacketizer.cxx:158 TVirtualPacketizer.cxx:159 TVirtualPacketizer.cxx:160 TVirtualPacketizer.cxx:161 TVirtualPacketizer.cxx:162 TVirtualPacketizer.cxx:163 TVirtualPacketizer.cxx:164 TVirtualPacketizer.cxx:165 TVirtualPacketizer.cxx:166 TVirtualPacketizer.cxx:167 TVirtualPacketizer.cxx:168 TVirtualPacketizer.cxx:169 TVirtualPacketizer.cxx:170 TVirtualPacketizer.cxx:171 TVirtualPacketizer.cxx:172 TVirtualPacketizer.cxx:173 TVirtualPacketizer.cxx:174 TVirtualPacketizer.cxx:175 TVirtualPacketizer.cxx:176 TVirtualPacketizer.cxx:177 TVirtualPacketizer.cxx:178 TVirtualPacketizer.cxx:179 TVirtualPacketizer.cxx:180 TVirtualPacketizer.cxx:181 TVirtualPacketizer.cxx:182 TVirtualPacketizer.cxx:183 TVirtualPacketizer.cxx:184 TVirtualPacketizer.cxx:185 TVirtualPacketizer.cxx:186 TVirtualPacketizer.cxx:187 TVirtualPacketizer.cxx:188 TVirtualPacketizer.cxx:189 TVirtualPacketizer.cxx:190 TVirtualPacketizer.cxx:191 TVirtualPacketizer.cxx:192 TVirtualPacketizer.cxx:193 TVirtualPacketizer.cxx:194 TVirtualPacketizer.cxx:195 TVirtualPacketizer.cxx:196 TVirtualPacketizer.cxx:197 TVirtualPacketizer.cxx:198 TVirtualPacketizer.cxx:199 TVirtualPacketizer.cxx:200 TVirtualPacketizer.cxx:201 TVirtualPacketizer.cxx:202 TVirtualPacketizer.cxx:203 TVirtualPacketizer.cxx:204 TVirtualPacketizer.cxx:205 TVirtualPacketizer.cxx:206 TVirtualPacketizer.cxx:207 TVirtualPacketizer.cxx:208 TVirtualPacketizer.cxx:209 TVirtualPacketizer.cxx:210 TVirtualPacketizer.cxx:211 TVirtualPacketizer.cxx:212 TVirtualPacketizer.cxx:213 TVirtualPacketizer.cxx:214 TVirtualPacketizer.cxx:215 TVirtualPacketizer.cxx:216 TVirtualPacketizer.cxx:217 TVirtualPacketizer.cxx:218 TVirtualPacketizer.cxx:219 TVirtualPacketizer.cxx:220 TVirtualPacketizer.cxx:221 TVirtualPacketizer.cxx:222 TVirtualPacketizer.cxx:223 TVirtualPacketizer.cxx:224 TVirtualPacketizer.cxx:225 TVirtualPacketizer.cxx:226 TVirtualPacketizer.cxx:227 TVirtualPacketizer.cxx:228 TVirtualPacketizer.cxx:229 TVirtualPacketizer.cxx:230 TVirtualPacketizer.cxx:231 TVirtualPacketizer.cxx:232 TVirtualPacketizer.cxx:233 TVirtualPacketizer.cxx:234 TVirtualPacketizer.cxx:235 TVirtualPacketizer.cxx:236 TVirtualPacketizer.cxx:237 TVirtualPacketizer.cxx:238 TVirtualPacketizer.cxx:239 TVirtualPacketizer.cxx:240 TVirtualPacketizer.cxx:241 TVirtualPacketizer.cxx:242 TVirtualPacketizer.cxx:243 TVirtualPacketizer.cxx:244 TVirtualPacketizer.cxx:245 TVirtualPacketizer.cxx:246 TVirtualPacketizer.cxx:247 TVirtualPacketizer.cxx:248 TVirtualPacketizer.cxx:249 TVirtualPacketizer.cxx:250 TVirtualPacketizer.cxx:251 TVirtualPacketizer.cxx:252 TVirtualPacketizer.cxx:253 TVirtualPacketizer.cxx:254 TVirtualPacketizer.cxx:255 TVirtualPacketizer.cxx:256 TVirtualPacketizer.cxx:257 TVirtualPacketizer.cxx:258 TVirtualPacketizer.cxx:259 TVirtualPacketizer.cxx:260 TVirtualPacketizer.cxx:261 TVirtualPacketizer.cxx:262 TVirtualPacketizer.cxx:263 TVirtualPacketizer.cxx:264 TVirtualPacketizer.cxx:265 TVirtualPacketizer.cxx:266 TVirtualPacketizer.cxx:267 TVirtualPacketizer.cxx:268 TVirtualPacketizer.cxx:269 TVirtualPacketizer.cxx:270 TVirtualPacketizer.cxx:271 TVirtualPacketizer.cxx:272 TVirtualPacketizer.cxx:273 TVirtualPacketizer.cxx:274 TVirtualPacketizer.cxx:275 TVirtualPacketizer.cxx:276 TVirtualPacketizer.cxx:277 TVirtualPacketizer.cxx:278 TVirtualPacketizer.cxx:279 TVirtualPacketizer.cxx:280 TVirtualPacketizer.cxx:281 TVirtualPacketizer.cxx:282 TVirtualPacketizer.cxx:283 TVirtualPacketizer.cxx:284 TVirtualPacketizer.cxx:285 TVirtualPacketizer.cxx:286 TVirtualPacketizer.cxx:287 TVirtualPacketizer.cxx:288 TVirtualPacketizer.cxx:289 TVirtualPacketizer.cxx:290 TVirtualPacketizer.cxx:291 TVirtualPacketizer.cxx:292 TVirtualPacketizer.cxx:293 TVirtualPacketizer.cxx:294 TVirtualPacketizer.cxx:295 TVirtualPacketizer.cxx:296 TVirtualPacketizer.cxx:297 TVirtualPacketizer.cxx:298 TVirtualPacketizer.cxx:299 TVirtualPacketizer.cxx:300 TVirtualPacketizer.cxx:301 TVirtualPacketizer.cxx:302 TVirtualPacketizer.cxx:303 TVirtualPacketizer.cxx:304 TVirtualPacketizer.cxx:305 TVirtualPacketizer.cxx:306 TVirtualPacketizer.cxx:307 TVirtualPacketizer.cxx:308 TVirtualPacketizer.cxx:309 TVirtualPacketizer.cxx:310 TVirtualPacketizer.cxx:311 TVirtualPacketizer.cxx:312 TVirtualPacketizer.cxx:313 TVirtualPacketizer.cxx:314 TVirtualPacketizer.cxx:315 TVirtualPacketizer.cxx:316 TVirtualPacketizer.cxx:317 TVirtualPacketizer.cxx:318 TVirtualPacketizer.cxx:319 TVirtualPacketizer.cxx:320 TVirtualPacketizer.cxx:321 TVirtualPacketizer.cxx:322 TVirtualPacketizer.cxx:323 TVirtualPacketizer.cxx:324 TVirtualPacketizer.cxx:325 TVirtualPacketizer.cxx:326 TVirtualPacketizer.cxx:327 TVirtualPacketizer.cxx:328 TVirtualPacketizer.cxx:329 TVirtualPacketizer.cxx:330 TVirtualPacketizer.cxx:331 TVirtualPacketizer.cxx:332 TVirtualPacketizer.cxx:333 TVirtualPacketizer.cxx:334 TVirtualPacketizer.cxx:335 TVirtualPacketizer.cxx:336 TVirtualPacketizer.cxx:337 TVirtualPacketizer.cxx:338 TVirtualPacketizer.cxx:339 TVirtualPacketizer.cxx:340 TVirtualPacketizer.cxx:341 TVirtualPacketizer.cxx:342 TVirtualPacketizer.cxx:343 TVirtualPacketizer.cxx:344 TVirtualPacketizer.cxx:345 TVirtualPacketizer.cxx:346 TVirtualPacketizer.cxx:347 TVirtualPacketizer.cxx:348 TVirtualPacketizer.cxx:349 TVirtualPacketizer.cxx:350 TVirtualPacketizer.cxx:351 TVirtualPacketizer.cxx:352 TVirtualPacketizer.cxx:353 TVirtualPacketizer.cxx:354 TVirtualPacketizer.cxx:355 TVirtualPacketizer.cxx:356 TVirtualPacketizer.cxx:357 TVirtualPacketizer.cxx:358 TVirtualPacketizer.cxx:359 TVirtualPacketizer.cxx:360 TVirtualPacketizer.cxx:361 TVirtualPacketizer.cxx:362 TVirtualPacketizer.cxx:363 TVirtualPacketizer.cxx:364 TVirtualPacketizer.cxx:365 TVirtualPacketizer.cxx:366 TVirtualPacketizer.cxx:367 TVirtualPacketizer.cxx:368 TVirtualPacketizer.cxx:369 TVirtualPacketizer.cxx:370 TVirtualPacketizer.cxx:371 TVirtualPacketizer.cxx:372 TVirtualPacketizer.cxx:373 TVirtualPacketizer.cxx:374 TVirtualPacketizer.cxx:375 TVirtualPacketizer.cxx:376 TVirtualPacketizer.cxx:377 TVirtualPacketizer.cxx:378 TVirtualPacketizer.cxx:379 TVirtualPacketizer.cxx:380 TVirtualPacketizer.cxx:381 TVirtualPacketizer.cxx:382 TVirtualPacketizer.cxx:383 TVirtualPacketizer.cxx:384 TVirtualPacketizer.cxx:385 TVirtualPacketizer.cxx:386 TVirtualPacketizer.cxx:387 TVirtualPacketizer.cxx:388 TVirtualPacketizer.cxx:389 TVirtualPacketizer.cxx:390 TVirtualPacketizer.cxx:391 TVirtualPacketizer.cxx:392 TVirtualPacketizer.cxx:393 TVirtualPacketizer.cxx:394 TVirtualPacketizer.cxx:395 TVirtualPacketizer.cxx:396 TVirtualPacketizer.cxx:397 TVirtualPacketizer.cxx:398 TVirtualPacketizer.cxx:399 TVirtualPacketizer.cxx:400 TVirtualPacketizer.cxx:401 TVirtualPacketizer.cxx:402 TVirtualPacketizer.cxx:403 TVirtualPacketizer.cxx:404 TVirtualPacketizer.cxx:405 TVirtualPacketizer.cxx:406 TVirtualPacketizer.cxx:407 TVirtualPacketizer.cxx:408 TVirtualPacketizer.cxx:409 TVirtualPacketizer.cxx:410 TVirtualPacketizer.cxx:411 TVirtualPacketizer.cxx:412 TVirtualPacketizer.cxx:413 TVirtualPacketizer.cxx:414 TVirtualPacketizer.cxx:415 TVirtualPacketizer.cxx:416 TVirtualPacketizer.cxx:417 TVirtualPacketizer.cxx:418 TVirtualPacketizer.cxx:419 TVirtualPacketizer.cxx:420 TVirtualPacketizer.cxx:421 TVirtualPacketizer.cxx:422 TVirtualPacketizer.cxx:423 TVirtualPacketizer.cxx:424 TVirtualPacketizer.cxx:425 TVirtualPacketizer.cxx:426 TVirtualPacketizer.cxx:427 TVirtualPacketizer.cxx:428 TVirtualPacketizer.cxx:429 TVirtualPacketizer.cxx:430 TVirtualPacketizer.cxx:431 TVirtualPacketizer.cxx:432 TVirtualPacketizer.cxx:433 TVirtualPacketizer.cxx:434 TVirtualPacketizer.cxx:435 TVirtualPacketizer.cxx:436 TVirtualPacketizer.cxx:437 TVirtualPacketizer.cxx:438 TVirtualPacketizer.cxx:439 TVirtualPacketizer.cxx:440 TVirtualPacketizer.cxx:441 TVirtualPacketizer.cxx:442 TVirtualPacketizer.cxx:443 TVirtualPacketizer.cxx:444 TVirtualPacketizer.cxx:445 TVirtualPacketizer.cxx:446 TVirtualPacketizer.cxx:447 TVirtualPacketizer.cxx:448