]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliQADataMakerSim.cxx
Improvement of AliACORDEv1 class
[u/mrichter/AliRoot.git] / STEER / AliQADataMakerSim.cxx
index 2174f24f258dff5cbdd2a2e40354a7c3d8dfc7de..66f81bdb4e47e8a88b43b3155b384cf244fab9fa 100644 (file)
@@ -58,6 +58,27 @@ AliQADataMakerSim::AliQADataMakerSim(const AliQADataMakerSim& qadm) :
   fDetectorDirName = GetName() ; 
 }
 
+//____________________________________________________________________________ 
+AliQADataMakerSim::~AliQADataMakerSim()
+{
+       //dtor: delete the TObjArray and thei content
+       if ( fDigitsQAList ) { 
+               if ( fDigitsQAList->IsOwner() )
+                       fDigitsQAList->Delete() ;     
+               delete fDigitsQAList ;     
+       }
+       if ( fHitsQAList ) {
+               if ( fHitsQAList->IsOwner() ) 
+                       fHitsQAList->Delete() ;
+               delete fHitsQAList ;
+       }
+       if ( fSDigitsQAList ) { 
+               if ( fSDigitsQAList->IsOwner() ) 
+                       fSDigitsQAList->Delete() ; 
+               delete fSDigitsQAList ; 
+       }
+}
+
 //__________________________________________________________________
 AliQADataMakerSim& AliQADataMakerSim::operator = (const AliQADataMakerSim& qadm )
 {
@@ -145,16 +166,22 @@ TObjArray *  AliQADataMakerSim::Init(AliQA::TASKINDEX_t task, Int_t run, Int_t c
                SetCycle(cycles) ;  
        TObjArray * rv = NULL ; 
        if ( task == AliQA::kHITS ) {
-               fHitsQAList = new TObjArray(100) ;       
-               InitHits() ;
+               if ( ! fHitsQAList ) {
+                       fHitsQAList = new TObjArray(100) ;       
+                       InitHits() ;
+               }
                rv = fHitsQAList ;
        } else if ( task == AliQA::kSDIGITS ) {
-               fSDigitsQAList = new TObjArray(100) ; 
-               InitSDigits() ;
+               if ( ! fSDigitsQAList ) {
+                       fSDigitsQAList = new TObjArray(100) ; 
+                       InitSDigits() ;
+               }
                rv = fSDigitsQAList ;
    } else if ( task == AliQA::kDIGITS ) {
-          fDigitsQAList = new TObjArray(100); 
-          InitDigits() ;
+          if ( ! fDigitsQAList ) {
+                  fDigitsQAList = new TObjArray(100) ;
+                  InitDigits() ;
+          }
           rv =  fDigitsQAList ;
    }