1. Remove all Sdigits subfolders in the dtor
authorschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 2 May 2002 10:42:19 +0000 (10:42 +0000)
committerschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 2 May 2002 10:42:19 +0000 (10:42 +0000)
2. GetInstance returns 0 in case of a failure in ctor

EMCAL/AliEMCALGetter.cxx
PHOS/AliPHOSGetter.cxx

index dba47af1acaaf419f7260bd3091706429bf12a4c..ac7f8ce152348a4ae0d54728c6dfdeaee8fc5c40 100644 (file)
@@ -148,6 +148,14 @@ AliEMCALGetter::~AliEMCALGetter()
     fPrimaries->Delete() ; 
     delete fPrimaries ; 
   }
     fPrimaries->Delete() ; 
     delete fPrimaries ; 
   }
+
+  TFolder * emcalF = dynamic_cast<TFolder *>(fSDigitsFolder->FindObject("EMCAL")) ;
+  TCollection * folderslist = emcalF->GetListOfFolders() ; 
+  TIter next(folderslist) ; 
+  TFolder * folder = 0 ; 
+  while ( (folder = static_cast<TFolder*>(next())) ) 
+    emcalF->Remove(folder) ; 
+
   fFile->Close() ;  
   delete fFile ; 
   fFile = 0 ;
   fFile->Close() ;  
   delete fFile ; 
   fFile = 0 ;
@@ -188,7 +196,10 @@ AliEMCALGetter * AliEMCALGetter::GetInstance(const char* headerFile,
       fgObjGetter->~AliEMCALGetter() ;  // delete it already exists another version
   
   fgObjGetter = new AliEMCALGetter(headerFile,branchTitle, rw) ; 
       fgObjGetter->~AliEMCALGetter() ;  // delete it already exists another version
   
   fgObjGetter = new AliEMCALGetter(headerFile,branchTitle, rw) ; 
-  
+
+  if (fgObjGetter->HasFailed() ) 
+    fgObjGetter = 0 ; 
+
   // Posts a few item to the white board (folders)
   // fgObjGetter->CreateWhiteBoard() ;
     
   // Posts a few item to the white board (folders)
   // fgObjGetter->CreateWhiteBoard() ;
     
index 0486b1c6036ef045f74cb245d708135ae88e440f..e4b24f30ffb499550d058ab158a71243ee8895ef 100644 (file)
@@ -148,6 +148,14 @@ AliPHOSGetter::~AliPHOSGetter(){
     fPrimaries->Delete() ; 
     delete fPrimaries ; 
   }
     fPrimaries->Delete() ; 
     delete fPrimaries ; 
   }
+
+  TFolder * phosF = dynamic_cast<TFolder *>(fSDigitsFolder->FindObject("PHOS")) ;
+  TCollection * folderslist = phosF->GetListOfFolders() ; 
+  TIter next(folderslist) ; 
+  TFolder * folder = 0 ; 
+  while ( (folder = static_cast<TFolder*>(next())) ) 
+    phosF->Remove(folder) ; 
+
   fFile->Close() ;  
   delete fFile ;
   fFile = 0 ;
   fFile->Close() ;  
   delete fFile ;
   fFile = 0 ;
@@ -189,10 +197,14 @@ AliPHOSGetter * AliPHOSGetter::GetInstance(const char* headerFile,
       fgObjGetter->~AliPHOSGetter() ;  // delete it already exists another version
  
   fgObjGetter = new AliPHOSGetter(headerFile,branchTitle) ; 
       fgObjGetter->~AliPHOSGetter() ;  // delete it already exists another version
  
   fgObjGetter = new AliPHOSGetter(headerFile,branchTitle) ; 
+
+  if (fgObjGetter->HasFailed() ) 
+    fgObjGetter = 0 ; 
+  
   
   // Posts a few item to the white board (folders)
   // fgObjGetter->CreateWhiteBoard() ;
   
   // Posts a few item to the white board (folders)
   // fgObjGetter->CreateWhiteBoard() ;
-    
+  
   return fgObjGetter ; 
   
 }
   return fgObjGetter ; 
   
 }