ROOT logo
#include "AliEventPoolManager.h"

using std::cout;
using std::endl;
ClassImp(AliEventPool)

void AliEventPool::PrintInfo() const
{
  cout << Form("%20s: %d events", "Pool capacity", fMixDepth) << endl;
  cout << Form("%20s: %d events, %d tracks", "Current size", 
	       GetCurrentNEvents(), NTracksInPool()) << endl;
  cout << Form("%20s: %.1f to %.1f", "Sub-event mult.", fMultMin, fMultMax) << endl;
  cout << Form("%20s: %.1f to %.1f", "Z-vtx range", fZvtxMin, fZvtxMax) << endl;
  cout << Form("%20s: %.1f to %.1f", "Psi range", fPsiMin, fPsiMax) << endl;

  return;
}

Bool_t AliEventPool::EventMatchesBin(Int_t mult, Double_t zvtx, Double_t psi) const
{
  return EventMatchesBin((Double_t) mult, zvtx, psi);
}

Bool_t AliEventPool::EventMatchesBin(Double_t mult, Double_t zvtx, Double_t psi) const
{
  // Lower bin limit included; upper limit excluded.

  Bool_t multOK = (mult >= fMultMin && mult < fMultMax);
  Bool_t zvtxOK = (zvtx >= fZvtxMin && zvtx < fZvtxMax);
  Bool_t psiOK  = (psi >= fPsiMin   && psi  < fPsiMax);
  return (multOK && zvtxOK && psiOK);
}

Int_t AliEventPool::NTracksInPool() const
{
  // Number of tracks for this cent, zvtx bin; possibly includes many
  // events.

  Int_t ntrk=0;
  for (Int_t i=0; i<(Int_t)fEvents.size(); ++i) {
    ntrk += fNTracksInEvent.at(i);
  }
  return ntrk;
}

Int_t AliEventPool::SetEventMultRange(Int_t multMin, Int_t multMax)
{
  fMultMin = (Double_t)multMin;
  fMultMax = (Double_t)multMax;
  return 0;
}

Int_t AliEventPool::SetEventMultRange(Double_t multMin, Double_t multMax)
{
  fMultMin = multMin;
  fMultMax = multMax;
  return 0;
}

Int_t AliEventPool::SetEventZvtxRange(Double_t zvtxMin, Double_t zvtxMax)
{
  fZvtxMin = zvtxMin;
  fZvtxMax = zvtxMax;
  return 0;
}

Int_t AliEventPool::SetEventPsiRange(Double_t psiMin, Double_t psiMax)
{
  fPsiMin = psiMin;
  fPsiMax = psiMax;
  return 0;
}

Int_t AliEventPool::GlobalEventIndex(Int_t j) const
{
  // Index returned from passing local pool event index.

  if (j < 0 || j >= (Int_t)fEventIndex.size()) {
    cout << "ERROR in AliEventPool::GlobalEventIndex(): "
	 << " Invalid index " << j << endl;
    return -99;
  }
  return fEventIndex.at(j);
}

Int_t AliEventPool::UpdatePool(TObjArray *trk)
{
  // A rolling buffer (a double-ended queue) is updated by removing
  // the oldest event, and appending the newest.
  //
  // the ownership of <trk> is delegated to this class

  static Int_t iEvent = -1; 
  iEvent++;

  Int_t mult = trk->GetEntries();
  Int_t nTrk = NTracksInPool();

  if (!IsReady() && IsReady(nTrk + mult, GetCurrentNEvents() + 1))
    fNTimes++;

  // remove 0th element before appending this event
  Bool_t removeFirstEvent = 0;
  if (nTrk>fTargetTrackDepth) {
    Int_t nTrksFirstEvent= fNTracksInEvent.front();
    Int_t diff = nTrk - nTrksFirstEvent + mult;
    if (diff>fTargetTrackDepth)
      removeFirstEvent = 1;
  }
  if (removeFirstEvent) {
    TObjArray *fa = fEvents.front();
    delete fa;
    fEvents.pop_front();         // remove first track array 
    fNTracksInEvent.pop_front(); // remove first int
    fEventIndex.pop_front();
  }

  fNTracksInEvent.push_back(mult);
  fEvents.push_back(trk);
  fEventIndex.push_back(iEvent);

  if (fNTimes==1) {
    fFirstFilled = kTRUE;
    if (AliEventPool::fDebug) {
      cout << "\nPool " << MultBinIndex() << ", " << ZvtxBinIndex() 
           << " ready at event "<< iEvent;
      PrintInfo();
      cout << endl;
    }
    fNTimes++; // See this message exactly once/pool
  } else {
    fFirstFilled = kFALSE;
  }

  fWasUpdated = true;

  if (AliEventPool::fDebug) {
    cout << " Event " << fEventIndex.back();
    cout << " PoolDepth = " << GetCurrentNEvents(); 
    cout << " NTracksInCurrentEvent = " << NTracksInCurrentEvent();
  }

  return fEvents.size();
}

TObject* AliEventPool::GetRandomTrack() const
{
  // Get any random track from the pool, sampled with uniform probability.

  UInt_t ranEvt = gRandom->Integer(fEvents.size());
  TObjArray *tca = fEvents.at(ranEvt);
  UInt_t ranTrk = gRandom->Integer(tca->GetEntries());
  TObject *trk = (TObject*)tca->At(ranTrk);
  return trk;
}

TObjArray* AliEventPool::GetEvent(Int_t i) const
{
  if (i<0 || i>=(Int_t)fEvents.size()) {
    cout << "AliEventPool::GetEvent(" 
	 << i << "): Invalid index" << endl;
    return 0x0;
  }

  TObjArray *tca = fEvents.at(i);
  return tca;
}

TObjArray* AliEventPool::GetRandomEvent() const
{
  UInt_t ranEvt = gRandom->Integer(fEvents.size());
  TObjArray *tca = fEvents.at(ranEvt);
  return tca;
}

Int_t AliEventPool::NTracksInEvent(Int_t iEvent) const
{
  // Return number of tracks in iEvent, which is the local pool index.

  Int_t n = -1;
  Int_t curEvent = fEventIndex.back();
  Int_t offset = curEvent - iEvent;
  Int_t pos = fEventIndex.size() - offset - 1;

  if (offset==0)
    n = fNTracksInEvent.back();
  else if (offset < 0 || iEvent < 0) {
    n = 0;
  }
  else if (offset > 0 && offset <= (int)fEventIndex.size()) {
    n = fNTracksInEvent.at(pos);
  }
  else
    cout << "Event info no longer in memory" << endl;
  return n;
}

ClassImp(AliEventPoolManager)

AliEventPoolManager::AliEventPoolManager(Int_t depth,     Int_t minNTracks,
					 Int_t nMultBins, Double_t *multbins,
					 Int_t nZvtxBins, Double_t *zvtxbins) :
fDebug(0), fNMultBins(0), fNZvtxBins(0), fNPsiBins(0), fEvPool(0), fTargetTrackDepth(minNTracks) 
{
  // Constructor.
  // without Event plane bins
  Int_t nPsiBins = 1;
  Double_t psibins[2] = {-999.,999.};

  InitEventPools(depth, nMultBins, multbins, nZvtxBins, zvtxbins, nPsiBins, psibins);
  cout << "AliEventPoolManager initialized." << endl;
}

AliEventPoolManager::AliEventPoolManager(Int_t depth,     Int_t minNTracks,
					 Int_t nMultBins, Double_t *multbins,
					 Int_t nZvtxBins, Double_t *zvtxbins,
					 Int_t nPsiBins, Double_t *psibins) :
fDebug(0), fNMultBins(0), fNZvtxBins(0), fNPsiBins(0), fEvPool(0), fTargetTrackDepth(minNTracks) 
{
  // Constructor.

  InitEventPools(depth, nMultBins, multbins, nZvtxBins, zvtxbins, nPsiBins, psibins);
  cout << "AliEventPoolManager initialized." << endl;
}



Int_t AliEventPoolManager::InitEventPools(Int_t depth, 
					  Int_t nMultBins, Double_t *multbin, 
					  Int_t nZvtxBins, Double_t *zvtxbin, 
					  Int_t nPsiBins, Double_t *psibin)
{
  // Assign AliEventPoolManager members. (with Event plane)

  fNMultBins = nMultBins;
  fNZvtxBins = nZvtxBins;
  fNPsiBins  = nPsiBins;
  
  for (Int_t iM=0; iM<nMultBins; iM++) {
    for (Int_t iZ=0; iZ<nZvtxBins; iZ++) {
      for (Int_t iP=0; iP<nPsiBins; iP++) {

	fEvPool.push_back(new AliEventPool(depth, 
					   multbin[iM], multbin[iM+1], 
					   zvtxbin[iZ], zvtxbin[iZ+1],
					   psibin[iP], psibin[iP+1] ));
      }
    }
  }
  
  
  for (Int_t iM=0; iM<nMultBins; iM++) {
    for (Int_t iZ=0; iZ<nZvtxBins; iZ++) {
      for (Int_t iP=0; iP<nPsiBins; iP++) {
	fEvPool.at(fNZvtxBins*fNPsiBins*iM + fNPsiBins*iZ + iP)->SetMultBinIndex(iM);
	fEvPool.at(fNZvtxBins*fNPsiBins*iM + fNPsiBins*iZ + iP)->SetZvtxBinIndex(iZ);
	fEvPool.at(fNZvtxBins*fNPsiBins*iM + fNPsiBins*iZ + iP)->SetPsiBinIndex(iP);
	fEvPool.at(fNZvtxBins*fNPsiBins*iM + fNPsiBins*iZ + iP)->SetTargetTrackDepth(fTargetTrackDepth);
      }
    }
  }
    
  if (0) {
    cout << "fEvPool outer size: " << fEvPool.size() << endl;
    for (Int_t iM=0; iM<nMultBins; iM++) {
      for (Int_t iZ=0; iZ<nZvtxBins; iZ++) {
	for (Int_t iP=0; iP<nPsiBins; iP++) {
	  if(fEvPool.at(fNZvtxBins*fNPsiBins*iM + fNPsiBins*iZ + iP)) {
	    cout << "multiplicity bin: " << iM;
	    cout << ", z-vertex bin: " << iZ;
	    cout << ", psi bin: " << iP;
	    fEvPool.at(fNZvtxBins*fNPsiBins*iM + fNPsiBins*iZ + iP)->PrintInfo();
	  }
	}
      }
    }
  }
  
  return fEvPool.size();
}

void AliEventPoolManager::SetTargetValues(Int_t trackDepth, Float_t fraction, Int_t events)
{
  // sets target values (when a pool becomes ready) in all event pools
  
  fTargetTrackDepth = trackDepth;
  
  for (Int_t iM=0; iM<fNMultBins; iM++) {
    for (Int_t iZ=0; iZ<fNZvtxBins; iZ++) {
      for (Int_t iP=0; iP<fNPsiBins; iP++) {
	fEvPool.at(fNZvtxBins*fNPsiBins*iM + fNPsiBins*iZ + iP)->SetTargetTrackDepth(trackDepth, fraction);
	fEvPool.at(fNZvtxBins*fNPsiBins*iM + fNPsiBins*iZ + iP)->SetTargetEvents(events);
      }
    }
  }
}

AliEventPool *AliEventPoolManager::GetEventPool(Int_t iMult, Int_t iZvtx, Int_t iPsi) const
{
  if (iMult < 0 || iMult >= fNMultBins) 
    return 0x0;
  if (iZvtx < 0 || iZvtx >= fNZvtxBins) 
    return 0x0;
  if (iPsi < 0 || iPsi >= fNPsiBins) 
    return 0x0;
  
  return fEvPool.at(fNZvtxBins*fNPsiBins*iMult + fNPsiBins*iZvtx + iPsi);
}

AliEventPool *AliEventPoolManager::GetEventPool(Int_t centVal, Double_t zVtxVal, Double_t psiVal) const
{
  return GetEventPool((Double_t)centVal, zVtxVal, psiVal);
}

AliEventPool *AliEventPoolManager::GetEventPool(Double_t centVal, Double_t zVtxVal, Double_t psiVal) const
{
  // Return appropriate pool for this centrality and z-vertex value.

  for (Int_t iM=0; iM<fNMultBins; iM++) {
    for (Int_t iZ=0; iZ<fNZvtxBins; iZ++) {
      for (Int_t iP=0; iP<fNPsiBins; iP++) {
	AliEventPool* pool = GetEventPool(iM, iZ, iP);
	if (pool->EventMatchesBin(centVal, zVtxVal, psiVal))
	  return pool;
      }
    }
  }
  return 0x0;
}

Int_t AliEventPoolManager::UpdatePools(TObjArray *trk)
{
  // Call UpdatePool for all bins.

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