]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliQADataMakerSim.cxx
Added new cuts, fixed bug in backround calculation.
[u/mrichter/AliRoot.git] / STEER / AliQADataMakerSim.cxx
index 76fbdae4e8cb5e197516be7f43cea633b909ee39..503be71a80a204f8b00112927c6bbd659f97b18a 100644 (file)
@@ -24,7 +24,6 @@
 //
 
 // --- ROOT system ---
-#include <TCanvas.h>
 #include <TFile.h>
 #include <TTree.h>
 #include <TClonesArray.h>
@@ -69,21 +68,18 @@ AliQADataMakerSim::~AliQADataMakerSim()
        //dtor: delete the TObjArray and thei content
        if ( fDigitsQAList ) { 
     for (Int_t specie = 0 ; specie < AliRecoParam::kNSpecies ; specie++) {
-      if ( fDigitsQAList[specie]->IsOwner() )
                        fDigitsQAList[specie]->Delete() ;
     }
                delete[] fDigitsQAList ;
   }
        if ( fHitsQAList ) {
     for (Int_t specie = 0 ; specie < AliRecoParam::kNSpecies ; specie++) {
-      if ( fHitsQAList[specie]->IsOwner() ) 
                        fHitsQAList[specie]->Delete() ;
     }
        delete[] fHitsQAList ;
   }
        if ( fSDigitsQAList ) { 
     for (Int_t specie = 0 ; specie < AliRecoParam::kNSpecies ; specie++) {
-      if ( fSDigitsQAList[specie]->IsOwner() ) 
                        fSDigitsQAList[specie]->Delete() ; 
     }
                delete[] fSDigitsQAList ;
@@ -143,32 +139,32 @@ void AliQADataMakerSim::EndOfCycle(AliQAv1::TASKINDEX_t task)
   for (Int_t specie = 0 ; specie < AliRecoParam::kNSpecies ; specie++) {
     if (! AliQAv1::Instance(AliQAv1::GetDetIndex(GetName()))->IsEventSpecieSet(AliRecoParam::ConvertIndex(specie)) ) 
       continue ;
-    TDirectory * eventSpecieDir = subDir->GetDirectory(AliRecoParam::GetEventSpecieName(specie)) ;
-    if (!eventSpecieDir) 
-      eventSpecieDir = subDir->mkdir(AliRecoParam::GetEventSpecieName(specie)) ; 
-    eventSpecieDir->cd() ; 
-    TIter next(list[specie]) ; 
-    TObject * obj ; 
-    while ( (obj = next()) )  {
-      if (!obj->TestBit(AliQAv1::GetExpertBit()))
-        obj->Write() ;
-    }
-    if (WriteExpert()) {
-      TDirectory * expertDir = eventSpecieDir->GetDirectory(AliQAv1::GetExpert()) ; 
-      if (!expertDir) 
-        expertDir = eventSpecieDir->mkdir(AliQAv1::GetExpert()) ; 
-      expertDir->cd() ;
-      next.Reset() ; 
-      while ( (obj = next()) ) {
+    if (list[specie]->GetEntries() != 0 ) {
+      TDirectory * eventSpecieDir = subDir->GetDirectory(AliRecoParam::GetEventSpecieName(specie)) ;
+      if (!eventSpecieDir) 
+        eventSpecieDir = subDir->mkdir(AliRecoParam::GetEventSpecieName(specie)) ; 
+      eventSpecieDir->cd() ; 
+      TIter next(list[specie]) ; 
+      TObject * obj ; 
+      while ( (obj = next()) )  {
         if (!obj->TestBit(AliQAv1::GetExpertBit()))
-          continue ; 
-        obj->Write() ;
-      }      
+          obj->Write() ;
+      }
+      if (WriteExpert()) {
+        TDirectory * expertDir = eventSpecieDir->GetDirectory(AliQAv1::GetExpert()) ; 
+        if (!expertDir) 
+          expertDir = eventSpecieDir->mkdir(AliQAv1::GetExpert()) ; 
+        expertDir->cd() ;
+        next.Reset() ; 
+        while ( (obj = next()) ) {
+          if (!obj->TestBit(AliQAv1::GetExpertBit()))
+            continue ; 
+          obj->Write() ;
+        }      
+      }
     }
     fOutput->Save() ; 
   }
-  if (fPrintImage) 
-    MakeImage(task) ; 
 }
 
 //____________________________________________________________________________
@@ -212,45 +208,6 @@ void AliQADataMakerSim::Exec(AliQAv1::TASKINDEX_t task, TObject * data)
   }
 }
 
-//____________________________________________________________________________ 
-void AliQADataMakerSim::MakeImage(AliQAv1::TASKINDEX_t task)
-{
-  // create a drawing of detetor defined histograms
-  TObjArray ** list = NULL ;  
-  switch (task) {
-    case AliQAv1::kRAWS:
-      break;
-    case AliQAv1::kHITS:
-      list = fHitsQAList ;
-      break;
-    case AliQAv1::kSDIGITS:
-      list = fSDigitsQAList ;
-      break;  
-    case AliQAv1::kDIGITS:
-      list = fDigitsQAList ;
-      break;  
-    case AliQAv1::kDIGITSR:
-      break;
-    case AliQAv1::kRECPOINTS:
-      break;
-    case AliQAv1::kTRACKSEGMENTS:
-      break;
-    case AliQAv1::kRECPARTICLES:
-      break;
-    case AliQAv1::kESDS:
-      break;
-    case AliQAv1::kNTASKINDEX:
-      break;
-    default:
-    break;
-  }
-  if ( !list) {
-    AliFatal("data not initialized, call AliQADataMaker::Init"); 
-  return ; 
-  }
-  MakeTheImage(list, task, "Sim") ; 
-}
-
 //____________________________________________________________________________ 
 TObjArray **  AliQADataMakerSim::Init(AliQAv1::TASKINDEX_t task, Int_t cycles)
 {
@@ -309,6 +266,35 @@ void AliQADataMakerSim::Init(AliQAv1::TASKINDEX_t task, TObjArray ** list, Int_t
        } 
 }
 
+//____________________________________________________________________________ 
+void AliQADataMakerSim::ResetDetector(AliQAv1::TASKINDEX_t task)
+{
+    // default reset that resets all the QA objects.
+    // to be overloaded by detectors, if necessary
+  
+  TObjArray ** list = NULL ; 
+  if ( task == AliQAv1::kHITS ) {
+               list = fHitsQAList ;     
+       } else if ( task == AliQAv1::kSDIGITS ) {
+               list = fSDigitsQAList ; 
+       } else if ( task == AliQAv1::kDIGITS ) {
+               list = fDigitsQAList ; 
+       }
+    //list was not initialized, skip
+  if (!list) 
+    return ; 
+  
+  for (int spec = 0; spec < AliRecoParam::kNSpecies; spec++) {
+    if (!AliQAv1::Instance()->IsEventSpecieSet(AliRecoParam::ConvertIndex(spec)))
+      continue;
+    TIter next(list[spec]) ; 
+    TH1 * histo = NULL ; 
+    while ( (histo = dynamic_cast<TH1*> (next())) ) {
+      histo->Reset() ;
+    }
+  }
+}
+  
 //____________________________________________________________________________
 void AliQADataMakerSim::StartOfCycle(Int_t run) 
 {