]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Avoid to open already opened files
authorschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 30 Nov 2007 14:51:26 +0000 (14:51 +0000)
committerschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 30 Nov 2007 14:51:26 +0000 (14:51 +0000)
STEER/AliQA.cxx

index a6d133b6b78501bc189360068e673ae9c67495b2..1197b5770b495b13b14558df54d72e9120d99f27 100644 (file)
@@ -34,6 +34,7 @@
 // --- ROOT system ---
 #include <TFile.h>
 #include <TSystem.h>
+#include <TROOT.h>
 
 // --- Standard library ---
 
@@ -259,7 +260,7 @@ const char * AliQA::GetDetName(Int_t det)
 TFile * AliQA::GetQADataFile(const char * name, const Int_t run, const Int_t cycle) 
 {
   // opens the file to store the detectors Quality Assurance Data Maker results
-  char temp[100] ; 
+  char temp[20] ; 
   sprintf(temp, "%s.%s.%d.%d.root", name, fgQADataFileName.Data(), run, cycle) ; 
   TString opt ; 
   if (! fgQADataFile ) {     
@@ -269,13 +270,16 @@ TFile * AliQA::GetQADataFile(const char * name, const Int_t run, const Int_t cyc
       opt = "UPDATE" ; 
     fgQADataFile = TFile::Open(temp, opt.Data()) ;
   } else {
-   if ( (strcmp(temp, fgQADataFile->GetName()) != 0) ) {
-     if  (gSystem->AccessPathName(temp))
-      opt = "NEW" ;
-    else 
-      opt = "UPDATE" ; 
-    fgQADataFile = TFile::Open(temp, opt.Data()) ;
-   }
+         if ( strcmp(temp, fgQADataFile->GetName()) != 0 ) {
+                 fgQADataFile = dynamic_cast<TFile *>(gROOT->FindObject(temp)) ; 
+                 if ( !fgQADataFile ) {
+                         if  (gSystem->AccessPathName(temp))
+                                 opt = "NEW" ;
+                         else 
+                                 opt = "UPDATE" ; 
+                         fgQADataFile = TFile::Open(temp, opt.Data()) ;
+                 }
+         }
   }
   return fgQADataFile ; 
 }