ROOT logo
//-------------------------------------------------------------------------
//     Task for the Analysis Framework 
// Creates a PWG2 specific AOD, from the ESD adding information required
// for PWG2 analysis. 
//  - Puts the per-track information into the AliPWG2AODTrack container, 
//    together with the link to the original AliAODTrack
//
//     Author: Adam Kisiel, OSU, Adam.Kisiel@cern.ch
//-------------------------------------------------------------------------
#include <TChain.h>
#include <TFile.h>
#include <TList.h> 

#include "AliAnalysisTaskPWG2ESDfilter.h"
#include "AliAnalysisManager.h"
#include "AliESDEvent.h"
#include "AliAODEvent.h"
#include "AliESDInputHandler.h"
#include "AliAODHandler.h"
#include "AliAnalysisFilter.h"
#include "AliESDtrack.h"
#include "AliESDMuonTrack.h"
#include "AliESDVertex.h"
#include "AliESDv0.h"
#include "AliESDkink.h"
#include "AliESDcascade.h"
#include "AliLog.h"
#include "AliPWG2AODTrack.h"

ClassImp(AliAnalysisTaskPWG2ESDfilter)

////////////////////////////////////////////////////////////////////////

AliAnalysisTaskPWG2ESDfilter::AliAnalysisTaskPWG2ESDfilter():
    fDebug(0),
    fTree(0x0),
    fESD(0x0),
    fAOD(0x0),
    fTreeA(0x0),
    fTrackFilter(0x0),
    fKinkFilter(0x0),
    fV0Filter(0x0),
    fPWG2AODTracks(0x0)
{
  // Default constructor
}

AliAnalysisTaskPWG2ESDfilter::AliAnalysisTaskPWG2ESDfilter(const char* name):
    AliAnalysisTask(name, "AnalysisTaskESDfilter"),
    fDebug(0),
    fTree(0x0),
    fESD(0x0),
    fAOD(0x0),
    fTreeA(0x0),
    fTrackFilter(0x0),
    fKinkFilter(0x0),
    fV0Filter(0x0),
    fPWG2AODTracks(0x0)
{
  // Default constructor
    DefineInput (0, TChain::Class());
    DefineOutput(0, TTree::Class());
}

AliAnalysisTaskPWG2ESDfilter::AliAnalysisTaskPWG2ESDfilter(const AliAnalysisTaskPWG2ESDfilter &task):
  AliAnalysisTask(),
  fDebug(0),
  fTree(0x0),
  fESD(0x0),
  fAOD(0x0),
  fTreeA(0x0),
  fTrackFilter(0x0),
  fKinkFilter(0x0),
  fV0Filter(0x0),
  fPWG2AODTracks(0x0)
{
  // Copy
  fDebug = task.fDebug;
  fTree = task.fTree;
  fESD = task.fESD;
  fAOD =  task.fAOD;
  fTreeA = task.fTreeA;
  fTrackFilter = task.fTrackFilter;
  fKinkFilter = task.fKinkFilter;
  fV0Filter = task.fV0Filter;
  fPWG2AODTracks = task.fPWG2AODTracks;
}

AliAnalysisTaskPWG2ESDfilter& AliAnalysisTaskPWG2ESDfilter::operator=(const AliAnalysisTaskPWG2ESDfilter &task)
{
  // Assignment
  if (&task == this) return *this;
  TTask::operator=(task);

  fDebug = task.fDebug;
  fTree = task.fTree;
  fESD = task.fESD;
  fAOD =  task.fAOD;
  fTreeA = task.fTreeA;
  fTrackFilter = task.fTrackFilter;
  fKinkFilter = task.fKinkFilter;
  fV0Filter = task.fV0Filter;
  fPWG2AODTracks = task.fPWG2AODTracks;

  return *this;
}

void AliAnalysisTaskPWG2ESDfilter::CreateOutputObjects()
{
// Create the output container
    if (fDebug > 1) AliInfo("CreateOutPutData() \n");
    AliAODHandler* handler = (AliAODHandler*) ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
    
    fAOD   = handler->GetAOD();
    fTreeA = handler->GetTree();
    fTreeA->GetUserInfo()->Add(fTrackFilter);

    // *** PWG2 specific ***

    fPWG2AODTracks = new TClonesArray("AliPWG2AODTrack", 0);
    const char *name = "pwg2aodtracks";
    fPWG2AODTracks->SetName(name);

    fAOD->AddObject(fPWG2AODTracks);

    //    TBranch *newBranch = fTreeA->Branch(name, &fPWG2AODTracks);
    fTreeA->Branch(name, &fPWG2AODTracks);
    fTreeA->GetUserInfo()->Add(fPWG2AODTracks);

    // --- END PWG2 specific ---
}

void AliAnalysisTaskPWG2ESDfilter::Init()
{
    // Initialization
    if (fDebug > 1) AliInfo("Init() \n");
    // Call configuration file
}

void AliAnalysisTaskPWG2ESDfilter::ConnectInputData(Option_t */*option*/)
{
// Connect the input data
//
    if (fDebug > 1) AliInfo("ConnectInputData() \n");
    // Input 
    AliESDInputHandler* esdH = (AliESDInputHandler*) 
	((AliAnalysisManager::GetAnalysisManager())->GetInputEventHandler());
    fESD = (AliESDEvent*) esdH->GetEvent();
    fTree = esdH->GetTree();
}

void AliAnalysisTaskPWG2ESDfilter::Exec(Option_t */*option*/)
{
// Execute analysis for current event
//
    // ESD Filter analysis task executed for each event
    AliESD* old = fESD->GetAliESDOld();
    
    Long64_t ientry = fTree->GetReadEntry();
    printf("Filter: Analysing event # %5d\n", (Int_t) ientry);

    // set arrays and pointers
    Double_t pos[3];
    Double_t p[3];
    Double_t covVtx[6];
    Double_t covTr[21];
    //    Double_t pid[10];

    for (Int_t i = 0; i < 6; i++)  covVtx[i] = 0.;
    for (Int_t i = 0; i < 21; i++) covTr [i] = 0.;

    // *** PWG2 specific ***

    Double_t tpcentrancepoint[3];
    Double_t tpcexitpoint[3];
    TBits    sharemap;
    TBits    clustermap;

    for (Int_t i = 0; i < 3; i++)  { tpcentrancepoint[i] = 0.; tpcexitpoint[i] = 0; }

    // --- END PWG2 specific ---

    
  // loop over events and fill them
  
  // Multiplicity information needed by the header (to be revised!)
    Int_t nTracks    = fESD->GetNumberOfTracks();
    Int_t nPosTracks = 0;
    for (Int_t iTrack = 0; iTrack < nTracks; ++iTrack) 
	if (fESD->GetTrack(iTrack)->GetSign()> 0) nPosTracks++;
    
    // Update the header

    AliAODHeader* header = dynamic_cast<AliAODHeader*>(fAOD->GetHeader());
    if(!header) AliFatal("Not a standard AOD");
    header->SetRunNumber(fESD->GetRunNumber());
    if (old) {
	header->SetBunchCrossNumber(0);
	header->SetOrbitNumber(0);
	header->SetPeriodNumber(0);
	header->SetEventType(0);
	header->SetMuonMagFieldScale(-999.);
	header->SetCentrality(0);
    } else {
	header->SetBunchCrossNumber(fESD->GetBunchCrossNumber());
	header->SetOrbitNumber(fESD->GetOrbitNumber());
	header->SetPeriodNumber(fESD->GetPeriodNumber());
	header->SetEventType(fESD->GetEventType());
	header->SetMuonMagFieldScale(-999.);
	header->SetCentrality(0);
    }
    
    header->SetTriggerMask(fESD->GetTriggerMask()); 
    header->SetTriggerCluster(fESD->GetTriggerCluster());
    header->SetMagneticField(fESD->GetMagneticField());
    header->SetZDCN1Energy(fESD->GetZDCN1Energy());
    header->SetZDCP1Energy(fESD->GetZDCP1Energy());
    header->SetZDCN2Energy(fESD->GetZDCN2Energy());
    header->SetZDCP2Energy(fESD->GetZDCP2Energy());
    header->SetZDCEMEnergy(fESD->GetZDCEMEnergy(0),fESD->GetZDCEMEnergy(1));
    header->SetRefMultiplicity(nTracks);
    header->SetRefMultiplicityPos(nPosTracks);
    header->SetRefMultiplicityNeg(nTracks - nPosTracks);

    
    Int_t nV0s      = fESD->GetNumberOfV0s();
    Int_t nCascades = fESD->GetNumberOfCascades();
    Int_t nKinks    = fESD->GetNumberOfKinks();
    //    Int_t nVertices = nV0s + nCascades + nKinks + 1 /* = prim. vtx*/;
    //    Int_t nJets     = 0;
    //    Int_t nCaloClus = fESD->GetNumberOfCaloClusters();
    //    Int_t nFmdClus  = 0;
    //    Int_t nPmdClus  = fESD->GetNumberOfPmdTracks();
    
    printf("   NV0=%d  NCASCADES=%d  NKINKS=%d\n", nV0s, nCascades, nKinks);

//    fAOD->ResetStd(nTracks, nVertices, nV0s+nCascades, nJets, nCaloClus, nFmdClus, nPmdClus);

    AliAODTrack *aodTrack;
    
    
    // Array to take into account the tracks already added to the AOD
    Bool_t * usedTrack = NULL;
    if (nTracks>0) {
	usedTrack = new Bool_t[nTracks];
	for (Int_t iTrack=0; iTrack<nTracks; ++iTrack) usedTrack[iTrack]=kFALSE;
    }
    // Array to take into account the V0s already added to the AOD
    Bool_t * usedV0 = NULL;
    if (nV0s>0) {
	usedV0 = new Bool_t[nV0s];
	for (Int_t iV0=0; iV0<nV0s; ++iV0) usedV0[iV0]=kFALSE;
    }
    // Array to take into account the kinks already added to the AOD
    Bool_t * usedKink = NULL;
    if (nKinks>0) {
	usedKink = new Bool_t[nKinks];
	for (Int_t iKink=0; iKink<nKinks; ++iKink) usedKink[iKink]=kFALSE;
    }
    
    // Access to the AOD container of vertices
    TClonesArray &vertices = *(fAOD->GetVertices());
    Int_t jVertices=0;
    
    // Access to the AOD container of tracks
    TClonesArray &tracks = *(fAOD->GetTracks());
    Int_t jTracks=0; 
    Int_t pTracks=0;

    // Add primary vertex. The primary tracks will be defined
    // after the loops on the composite objects (V0, cascades, kinks)
    const AliESDVertex *vtx = fESD->GetPrimaryVertex();
    
    vtx->GetXYZ(pos); // position
    vtx->GetCovMatrix(covVtx); //covariance matrix
    
    AliAODVertex * primary = new(vertices[jVertices++])
	AliAODVertex(pos, covVtx, vtx->GetChi2toNDF(), NULL, AliAODVertex::kPrimary);
    primary->Print();


    // Create vertices starting from the most complex objects
    Double_t chi2 = 0.;
    
    // Cascades
    for (Int_t nCascade = 0; nCascade < nCascades; ++nCascade) {
	AliESDcascade *cascade = fESD->GetCascade(nCascade);
	
	cascade->GetXYZ(pos[0], pos[1], pos[2]);

	if (!old) {
	    chi2 = vtx->GetChi2toNDF();
	    cascade->GetPosCovXi(covVtx);
	} else {
	    chi2 = -999.;
	}
	// Add the cascade vertex
	AliAODVertex * vcascade = new(vertices[jVertices++]) AliAODVertex(pos,
									  covVtx,
									  chi2, // = chi2/NDF since NDF = 2*2-3 (AM)
									  primary,
									  AliAODVertex::kCascade);
	
	primary->AddDaughter(vcascade);
	
	// Add the V0 from the cascade. The ESD class have to be optimized...
	// Now we have to search for the corresponding Vo in the list of V0s
	// using the indeces of the positive and negative tracks
	
	Int_t posFromV0 = cascade->GetPindex();
	Int_t negFromV0 = cascade->GetNindex();
	
      
	AliESDv0 * v0 = 0x0;
	Int_t indV0 = -1;
	
	for (Int_t iV0=0; iV0<nV0s; ++iV0) {
	    
	    v0 = fESD->GetV0(iV0);
	    Int_t posV0 = v0->GetPindex();
	    Int_t negV0 = v0->GetNindex();
	    
	    if (posV0==posFromV0 && negV0==negFromV0) {
		indV0 = iV0;
		break;
	    }
	}
	
	AliAODVertex * vV0FromCascade = 0x0;
	
	if (indV0>-1 && !usedV0[indV0] ) {
	    
	    // the V0 exists in the array of V0s and is not used
	    
	    usedV0[indV0] = kTRUE;
	    
	    v0->GetXYZ(pos[0], pos[1], pos[2]);
	    if (!old) {
		chi2 = v0->GetChi2V0();
		v0->GetPosCov(covVtx);
	    } else {
		chi2 = -999.;
	    }

	    vV0FromCascade = new(vertices[jVertices++]) AliAODVertex(pos,
								     covVtx,
								     chi2, // = chi2/NDF since NDF = 2*2-3 (AM)
								     vcascade,
								     AliAODVertex::kV0);
	} else {
	    
	    // the V0 doesn't exist in the array of V0s or was used
//	    cerr << "Error: event " << fESD->GetEventNumberInFile() << " cascade " << nCascade
//		 << " The V0 " << indV0 
//		 << " doesn't exist in the array of V0s or was used!" << endl;
	    
	    cascade->GetXYZ(pos[0], pos[1], pos[2]);
	    
	    if (!old) {
		chi2 = v0->GetChi2V0();
		cascade->GetPosCov(covVtx);
	    } else {
		chi2 = -999.;
	    }

	    vV0FromCascade = new(vertices[jVertices++]) AliAODVertex(pos,
								     covVtx,
								     chi2, // = chi2/NDF since NDF = 2*2-3 (AM)
								     vcascade,
								     AliAODVertex::kV0);
	    vcascade->AddDaughter(vV0FromCascade);
	}
	
	// Add the positive tracks from the V0
	
	if (posFromV0>-1 && !usedTrack[posFromV0]) {
	    
	    usedTrack[posFromV0] = kTRUE;
	    
	    AliESDtrack *esdTrack = fESD->GetTrack(posFromV0);
	    esdTrack->GetPxPyPz(p);
	    esdTrack->GetXYZ(pos);
	    esdTrack->GetCovarianceXYZPxPyPz(covTr);
	    //	    esdTrack->GetESDpid(pid);
	    
	    vV0FromCascade->AddDaughter(aodTrack =
					new(tracks[jTracks++]) AliAODTrack(esdTrack->GetID(),
									   esdTrack->GetLabel(), 
									   p, 
									   kTRUE,
									   pos,
									   kFALSE,
									   covTr, 
									   (Short_t)esdTrack->GetSign(),
									   esdTrack->GetITSClusterMap(), 
									   // pid,
									   vV0FromCascade,
									   kTRUE,  // check if this is right
									   kFALSE, // check if this is right
									   AliAODTrack::kFromDecayVtx)
		);
	    aodTrack->ConvertAliPIDtoAODPID();
	}
	else {
//	    cerr << "Error: event " << fESD->GetEventNumberInFile() << " cascade " << nCascade
//		 << " track " << posFromV0 << " has already been used!" << endl;
	}
	
	// Add the negative tracks from the V0
	
	if (negFromV0>-1 && !usedTrack[negFromV0]) {
	    
	    usedTrack[negFromV0] = kTRUE;
	    
	    AliESDtrack *esdTrack = fESD->GetTrack(negFromV0);
	    esdTrack->GetPxPyPz(p);
	    esdTrack->GetXYZ(pos);
	    esdTrack->GetCovarianceXYZPxPyPz(covTr);
	    //	    esdTrack->GetESDpid(pid);
	    
	    vV0FromCascade->AddDaughter(aodTrack =
					new(tracks[jTracks++]) AliAODTrack(esdTrack->GetID(),
									   esdTrack->GetLabel(),
									   p,
									   kTRUE,
									   pos,
									   kFALSE,
									   covTr, 
									   (Short_t)esdTrack->GetSign(),
									   esdTrack->GetITSClusterMap(), 
									   //pid,
									   vV0FromCascade,
									   kTRUE,  // check if this is right
									   kFALSE, // check if this is right
									   AliAODTrack::kFromDecayVtx)
		);
	    aodTrack->ConvertAliPIDtoAODPID();
	}
	else {
//	    cerr << "Error: event " << fESD->GetEventNumberInFile() << " cascade " << nCascade
//		 << " track " << negFromV0 << " has already been used!" << endl;
	}
	
	// Add the bachelor track from the cascade
	
	Int_t bachelor = cascade->GetBindex();
	
	if(bachelor>-1 && !usedTrack[bachelor]) {
	    
	    usedTrack[bachelor] = kTRUE;
	    
	    AliESDtrack *esdTrack = fESD->GetTrack(bachelor);
	    esdTrack->GetPxPyPz(p);
	    esdTrack->GetXYZ(pos);
	    esdTrack->GetCovarianceXYZPxPyPz(covTr);
	    //	    esdTrack->GetESDpid(pid);
	    
	    vcascade->AddDaughter(aodTrack =
				  new(tracks[jTracks++]) AliAODTrack(esdTrack->GetID(),
								     esdTrack->GetLabel(),
								     p,
								     kTRUE,
								     pos,
								     kFALSE,
								     covTr, 
								     (Short_t)esdTrack->GetSign(),
								     esdTrack->GetITSClusterMap(), 
								     //pid,
								     vcascade,
								     kTRUE,  // check if this is right
								     kFALSE, // check if this is right
								     AliAODTrack::kFromDecayVtx)
		);
	    aodTrack->ConvertAliPIDtoAODPID();
	}
	else {
//	    cerr << "Error: event " << fESD->GetEventNumberInFile() << " cascade " << nCascade
//		 << " track " << bachelor << " has already been used!" << endl;
	}
	
	// Add the primary track of the cascade (if any)
	
    } // end of the loop on cascades
   
    // V0s
    
    for (Int_t nV0 = 0; nV0 < nV0s; ++nV0) {
	
	if (usedV0[nV0]) continue; // skip if aready added to the AOD
	
	AliESDv0 *v0 = fESD->GetV0(nV0);
	
	v0->GetXYZ(pos[0], pos[1], pos[2]);

	if (!old) {
	    chi2 = v0->GetChi2V0();
	    v0->GetPosCov(covVtx);
	} else {
	    chi2 = -999.;
	}


	AliAODVertex * vV0 = 
	    new(vertices[jVertices++]) AliAODVertex(pos,
						    covVtx,
						    chi2, // = chi2/NDF since NDF = 2*2-3
						    primary,
						    AliAODVertex::kV0);
	primary->AddDaughter(vV0);
	
	Int_t posFromV0 = v0->GetPindex();
	Int_t negFromV0 = v0->GetNindex();
	
	// Add the positive tracks from the V0
	
	if (posFromV0>-1 && !usedTrack[posFromV0]) {
	    
	    usedTrack[posFromV0] = kTRUE;
	    
	    AliESDtrack *esdTrack = fESD->GetTrack(posFromV0);
	    esdTrack->GetPxPyPz(p);
	    esdTrack->GetXYZ(pos);
	    esdTrack->GetCovarianceXYZPxPyPz(covTr);
	    //esdTrack->GetESDpid(pid);
	    
	    vV0->AddDaughter(aodTrack =
			     new(tracks[jTracks++]) AliAODTrack(esdTrack->GetID(),
								esdTrack->GetLabel(), 
								p, 
								kTRUE,
								pos,
								kFALSE,
								covTr, 
								(Short_t)esdTrack->GetSign(),
								esdTrack->GetITSClusterMap(), 
								//pid,
								vV0,
								kTRUE,  // check if this is right
								kFALSE, // check if this is right
								AliAODTrack::kFromDecayVtx)
		);
	    aodTrack->ConvertAliPIDtoAODPID();
	}
	else {
//	    cerr << "Error: event " << fESD->GetEventNumberInFile() << " V0 " << nV0
//		 << " track " << posFromV0 << " has already been used!" << endl;
	}
	
	// Add the negative tracks from the V0
	
	if (negFromV0>-1 && !usedTrack[negFromV0]) {
	    
	    usedTrack[negFromV0] = kTRUE;
	    
	    AliESDtrack *esdTrack = fESD->GetTrack(negFromV0);
	    esdTrack->GetPxPyPz(p);
	    esdTrack->GetXYZ(pos);
	    esdTrack->GetCovarianceXYZPxPyPz(covTr);
	    //esdTrack->GetESDpid(pid);
	    
	    vV0->AddDaughter(aodTrack =
			     new(tracks[jTracks++]) AliAODTrack(esdTrack->GetID(),
								esdTrack->GetLabel(),
								p,
								kTRUE,
								pos,
								kFALSE,
								covTr, 
								(Short_t)esdTrack->GetSign(),
								esdTrack->GetITSClusterMap(), 
								//pid,
								vV0,
								kTRUE,  // check if this is right
								kFALSE, // check if this is right
								AliAODTrack::kFromDecayVtx)
		);
	    aodTrack->ConvertAliPIDtoAODPID();
	}
	else {
//	    cerr << "Error: event " << fESD->GetEventNumberInFile() << " V0 " << nV0
//		 << " track " << negFromV0 << " has already been used!" << endl;
	}
	
    } // end of the loop on V0s
    
    // Kinks: it is a big mess the access to the information in the kinks
    // The loop is on the tracks in order to find the mother and daugther of each kink
    
    
    for (Int_t iTrack=0; iTrack<nTracks; ++iTrack) {
	
	
	AliESDtrack * esdTrack = fESD->GetTrack(iTrack);
	
	Int_t ikink = esdTrack->GetKinkIndex(0);
	
	if (ikink && nKinks) {
	    // Negative kink index: mother, positive: daughter
	    
	    // Search for the second track of the kink
	    
	    for (Int_t jTrack = iTrack+1; jTrack<nTracks; ++jTrack) {
		
		AliESDtrack * esdTrack1 = fESD->GetTrack(jTrack);
		
		Int_t jkink = esdTrack1->GetKinkIndex(0);
		
		if ( TMath::Abs(ikink)==TMath::Abs(jkink) ) {
		    
		    // The two tracks are from the same kink
		    
		    if (usedKink[TMath::Abs(ikink)-1]) continue; // skip used kinks
		    
		    Int_t imother = -1;
		    Int_t idaughter = -1;
		    
		    if (ikink<0 && jkink>0) {
			
			imother = iTrack;
			idaughter = jTrack;
		    }
		    else if (ikink>0 && jkink<0) {
			
			imother = jTrack;
			idaughter = iTrack;
		    }
		    else {
//			cerr << "Error: Wrong combination of kink indexes: "
//			     << ikink << " " << jkink << endl;
			continue;
		    }
		    
		    // Add the mother track
		    
		    AliAODTrack * mother = NULL;
		    
		    if (!usedTrack[imother]) {
			
			usedTrack[imother] = kTRUE;
			
			AliESDtrack *esdTrackC = fESD->GetTrack(imother);
			esdTrackC->GetPxPyPz(p);
			esdTrackC->GetXYZ(pos);
			esdTrackC->GetCovarianceXYZPxPyPz(covTr);
			//esdTrackC->GetESDpid(pid);
			
			mother = 
			    new(tracks[jTracks++]) AliAODTrack(esdTrackC->GetID(),
							       esdTrackC->GetLabel(),
							       p,
							       kTRUE,
							       pos,
							       kFALSE,
							       covTr, 
							       (Short_t)esdTrackC->GetSign(),
							       esdTrackC->GetITSClusterMap(), 
							       //pid,
							       primary,
							       kTRUE, // check if this is right
							       kTRUE, // check if this is right
							       AliAODTrack::kPrimary);
			primary->AddDaughter(mother);
			mother->ConvertAliPIDtoAODPID();
		    }
		    else {
//			cerr << "Error: event " << fESD->GetEventNumberInFile() << " kink " << TMath::Abs(ikink)-1
//			     << " track " << imother << " has already been used!" << endl;
		  }
		    
		    // Add the kink vertex
		    AliESDkink * kink = fESD->GetKink(TMath::Abs(ikink)-1);
		    
		    AliAODVertex * vkink = 
			new(vertices[jVertices++]) AliAODVertex(kink->GetPosition(),
								NULL,
								0.,
								mother,
								AliAODVertex::kKink);
		    // Add the daughter track
		  
		    AliAODTrack * daughter = NULL;
		    
		    if (!usedTrack[idaughter]) {
			
			usedTrack[idaughter] = kTRUE;
			
			AliESDtrack *esdTrackC = fESD->GetTrack(idaughter);
			esdTrackC->GetPxPyPz(p);
			esdTrackC->GetXYZ(pos);
			esdTrackC->GetCovarianceXYZPxPyPz(covTr);
			//esdTrackC->GetESDpid(pid);
			
			daughter = 
			    new(tracks[jTracks++]) AliAODTrack(esdTrackC->GetID(),
							       esdTrackC->GetLabel(),
							       p,
							       kTRUE,
							       pos,
							       kFALSE,
							       covTr, 
							       (Short_t)esdTrackC->GetSign(),
							       esdTrackC->GetITSClusterMap(), 
							       //pid,
							       vkink,
							       kTRUE, // check if this is right
							       kTRUE, // check if this is right
							       AliAODTrack::kPrimary);
			vkink->AddDaughter(daughter);
			daughter->ConvertAliPIDtoAODPID();
		    }
		    else {
//			cerr << "Error: event " << fESD->GetEventNumberInFile() << " kink " << TMath::Abs(ikink)-1
//			     << " track " << idaughter << " has already been used!" << endl;
		    }
		}
	    }
	}      
    }
    
  
    // Tracks (primary and orphan)

    printf("NUMBER OF TRACKS %5d\n", nTracks);
    
    // *** PWG2 specific ***
    
    fPWG2AODTracks->Delete();
    fPWG2AODTracks->Expand(nTracks);
    TClonesArray &tPWG2AODTracks = *fPWG2AODTracks;
    
    // --- END PWG2 specific ---
	
    for (Int_t nTrack = 0; nTrack < nTracks; ++nTrack) {
	
	if (usedTrack[nTrack]) continue;
	AliESDtrack *esdTrack = fESD->GetTrack(nTrack);
	UInt_t selectInfo = 0;
	//
	// Track selection
	if (fTrackFilter) {
	    selectInfo = fTrackFilter->IsSelected(esdTrack);
	    if (!selectInfo) continue;
	}
	
	//
	esdTrack->GetPxPyPz(p);
	esdTrack->GetXYZ(pos);
	esdTrack->GetCovarianceXYZPxPyPz(covTr);
	//esdTrack->GetESDpid(pid);
	
	Float_t impactXY, impactZ;
	
	esdTrack->GetImpactParameters(impactXY,impactZ);

	// *** PWG2 specific ***
	
	sharemap = esdTrack->GetTPCSharedMap();
	clustermap = esdTrack->GetTPCClusterMap();
	
	esdTrack->GetInnerXYZ(tpcentrancepoint);
	tpcentrancepoint[2] -= pos[2];
	
	esdTrack->GetOuterXYZ(tpcexitpoint);
	tpcexitpoint[2] -= pos[2];

	// --- END PWG2 specific ---

	
	if (impactXY<3) {
	    // track inside the beam pipe
	    
	    primary->AddDaughter(aodTrack =
				 new(tracks[jTracks++]) AliAODTrack(esdTrack->GetID(),
								    esdTrack->GetLabel(),
								    p,
								    kTRUE,
								    pos,
								    kFALSE,
								    covTr, 
								    (Short_t)esdTrack->GetSign(),
								    esdTrack->GetITSClusterMap(), 
								    //pid,
								    primary,
								    kTRUE, // check if this is right
								    kTRUE, // check if this is right
								    AliAODTrack::kPrimary, 
								    selectInfo)
		);
	    aodTrack->ConvertAliPIDtoAODPID();
	    
	    // *** PWG2 specific ****
	    // Add the PWG2 info into the AOD
	    new (tPWG2AODTracks[pTracks++]) AliPWG2AODTrack(tpcentrancepoint,
							    tpcexitpoint,
							    sharemap,
							    clustermap,
							    aodTrack);
	    // --- END PWG2 specific ---
	}
	else {
	    // outside the beam pipe: orphan track
	    aodTrack =
		new(tracks[jTracks++]) AliAODTrack(esdTrack->GetID(),
						   esdTrack->GetLabel(),
						   p,
						   kTRUE,
						   pos,
						   kFALSE,
						   covTr, 
						   (Short_t)esdTrack->GetSign(),
						   esdTrack->GetITSClusterMap(), 
						   //pid,
						   NULL,
						   kFALSE, // check if this is right
						   kFALSE, // check if this is right
						   AliAODTrack::kOrphan,
						   selectInfo);
	    aodTrack->ConvertAliPIDtoAODPID();

	    // *** PWG2 specific ****
	    // Add the PWG2 info into the AOD
	    new (tPWG2AODTracks[pTracks++]) AliPWG2AODTrack(tpcentrancepoint,
							    tpcexitpoint,
							    sharemap,
							    clustermap,
							    aodTrack);
	    // --- END PWG2 specific ---
	}	
    } // end of loop on tracks
    
    // muon tracks
    Int_t nMuTracks = fESD->GetNumberOfMuonTracks();
    for (Int_t nMuTrack = 0; nMuTrack < nMuTracks; ++nMuTrack) {
	
	AliESDMuonTrack *esdMuTrack = fESD->GetMuonTrack(nMuTrack);     
	p[0] = esdMuTrack->Px(); 
	p[1] = esdMuTrack->Py(); 
	p[2] = esdMuTrack->Pz();
	pos[0] = primary->GetX(); 
	pos[1] = primary->GetY(); 
	pos[2] = primary->GetZ();
	
	// has to be changed once the muon pid is provided by the ESD
	//for (Int_t i = 0; i < 10; pid[i++] = 0.) {}
	//pid[AliAODTrack::kMuon]=1.;
	
	primary->AddDaughter(
	    new(tracks[jTracks++]) AliAODTrack(0, // no ID provided
					       0, // no label provided
					       p,
					       kTRUE,
					       pos,
					       kFALSE,
					       NULL, // no covariance matrix provided
					       (Short_t)-99, // no charge provided
					       0, // no ITSClusterMap
					       //pid,
					       primary,
					       kTRUE,  // check if this is right
					       kTRUE,  // not used for vertex fit
					       AliAODTrack::kPrimary)
	    );
    }
  
    printf("   jTracks=%d  pTracks=%d PWG2=%d\n", jTracks, pTracks, fPWG2AODTracks->GetEntries());

    delete [] usedTrack;
    delete [] usedV0;
    delete [] usedKink;


    //
    PostData(0, fTreeA);
    return;
}

void AliAnalysisTaskPWG2ESDfilter::Terminate(Option_t */*option*/)
{
// Terminate analysis
//
    if (fDebug > 1) printf("AnalysisESDfilter: Terminate() \n");
}

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