#include "AliMCEventHandler.h"
#include "AliMCEvent.h"
#include "AliMCParticle.h"
#include "AliPDG.h"
#include "AliTrackReference.h"
#include "AliHeader.h"
#include "AliStack.h"
#include "AliLog.h"
#include <TTree.h>
#include <TSystem.h>
#include <TTreeCache.h>
#include <TFile.h>
#include <TList.h>
#include <TParticle.h>
#include <TString.h>
#include <TClonesArray.h>
#include <TDirectoryFile.h>
ClassImp(AliMCEventHandler)
AliMCEventHandler::AliMCEventHandler() :
AliInputEventHandler(),
fMCEvent(0),
fFileE(0),
fFileK(0),
fFileTR(0),
fTreeE(0),
fTreeK(0),
fTreeTR(0),
fDirK(0),
fDirTR(0),
fParticleSelected(0),
fLabelMap(0),
fNEvent(-1),
fEvent(-1),
fPathName(new TString("./")),
fkExtension(""),
fFileNumber(0),
fEventsPerFile(0),
fReadTR(kTRUE),
fInitOk(kFALSE),
fSubsidiaryHandlers(0),
fEventsInContainer(0),
fPreReadMode(kLmPreRead),
fCacheSize(0),
fCacheTK(0),
fCacheTR(0)
{
AliPDG::AddParticlesToPdgDataBase();
}
AliMCEventHandler::AliMCEventHandler(const char* name, const char* title) :
AliInputEventHandler(name, title),
fMCEvent(),
fFileE(0),
fFileK(0),
fFileTR(0),
fTreeE(0),
fTreeK(0),
fTreeTR(0),
fDirK(0),
fDirTR(0),
fParticleSelected(0),
fLabelMap(0),
fNEvent(-1),
fEvent(-1),
fPathName(new TString("./")),
fkExtension(""),
fFileNumber(0),
fEventsPerFile(0),
fReadTR(kTRUE),
fInitOk(kFALSE),
fSubsidiaryHandlers(0),
fEventsInContainer(0),
fPreReadMode(kLmPreRead),
fCacheSize(0),
fCacheTK(0),
fCacheTR(0)
{
AliPDG::AddParticlesToPdgDataBase();
}
AliMCEventHandler::~AliMCEventHandler()
{
delete fPathName;
delete fMCEvent;
delete fFileE;
delete fFileK;
delete fFileTR;
delete fCacheTK;
delete fCacheTR;
}
Bool_t AliMCEventHandler::Init(Option_t* opt)
{
if (!(strcmp(opt, "proof")) || !(strcmp(opt, "local"))) return kTRUE;
fFileE = TFile::Open(Form("%sgalice.root", fPathName->Data()));
if (!fFileE) {
AliError(Form("AliMCEventHandler:galice.root not found in directory %s ! \n", fPathName->Data()));
fInitOk = kFALSE;
return kFALSE;
}
fFileE->GetObject("TE", fTreeE);
if (!fMCEvent) fMCEvent = new AliMCEvent();
fMCEvent->ConnectTreeE(fTreeE);
fNEvent = fTreeE->GetEntries();
fFileK = TFile::Open(Form("%sKinematics%s.root", fPathName->Data(), fkExtension));
if (!fFileK) {
AliError(Form("AliMCEventHandler:Kinematics.root not found in directory %s ! \n", fPathName->Data()));
fInitOk = kFALSE;
return kTRUE;
}
fEventsPerFile = fFileK->GetNkeys() - fFileK->GetNProcessIDs();
if (fReadTR) {
fFileTR = TFile::Open(Form("%sTrackRefs%s.root", fPathName->Data(), fkExtension));
if (!fFileTR) {
AliError(Form("AliMCEventHandler:TrackRefs.root not found in directory %s ! \n", fPathName->Data()));
fInitOk = kFALSE;
return kTRUE;
}
}
fEvent = -1;
fFileNumber = 0;
AliInfo(Form("Number of events in this directory %5d \n", fNEvent));
fInitOk = kTRUE;
if (fSubsidiaryHandlers) {
TIter next(fSubsidiaryHandlers);
AliMCEventHandler *handler;
while((handler = (AliMCEventHandler*)next())) {
handler->Init(opt);
handler->SetNumberOfEventsInContainer(fNEvent);
}
}
return kTRUE;
}
Bool_t AliMCEventHandler::LoadEvent(Int_t iev)
{
if (!fInitOk) return kFALSE;
Int_t inew = iev / fEventsPerFile;
Bool_t firsttree = (fTreeK==0) ? kTRUE : kFALSE;
if (inew != fFileNumber) {
fFileNumber = inew;
if (!OpenFile(fFileNumber)){
return kFALSE;
}
}
char folder[20];
snprintf(folder, 20, "Event%d", iev);
fTreeE->GetEntry(iev);
fFileK->GetObject(folder, fDirK);
if (!fDirK) {
AliWarning(Form("AliMCEventHandler: Event #%5d - Cannot get kinematics\n", iev));
return kFALSE;
}
fDirK ->GetObject("TreeK", fTreeK);
if (!fTreeK) {
AliError(Form("AliMCEventHandler: Event #%5d - Cannot get TreeK\n",iev));
return kFALSE;
}
fMCEvent->ConnectTreeK(fTreeK);
if (fFileTR) {
fFileTR->GetObject(folder, fDirTR);
if (!fDirTR) {
AliError(Form("AliMCEventHandler: Event #%5d - Cannot get track references\n",iev));
return kFALSE;
}
fDirTR->GetObject("TreeTR", fTreeTR);
if (!fTreeTR) {
AliError(Form("AliMCEventHandler: Event #%5d - Cannot get TreeTR\n",iev));
return kFALSE;
}
fMCEvent->ConnectTreeTR(fTreeTR);
}
if (fCacheSize) {
fTreeK->SetCacheSize(fCacheSize);
fCacheTK = (TTreeCache*) fFileK->GetCacheRead(fTreeK);
TTreeCache::SetLearnEntries(1);
fTreeK->AddBranchToCache("*",kTRUE);
if (firsttree) Info("LoadEvent","Read cache enabled %lld bytes for TreeK",fCacheSize);
if (fTreeTR) {
fTreeTR->SetCacheSize(fCacheSize);
fCacheTR = (TTreeCache*) fFileTR->GetCacheRead(fTreeTR);
TTreeCache::SetLearnEntries(1);
fTreeTR->AddBranchToCache("*",kTRUE);
if (firsttree) Info("LoadEvent","Read cache enabled %lld bytes for TreeTR",fCacheSize);
}
}
return kTRUE;
}
Bool_t AliMCEventHandler::OpenFile(Int_t i)
{
fInitOk = kFALSE;
if (i > 0) {
fkExtension = Form("%d", i);
} else {
fkExtension = "";
}
if (fFileK && fCacheTK) fFileK->SetCacheRead(0, fTreeK);
delete fFileK;
fFileK = TFile::Open(Form("%sKinematics%s.root", fPathName->Data(), fkExtension));
if (!fFileK) {
AliError(Form("AliMCEventHandler:Kinematics%s.root not found in directory %s ! \n", fkExtension, fPathName->Data()));
delete fMCEvent; fMCEvent=0;
return fInitOk;
}
fInitOk = kTRUE;
if (fReadTR) {
if (fFileTR && fCacheTR) fFileTR->SetCacheRead(0, fTreeTR);
delete fFileTR;
fFileTR = TFile::Open(Form("%sTrackRefs%s.root", fPathName->Data(), fkExtension));
if (!fFileTR) {
AliError(Form("AliMCEventHandler:TrackRefs%s.root not found in directory %s ! \n", fkExtension, fPathName->Data()));
return fInitOk;
}
}
return fInitOk;
}
Bool_t AliMCEventHandler::BeginEvent(Long64_t entry)
{
if (!fInitOk) return kFALSE;
fParticleSelected.Delete();
fLabelMap.Delete();
if (fEventsInContainer != 0) {
entry = (Long64_t) ( entry * Float_t(fNEvent) / Float_t (fEventsInContainer));
}
if (entry == -1) {
fEvent++;
entry = fEvent;
} else {
fEvent = entry;
}
if (entry >= fNEvent) {
AliWarning(Form("AliMCEventHandler: Event number out of range %5lld %5d\n", entry, fNEvent));
return kFALSE;
}
Bool_t result = LoadEvent(entry);
if (fSubsidiaryHandlers) {
TIter next(fSubsidiaryHandlers);
AliMCEventHandler *handler;
while((handler = (AliMCEventHandler*)next())) {
handler->BeginEvent(entry);
}
next.Reset();
while((handler = (AliMCEventHandler*)next())) {
if (!handler->MCEvent()) continue;
fMCEvent->AddSubsidiaryEvent(handler->MCEvent());
}
fMCEvent->InitEvent();
}
if (fPreReadMode == kLmPreRead) {
fMCEvent->PreReadAll();
}
return result;
}
void AliMCEventHandler::SelectParticle(Int_t i){
if (!fInitOk) return;
if (TMath::Abs(i) >= AliMCEvent::BgLabelOffset()) i = fMCEvent->BgLabelToIndex(TMath::Abs(i));
if(!IsParticleSelected(TMath::Abs(i)))fParticleSelected.Add(TMath::Abs(i),1);
}
Bool_t AliMCEventHandler::IsParticleSelected(Int_t i) {
return (fParticleSelected.GetValue(TMath::Abs(i))==1);
}
void AliMCEventHandler::CreateLabelMap(){
fLabelMap.Delete();
if(!fMCEvent){
fParticleSelected.Delete();
return;
}
VerifySelectedParticles();
Int_t iNew = 0;
for(int i = 0;i < fMCEvent->GetNumberOfTracks();++i){
if(IsParticleSelected(i)){
fLabelMap.Add(i,iNew);
iNew++;
}
}
}
Int_t AliMCEventHandler::GetNewLabel(Int_t i) {
return fLabelMap.GetValue(TMath::Abs(i));
}
void AliMCEventHandler::VerifySelectedParticles(){
if(!fMCEvent){
fParticleSelected.Delete();
return;
}
Int_t nprim = fMCEvent->GetNumberOfPrimaries();
for(int i = 0;i < fMCEvent->GetNumberOfTracks(); ++i){
if(i < nprim){
SelectParticle(i);
continue;
}
if(!IsParticleSelected(i))continue;
AliMCParticle* mcpart = (AliMCParticle*) fMCEvent->GetTrack(i);
Int_t imo = mcpart->GetMother();
while((imo >= nprim)&&!IsParticleSelected(imo)){
SelectParticle(imo);
mcpart = (AliMCParticle*) fMCEvent->GetTrack(imo);
imo = mcpart->GetMother();
}
if(imo>=0){
if(!IsParticleSelected(imo))
SelectParticle(imo);
}
}
}
Int_t AliMCEventHandler::GetParticleAndTR(Int_t i, TParticle*& particle, TClonesArray*& trefs)
{
if (!fInitOk) {
return 0;
} else {
return (fMCEvent->GetParticleAndTR(i, particle, trefs));
}
}
void AliMCEventHandler::DrawCheck(Int_t i, Int_t search)
{
fMCEvent->DrawCheck(i, search);
}
Bool_t AliMCEventHandler::Notify(const char *path)
{
TString fileName(path);
TString dirname = gSystem->DirName(fileName);
TString basename = gSystem->BaseName(fileName);
Int_t index = basename.Index("#");
basename = basename(0, index+1);
fileName = dirname;
fileName += "/";
fileName += basename;
*fPathName = fileName;
AliInfo(Form("Path: -%s-\n", fPathName->Data()));
ResetIO();
InitIO("");
if (fSubsidiaryHandlers) {
TIter next(fSubsidiaryHandlers);
AliMCEventHandler *handler;
while((handler = (AliMCEventHandler*) next())) {
TString* spath = handler->GetInputPath();
if (spath->Contains("merged")) {
if (! fPathName->IsNull()) {
handler->Notify(Form("%s/../.", fPathName->Data()));
} else {
handler->Notify("../");
}
}
}
}
return kTRUE;
}
void AliMCEventHandler::ResetIO()
{
if (fInitOk) fMCEvent->Clean();
delete fTreeE; fTreeE = 0;
if (fFileE) {delete fFileE; fFileE = 0;}
if (fFileK) {delete fFileK; fFileK = 0;}
if (fFileTR) {delete fFileTR; fFileTR = 0;}
fkExtension="";
fInitOk = kFALSE;
if (fSubsidiaryHandlers) {
TIter next(fSubsidiaryHandlers);
AliMCEventHandler *handler;
while((handler = (AliMCEventHandler*)next())) {
handler->ResetIO();
}
}
}
Bool_t AliMCEventHandler::FinishEvent()
{
if (fFileK && fCacheTK) {
fTreeK->SetCacheSize(0);
fCacheTK = 0;
fFileK->SetCacheRead(0, fTreeK);
}
if (fFileTR && fCacheTR) {
fTreeTR->SetCacheSize(0);
fCacheTR = 0;
fFileTR->SetCacheRead(0, fTreeTR);
}
delete fDirTR; fDirTR = 0;
delete fDirK; fDirK = 0;
if (fInitOk) fMCEvent->FinishEvent();
if (fSubsidiaryHandlers) {
TIter next(fSubsidiaryHandlers);
AliMCEventHandler *handler;
while((handler = (AliMCEventHandler*)next())) {
handler->FinishEvent();
}
}
return kTRUE;
}
Bool_t AliMCEventHandler::Terminate()
{
return kTRUE;
}
Bool_t AliMCEventHandler::TerminateIO()
{
return kTRUE;
}
void AliMCEventHandler::SetInputPath(const char* fname)
{
delete fPathName;
fPathName = new TString(fname);
}
void AliMCEventHandler::AddSubsidiaryHandler(AliMCEventHandler* handler)
{
if (!fSubsidiaryHandlers) fSubsidiaryHandlers = new TList();
fSubsidiaryHandlers->Add(handler);
}
AliMCEventHandler.cxx:100 AliMCEventHandler.cxx:101 AliMCEventHandler.cxx:102 AliMCEventHandler.cxx:103 AliMCEventHandler.cxx:104 AliMCEventHandler.cxx:105 AliMCEventHandler.cxx:106 AliMCEventHandler.cxx:107 AliMCEventHandler.cxx:108 AliMCEventHandler.cxx:109 AliMCEventHandler.cxx:110 AliMCEventHandler.cxx:111 AliMCEventHandler.cxx:112 AliMCEventHandler.cxx:113 AliMCEventHandler.cxx:114 AliMCEventHandler.cxx:115 AliMCEventHandler.cxx:116 AliMCEventHandler.cxx:117 AliMCEventHandler.cxx:118 AliMCEventHandler.cxx:119 AliMCEventHandler.cxx:120 AliMCEventHandler.cxx:121 AliMCEventHandler.cxx:122 AliMCEventHandler.cxx:123 AliMCEventHandler.cxx:124 AliMCEventHandler.cxx:125 AliMCEventHandler.cxx:126 AliMCEventHandler.cxx:127 AliMCEventHandler.cxx:128 AliMCEventHandler.cxx:129 AliMCEventHandler.cxx:130 AliMCEventHandler.cxx:131 AliMCEventHandler.cxx:132 AliMCEventHandler.cxx:133 AliMCEventHandler.cxx:134 AliMCEventHandler.cxx:135 AliMCEventHandler.cxx:136 AliMCEventHandler.cxx:137 AliMCEventHandler.cxx:138 AliMCEventHandler.cxx:139 AliMCEventHandler.cxx:140 AliMCEventHandler.cxx:141 AliMCEventHandler.cxx:142 AliMCEventHandler.cxx:143 AliMCEventHandler.cxx:144 AliMCEventHandler.cxx:145 AliMCEventHandler.cxx:146 AliMCEventHandler.cxx:147 AliMCEventHandler.cxx:148 AliMCEventHandler.cxx:149 AliMCEventHandler.cxx:150 AliMCEventHandler.cxx:151 AliMCEventHandler.cxx:152 AliMCEventHandler.cxx:153 AliMCEventHandler.cxx:154 AliMCEventHandler.cxx:155 AliMCEventHandler.cxx:156 AliMCEventHandler.cxx:157 AliMCEventHandler.cxx:158 AliMCEventHandler.cxx:159 AliMCEventHandler.cxx:160 AliMCEventHandler.cxx:161 AliMCEventHandler.cxx:162 AliMCEventHandler.cxx:163 AliMCEventHandler.cxx:164 AliMCEventHandler.cxx:165 AliMCEventHandler.cxx:166 AliMCEventHandler.cxx:167 AliMCEventHandler.cxx:168 AliMCEventHandler.cxx:169 AliMCEventHandler.cxx:170 AliMCEventHandler.cxx:171 AliMCEventHandler.cxx:172 AliMCEventHandler.cxx:173 AliMCEventHandler.cxx:174 AliMCEventHandler.cxx:175 AliMCEventHandler.cxx:176 AliMCEventHandler.cxx:177 AliMCEventHandler.cxx:178 AliMCEventHandler.cxx:179 AliMCEventHandler.cxx:180 AliMCEventHandler.cxx:181 AliMCEventHandler.cxx:182 AliMCEventHandler.cxx:183 AliMCEventHandler.cxx:184 AliMCEventHandler.cxx:185 AliMCEventHandler.cxx:186 AliMCEventHandler.cxx:187 AliMCEventHandler.cxx:188 AliMCEventHandler.cxx:189 AliMCEventHandler.cxx:190 AliMCEventHandler.cxx:191 AliMCEventHandler.cxx:192 AliMCEventHandler.cxx:193 AliMCEventHandler.cxx:194 AliMCEventHandler.cxx:195 AliMCEventHandler.cxx:196 AliMCEventHandler.cxx:197 AliMCEventHandler.cxx:198 AliMCEventHandler.cxx:199 AliMCEventHandler.cxx:200 AliMCEventHandler.cxx:201 AliMCEventHandler.cxx:202 AliMCEventHandler.cxx:203 AliMCEventHandler.cxx:204 AliMCEventHandler.cxx:205 AliMCEventHandler.cxx:206 AliMCEventHandler.cxx:207 AliMCEventHandler.cxx:208 AliMCEventHandler.cxx:209 AliMCEventHandler.cxx:210 AliMCEventHandler.cxx:211 AliMCEventHandler.cxx:212 AliMCEventHandler.cxx:213 AliMCEventHandler.cxx:214 AliMCEventHandler.cxx:215 AliMCEventHandler.cxx:216 AliMCEventHandler.cxx:217 AliMCEventHandler.cxx:218 AliMCEventHandler.cxx:219 AliMCEventHandler.cxx:220 AliMCEventHandler.cxx:221 AliMCEventHandler.cxx:222 AliMCEventHandler.cxx:223 AliMCEventHandler.cxx:224 AliMCEventHandler.cxx:225 AliMCEventHandler.cxx:226 AliMCEventHandler.cxx:227 AliMCEventHandler.cxx:228 AliMCEventHandler.cxx:229 AliMCEventHandler.cxx:230 AliMCEventHandler.cxx:231 AliMCEventHandler.cxx:232 AliMCEventHandler.cxx:233 AliMCEventHandler.cxx:234 AliMCEventHandler.cxx:235 AliMCEventHandler.cxx:236 AliMCEventHandler.cxx:237 AliMCEventHandler.cxx:238 AliMCEventHandler.cxx:239 AliMCEventHandler.cxx:240 AliMCEventHandler.cxx:241 AliMCEventHandler.cxx:242 AliMCEventHandler.cxx:243 AliMCEventHandler.cxx:244 AliMCEventHandler.cxx:245 AliMCEventHandler.cxx:246 AliMCEventHandler.cxx:247 AliMCEventHandler.cxx:248 AliMCEventHandler.cxx:249 AliMCEventHandler.cxx:250 AliMCEventHandler.cxx:251 AliMCEventHandler.cxx:252 AliMCEventHandler.cxx:253 AliMCEventHandler.cxx:254 AliMCEventHandler.cxx:255 AliMCEventHandler.cxx:256 AliMCEventHandler.cxx:257 AliMCEventHandler.cxx:258 AliMCEventHandler.cxx:259 AliMCEventHandler.cxx:260 AliMCEventHandler.cxx:261 AliMCEventHandler.cxx:262 AliMCEventHandler.cxx:263 AliMCEventHandler.cxx:264 AliMCEventHandler.cxx:265 AliMCEventHandler.cxx:266 AliMCEventHandler.cxx:267 AliMCEventHandler.cxx:268 AliMCEventHandler.cxx:269 AliMCEventHandler.cxx:270 AliMCEventHandler.cxx:271 AliMCEventHandler.cxx:272 AliMCEventHandler.cxx:273 AliMCEventHandler.cxx:274 AliMCEventHandler.cxx:275 AliMCEventHandler.cxx:276 AliMCEventHandler.cxx:277 AliMCEventHandler.cxx:278 AliMCEventHandler.cxx:279 AliMCEventHandler.cxx:280 AliMCEventHandler.cxx:281 AliMCEventHandler.cxx:282 AliMCEventHandler.cxx:283 AliMCEventHandler.cxx:284 AliMCEventHandler.cxx:285 AliMCEventHandler.cxx:286 AliMCEventHandler.cxx:287 AliMCEventHandler.cxx:288 AliMCEventHandler.cxx:289 AliMCEventHandler.cxx:290 AliMCEventHandler.cxx:291 AliMCEventHandler.cxx:292 AliMCEventHandler.cxx:293 AliMCEventHandler.cxx:294 AliMCEventHandler.cxx:295 AliMCEventHandler.cxx:296 AliMCEventHandler.cxx:297 AliMCEventHandler.cxx:298 AliMCEventHandler.cxx:299 AliMCEventHandler.cxx:300 AliMCEventHandler.cxx:301 AliMCEventHandler.cxx:302 AliMCEventHandler.cxx:303 AliMCEventHandler.cxx:304 AliMCEventHandler.cxx:305 AliMCEventHandler.cxx:306 AliMCEventHandler.cxx:307 AliMCEventHandler.cxx:308 AliMCEventHandler.cxx:309 AliMCEventHandler.cxx:310 AliMCEventHandler.cxx:311 AliMCEventHandler.cxx:312 AliMCEventHandler.cxx:313 AliMCEventHandler.cxx:314 AliMCEventHandler.cxx:315 AliMCEventHandler.cxx:316 AliMCEventHandler.cxx:317 AliMCEventHandler.cxx:318 AliMCEventHandler.cxx:319 AliMCEventHandler.cxx:320 AliMCEventHandler.cxx:321 AliMCEventHandler.cxx:322 AliMCEventHandler.cxx:323 AliMCEventHandler.cxx:324 AliMCEventHandler.cxx:325 AliMCEventHandler.cxx:326 AliMCEventHandler.cxx:327 AliMCEventHandler.cxx:328 AliMCEventHandler.cxx:329 AliMCEventHandler.cxx:330 AliMCEventHandler.cxx:331 AliMCEventHandler.cxx:332 AliMCEventHandler.cxx:333 AliMCEventHandler.cxx:334 AliMCEventHandler.cxx:335 AliMCEventHandler.cxx:336 AliMCEventHandler.cxx:337 AliMCEventHandler.cxx:338 AliMCEventHandler.cxx:339 AliMCEventHandler.cxx:340 AliMCEventHandler.cxx:341 AliMCEventHandler.cxx:342 AliMCEventHandler.cxx:343 AliMCEventHandler.cxx:344 AliMCEventHandler.cxx:345 AliMCEventHandler.cxx:346 AliMCEventHandler.cxx:347 AliMCEventHandler.cxx:348 AliMCEventHandler.cxx:349 AliMCEventHandler.cxx:350 AliMCEventHandler.cxx:351 AliMCEventHandler.cxx:352 AliMCEventHandler.cxx:353 AliMCEventHandler.cxx:354 AliMCEventHandler.cxx:355 AliMCEventHandler.cxx:356 AliMCEventHandler.cxx:357 AliMCEventHandler.cxx:358 AliMCEventHandler.cxx:359 AliMCEventHandler.cxx:360 AliMCEventHandler.cxx:361 AliMCEventHandler.cxx:362 AliMCEventHandler.cxx:363 AliMCEventHandler.cxx:364 AliMCEventHandler.cxx:365 AliMCEventHandler.cxx:366 AliMCEventHandler.cxx:367 AliMCEventHandler.cxx:368 AliMCEventHandler.cxx:369 AliMCEventHandler.cxx:370 AliMCEventHandler.cxx:371 AliMCEventHandler.cxx:372 AliMCEventHandler.cxx:373 AliMCEventHandler.cxx:374 AliMCEventHandler.cxx:375 AliMCEventHandler.cxx:376 AliMCEventHandler.cxx:377 AliMCEventHandler.cxx:378 AliMCEventHandler.cxx:379 AliMCEventHandler.cxx:380 AliMCEventHandler.cxx:381 AliMCEventHandler.cxx:382 AliMCEventHandler.cxx:383 AliMCEventHandler.cxx:384 AliMCEventHandler.cxx:385 AliMCEventHandler.cxx:386 AliMCEventHandler.cxx:387 AliMCEventHandler.cxx:388 AliMCEventHandler.cxx:389 AliMCEventHandler.cxx:390 AliMCEventHandler.cxx:391 AliMCEventHandler.cxx:392 AliMCEventHandler.cxx:393 AliMCEventHandler.cxx:394 AliMCEventHandler.cxx:395 AliMCEventHandler.cxx:396 AliMCEventHandler.cxx:397 AliMCEventHandler.cxx:398 AliMCEventHandler.cxx:399 AliMCEventHandler.cxx:400 AliMCEventHandler.cxx:401 AliMCEventHandler.cxx:402 AliMCEventHandler.cxx:403 AliMCEventHandler.cxx:404 AliMCEventHandler.cxx:405 AliMCEventHandler.cxx:406 AliMCEventHandler.cxx:407 AliMCEventHandler.cxx:408 AliMCEventHandler.cxx:409 AliMCEventHandler.cxx:410 AliMCEventHandler.cxx:411 AliMCEventHandler.cxx:412 AliMCEventHandler.cxx:413 AliMCEventHandler.cxx:414 AliMCEventHandler.cxx:415 AliMCEventHandler.cxx:416 AliMCEventHandler.cxx:417 AliMCEventHandler.cxx:418 AliMCEventHandler.cxx:419 AliMCEventHandler.cxx:420 AliMCEventHandler.cxx:421 AliMCEventHandler.cxx:422 AliMCEventHandler.cxx:423 AliMCEventHandler.cxx:424 AliMCEventHandler.cxx:425 AliMCEventHandler.cxx:426 AliMCEventHandler.cxx:427 AliMCEventHandler.cxx:428 AliMCEventHandler.cxx:429 AliMCEventHandler.cxx:430 AliMCEventHandler.cxx:431 AliMCEventHandler.cxx:432 AliMCEventHandler.cxx:433 AliMCEventHandler.cxx:434 AliMCEventHandler.cxx:435 AliMCEventHandler.cxx:436 AliMCEventHandler.cxx:437 AliMCEventHandler.cxx:438 AliMCEventHandler.cxx:439 AliMCEventHandler.cxx:440 AliMCEventHandler.cxx:441 AliMCEventHandler.cxx:442 AliMCEventHandler.cxx:443 AliMCEventHandler.cxx:444 AliMCEventHandler.cxx:445 AliMCEventHandler.cxx:446 AliMCEventHandler.cxx:447 AliMCEventHandler.cxx:448 AliMCEventHandler.cxx:449 AliMCEventHandler.cxx:450 AliMCEventHandler.cxx:451 AliMCEventHandler.cxx:452 AliMCEventHandler.cxx:453 AliMCEventHandler.cxx:454 AliMCEventHandler.cxx:455 AliMCEventHandler.cxx:456 AliMCEventHandler.cxx:457 AliMCEventHandler.cxx:458 AliMCEventHandler.cxx:459 AliMCEventHandler.cxx:460 AliMCEventHandler.cxx:461 AliMCEventHandler.cxx:462 AliMCEventHandler.cxx:463 AliMCEventHandler.cxx:464 AliMCEventHandler.cxx:465 AliMCEventHandler.cxx:466 AliMCEventHandler.cxx:467 AliMCEventHandler.cxx:468 AliMCEventHandler.cxx:469 AliMCEventHandler.cxx:470 AliMCEventHandler.cxx:471 AliMCEventHandler.cxx:472 AliMCEventHandler.cxx:473 AliMCEventHandler.cxx:474 AliMCEventHandler.cxx:475 AliMCEventHandler.cxx:476 AliMCEventHandler.cxx:477 AliMCEventHandler.cxx:478 AliMCEventHandler.cxx:479 AliMCEventHandler.cxx:480 AliMCEventHandler.cxx:481 AliMCEventHandler.cxx:482 AliMCEventHandler.cxx:483 AliMCEventHandler.cxx:484 AliMCEventHandler.cxx:485 AliMCEventHandler.cxx:486 AliMCEventHandler.cxx:487 AliMCEventHandler.cxx:488 AliMCEventHandler.cxx:489 AliMCEventHandler.cxx:490 AliMCEventHandler.cxx:491 AliMCEventHandler.cxx:492 AliMCEventHandler.cxx:493 AliMCEventHandler.cxx:494 AliMCEventHandler.cxx:495 AliMCEventHandler.cxx:496 AliMCEventHandler.cxx:497 AliMCEventHandler.cxx:498 AliMCEventHandler.cxx:499 AliMCEventHandler.cxx:500 AliMCEventHandler.cxx:501 AliMCEventHandler.cxx:502 AliMCEventHandler.cxx:503 AliMCEventHandler.cxx:504 AliMCEventHandler.cxx:505 AliMCEventHandler.cxx:506 AliMCEventHandler.cxx:507 AliMCEventHandler.cxx:508 AliMCEventHandler.cxx:509 AliMCEventHandler.cxx:510 AliMCEventHandler.cxx:511 AliMCEventHandler.cxx:512 AliMCEventHandler.cxx:513 AliMCEventHandler.cxx:514 AliMCEventHandler.cxx:515 AliMCEventHandler.cxx:516 AliMCEventHandler.cxx:517 AliMCEventHandler.cxx:518 AliMCEventHandler.cxx:519 AliMCEventHandler.cxx:520 AliMCEventHandler.cxx:521 AliMCEventHandler.cxx:522 AliMCEventHandler.cxx:523 AliMCEventHandler.cxx:524 AliMCEventHandler.cxx:525 AliMCEventHandler.cxx:526 AliMCEventHandler.cxx:527 AliMCEventHandler.cxx:528 AliMCEventHandler.cxx:529 AliMCEventHandler.cxx:530 AliMCEventHandler.cxx:531 AliMCEventHandler.cxx:532 AliMCEventHandler.cxx:533 AliMCEventHandler.cxx:534 AliMCEventHandler.cxx:535 AliMCEventHandler.cxx:536 AliMCEventHandler.cxx:537 AliMCEventHandler.cxx:538 AliMCEventHandler.cxx:539 AliMCEventHandler.cxx:540 AliMCEventHandler.cxx:541 AliMCEventHandler.cxx:542 AliMCEventHandler.cxx:543 AliMCEventHandler.cxx:544 AliMCEventHandler.cxx:545 AliMCEventHandler.cxx:546 AliMCEventHandler.cxx:547 AliMCEventHandler.cxx:548 AliMCEventHandler.cxx:549 AliMCEventHandler.cxx:550 AliMCEventHandler.cxx:551 AliMCEventHandler.cxx:552 AliMCEventHandler.cxx:553 AliMCEventHandler.cxx:554 AliMCEventHandler.cxx:555 AliMCEventHandler.cxx:556 AliMCEventHandler.cxx:557 AliMCEventHandler.cxx:558 AliMCEventHandler.cxx:559 AliMCEventHandler.cxx:560 AliMCEventHandler.cxx:561 AliMCEventHandler.cxx:562 AliMCEventHandler.cxx:563 AliMCEventHandler.cxx:564 AliMCEventHandler.cxx:565 AliMCEventHandler.cxx:566 AliMCEventHandler.cxx:567 AliMCEventHandler.cxx:568 AliMCEventHandler.cxx:569 AliMCEventHandler.cxx:570 AliMCEventHandler.cxx:571 AliMCEventHandler.cxx:572 AliMCEventHandler.cxx:573 AliMCEventHandler.cxx:574 AliMCEventHandler.cxx:575 AliMCEventHandler.cxx:576 AliMCEventHandler.cxx:577 AliMCEventHandler.cxx:578 AliMCEventHandler.cxx:579 AliMCEventHandler.cxx:580 AliMCEventHandler.cxx:581