fFailed = kFALSE ;
fDebug = 0 ;
+ fAlice = 0 ;
+
fToSplit = toSplit ;
fHeaderFile = headerFile ;
//fQAFolder = dynamic_cast<TFolder*>(gROOT->FindObjectAny("Folders/Run/Conditions/QA"));
fTasksFolder = dynamic_cast<TFolder*>(gROOT->FindObjectAny("Folders/Tasks")) ;
- //Set titles to branches and create PHOS specific folders
+ //Set titles to branches and create EMCAL specific folders
SetTitle(branchTitle) ;
fFailed = kTRUE ;
return ;
}
- gAlice = static_cast<AliRun *>(fFile->Get("gAlice")) ;
}
+ gAlice = static_cast<AliRun *>(fFile->Get("gAlice")) ;
}
if (!gAlice) {
fFailed = kTRUE ;
return ;
}
-
if (!EMCAL()) {
if (fDebug)
Info("AliEMCALGetter","Posting EMCAL to Folders") ;
{
delete gAlice ;
gAlice = 0 ;
+ delete fAlice ;
+ fAlice = 0 ;
}
//____________________________________________________________________________
else{ //Clean all data and AliEMCAL...zers
if(fgObjGetter->fToSplit)
fgObjGetter->CloseSplitFiles() ;
- fgObjGetter->CleanWhiteBoard() ;
+ //fgObjGetter->CleanWhiteBoard() ;
fgObjGetter->fToSplit = toSplit ;
fgObjGetter->SetTitle(branchTitle) ;
}
}
else{ //Close already opened files, clean memory and open new header file
- if(gAlice)
+ if(gAlice){ //should first delete gAlice, then close file
+ //Should be in dtor of EMCAL, but if one changes path ...
+ fgObjGetter->fModuleFolder->Remove(fgObjGetter->fModuleFolder->FindObject("EMCAL")) ;
delete gAlice ;
- gAlice= 0;
+ }
if(fgObjGetter->fFile){
fgObjGetter->fFile->Close() ;
fgObjGetter->fFile=0;
file = static_cast<TFile*>(gROOT->GetFile(filename.Data() ) ) ;
- if (!file) { // file not yet open
+ if (!file || !file->IsOpen()) // file not yet open
file = TFile::Open(filename.Data(), "read") ;
- }
+
+ if(filename != fHeaderFile ){
+ fAlice = dynamic_cast<AliRun *>(file->Get("gAlice")) ;
+ }
TString treeName("TreeK") ;
treeName += EventNumber() ;
return 0 ;
TParticle * p = 0 ;
- p = gAlice->Particle(index) ;
-
+ if (fAlice)
+ p = fAlice->Particle(index) ;
+ else
+ p = gAlice->Particle(index) ;
+
return p ;
}
if (fDebug)
Info("ReadPrimaries", "-> TreeK found in %s", fHeaderFile.Data());
fNPrimaries = gAlice->GetNtrack() ;
+ fAlice = 0 ;
}
else { // treeK not found in header file
Error("ReadPrimaries", "-> TreeK not found ");