From 0d13dd63905c5e76a6fb54cfb913e8b8371e7bc5 Mon Sep 17 00:00:00 2001 From: schutz Date: Fri, 30 Nov 2007 14:51:26 +0000 Subject: [PATCH] Avoid to open already opened files --- STEER/AliQA.cxx | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/STEER/AliQA.cxx b/STEER/AliQA.cxx index a6d133b6b78..1197b5770b4 100644 --- a/STEER/AliQA.cxx +++ b/STEER/AliQA.cxx @@ -34,6 +34,7 @@ // --- ROOT system --- #include #include +#include // --- 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(gROOT->FindObject(temp)) ; + if ( !fgQADataFile ) { + if (gSystem->AccessPathName(temp)) + opt = "NEW" ; + else + opt = "UPDATE" ; + fgQADataFile = TFile::Open(temp, opt.Data()) ; + } + } } return fgQADataFile ; } -- 2.43.0