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

// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//
// Modified version of AliAnalysisTaskCheckCascade.cxx.
// This is a 'hybrid' output version, in that it uses a classic TTree
// ROOT object to store the candidates, plus a couple of histograms filled on
// a per-event basis for storing variables too numerous to put in a tree. 
//
// --- Added bits of code for checking V0s 
//      (from AliAnalysisTaskCheckStrange.cxx)
//
//  --- Algorithm Description 
//   1. Perform Physics Selection
//   2. Perform Primary Vertex |z|<10cm selection
//   3. Perform Primary Vertex NoTPCOnly vertexing selection (>0 contrib.)
//   4. Perform Pileup Rejection
//   5. Analysis Loops: 
//    5a. Fill TTree object with V0 information, candidates
//
//  Please Report Any Bugs! 
//
//   --- David Dobrigkeit Chinellato
//        (david.chinellato@gmail.com)
//
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

class TTree;
class TParticle;
class TVector3;

//class AliMCEventHandler;
//class AliMCEvent;
//class AliStack;

class AliESDVertex;
class AliAODVertex;
class AliESDv0;
class AliAODv0;

#include <Riostream.h>
#include "TList.h"
#include "TH1.h"
#include "TH2.h"
#include "TH3.h"
#include "THnSparse.h"
#include "TVector3.h"
#include "TCanvas.h"
#include "TMath.h"
#include "TLegend.h"
#include "AliLog.h"
#include "AliCentrality.h"
#include "AliESDEvent.h"
#include "AliAODEvent.h"
#include "AliV0vertexer.h"
#include "AliCascadeVertexer.h"
#include "AliESDpid.h"
#include "AliESDtrack.h"

#include "AliESDtrackCuts.h"
#include "AliInputEventHandler.h"
#include "AliAnalysisManager.h"
#include "AliMCEventHandler.h"

#include "AliCFContainer.h"
#include "AliMultiplicity.h"

#include "AliESDcascade.h"
#include "AliAODcascade.h"
#include "AliESDUtils.h"
#include "AliESDHeader.h"
#include "AliAODTrack.h"
#include "AliAnalysisTaskExtractV0AOD.h"

//debugging purposes
#include "TObjectTable.h"

ClassImp(AliAnalysisTaskExtractV0AOD)

AliAnalysisTaskExtractV0AOD::AliAnalysisTaskExtractV0AOD() 
  : AliAnalysisTaskSE(), fListHistV0(0), fTree(0), fPIDResponse(0),
   fkIsNuclear   ( kFALSE ), 
   fkLowEnergyPP ( kFALSE ),
   fkUseOnTheFly ( kFALSE ),
   fTriggerMask  ( "kMB"  ),
//------------------------------------------------
// Variables for tree 
//------------------------------------------------

	 fTreeVariableChi2V0(0),
	 fTreeVariableDcaV0Daughters(0),
	 fTreeVariableDcaV0ToPrimVertex(0),
	 fTreeVariableDcaPosToPrimVertex(0),
	 fTreeVariableDcaNegToPrimVertex(0),
	 fTreeVariableV0CosineOfPointingAngle(0),
	 fTreeVariableV0Radius(0),
	 fTreeVariablePt(0),
	 fTreeVariableRapK0Short(0),
	 fTreeVariableRapLambda(0),
	 fTreeVariableInvMassK0s(0),
	 fTreeVariableInvMassLambda(0),
	 fTreeVariableInvMassAntiLambda(0),
	 fTreeVariableAlphaV0(0),
	 fTreeVariablePtArmV0(0),
	 fTreeVariableNegTotMomentum(0),
	 fTreeVariablePosTotMomentum(0),
	 fTreeVariableNegdEdxSig(0),
	 fTreeVariablePosdEdxSig(0),
	 fTreeVariableNegEta(0),
	 fTreeVariablePosEta(0),

	 fTreeVariableNSigmasPosProton(0),
	 fTreeVariableNSigmasPosPion(0),
	 fTreeVariableNSigmasNegProton(0),
	 fTreeVariableNSigmasNegPion(0),
	
	 fTreeVariableDistOverTotMom(0),
   fTreeVariableLeastNbrCrossedRows(0),
	 fTreeVariableLeastRatioCrossedRowsOverFindable(0),
	 fTreeVariableMultiplicity(0),

   fTreeVariableRunNumber(0),
   fTreeVariableEventNumber(0),


//------------------------------------------------
// HISTOGRAMS
// --- Filled on an Event-by-event basis
//------------------------------------------------
   fHistV0MultiplicityBeforeTrigSel(0),
   fHistV0MultiplicityForTrigEvt(0),
   fHistV0MultiplicityForSelEvt(0),
   fHistV0MultiplicityForSelEvtNoTPCOnly(0),
   fHistV0MultiplicityForSelEvtNoTPCOnlyNoPileup(0),
   fHistMultiplicityBeforeTrigSel(0),
   fHistMultiplicityForTrigEvt(0),
   fHistMultiplicity(0),
   fHistMultiplicityNoTPCOnly(0),
   fHistMultiplicityNoTPCOnlyNoPileup(0),
   fHistPVx(0),
   fHistPVy(0),
   fHistPVz(0),
   fHistPVxAnalysis(0),
   fHistPVyAnalysis(0),
   fHistPVzAnalysis(0),
   fHistSwappedV0Counter(0)
{
  // Dummy Constructor
}

AliAnalysisTaskExtractV0AOD::AliAnalysisTaskExtractV0AOD(const char *name) 
  : AliAnalysisTaskSE(name), fListHistV0(0), fTree(0), fPIDResponse(0),
   fkIsNuclear   ( kFALSE ), 
   fkLowEnergyPP ( kFALSE ),
   fkUseOnTheFly ( kFALSE ),
   fTriggerMask  ( "kMB"  ),
     
//------------------------------------------------
// Variables for tree 
//------------------------------------------------

	 fTreeVariableChi2V0(0),
	 fTreeVariableDcaV0Daughters(0),
	 fTreeVariableDcaV0ToPrimVertex(0),
	 fTreeVariableDcaPosToPrimVertex(0),
	 fTreeVariableDcaNegToPrimVertex(0),
	 fTreeVariableV0CosineOfPointingAngle(0),
	 fTreeVariableV0Radius(0),
	 fTreeVariablePt(0),
	 fTreeVariableRapK0Short(0),
	 fTreeVariableRapLambda(0),
	 fTreeVariableInvMassK0s(0),
	 fTreeVariableInvMassLambda(0),
	 fTreeVariableInvMassAntiLambda(0),
	 fTreeVariableAlphaV0(0),
	 fTreeVariablePtArmV0(0),
	 fTreeVariableNegTotMomentum(0),
	 fTreeVariablePosTotMomentum(0),
	 fTreeVariableNegdEdxSig(0),
	 fTreeVariablePosdEdxSig(0),
	 fTreeVariableNegEta(0),
	 fTreeVariablePosEta(0),

	 fTreeVariableNSigmasPosProton(0),
	 fTreeVariableNSigmasPosPion(0),
	 fTreeVariableNSigmasNegProton(0),
	 fTreeVariableNSigmasNegPion(0),
	
	 fTreeVariableDistOverTotMom(0),
   fTreeVariableLeastNbrCrossedRows(0),
	 fTreeVariableLeastRatioCrossedRowsOverFindable(0),
	 fTreeVariableMultiplicity(0),

   fTreeVariableRunNumber(0),
   fTreeVariableEventNumber(0),

//------------------------------------------------
// HISTOGRAMS
// --- Filled on an Event-by-event basis
//------------------------------------------------
   fHistV0MultiplicityBeforeTrigSel(0),
   fHistV0MultiplicityForTrigEvt(0),
   fHistV0MultiplicityForSelEvt(0),
   fHistV0MultiplicityForSelEvtNoTPCOnly(0),
   fHistV0MultiplicityForSelEvtNoTPCOnlyNoPileup(0),
   fHistMultiplicityBeforeTrigSel(0),
   fHistMultiplicityForTrigEvt(0),
   fHistMultiplicity(0),
   fHistMultiplicityNoTPCOnly(0),
   fHistMultiplicityNoTPCOnlyNoPileup(0),
   fHistPVx(0),
   fHistPVy(0),
   fHistPVz(0),
   fHistPVxAnalysis(0),
   fHistPVyAnalysis(0),
   fHistPVzAnalysis(0),
   fHistSwappedV0Counter(0)
{
  // Constructor
  // Output slot #0 writes into a TList container (Lambda Histos and fTree)
   DefineOutput(1, TList::Class());
   DefineOutput(2, TTree::Class());
}


AliAnalysisTaskExtractV0AOD::~AliAnalysisTaskExtractV0AOD()
{
//------------------------------------------------
// DESTRUCTOR
//------------------------------------------------

   if (fListHistV0){
      delete fListHistV0;
      fListHistV0 = 0x0;
   }
   if (fTree){
      delete fTree;
      fTree = 0x0;
   }
}



//________________________________________________________________________
void AliAnalysisTaskExtractV0AOD::UserCreateOutputObjects()
{

   //Create File-resident Tree, please.
   OpenFile(2);
   // Called once
   fTree = new TTree("fTree","V0Candidates");

//------------------------------------------------
// fTree Branch definitions
//------------------------------------------------

//-----------BASIC-INFO---------------------------
/* 1*/  fTree->Branch("fTreeVariableChi2V0",&fTreeVariableChi2V0,"fTreeVariableChi2V0/F");
/* 2*/  fTree->Branch("fTreeVariableDcaV0Daughters",&fTreeVariableDcaV0Daughters,"fTreeVariableDcaV0Daughters/F");
/* 3*/	fTree->Branch("fTreeVariableDcaPosToPrimVertex",&fTreeVariableDcaPosToPrimVertex,"fTreeVariableDcaPosToPrimVertex/F");
/* 4*/	fTree->Branch("fTreeVariableDcaNegToPrimVertex",&fTreeVariableDcaNegToPrimVertex,"fTreeVariableDcaNegToPrimVertex/F");
/* 5*/	fTree->Branch("fTreeVariableV0Radius",&fTreeVariableV0Radius,"fTreeVariableV0Radius/F");
/* 6*/	fTree->Branch("fTreeVariablePt",&fTreeVariablePt,"fTreeVariablePt/F");
/* 7*/	fTree->Branch("fTreeVariableRapK0Short",&fTreeVariableRapK0Short,"fTreeVariableRapK0Short/F");
/* 8*/	fTree->Branch("fTreeVariableRapLambda",&fTreeVariableRapLambda,"fTreeVariableRapLambda/F");
/* 9*/	fTree->Branch("fTreeVariableInvMassK0s",&fTreeVariableInvMassK0s,"fTreeVariableInvMassK0s/F");
/*10*/	fTree->Branch("fTreeVariableInvMassLambda",&fTreeVariableInvMassLambda,"fTreeVariableInvMassLambda/F");
/*11*/	fTree->Branch("fTreeVariableInvMassAntiLambda",&fTreeVariableInvMassAntiLambda,"fTreeVariableInvMassAntiLambda/F");
/*12*/	fTree->Branch("fTreeVariableV0CosineOfPointingAngle",&fTreeVariableV0CosineOfPointingAngle,"fTreeVariableV0CosineOfPointingAngle/F");
/*13*/	fTree->Branch("fTreeVariableAlphaV0",&fTreeVariableAlphaV0,"fTreeVariableAlphaV0/F");
/*14*/	fTree->Branch("fTreeVariablePtArmV0",&fTreeVariablePtArmV0,"fTreeVariablePtArmV0/F");
/*15*/	fTree->Branch("fTreeVariableLeastNbrCrossedRows",&fTreeVariableLeastNbrCrossedRows,"fTreeVariableLeastNbrCrossedRows/I");
/*16*/	fTree->Branch("fTreeVariableLeastRatioCrossedRowsOverFindable",&fTreeVariableLeastRatioCrossedRowsOverFindable,"fTreeVariableLeastRatioCrossedRowsOverFindable/F");
//-----------MULTIPLICITY-INFO--------------------
/*17*/	fTree->Branch("fTreeVariableMultiplicity",&fTreeVariableMultiplicity,"fTreeVariableMultiplicity/I");
//------------------------------------------------
/*18*/	fTree->Branch("fTreeVariableDistOverTotMom",&fTreeVariableDistOverTotMom,"fTreeVariableDistOverTotMom/F");
/*19*/	fTree->Branch("fTreeVariableNSigmasPosProton",&fTreeVariableNSigmasPosProton,"fTreeVariableNSigmasPosProton/F");
/*20*/	fTree->Branch("fTreeVariableNSigmasPosPion",&fTreeVariableNSigmasPosPion,"fTreeVariableNSigmasPosPion/F");
/*21*/	fTree->Branch("fTreeVariableNSigmasNegProton",&fTreeVariableNSigmasNegProton,"fTreeVariableNSigmasNegProton/F");
/*22*/	fTree->Branch("fTreeVariableNSigmasNegPion",&fTreeVariableNSigmasNegPion,"fTreeVariableNSigmasNegPion/F");
/*23*/	fTree->Branch("fTreeVariableNegEta",&fTreeVariableNegEta,"fTreeVariableNegEta/F");
/*24*/	fTree->Branch("fTreeVariablePosEta",&fTreeVariablePosEta,"fTreeVariablePosEta/F");
/*25*/	fTree->Branch("fTreeVariableRunNumber",&fTreeVariableRunNumber,"fTreeVariableRunNumber/I");
/*26*/	fTree->Branch("fTreeVariableEventNumber",&fTreeVariableEventNumber,"fTreeVariableEventNumber/l");

//------------------------------------------------
// Particle Identification Setup
//------------------------------------------------

   AliAnalysisManager *man=AliAnalysisManager::GetAnalysisManager();
   AliInputEventHandler* inputHandler = (AliInputEventHandler*) (man->GetInputEventHandler());
   fPIDResponse = inputHandler->GetPIDResponse();

//Skipped. Will use Local setup.

//------------------------------------------------
// V0 Multiplicity Histograms
//------------------------------------------------

   // Create histograms
   //Create File-resident Tree, please.
   OpenFile(1);

   fListHistV0 = new TList();
   fListHistV0->SetOwner();  // See http://root.cern.ch/root/html/TCollection.html#TCollection:SetOwner

   if(! fHistV0MultiplicityBeforeTrigSel) {
      fHistV0MultiplicityBeforeTrigSel = new TH1F("fHistV0MultiplicityBeforeTrigSel", 
         "V0s per event (before Trig. Sel.);Nbr of V0s/Evt;Events", 
         25, 0, 25);
      fListHistV0->Add(fHistV0MultiplicityBeforeTrigSel);
   }
           
   if(! fHistV0MultiplicityForTrigEvt) {
      fHistV0MultiplicityForTrigEvt = new TH1F("fHistV0MultiplicityForTrigEvt", 
         "V0s per event (for triggered evt);Nbr of V0s/Evt;Events", 
         25, 0, 25);
      fListHistV0->Add(fHistV0MultiplicityForTrigEvt);
   }

   if(! fHistV0MultiplicityForSelEvt) {
      fHistV0MultiplicityForSelEvt = new TH1F("fHistV0MultiplicityForSelEvt", 
         "V0s per event;Nbr of V0s/Evt;Events", 
         25, 0, 25);
      fListHistV0->Add(fHistV0MultiplicityForSelEvt);
   }

   if(! fHistV0MultiplicityForSelEvtNoTPCOnly) {
      fHistV0MultiplicityForSelEvtNoTPCOnly = new TH1F("fHistV0MultiplicityForSelEvtNoTPCOnly", 
         "V0s per event;Nbr of V0s/Evt;Events", 
         25, 0, 25);
      fListHistV0->Add(fHistV0MultiplicityForSelEvtNoTPCOnly);
   }

   if(! fHistV0MultiplicityForSelEvtNoTPCOnlyNoPileup) {
      fHistV0MultiplicityForSelEvtNoTPCOnlyNoPileup = new TH1F("fHistV0MultiplicityForSelEvtNoTPCOnlyNoPileup", 
         "V0s per event;Nbr of V0s/Evt;Events", 
         25, 0, 25);
      fListHistV0->Add(fHistV0MultiplicityForSelEvtNoTPCOnlyNoPileup);
   }

//------------------------------------------------
// Track Multiplicity Histograms
//------------------------------------------------

   if(! fHistMultiplicityBeforeTrigSel) {
      fHistMultiplicityBeforeTrigSel = new TH1F("fHistMultiplicityBeforeTrigSel", 
         "Tracks per event;Nbr of Tracks;Events", 
         200, 0, 200); 		
      fListHistV0->Add(fHistMultiplicityBeforeTrigSel);
   }
   if(! fHistMultiplicityForTrigEvt) {
      fHistMultiplicityForTrigEvt = new TH1F("fHistMultiplicityForTrigEvt", 
         "Tracks per event;Nbr of Tracks;Events", 
         200, 0, 200); 		
      fListHistV0->Add(fHistMultiplicityForTrigEvt);
   }
   if(! fHistMultiplicity) {
      fHistMultiplicity = new TH1F("fHistMultiplicity", 
         "Tracks per event;Nbr of Tracks;Events", 
         200, 0, 200); 		
      fListHistV0->Add(fHistMultiplicity);
   }
   if(! fHistMultiplicityNoTPCOnly) {
      fHistMultiplicityNoTPCOnly = new TH1F("fHistMultiplicityNoTPCOnly", 
         "Tracks per event;Nbr of Tracks;Events", 
         200, 0, 200); 		
      fListHistV0->Add(fHistMultiplicityNoTPCOnly);
   }
   if(! fHistMultiplicityNoTPCOnlyNoPileup) {
      fHistMultiplicityNoTPCOnlyNoPileup = new TH1F("fHistMultiplicityNoTPCOnlyNoPileup", 
         "Tracks per event;Nbr of Tracks;Events", 
         200, 0, 200); 		
      fListHistV0->Add(fHistMultiplicityNoTPCOnlyNoPileup);
   }

   if(! fHistPVx) {
      fHistPVx = new TH1F("fHistPVx", 
         "PV x position;Nbr of Evts;x", 
         2000, -0.5, 0.5); 		
      fListHistV0->Add(fHistPVx);
   }
   if(! fHistPVy) {
      fHistPVy = new TH1F("fHistPVy", 
         "PV y position;Nbr of Evts;y", 
         2000, -0.5, 0.5); 		
      fListHistV0->Add(fHistPVy);
   }
   if(! fHistPVz) {
      fHistPVz = new TH1F("fHistPVz", 
         "PV z position;Nbr of Evts;z", 
         400, -20, 20); 		
      fListHistV0->Add(fHistPVz);
   }
   if(! fHistPVxAnalysis) {
      fHistPVxAnalysis = new TH1F("fHistPVxAnalysis", 
         "PV x position;Nbr of Evts;x", 
         2000, -0.5, 0.5);		
      fListHistV0->Add(fHistPVxAnalysis);
   }
   if(! fHistPVyAnalysis) {
      fHistPVyAnalysis = new TH1F("fHistPVyAnalysis", 
         "PV y position;Nbr of Evts;y", 
         2000, -0.5, 0.5);		
      fListHistV0->Add(fHistPVyAnalysis);
   }
   if(! fHistPVzAnalysis) {
      fHistPVzAnalysis = new TH1F("fHistPVzAnalysis", 
         "PV z position;Nbr of Evts;z", 
         400, -20, 20); 		
      fListHistV0->Add(fHistPVzAnalysis);
   }
   if(! fHistSwappedV0Counter) {
      fHistSwappedV0Counter = new TH1F("fHistSwappedV0Counter", 
         "Swap or not histo;Swapped (1) or not (0); count", 
         2, 0, 2); 		
      fListHistV0->Add(fHistSwappedV0Counter);
   }
   //Regular output: Histograms
   PostData(1, fListHistV0);
   //TTree Object: Saved to base directory. Should cache to disk while saving. 
   //(Important to avoid excessive memory usage, particularly when merging)
   PostData(2, fTree);

}// end UserCreateOutputObjects


//________________________________________________________________________
void AliAnalysisTaskExtractV0AOD::UserExec(Option_t *) 
{

   // Main loop
   // Called for each event
   //gObjectTable->Print();
   AliAODEvent *lAODevent = 0x0;

   //AliAODEvent *lAODevent = 0x0;
   Int_t    nV0s                        = -1;

   Double_t lBestPrimaryVtxPos[3]          = {-100.0, -100.0, -100.0};
   Double_t lMagneticField                 = -10.;
	
   // Connect to the InputEvent	
   // After these lines, we should have an ESD/AOD event + the number of cascades in it.

   // Appropriate for ESD analysis! 
		
   lAODevent = dynamic_cast<AliAODEvent*>( InputEvent() );
   if (!lAODevent) {
      AliWarning("ERROR: lAODevent not available \n");
      return;
   }
   fTreeVariableRunNumber = lAODevent->GetRunNumber();
   fTreeVariableEventNumber =  
    ( ( ((ULong64_t)lAODevent->GetPeriodNumber() ) << 36 ) |
      ( ((ULong64_t)lAODevent->GetOrbitNumber () ) << 12 ) |
        ((ULong64_t)lAODevent->GetBunchCrossNumber() )  );

   //REVISED multiplicity estimator after 'multiplicity day' (2011)
   Int_t lMultiplicity = -100; 

   if(fkIsNuclear == kFALSE) lMultiplicity = -1;

   //---> If this is a nuclear collision, then go nuclear on "multiplicity" variable...
   //---> Warning: Experimental
   if(fkIsNuclear == kTRUE){ 
      AliCentrality* centrality;
      centrality = lAODevent->GetCentrality();
      lMultiplicity = ( ( Int_t ) ( centrality->GetCentralityPercentile( "V0M" ) ) );
      if (centrality->GetQuality()>1) {
        PostData(1, fListHistV0);
        PostData(2, fTree);
        return;
      }
   }

   //Set variable for filling tree afterwards!
   //---> pp case......: GetReferenceMultiplicity
   //---> Pb-Pb case...: Centrality by V0M
   fTreeVariableMultiplicity = lMultiplicity;
   fHistMultiplicityBeforeTrigSel->Fill ( lMultiplicity );
   fHistV0MultiplicityBeforeTrigSel->Fill ( lAODevent->GetNumberOfV0s() );

//------------------------------------------------
// Physics Selection
//------------------------------------------------

// new method        
   UInt_t maskIsSelected = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
   Bool_t isSelected = 0;
   //kMB: default selection, also if fTriggerMask is something not understood...
   isSelected = (maskIsSelected & AliVEvent::kMB) == AliVEvent::kMB;

   if( fTriggerMask == "kINT7" )
     isSelected = (maskIsSelected & AliVEvent::kINT7) == AliVEvent::kINT7;
   if( fTriggerMask == "kINT8" )
     isSelected = (maskIsSelected & AliVEvent::kINT8) == AliVEvent::kINT8;
   if( fTriggerMask == "kAnyINT" )
     isSelected = (maskIsSelected & AliVEvent::kAnyINT) == AliVEvent::kAnyINT;

   //pp at 2.76TeV: special case, ignore FastOnly
   if ( (fkLowEnergyPP == kTRUE) && (maskIsSelected& AliVEvent::kFastOnly) ){
      PostData(1, fListHistV0);
      PostData(2, fTree);
      return;
   } 
   //Standard Min-Bias Selection
   if ( ! isSelected ) { 
      PostData(1, fListHistV0);
      PostData(2, fTree);
      return;
   }

//------------------------------------------------
// After Trigger Selection
//------------------------------------------------

	nV0s = lAODevent->GetNumberOfV0s();

  fHistV0MultiplicityForTrigEvt     ->Fill( nV0s       );
  fHistMultiplicityForTrigEvt       ->Fill( lMultiplicity  );

//------------------------------------------------
// Getting: Primary Vertex + MagField Info
//------------------------------------------------
        
	const AliAODVertex *lPrimaryBestAODVtx = lAODevent->GetPrimaryVertex();	
  // get the best primary vertex available for the event
	// As done in AliCascadeVertexer, we keep the one which is the best one available.
	// between : Tracking vertex > SPD vertex > TPC vertex > default SPD vertex
	// This one will be used for next calculations (DCA essentially)
   lPrimaryBestAODVtx->GetXYZ( lBestPrimaryVtxPos );

   Double_t tPrimaryVtxPosition[3];
   const AliVVertex *primaryVtx = lAODevent->GetPrimaryVertex();
   tPrimaryVtxPosition[0] = primaryVtx->GetX();
   tPrimaryVtxPosition[1] = primaryVtx->GetY();
   tPrimaryVtxPosition[2] = primaryVtx->GetZ();
   fHistPVx->Fill( tPrimaryVtxPosition[0] );
   fHistPVy->Fill( tPrimaryVtxPosition[1] );
   fHistPVz->Fill( tPrimaryVtxPosition[2] );

//------------------------------------------------
// Primary Vertex Z position: SKIP
//------------------------------------------------

   if(TMath::Abs(lBestPrimaryVtxPos[2]) > 10.0 ) { 
      AliWarning("Pb / | Z position of Best Prim Vtx | > 10.0 cm ... return !"); 
      PostData(1, fListHistV0);
      PostData(2, fTree);
      return; 
   }

   lMagneticField = lAODevent->GetMagneticField( );
   fHistV0MultiplicityForSelEvt ->Fill( nV0s );
   fHistMultiplicity->Fill(lMultiplicity);

//------------------------------------------------
// Only look at events with well-established PV
//------------------------------------------------
	
   const AliAODVertex *lPrimaryTrackingAODVtxCheck = lAODevent->GetPrimaryVertex();
   const AliAODVertex *lPrimarySPDVtx = lAODevent->GetPrimaryVertexSPD();
   if (!lPrimarySPDVtx && !lPrimaryTrackingAODVtxCheck ){
      AliWarning("Pb / No SPD prim. vertex nor prim. Tracking vertex ... return !");
      PostData(1, fListHistV0);
      PostData(2, fTree);
      return;
   }

   fHistV0MultiplicityForSelEvtNoTPCOnly ->Fill( nV0s );
   fHistMultiplicityNoTPCOnly->Fill(lMultiplicity);

//------------------------------------------------
// Pileup Rejection
//------------------------------------------------

   // FIXME : quality selection regarding pile-up rejection 
   if(lAODevent->IsPileupFromSPD() && !fkIsNuclear){// minContributors=3, minZdist=0.8, nSigmaZdist=3., nSigmaDiamXY=2., nSigmaDiamZ=5.  -> see http://alisoft.cern.ch/viewvc/trunk/STEER/AliESDEvent.h?root=AliRoot&r1=41914&r2=42199&pathrev=42199
      PostData(1, fListHistV0);
      PostData(2, fTree); 
      return;
   }
   fHistV0MultiplicityForSelEvtNoTPCOnlyNoPileup ->Fill( nV0s );
   fHistMultiplicityNoTPCOnlyNoPileup->Fill(lMultiplicity);
  
//------------------------------------------------
// MAIN LAMBDA LOOP STARTS HERE
//------------------------------------------------

   //if( ! (lAODevent->GetPrimaryVertex()->IsFromVertexerZ() )	 ){ 
      fHistPVxAnalysis->Fill( tPrimaryVtxPosition[0] );
      fHistPVyAnalysis->Fill( tPrimaryVtxPosition[1] );
      fHistPVzAnalysis->Fill( tPrimaryVtxPosition[2] );
   //}

//Variable definition
   Int_t    lOnFlyStatus = 0;// nv0sOn = 0, nv0sOff = 0;
   Double_t lChi2V0 = 0;
   Double_t lDcaV0Daughters = 0, lDcaV0ToPrimVertex = 0;
   Double_t lDcaPosToPrimVertex = 0, lDcaNegToPrimVertex = 0;
   Double_t lV0CosineOfPointingAngle = 0;
   Double_t lV0Radius = 0, lPt = 0;
   Double_t lRapK0Short = 0, lRapLambda = 0;
   Double_t lInvMassK0s = 0, lInvMassLambda = 0, lInvMassAntiLambda = 0;
   Double_t lAlphaV0 = 0, lPtArmV0 = 0;

   Double_t fMinV0Pt = 0; 
   Double_t fMaxV0Pt = 100; 

   Int_t nv0s = 0;
   nv0s = lAODevent->GetNumberOfV0s();

   //for (Int_t iV0 = 0; iV0 < nv0s; iV0++) 
   for (Int_t iV0 = 0; iV0 < nv0s; iV0++) //extra-crazy test
   {// This is the begining of the V0 loop
      AliAODv0 *v0 = lAODevent->GetV0(iV0);
      if (!v0) continue;

      //Obsolete at AOD level... 
      //---> Fix On-the-Fly candidates, count how many swapped
      //if( v0->GetParamN()->Charge() > 0 && v0->GetParamP()->Charge() < 0 ){
      //  fHistSwappedV0Counter -> Fill( 1 );
      //}else{
      //  fHistSwappedV0Counter -> Fill( 0 ); 
      //}
      //if ( fkUseOnTheFly ) CheckChargeV0(v0); 
      
      Double_t tDecayVertexV0[3]; v0->GetXYZ(tDecayVertexV0); 
      Double_t tV0mom[3];
      v0->GetPxPyPz( tV0mom ); 
      Double_t lV0TotalMomentum = TMath::Sqrt(
      tV0mom[0]*tV0mom[0]+tV0mom[1]*tV0mom[1]+tV0mom[2]*tV0mom[2] );

      lV0Radius = TMath::Sqrt(tDecayVertexV0[0]*tDecayVertexV0[0]+tDecayVertexV0[1]*tDecayVertexV0[1]);
      lPt = v0->Pt();
      lRapK0Short = v0->RapK0Short();
      lRapLambda  = v0->RapLambda();
      if ((lPt<fMinV0Pt)||(fMaxV0Pt<lPt)) continue;

      //UInt_t lKeyPos = (UInt_t)TMath::Abs(v0->GetPosID());
      //UInt_t lKeyNeg = (UInt_t)TMath::Abs(v0->GetPosID());

      Double_t lMomPos[3]; //v0->GetPPxPyPz(lMomPos[0],lMomPos[1],lMomPos[2]);
      Double_t lMomNeg[3]; //v0->GetNPxPyPz(lMomNeg[0],lMomNeg[1],lMomNeg[2]);
      lMomPos[0] = v0->MomPosX();
      lMomPos[1] = v0->MomPosY();
      lMomPos[2] = v0->MomPosZ();
      lMomNeg[0] = v0->MomNegX();
      lMomNeg[1] = v0->MomNegY();
      lMomNeg[2] = v0->MomNegZ();

      AliAODTrack *pTrack=(AliAODTrack *)v0->GetDaughter(0); //0->Positive Daughter
      AliAODTrack *nTrack=(AliAODTrack *)v0->GetDaughter(1); //1->Negative Daughter
      if (!pTrack || !nTrack) {
         Printf("ERROR: Could not retreive one of the daughter track");
         continue;
      }

      //Daughter Eta for Eta selection, afterwards
      fTreeVariableNegEta = nTrack->Eta();
      fTreeVariablePosEta = pTrack->Eta();

      // Filter like-sign V0 (next: add counter and distribution)
      if ( pTrack->Charge() == nTrack->Charge()){
         continue;
      } 

      //Quick test this far! 
      

      //________________________________________________________________________
      // Track quality cuts 
      Float_t lPosTrackCrossedRows = pTrack->GetTPCClusterInfo(2,1);
      Float_t lNegTrackCrossedRows = nTrack->GetTPCClusterInfo(2,1);
      fTreeVariableLeastNbrCrossedRows = (Int_t) lPosTrackCrossedRows;
      if( lNegTrackCrossedRows < fTreeVariableLeastNbrCrossedRows )
         fTreeVariableLeastNbrCrossedRows = (Int_t) lNegTrackCrossedRows;

      // TPC refit condition (done during reconstruction for Offline but not for On-the-fly)
      if( !(pTrack->GetStatus() & AliESDtrack::kTPCrefit)) continue;
      if( !(nTrack->GetStatus() & AliESDtrack::kTPCrefit)) continue;

      if ( ( ( pTrack->GetTPCClusterInfo(2,1) ) < 70 ) || ( ( nTrack->GetTPCClusterInfo(2,1) ) < 70 ) ) continue;
	
      //GetKinkIndex condition
      //if( pTrack->GetKinkIndex(0)>0 || nTrack->GetKinkIndex(0)>0 ) continue;

      //Findable clusters > 0 condition
      if( pTrack->GetTPCNclsF()<=0 || nTrack->GetTPCNclsF()<=0 ) continue;

      //Compute ratio Crossed Rows / Findable clusters
      //Note: above test avoids division by zero! 
      Float_t lPosTrackCrossedRowsOverFindable = lPosTrackCrossedRows / ((double)(pTrack->GetTPCNclsF())); 
      Float_t lNegTrackCrossedRowsOverFindable = lNegTrackCrossedRows / ((double)(nTrack->GetTPCNclsF())); 

      fTreeVariableLeastRatioCrossedRowsOverFindable = lPosTrackCrossedRowsOverFindable;
      if( lNegTrackCrossedRowsOverFindable < fTreeVariableLeastRatioCrossedRowsOverFindable )
         fTreeVariableLeastRatioCrossedRowsOverFindable = lNegTrackCrossedRowsOverFindable;

      //Lowest Cut Level for Ratio Crossed Rows / Findable = 0.8, set here
      if ( fTreeVariableLeastRatioCrossedRowsOverFindable < 0.8 ) continue;

      //End track Quality Cuts
      //________________________________________________________________________

      
      //ESD code: obsolete 
      //lDcaPosToPrimVertex = TMath::Abs(pTrack->GetD(tPrimaryVtxPosition[0],
			//				tPrimaryVtxPosition[1],
			//				lMagneticField) );

      //lDcaNegToPrimVertex = TMath::Abs(nTrack->GetD(tPrimaryVtxPosition[0],
			//				tPrimaryVtxPosition[1],
			//				lMagneticField) );

      lDcaPosToPrimVertex = v0->DcaPosToPrimVertex();
      lDcaNegToPrimVertex = v0->DcaNegToPrimVertex();

        
      lOnFlyStatus = v0->GetOnFlyStatus();
      lChi2V0 = v0->Chi2V0();
      lDcaV0Daughters = v0->DcaV0Daughters();
      lDcaV0ToPrimVertex = v0->DcaV0ToPrimVertex();
      lV0CosineOfPointingAngle = v0->CosPointingAngle(tPrimaryVtxPosition);
      fTreeVariableV0CosineOfPointingAngle=lV0CosineOfPointingAngle;

      // Getting invariant mass infos directly from ESD
      lInvMassK0s        = v0->MassK0Short();
      lInvMassLambda     = v0->MassLambda();
      lInvMassAntiLambda = v0->MassAntiLambda();
      lAlphaV0 = v0->AlphaV0();
      lPtArmV0 = v0->PtArmV0();

      fTreeVariablePt = v0->Pt();
      fTreeVariableChi2V0 = lChi2V0; 
      fTreeVariableDcaV0ToPrimVertex = lDcaV0ToPrimVertex;
      fTreeVariableDcaV0Daughters = lDcaV0Daughters;
      fTreeVariableV0CosineOfPointingAngle = lV0CosineOfPointingAngle; 
      fTreeVariableV0Radius = lV0Radius;
      fTreeVariableDcaPosToPrimVertex = lDcaPosToPrimVertex;
      fTreeVariableDcaNegToPrimVertex = lDcaNegToPrimVertex;
      fTreeVariableInvMassK0s = lInvMassK0s;
      fTreeVariableInvMassLambda = lInvMassLambda;
      fTreeVariableInvMassAntiLambda = lInvMassAntiLambda;
      fTreeVariableRapK0Short = lRapK0Short;
      fTreeVariableRapLambda = lRapLambda;
      fTreeVariableAlphaV0 = lAlphaV0;
      fTreeVariablePtArmV0 = lPtArmV0;

      //Official means of acquiring N-sigmas 
      fTreeVariableNSigmasPosProton = fPIDResponse->NumberOfSigmasTPC( pTrack, AliPID::kProton );
      fTreeVariableNSigmasPosPion   = fPIDResponse->NumberOfSigmasTPC( pTrack, AliPID::kPion );
      fTreeVariableNSigmasNegProton = fPIDResponse->NumberOfSigmasTPC( nTrack, AliPID::kProton );
      fTreeVariableNSigmasNegPion   = fPIDResponse->NumberOfSigmasTPC( nTrack, AliPID::kPion );

//This requires an Invariant Mass Hypothesis afterwards
      fTreeVariableDistOverTotMom = TMath::Sqrt(
						TMath::Power( tDecayVertexV0[0] - lBestPrimaryVtxPos[0] , 2) +
						TMath::Power( tDecayVertexV0[1] - lBestPrimaryVtxPos[1] , 2) +
						TMath::Power( tDecayVertexV0[2] - lBestPrimaryVtxPos[2] , 2)
					);
      fTreeVariableDistOverTotMom /= (lV0TotalMomentum+1e-10); //avoid division by zero, to be sure

//------------------------------------------------
// Fill Tree! 
//------------------------------------------------

// The conditionals are meant to decrease excessive
// memory usage! 

//First Selection: Reject OnFly
      if( (lOnFlyStatus == 0 && fkUseOnTheFly == kFALSE) || (lOnFlyStatus != 0 && fkUseOnTheFly == kTRUE ) ){
         //Second Selection: rough 20-sigma band, parametric. 
         //K0Short: Enough to parametrize peak broadening with linear function.    
         Double_t lUpperLimitK0Short = (5.63707e-01) + (1.14979e-02)*fTreeVariablePt; 
         Double_t lLowerLimitK0Short = (4.30006e-01) - (1.10029e-02)*fTreeVariablePt;
         //Lambda: Linear (for higher pt) plus exponential (for low-pt broadening)
         //[0]+[1]*x+[2]*TMath::Exp(-[3]*x)
         Double_t lUpperLimitLambda = (1.13688e+00) + (5.27838e-03)*fTreeVariablePt + (8.42220e-02)*TMath::Exp(-(3.80595e+00)*fTreeVariablePt); 
         Double_t lLowerLimitLambda = (1.09501e+00) - (5.23272e-03)*fTreeVariablePt - (7.52690e-02)*TMath::Exp(-(3.46339e+00)*fTreeVariablePt);
         //Do Selection      
         if( (fTreeVariableInvMassLambda     < lUpperLimitLambda  && fTreeVariableInvMassLambda     > lLowerLimitLambda     ) || 
             (fTreeVariableInvMassAntiLambda < lUpperLimitLambda  && fTreeVariableInvMassAntiLambda > lLowerLimitLambda     ) || 
             (fTreeVariableInvMassK0s        < lUpperLimitK0Short && fTreeVariableInvMassK0s        > lLowerLimitK0Short    ) ){
             //Pre-selection in case this is AA...
             //if( fkIsNuclear == kFALSE ) fTree->Fill();
             //if( fkIsNuclear == kTRUE){ 
             //If this is a nuclear collision___________________
             // ... pre-filter with TPC, daughter eta selection
               //if( (fTreeVariableInvMassLambda     < lUpperLimitLambda  && fTreeVariableInvMassLambda     > lLowerLimitLambda 
               //       && TMath::Abs(fTreeVariableNSigmasPosProton) < 6.0 && TMath::Abs(fTreeVariableNSigmasNegPion) < 6.0 ) || 
               //    (fTreeVariableInvMassAntiLambda < lUpperLimitLambda  && fTreeVariableInvMassAntiLambda > lLowerLimitLambda 
               //       && TMath::Abs(fTreeVariableNSigmasNegProton) < 6.0 && TMath::Abs(fTreeVariableNSigmasPosPion) < 6.0 ) ||  
               //    (fTreeVariableInvMassK0s        < lUpperLimitK0Short && fTreeVariableInvMassK0s        > lLowerLimitK0Short 
               //       && TMath::Abs(fTreeVariableNSigmasNegPion)   < 6.0 && TMath::Abs(fTreeVariableNSigmasPosPion) < 6.0 ) ){
                  //insane test
                  if ( TMath::Abs(fTreeVariableNegEta)<0.8 && TMath::Abs(fTreeVariablePosEta)<0.8 ) fTree->Fill();
               //}
             //}//end nuclear_____________________________________
         }
      }

//------------------------------------------------
// Fill tree over.
//------------------------------------------------

   }// This is the end of the V0 loop

  // Post output data.
    PostData(1, fListHistV0);
    PostData(2, fTree);


}

//________________________________________________________________________
void AliAnalysisTaskExtractV0AOD::Terminate(Option_t *)
{
   // Draw result to the screen
   // Called once at the end of the query
   // This will draw the V0 candidate multiplicity, whose 
   // number of entries corresponds to the number of triggered events. 
   TList *cRetrievedList = 0x0;
   cRetrievedList = (TList*)GetOutputData(1);
   if(!cRetrievedList){
      Printf("ERROR - AliAnalysisTaskExtractV0AOD : ouput data container list not available\n");
      return;
   }		
   fHistV0MultiplicityForTrigEvt = dynamic_cast<TH1F*> (  cRetrievedList->FindObject("fHistV0MultiplicityForTrigEvt")  );
   if (!fHistV0MultiplicityForTrigEvt) {
      Printf("ERROR - AliAnalysisTaskExtractV0AOD : fHistV0MultiplicityForTrigEvt not available");
      return;
   }
   TCanvas *canCheck = new TCanvas("AliAnalysisTaskExtractV0AOD","V0 Multiplicity",10,10,510,510);
   canCheck->cd(1)->SetLogy();
   fHistV0MultiplicityForTrigEvt->SetMarkerStyle(22);
   fHistV0MultiplicityForTrigEvt->DrawCopy("E");
}

//________________________________________________________________________
void AliAnalysisTaskExtractV0AOD::CheckChargeV0(AliESDv0 *v0)
{
   // This function checks charge of negative and positive daughter tracks. 
   // If incorrectly defined (onfly vertexer), swaps out. 
   if( v0->GetParamN()->Charge() > 0 && v0->GetParamP()->Charge() < 0 ){
      //V0 daughter track swapping is required! Note: everything is swapped here... P->N, N->P
      Long_t lCorrectNidx = v0->GetPindex();
      Long_t lCorrectPidx = v0->GetNindex();
      Double32_t	lCorrectNmom[3];
      Double32_t	lCorrectPmom[3];
      v0->GetPPxPyPz( lCorrectNmom[0], lCorrectNmom[1], lCorrectNmom[2] );
      v0->GetNPxPyPz( lCorrectPmom[0], lCorrectPmom[1], lCorrectPmom[2] );

      AliExternalTrackParam	lCorrectParamN(
        v0->GetParamP()->GetX() , 
        v0->GetParamP()->GetAlpha() , 
        v0->GetParamP()->GetParameter() , 
        v0->GetParamP()->GetCovariance() 
      );
      AliExternalTrackParam	lCorrectParamP(
        v0->GetParamN()->GetX() , 
        v0->GetParamN()->GetAlpha() , 
        v0->GetParamN()->GetParameter() , 
        v0->GetParamN()->GetCovariance() 
      );
      lCorrectParamN.SetMostProbablePt( v0->GetParamP()->GetMostProbablePt() );
      lCorrectParamP.SetMostProbablePt( v0->GetParamN()->GetMostProbablePt() );

      //Get Variables___________________________________________________
      Double_t lDcaV0Daughters = v0 -> GetDcaV0Daughters();
      Double_t lCosPALocal     = v0 -> GetV0CosineOfPointingAngle(); 
      Bool_t lOnFlyStatusLocal = v0 -> GetOnFlyStatus();

      //Create Replacement Object_______________________________________
      AliESDv0 *v0correct = new AliESDv0(lCorrectParamN,lCorrectNidx,lCorrectParamP,lCorrectPidx);
      v0correct->SetDcaV0Daughters          ( lDcaV0Daughters   );
      v0correct->SetV0CosineOfPointingAngle ( lCosPALocal       );
      v0correct->ChangeMassHypothesis       ( kK0Short          );
      v0correct->SetOnFlyStatus             ( lOnFlyStatusLocal );

      //Reverse Cluster info..._________________________________________
      v0correct->SetClusters( v0->GetClusters( 1 ), v0->GetClusters ( 0 ) );

      *v0 = *v0correct;
      //Proper cleanup..._______________________________________________
      v0correct->Delete();
      v0correct = 0x0;

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