From b83be982c2f684aad370240399b72fe724ee7c9d Mon Sep 17 00:00:00 2001 From: bhippoly Date: Thu, 19 Mar 2009 16:05:42 +0000 Subject: [PATCH] remove obsolete task from H.Ricaud --- PWG2/SPECTRA/AliAnalysisTaskESDStrangeMC.cxx | 948 ------------------- PWG2/SPECTRA/AliAnalysisTaskESDStrangeMC.h | 161 ---- 2 files changed, 1109 deletions(-) delete mode 100644 PWG2/SPECTRA/AliAnalysisTaskESDStrangeMC.cxx delete mode 100644 PWG2/SPECTRA/AliAnalysisTaskESDStrangeMC.h diff --git a/PWG2/SPECTRA/AliAnalysisTaskESDStrangeMC.cxx b/PWG2/SPECTRA/AliAnalysisTaskESDStrangeMC.cxx deleted file mode 100644 index 7ab7503f70b..00000000000 --- a/PWG2/SPECTRA/AliAnalysisTaskESDStrangeMC.cxx +++ /dev/null @@ -1,948 +0,0 @@ - -/************************************************************************** - * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * - * * - * Author: The ALICE Off-line Project. * - * Contributors are mentioned in the code where appropriate. * - * * - * Permission to use, copy, modify and distribute this software and its * - * documentation strictly for non-commercial purposes is hereby granted * - * without fee, provided that the above copyright notice appears in all * - * copies and that both the copyright notice and this permission notice * - * appear in the supporting documentation. The authors make no claims * - * about the suitability of this software for any purpose. It is * - * provided "as is" without express or implied warranty. * - **************************************************************************/ - -// macro to study V0s, with Monte Carlo information access -// loops over ESD files, and creates AliAODv0 -// Author: H.Ricaud, Helene.Ricaud@IReS.in2p3.fr - - -#include "Riostream.h" -#include "TChain.h" -#include "TTree.h" -#include "TH1F.h" -#include "TH2F.h" -#include "TList.h" -#include "TMath.h" -#include "TCanvas.h" - -#include "AliAnalysisTask.h" -#include "AliAnalysisManager.h" - -#include "AliESDVertex.h" -#include "AliESDEvent.h" -#include "AliESDInputHandler.h" -#include "AliESDtrack.h" -#include "AliESDv0.h" -#include "AliAODv0.h" -#include "AliAODTrack.h" - -#include "AliMCEventHandler.h" -#include "AliMCEvent.h" -#include "AliStack.h" - -#include "AliLog.h" - -#include "AliAnalysisTaskESDStrangeMC.h" - - -ClassImp(AliAnalysisTaskESDStrangeMC) - -//________________________________________________________________________ -AliAnalysisTaskESDStrangeMC::AliAnalysisTaskESDStrangeMC(const char *name) - : AliAnalysisTask(name, ""), fESD(0), fListHist(), - fHistPtMC(0), - fHistMCMultiplicity(0), - fHistMCPtVsYK0s(0), - fHistMCPtVsYLambda(0), - fHistMCPtVsYAntiLambda(0), - fHistTrackPerEvent(0), - fHistMCDaughterTrack(0), - fHistPrimaryVertexX(0), - fHistPrimaryVertexY(0), - fHistPrimaryVertexZ(0), - fHistDcaPosToPrimVertex(0), - fHistDcaNegToPrimVertex(0), - fHistDcaPosToPrimVertexZoom(0), - fHistDcaNegToPrimVertexZoom(0), - fHistRadiusV0(0), - fHistDecayLengthV0(0), - fHistDcaV0Daughters(0), - fHistChi2(0), - fHistCosPointAngle(0), - fHistCosPointAngleZoom(0), - fHistPtVsYK0s(0), - fHistPtVsYK0sMI(0), - fHistPtVsYLambda(0), - fHistPtVsYLambdaMI(0), - fHistPtVsYAntiLambda(0), - fHistPtVsYAntiLambdaMI(0), - fHistMassK0(0), - fHistMassK0MI(0), - fHistMassLambda(0), - fHistMassLambdaMI(0), - fHistMassAntiLambda(0), - fHistMassAntiLambdaMI(0), - fHistMassVsRadiusK0(0), - fHistMassVsRadiusK0MI(0), - fHistMassVsRadiusLambda(0), - fHistMassVsRadiusLambdaMI(0), - fHistMassVsRadiusAntiLambda(0), - fHistMassVsRadiusAntiLambdaMI(0), - fHistArmenterosPodolanski(0), - fHistArmenterosPodolanskiMI(0), - fHistAsMcPtK0(0), - fHistAsMcPtK0MI(0), - fHistAsMcPtLambda(0), - fHistAsMcPtLambdaMI(0), - fHistAsMcPtAntiLambda(0), - fHistAsMcPtAntiLambdaMI(0), - fHistAsMcPtZoomK0(0), - fHistAsMcPtZoomK0MI(0), - fHistAsMcPtZoomLambda(0), - fHistAsMcPtZoomLambdaMI(0), - fHistPidMcMassK0(0), - fHistPidMcMassK0MI(0), - fHistPidMcMassLambda(0), - fHistPidMcMassLambdaMI(0), - fHistPidMcMassAntiLambda(0), - fHistPidMcMassAntiLambdaMI(0), - fHistAsMcMassK0(0), - fHistAsMcMassK0MI(0), - fHistAsMcMassLambda(0), - fHistAsMcMassLambdaMI(0), - fHistAsMcMassAntiLambda(0), - fHistAsMcMassAntiLambdaMI(0), - fHistAsMcMassVsRadiusK0(0), - fHistAsMcMassVsRadiusK0MI(0), - fHistAsMcMassVsRadiusLambda(0), - fHistAsMcMassVsRadiusLambdaMI(0), - fHistAsMcMassVsRadiusAntiLambda(0), - fHistAsMcMassVsRadiusAntiLambdaMI(0), - fHistAsMcResxK0(0), - fHistAsMcResyK0(0), - fHistAsMcReszK0(0), - fHistAsMcResrVsRadiusK0(0), - fHistAsMcReszVsRadiusK0(0), - fHistAsMcResxK0MI(0), - fHistAsMcResyK0MI(0), - fHistAsMcReszK0MI(0), - fHistAsMcResrVsRadiusK0MI(0), - fHistAsMcReszVsRadiusK0MI(0), - fHistAsMcResxLambda(0), - fHistAsMcResyLambda(0), - fHistAsMcReszLambda(0), - fHistAsMcResrVsRadiusLambda(0), - fHistAsMcReszVsRadiusLambda(0), - fHistAsMcResxLambdaMI(0), - fHistAsMcResyLambdaMI(0), - fHistAsMcReszLambdaMI(0), - fHistAsMcResrVsRadiusLambdaMI(0), - fHistAsMcReszVsRadiusLambdaMI(0), - fHistAsMcResxAntiLambda(0), - fHistAsMcResyAntiLambda(0), - fHistAsMcReszAntiLambda(0), - fHistAsMcResrVsRadiusAntiLambda(0), - fHistAsMcReszVsRadiusAntiLambda(0), - fHistAsMcResxAntiLambdaMI(0), - fHistAsMcResyAntiLambdaMI(0), - fHistAsMcReszAntiLambdaMI(0), - fHistAsMcResrVsRadiusAntiLambdaMI(0), - fHistAsMcReszVsRadiusAntiLambdaMI(0) - -{ - // Constructor - - // Define input and output slots here - // Input slot #0 works with a TChain - DefineInput(0, TChain::Class()); - // Output slot #0 writes into a TH1 container - //DefineOutput(0, TH1F::Class()); - // Output slot #0 writes into a TList container - DefineOutput(0, TList::Class()); -} - -//________________________________________________________________________ -void AliAnalysisTaskESDStrangeMC::ConnectInputData(Option_t *) -{ - // Connect ESD or AOD here - // Called once - - TTree* tree = dynamic_cast (GetInputData(0)); - if (!tree) { - Printf("ERROR: Could not read chain from input slot 0"); - } else { - // Disable all branches, we want to process only MC - tree->SetBranchStatus("*", kFALSE); - tree->SetBranchStatus("fTracks.*", kTRUE); - tree->SetBranchStatus("fV0s.*", kTRUE); - - AliESDInputHandler *esdH = dynamic_cast (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()); - - if (!esdH) { - Printf("ERROR: Could not get ESDInputHandler"); - } else - fESD = esdH->GetEvent(); - } -} - -//________________________________________________________________________ -void AliAnalysisTaskESDStrangeMC::CreateOutputObjects() -{ - // Create histograms - // Called once - - fListHist = new TList(); - - - //*************** - // MC histograms - //*************** - fHistPtMC = new TH1F("h1PtMC", "P_{T} distribution", 15, 0.1, 3.1); - fHistPtMC->GetXaxis()->SetTitle("P_{T} (GeV/c)"); - fHistPtMC->GetYaxis()->SetTitle("dN/dP_{T} (c/GeV)"); - fHistPtMC->SetMarkerStyle(kFullCircle); - fListHist->Add(fHistPtMC); - - // Multiplicity - fHistMCMultiplicity = new TH1F("h1MCMultiplicity", "MC Multiplicity;Ntracks;Count", 201, -0.5, 200.5); - fListHist->Add(fHistMCMultiplicity); - - // Pt and rapidity distribution: - fHistMCPtVsYK0s = new TH2F("h2MCPtVsYK0s", "K^{0} candidates;p_{t} (GeV/c);rapidity",150,0,15,20,-10,10); - fListHist->Add(fHistMCPtVsYK0s); - - fHistMCPtVsYLambda = new TH2F("h2MCPtVsYLambda", "#Lambda^{0} candidates;p_{t} (GeV/c);rapidity",150,0,15,20,-10,10); - fListHist->Add(fHistMCPtVsYLambda); - - fHistMCPtVsYAntiLambda = new TH2F("h2MCPtVsYAntiLambda", "#bar{#Lambda}^{0} candidates;p_{t} (GeV/c);rapidity",150,0,15,20,-10,10); - fListHist->Add(fHistMCPtVsYAntiLambda); - - - //*********************************** - // Reconstructed particles histograms - //*********************************** - - // multiplicity - fHistTrackPerEvent = new TH1F("h1TrackPerEvent", "Tracks per event;Number of Tracks;Number of Events",50,0,50); - fListHist->Add(fHistTrackPerEvent); - - fHistMCDaughterTrack = new TH1F("h1MCDaughterTrack","Distribution of mc id for daughters;id tags;Counts",15,0,15); - fListHist->Add(fHistMCDaughterTrack); - - // Primary Vertex: - fHistPrimaryVertexX = new TH1F("h1PrimaryVertexX", "Primary Vertex Position X;Primary Vertex Position X (cm);Events",40,-1,1); - fListHist->Add(fHistPrimaryVertexX); - - fHistPrimaryVertexY = new TH1F("h1PrimaryVertexY", "Primary Vertex Position Y;Primary Vertex Position Y (cm);Events",40,-1,1); - fListHist->Add(fHistPrimaryVertexY); - - fHistPrimaryVertexZ = new TH1F("h1PrimaryVertexZ", "Primary Vertex Position Z;Primary Vertex Position Z (cm);Events",60,-5,5); - fListHist->Add(fHistPrimaryVertexZ); - - // Cut checks: - fHistDcaPosToPrimVertex = new TH2F("h2DcaPosToPrimVertex", "Positive V0 daughter;dca(cm);Status",500,0,5,2,-0.5,1.5); - fListHist->Add(fHistDcaPosToPrimVertex); - - fHistDcaNegToPrimVertex = new TH2F("h2DcaNegToPrimVertex", "Negative V0 daughter;dca(cm);Status",500,0,5,2,-0.5,1.5); - fListHist->Add(fHistDcaNegToPrimVertex); - - fHistDcaPosToPrimVertexZoom = new TH2F("h2DcaPosToPrimVertexZoom", "Positive V0 daughter;dca(cm);Status",100,0,0.1,2,-0.5,1.5); - fListHist->Add(fHistDcaPosToPrimVertexZoom); - - fHistDcaNegToPrimVertexZoom = new TH2F("h2DcaNegToPrimVertexZoom", "Negative V0 daughter;dca(cm);Status",100,0,0.1,2,-0.5,1.5); - fListHist->Add(fHistDcaNegToPrimVertexZoom); - - fHistRadiusV0 = new TH2F("h2RadiusV0", "Radius;Radius(cm);Status",1000,0,100,2,-0.5,1.5); - fListHist->Add(fHistRadiusV0); - - fHistDecayLengthV0 = new TH2F("h2DecayLengthV0", "V0s decay Length;decay length(cm);Status", 200, 0, 100,2,-0.5,1.5); - fListHist->Add(fHistDecayLengthV0); - - fHistDcaV0Daughters = new TH2F("h2DcaV0Daughters", "DCA between daughters;dca(cm);Status", 160, 0, 4,2,-0.5,1.5); - fListHist->Add(fHistDcaV0Daughters); - - fHistChi2 = new TH2F("h2Chi2", "V0s chi2;chi2;Status", 33, 0, 33,2,-0.5,1.5); - fListHist->Add(fHistChi2); - - fHistCosPointAngle = new TH2F("h2CosPointAngle", "Cosine of V0's pointing angle", 100,0,1,2,-0.5,1.5); - fListHist->Add(fHistCosPointAngle); - - fHistCosPointAngleZoom = new TH2F("h2CosPointAngleZoom", "Cosine of V0's pointing angle", 100,0.9,1,2,-0.5,1.5); - fListHist->Add(fHistCosPointAngleZoom); - - // Pt and rapidity distribution: - fHistPtVsYK0s = new TH2F("h2PtVsYK0s", "K^{0} candidates;p_{t} (GeV/c);rapidity",150,0,15,30,-1.5,1.5); - fListHist->Add(fHistPtVsYK0s); - fHistPtVsYK0sMI = new TH2F("h2PtVsYK0sMI", "K^{0} MI candidates;p_{t} (GeV/c);rapidity",150,0,15,30,-1.5,1.5); - fListHist->Add(fHistPtVsYK0sMI); - - fHistPtVsYLambda = new TH2F("h2PtVsYLambda", "#Lambda^{0} candidates;p_{t} (GeV/c);rapidity",150,0,15,30,-1.5,1.5); - fListHist->Add(fHistPtVsYLambda); - fHistPtVsYLambdaMI = new TH2F("h2PtVsYLambdaMI", "#Lambda^{0} MI candidates;p_{t} (GeV/c);rapidity",150,0,15,30,-1.5,1.5); - fListHist->Add(fHistPtVsYLambdaMI); - - fHistPtVsYAntiLambda = new TH2F("h2PtVsYAntiLambda", "#bar{#Lambda}^{0} candidates;p_{t} (GeV/c);rapidity",150,0,15,30,-1.5,1.5); - fListHist->Add(fHistPtVsYAntiLambda); - fHistPtVsYAntiLambdaMI = new TH2F("h2PtVsYAntiLambdaMI", "#bar{#Lambda}^{0} MI candidates;p_{t} (GeV/c);rapidity",150,0,15,30,-1.5,1.5); - fListHist->Add(fHistPtVsYAntiLambdaMI); - - // Mass: - fHistMassK0 = new TH1F("h1MassK0", "K^{0} candidates;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 100, 0.4, 0.6); - fListHist->Add(fHistMassK0); - fHistMassK0MI = new TH1F("h1MassK0MI", "K^{0} candidates;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 100, 0.4, 0.6); - fListHist->Add(fHistMassK0MI); - - fHistMassLambda = new TH1F("h1MassLambda", "#Lambda^{0} candidates;M(p#pi^{-}) (GeV/c^{2});Counts", 75, 1.05, 1.2); - fListHist->Add(fHistMassLambda); - fHistMassLambdaMI = new TH1F("h1MassLambdaMI", "#Lambda^{0} candidates;M(p#pi^{-}) (GeV/c^{2});Counts", 75, 1.05, 1.2); - fListHist->Add(fHistMassLambdaMI); - - fHistMassAntiLambda = new TH1F("h1MassAntiLambda", "#bar{#Lambda}^{0} candidates;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 75, 1.05, 1.2); - fListHist->Add(fHistMassAntiLambda); - fHistMassAntiLambdaMI = new TH1F("h1MassAntiLambdaMI", "#bar{#Lambda}^{0} candidates;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 75, 1.05, 1.2); - fListHist->Add(fHistMassAntiLambdaMI); - - // invariant mass vs radius - const Double_t radius[10] = {0.0,2.5,2.9,3.9,7.6,15.0,23.9,37.8,42.8,100.0}; - Int_t NbinRadius = 9; - Int_t NbinInvMassLambda = 300; - - fHistMassVsRadiusK0 = new TH2F("h2MassVsRadiusK0", "K^{0} reconstructed;radius (cm);M(#pi^{+}#pi^{-}) (GeV/c^{2})",NbinRadius,radius, 200, 0.4, 0.6); - fListHist->Add(fHistMassVsRadiusK0); - - fHistMassVsRadiusK0MI = new TH2F("h2MassVsRadiusK0MI", "K^{0} MI reconstructed;radius (cm);M(#pi^{+}#pi^{-}) (GeV/c^{2})",NbinRadius,radius, 200, 0.4, 0.6); - fListHist->Add(fHistMassVsRadiusK0MI); - - fHistMassVsRadiusLambda = new TH2F("h2MassVsRadiusLambda", "#Lambda reconstructed;radius (cm);M(p#pi^{-}) (GeV/c^{2})",NbinRadius,radius, 140, 1.06, 1.2); - fListHist->Add(fHistMassVsRadiusLambda); - - fHistMassVsRadiusLambdaMI = new TH2F("h2MassVsRadiusLambdaMI", "#Lambda MI reconstructed;radius (cm);M(p#pi^{-}) (GeV/c^{2})",NbinRadius,radius, 140, 1.06, 1.2); - fListHist->Add(fHistMassVsRadiusLambdaMI); - - fHistMassVsRadiusAntiLambda = new TH2F("h2MassVsRadiusAntiLambda", "#bar{#Lambda} reconstructed;radius (cm);M(#bar{p}#pi^{+}) (GeV/c^{2})",NbinRadius,radius, 140, 1.06, 1.2); - fListHist->Add(fHistMassVsRadiusAntiLambda); - - fHistMassVsRadiusAntiLambdaMI = new TH2F("h2MassVsRadiusAntiLambdaMI", "#bar{#Lambda} reconstructed;radius (cm);M(#bar{p}#pi^{+}) (GeV/c^{2})",NbinRadius,radius, 140, 1.06, 1.2); - fListHist->Add(fHistMassVsRadiusAntiLambdaMI); - - - fHistArmenterosPodolanski = new TH2F("h2ArmenterosPodolanski","Armenteros-Podolanski phase space;#alpha;p_{t} arm",100,-1.0,1.0,50,0,0.5); - fHistArmenterosPodolanskiMI = new TH2F("h2ArmenterosPodolanskiMI","Armenteros-Podolanski phase space;#alpha;p_{t} arm",100,-1.0,1.0,50,0,0.5); - - - //******************************** - // Associated particles histograms - //******************************** - //Pt distribution - fHistAsMcPtK0 = new TH1F("h1AsMcPtK0", "K^{0} associated;p_{t} (GeV/c);Counts", 150, 0, 15); - fListHist->Add(fHistAsMcPtK0); - fHistAsMcPtK0MI = new TH1F("h1AsMcPtK0MI", "K^{0} associated;p_{t} (GeV/c);Counts", 150, 0, 15); - fListHist->Add(fHistAsMcPtK0MI); - - fHistAsMcPtLambda = new TH1F("h1AsMcPtLambda", "#Lambda^{0} associated;p_{t} (GeV/c);Counts", 150, 0, 15); - fListHist->Add(fHistAsMcPtLambda); - fHistAsMcPtLambdaMI = new TH1F("h1AsMcPtLambdaMI", "#Lambda^{0} associated;p_{t} (GeV/c);Counts", 150, 0, 15); - fListHist->Add(fHistAsMcPtLambdaMI); - - fHistAsMcPtAntiLambda = new TH1F("h1AsMcPtAntiLambda", "#bar{#Lambda}^{0} associated;p_{t} (GeV/c);Counts", 150, 0, 15); - fListHist->Add(fHistAsMcPtAntiLambda); - fHistAsMcPtAntiLambdaMI = new TH1F("h1AsMcPtAntiLambdaMI", "#bar{#Lambda}^{0} associated;p_{t} (GeV/c);Counts", 150, 0, 15); - fListHist->Add(fHistAsMcPtAntiLambdaMI); - - fHistAsMcPtZoomK0 = new TH1F("h1AsMcPtZoomK0", "K^{0} candidates in -1 Add(fHistAsMcPtZoomK0); - fHistAsMcPtZoomK0MI = new TH1F("h1AsMcPtZoomK0MI", "K^{0} MI candidates in -1 Add(fHistAsMcPtZoomK0MI); - - fHistAsMcPtZoomLambda = new TH1F("h1AsMcPtZoomLambda", "#Lambda^{0} candidates in -1 Add(fHistAsMcPtZoomLambda); - fHistAsMcPtZoomLambdaMI = new TH1F("h1AsMcPtZoomLambdaMI", "#Lambda^{0} MI candidates in -1 Add(fHistAsMcPtZoomLambdaMI); - - - // Mass - fHistPidMcMassK0 = new TH1F("h1PidMcMassK0", "K^{0} MC PId checked;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 100, 0.4, 0.6); - fListHist->Add(fHistPidMcMassK0); - fHistPidMcMassK0MI = new TH1F("h1PidMcMassK0MI", "K^{0} MC PId checked;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 100, 0.4, 0.6); - fListHist->Add(fHistPidMcMassK0MI); - - fHistPidMcMassLambda = new TH1F("h1PidMcMassLambda", "#Lambda^{0} MC PId checked;M(p#pi^{-}) (GeV/c^{2});Counts", 75, 1.05, 1.2); - fListHist->Add(fHistPidMcMassLambda); - fHistPidMcMassLambdaMI = new TH1F("h1PidMcMassLambdaMI", "#Lambda^{0} MC PId checked;M(p#pi^{-}) (GeV/c^{2});Counts", 75, 1.05, 1.2); - fListHist->Add(fHistPidMcMassLambdaMI); - - fHistPidMcMassAntiLambda = new TH1F("h1PidMcMassAntiLambda", "#bar{#Lambda}^{0} MC PId checked;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 75, 1.05, 1.2); - fListHist->Add(fHistPidMcMassAntiLambda); - fHistPidMcMassAntiLambdaMI = new TH1F("h1PidMcMassAntiLambdaMI", "#bar{#Lambda}^{0} MC PId checked;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 75, 1.05, 1.2); - fListHist->Add(fHistPidMcMassAntiLambdaMI); - - fHistAsMcMassK0 = new TH1F("h1AsMcMassK0", "K^{0} associated;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 100, 0.4, 0.6); - fListHist->Add(fHistAsMcMassK0); - fHistAsMcMassK0MI = new TH1F("h1AsMcMassK0MI", "K^{0} associated;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 100, 0.4, 0.6); - fListHist->Add(fHistAsMcMassK0MI); - - fHistAsMcMassLambda = new TH1F("h1AsMcMassLambda", "#Lambda^{0} associated;M(p#pi^{-}) (GeV/c^{2});Counts", 75, 1.05, 1.2); - fListHist->Add(fHistAsMcMassLambda); - fHistAsMcMassLambdaMI = new TH1F("h1AsMcMassLambdaMI", "#Lambda^{0} associated;M(p#pi^{-}) (GeV/c^{2});Counts", 75, 1.05, 1.2); - fListHist->Add(fHistAsMcMassLambdaMI); - - fHistAsMcMassAntiLambda = new TH1F("h1AsMcMassAntiLambda", "#bar{#Lambda}^{0} associated;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 75, 1.05, 1.2); - fListHist->Add(fHistAsMcMassAntiLambda); - fHistAsMcMassAntiLambdaMI = new TH1F("h1AsMcMassAntiLambdaMI", "#bar{#Lambda}^{0} associated;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 75, 1.05, 1.2); - fListHist->Add(fHistAsMcMassAntiLambdaMI); - - - // invariant mass vs radius - fHistAsMcMassVsRadiusK0 = new TH2F("h2AsMcMassVsRadiusK0", "K^{0} associated;radius (cm);M(#pi^{+}#pi^{-}) (GeV/c^{2})",NbinRadius,radius, 500, 0.47, 0.52); - fListHist->Add(fHistAsMcMassVsRadiusK0); - - fHistAsMcMassVsRadiusK0MI = new TH2F("h2AsMcMassVsRadiusK0MI", "K^{0} MI associated;radius (cm);M(#pi^{+}#pi^{-}) (GeV/c^{2})",NbinRadius,radius, 500, 0.47, 0.52); - fListHist->Add(fHistAsMcMassVsRadiusK0MI); - - fHistAsMcMassVsRadiusLambda = new TH2F("h2AsMcMassVsRadiusLambda", "#Lambda associated;radius (cm);M(p#pi^{-}) (GeV/c^{2})",NbinRadius,radius, NbinInvMassLambda, 1.10, 1.13); - fListHist->Add(fHistAsMcMassVsRadiusLambda); - - fHistAsMcMassVsRadiusLambdaMI = new TH2F("h2AsMcMassVsRadiusLambdaMI", "#Lambda MI associated;radius (cm);M(p#pi^{-}) (GeV/c^{2})",NbinRadius,radius, NbinInvMassLambda, 1.10, 1.13); - fListHist->Add(fHistAsMcMassVsRadiusLambdaMI); - - fHistAsMcMassVsRadiusAntiLambda = new TH2F("h2AsMcMassVsRadiusAntiLambda", "#bar{#Lambda} associated;radius (cm);M(#bar{p}#pi^{+}) (GeV/c^{2})",NbinRadius,radius,NbinInvMassLambda , 1.10, 1.13); - fListHist->Add(fHistAsMcMassVsRadiusAntiLambda); - - fHistAsMcMassVsRadiusAntiLambdaMI = new TH2F("h2AsMcMassVsRadiusAntiLambdaMI", "#bar{#Lambda} MI associated;radius (cm);M(#bar{p}#pi^{+}) (GeV/c^{2})",NbinRadius,radius,NbinInvMassLambda , 1.10, 1.13); - fListHist->Add(fHistAsMcMassVsRadiusAntiLambdaMI); - - - // Resolution - fHistAsMcResxK0 = new TH1F("h1AsMcResxK0", "K^{0} associated;#Delta x (cm);Counts", 50, -0.25, 0.25); - fListHist->Add(fHistAsMcResxK0); - fHistAsMcResyK0 = new TH1F("h1AsMcResyK0", "K^{0} associated;#Delta y (cm);Counts", 50, -0.25, 0.25); - fListHist->Add(fHistAsMcResyK0); - fHistAsMcReszK0 = new TH1F("h1AsMcReszK0", "K^{0} associated;#Delta z (cm);Counts", 50, -0.25, 0.25); - fListHist->Add(fHistAsMcReszK0); - fHistAsMcResrVsRadiusK0 = new TH2F("h2AsMcResrVsRadiusK0", "K^{0} associated;Radius (cm);#Delta r (cm)",8,radius, 50, -0.25, 0.25); - fListHist->Add(fHistAsMcResrVsRadiusK0); - fHistAsMcReszVsRadiusK0 = new TH2F("h2AsMcReszVsRadiusK0", "K^{0} associated;Radius (cm);#Delta z (cm)",8,radius, 50, -0.25, 0.25); - fListHist->Add(fHistAsMcReszVsRadiusK0); - - fHistAsMcResxK0MI = new TH1F("h1AsMcResxK0MI", "K^{0} MI associated;#Delta x (cm);Counts", 50, -0.25, 0.25); - fListHist->Add(fHistAsMcResxK0MI); - fHistAsMcResyK0MI = new TH1F("h1AsMcResyK0MI", "K^{0} MI associated;#Delta y (cm);Counts", 50, -0.25, 0.25); - fListHist->Add(fHistAsMcResyK0MI); - fHistAsMcReszK0MI = new TH1F("h1AsMcReszK0MI", "K^{0} MI associated;#Delta z (cm);Counts", 50, -0.25, 0.25); - fListHist->Add(fHistAsMcReszK0MI); - fHistAsMcResrVsRadiusK0MI = new TH2F("h2AsMcResrVsRadiusK0MI", "K^{0} MI associated;Radius (cm);#Delta r (cm)",8,radius, 50, -0.25, 0.25); - fListHist->Add(fHistAsMcResrVsRadiusK0MI); - fHistAsMcReszVsRadiusK0MI = new TH2F("h2AsMcReszVsRadiusK0MI", "K^{0} MI associated;Radius (cm);#Delta z (cm)",8,radius, 50, -0.25, 0.25); - fListHist->Add(fHistAsMcReszVsRadiusK0MI); - - fHistAsMcResxLambda = new TH1F("h1AsMcResxLambda", "#Lambda^{0} associated;#Delta x (cm);Counts", 50, -0.25, 0.25); - fListHist->Add(fHistAsMcResxLambda); - fHistAsMcResyLambda = new TH1F("h1AsMcResyLambda", "#Lambda^{0} associated;#Delta y (cm);Counts", 50, -0.25, 0.25); - fListHist->Add(fHistAsMcResyLambda); - fHistAsMcReszLambda = new TH1F("h1AsMcReszLambda", "#Lambda^{0} associated;#Delta z (cm);Counts", 50, -0.25, 0.25); - fListHist->Add(fHistAsMcReszLambda); - fHistAsMcResrVsRadiusLambda = new TH2F("h2AsMcResrVsRadiusLambda", "#Lambda^{0} associated;Radius (cm);#Delta r (cm)",8,radius, 50, -0.25, 0.25); - fListHist->Add(fHistAsMcResrVsRadiusLambda); - fHistAsMcReszVsRadiusLambda = new TH2F("h2AsMcReszVsRadiusLambda", "#Lambda^{0} associated;Radius (cm);#Delta z (cm)",8,radius, 50, -0.25, 0.25); - fListHist->Add(fHistAsMcReszVsRadiusLambda); - - fHistAsMcResxLambdaMI = new TH1F("h1AsMcResxLambdaMI", "#Lambda^{0} MI associated;#Delta x (cm);Counts", 50, -0.25, 0.25); - fListHist->Add(fHistAsMcResxLambdaMI); - fHistAsMcResyLambdaMI = new TH1F("h1AsMcResyLambdaMI", "#Lambda^{0} MI associated;#Delta y (cm);Counts", 50, -0.25, 0.25); - fListHist->Add(fHistAsMcResyLambdaMI); - fHistAsMcReszLambdaMI = new TH1F("h1AsMcReszLambdaMI", "#Lambda^{0} MI associated;#Delta z (cm);Counts", 50, -0.25, 0.25); - fListHist->Add(fHistAsMcReszLambdaMI); - fHistAsMcResrVsRadiusLambdaMI = new TH2F("h2AsMcResrVsRadiusLambdaMI", "#Lambda^{0} MI associated;Radius (cm);#Delta r (cm)",8,radius, 50, -0.25, 0.25); - fListHist->Add(fHistAsMcResrVsRadiusLambdaMI); - fHistAsMcReszVsRadiusLambdaMI = new TH2F("h2AsMcReszVsRadiusLambdaMI", "#Lambda^{0} MI associated;Radius (cm);#Delta z (cm)",8,radius, 50, -0.25, 0.25); - fListHist->Add(fHistAsMcReszVsRadiusLambdaMI); - - fHistAsMcResxAntiLambda = new TH1F("h1AsMcResxAntiLambda", "#bar{#Lambda}^{0} associated;#Delta x (cm);Counts", 50, -0.25, 0.25); - fListHist->Add(fHistAsMcResxAntiLambda); - fHistAsMcResyAntiLambda = new TH1F("h1AsMcResyAntiLambda", "#bar{#Lambda}^{0} associated;#Delta y (cm);Counts", 50, -0.25, 0.25); - fListHist->Add(fHistAsMcResyAntiLambda); - fHistAsMcReszAntiLambda = new TH1F("h1AsMcReszAntiLambda", "#bar{#Lambda}^{0} associated;#Delta z (cm);Counts", 50, -0.25, 0.25); - fListHist->Add(fHistAsMcReszAntiLambda); - fHistAsMcResrVsRadiusAntiLambda = new TH2F("h2AsMcResrVsRadiusAntiLambda", "#bar{#Lambda}^{0} associated;Radius (cm);#Delta r (cm)",8,radius, 50, -0.25, 0.25); - fListHist->Add(fHistAsMcResrVsRadiusAntiLambda); - fHistAsMcReszVsRadiusAntiLambda = new TH2F("h2AsMcReszVsRadiusAntiLambda", "#bar{#Lambda}^{0} associated;Radius (cm);#Delta z (cm)",8,radius, 50, -0.25, 0.25); - fListHist->Add(fHistAsMcReszVsRadiusAntiLambda); - - fHistAsMcResxAntiLambdaMI = new TH1F("h1AsMcResxAntiLambdaMI", "#bar{#Lambda}^{0} MI associated;#Delta x (cm);Counts", 50, -0.25, 0.25); - fListHist->Add(fHistAsMcResxAntiLambdaMI); - fHistAsMcResyAntiLambdaMI = new TH1F("h1AsMcResyAntiLambdaMI", "#bar{#Lambda}^{0} MI associated;#Delta y (cm);Counts", 50, -0.25, 0.25); - fListHist->Add(fHistAsMcResyAntiLambdaMI); - fHistAsMcReszAntiLambdaMI = new TH1F("h1AsMcReszAntiLambdaMI", "#bar{#Lambda}^{0} MI associated;#Delta z (cm);Counts", 50, -0.25, 0.25); - fListHist->Add(fHistAsMcReszAntiLambdaMI); - fHistAsMcResrVsRadiusAntiLambdaMI = new TH2F("h2AsMcResrVsRadiusAntiLambdaMI", "#bar{#Lambda}^{0} MI associated;Radius (cm);#Delta r (cm)",8,radius, 50, -0.25, 0.25); - fListHist->Add(fHistAsMcResrVsRadiusAntiLambdaMI); - fHistAsMcReszVsRadiusAntiLambdaMI = new TH2F("h2AsMcReszVsRadiusAntiLambdaMI", "#bar{#Lambda}^{0} MI associated;Radius (cm);#Delta z (cm)",8,radius, 50, -0.25, 0.25); - fListHist->Add(fHistAsMcReszVsRadiusAntiLambdaMI); - - -} - -//________________________________________________________________________ -void AliAnalysisTaskESDStrangeMC::Exec(Option_t *) -{ - AliLog::SetGlobalLogLevel(AliLog::kError); - - //********************************************** - // Check Monte Carlo information access first: - //********************************************** - // Process MC truth, therefore we receive the AliAnalysisManager and ask it for the AliMCEventHandler - // This handler can return the current MC event - - AliMCEventHandler* eventHandler = dynamic_cast (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()); - if (!eventHandler) { - Printf("ERROR: Could not retrieve MC event handler"); - return; - } - - AliMCEvent* mcEvent = eventHandler->MCEvent(); - if (!mcEvent) { - Printf("ERROR: Could not retrieve MC event"); - return; - } - - AliStack* stack = mcEvent->Stack(); - - //********************************************** - // MC loop - // Called for each event - //********************************************** - - //Printf("MC particles: %d", mcEvent->GetNumberOfTracks()); - //Printf("MC primary particles: %d", stack->GetNprimary()); - - for (Int_t iTracksMC = 0; iTracksMC < mcEvent->GetNumberOfTracks(); iTracksMC++) { - AliMCParticle* trackMC = mcEvent->GetTrack(iTracksMC); - if (!trackMC) { - Printf("ERROR: Could not receive track %d (mc loop)", iTracksMC); - continue; - } - fHistMCMultiplicity->Fill(mcEvent->GetNumberOfTracks()); - fHistPtMC->Fill(trackMC->Pt()); - } //end MC tracks loop - - Double_t y =999.9; - for (Int_t iMc = 0; iMc < stack->GetNprimary(); ++iMc) { - TParticle *p0 = stack->Particle(iMc); - if (!p0) { - Printf("ERROR: particle with label %d not found in stack (mc loop)", iMc); - continue; - } - y=myRap(p0->Energy(),p0->Pz()); - if (p0->GetPdgCode()==310) fHistMCPtVsYK0s->Fill(p0->Pt(),y); - else if (p0->GetPdgCode()==3122) fHistMCPtVsYLambda->Fill(p0->Pt(),y); - else if (p0->GetPdgCode()==-3122) fHistMCPtVsYAntiLambda->Fill(p0->Pt(),y); - - }// end loop MC primary particles - - - //********************************************* - // ESD loop - // Called for each event - //********************************************* - - if (!fESD) { - Printf("ERROR: fESD not available"); - return; - } - - //Printf("There are %d tracks in this event", fESD->GetNumberOfTracks()); - if (!(fESD->GetNumberOfTracks())) { - //Printf("No ESD track in the event"); - return; - } - fHistTrackPerEvent->Fill(fESD->GetNumberOfTracks()); - - // Track loop to fill a pT spectrum - for (Int_t iesdTracks = 0; iesdTracks < fESD->GetNumberOfTracks(); iesdTracks++) { - AliESDtrack* esdtrack = fESD->GetTrack(iesdTracks); - if (!esdtrack) { - Printf("ERROR: Could not receive track %d", iesdTracks); - continue; - } - } - - // Primary Vertex - Double_t PrimaryVtxPosition[3]; - Double_t PrimaryVtxCov[6]; - - const AliESDVertex *primaryVtx = fESD->GetPrimaryVertex(); - - primaryVtx->GetXYZ(PrimaryVtxPosition); - primaryVtx->GetCovMatrix(PrimaryVtxCov); - - AliAODVertex *primary = new AliAODVertex(PrimaryVtxPosition, PrimaryVtxCov, primaryVtx->GetChi2toNDF(), NULL, -1, AliAODVertex::kPrimary); - - fHistPrimaryVertexX->Fill(primary->GetX()); - fHistPrimaryVertexY->Fill(primary->GetY()); - fHistPrimaryVertexZ->Fill(primary->GetZ()); - - - // V0 variables: - // to get info from ESD files and fill AliAODVertex: - Float_t tdcaPosToPrimVertexXYZ[2], tdcaNegToPrimVertexXYZ[2]; // ..[0] = Impact parameter in XY plane and ..[1] = Impact parameter in Z - Double_t tdcaDaughterToPrimVertex[2]; // ..[0] = Pos and ..[1] = Neg - Double_t tdcaV0Daughters = 0, tdcaV0ToPrimVertex = 0; - Double_t tMomPos[3]; - Double_t tMomNeg[3]; - Double_t V0Position[3]; - Double_t V0Cov[6]; - - // to fill AliAODtrack: - Double_t TrackP[3]; - Double_t TrackPosition[3]; - Double_t TrackcovTr[21]; - Double_t Trackpid[10]; - - Int_t lIndexTrackPos = 0, lIndexTrackNeg = 0; - UInt_t lLabelTrackPos = 0, lLabelTrackNeg = 0; - Int_t lCheckPIdK0Short = 0, lCheckMcK0Short = 0; - Int_t lCheckPIdLambda = 0, lCheckMcLambda = 0; - Int_t lCheckPIdAntiLambda = 0, lCheckMcAntiLambda = 0; - - Double_t mcPosX = 0, mcPosY = 0, mcPosZ = 0; - Double_t rcPosX = 0, rcPosY = 0, rcPosZ = 0; - Double_t rcPosR = 0, mcPosR = 0; - Double_t cosPointAngle = 0; - Double_t deltaPos2 = 0; - Double_t deltaPos[3]; - - Int_t myStatus = 0; - Double_t pt = 0; - - AliAODTrack *myPosAodTrack = new AliAODTrack(); - AliAODTrack *myNegAodTrack = new AliAODTrack(); - AliAODVertex *myAODVertex = new AliAODVertex(); - AliAODv0 *myAODv0 = new AliAODv0(); - - // V0 loop - for (Int_t iV0 = 0; iV0 < fESD->GetNumberOfV0s(); iV0++) { - - AliESDv0 *v0 = fESD->GetV0(iV0); - if (!v0) continue; - myAODv0->ResetV0(); - - // AliAODVertex - v0->GetXYZ(V0Position[0], V0Position[1], V0Position[2]); - v0->GetPosCov(V0Cov); - myAODVertex->SetPosition(V0Position[0],V0Position[1],V0Position[2]); - myAODVertex->SetCovMatrix(V0Cov); - myAODVertex->SetChi2perNDF(v0->GetChi2V0()); - myAODVertex->SetID((Short_t)iV0); - myAODVertex->SetParent(primary); - myAODVertex->SetType(AliAODVertex::kV0); - - // AliAODtrack (V0 Daughters) - lIndexTrackPos = TMath::Abs(v0->GetPindex()); - lIndexTrackNeg = TMath::Abs(v0->GetNindex()); - AliESDtrack *TrackPos = fESD->GetTrack(lIndexTrackPos); - AliESDtrack *TrackNeg = fESD->GetTrack(lIndexTrackNeg); - if (!TrackPos || !TrackNeg) { - Printf("ERROR: Could not retreive one of the daughter track"); - continue; - } - lLabelTrackPos = (UInt_t)TMath::Abs(TrackPos->GetLabel()); - lLabelTrackNeg = (UInt_t)TMath::Abs(TrackNeg->GetLabel()); - - myPosAodTrack->SetID((Short_t)(TrackPos->GetID())); - myPosAodTrack->SetLabel(lLabelTrackPos); - TrackPos->GetPxPyPz(TrackP); - myPosAodTrack->SetP(TrackP); - TrackPos->GetXYZ(TrackPosition); - myPosAodTrack->SetPosition(TrackPosition,kFALSE); - TrackPos->GetCovarianceXYZPxPyPz(TrackcovTr); - myPosAodTrack->SetCovMatrix(TrackcovTr); - TrackPos->GetESDpid(Trackpid); - myPosAodTrack->SetPID(Trackpid); - myPosAodTrack->SetCharge((Short_t)(TrackPos->Charge())); - myPosAodTrack->SetITSClusterMap(TrackPos->GetITSClusterMap()); - myPosAodTrack->SetProdVertex(myAODVertex); - myPosAodTrack->SetUsedForVtxFit(kTRUE); - myPosAodTrack->SetUsedForPrimVtxFit(kFALSE); - myPosAodTrack->SetType(AliAODTrack::kSecondary); - myPosAodTrack->ConvertAliPIDtoAODPID(); - - myNegAodTrack->SetID((Short_t)(TrackNeg->GetID())); - myNegAodTrack->SetLabel(lLabelTrackNeg); - TrackNeg->GetPxPyPz(TrackP); - myNegAodTrack->SetP(TrackP); - TrackNeg->GetXYZ(TrackPosition); - myNegAodTrack->SetPosition(TrackPosition,kFALSE); - TrackNeg->GetCovarianceXYZPxPyPz(TrackcovTr); - myNegAodTrack->SetCovMatrix(TrackcovTr); - TrackNeg->GetESDpid(Trackpid); - myNegAodTrack->SetPID(Trackpid); - myNegAodTrack->SetCharge((Short_t)(TrackNeg->Charge())); - myNegAodTrack->SetITSClusterMap(TrackPos->GetITSClusterMap()); - myNegAodTrack->SetProdVertex(myAODVertex); - myNegAodTrack->SetUsedForVtxFit(kTRUE); - myNegAodTrack->SetUsedForPrimVtxFit(kFALSE); - myNegAodTrack->SetType(AliAODTrack::kSecondary); - myNegAodTrack->ConvertAliPIDtoAODPID(); - - myAODVertex->AddDaughter(myPosAodTrack); - myAODVertex->AddDaughter(myNegAodTrack); - - // filling myAODv0 - tdcaV0Daughters = v0->GetDcaV0Daughters(); - tdcaV0ToPrimVertex = v0->GetD(primary->GetX(),primary->GetY(),primary->GetZ()); - - if (TrackPos) TrackPos->GetImpactParameters(tdcaPosToPrimVertexXYZ[0],tdcaPosToPrimVertexXYZ[1]); - if (TrackNeg) TrackNeg->GetImpactParameters(tdcaNegToPrimVertexXYZ[0],tdcaNegToPrimVertexXYZ[1]); - tdcaDaughterToPrimVertex[0] = TMath::Sqrt(tdcaPosToPrimVertexXYZ[0]*tdcaPosToPrimVertexXYZ[0]+tdcaPosToPrimVertexXYZ[1]*tdcaPosToPrimVertexXYZ[1]); - tdcaDaughterToPrimVertex[1] = TMath::Sqrt(tdcaNegToPrimVertexXYZ[0]*tdcaNegToPrimVertexXYZ[0]+tdcaNegToPrimVertexXYZ[1]*tdcaNegToPrimVertexXYZ[1]); - - v0->GetPPxPyPz(tMomPos[0],tMomPos[1],tMomPos[2]); - v0->GetNPxPyPz(tMomNeg[0],tMomNeg[1],tMomNeg[2]); - - myAODv0->Fill(myAODVertex, tdcaV0Daughters, tdcaV0ToPrimVertex, tMomPos, tMomNeg, tdcaDaughterToPrimVertex); - - // Checking if the v0s is associated with a Monte Carlo particle - //AliMCParticle *lPartPos= mcEvent->GetTrack(lLabelTrackPos); - //AliMCParticle *lPartNeg= mcEvent->GetTrack(lLabelTrackNeg); - TParticle *lPartPos = stack->Particle(lLabelTrackPos); - TParticle *lPartNeg = stack->Particle(lLabelTrackNeg); - Int_t lPartPosMother = lPartPos->GetFirstMother(); - Int_t lPartNegMother = lPartNeg->GetFirstMother(); - - lCheckPIdK0Short = 0; lCheckMcK0Short = 0; - lCheckPIdLambda = 0; lCheckMcLambda = 0; - lCheckPIdAntiLambda = 0; lCheckMcAntiLambda = 0; - - if( (lPartPosMother==-1) || (lPartNegMother==-1) ) { - fHistMCDaughterTrack->Fill(1); - } - else if( (lPartPos->GetPdgCode()==+211) && - (lPartNeg->GetPdgCode()==-211) ) { - lCheckPIdK0Short = 1; - fHistMCDaughterTrack->Fill(3); - if ( (lPartPosMother==lPartNegMother) && - (stack->Particle(lPartPosMother)->GetPdgCode()==310) ){ - lCheckMcK0Short = 1; - mcPosX = lPartPos->Vx(); - mcPosY = lPartPos->Vy(); - mcPosZ = lPartPos->Vz(); - mcPosR = TMath::Sqrt(mcPosX*mcPosX+mcPosY*mcPosY); - } - } - else if( (lPartPos->GetPdgCode()==+2212) && - (lPartNeg->GetPdgCode()==-211) ) { - lCheckPIdLambda = 1; - fHistMCDaughterTrack->Fill(5); - if ( (lPartPosMother==lPartNegMother) && - (stack->Particle(lPartPosMother)->GetPdgCode()==3122) ){ - lCheckMcLambda = 1; - mcPosX = lPartPos->Vx(); - mcPosY = lPartPos->Vy(); - mcPosZ = lPartPos->Vz(); - mcPosR = TMath::Sqrt(mcPosX*mcPosX+mcPosY*mcPosY); - } - } - else if( (lPartPos->GetPdgCode()==211) && - (lPartNeg->GetPdgCode()==-2212) ) { - lCheckPIdAntiLambda = 1; - fHistMCDaughterTrack->Fill(7); - if ( (lPartPosMother==lPartNegMother) && - (stack->Particle(lPartPosMother)->GetPdgCode()==-3122) ){ - lCheckMcAntiLambda = 1; - mcPosX = lPartPos->Vx(); - mcPosY = lPartPos->Vy(); - mcPosZ = lPartPos->Vz(); - mcPosR = TMath::Sqrt(mcPosX*mcPosX+mcPosY*mcPosY); - } - } - - // Reconstructed V0 position and Cos pointing angle: - rcPosX = myAODv0->DecayVertexV0X(); - rcPosY = myAODv0->DecayVertexV0Y(); - rcPosZ = myAODv0->DecayVertexV0Z(); - rcPosR = TMath::Sqrt(rcPosX*rcPosX+rcPosY*rcPosY); - - deltaPos[0] = rcPosX - PrimaryVtxPosition[0]; - deltaPos[1] = rcPosY - PrimaryVtxPosition[1]; - deltaPos[2] = rcPosZ - PrimaryVtxPosition[2]; - deltaPos2 = deltaPos[0]*deltaPos[0] + deltaPos[1]*deltaPos[1] + deltaPos[2]*deltaPos[2]; - cosPointAngle = (deltaPos[0]*(myAODv0->MomV0X()) + deltaPos[1]*(myAODv0->MomV0Y()) + deltaPos[2]*(myAODv0->MomV0Z()))/TMath::Sqrt((myAODv0->Ptot2V0())*deltaPos2); - - - - myStatus = v0->GetOnFlyStatus(); - pt = TMath::Sqrt(myAODv0->Ptot2V0()); - - // filling histograms - fHistDcaPosToPrimVertex->Fill(myAODv0->DcaPosToPrimVertex(),myStatus); - fHistDcaNegToPrimVertex->Fill(myAODv0->DcaNegToPrimVertex(),myStatus); - fHistDcaPosToPrimVertexZoom->Fill(myAODv0->DcaPosToPrimVertex(),myStatus); - fHistDcaNegToPrimVertexZoom->Fill(myAODv0->DcaNegToPrimVertex(),myStatus); - fHistRadiusV0->Fill(myAODv0->RadiusV0(),myStatus); - fHistDecayLengthV0->Fill(myAODv0->DecayLengthV0(PrimaryVtxPosition),myStatus); - fHistDcaV0Daughters->Fill(myAODv0->DcaV0Daughters(),myStatus); - fHistChi2->Fill(myAODv0->Chi2V0(),myStatus); - fHistCosPointAngle->Fill(cosPointAngle,myStatus); - if (cosPointAngle >= 0.9) fHistCosPointAngleZoom->Fill(cosPointAngle,myStatus); - if (!myStatus) { - fHistPtVsYK0s->Fill(pt,myAODv0->RapK0Short()); - fHistPtVsYLambda->Fill(pt,myAODv0->RapLambda()); - fHistPtVsYAntiLambda->Fill(pt,myAODv0->RapLambda()); - fHistArmenterosPodolanski->Fill(myAODv0->AlphaV0(),myAODv0->PtArmV0()); - } - else { - fHistPtVsYK0sMI->Fill(pt,myAODv0->RapK0Short()); - fHistPtVsYLambdaMI->Fill(pt,myAODv0->RapLambda()); - fHistPtVsYAntiLambdaMI->Fill(pt,myAODv0->RapLambda()); - fHistArmenterosPodolanskiMI->Fill(myAODv0->AlphaV0(),myAODv0->PtArmV0()); - } - // K0s associated histograms: - if (TMath::Abs(myAODv0->RapK0Short()) < 1) { - switch (myStatus){ - case 0 : - fHistMassK0->Fill(myAODv0->MassK0Short()); - fHistMassVsRadiusK0->Fill(myAODv0->RadiusV0(),myAODv0->MassK0Short()); - if(lCheckPIdK0Short) fHistPidMcMassK0->Fill(myAODv0->MassK0Short()); - if(lCheckMcK0Short) { - fHistAsMcMassK0->Fill(myAODv0->MassK0Short()); - fHistAsMcPtK0->Fill(pt); - if (pt <= 1) fHistAsMcPtZoomK0->Fill(pt); - fHistAsMcResxK0->Fill(rcPosX-mcPosX); - fHistAsMcResyK0->Fill(rcPosY-mcPosY); - fHistAsMcReszK0->Fill(rcPosZ-mcPosZ); - fHistAsMcResrVsRadiusK0->Fill(rcPosR,rcPosR-mcPosR); - fHistAsMcReszVsRadiusK0->Fill(rcPosR,rcPosZ-mcPosZ); - } - break; - - case 1 : - fHistMassK0MI->Fill(myAODv0->MassK0Short()); - fHistMassVsRadiusK0MI->Fill(myAODv0->RadiusV0(),myAODv0->MassK0Short()); - if(lCheckPIdK0Short) fHistPidMcMassK0MI->Fill(myAODv0->MassK0Short()); - if(lCheckMcK0Short) { - fHistAsMcMassK0MI->Fill(myAODv0->MassK0Short()); - fHistAsMcPtK0MI->Fill(pt); - if (pt <= 1) fHistAsMcPtZoomK0MI->Fill(pt); - fHistAsMcResxK0MI->Fill(rcPosX-mcPosX); - fHistAsMcResyK0MI->Fill(rcPosY-mcPosY); - fHistAsMcReszK0MI->Fill(rcPosZ-mcPosZ); - fHistAsMcResrVsRadiusK0MI->Fill(rcPosR,rcPosR-mcPosR); - fHistAsMcReszVsRadiusK0MI->Fill(rcPosR,rcPosZ-mcPosZ); - } - break; - - } - } - // Lambda and AntiLambda associated histograms: - if (TMath::Abs(myAODv0->RapLambda()) < 1) { - switch (myStatus){ - case 0 : - fHistMassLambda->Fill(myAODv0->MassLambda()); - fHistMassAntiLambda->Fill(myAODv0->MassAntiLambda()); - fHistMassVsRadiusLambda->Fill(myAODv0->RadiusV0(),myAODv0->MassLambda()); - fHistMassVsRadiusAntiLambda->Fill(myAODv0->RadiusV0(),myAODv0->MassAntiLambda()); - if(lCheckPIdLambda) fHistPidMcMassLambda->Fill(myAODv0->MassLambda()); - else if (lCheckPIdAntiLambda) fHistPidMcMassAntiLambda->Fill(myAODv0->MassAntiLambda()); - if(lCheckMcLambda) { - fHistAsMcMassLambda->Fill(myAODv0->MassLambda()); - fHistAsMcPtLambda->Fill(pt); - if (pt <= 1) fHistAsMcPtZoomLambda->Fill(pt); - fHistAsMcMassVsRadiusLambda->Fill(myAODv0->RadiusV0(),myAODv0->MassLambda()); - fHistAsMcResxLambda->Fill(rcPosX-mcPosX); - fHistAsMcResyLambda->Fill(rcPosY-mcPosY); - fHistAsMcReszLambda->Fill(rcPosZ-mcPosZ); - fHistAsMcResrVsRadiusLambda->Fill(rcPosR,rcPosR-mcPosR); - fHistAsMcReszVsRadiusLambda->Fill(rcPosR,rcPosZ-mcPosZ); - - } - else if(lCheckMcAntiLambda) { - fHistAsMcMassAntiLambda->Fill(myAODv0->MassAntiLambda()); - fHistAsMcPtAntiLambda->Fill(pt); - fHistAsMcMassVsRadiusAntiLambda->Fill(myAODv0->RadiusV0(),myAODv0->MassAntiLambda()); - fHistAsMcResxAntiLambda->Fill(rcPosX-mcPosX); - fHistAsMcResyAntiLambda->Fill(rcPosY-mcPosY); - fHistAsMcReszAntiLambda->Fill(rcPosZ-mcPosZ); - fHistAsMcResrVsRadiusAntiLambda->Fill(rcPosR,rcPosR-mcPosR); - fHistAsMcReszVsRadiusAntiLambda->Fill(rcPosR,rcPosZ-mcPosZ); - } - break; - - case 1 : - fHistMassLambdaMI->Fill(myAODv0->MassLambda()); - fHistMassAntiLambdaMI->Fill(myAODv0->MassAntiLambda()); - fHistMassVsRadiusLambdaMI->Fill(myAODv0->RadiusV0(),myAODv0->MassLambda()); - fHistMassVsRadiusAntiLambdaMI->Fill(myAODv0->RadiusV0(),myAODv0->MassAntiLambda()); - if(lCheckPIdLambda) fHistPidMcMassLambdaMI->Fill(myAODv0->MassLambda()); - else if (lCheckPIdAntiLambda) fHistPidMcMassAntiLambdaMI->Fill(myAODv0->MassAntiLambda()); - if(lCheckMcLambda) { - fHistAsMcMassLambdaMI->Fill(myAODv0->MassLambda()); - fHistAsMcPtLambdaMI->Fill(pt); - fHistAsMcMassVsRadiusLambdaMI->Fill(myAODv0->RadiusV0(),myAODv0->MassLambda()); - fHistAsMcResxLambdaMI->Fill(rcPosX-mcPosX); - fHistAsMcResyLambdaMI->Fill(rcPosY-mcPosY); - fHistAsMcReszLambdaMI->Fill(rcPosZ-mcPosZ); - fHistAsMcResrVsRadiusLambdaMI->Fill(rcPosR,rcPosR-mcPosR); - fHistAsMcReszVsRadiusLambdaMI->Fill(rcPosR,rcPosZ-mcPosZ); - } - else if(lCheckMcAntiLambda) { - fHistAsMcMassAntiLambdaMI->Fill(myAODv0->MassAntiLambda()); - fHistAsMcPtAntiLambdaMI->Fill(pt); - fHistAsMcMassVsRadiusAntiLambdaMI->Fill(myAODv0->RadiusV0(),myAODv0->MassAntiLambda()); - fHistAsMcResxAntiLambdaMI->Fill(rcPosX-mcPosX); - fHistAsMcResyAntiLambdaMI->Fill(rcPosY-mcPosY); - fHistAsMcReszAntiLambdaMI->Fill(rcPosZ-mcPosZ); - fHistAsMcResrVsRadiusAntiLambdaMI->Fill(rcPosR,rcPosR-mcPosR); - fHistAsMcReszVsRadiusAntiLambdaMI->Fill(rcPosR,rcPosZ-mcPosZ); - } - break; - - } - } - - } // end V0 loop - - if (primary) delete primary; - if (myPosAodTrack) delete myPosAodTrack; - if (myNegAodTrack) delete myNegAodTrack; - //if (myAODVertex) delete myAODVertex; // don't !!! - if (myAODv0) delete myAODv0; - - - // Post output data - PostData(0, fListHist); -} - -//________________________________________________________________________ -void AliAnalysisTaskESDStrangeMC::Terminate(Option_t *) -{ - // Draw result to the screen - // Called once at the end of the query - - /* - fHistPtMC = dynamic_cast (((TList*)GetOutputData(0))->FindObject("h1PtMC")); - if (!fHistPtMC) { - Printf("ERROR: fHistPtMC not available"); - return; - } - - TCanvas *c1 = new TCanvas("AliAnalysisTaskESDStrangeMC","Pt MC",10,10,510,510); - c1->cd(1)->SetLogy(); - fHistPtMC->DrawCopy("E"); -*/ -} - -//---------------------------------------------------------------------------- - -Double_t myRap(Double_t rE, Double_t rPz) -{ - Double_t lRapidity = 1.e30; - if(rPz && rE && (rPz != rE) && (1.+(2./((rE/rPz)-1.))>0)) - lRapidity = 0.5*log(1.+(2./((rE/rPz)-1.))); - return lRapidity; - } - -//---------------------------------------------------------------------------- - diff --git a/PWG2/SPECTRA/AliAnalysisTaskESDStrangeMC.h b/PWG2/SPECTRA/AliAnalysisTaskESDStrangeMC.h deleted file mode 100644 index 63b7127dff7..00000000000 --- a/PWG2/SPECTRA/AliAnalysisTaskESDStrangeMC.h +++ /dev/null @@ -1,161 +0,0 @@ -#ifndef AliAnalysisTaskESDStrangeMC_cxx -#define AliAnalysisTaskESDStrangeMC_cxx - -// macro to study V0s, with Monte Carlo information access -// Author: H.Ricaud, Helene.Ricaud@IReS.in2p3.fr - -class TH1F; -class TH2F; -class TList; -class AliESDEvent; - -Double_t myRap(Double_t,Double_t); - -#include "AliAnalysisTask.h" - -class AliAnalysisTaskESDStrangeMC : public AliAnalysisTask { - public: - AliAnalysisTaskESDStrangeMC(const char *name = "AliAnalysisTaskESDStrangeMC"); - virtual ~AliAnalysisTaskESDStrangeMC() {} - - virtual void ConnectInputData(Option_t *); - virtual void CreateOutputObjects(); - virtual void Exec(Option_t *option); - virtual void Terminate(Option_t *); - - private: - AliESDEvent *fESD; //ESD object - TList *fListHist; - - // MC histograms - TH1F *fHistPtMC; //Pt spectrum - TH1F *fHistMCMultiplicity; - - TH2F *fHistMCPtVsYK0s; - TH2F *fHistMCPtVsYLambda; - TH2F *fHistMCPtVsYAntiLambda; - - // ESD histograms - TH1F *fHistTrackPerEvent; - TH1F *fHistMCDaughterTrack; - - TH1F *fHistPrimaryVertexX; - TH1F *fHistPrimaryVertexY; - TH1F *fHistPrimaryVertexZ; - - TH2F *fHistDcaPosToPrimVertex; - TH2F *fHistDcaNegToPrimVertex; - TH2F *fHistDcaPosToPrimVertexZoom; - TH2F *fHistDcaNegToPrimVertexZoom; - TH2F *fHistRadiusV0; - TH2F *fHistDecayLengthV0; - TH2F *fHistDcaV0Daughters; - TH2F *fHistChi2; - TH2F *fHistCosPointAngle; - TH2F *fHistCosPointAngleZoom; - TH2F *fHistPtVsYK0s; - TH2F *fHistPtVsYK0sMI; - TH2F *fHistPtVsYLambda; - TH2F *fHistPtVsYLambdaMI; - TH2F *fHistPtVsYAntiLambda; - TH2F *fHistPtVsYAntiLambdaMI; - - TH1F *fHistMassK0; - TH1F *fHistMassK0MI; - TH1F *fHistMassLambda; - TH1F *fHistMassLambdaMI; - TH1F *fHistMassAntiLambda; - TH1F *fHistMassAntiLambdaMI; - - TH2F *fHistMassVsRadiusK0; - TH2F *fHistMassVsRadiusK0MI; - TH2F *fHistMassVsRadiusLambda; - TH2F *fHistMassVsRadiusLambdaMI; - TH2F *fHistMassVsRadiusAntiLambda; - TH2F *fHistMassVsRadiusAntiLambdaMI; - - TH2F *fHistArmenterosPodolanski; - TH2F *fHistArmenterosPodolanskiMI; - - - // Associated particles histograms - TH1F *fHistAsMcPtK0; - TH1F *fHistAsMcPtK0MI; - TH1F *fHistAsMcPtLambda; - TH1F *fHistAsMcPtLambdaMI; - TH1F *fHistAsMcPtAntiLambda; - TH1F *fHistAsMcPtAntiLambdaMI; - TH1F *fHistAsMcPtZoomK0; - TH1F *fHistAsMcPtZoomK0MI; - TH1F *fHistAsMcPtZoomLambda; - TH1F *fHistAsMcPtZoomLambdaMI; - TH1F *fHistPidMcMassK0; - TH1F *fHistPidMcMassK0MI; - TH1F *fHistPidMcMassLambda; - TH1F *fHistPidMcMassLambdaMI; - TH1F *fHistPidMcMassAntiLambda; - TH1F *fHistPidMcMassAntiLambdaMI; - TH1F *fHistAsMcMassK0; - TH1F *fHistAsMcMassK0MI; - TH1F *fHistAsMcMassLambda; - TH1F *fHistAsMcMassLambdaMI; - TH1F *fHistAsMcMassAntiLambda; - TH1F *fHistAsMcMassAntiLambdaMI; - - TH2F *fHistAsMcMassVsRadiusK0; - TH2F *fHistAsMcMassVsRadiusK0MI; - TH2F *fHistAsMcMassVsRadiusLambda; - TH2F *fHistAsMcMassVsRadiusLambdaMI; - TH2F *fHistAsMcMassVsRadiusAntiLambda; - TH2F *fHistAsMcMassVsRadiusAntiLambdaMI; - - TH1F *fHistAsMcResxK0; - TH1F *fHistAsMcResyK0; - TH1F *fHistAsMcReszK0; - - TH2F *fHistAsMcResrVsRadiusK0; - TH2F *fHistAsMcReszVsRadiusK0; - - TH1F *fHistAsMcResxK0MI; - TH1F *fHistAsMcResyK0MI; - TH1F *fHistAsMcReszK0MI; - - TH2F *fHistAsMcResrVsRadiusK0MI; - TH2F *fHistAsMcReszVsRadiusK0MI; - - TH1F *fHistAsMcResxLambda; - TH1F *fHistAsMcResyLambda; - TH1F *fHistAsMcReszLambda; - - TH2F *fHistAsMcResrVsRadiusLambda; - TH2F *fHistAsMcReszVsRadiusLambda; - - TH1F *fHistAsMcResxLambdaMI; - TH1F *fHistAsMcResyLambdaMI; - TH1F *fHistAsMcReszLambdaMI; - - TH2F *fHistAsMcResrVsRadiusLambdaMI; - TH2F *fHistAsMcReszVsRadiusLambdaMI; - - TH1F *fHistAsMcResxAntiLambda; - TH1F *fHistAsMcResyAntiLambda; - TH1F *fHistAsMcReszAntiLambda; - - TH2F *fHistAsMcResrVsRadiusAntiLambda; - TH2F *fHistAsMcReszVsRadiusAntiLambda; - - TH1F *fHistAsMcResxAntiLambdaMI; - TH1F *fHistAsMcResyAntiLambdaMI; - TH1F *fHistAsMcReszAntiLambdaMI; - - TH2F *fHistAsMcResrVsRadiusAntiLambdaMI; - TH2F *fHistAsMcReszVsRadiusAntiLambdaMI; - - - AliAnalysisTaskESDStrangeMC(const AliAnalysisTaskESDStrangeMC&); - AliAnalysisTaskESDStrangeMC& operator=(const AliAnalysisTaskESDStrangeMC&); - - ClassDef(AliAnalysisTaskESDStrangeMC, 1); -}; - -#endif -- 2.43.0