ROOT logo
 /**************************************************************************
 * 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.                  *
 **************************************************************************/

/* $Id: AliAnalysisTaskLukeV0.cxx 46301 2011-01-06 14:25:27Z agheata $ */

/* AliAnalysisTaskLukeV0.cxx
 *
 * Task analysing lambda, antilambda & K0 spectra
 *
 * Based on tutorial example from offline pages
 * Edited by Arvinder Palaha
 * Adapted by Luke Hanratty
 * ------------------------*
 *
 */

#include "AliAnalysisTaskLukeV0.h"

#include "Riostream.h"
#include "TChain.h"
#include "TTree.h"
#include "TH1F.h"
#include "TH2F.h"
#include "TCanvas.h"
#include "TList.h"
#include "TPDGCode.h"

#include "AliAnalysisTaskSE.h"
#include "AliAnalysisManager.h"
#include "AliStack.h"
#include "AliESDtrackCuts.h"
#include "AliESDEvent.h"
#include "AliESDv0.h"
#include "AliESDInputHandler.h"
#include "AliAODEvent.h"
#include "AliMCEvent.h"
#include "AliMCVertex.h"
#include "AliPID.h"
#include "AliPIDResponse.h"

ClassImp(AliAnalysisTaskLukeV0)

//________________________________________________________________________
AliAnalysisTaskLukeV0::AliAnalysisTaskLukeV0() // All data members should be initialised here
   :AliAnalysisTaskSE(),
    fOutputList(0),
    fTrackCuts(0),
	fPIDResponse(0),
	fHistCosPA(0), 
	fHistDCAV0Daughters(0), 
	fHistDecayL(0), 
	fHistImpactxyN(0), 
	fHistImpactzN(0), 
	fHistImpactxyP(0), 
	fHistImpactzP(0), 
	fHistMCLambdacTau(0),
	fHistMCLambdaNotcTau(0),
	fHistMCLambdaDecayL(0),
	fHistMCLambdaNotDecayL(0),
	fHistMcNLambdaPrimary(0),
	fHistMcNLambda(0),
	fHistMcNAntilambda(0),
	fHistMcNKshort(0),
	fHistMK0(0), 
	fHistMLa(0), 
	fHistMLb(0), 
	fHistNLambda(0), 
	fHistNV0(0), 
	fHistPtV0(0), 
	fHistPVZ(0), 
	fHistTauLa(0), 
	fHistV0Z(0), 
	fHistZ(0),
	fHistBetheBlochTPCNeg(0), 
	fHistBetheBlochTPCPos(0), 
	fHistImpactxyImpactz(0), 
	fHistMcPMK0Pt(0),
	fHistMcPMLaPt(0),
	fHistMcPMLbPt(0),
	fHistMcV0MK0Pt(0),
	fHistMcV0MLaPt(0),
	fHistMcV0MLbPt(0),
	fHistMK0Pt(0), 
	fHistMLaPt(0), 
	fHistMLbPt(0), 
	fHistPtArm(0), 
        fHistPtV0Z(0),
	fHistRZ(0), 
	fHistXZ(0), 
	fHistYZ(0) // The last in the above list should not have a comma after it
{
    // Dummy constructor ALWAYS needed for I/O.
}

//________________________________________________________________________
AliAnalysisTaskLukeV0::AliAnalysisTaskLukeV0(const char *name) // All data members should be initialised here
   :AliAnalysisTaskSE(name),
	fOutputList(0),
	fTrackCuts(0),
	fPIDResponse(0),
	fHistCosPA(0), 
	fHistDCAV0Daughters(0), 
	fHistDecayL(0), 
	fHistImpactxyN(0), 
	fHistImpactzN(0), 
	fHistImpactxyP(0), 
	fHistImpactzP(0), 
	fHistMCLambdacTau(0),
	fHistMCLambdaNotcTau(0),
	fHistMCLambdaDecayL(0),
	fHistMCLambdaNotDecayL(0),
	fHistMcNLambdaPrimary(0),
	fHistMcNLambda(0),
	fHistMcNAntilambda(0),
	fHistMcNKshort(0),
	fHistMK0(0), 
	fHistMLa(0), 
	fHistMLb(0), 
	fHistNLambda(0), 
	fHistNV0(0), 
	fHistPtV0(0), 
	fHistPVZ(0), 
	fHistTauLa(0), 
	fHistV0Z(0), 
	fHistZ(0),
	fHistBetheBlochTPCNeg(0), 
	fHistBetheBlochTPCPos(0), 
	fHistImpactxyImpactz(0), 
	fHistMcPMK0Pt(0),
	fHistMcPMLaPt(0),
	fHistMcPMLbPt(0),
	fHistMcV0MK0Pt(0),
	fHistMcV0MLaPt(0),
	fHistMcV0MLbPt(0),
	fHistMK0Pt(0), 
	fHistMLaPt(0), 
	fHistMLbPt(0), 
	fHistPtArm(0),
        fHistPtV0Z(0),
	fHistRZ(0), 
	fHistXZ(0), 
	fHistYZ(0) // The last in the above list should not have a comma after it
{
    // Constructor
    // Define input and output slots here (never in the dummy constructor)
    // Input slot #0 works with a TChain - it is connected to the default input container
    // Output slot #1 writes into a TH1 container
    DefineOutput(1, TList::Class());                                            // for output list
}

//________________________________________________________________________
AliAnalysisTaskLukeV0::~AliAnalysisTaskLukeV0()
{
    // Destructor. Clean-up the output list, but not the histograms that are put inside
    // (the list is owner and will clean-up these histograms). Protect in PROOF case.
    if (fOutputList && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) {
        delete fOutputList;
    }
    if (fTrackCuts) delete fTrackCuts;
}

//________________________________________________________________________
void AliAnalysisTaskLukeV0::UserCreateOutputObjects()
{
    // Create histograms
    // Called once (on the worker node)
        
    fOutputList = new TList();
    fOutputList->SetOwner();  // IMPORTANT!
    
	fTrackCuts = new AliESDtrackCuts();	
	
	AliAnalysisManager *man=AliAnalysisManager::GetAnalysisManager();
	AliInputEventHandler* inputHandler = (AliInputEventHandler*) (man->GetInputEventHandler());
	fPIDResponse = inputHandler->GetPIDResponse();

	// lambda plot parameters
	int div = 96;
	float max = 1.2;
	float min = 1.08;
	
	// Create remaining histograms
	// TH1F first
	fHistCosPA = new	TH1F("fHistCosPA", "Cosine of Pointing Angle of V0s; Cos PA; N(v0s)",202,0.8,1.01);
	fHistDCAV0Daughters = new	TH1F("fHistDCAV0Daughters", "DCA between V0 daughters; DCA (cm); N V0s", 100, 0, 2);
	fHistDecayL = new	TH1F("fHistDecayL", "Distance between V0 and PV; Distance(cm); N(v0s)",200,-0.1,30);
	fHistImpactxyN = new	TH1F("fHistImpactxyN", "RSM DCA between negative particle and primary vertex in xy plane; RSM DCA (cm); N(v0s)",100,0,1);
	fHistImpactzN = new	TH1F("fHistImpactzN", "RSM DCA between negative particle and primary vertex in z direction; RSM DCA (cm); N(v0s)",100,0,1);
	fHistImpactxyP = new	TH1F("fHistImpactxyP", "RSM DCA between positive particle and primary vertex in xy plane; RSM DCA (cm); N(v0s)",100,0,1);
	fHistImpactzP = new	TH1F("fHistImpactzP", "RSM DCA between positive particle and primary vertex in z direction; RSM DCA (cm); N(v0s)",100,0,1);
	fHistMCLambdacTau = new	TH1F("fHistMCLambdacTau", "Lifetime under Lambda mass hypothesis of MC lambda; Lifetime(s); N(v0s)",200,0,100);
	fHistMCLambdaNotcTau = new	TH1F("fHistMCLambdaNotcTau", "Lifetime under Lambda mass hypothesis of MC lambda background; Lifetime(s); N(v0s)",200,0,100);
	fHistMCLambdaDecayL = new	TH1F("fHistMCLambdaDecayL", "Distance between V0 and PV of MC Lambda; Distance(cm); N(v0s)",200,-0.1,30);
	fHistMCLambdaNotDecayL = new	TH1F("fHistMCLambdaNotDecayL", "Distance between V0 and PV of MC Lambda background; Distance(cm); N(v0s)",200,-0.1,30);
	fHistMcNLambdaPrimary = new	TH1F("fHistMcNLambdaPrimary","Number of primary lambdas in MC; NLambdas; i",6,-0.25,2.25);
	fHistMcNLambda = new	TH1F("fHistMcNLambda","Number of lambdas in MC; NLambdas; i",31,-0.5,30);
	fHistMcNAntilambda = new	TH1F("fHistMcNAntilambda","Number of antilambdas in MC; NAntiLambdas; i",31,-0.5,30);
	fHistMcNKshort = new	TH1F("fHistMcNKshort","Number of K0s in MC; NKshort; i",31,-0.5,30);
	fHistMK0 = new	TH1F("fHistMK0","K0Short Mass; M(#pi^{+}#pi^{-}) (GeV/c^{2}); dN/dM (0.12 GeV/c^{2})^{-1}",140,0.414,0.582);
	fHistMLa = new	TH1F("fHistMLa","Lambda Mass; M(p#pi^{-}) (GeV/c^{2}); dN/dM (0.125 GeV/c^{2})^{-1}",div,min,max);
	fHistMLb = new	TH1F("fHistMLb","AntiLambda Mass; M(#bar{p}#pi^{+}) (GeV/c^{2}); dN/dM (0.125 GeV/c^{2})^{-1}",div,min,max);
	fHistNLambda = new	TH1F("fHistNLambda", "Number of lambda per event; N(lambda); N(events)",50,-0.5,49.5);
	fHistNV0 = new	TH1F("fHistNV0","V0 frequency distribution; Number of V0 Candidates",1000,0,100000);
	fHistPtV0 = new	TH1F("fHistPtV0","V0 P_{T}; P_{T} (GeV/c);dN/dP_{T} (GeV/c)^{-1}",40,0.,4.);
	fHistPVZ = new	TH1F("fHistPVZ","Z primary; Z (cm); Counts",100,-10,10);
	fHistTauLa = new	TH1F("fHistTauLa", "Lifetime under Lambda mass hypothesis; Lifetime(s); N(v0s)",200,0,100);
	fHistV0Z = new	TH1F("fHistV0Z","Z decay; Z (cm); Counts",100,-10,10);
	fHistZ = new	TH1F("fHistZ","Z decay - Z primary; Z (cm); Counts",100,-10,10);
	
	//TH2F follow
	fHistBetheBlochTPCNeg = new	TH2F("fHistBetheBlochTPCNeg","-dE/dX against Momentum for negative daughter from TPC; Log10 P (GeV); -dE/dx (keV/cm ?)",1000,-1,1,1000,0,200);
	fHistBetheBlochTPCPos = new	TH2F("fHistBetheBlochTPCPos","-dE/dX against Momentum for positive daughter from TPC; Log10 P (GeV); -dE/dx (keV/cm ?)",1000,-1,1,1000,0,200);
	fHistImpactxyImpactz = new	TH2F("fHistImpactxyImpactz", "RSM DCA between negative particle and primary vertex in xy plane; RSM DCA xy (cm); RSM DCA z (cm)",100,0,1,100,0,10);
	fHistMcPMK0Pt = new	TH2F("fHistMcPMK0Pt","Monte Carlo primary K0 Mass versus Pt; P_{perp} (GeV/c); K0 Mass (GeV/c^2)",200,0,10,140,0.414,0.582);
	fHistMcPMLaPt = new	TH2F("fHistMcPMLaPt","Monte Carlo primary (& sigma0) Lambda Mass versus Pt; P_{perp} (GeV/c); M(p#pi^{-}) (GeV/c^2)",200,0,10,96,1.08,1.2);
	fHistMcPMLbPt = new	TH2F("fHistMcPMLbPt","Monte Carlo primary (& sigma0) AntiLambda Mass versus Pt; P_{perp} (GeV/c); M(#bar{p}#pi^{+}) (GeV/c^2)",200,0,10,96,1.08,1.2);
	fHistMcV0MK0Pt = new	TH2F("fHistMcV0MK0Pt","Monte Carlo V0s passing cuts. K0 Mass versus Pt; P_{perp} (GeV/c); K0 Mass (GeV/c^2)",200,0,10,140,0.414,0.582);
	fHistMcV0MLaPt = new	TH2F("fHistMcV0MLaPt","Monte Carlo V0s passing cuts. Lambda Mass versus Pt; P_{perp} (GeV/c); Lambda Mass (GeV/c^2)",200,0,10,96,1.08,1.2);
	fHistMcV0MLbPt = new	TH2F("fHistMcV0MLbPt","Monte Carlo V0s passing cuts. Antilambda Mass versus Pt; P_{perp} (GeV/c); Antilambda Mass (GeV/c^2)",200,0,10,96,1.08,1.2);
	fHistMK0Pt = new	TH2F("fHistMK0Pt","K0 Mass versus Pt; P_{perp} (GeV/c); K0 Mass (GeV/c^2)",200,0,10,140,0.414,0.582);
	fHistMLaPt = new	TH2F("fHistMLaPt","Lambda Mass versus Pt; P_{perp} (GeV/c); M(p#pi^{-}) (GeV/c^2)",200,0,10,96,1.08,1.2);
	fHistMLbPt = new	TH2F("fHistMLbPt","AntiLambda Mass versus Pt; P_{perp} (GeV/c); M(#bar{p}#pi^{+}) (GeV/c^2)",200,0,10,96,1.08,1.2);
	fHistPtArm = new	TH2F("fHistPtArm","Podolanski-Armenteros Plot; #alpha; P_{perp} (GeV/c)",40,-1,1,80,0,0.5);
	fHistPtV0Z = new	TH2F("fHistPtV0Z","Pt of V0 vs Z position; Pt (GeV/c); Z (cm)",200,-0.1,1.9,200,-50,50);
	fHistRZ = new	TH2F("fHistRZ","R decay versus Z decay; Z (cm); R (cm)",100,-50,50,120,0,220);
	fHistXZ = new	TH2F("fHistXZ","X decay versus Z decay; Z (cm); X (cm)",100,-50,50,200,-200,200);
	fHistYZ = new	TH2F("fHistYZ","Y decay versus Z decay; Z (cm); Y (cm)",100,-50,50,200,-200,200);  
	
	
        
	// All histograms must be added to output list
        
	fOutputList->Add(fHistCosPA); 
	fOutputList->Add(fHistDCAV0Daughters); 
	fOutputList->Add(fHistDecayL); 
	fOutputList->Add(fHistImpactxyN); 
	fOutputList->Add(fHistImpactzN); 
	fOutputList->Add(fHistImpactxyP); 
	fOutputList->Add(fHistImpactzP); 
	fOutputList->Add(fHistMCLambdacTau);
	fOutputList->Add(fHistMCLambdaNotcTau);
	fOutputList->Add(fHistMCLambdaDecayL);
	fOutputList->Add(fHistMCLambdaNotDecayL);
	fOutputList->Add(fHistMcNLambdaPrimary);
	fOutputList->Add(fHistMcNLambda);
	fOutputList->Add(fHistMcNAntilambda);
	fOutputList->Add(fHistMcNKshort);
	fOutputList->Add(fHistMK0); 
	fOutputList->Add(fHistMLa); 
	fOutputList->Add(fHistMLb); 
	fOutputList->Add(fHistNLambda); 
	fOutputList->Add(fHistNV0); 
	fOutputList->Add(fHistPtV0); 
	fOutputList->Add(fHistPVZ); 
	fOutputList->Add(fHistTauLa); 
	fOutputList->Add(fHistV0Z); 
	fOutputList->Add(fHistZ);
	fOutputList->Add(fHistBetheBlochTPCNeg); 
	fOutputList->Add(fHistBetheBlochTPCPos); 
	fOutputList->Add(fHistImpactxyImpactz); 
	fOutputList->Add(fHistMcPMK0Pt);
	fOutputList->Add(fHistMcPMLaPt);
	fOutputList->Add(fHistMcPMLbPt);
	fOutputList->Add(fHistMcV0MK0Pt);
	fOutputList->Add(fHistMcV0MLaPt);
	fOutputList->Add(fHistMcV0MLbPt);
	fOutputList->Add(fHistMK0Pt); 
	fOutputList->Add(fHistMLaPt); 
	fOutputList->Add(fHistMLbPt); 
	fOutputList->Add(fHistPtArm); 
	fOutputList->Add(fHistRZ); 
	fOutputList->Add(fHistXZ); 
	fOutputList->Add(fHistYZ);
	
	
    PostData(1, fOutputList); // Post data for ALL output slots >0 here, to get at least an empty histogram
}

//________________________________________________________________________
void AliAnalysisTaskLukeV0::UserExec(Option_t *) 
{
    // Main loop
    // Called for each event
	
	// paramaters used for most cuts, to minimise editing
	double cutCosPa(0.998), cutcTau(2);
	double cutNImpact(-999), cutDCA(0.4);
	double cutBetheBloch(3);
	double cutMinNClustersTPC(70), cutMaxChi2PerClusterTPC(-999);
	double isMonteCarlo(true);
	double cutEta(0.8);
	
	//Track Cuts set here
	if(cutMinNClustersTPC != -999)
	{(fTrackCuts->SetMinNClustersTPC(int(cutMinNClustersTPC)));}
	if(cutMaxChi2PerClusterTPC != -999)
	{fTrackCuts->SetMaxChi2PerClusterTPC(cutMaxChi2PerClusterTPC);}
	fTrackCuts->SetAcceptKinkDaughters(kFALSE); 
	fTrackCuts->SetRequireTPCRefit(kTRUE);
	
        
    // Create pointer to reconstructed event

	AliVEvent *event = InputEvent();
	if (!event) { Printf("ERROR: Could not retrieve event"); return; }
	
	// create pointer to event
	AliESDEvent* fESD = dynamic_cast<AliESDEvent*>(event);
	if (!fESD) {
		AliError("Cannot get the ESD event");
		return;
	}

	/*********************************************************************/
	// MONTE CARLO SECTION
	// This section loops over all MC tracks

	int nLambdaMC = 0;
	int nAntilambdaMC = 0;
	int nKshortMC = 0;
	
	if(isMonteCarlo) 
	{

		// If the task accesses MC info, this can be done as in the commented block below:
		
		// Create pointer to reconstructed event
		AliMCEvent *mcEvent = MCEvent();
		if (!mcEvent) 
			{ 
				Printf("ERROR: Could not retrieve MC event"); 
				return; 
			}
		else
			{
				Printf("MC particles: %d", mcEvent->GetNumberOfTracks());
			}
			 
		// set up a stack for use in check for primary/stable particles
		AliStack* mcStack = mcEvent->Stack();
		if( !mcStack ) { Printf( "Stack not available"); return; }
		
		AliMCVertex *mcpv = (AliMCVertex *) mcEvent->GetPrimaryVertex();
		Double_t mcpvPos[3];
		if (mcpv != 0)
		{
			mcpv->GetXYZ(mcpvPos);
		}
		else 
		{
			Printf("ERROR: Could not resolve MC primary vertex");
			return;
		}
		
		//loop over all MC tracks
		for(Int_t iMCtrack = 0; iMCtrack < mcEvent->GetNumberOfTracks(); iMCtrack++)
		{
			
			//booleans to check if track is La, Lb, K0 and primary
			bool lambdaMC = false;
			bool antilambdaMC = false;
			bool kshortMC = false;
			bool isprimaryMC = false;
			
			AliMCParticle *mcPart = dynamic_cast<AliMCParticle *>(mcEvent->GetTrack(iMCtrack));
			if (!mcPart) continue;

			if(mcPart->PdgCode() == kLambda0)
			{
				lambdaMC = true;
				nLambdaMC++;
			}
			else if(mcPart->PdgCode() == kK0Short)
			{
				kshortMC = true;
				nKshortMC++;
			}
			else if(mcPart->PdgCode() == kLambda0Bar)
			{
				antilambdaMC = true;
				nAntilambdaMC++;
			}
			
			
			Int_t motherLabel = mcPart->GetMother();
			AliMCParticle *mcMother = dynamic_cast<AliMCParticle *>(mcEvent->GetTrack(motherLabel));
			double motherType = -1;
			if(motherLabel >= 0 && mcMother)
			{motherType = mcMother->PdgCode();}
			
			// this block of code is used to include primary Sigma0 decays as primary lambda/antilambda
			bool sigma0MC = false;
			if(motherType == 3212 || motherType == -3212)
				{
				if(mcEvent->IsPhysicalPrimary(motherLabel))
				   {sigma0MC = true;}
				}
				   
			
			if(mcEvent->IsPhysicalPrimary(iMCtrack) || sigma0MC)
			   {
				   isprimaryMC = true;
				   if(lambdaMC)
				   {
					   fHistMcNLambdaPrimary->Fill(1);
					   if(TMath::Abs(mcPart->Y())<=0.5)
						{fHistMcPMLaPt->Fill(mcPart->Pt(),mcPart->M());}
				   }
				   if(antilambdaMC)
				   {
					   if(TMath::Abs(mcPart->Y())<=0.5)
					   {fHistMcPMLbPt->Fill(mcPart->Pt(),mcPart->M());}
				   }
				   if(kshortMC)
				   {
					   if(TMath::Abs(mcPart->Y())<=0.5)
					   {fHistMcPMK0Pt->Fill(mcPart->Pt(),mcPart->M());}
				   }
				}
			else 
				{
					isprimaryMC = false;
					if(lambdaMC)
					{
						fHistMcNLambdaPrimary->Fill(2);
					}
				}
			
		}
		

	} 


	fHistMcNLambda->Fill(nLambdaMC);
	fHistMcNAntilambda->Fill(nAntilambdaMC);
	fHistMcNKshort->Fill(nKshortMC);
	
	//END OF MONTE CARLO SECTION
	/*********************************************************************/
	
			
	

	
    // Do some fast cuts first
    // check for good reconstructed vertex
    if(!(fESD->GetPrimaryVertex()->GetStatus())) return;
    // if vertex is from spd vertexZ, require more stringent cut
    if (fESD->GetPrimaryVertex()->IsFromVertexerZ()) {
        if (fESD->GetPrimaryVertex()->GetDispersion()>0.02 ||  fESD->GetPrimaryVertex()->GetZRes()>0.25 ) return; // bad vertex from VertexerZ
    }
     
	Double_t tV0Position[3];
	Double_t tPVPosition[3];
	Double_t radius;
	
	// physics selection
	UInt_t maskIsSelected = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
	if(!maskIsSelected)
    {
		//printf("Event failed physics selection\n");
		return;
    }
	
	//if additional initial cuts wanted, can set conditions here
	bool isCut = (fESD->GetNumberOfTracks()==0);
	if (isCut)
	{return;}
	
	//gets primary vertex for the event
	const AliESDVertex *kPv = ((AliESDEvent *)fESD)->GetPrimaryVertex();
	if ( kPv != 0 ) 
    {
		tPVPosition[0] = kPv->GetX();
		tPVPosition[1] = kPv->GetY();
		tPVPosition[2] = kPv->GetZ();
		if( tPVPosition[2] == 0. ) 
		{
			//printf("WARNING: Primary vertex a Z = 0, aborting\n");
			return;
		}
    }
	else 
    {
		//printf("ERROR: Primary vertex not found\n");
		return;
    }
	if( !kPv->GetStatus())
    {return;}
	
	

	
	int nLambda(0);
	int nV0s(0);
	
	// V0 loop - runs over every v0 in the event
	for (Int_t iV0 = 0; iV0 < fESD->GetNumberOfV0s(); iV0++) 
    {
		
		AliESDv0 *v0 = fESD->GetV0(iV0);
		if (!v0) 
		{
			printf("ERROR: Could not receive v0 %d\n", iV0);
			continue;
		}
		
		bool lambdaCandidate = true;
		bool antilambdaCandidate = true;
		bool kshortCandidate = true;
		
		// keep only events of interest for fHistMLa plots
		
        if (v0->GetEffMass(4,2) < 1.08 || v0->GetEffMass(4,2) > 1.2 || TMath::Abs(v0->Y(3122))>0.5 )
		{lambdaCandidate = false;}
        if (v0->GetEffMass(2,4) < 1.08 || v0->GetEffMass(2,4) > 1.2 || TMath::Abs(v0->Y(-3122))>0.5)
		{antilambdaCandidate = false;}
        if (v0->GetEffMass(2,2) < 0.414 || v0->GetEffMass(2,2) > 0.582 || TMath::Abs(v0->Y(310))>0.5)
		{kshortCandidate = false;}
		if (v0->GetOnFlyStatus())
		{continue;}
		
		if(!isMonteCarlo) 
		{if(lambdaCandidate == false && antilambdaCandidate == false && kshortCandidate == false)
		{continue;}}
		
		
		//gets details of the v0
		v0->GetXYZ(tV0Position[0],tV0Position[1],tV0Position[2]);
		radius = TMath::Sqrt(tV0Position[0]*tV0Position[0]+tV0Position[1]*tV0Position[1]);
		
		double decayLength = (sqrt((tV0Position[0]-tPVPosition[0])*(tV0Position[0]-tPVPosition[0])+(tV0Position[1]-tPVPosition[1])*(tV0Position[1]-tPVPosition[1])+(tV0Position[2]-tPVPosition[2])*(tV0Position[2]-tPVPosition[2])));
		double cTauLa = decayLength*(v0->GetEffMass(4,2))/(v0->P());
		double cTauLb = decayLength*(v0->GetEffMass(2,4))/(v0->P());
		double cTauK0 = decayLength*(v0->GetEffMass(2,2))/(v0->P());
		
		Int_t indexP, indexN;
		indexP = TMath::Abs(v0->GetPindex());
		AliESDtrack *posTrack = ((AliESDEvent*)fESD)->GetTrack(indexP);
		indexN = TMath::Abs(v0->GetNindex());
		AliESDtrack *negTrack = ((AliESDEvent*)fESD)->GetTrack(indexN);
		
		if(!posTrack || !negTrack)
		{continue;}
		
		double pTrackMomentum[3];
		double nTrackMomentum[3];
		double pV0x, pV0y, pV0z;
		posTrack->GetConstrainedPxPyPz(pTrackMomentum);
		negTrack->GetConstrainedPxPyPz(nTrackMomentum);
		v0->GetPxPyPz(pV0x, pV0y, pV0z);

		//const double kMLambda = 1.115;
		const double kMProton = 0.938;
		//const double kMPi     = 0.140;
		
		double pPos2 = sqrt(pTrackMomentum[0]*pTrackMomentum[0]+pTrackMomentum[1]*pTrackMomentum[1]+pTrackMomentum[2]*pTrackMomentum[2]);
		double pNeg2 = sqrt(nTrackMomentum[0]*nTrackMomentum[0]+nTrackMomentum[1]*nTrackMomentum[1]+nTrackMomentum[2]*nTrackMomentum[2]);
		//double pV02 = sqrt(pV0x*pV0x+pV0y*pV0y+pV0z*pV0z);
		
		//to prevent segfaults when ratios etc taken
		//if(pV02 < 0.01 || pPos2 <0.01 || pNeg2 <0.01)
		//{continue;}
		
		Float_t pImpactxy(0), pImpactz(0);
		Float_t nImpactxy(0), nImpactz(0);
		posTrack->GetImpactParameters(pImpactxy,pImpactz);
		negTrack->GetImpactParameters(nImpactxy,nImpactz);
		nImpactxy = sqrt((nImpactxy*nImpactxy));
		nImpactz  = sqrt((nImpactz *nImpactz ));
		pImpactxy = sqrt((pImpactxy*pImpactxy));
		pImpactz  = sqrt((pImpactz *pImpactz ));
		
		/*********************************************************************/
		// Cuts are implemented here.
		
		if(!(fTrackCuts->IsSelected(posTrack)) || !(fTrackCuts->IsSelected(negTrack)))
		{
			lambdaCandidate = false;
			antilambdaCandidate = false;
			kshortCandidate = false;
		}
		
		//extra cut to account for difference between p2 & p1 data
		if(nImpactxy < 0.1 || pImpactxy < 0.1)
		{
			lambdaCandidate = false;
			antilambdaCandidate = false;
			kshortCandidate = false;
		}
		
		//psuedorapidity cut
		if(cutEta != -999)
		{
			if(TMath::Abs(posTrack->Eta()) > cutEta || TMath::Abs(negTrack->Eta())  >cutEta)
			{
				lambdaCandidate = false;
				antilambdaCandidate = false;
				kshortCandidate = false;
			}
		}
		
		//pointing angle cut
		if(cutCosPa != -999)
		{
			if (v0->GetV0CosineOfPointingAngle(tPVPosition[0],tPVPosition[1],tPVPosition[2]) < cutCosPa)
			{
				lambdaCandidate = false;
				antilambdaCandidate = false;
				kshortCandidate = false;
			}
		}
		
		//lifetime cut
		if(cutcTau != -999)
		{
			if(cTauLa < cutcTau)
			{
				lambdaCandidate = false;
			}
			if(cTauLb < cutcTau)
			{
				antilambdaCandidate = false;
			}
			if(cTauK0 < cutcTau)
			{
				kshortCandidate = false;
			}
			
		}
		
		// Impact paramater cut (on neg particle)
		if(cutNImpact != -999)
		{
			if(nImpactxy < cutNImpact || nImpactz < cutNImpact)
			{
				lambdaCandidate = false;
			}
			if(pImpactxy < cutNImpact || pImpactz < cutNImpact)
			{
				antilambdaCandidate = false;
			}
		}
		

		// DCA between daughterscut
		if(cutDCA != -999)
		{
			if(v0->GetDcaV0Daughters() > cutDCA)
			{
				lambdaCandidate = false;
				antilambdaCandidate = false;
				kshortCandidate = false;
			}
		}
		
		// Bethe Bloch cut. Made sightly complicated as options for crude cuts still included. Should probably reduce to just 'official' cuts
		if(cutBetheBloch != -999)
		{ 
			if(posTrack->GetTPCsignal() <0 || negTrack->GetTPCsignal()<0)
			{continue;}
			
			if(lambdaCandidate)
			{
				if(cutBetheBloch > 0)
				{
				if(TMath::Abs(fPIDResponse->NumberOfSigmasTPC(posTrack, AliPID::kProton)) > cutBetheBloch )
				{lambdaCandidate = false;}
				if(TMath::Abs(fPIDResponse->NumberOfSigmasTPC(negTrack, AliPID::kPion)) > cutBetheBloch )
				{lambdaCandidate = false;}
				}
				
				if(cutBetheBloch == -4)  
				{				
				if(isMonteCarlo) 
					{
					double beta2 = TMath::Power((pPos2/TMath::Sqrt((pPos2*pPos2+0.9*0.9))),2);
					double gamma2 = 1.0/(1.0-beta2);
					if(posTrack->GetTPCsignal() < (2.0/beta2)*(TMath::Log(1e6*beta2*gamma2)-beta2))
					{lambdaCandidate = false;}
					}
				else 
					{ 
					double beta2 = TMath::Power((pPos2/TMath::Sqrt((pPos2*pPos2+kMProton*kMProton))),2);
					double gamma2 = 1.0/(1.0-beta2);
					if(posTrack->GetTPCsignal() < (2.3/beta2)*(TMath::Log(1e6*beta2*gamma2)-beta2))
					{lambdaCandidate = false;}
					}
				}
				
			}
			
			if(antilambdaCandidate)
			{
				if(cutBetheBloch > 0)
				{
					if(TMath::Abs(fPIDResponse->NumberOfSigmasTPC(negTrack, AliPID::kProton)) > cutBetheBloch )
					{antilambdaCandidate = false;}
					if(TMath::Abs(fPIDResponse->NumberOfSigmasTPC(posTrack, AliPID::kPion)) > cutBetheBloch )
					{antilambdaCandidate = false;}
				}
				
				if(cutBetheBloch == -4)  
				{ 
					if(isMonteCarlo) 
					{
						double beta2 = TMath::Power((pNeg2/TMath::Sqrt((pNeg2*pNeg2+0.9*0.9))),2);
						double gamma2 = 1.0/(1.0-beta2);
						if(negTrack->GetTPCsignal() < (2.0/beta2)*(TMath::Log(1e6*beta2*gamma2)-beta2))
						{antilambdaCandidate = false;}
					}
					else 
					{ 
						double beta2 = TMath::Power((pNeg2/TMath::Sqrt((pNeg2*pNeg2+0.9*0.9))),2);
						double gamma2 = 1.0/(1.0-beta2);
						if(negTrack->GetTPCsignal() < (2.3/beta2)*(TMath::Log(1e6*beta2*gamma2)-beta2))
						{antilambdaCandidate = false;}
					}
				}
				
			}
			
			if(kshortCandidate)
			{
				if(cutBetheBloch > 0)
				{
					if(TMath::Abs(fPIDResponse->NumberOfSigmasTPC(negTrack, AliPID::kPion)) > cutBetheBloch )
					{kshortCandidate = false;}
					if(TMath::Abs(fPIDResponse->NumberOfSigmasTPC(posTrack, AliPID::kPion)) > cutBetheBloch )
					{kshortCandidate = false;}
				}
				
				
				if(cutBetheBloch == -4)  
				{ 
					double par0 = 0.20;
					double par1 = 4.2;
					double par2 = 1000000;
					
					if(isMonteCarlo) 
					{ 
						double beta2 = TMath::Power((pNeg2/TMath::Sqrt((pNeg2*pNeg2+par0*par0))),2);
						double gamma2 = 1.0/(1.0-beta2);
						if(negTrack->GetTPCsignal() > (par1/beta2)*(TMath::Log(par2*beta2*gamma2)-beta2) && TMath::Log10(pNeg2) > -0.6)
						{kshortCandidate = false;}
						
						beta2 = TMath::Power((pPos2/TMath::Sqrt((pPos2*pPos2+par0*par0))),2);
						gamma2 = 1.0/(1.0-beta2);
						if(posTrack->GetTPCsignal() > (par1/beta2)*(TMath::Log(par2*beta2*gamma2)-beta2) && TMath::Log10(pNeg2) > -0.6)
						{kshortCandidate = false;}
					}
					else 
					{ 
						double beta2 = TMath::Power((pNeg2/TMath::Sqrt((pNeg2*pNeg2+par0*par0))),2);
						double gamma2 = 1.0/(1.0-beta2);
						if(negTrack->GetTPCsignal() > (par1/beta2)*(TMath::Log(par2*beta2*gamma2)-beta2) && TMath::Log10(pNeg2) > -0.6)
						{kshortCandidate = false;}
						
						beta2 = TMath::Power((pPos2/TMath::Sqrt((pPos2*pPos2+par0*par0))),2);
						gamma2 = 1.0/(1.0-beta2);
						if(posTrack->GetTPCsignal() > (par1/beta2)*(TMath::Log(par2*beta2*gamma2)-beta2) && TMath::Log10(pPos2) > -0.6)
						{kshortCandidate = false;}
					}
				}
				
			}
		}
		
		// Selection of random cuts which I've been playing with
		/*if(nImpactxy > 3 || pImpactxy > 2)
		 {				
		 lambdaCandidate = false;
		 }*/
		
		/*if(nImpactxy < 0.4 || pImpactxy < 0.4 || nImpactxy > 2.5 || pImpactxy >2.5)
		 {				
		 antilambdaCandidate = false;
		 }	*/
		
		if(decayLength > 15 )
		{lambdaCandidate = false;}
		
		// Cuts to look at just lowpt region of lambdas
		//if(v0->Pt() < 0.3 || v0->Pt() > 0.7 || !lambdaCandidate)
		//{continue;}
		
		// cuts to just look at signal/background region of lambda mass
		//if(!((v0->GetEffMass(4,2) >= 1.096 && v0->GetEffMass(4,2) < 1.106) || (v0->GetEffMass(4,2) >= 1.126 && v0->GetEffMass(4,2) < 1.136) ))
		//if(!(v0->GetEffMass(4,2) >= 1.106 && v0->GetEffMass(4,2) < 1.126 ))
		//{continue;}
		/*********************************************************************/

		/*********************************************************************/
		// MONTE CARLO SECTION 2
		// this section looks at the individual V0s
		
		bool mcLambdaCandidate = true;
		bool mcAntilambdaCandidate = true;
		bool mcK0Candidate = true;
		bool realParticle = true;
		
		if(isMonteCarlo) 
		{
			
			AliMCEvent *mcEvent = MCEvent();
			AliStack* mcStack = mcEvent->Stack();
			if( !mcStack ) { Printf( "Stack not available"); return; }
			
			TParticle *negParticle = mcStack->Particle( TMath::Abs(negTrack->GetLabel())); 
			TParticle *posParticle = mcStack->Particle( TMath::Abs(posTrack->GetLabel())); 
			
			Int_t negParticleMotherLabel = negParticle->GetFirstMother();
			Int_t posParticleMotherLabel = posParticle->GetFirstMother();
			
			if( negParticleMotherLabel == -1 || posParticleMotherLabel == -1)
			{
			realParticle = false;
			mcLambdaCandidate = false;
			mcAntilambdaCandidate = false;
			mcK0Candidate  =false;
			}

			if( negParticleMotherLabel != posParticleMotherLabel)
			{
				mcLambdaCandidate = false;
				mcAntilambdaCandidate = false;
				mcK0Candidate  =false;
			}
			
			if(realParticle == true)
			{
				AliMCParticle *mcPart2 = dynamic_cast<AliMCParticle *>(mcEvent->GetTrack(negParticleMotherLabel));
				if (mcPart2) {

				if(mcPart2->PdgCode() != kLambda0)
					{mcLambdaCandidate = false;}
				if(mcPart2->PdgCode() != kLambda0Bar)
					{mcAntilambdaCandidate = false;}
				if(mcPart2->PdgCode() != kK0Short)
					{mcK0Candidate  =false;}

				if(mcLambdaCandidate && lambdaCandidate)
				{
					fHistMcV0MLaPt->Fill(v0->Pt(),v0->GetEffMass(4,2)); 
				}
				if(mcAntilambdaCandidate && antilambdaCandidate)
				{
					fHistMcV0MLbPt->Fill(v0->Pt(),v0->GetEffMass(2,4));
				}
				if(mcK0Candidate && kshortCandidate)
				{
					fHistMcV0MK0Pt->Fill(v0->Pt(),v0->GetEffMass(2,2));
				}
				}
			}

			if(mcLambdaCandidate && lambdaCandidate)
			{
				fHistMCLambdacTau->Fill(cTauLa);
				fHistMCLambdaDecayL->Fill(decayLength);
			}
			if(!mcLambdaCandidate && lambdaCandidate)
			{
			fHistMCLambdaNotcTau->Fill(cTauLa);
			fHistMCLambdaNotDecayL->Fill(decayLength);
			}
					
			}
		
	
		// END OF MONTE CARLO SECTION 2
		/*********************************************************************/

		//remove all non-candidates
		if(lambdaCandidate == false && antilambdaCandidate == false && kshortCandidate == false)
		{continue;}
		
		
		//count number of valid v0s
		nV0s+=1;
			
		/*********************************************************************/
		//This section fills histograms
		
		fHistDCAV0Daughters->Fill(v0->GetDcaV0Daughters());
		fHistCosPA->Fill(v0->GetV0CosineOfPointingAngle(tPVPosition[0],tPVPosition[1],tPVPosition[2]));
		fHistDecayL->Fill(decayLength);
		fHistTauLa->Fill(cTauLa);
		
		fHistBetheBlochTPCPos->Fill(TMath::Log10(pPos2),posTrack->GetTPCsignal());
		fHistBetheBlochTPCNeg->Fill(TMath::Log10(pNeg2),negTrack->GetTPCsignal());

		fHistImpactxyN->Fill(nImpactxy);
		fHistImpactzN->Fill(nImpactz);
		fHistImpactxyP->Fill(pImpactxy);
		fHistImpactzP->Fill(pImpactz);
		
		fHistImpactxyImpactz->Fill(nImpactxy,nImpactz);
		
		fHistV0Z->Fill(tV0Position[2]);
		fHistZ->Fill(tV0Position[2]-tPVPosition[2]);
	
		fHistRZ->Fill(tV0Position[2],radius);
		fHistPtV0Z->Fill(v0->Pt(),tV0Position[2]);
		
		fHistPtArm->Fill(v0->AlphaV0(),v0->PtArmV0());
		fHistXZ->Fill(tV0Position[2],tV0Position[0]);
		fHistYZ->Fill(tV0Position[2],tV0Position[1]);
		fHistPtV0->Fill(v0->Pt());
		
		//effective mass histograms
		
		//sets assumed particle type of pos/neg daughters. 
		// 0 = electron, 1 = Muon, 2 = pion, 3 = kaon, 4 = proton.
		int dPos = 0;
		int dNeg = 0;
		
		//    v0->ChangeMassHypothesis(kLambda0);
		dPos = 4;
		dNeg = 2;
		if(v0->GetEffMass(dPos,dNeg) > 1.11 && v0->GetEffMass(dPos,dNeg) < 1.13)
		{
			if(!(v0->GetOnFlyStatus()))
			{
				nLambda++;
			}
		}
		if(lambdaCandidate)
		{
			fHistMLa->Fill(v0->GetEffMass(dPos,dNeg));  
			fHistMLaPt->Fill(v0->Pt(),v0->GetEffMass(dPos,dNeg));   
		}
		
		//    v0->ChangeMassHypothesis(kK0Short);
		dPos = 2;
		dNeg = 2;
		if(kshortCandidate)
		{
			fHistMK0->Fill(v0->GetEffMass(dPos,dNeg));
			fHistMK0Pt->Fill(v0->Pt(),v0->GetEffMass(dPos,dNeg));
		}
		//    v0->ChangeMassHypothesis(kLambda0Bar);
		dPos = 2;
		dNeg = 4;
		if(antilambdaCandidate)
		{
			fHistMLb->Fill(v0->GetEffMass(dPos,dNeg));
			fHistMLbPt->Fill(v0->Pt(),v0->GetEffMass(dPos,dNeg));
		}
				
    }
	
	
	fHistPVZ->Fill(tPVPosition[2]);
	fHistNV0->Fill(nV0s);
	fHistNLambda->Fill(nLambda);	
	
	// NEW HISTO should be filled before this point, as PostData puts the
    // information for this iteration of the UserExec in the container
	PostData(1, fOutputList);
}


//________________________________________________________________________
void AliAnalysisTaskLukeV0::Terminate(Option_t *) 
{
    // Draw result to screen, or perform fitting, normalizations
    // Called once at the end of the query
        
    fOutputList = dynamic_cast<TList*> (GetOutputData(1));
    if(!fOutputList) { Printf("ERROR: could not retrieve TList fOutputList"); return; }
      
 }
 AliAnalysisTaskLukeV0.cxx:1
 AliAnalysisTaskLukeV0.cxx:2
 AliAnalysisTaskLukeV0.cxx:3
 AliAnalysisTaskLukeV0.cxx:4
 AliAnalysisTaskLukeV0.cxx:5
 AliAnalysisTaskLukeV0.cxx:6
 AliAnalysisTaskLukeV0.cxx:7
 AliAnalysisTaskLukeV0.cxx:8
 AliAnalysisTaskLukeV0.cxx:9
 AliAnalysisTaskLukeV0.cxx:10
 AliAnalysisTaskLukeV0.cxx:11
 AliAnalysisTaskLukeV0.cxx:12
 AliAnalysisTaskLukeV0.cxx:13
 AliAnalysisTaskLukeV0.cxx:14
 AliAnalysisTaskLukeV0.cxx:15
 AliAnalysisTaskLukeV0.cxx:16
 AliAnalysisTaskLukeV0.cxx:17
 AliAnalysisTaskLukeV0.cxx:18
 AliAnalysisTaskLukeV0.cxx:19
 AliAnalysisTaskLukeV0.cxx:20
 AliAnalysisTaskLukeV0.cxx:21
 AliAnalysisTaskLukeV0.cxx:22
 AliAnalysisTaskLukeV0.cxx:23
 AliAnalysisTaskLukeV0.cxx:24
 AliAnalysisTaskLukeV0.cxx:25
 AliAnalysisTaskLukeV0.cxx:26
 AliAnalysisTaskLukeV0.cxx:27
 AliAnalysisTaskLukeV0.cxx:28
 AliAnalysisTaskLukeV0.cxx:29
 AliAnalysisTaskLukeV0.cxx:30
 AliAnalysisTaskLukeV0.cxx:31
 AliAnalysisTaskLukeV0.cxx:32
 AliAnalysisTaskLukeV0.cxx:33
 AliAnalysisTaskLukeV0.cxx:34
 AliAnalysisTaskLukeV0.cxx:35
 AliAnalysisTaskLukeV0.cxx:36
 AliAnalysisTaskLukeV0.cxx:37
 AliAnalysisTaskLukeV0.cxx:38
 AliAnalysisTaskLukeV0.cxx:39
 AliAnalysisTaskLukeV0.cxx:40
 AliAnalysisTaskLukeV0.cxx:41
 AliAnalysisTaskLukeV0.cxx:42
 AliAnalysisTaskLukeV0.cxx:43
 AliAnalysisTaskLukeV0.cxx:44
 AliAnalysisTaskLukeV0.cxx:45
 AliAnalysisTaskLukeV0.cxx:46
 AliAnalysisTaskLukeV0.cxx:47
 AliAnalysisTaskLukeV0.cxx:48
 AliAnalysisTaskLukeV0.cxx:49
 AliAnalysisTaskLukeV0.cxx:50
 AliAnalysisTaskLukeV0.cxx:51
 AliAnalysisTaskLukeV0.cxx:52
 AliAnalysisTaskLukeV0.cxx:53
 AliAnalysisTaskLukeV0.cxx:54
 AliAnalysisTaskLukeV0.cxx:55
 AliAnalysisTaskLukeV0.cxx:56
 AliAnalysisTaskLukeV0.cxx:57
 AliAnalysisTaskLukeV0.cxx:58
 AliAnalysisTaskLukeV0.cxx:59
 AliAnalysisTaskLukeV0.cxx:60
 AliAnalysisTaskLukeV0.cxx:61
 AliAnalysisTaskLukeV0.cxx:62
 AliAnalysisTaskLukeV0.cxx:63
 AliAnalysisTaskLukeV0.cxx:64
 AliAnalysisTaskLukeV0.cxx:65
 AliAnalysisTaskLukeV0.cxx:66
 AliAnalysisTaskLukeV0.cxx:67
 AliAnalysisTaskLukeV0.cxx:68
 AliAnalysisTaskLukeV0.cxx:69
 AliAnalysisTaskLukeV0.cxx:70
 AliAnalysisTaskLukeV0.cxx:71
 AliAnalysisTaskLukeV0.cxx:72
 AliAnalysisTaskLukeV0.cxx:73
 AliAnalysisTaskLukeV0.cxx:74
 AliAnalysisTaskLukeV0.cxx:75
 AliAnalysisTaskLukeV0.cxx:76
 AliAnalysisTaskLukeV0.cxx:77
 AliAnalysisTaskLukeV0.cxx:78
 AliAnalysisTaskLukeV0.cxx:79
 AliAnalysisTaskLukeV0.cxx:80
 AliAnalysisTaskLukeV0.cxx:81
 AliAnalysisTaskLukeV0.cxx:82
 AliAnalysisTaskLukeV0.cxx:83
 AliAnalysisTaskLukeV0.cxx:84
 AliAnalysisTaskLukeV0.cxx:85
 AliAnalysisTaskLukeV0.cxx:86
 AliAnalysisTaskLukeV0.cxx:87
 AliAnalysisTaskLukeV0.cxx:88
 AliAnalysisTaskLukeV0.cxx:89
 AliAnalysisTaskLukeV0.cxx:90
 AliAnalysisTaskLukeV0.cxx:91
 AliAnalysisTaskLukeV0.cxx:92
 AliAnalysisTaskLukeV0.cxx:93
 AliAnalysisTaskLukeV0.cxx:94
 AliAnalysisTaskLukeV0.cxx:95
 AliAnalysisTaskLukeV0.cxx:96
 AliAnalysisTaskLukeV0.cxx:97
 AliAnalysisTaskLukeV0.cxx:98
 AliAnalysisTaskLukeV0.cxx:99
 AliAnalysisTaskLukeV0.cxx:100
 AliAnalysisTaskLukeV0.cxx:101
 AliAnalysisTaskLukeV0.cxx:102
 AliAnalysisTaskLukeV0.cxx:103
 AliAnalysisTaskLukeV0.cxx:104
 AliAnalysisTaskLukeV0.cxx:105
 AliAnalysisTaskLukeV0.cxx:106
 AliAnalysisTaskLukeV0.cxx:107
 AliAnalysisTaskLukeV0.cxx:108
 AliAnalysisTaskLukeV0.cxx:109
 AliAnalysisTaskLukeV0.cxx:110
 AliAnalysisTaskLukeV0.cxx:111
 AliAnalysisTaskLukeV0.cxx:112
 AliAnalysisTaskLukeV0.cxx:113
 AliAnalysisTaskLukeV0.cxx:114
 AliAnalysisTaskLukeV0.cxx:115
 AliAnalysisTaskLukeV0.cxx:116
 AliAnalysisTaskLukeV0.cxx:117
 AliAnalysisTaskLukeV0.cxx:118
 AliAnalysisTaskLukeV0.cxx:119
 AliAnalysisTaskLukeV0.cxx:120
 AliAnalysisTaskLukeV0.cxx:121
 AliAnalysisTaskLukeV0.cxx:122
 AliAnalysisTaskLukeV0.cxx:123
 AliAnalysisTaskLukeV0.cxx:124
 AliAnalysisTaskLukeV0.cxx:125
 AliAnalysisTaskLukeV0.cxx:126
 AliAnalysisTaskLukeV0.cxx:127
 AliAnalysisTaskLukeV0.cxx:128
 AliAnalysisTaskLukeV0.cxx:129
 AliAnalysisTaskLukeV0.cxx:130
 AliAnalysisTaskLukeV0.cxx:131
 AliAnalysisTaskLukeV0.cxx:132
 AliAnalysisTaskLukeV0.cxx:133
 AliAnalysisTaskLukeV0.cxx:134
 AliAnalysisTaskLukeV0.cxx:135
 AliAnalysisTaskLukeV0.cxx:136
 AliAnalysisTaskLukeV0.cxx:137
 AliAnalysisTaskLukeV0.cxx:138
 AliAnalysisTaskLukeV0.cxx:139
 AliAnalysisTaskLukeV0.cxx:140
 AliAnalysisTaskLukeV0.cxx:141
 AliAnalysisTaskLukeV0.cxx:142
 AliAnalysisTaskLukeV0.cxx:143
 AliAnalysisTaskLukeV0.cxx:144
 AliAnalysisTaskLukeV0.cxx:145
 AliAnalysisTaskLukeV0.cxx:146
 AliAnalysisTaskLukeV0.cxx:147
 AliAnalysisTaskLukeV0.cxx:148
 AliAnalysisTaskLukeV0.cxx:149
 AliAnalysisTaskLukeV0.cxx:150
 AliAnalysisTaskLukeV0.cxx:151
 AliAnalysisTaskLukeV0.cxx:152
 AliAnalysisTaskLukeV0.cxx:153
 AliAnalysisTaskLukeV0.cxx:154
 AliAnalysisTaskLukeV0.cxx:155
 AliAnalysisTaskLukeV0.cxx:156
 AliAnalysisTaskLukeV0.cxx:157
 AliAnalysisTaskLukeV0.cxx:158
 AliAnalysisTaskLukeV0.cxx:159
 AliAnalysisTaskLukeV0.cxx:160
 AliAnalysisTaskLukeV0.cxx:161
 AliAnalysisTaskLukeV0.cxx:162
 AliAnalysisTaskLukeV0.cxx:163
 AliAnalysisTaskLukeV0.cxx:164
 AliAnalysisTaskLukeV0.cxx:165
 AliAnalysisTaskLukeV0.cxx:166
 AliAnalysisTaskLukeV0.cxx:167
 AliAnalysisTaskLukeV0.cxx:168
 AliAnalysisTaskLukeV0.cxx:169
 AliAnalysisTaskLukeV0.cxx:170
 AliAnalysisTaskLukeV0.cxx:171
 AliAnalysisTaskLukeV0.cxx:172
 AliAnalysisTaskLukeV0.cxx:173
 AliAnalysisTaskLukeV0.cxx:174
 AliAnalysisTaskLukeV0.cxx:175
 AliAnalysisTaskLukeV0.cxx:176
 AliAnalysisTaskLukeV0.cxx:177
 AliAnalysisTaskLukeV0.cxx:178
 AliAnalysisTaskLukeV0.cxx:179
 AliAnalysisTaskLukeV0.cxx:180
 AliAnalysisTaskLukeV0.cxx:181
 AliAnalysisTaskLukeV0.cxx:182
 AliAnalysisTaskLukeV0.cxx:183
 AliAnalysisTaskLukeV0.cxx:184
 AliAnalysisTaskLukeV0.cxx:185
 AliAnalysisTaskLukeV0.cxx:186
 AliAnalysisTaskLukeV0.cxx:187
 AliAnalysisTaskLukeV0.cxx:188
 AliAnalysisTaskLukeV0.cxx:189
 AliAnalysisTaskLukeV0.cxx:190
 AliAnalysisTaskLukeV0.cxx:191
 AliAnalysisTaskLukeV0.cxx:192
 AliAnalysisTaskLukeV0.cxx:193
 AliAnalysisTaskLukeV0.cxx:194
 AliAnalysisTaskLukeV0.cxx:195
 AliAnalysisTaskLukeV0.cxx:196
 AliAnalysisTaskLukeV0.cxx:197
 AliAnalysisTaskLukeV0.cxx:198
 AliAnalysisTaskLukeV0.cxx:199
 AliAnalysisTaskLukeV0.cxx:200
 AliAnalysisTaskLukeV0.cxx:201
 AliAnalysisTaskLukeV0.cxx:202
 AliAnalysisTaskLukeV0.cxx:203
 AliAnalysisTaskLukeV0.cxx:204
 AliAnalysisTaskLukeV0.cxx:205
 AliAnalysisTaskLukeV0.cxx:206
 AliAnalysisTaskLukeV0.cxx:207
 AliAnalysisTaskLukeV0.cxx:208
 AliAnalysisTaskLukeV0.cxx:209
 AliAnalysisTaskLukeV0.cxx:210
 AliAnalysisTaskLukeV0.cxx:211
 AliAnalysisTaskLukeV0.cxx:212
 AliAnalysisTaskLukeV0.cxx:213
 AliAnalysisTaskLukeV0.cxx:214
 AliAnalysisTaskLukeV0.cxx:215
 AliAnalysisTaskLukeV0.cxx:216
 AliAnalysisTaskLukeV0.cxx:217
 AliAnalysisTaskLukeV0.cxx:218
 AliAnalysisTaskLukeV0.cxx:219
 AliAnalysisTaskLukeV0.cxx:220
 AliAnalysisTaskLukeV0.cxx:221
 AliAnalysisTaskLukeV0.cxx:222
 AliAnalysisTaskLukeV0.cxx:223
 AliAnalysisTaskLukeV0.cxx:224
 AliAnalysisTaskLukeV0.cxx:225
 AliAnalysisTaskLukeV0.cxx:226
 AliAnalysisTaskLukeV0.cxx:227
 AliAnalysisTaskLukeV0.cxx:228
 AliAnalysisTaskLukeV0.cxx:229
 AliAnalysisTaskLukeV0.cxx:230
 AliAnalysisTaskLukeV0.cxx:231
 AliAnalysisTaskLukeV0.cxx:232
 AliAnalysisTaskLukeV0.cxx:233
 AliAnalysisTaskLukeV0.cxx:234
 AliAnalysisTaskLukeV0.cxx:235
 AliAnalysisTaskLukeV0.cxx:236
 AliAnalysisTaskLukeV0.cxx:237
 AliAnalysisTaskLukeV0.cxx:238
 AliAnalysisTaskLukeV0.cxx:239
 AliAnalysisTaskLukeV0.cxx:240
 AliAnalysisTaskLukeV0.cxx:241
 AliAnalysisTaskLukeV0.cxx:242
 AliAnalysisTaskLukeV0.cxx:243
 AliAnalysisTaskLukeV0.cxx:244
 AliAnalysisTaskLukeV0.cxx:245
 AliAnalysisTaskLukeV0.cxx:246
 AliAnalysisTaskLukeV0.cxx:247
 AliAnalysisTaskLukeV0.cxx:248
 AliAnalysisTaskLukeV0.cxx:249
 AliAnalysisTaskLukeV0.cxx:250
 AliAnalysisTaskLukeV0.cxx:251
 AliAnalysisTaskLukeV0.cxx:252
 AliAnalysisTaskLukeV0.cxx:253
 AliAnalysisTaskLukeV0.cxx:254
 AliAnalysisTaskLukeV0.cxx:255
 AliAnalysisTaskLukeV0.cxx:256
 AliAnalysisTaskLukeV0.cxx:257
 AliAnalysisTaskLukeV0.cxx:258
 AliAnalysisTaskLukeV0.cxx:259
 AliAnalysisTaskLukeV0.cxx:260
 AliAnalysisTaskLukeV0.cxx:261
 AliAnalysisTaskLukeV0.cxx:262
 AliAnalysisTaskLukeV0.cxx:263
 AliAnalysisTaskLukeV0.cxx:264
 AliAnalysisTaskLukeV0.cxx:265
 AliAnalysisTaskLukeV0.cxx:266
 AliAnalysisTaskLukeV0.cxx:267
 AliAnalysisTaskLukeV0.cxx:268
 AliAnalysisTaskLukeV0.cxx:269
 AliAnalysisTaskLukeV0.cxx:270
 AliAnalysisTaskLukeV0.cxx:271
 AliAnalysisTaskLukeV0.cxx:272
 AliAnalysisTaskLukeV0.cxx:273
 AliAnalysisTaskLukeV0.cxx:274
 AliAnalysisTaskLukeV0.cxx:275
 AliAnalysisTaskLukeV0.cxx:276
 AliAnalysisTaskLukeV0.cxx:277
 AliAnalysisTaskLukeV0.cxx:278
 AliAnalysisTaskLukeV0.cxx:279
 AliAnalysisTaskLukeV0.cxx:280
 AliAnalysisTaskLukeV0.cxx:281
 AliAnalysisTaskLukeV0.cxx:282
 AliAnalysisTaskLukeV0.cxx:283
 AliAnalysisTaskLukeV0.cxx:284
 AliAnalysisTaskLukeV0.cxx:285
 AliAnalysisTaskLukeV0.cxx:286
 AliAnalysisTaskLukeV0.cxx:287
 AliAnalysisTaskLukeV0.cxx:288
 AliAnalysisTaskLukeV0.cxx:289
 AliAnalysisTaskLukeV0.cxx:290
 AliAnalysisTaskLukeV0.cxx:291
 AliAnalysisTaskLukeV0.cxx:292
 AliAnalysisTaskLukeV0.cxx:293
 AliAnalysisTaskLukeV0.cxx:294
 AliAnalysisTaskLukeV0.cxx:295
 AliAnalysisTaskLukeV0.cxx:296
 AliAnalysisTaskLukeV0.cxx:297
 AliAnalysisTaskLukeV0.cxx:298
 AliAnalysisTaskLukeV0.cxx:299
 AliAnalysisTaskLukeV0.cxx:300
 AliAnalysisTaskLukeV0.cxx:301
 AliAnalysisTaskLukeV0.cxx:302
 AliAnalysisTaskLukeV0.cxx:303
 AliAnalysisTaskLukeV0.cxx:304
 AliAnalysisTaskLukeV0.cxx:305
 AliAnalysisTaskLukeV0.cxx:306
 AliAnalysisTaskLukeV0.cxx:307
 AliAnalysisTaskLukeV0.cxx:308
 AliAnalysisTaskLukeV0.cxx:309
 AliAnalysisTaskLukeV0.cxx:310
 AliAnalysisTaskLukeV0.cxx:311
 AliAnalysisTaskLukeV0.cxx:312
 AliAnalysisTaskLukeV0.cxx:313
 AliAnalysisTaskLukeV0.cxx:314
 AliAnalysisTaskLukeV0.cxx:315
 AliAnalysisTaskLukeV0.cxx:316
 AliAnalysisTaskLukeV0.cxx:317
 AliAnalysisTaskLukeV0.cxx:318
 AliAnalysisTaskLukeV0.cxx:319
 AliAnalysisTaskLukeV0.cxx:320
 AliAnalysisTaskLukeV0.cxx:321
 AliAnalysisTaskLukeV0.cxx:322
 AliAnalysisTaskLukeV0.cxx:323
 AliAnalysisTaskLukeV0.cxx:324
 AliAnalysisTaskLukeV0.cxx:325
 AliAnalysisTaskLukeV0.cxx:326
 AliAnalysisTaskLukeV0.cxx:327
 AliAnalysisTaskLukeV0.cxx:328
 AliAnalysisTaskLukeV0.cxx:329
 AliAnalysisTaskLukeV0.cxx:330
 AliAnalysisTaskLukeV0.cxx:331
 AliAnalysisTaskLukeV0.cxx:332
 AliAnalysisTaskLukeV0.cxx:333
 AliAnalysisTaskLukeV0.cxx:334
 AliAnalysisTaskLukeV0.cxx:335
 AliAnalysisTaskLukeV0.cxx:336
 AliAnalysisTaskLukeV0.cxx:337
 AliAnalysisTaskLukeV0.cxx:338
 AliAnalysisTaskLukeV0.cxx:339
 AliAnalysisTaskLukeV0.cxx:340
 AliAnalysisTaskLukeV0.cxx:341
 AliAnalysisTaskLukeV0.cxx:342
 AliAnalysisTaskLukeV0.cxx:343
 AliAnalysisTaskLukeV0.cxx:344
 AliAnalysisTaskLukeV0.cxx:345
 AliAnalysisTaskLukeV0.cxx:346
 AliAnalysisTaskLukeV0.cxx:347
 AliAnalysisTaskLukeV0.cxx:348
 AliAnalysisTaskLukeV0.cxx:349
 AliAnalysisTaskLukeV0.cxx:350
 AliAnalysisTaskLukeV0.cxx:351
 AliAnalysisTaskLukeV0.cxx:352
 AliAnalysisTaskLukeV0.cxx:353
 AliAnalysisTaskLukeV0.cxx:354
 AliAnalysisTaskLukeV0.cxx:355
 AliAnalysisTaskLukeV0.cxx:356
 AliAnalysisTaskLukeV0.cxx:357
 AliAnalysisTaskLukeV0.cxx:358
 AliAnalysisTaskLukeV0.cxx:359
 AliAnalysisTaskLukeV0.cxx:360
 AliAnalysisTaskLukeV0.cxx:361
 AliAnalysisTaskLukeV0.cxx:362
 AliAnalysisTaskLukeV0.cxx:363
 AliAnalysisTaskLukeV0.cxx:364
 AliAnalysisTaskLukeV0.cxx:365
 AliAnalysisTaskLukeV0.cxx:366
 AliAnalysisTaskLukeV0.cxx:367
 AliAnalysisTaskLukeV0.cxx:368
 AliAnalysisTaskLukeV0.cxx:369
 AliAnalysisTaskLukeV0.cxx:370
 AliAnalysisTaskLukeV0.cxx:371
 AliAnalysisTaskLukeV0.cxx:372
 AliAnalysisTaskLukeV0.cxx:373
 AliAnalysisTaskLukeV0.cxx:374
 AliAnalysisTaskLukeV0.cxx:375
 AliAnalysisTaskLukeV0.cxx:376
 AliAnalysisTaskLukeV0.cxx:377
 AliAnalysisTaskLukeV0.cxx:378
 AliAnalysisTaskLukeV0.cxx:379
 AliAnalysisTaskLukeV0.cxx:380
 AliAnalysisTaskLukeV0.cxx:381
 AliAnalysisTaskLukeV0.cxx:382
 AliAnalysisTaskLukeV0.cxx:383
 AliAnalysisTaskLukeV0.cxx:384
 AliAnalysisTaskLukeV0.cxx:385
 AliAnalysisTaskLukeV0.cxx:386
 AliAnalysisTaskLukeV0.cxx:387
 AliAnalysisTaskLukeV0.cxx:388
 AliAnalysisTaskLukeV0.cxx:389
 AliAnalysisTaskLukeV0.cxx:390
 AliAnalysisTaskLukeV0.cxx:391
 AliAnalysisTaskLukeV0.cxx:392
 AliAnalysisTaskLukeV0.cxx:393
 AliAnalysisTaskLukeV0.cxx:394
 AliAnalysisTaskLukeV0.cxx:395
 AliAnalysisTaskLukeV0.cxx:396
 AliAnalysisTaskLukeV0.cxx:397
 AliAnalysisTaskLukeV0.cxx:398
 AliAnalysisTaskLukeV0.cxx:399
 AliAnalysisTaskLukeV0.cxx:400
 AliAnalysisTaskLukeV0.cxx:401
 AliAnalysisTaskLukeV0.cxx:402
 AliAnalysisTaskLukeV0.cxx:403
 AliAnalysisTaskLukeV0.cxx:404
 AliAnalysisTaskLukeV0.cxx:405
 AliAnalysisTaskLukeV0.cxx:406
 AliAnalysisTaskLukeV0.cxx:407
 AliAnalysisTaskLukeV0.cxx:408
 AliAnalysisTaskLukeV0.cxx:409
 AliAnalysisTaskLukeV0.cxx:410
 AliAnalysisTaskLukeV0.cxx:411
 AliAnalysisTaskLukeV0.cxx:412
 AliAnalysisTaskLukeV0.cxx:413
 AliAnalysisTaskLukeV0.cxx:414
 AliAnalysisTaskLukeV0.cxx:415
 AliAnalysisTaskLukeV0.cxx:416
 AliAnalysisTaskLukeV0.cxx:417
 AliAnalysisTaskLukeV0.cxx:418
 AliAnalysisTaskLukeV0.cxx:419
 AliAnalysisTaskLukeV0.cxx:420
 AliAnalysisTaskLukeV0.cxx:421
 AliAnalysisTaskLukeV0.cxx:422
 AliAnalysisTaskLukeV0.cxx:423
 AliAnalysisTaskLukeV0.cxx:424
 AliAnalysisTaskLukeV0.cxx:425
 AliAnalysisTaskLukeV0.cxx:426
 AliAnalysisTaskLukeV0.cxx:427
 AliAnalysisTaskLukeV0.cxx:428
 AliAnalysisTaskLukeV0.cxx:429
 AliAnalysisTaskLukeV0.cxx:430
 AliAnalysisTaskLukeV0.cxx:431
 AliAnalysisTaskLukeV0.cxx:432
 AliAnalysisTaskLukeV0.cxx:433
 AliAnalysisTaskLukeV0.cxx:434
 AliAnalysisTaskLukeV0.cxx:435
 AliAnalysisTaskLukeV0.cxx:436
 AliAnalysisTaskLukeV0.cxx:437
 AliAnalysisTaskLukeV0.cxx:438
 AliAnalysisTaskLukeV0.cxx:439
 AliAnalysisTaskLukeV0.cxx:440
 AliAnalysisTaskLukeV0.cxx:441
 AliAnalysisTaskLukeV0.cxx:442
 AliAnalysisTaskLukeV0.cxx:443
 AliAnalysisTaskLukeV0.cxx:444
 AliAnalysisTaskLukeV0.cxx:445
 AliAnalysisTaskLukeV0.cxx:446
 AliAnalysisTaskLukeV0.cxx:447
 AliAnalysisTaskLukeV0.cxx:448
 AliAnalysisTaskLukeV0.cxx:449
 AliAnalysisTaskLukeV0.cxx:450
 AliAnalysisTaskLukeV0.cxx:451
 AliAnalysisTaskLukeV0.cxx:452
 AliAnalysisTaskLukeV0.cxx:453
 AliAnalysisTaskLukeV0.cxx:454
 AliAnalysisTaskLukeV0.cxx:455
 AliAnalysisTaskLukeV0.cxx:456
 AliAnalysisTaskLukeV0.cxx:457
 AliAnalysisTaskLukeV0.cxx:458
 AliAnalysisTaskLukeV0.cxx:459
 AliAnalysisTaskLukeV0.cxx:460
 AliAnalysisTaskLukeV0.cxx:461
 AliAnalysisTaskLukeV0.cxx:462
 AliAnalysisTaskLukeV0.cxx:463
 AliAnalysisTaskLukeV0.cxx:464
 AliAnalysisTaskLukeV0.cxx:465
 AliAnalysisTaskLukeV0.cxx:466
 AliAnalysisTaskLukeV0.cxx:467
 AliAnalysisTaskLukeV0.cxx:468
 AliAnalysisTaskLukeV0.cxx:469
 AliAnalysisTaskLukeV0.cxx:470
 AliAnalysisTaskLukeV0.cxx:471
 AliAnalysisTaskLukeV0.cxx:472
 AliAnalysisTaskLukeV0.cxx:473
 AliAnalysisTaskLukeV0.cxx:474
 AliAnalysisTaskLukeV0.cxx:475
 AliAnalysisTaskLukeV0.cxx:476
 AliAnalysisTaskLukeV0.cxx:477
 AliAnalysisTaskLukeV0.cxx:478
 AliAnalysisTaskLukeV0.cxx:479
 AliAnalysisTaskLukeV0.cxx:480
 AliAnalysisTaskLukeV0.cxx:481
 AliAnalysisTaskLukeV0.cxx:482
 AliAnalysisTaskLukeV0.cxx:483
 AliAnalysisTaskLukeV0.cxx:484
 AliAnalysisTaskLukeV0.cxx:485
 AliAnalysisTaskLukeV0.cxx:486
 AliAnalysisTaskLukeV0.cxx:487
 AliAnalysisTaskLukeV0.cxx:488
 AliAnalysisTaskLukeV0.cxx:489
 AliAnalysisTaskLukeV0.cxx:490
 AliAnalysisTaskLukeV0.cxx:491
 AliAnalysisTaskLukeV0.cxx:492
 AliAnalysisTaskLukeV0.cxx:493
 AliAnalysisTaskLukeV0.cxx:494
 AliAnalysisTaskLukeV0.cxx:495
 AliAnalysisTaskLukeV0.cxx:496
 AliAnalysisTaskLukeV0.cxx:497
 AliAnalysisTaskLukeV0.cxx:498
 AliAnalysisTaskLukeV0.cxx:499
 AliAnalysisTaskLukeV0.cxx:500
 AliAnalysisTaskLukeV0.cxx:501
 AliAnalysisTaskLukeV0.cxx:502
 AliAnalysisTaskLukeV0.cxx:503
 AliAnalysisTaskLukeV0.cxx:504
 AliAnalysisTaskLukeV0.cxx:505
 AliAnalysisTaskLukeV0.cxx:506
 AliAnalysisTaskLukeV0.cxx:507
 AliAnalysisTaskLukeV0.cxx:508
 AliAnalysisTaskLukeV0.cxx:509
 AliAnalysisTaskLukeV0.cxx:510
 AliAnalysisTaskLukeV0.cxx:511
 AliAnalysisTaskLukeV0.cxx:512
 AliAnalysisTaskLukeV0.cxx:513
 AliAnalysisTaskLukeV0.cxx:514
 AliAnalysisTaskLukeV0.cxx:515
 AliAnalysisTaskLukeV0.cxx:516
 AliAnalysisTaskLukeV0.cxx:517
 AliAnalysisTaskLukeV0.cxx:518
 AliAnalysisTaskLukeV0.cxx:519
 AliAnalysisTaskLukeV0.cxx:520
 AliAnalysisTaskLukeV0.cxx:521
 AliAnalysisTaskLukeV0.cxx:522
 AliAnalysisTaskLukeV0.cxx:523
 AliAnalysisTaskLukeV0.cxx:524
 AliAnalysisTaskLukeV0.cxx:525
 AliAnalysisTaskLukeV0.cxx:526
 AliAnalysisTaskLukeV0.cxx:527
 AliAnalysisTaskLukeV0.cxx:528
 AliAnalysisTaskLukeV0.cxx:529
 AliAnalysisTaskLukeV0.cxx:530
 AliAnalysisTaskLukeV0.cxx:531
 AliAnalysisTaskLukeV0.cxx:532
 AliAnalysisTaskLukeV0.cxx:533
 AliAnalysisTaskLukeV0.cxx:534
 AliAnalysisTaskLukeV0.cxx:535
 AliAnalysisTaskLukeV0.cxx:536
 AliAnalysisTaskLukeV0.cxx:537
 AliAnalysisTaskLukeV0.cxx:538
 AliAnalysisTaskLukeV0.cxx:539
 AliAnalysisTaskLukeV0.cxx:540
 AliAnalysisTaskLukeV0.cxx:541
 AliAnalysisTaskLukeV0.cxx:542
 AliAnalysisTaskLukeV0.cxx:543
 AliAnalysisTaskLukeV0.cxx:544
 AliAnalysisTaskLukeV0.cxx:545
 AliAnalysisTaskLukeV0.cxx:546
 AliAnalysisTaskLukeV0.cxx:547
 AliAnalysisTaskLukeV0.cxx:548
 AliAnalysisTaskLukeV0.cxx:549
 AliAnalysisTaskLukeV0.cxx:550
 AliAnalysisTaskLukeV0.cxx:551
 AliAnalysisTaskLukeV0.cxx:552
 AliAnalysisTaskLukeV0.cxx:553
 AliAnalysisTaskLukeV0.cxx:554
 AliAnalysisTaskLukeV0.cxx:555
 AliAnalysisTaskLukeV0.cxx:556
 AliAnalysisTaskLukeV0.cxx:557
 AliAnalysisTaskLukeV0.cxx:558
 AliAnalysisTaskLukeV0.cxx:559
 AliAnalysisTaskLukeV0.cxx:560
 AliAnalysisTaskLukeV0.cxx:561
 AliAnalysisTaskLukeV0.cxx:562
 AliAnalysisTaskLukeV0.cxx:563
 AliAnalysisTaskLukeV0.cxx:564
 AliAnalysisTaskLukeV0.cxx:565
 AliAnalysisTaskLukeV0.cxx:566
 AliAnalysisTaskLukeV0.cxx:567
 AliAnalysisTaskLukeV0.cxx:568
 AliAnalysisTaskLukeV0.cxx:569
 AliAnalysisTaskLukeV0.cxx:570
 AliAnalysisTaskLukeV0.cxx:571
 AliAnalysisTaskLukeV0.cxx:572
 AliAnalysisTaskLukeV0.cxx:573
 AliAnalysisTaskLukeV0.cxx:574
 AliAnalysisTaskLukeV0.cxx:575
 AliAnalysisTaskLukeV0.cxx:576
 AliAnalysisTaskLukeV0.cxx:577
 AliAnalysisTaskLukeV0.cxx:578
 AliAnalysisTaskLukeV0.cxx:579
 AliAnalysisTaskLukeV0.cxx:580
 AliAnalysisTaskLukeV0.cxx:581
 AliAnalysisTaskLukeV0.cxx:582
 AliAnalysisTaskLukeV0.cxx:583
 AliAnalysisTaskLukeV0.cxx:584
 AliAnalysisTaskLukeV0.cxx:585
 AliAnalysisTaskLukeV0.cxx:586
 AliAnalysisTaskLukeV0.cxx:587
 AliAnalysisTaskLukeV0.cxx:588
 AliAnalysisTaskLukeV0.cxx:589
 AliAnalysisTaskLukeV0.cxx:590
 AliAnalysisTaskLukeV0.cxx:591
 AliAnalysisTaskLukeV0.cxx:592
 AliAnalysisTaskLukeV0.cxx:593
 AliAnalysisTaskLukeV0.cxx:594
 AliAnalysisTaskLukeV0.cxx:595
 AliAnalysisTaskLukeV0.cxx:596
 AliAnalysisTaskLukeV0.cxx:597
 AliAnalysisTaskLukeV0.cxx:598
 AliAnalysisTaskLukeV0.cxx:599
 AliAnalysisTaskLukeV0.cxx:600
 AliAnalysisTaskLukeV0.cxx:601
 AliAnalysisTaskLukeV0.cxx:602
 AliAnalysisTaskLukeV0.cxx:603
 AliAnalysisTaskLukeV0.cxx:604
 AliAnalysisTaskLukeV0.cxx:605
 AliAnalysisTaskLukeV0.cxx:606
 AliAnalysisTaskLukeV0.cxx:607
 AliAnalysisTaskLukeV0.cxx:608
 AliAnalysisTaskLukeV0.cxx:609
 AliAnalysisTaskLukeV0.cxx:610
 AliAnalysisTaskLukeV0.cxx:611
 AliAnalysisTaskLukeV0.cxx:612
 AliAnalysisTaskLukeV0.cxx:613
 AliAnalysisTaskLukeV0.cxx:614
 AliAnalysisTaskLukeV0.cxx:615
 AliAnalysisTaskLukeV0.cxx:616
 AliAnalysisTaskLukeV0.cxx:617
 AliAnalysisTaskLukeV0.cxx:618
 AliAnalysisTaskLukeV0.cxx:619
 AliAnalysisTaskLukeV0.cxx:620
 AliAnalysisTaskLukeV0.cxx:621
 AliAnalysisTaskLukeV0.cxx:622
 AliAnalysisTaskLukeV0.cxx:623
 AliAnalysisTaskLukeV0.cxx:624
 AliAnalysisTaskLukeV0.cxx:625
 AliAnalysisTaskLukeV0.cxx:626
 AliAnalysisTaskLukeV0.cxx:627
 AliAnalysisTaskLukeV0.cxx:628
 AliAnalysisTaskLukeV0.cxx:629
 AliAnalysisTaskLukeV0.cxx:630
 AliAnalysisTaskLukeV0.cxx:631
 AliAnalysisTaskLukeV0.cxx:632
 AliAnalysisTaskLukeV0.cxx:633
 AliAnalysisTaskLukeV0.cxx:634
 AliAnalysisTaskLukeV0.cxx:635
 AliAnalysisTaskLukeV0.cxx:636
 AliAnalysisTaskLukeV0.cxx:637
 AliAnalysisTaskLukeV0.cxx:638
 AliAnalysisTaskLukeV0.cxx:639
 AliAnalysisTaskLukeV0.cxx:640
 AliAnalysisTaskLukeV0.cxx:641
 AliAnalysisTaskLukeV0.cxx:642
 AliAnalysisTaskLukeV0.cxx:643
 AliAnalysisTaskLukeV0.cxx:644
 AliAnalysisTaskLukeV0.cxx:645
 AliAnalysisTaskLukeV0.cxx:646
 AliAnalysisTaskLukeV0.cxx:647
 AliAnalysisTaskLukeV0.cxx:648
 AliAnalysisTaskLukeV0.cxx:649
 AliAnalysisTaskLukeV0.cxx:650
 AliAnalysisTaskLukeV0.cxx:651
 AliAnalysisTaskLukeV0.cxx:652
 AliAnalysisTaskLukeV0.cxx:653
 AliAnalysisTaskLukeV0.cxx:654
 AliAnalysisTaskLukeV0.cxx:655
 AliAnalysisTaskLukeV0.cxx:656
 AliAnalysisTaskLukeV0.cxx:657
 AliAnalysisTaskLukeV0.cxx:658
 AliAnalysisTaskLukeV0.cxx:659
 AliAnalysisTaskLukeV0.cxx:660
 AliAnalysisTaskLukeV0.cxx:661
 AliAnalysisTaskLukeV0.cxx:662
 AliAnalysisTaskLukeV0.cxx:663
 AliAnalysisTaskLukeV0.cxx:664
 AliAnalysisTaskLukeV0.cxx:665
 AliAnalysisTaskLukeV0.cxx:666
 AliAnalysisTaskLukeV0.cxx:667
 AliAnalysisTaskLukeV0.cxx:668
 AliAnalysisTaskLukeV0.cxx:669
 AliAnalysisTaskLukeV0.cxx:670
 AliAnalysisTaskLukeV0.cxx:671
 AliAnalysisTaskLukeV0.cxx:672
 AliAnalysisTaskLukeV0.cxx:673
 AliAnalysisTaskLukeV0.cxx:674
 AliAnalysisTaskLukeV0.cxx:675
 AliAnalysisTaskLukeV0.cxx:676
 AliAnalysisTaskLukeV0.cxx:677
 AliAnalysisTaskLukeV0.cxx:678
 AliAnalysisTaskLukeV0.cxx:679
 AliAnalysisTaskLukeV0.cxx:680
 AliAnalysisTaskLukeV0.cxx:681
 AliAnalysisTaskLukeV0.cxx:682
 AliAnalysisTaskLukeV0.cxx:683
 AliAnalysisTaskLukeV0.cxx:684
 AliAnalysisTaskLukeV0.cxx:685
 AliAnalysisTaskLukeV0.cxx:686
 AliAnalysisTaskLukeV0.cxx:687
 AliAnalysisTaskLukeV0.cxx:688
 AliAnalysisTaskLukeV0.cxx:689
 AliAnalysisTaskLukeV0.cxx:690
 AliAnalysisTaskLukeV0.cxx:691
 AliAnalysisTaskLukeV0.cxx:692
 AliAnalysisTaskLukeV0.cxx:693
 AliAnalysisTaskLukeV0.cxx:694
 AliAnalysisTaskLukeV0.cxx:695
 AliAnalysisTaskLukeV0.cxx:696
 AliAnalysisTaskLukeV0.cxx:697
 AliAnalysisTaskLukeV0.cxx:698
 AliAnalysisTaskLukeV0.cxx:699
 AliAnalysisTaskLukeV0.cxx:700
 AliAnalysisTaskLukeV0.cxx:701
 AliAnalysisTaskLukeV0.cxx:702
 AliAnalysisTaskLukeV0.cxx:703
 AliAnalysisTaskLukeV0.cxx:704
 AliAnalysisTaskLukeV0.cxx:705
 AliAnalysisTaskLukeV0.cxx:706
 AliAnalysisTaskLukeV0.cxx:707
 AliAnalysisTaskLukeV0.cxx:708
 AliAnalysisTaskLukeV0.cxx:709
 AliAnalysisTaskLukeV0.cxx:710
 AliAnalysisTaskLukeV0.cxx:711
 AliAnalysisTaskLukeV0.cxx:712
 AliAnalysisTaskLukeV0.cxx:713
 AliAnalysisTaskLukeV0.cxx:714
 AliAnalysisTaskLukeV0.cxx:715
 AliAnalysisTaskLukeV0.cxx:716
 AliAnalysisTaskLukeV0.cxx:717
 AliAnalysisTaskLukeV0.cxx:718
 AliAnalysisTaskLukeV0.cxx:719
 AliAnalysisTaskLukeV0.cxx:720
 AliAnalysisTaskLukeV0.cxx:721
 AliAnalysisTaskLukeV0.cxx:722
 AliAnalysisTaskLukeV0.cxx:723
 AliAnalysisTaskLukeV0.cxx:724
 AliAnalysisTaskLukeV0.cxx:725
 AliAnalysisTaskLukeV0.cxx:726
 AliAnalysisTaskLukeV0.cxx:727
 AliAnalysisTaskLukeV0.cxx:728
 AliAnalysisTaskLukeV0.cxx:729
 AliAnalysisTaskLukeV0.cxx:730
 AliAnalysisTaskLukeV0.cxx:731
 AliAnalysisTaskLukeV0.cxx:732
 AliAnalysisTaskLukeV0.cxx:733
 AliAnalysisTaskLukeV0.cxx:734
 AliAnalysisTaskLukeV0.cxx:735
 AliAnalysisTaskLukeV0.cxx:736
 AliAnalysisTaskLukeV0.cxx:737
 AliAnalysisTaskLukeV0.cxx:738
 AliAnalysisTaskLukeV0.cxx:739
 AliAnalysisTaskLukeV0.cxx:740
 AliAnalysisTaskLukeV0.cxx:741
 AliAnalysisTaskLukeV0.cxx:742
 AliAnalysisTaskLukeV0.cxx:743
 AliAnalysisTaskLukeV0.cxx:744
 AliAnalysisTaskLukeV0.cxx:745
 AliAnalysisTaskLukeV0.cxx:746
 AliAnalysisTaskLukeV0.cxx:747
 AliAnalysisTaskLukeV0.cxx:748
 AliAnalysisTaskLukeV0.cxx:749
 AliAnalysisTaskLukeV0.cxx:750
 AliAnalysisTaskLukeV0.cxx:751
 AliAnalysisTaskLukeV0.cxx:752
 AliAnalysisTaskLukeV0.cxx:753
 AliAnalysisTaskLukeV0.cxx:754
 AliAnalysisTaskLukeV0.cxx:755
 AliAnalysisTaskLukeV0.cxx:756
 AliAnalysisTaskLukeV0.cxx:757
 AliAnalysisTaskLukeV0.cxx:758
 AliAnalysisTaskLukeV0.cxx:759
 AliAnalysisTaskLukeV0.cxx:760
 AliAnalysisTaskLukeV0.cxx:761
 AliAnalysisTaskLukeV0.cxx:762
 AliAnalysisTaskLukeV0.cxx:763
 AliAnalysisTaskLukeV0.cxx:764
 AliAnalysisTaskLukeV0.cxx:765
 AliAnalysisTaskLukeV0.cxx:766
 AliAnalysisTaskLukeV0.cxx:767
 AliAnalysisTaskLukeV0.cxx:768
 AliAnalysisTaskLukeV0.cxx:769
 AliAnalysisTaskLukeV0.cxx:770
 AliAnalysisTaskLukeV0.cxx:771
 AliAnalysisTaskLukeV0.cxx:772
 AliAnalysisTaskLukeV0.cxx:773
 AliAnalysisTaskLukeV0.cxx:774
 AliAnalysisTaskLukeV0.cxx:775
 AliAnalysisTaskLukeV0.cxx:776
 AliAnalysisTaskLukeV0.cxx:777
 AliAnalysisTaskLukeV0.cxx:778
 AliAnalysisTaskLukeV0.cxx:779
 AliAnalysisTaskLukeV0.cxx:780
 AliAnalysisTaskLukeV0.cxx:781
 AliAnalysisTaskLukeV0.cxx:782
 AliAnalysisTaskLukeV0.cxx:783
 AliAnalysisTaskLukeV0.cxx:784
 AliAnalysisTaskLukeV0.cxx:785
 AliAnalysisTaskLukeV0.cxx:786
 AliAnalysisTaskLukeV0.cxx:787
 AliAnalysisTaskLukeV0.cxx:788
 AliAnalysisTaskLukeV0.cxx:789
 AliAnalysisTaskLukeV0.cxx:790
 AliAnalysisTaskLukeV0.cxx:791
 AliAnalysisTaskLukeV0.cxx:792
 AliAnalysisTaskLukeV0.cxx:793
 AliAnalysisTaskLukeV0.cxx:794
 AliAnalysisTaskLukeV0.cxx:795
 AliAnalysisTaskLukeV0.cxx:796
 AliAnalysisTaskLukeV0.cxx:797
 AliAnalysisTaskLukeV0.cxx:798
 AliAnalysisTaskLukeV0.cxx:799
 AliAnalysisTaskLukeV0.cxx:800
 AliAnalysisTaskLukeV0.cxx:801
 AliAnalysisTaskLukeV0.cxx:802
 AliAnalysisTaskLukeV0.cxx:803
 AliAnalysisTaskLukeV0.cxx:804
 AliAnalysisTaskLukeV0.cxx:805
 AliAnalysisTaskLukeV0.cxx:806
 AliAnalysisTaskLukeV0.cxx:807
 AliAnalysisTaskLukeV0.cxx:808
 AliAnalysisTaskLukeV0.cxx:809
 AliAnalysisTaskLukeV0.cxx:810
 AliAnalysisTaskLukeV0.cxx:811
 AliAnalysisTaskLukeV0.cxx:812
 AliAnalysisTaskLukeV0.cxx:813
 AliAnalysisTaskLukeV0.cxx:814
 AliAnalysisTaskLukeV0.cxx:815
 AliAnalysisTaskLukeV0.cxx:816
 AliAnalysisTaskLukeV0.cxx:817
 AliAnalysisTaskLukeV0.cxx:818
 AliAnalysisTaskLukeV0.cxx:819
 AliAnalysisTaskLukeV0.cxx:820
 AliAnalysisTaskLukeV0.cxx:821
 AliAnalysisTaskLukeV0.cxx:822
 AliAnalysisTaskLukeV0.cxx:823
 AliAnalysisTaskLukeV0.cxx:824
 AliAnalysisTaskLukeV0.cxx:825
 AliAnalysisTaskLukeV0.cxx:826
 AliAnalysisTaskLukeV0.cxx:827
 AliAnalysisTaskLukeV0.cxx:828
 AliAnalysisTaskLukeV0.cxx:829
 AliAnalysisTaskLukeV0.cxx:830
 AliAnalysisTaskLukeV0.cxx:831
 AliAnalysisTaskLukeV0.cxx:832
 AliAnalysisTaskLukeV0.cxx:833
 AliAnalysisTaskLukeV0.cxx:834
 AliAnalysisTaskLukeV0.cxx:835
 AliAnalysisTaskLukeV0.cxx:836
 AliAnalysisTaskLukeV0.cxx:837
 AliAnalysisTaskLukeV0.cxx:838
 AliAnalysisTaskLukeV0.cxx:839
 AliAnalysisTaskLukeV0.cxx:840
 AliAnalysisTaskLukeV0.cxx:841
 AliAnalysisTaskLukeV0.cxx:842
 AliAnalysisTaskLukeV0.cxx:843
 AliAnalysisTaskLukeV0.cxx:844
 AliAnalysisTaskLukeV0.cxx:845
 AliAnalysisTaskLukeV0.cxx:846
 AliAnalysisTaskLukeV0.cxx:847
 AliAnalysisTaskLukeV0.cxx:848
 AliAnalysisTaskLukeV0.cxx:849
 AliAnalysisTaskLukeV0.cxx:850
 AliAnalysisTaskLukeV0.cxx:851
 AliAnalysisTaskLukeV0.cxx:852
 AliAnalysisTaskLukeV0.cxx:853
 AliAnalysisTaskLukeV0.cxx:854
 AliAnalysisTaskLukeV0.cxx:855
 AliAnalysisTaskLukeV0.cxx:856
 AliAnalysisTaskLukeV0.cxx:857
 AliAnalysisTaskLukeV0.cxx:858
 AliAnalysisTaskLukeV0.cxx:859
 AliAnalysisTaskLukeV0.cxx:860
 AliAnalysisTaskLukeV0.cxx:861
 AliAnalysisTaskLukeV0.cxx:862
 AliAnalysisTaskLukeV0.cxx:863
 AliAnalysisTaskLukeV0.cxx:864
 AliAnalysisTaskLukeV0.cxx:865
 AliAnalysisTaskLukeV0.cxx:866
 AliAnalysisTaskLukeV0.cxx:867
 AliAnalysisTaskLukeV0.cxx:868
 AliAnalysisTaskLukeV0.cxx:869
 AliAnalysisTaskLukeV0.cxx:870
 AliAnalysisTaskLukeV0.cxx:871
 AliAnalysisTaskLukeV0.cxx:872
 AliAnalysisTaskLukeV0.cxx:873
 AliAnalysisTaskLukeV0.cxx:874
 AliAnalysisTaskLukeV0.cxx:875
 AliAnalysisTaskLukeV0.cxx:876
 AliAnalysisTaskLukeV0.cxx:877
 AliAnalysisTaskLukeV0.cxx:878
 AliAnalysisTaskLukeV0.cxx:879
 AliAnalysisTaskLukeV0.cxx:880
 AliAnalysisTaskLukeV0.cxx:881
 AliAnalysisTaskLukeV0.cxx:882
 AliAnalysisTaskLukeV0.cxx:883
 AliAnalysisTaskLukeV0.cxx:884
 AliAnalysisTaskLukeV0.cxx:885
 AliAnalysisTaskLukeV0.cxx:886
 AliAnalysisTaskLukeV0.cxx:887
 AliAnalysisTaskLukeV0.cxx:888
 AliAnalysisTaskLukeV0.cxx:889
 AliAnalysisTaskLukeV0.cxx:890
 AliAnalysisTaskLukeV0.cxx:891
 AliAnalysisTaskLukeV0.cxx:892
 AliAnalysisTaskLukeV0.cxx:893
 AliAnalysisTaskLukeV0.cxx:894
 AliAnalysisTaskLukeV0.cxx:895
 AliAnalysisTaskLukeV0.cxx:896
 AliAnalysisTaskLukeV0.cxx:897
 AliAnalysisTaskLukeV0.cxx:898
 AliAnalysisTaskLukeV0.cxx:899
 AliAnalysisTaskLukeV0.cxx:900
 AliAnalysisTaskLukeV0.cxx:901
 AliAnalysisTaskLukeV0.cxx:902
 AliAnalysisTaskLukeV0.cxx:903
 AliAnalysisTaskLukeV0.cxx:904
 AliAnalysisTaskLukeV0.cxx:905
 AliAnalysisTaskLukeV0.cxx:906
 AliAnalysisTaskLukeV0.cxx:907
 AliAnalysisTaskLukeV0.cxx:908
 AliAnalysisTaskLukeV0.cxx:909
 AliAnalysisTaskLukeV0.cxx:910
 AliAnalysisTaskLukeV0.cxx:911
 AliAnalysisTaskLukeV0.cxx:912
 AliAnalysisTaskLukeV0.cxx:913
 AliAnalysisTaskLukeV0.cxx:914
 AliAnalysisTaskLukeV0.cxx:915
 AliAnalysisTaskLukeV0.cxx:916
 AliAnalysisTaskLukeV0.cxx:917
 AliAnalysisTaskLukeV0.cxx:918
 AliAnalysisTaskLukeV0.cxx:919
 AliAnalysisTaskLukeV0.cxx:920
 AliAnalysisTaskLukeV0.cxx:921
 AliAnalysisTaskLukeV0.cxx:922
 AliAnalysisTaskLukeV0.cxx:923
 AliAnalysisTaskLukeV0.cxx:924
 AliAnalysisTaskLukeV0.cxx:925
 AliAnalysisTaskLukeV0.cxx:926
 AliAnalysisTaskLukeV0.cxx:927
 AliAnalysisTaskLukeV0.cxx:928
 AliAnalysisTaskLukeV0.cxx:929
 AliAnalysisTaskLukeV0.cxx:930
 AliAnalysisTaskLukeV0.cxx:931
 AliAnalysisTaskLukeV0.cxx:932
 AliAnalysisTaskLukeV0.cxx:933
 AliAnalysisTaskLukeV0.cxx:934
 AliAnalysisTaskLukeV0.cxx:935
 AliAnalysisTaskLukeV0.cxx:936
 AliAnalysisTaskLukeV0.cxx:937
 AliAnalysisTaskLukeV0.cxx:938
 AliAnalysisTaskLukeV0.cxx:939
 AliAnalysisTaskLukeV0.cxx:940
 AliAnalysisTaskLukeV0.cxx:941
 AliAnalysisTaskLukeV0.cxx:942
 AliAnalysisTaskLukeV0.cxx:943
 AliAnalysisTaskLukeV0.cxx:944
 AliAnalysisTaskLukeV0.cxx:945
 AliAnalysisTaskLukeV0.cxx:946
 AliAnalysisTaskLukeV0.cxx:947
 AliAnalysisTaskLukeV0.cxx:948
 AliAnalysisTaskLukeV0.cxx:949
 AliAnalysisTaskLukeV0.cxx:950
 AliAnalysisTaskLukeV0.cxx:951
 AliAnalysisTaskLukeV0.cxx:952
 AliAnalysisTaskLukeV0.cxx:953
 AliAnalysisTaskLukeV0.cxx:954
 AliAnalysisTaskLukeV0.cxx:955
 AliAnalysisTaskLukeV0.cxx:956
 AliAnalysisTaskLukeV0.cxx:957
 AliAnalysisTaskLukeV0.cxx:958
 AliAnalysisTaskLukeV0.cxx:959
 AliAnalysisTaskLukeV0.cxx:960
 AliAnalysisTaskLukeV0.cxx:961
 AliAnalysisTaskLukeV0.cxx:962
 AliAnalysisTaskLukeV0.cxx:963
 AliAnalysisTaskLukeV0.cxx:964
 AliAnalysisTaskLukeV0.cxx:965
 AliAnalysisTaskLukeV0.cxx:966
 AliAnalysisTaskLukeV0.cxx:967
 AliAnalysisTaskLukeV0.cxx:968
 AliAnalysisTaskLukeV0.cxx:969
 AliAnalysisTaskLukeV0.cxx:970
 AliAnalysisTaskLukeV0.cxx:971
 AliAnalysisTaskLukeV0.cxx:972
 AliAnalysisTaskLukeV0.cxx:973
 AliAnalysisTaskLukeV0.cxx:974
 AliAnalysisTaskLukeV0.cxx:975
 AliAnalysisTaskLukeV0.cxx:976
 AliAnalysisTaskLukeV0.cxx:977
 AliAnalysisTaskLukeV0.cxx:978
 AliAnalysisTaskLukeV0.cxx:979
 AliAnalysisTaskLukeV0.cxx:980
 AliAnalysisTaskLukeV0.cxx:981
 AliAnalysisTaskLukeV0.cxx:982
 AliAnalysisTaskLukeV0.cxx:983
 AliAnalysisTaskLukeV0.cxx:984
 AliAnalysisTaskLukeV0.cxx:985
 AliAnalysisTaskLukeV0.cxx:986