, fh1Xsec(0x0)
, fh1Trials(0x0)
, fContainerEff(0x0)
+ , fQASharedCls(0x0)
, fDeDxCheck(0x0)
, fOutputContainer(0x0)
, fQAContainer(0x0)
, fh1Xsec(0x0)
, fh1Trials(0x0)
, fContainerEff(0x0)
+ , fQASharedCls(0x0)
, fDeDxCheck(0x0)
, fOutputContainer(0x0)
, fQAContainer(0x0)
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);
}
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;
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
{
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 };
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();
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
AliAnalysisTaskPID(const AliAnalysisTaskPID&); // not implemented
AliAnalysisTaskPID& operator=(const AliAnalysisTaskPID&); // not implemented
- ClassDef(AliAnalysisTaskPID, 19);
+ ClassDef(AliAnalysisTaskPID, 20);
};