// --- ROOT system ---
-#include "TSystem.h"
-#include "TROOT.h"
+#include <TFile.h>
+#include <TROOT.h>
+#include <TSystem.h>
+#include <TParticle.h>
// --- Standard library ---
// --- AliRoot header files ---
-#include "AliPHOSGetter.h"
+#include "AliESD.h"
+#include "AliHeader.h"
+#include "AliMC.h"
#include "AliPHOS.h"
+#include "AliPHOSBeamTestEvent.h"
+#include "AliPHOSGetter.h"
+#include "AliPHOSLoader.h"
#include "AliRunLoader.h"
#include "AliStack.h"
-#include "AliHeader.h"
-#include "AliPHOSLoader.h"
-#include "AliPHOSBeamTestEvent.h"
-#include "AliMC.h"
-#include "AliESD.h"
ClassImp(AliPHOSGetter)
fBTE = 0 ;
fPrimaries = 0 ;
fLoadingStatus = "" ;
- fESDFileName = "AliESDs.root" ;
+
+ fESDFileName = rl->GetFileName() ; // this should be the galice.root file
+ fESDFileName.ReplaceAll("galice.root", "AliESDs.root") ;
fESDFile = 0 ;
}
fBTE = 0 ;
fPrimaries->Delete() ;
delete fPrimaries ;
+ fgObjGetter = 0;
+}
+
+//____________________________________________________________________________
+void AliPHOSGetter::Reset()
+{
+ // resets things in case the getter is called consecutively with different files
+ // the PHOS Loader is already deleted by the Run Loader
+
+ if (fPrimaries) {
+ fPrimaries->Delete() ;
+ delete fPrimaries ;
+ }
+ fgPhosLoader = 0;
+ fgObjGetter = 0;
}
//____________________________________________________________________________
}
else {
AliRunLoader * rl = AliRunLoader::GetRunLoader(fgPhosLoader->GetTitle()) ;
- if ( strstr(version, AliConfig::fgkDefaultEventFolderName) ) // false in case of merging
+ if ( strstr(version, AliConfig::GetDefaultEventFolderName()) ) // false in case of merging
delete rl ;
fgObjGetter = new AliPHOSGetter(alirunFileName, version, openingOption) ;
}
AliESD * AliPHOSGetter::ESD(Int_t event)
{
//Read the ESD
+
+ AliESD * esd = 0 ;
if (!fESDFile)
- OpenESDFile() ;
-
+ if ( !OpenESDFile() )
+ return esd ;
+
TString esdEvent("ESD") ;
esdEvent+= event ;
- AliESD * esd = dynamic_cast<AliESD *>(fESDFile->Get(esdEvent)) ;
+ esd = dynamic_cast<AliESD *>(fESDFile->Get(esdEvent)) ;
return esd ;
}
//____________________________________________________________________________
-Bool_t AliPHOSGetter::OpenESDFile(TString name)
+Bool_t AliPHOSGetter::OpenESDFile()
{
+ //Open the ESD file
Bool_t rv = kTRUE ;
- fESDFileName = name ;
- if (!fESDFile)
- fESDFile = new TFile(fESDFileName) ;
+ if (!fESDFile) {
+ fESDFile = TFile::Open(fESDFileName) ;
+ if (!fESDFile )
+ return kFALSE ;
+ }
else if (fESDFile->IsOpen()) {
fESDFile->Close() ;
fESDFile = TFile::Open(fESDFileName) ;
{
// Read the Digits
-
- // gets TreeD from the root file (PHOS.SDigits.root)
- if ( !IsLoaded("D") ) {
+ PhosLoader()->CleanDigits() ;
+ // gets TreeD from the root file (PHOS.Digits.root)
+ // if ( !IsLoaded("D") ) {
PhosLoader()->LoadDigits("UPDATE") ;
PhosLoader()->LoadDigitizer("UPDATE") ;
- SetLoaded("D") ;
- }
+ // SetLoaded("D") ;
+ //}
return Digits()->GetEntries() ;
}
Int_t AliPHOSGetter::ReadTreeH()
{
// Read the Hits
-
+ PhosLoader()->CleanHits() ;
// gets TreeH from the root file (PHOS.Hit.root)
- if ( !IsLoaded("H") ) {
+ //if ( !IsLoaded("H") ) {
PhosLoader()->LoadHits("UPDATE") ;
- SetLoaded("H") ;
- }
+ // SetLoaded("H") ;
+ //}
return Hits()->GetEntries() ;
}
{
// Read the RecPoints
-
+ PhosLoader()->CleanRecPoints() ;
// gets TreeR from the root file (PHOS.RecPoints.root)
- if ( !IsLoaded("R") ) {
+ //if ( !IsLoaded("R") ) {
PhosLoader()->LoadRecPoints("UPDATE") ;
PhosLoader()->LoadClusterizer("UPDATE") ;
- SetLoaded("R") ;
- }
+ // SetLoaded("R") ;
+ //}
return EmcRecPoints()->GetEntries() ;
}
{
// Read the TrackSegments
-
+ PhosLoader()->CleanTracks() ;
// gets TreeT from the root file (PHOS.TrackSegments.root)
- if ( !IsLoaded("T") ) {
+ //if ( !IsLoaded("T") ) {
PhosLoader()->LoadTracks("UPDATE") ;
PhosLoader()->LoadTrackSegmentMaker("UPDATE") ;
- SetLoaded("T") ;
- }
+ // SetLoaded("T") ;
+ //}
return TrackSegments()->GetEntries() ;
}
//____________________________________________________________________________
Int_t AliPHOSGetter::ReadTreeP()
{
- // Read the TrackSegments
-
+ // Read the RecParticles
+ PhosLoader()->CleanRecParticles() ;
+
// gets TreeT from the root file (PHOS.TrackSegments.root)
- if ( !IsLoaded("P") ) {
+ // if ( !IsLoaded("P") ) {
PhosLoader()->LoadRecParticles("UPDATE") ;
PhosLoader()->LoadPID("UPDATE") ;
- SetLoaded("P") ;
- }
+ // SetLoaded("P") ;
+ //}
return RecParticles()->GetEntries() ;
}
{
// Read the SDigits
-
+ PhosLoader()->CleanSDigits() ;
// gets TreeS from the root file (PHOS.SDigits.root)
- if ( !IsLoaded("S") ) {
+ //if ( !IsLoaded("S") ) {
PhosLoader()->LoadSDigits("READ") ;
PhosLoader()->LoadSDigitizer("READ") ;
- SetLoaded("S") ;
- }
+ // SetLoaded("S") ;
+ //}
return SDigits()->GetEntries() ;
}
if ( opt == "sdigits") {
// add the version name to the root file name
TString fileName( PhosLoader()->GetSDigitsFileName() ) ;
- if (version != AliConfig::fgkDefaultEventFolderName) // only if not the default folder name
+ if (version != AliConfig::GetDefaultEventFolderName()) // only if not the default folder name
fileName = fileName.ReplaceAll(".root", "") + "_" + version + ".root" ;
if ( !(gSystem->AccessPathName(fileName)) ) {
Warning("VersionExists", "The file %s already exists", fileName.Data()) ;
if ( opt == "digits") {
// add the version name to the root file name
TString fileName( PhosLoader()->GetDigitsFileName() ) ;
- if (version != AliConfig::fgkDefaultEventFolderName) // only if not the default folder name
+ if (version != AliConfig::GetDefaultEventFolderName()) // only if not the default folder name
fileName = fileName.ReplaceAll(".root", "") + "_" + version + ".root" ;
if ( !(gSystem->AccessPathName(fileName)) ) {
Warning("VersionExists", "The file %s already exists", fileName.Data()) ;