]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG1/TRD/AliTRDpidRefMakerLQ.cxx
General macro for QA checks
[u/mrichter/AliRoot.git] / PWG1 / TRD / AliTRDpidRefMakerLQ.cxx
index 77fbda72962cd08283300ff73b07dd6fa4e931f1..1db52248d2f9615bef6bf9633014396100ef6530 100644 (file)
@@ -47,6 +47,7 @@
 #include "AliTRDcalibDB.h"
 #include "AliTRDgeometry.h"
 #include "info/AliTRDpidInfo.h"
+#include "AliAnalysisManager.h"
 
 ClassImp(AliTRDpidRefMakerLQ)
 
@@ -78,6 +79,7 @@ AliTRDpidRefMakerLQ::~AliTRDpidRefMakerLQ()
   //
   // AliTRDCalPIDQRef destructor
   //
+  if (AliAnalysisManager::GetAnalysisManager()->IsProofMode()) return;
   if(fPDF){
     //fPDF->Write("PDF_LQ", TObject::kSingleKey);
     fPDF->Delete();
@@ -238,13 +240,21 @@ Bool_t AliTRDpidRefMakerLQ::Load(const Char_t *file, const Char_t *dir)
   return kTRUE;
 }
 
-
+#include "AliAnalysisManager.h"
 //________________________________________________________________________
 void AliTRDpidRefMakerLQ::UserExec(Option_t */*opt*/)
 {
-// Load PID data into local data storage
-
-  if(!(fInfo   = dynamic_cast<TObjArray*>(GetInputData(3)))) return;
+// Process pid info data array
+// The tasks have also access to the following containers which, for the time being, are not used 
+// fTracks = dynamic_cast<TObjArray*>(GetInputData(1))
+// fEvent  = dynamic_cast<AliTRDeventInfo*>(GetInputData(2))
+// fV0s    = dynamic_cast<TObjArray*>(GetInputData(3))
+
+  if(!(fInfo   = dynamic_cast<TObjArray*>(GetInputData(4)))){
+    Int_t ev((Int_t)AliAnalysisManager::GetAnalysisManager()->GetCurrentEntry());
+    AliDebug(3, Form("Missing pid info container in ev %d", ev));
+    return;
+  }
 
   AliDebug(2, Form("ENTRIES pid[%d]\n", fInfo->GetEntriesFast()));
   AliTRDpidInfo *pid(NULL);
@@ -318,7 +328,7 @@ Bool_t AliTRDpidRefMakerLQ::PostProcess()
       // estimate bucket statistics
       Int_t idx(AliTRDCalPIDLQ::GetModelID(ip,is)),
             nb(kMinBuckets), // number of buckets
-       ns((Int_t)(((Float_t)(ndata[idx]))/nb));    //statistics/bucket
+            ns((Int_t)(((Float_t)(ndata[idx]))/nb));    //statistics/bucket
             
       AliDebug(2, Form("pBin[%d] sBin[%d] n[%d] ns[%d] nb[%d]", ip, is, ndata[idx], ns, nb));
       if(ns<Int_t(kMinStat)){
@@ -418,7 +428,10 @@ Bool_t AliTRDpidRefMakerLQ::PostProcess()
         }
       }
 
-      pdf=dynamic_cast<TKDPDF*>(fPDF->At(idx));
+      if(!(pdf=dynamic_cast<TKDPDF*>(fPDF->At(idx)))){
+        AliWarning(Form("Missing pdf for model id[%d]", idx));
+        continue;
+      }
       TH1 *h1 = (TH1D*)((TObjArray*)fContainer->At(ip))->At(is);
       ax = h1->GetXaxis();
       h1->Clear();