From: jgrosseo Date: Fri, 14 Sep 2012 09:57:29 +0000 (+0000) Subject: fake rate calculation (Monika) X-Git-Url: http://git.uio.no/git/?a=commitdiff_plain;h=46848f0b4931291ca79b767b23b6c12755ec4582;p=u%2Fmrichter%2FAliRoot.git fake rate calculation (Monika) skip events for which kine info is not filled --- diff --git a/PWGCF/Correlations/Base/AliUEHist.cxx b/PWGCF/Correlations/Base/AliUEHist.cxx index 03363d646f8..782b3f8fb76 100644 --- a/PWGCF/Correlations/Base/AliUEHist.cxx +++ b/PWGCF/Correlations/Base/AliUEHist.cxx @@ -2187,6 +2187,11 @@ TH1D* AliUEHist::GetTrackingEfficiency(Int_t axis) return dynamic_cast (GetTrackEfficiency(kCFStepAnaTopology, kCFStepTrackedOnlyPrim, axis)); } +//____________________________________________________________________ +TH1D* AliUEHist::GetFakeRate(Int_t axis) +{ + return dynamic_cast (GetTrackEfficiency(kCFStepTracked, kCFStepReconstructed, axis)); +} //____________________________________________________________________ TH2D* AliUEHist::GetTrackingCorrection() { diff --git a/PWGCF/Correlations/Base/AliUEHist.h b/PWGCF/Correlations/Base/AliUEHist.h index 62e399fa635..086ae962ffa 100644 --- a/PWGCF/Correlations/Base/AliUEHist.h +++ b/PWGCF/Correlations/Base/AliUEHist.h @@ -69,6 +69,7 @@ class AliUEHist : public TObject TH2D* GetTrackingEfficiencyCentrality(); TH2D* GetFakeRate(); + TH1D* GetFakeRate(Int_t axis); TH1D* GetTrackingContamination(Int_t axis); TH2D* GetTrackingContamination(); diff --git a/PWGCF/Correlations/DPhi/AliAnalysisTaskPhiCorrelations.cxx b/PWGCF/Correlations/DPhi/AliAnalysisTaskPhiCorrelations.cxx index c5bdd0d8610..9d004e87be7 100644 --- a/PWGCF/Correlations/DPhi/AliAnalysisTaskPhiCorrelations.cxx +++ b/PWGCF/Correlations/DPhi/AliAnalysisTaskPhiCorrelations.cxx @@ -439,7 +439,13 @@ void AliAnalysisTaskPhiCorrelations::AnalyseCorrectionMode() } if (!eventHeader) - AliFatal("First event header not found"); + { + // We avoid AliFatal here, because the AOD productions sometimes have events where the MC header is missing + // (due to unreadable Kinematics) and we don't want to loose the whole job because of a few events + AliError("First event header not found. Skipping this event."); + fHistos->FillEvent(centrality, AliUEHist::kCFStepAnaTopology); + return; + } skipParticlesAbove = eventHeader->NProduced(); AliInfo(Form("Injected signals in this event (%d headers). Keeping events of %s. Will skip particles/tracks above %d.", headers, eventHeader->ClassName(), skipParticlesAbove)); @@ -528,6 +534,11 @@ void AliAnalysisTaskPhiCorrelations::AnalyseCorrectionMode() delete allRecoTracksMatched; } TObjArray* fakeParticles = fAnalyseUE->GetFakeParticles(inputEvent, mc, kFALSE, -1, kTRUE); + if (fInjectedSignals) + { + fAnalyseUE->RemoveInjectedSignals((TObjArray*) fakeParticles->At(0), mc, skipParticlesAbove); + fAnalyseUE->RemoveInjectedSignals((TObjArray*) fakeParticles->At(1), mc, skipParticlesAbove); + } fHistos->FillTrackingEfficiency(0, 0, 0, (TObjArray*) fakeParticles->At(2), -1, centrality); fHistos->FillFakePt(fakeParticles, centrality); delete fakeParticles;