From f00218b3af1f409b0d2951edcb8d50362252f6f5 Mon Sep 17 00:00:00 2001 From: bhippoly Date: Sun, 14 Feb 2010 22:27:34 +0000 Subject: [PATCH] Adding a protection for retrieving the TList in the Terminate (CheckV0 and PerformanceStrange) --- PWG2/SPECTRA/AliAnalysisTaskCheckV0.cxx | 31 ++++++++++++------- .../AliAnalysisTaskPerformanceStrange.cxx | 15 ++++++--- .../AliAnalysisTaskPerformanceStrange.h | 2 +- 3 files changed, 31 insertions(+), 17 deletions(-) diff --git a/PWG2/SPECTRA/AliAnalysisTaskCheckV0.cxx b/PWG2/SPECTRA/AliAnalysisTaskCheckV0.cxx index 288e109fa3f..259e431665a 100644 --- a/PWG2/SPECTRA/AliAnalysisTaskCheckV0.cxx +++ b/PWG2/SPECTRA/AliAnalysisTaskCheckV0.cxx @@ -440,6 +440,13 @@ void AliAnalysisTaskCheckV0::Terminate(Option_t *) // Draw result to the screen // Called once at the end of the query + TList *cRetrievedList = 0x0; + cRetrievedList = (TList*)GetOutputData(1); + + if(!cRetrievedList){ + AliWarning("ERROR - AliAnalysisTaskPerformanceStrange: output data container list not available\n"); return; + } + // Implement a decent style TStyle *myStyle = new TStyle("myStyle","my style"); Int_t font = 42; @@ -456,22 +463,22 @@ void AliAnalysisTaskCheckV0::Terminate(Option_t *) myStyle->SetPalette(1,0); myStyle->cd(); - fHistTrackMultiplicity = dynamic_cast (((TList*)GetOutputData(1))->FindObject("fHistTrackMultiplicity")); + fHistTrackMultiplicity = dynamic_cast (cRetrievedList->FindObject("fHistTrackMultiplicity")); if (!fHistTrackMultiplicity) { Printf("ERROR: fHistTrackMultiplicity not available"); return; } - fHistV0Multiplicity = dynamic_cast (((TList*)GetOutputData(1))->FindObject("fHistV0Multiplicity")); + fHistV0Multiplicity = dynamic_cast (cRetrievedList->FindObject("fHistV0Multiplicity")); if (!fHistV0Multiplicity) { Printf("ERROR: fHistV0Multiplicity not available"); return; } - fHistV0MultiplicityOff = dynamic_cast (((TList*)GetOutputData(1))->FindObject("fHistV0MultiplicityOff")); + fHistV0MultiplicityOff = dynamic_cast (cRetrievedList->FindObject("fHistV0MultiplicityOff")); if (!fHistV0MultiplicityOff) { Printf("ERROR: fHistV0MultiplicityOff not available"); return; } - fHistV0MultiplicityOn = dynamic_cast (((TList*)GetOutputData(1))->FindObject("fHistV0MultiplicityOn")); + fHistV0MultiplicityOn = dynamic_cast (cRetrievedList->FindObject("fHistV0MultiplicityOn")); if (!fHistV0MultiplicityOn) { Printf("ERROR: fHistV0MultiplicityOn not available"); return; @@ -496,42 +503,42 @@ void AliAnalysisTaskCheckV0::Terminate(Option_t *) legendMultiplicity->AddEntry(fHistV0MultiplicityOn,"onthefly V^{0}"); legendMultiplicity->Draw(); - fHistMassK0sOff = dynamic_cast (((TList*)GetOutputData(1))->FindObject("fHistMassK0sOff")); + fHistMassK0sOff = dynamic_cast (cRetrievedList->FindObject("fHistMassK0sOff")); if (!fHistMassK0sOff) { Printf("ERROR: fHistMassK0sOff not available"); return; } - fHistMassK0sOn = dynamic_cast (((TList*)GetOutputData(1))->FindObject("fHistMassK0sOn")); + fHistMassK0sOn = dynamic_cast (cRetrievedList->FindObject("fHistMassK0sOn")); if (!fHistMassK0sOn) { Printf("ERROR: fHistMassK0sOn not available"); return; } - fHistMassLambdaOff = dynamic_cast (((TList*)GetOutputData(1))->FindObject("fHistMassLambdaOff")); + fHistMassLambdaOff = dynamic_cast (cRetrievedList->FindObject("fHistMassLambdaOff")); if (!fHistMassLambdaOff) { Printf("ERROR: fHistMassLambdaOff not available"); return; } - fHistMassLambdaOn = dynamic_cast (((TList*)GetOutputData(1))->FindObject("fHistMassLambdaOn")); + fHistMassLambdaOn = dynamic_cast (cRetrievedList->FindObject("fHistMassLambdaOn")); if (!fHistMassLambdaOn) { Printf("ERROR: fHistMassLambdaOn not available"); return; } - fHistMassAntiLambdaOff = dynamic_cast (((TList*)GetOutputData(1))->FindObject("fHistMassAntiLambdaOff")); + fHistMassAntiLambdaOff = dynamic_cast (cRetrievedList->FindObject("fHistMassAntiLambdaOff")); if (!fHistMassAntiLambdaOff) { Printf("ERROR: fHistMassAntiLambdaOff not available"); return; } - fHistMassAntiLambdaOn = dynamic_cast (((TList*)GetOutputData(1))->FindObject("fHistMassAntiLambdaOn")); + fHistMassAntiLambdaOn = dynamic_cast (cRetrievedList->FindObject("fHistMassAntiLambdaOn")); if (!fHistMassAntiLambdaOn) { Printf("ERROR: fHistMassAntiLambdaOn not available"); return; } - fHistArmenterosPodolanskiOff = dynamic_cast (((TList*)GetOutputData(1))->FindObject("fHistArmenterosPodolanskiOff")); + fHistArmenterosPodolanskiOff = dynamic_cast (cRetrievedList->FindObject("fHistArmenterosPodolanskiOff")); if (!fHistArmenterosPodolanskiOff) { Printf("ERROR: fHistArmenterosPodolanskiOff not available"); return; } - fHistArmenterosPodolanskiOn = dynamic_cast (((TList*)GetOutputData(1))->FindObject("fHistArmenterosPodolanskiOn")); + fHistArmenterosPodolanskiOn = dynamic_cast (cRetrievedList->FindObject("fHistArmenterosPodolanskiOn")); if (!fHistArmenterosPodolanskiOn) { Printf("ERROR: fHistArmenterosPodolanskiOn not available"); return; diff --git a/PWG2/SPECTRA/AliAnalysisTaskPerformanceStrange.cxx b/PWG2/SPECTRA/AliAnalysisTaskPerformanceStrange.cxx index 79743a1ede4..df974f49a13 100644 --- a/PWG2/SPECTRA/AliAnalysisTaskPerformanceStrange.cxx +++ b/PWG2/SPECTRA/AliAnalysisTaskPerformanceStrange.cxx @@ -1245,7 +1245,7 @@ void AliAnalysisTaskPerformanceStrange::UserExec(Option_t *) isEventTriggered = fPhysTrigSel->IsCollisionCandidate((AliESDEvent*)lEvent); } else { - fPhysTrigSel->SetAnalyzeMC(); + fPhysTrigSel->SetAnalyzeMC(); // Bo: maybe this is not needed (should be done in AliPhysicsSelectionTask) isEventTriggered = fPhysTrigSel->IsCollisionCandidate((AliESDEvent*)lEvent); } @@ -1871,7 +1871,8 @@ void AliAnalysisTaskPerformanceStrange::UserExec(Option_t *) fHistPrimaryVertexX->Fill(lPrimaryVtxPosition[0]); fHistPrimaryVertexY->Fill(lPrimaryVtxPosition[1]); fHistPrimaryVertexZ->Fill(lPrimaryVtxPosition[2]); - Double_t lrcPrimVtxR = TMath::Sqrt(lPrimaryVtxPosition[0]*lPrimaryVtxPosition[0]+lPrimaryVtxPosition[0]*lPrimaryVtxPosition[0]); + Double_t lrcPrimVtxR = 0; + lrcPrimVtxR = TMath::Sqrt(lPrimaryVtxPosition[0]*lPrimaryVtxPosition[0]+lPrimaryVtxPosition[0]*lPrimaryVtxPosition[0]); // Bo: this is done with respect to x,y=0,0... to sure it is used anymore; AliKFVertex primaryVtxKF( *myPrimaryVertex ); AliKFParticle::SetField(lMagneticField); @@ -2773,14 +2774,20 @@ void AliAnalysisTaskPerformanceStrange::Terminate(Option_t *) // Draw result to the screen // Called once at the end of the query + TList *cRetrievedList = 0x0; + cRetrievedList = (TList*)GetOutputData(1); + + if(!cRetrievedList){ + AliWarning("ERROR - AliAnalysisTaskPerformanceStrange: output data container list not available\n"); return; + } - fHistV0Multiplicity = dynamic_cast (((TList*)GetOutputData(1))->FindObject("fHistV0Multiplicity")); + fHistV0Multiplicity = dynamic_cast (cRetrievedList->FindObject("fHistV0Multiplicity")); if (!fHistV0Multiplicity) { Printf("ERROR: fHistV0Multiplicity not available"); return; } - fHistV0MultiplicityMI = dynamic_cast (((TList*)GetOutputData(1))->FindObject("fHistV0MultiplicityMI")); + fHistV0MultiplicityMI = dynamic_cast (cRetrievedList->FindObject("fHistV0MultiplicityMI")); if (!fHistV0MultiplicityMI) { Printf("ERROR: fHistV0MultiplicityMI not available"); return; diff --git a/PWG2/SPECTRA/AliAnalysisTaskPerformanceStrange.h b/PWG2/SPECTRA/AliAnalysisTaskPerformanceStrange.h index ca5f3c67a08..ff175002dbc 100644 --- a/PWG2/SPECTRA/AliAnalysisTaskPerformanceStrange.h +++ b/PWG2/SPECTRA/AliAnalysisTaskPerformanceStrange.h @@ -41,8 +41,8 @@ class AliAnalysisTaskPerformanceStrange : public AliAnalysisTaskSE { TString fUsePID; // "withPID" or "noPID" TString fUseCut; // "yes" or "no" + AliPhysicsSelection *fPhysTrigSel; // Selection of events TList *fListHist; //! Output List - AliPhysicsSelection *fPhysTrigSel; //! Selection of events // MC histograms TH1F *fHistMCPrimaryVertexX; //! Histo -- 2.43.0