]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
- Added QA for shared clusters
authorbhess <bhess@cern.ch>
Thu, 12 Jun 2014 05:55:17 +0000 (07:55 +0200)
committermvl <marco.van.leeuwen@cern.ch>
Wed, 9 Jul 2014 14:38:19 +0000 (15:38 +0100)
PWGJE/UserTasks/AliAnalysisTaskPID.cxx
PWGJE/UserTasks/AliAnalysisTaskPID.h

index b60f08a6091326ead10ef6adef495d9a45afe862..6b5f0c0c7e6dafcdb5f9b26fb6925d0476f1adf5 100644 (file)
@@ -144,6 +144,7 @@ AliAnalysisTaskPID::AliAnalysisTaskPID()
   , fh1Xsec(0x0)
   , fh1Trials(0x0)
   , fContainerEff(0x0)
+  , fQASharedCls(0x0)
   , fDeDxCheck(0x0)
   , fOutputContainer(0x0)
   , fQAContainer(0x0)
@@ -278,6 +279,7 @@ AliAnalysisTaskPID::AliAnalysisTaskPID(const char *name)
   , fh1Xsec(0x0)
   , fh1Trials(0x0)
   , fContainerEff(0x0)
+  , fQASharedCls(0x0)
   , fDeDxCheck(0x0)
   , fOutputContainer(0x0)
   , fQAContainer(0x0)
@@ -923,6 +925,18 @@ void AliAnalysisTaskPID::UserCreateOutputObjects()
       SetUpPtResHist(fPtResolution[i], pTbinsRes, binsJetPt, binsCent);
       fQAContainer->Add(fPtResolution[i]);
     }
+    
+    
+    // Besides the pT resolution, also perform check on shared clusters
+    const Int_t nBinsQASharedCls = kQASharedClsNumAxes;
+    Int_t qaSharedClsBins[kQASharedClsNumAxes]    = { nJetPtBins, nPtBinsRes, 160, 160 };
+    Double_t qaSharedClsXmin[kQASharedClsNumAxes] = { binsJetPt[0], pTbinsRes[0], 0, -1 };
+    Double_t qaSharedClsXmax[kQASharedClsNumAxes] = { binsJetPt[nJetPtBins], pTbinsRes[nPtBinsRes], 160, 159 };
+    
+    fQASharedCls = new THnSparseD("fQASharedCls", "QA shared clusters", nBinsQASharedCls, qaSharedClsBins, qaSharedClsXmin, qaSharedClsXmax);
+    
+    SetupSharedClsHist(fQASharedCls, pTbinsRes, binsJetPt);
+    fQAContainer->Add(fQASharedCls);
   }
   
   
@@ -2732,6 +2746,28 @@ Bool_t AliAnalysisTaskPID::ProcessTrack(const AliVTrack* track, Int_t particlePD
       printf("File: %s, Line: %d: ProcessTrack -> Generate Responses for dEdx check done\n", (char*)__FILE__, __LINE__);
   }
   
+  if (fDoPtResolution) {
+    // Check shared clusters, which is done together with the pT resolution
+    Double_t qaEntry[kQASharedClskQASharedClsNumAxes];
+    qaEntry[kQASharedClsJetPt] = jetPt;
+    qaEntry[kQASharedClsPt] = pT;
+    qaEntry[kDeDxCheckP] = pTPC;
+    qaEntry[kQASharedClsNumSharedCls] = track->GetTPCSharedMap().NumSharedClusters();
+    
+    Int_t iRowInd = -1;
+    // iRowInd == -1 for "all rows w/o multiple counting"
+    qaEntry[kQASharedClsPadRow] = iRowInd;
+    fQASharedCls->Fill(qaEntry);
+
+    // Fill hist for every pad row with shared cluster
+    for (iRowInd = 0; iRowInd < 159; iRowInd++) {
+      if (track->GetTPCSharedMap().TestBitNumber(iRowInd)) {
+        qaEntry[kQASharedClsPadRow] = iRowInd;
+        fQASharedCls->Fill(vecHistQA);
+      }
+    }
+  }
+  
   if (!fDoPID)
     return kTRUE;
   
@@ -3523,6 +3559,24 @@ void AliAnalysisTaskPID::SetUpPtResHist(THnSparse* hist, Double_t* binsPt, Doubl
   hist->GetAxis(kPtResCentrality)->SetTitle(Form("Centrality Percentile (%s)", fCentralityEstimator.Data()));
 }
 
+
+//________________________________________________________________________
+void AliAnalysisTaskPID::SetUpSharedClsHist(THnSparse* hist, Double_t* binsPt, Double_t* binsJetPt) const
+{
+  // Sets bin limits for axes which are not standard binned and the axes titles.
+  
+  hist->SetBinEdges(kQASharedClsPt, binsJetPt);
+  hist->SetBinEdges(kQASharedClsJetPt, binsPt);
+  
+  // Set axes titles
+  hist->GetAxis(kQASharedClsJetPt)->SetTitle("#it{p}_{T}^{jet} (GeV/#it{c})");
+  hist->GetAxis(kQASharedClsPt)->SetTitle("#it{p}_{T} (GeV/#it{c})");
+  hist->GetAxis(kQASharedClsNumSharedCls)->SetTitle("#it{N}_{shared}^{cls}");
+  hist->GetAxis(kQASharedClsPadRow)->SetTitle("Pad row");
+  
+}
+
+
 //________________________________________________________________________
 void AliAnalysisTaskPID::SetUpDeDxCheckHist(THnSparse* hist, const Double_t* binsPt, const Double_t* binsJetPt, const Double_t* binsEtaAbs) const
 {
index 7ec7640e8846b1aded23964ef3328e2c62b729a6..3309085194f57b6853a4079ca94652f9d4c027d7 100644 (file)
@@ -62,6 +62,9 @@ class AliAnalysisTaskPID : public AliAnalysisTaskPIDV0base {
   
   enum ptResolutionAxes { kPtResJetPt = 0, kPtResGenPt = 1, kPtResRecPt = 2, kPtResCharge = 3, kPtResCentrality = 4, kPtResNumAxes = 5 };
   
+  enum qaSharedClsAxes { kQASharedClsJetPt = 0, kQASharedClsPt = 1, kQASharedClsNumSharedCls = 2, kQASharedClsPadRow = 3,
+                         kQASharedClskQASharedClsNumAxes = 4 };
+  
   enum dEdxCheckAxes { kDeDxCheckPID = 0, kDeDxCheckP = 1, kDeDxCheckJetPt = 2, kDeDxCheckEtaAbs = 3 , kDeDxCheckDeDx = 4,
                        kDeDxCheckNumAxes = 5 };
   
@@ -260,6 +263,7 @@ class AliAnalysisTaskPID : public AliAnalysisTaskPIDV0base {
   virtual void SetUpGenYieldHist(THnSparse* hist, Double_t* binsPt, Double_t* binsCent, Double_t* binsJetPt) const;
   virtual void SetUpHist(THnSparse* hist, Double_t* binsPt, Double_t* binsDeltaPrime, Double_t* binsCent, Double_t* binsJetPt) const;
   virtual void SetUpPtResHist(THnSparse* hist, Double_t* binsPt, Double_t* binsJetPt, Double_t* binsCent) const;
+  virtual void SetUpSharedClsHist(THnSparse* hist, Double_t* binsPt, Double_t* binsJetPt) const;
   virtual void SetUpDeDxCheckHist(THnSparse* hist, const Double_t* binsPt, const Double_t* binsJetPt, const Double_t* binsEtaAbs) const;
   virtual void SetUpPIDcombined();
   
@@ -396,6 +400,7 @@ class AliAnalysisTaskPID : public AliAnalysisTaskPIDV0base {
   AliCFContainer* fContainerEff; //! Container for efficiency determination
   
   THnSparseD* fPtResolution[AliPID::kSPECIES]; //! Pt Resolution for the individual species
+  THnSparseD* fQASharedCls; //! QA for shared clusters
   
   THnSparseD* fDeDxCheck; //! dEdx check
   
@@ -406,7 +411,7 @@ class AliAnalysisTaskPID : public AliAnalysisTaskPIDV0base {
   AliAnalysisTaskPID(const AliAnalysisTaskPID&); // not implemented
   AliAnalysisTaskPID& operator=(const AliAnalysisTaskPID&); // not implemented
   
-  ClassDef(AliAnalysisTaskPID, 19);
+  ClassDef(AliAnalysisTaskPID, 20);
 };