From: mhorner Date: Thu, 1 Jul 2004 21:52:17 +0000 (+0000) Subject: fixed bug in Getter stopping Digitisation. The Getter is moving away from keeping... X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=commitdiff_plain;h=48401f0dcb381e92a143eadf80b403f4f7f47a59 fixed bug in Getter stopping Digitisation. The Getter is moving away from keeping track of the AliEMCALLoader with a pointer --- diff --git a/EMCAL/AliEMCALDigitizer.cxx b/EMCAL/AliEMCALDigitizer.cxx index d122dc607b7..df209cf44ed 100644 --- a/EMCAL/AliEMCALDigitizer.cxx +++ b/EMCAL/AliEMCALDigitizer.cxx @@ -140,11 +140,8 @@ AliEMCALDigitizer::AliEMCALDigitizer(AliRunDigitizer * rd): //____________________________________________________________________________ AliEMCALDigitizer::~AliEMCALDigitizer() { - // dtor AliEMCALGetter * gime =AliEMCALGetter::Instance(GetTitle(),fEventFolderName); gime->EmcalLoader()->CleanDigitizer(); - delete [] fInputFileNames ; - delete [] fEventNames ; } @@ -419,7 +416,6 @@ Bool_t AliEMCALDigitizer::Init() Error("Init", "Could not obtain the Getter object for file %s and event %s !", GetTitle(), fEventFolderName.Data()) ; return kFALSE; } - TString opt("Digits") ; if(gime->VersionExists(opt) ) { Error( "Init", "Give a version name different from %s", fEventFolderName.Data() ) ; diff --git a/EMCAL/AliEMCALGetter.cxx b/EMCAL/AliEMCALGetter.cxx index 6aced580088..402a535715b 100644 --- a/EMCAL/AliEMCALGetter.cxx +++ b/EMCAL/AliEMCALGetter.cxx @@ -62,6 +62,7 @@ ClassImp(AliEMCALGetter) AliEMCALGetter * AliEMCALGetter::fgObjGetter = 0 ; AliEMCALLoader * AliEMCALGetter::fgEmcalLoader = 0; Int_t AliEMCALGetter::fgDebug = 0; +TString AliEMCALGetter::fVersion = ""; // TFile * AliEMCALGetter::fgFile = 0 ; @@ -89,10 +90,12 @@ AliEMCALGetter::~AliEMCALGetter() delete rl; fgEmcalLoader = 0 ; fgObjGetter = 0; + fVersion = ""; } //____________________________________________________________________________ void AliEMCALGetter::OpenFile(const char* headerFile, const char* version, Option_t * openingOption) { + fVersion = version; AliRunLoader* rl = AliRunLoader::GetRunLoader(version) ; if (!rl) { rl = AliRunLoader::Open(headerFile, version, openingOption); @@ -301,13 +304,14 @@ AliEMCALGetter * AliEMCALGetter::Instance(const char* alirunFileName, const char { // Creates and returns the pointer of the unique instance // Must be called only when the environment has changed - + if(!fgObjGetter){ // first time the getter is called fgObjGetter = new AliEMCALGetter(alirunFileName, version, openingOption) ; } else { // the getter has been called previously - AliRunLoader * rl = AliRunLoader::GetRunLoader(fgEmcalLoader->GetTitle()); - if ( rl->GetFileName() == alirunFileName ) {// the alirunFile has the same name + AliRunLoader * rl = AliRunLoader::GetRunLoader(fVersion); + if (rl == 0) fgObjGetter->OpenFile(alirunFileName, version, openingOption) ; + else if ( rl->GetFileName() == alirunFileName ) {// the alirunFile has the same name // check if the file is already open TFile * galiceFile = dynamic_cast(gROOT->FindObject(rl->GetFileName()) ) ; @@ -321,12 +325,12 @@ AliEMCALGetter * AliEMCALGetter::Instance(const char* alirunFileName, const char if(fgDebug) ::Warning( "Instance", "Files with version %s already open", currentVersionName.Data() ) ; else { - fgEmcalLoader->SetTitle(version); + fgEmcalLoader->SetTitle(version); fVersion = version; } } } else { - AliRunLoader * rl = AliRunLoader::GetRunLoader(fgEmcalLoader->GetTitle()); + AliRunLoader * rl = AliRunLoader::GetRunLoader(fVersion); if ( strstr(version, AliConfig::GetDefaultEventFolderName()) ) // false in case of merging delete rl ; fgObjGetter->OpenFile(alirunFileName, version, openingOption) ; diff --git a/EMCAL/AliEMCALGetter.h b/EMCAL/AliEMCALGetter.h index 428189d7937..fdf6a594453 100644 --- a/EMCAL/AliEMCALGetter.h +++ b/EMCAL/AliEMCALGetter.h @@ -215,6 +215,7 @@ private: static Int_t fgDebug ; //! Debug level TString fLoadingStatus ; //! tells which trees are loaded + static TString fVersion; //! stores the current folder name // AliEMCALCalibrationDB * fcdb ; //! @@ -224,7 +225,7 @@ private: enum EDataTypes{kHits,kSDigits,kDigits,kRecPoints,kTracks,kNDataTypes}; - ClassDef(AliEMCALGetter,4) // Algorithm class that provides methods to retrieve objects from a list knowing the index + ClassDef(AliEMCALGetter,5) // Algorithm class that provides methods to retrieve objects from a list knowing the index };