ROOT logo
/*************************************************************************
* Copyright(c) 1998-2008, 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.                  * 
**************************************************************************/

//////////////////////////////////////////////////////////////////////////
// Class AliAnalysisTaskSPDdNdEta                                       //
// Analysis task for dN/dEta reconstruction with the SPD                //
//                                                                      //
// Author:  M. Nicassio (INFN Bari)                                     //
// Contact: Maria.Nicassio@ba.infn.it, Domenico.Elia@ba.infn.it         //
//////////////////////////////////////////////////////////////////////////

#include "TChain.h"
#include "TTree.h"

#include "TH1F.h"
#include "TH2F.h" 
#include "TH3F.h" 
#include "TList.h"
#include "TGeoGlobalMagField.h"
#include "AliMagF.h"
#include "AliAnalysisManager.h"

#include "AliMultiplicity.h"
#include "AliESDEvent.h"  
#include "AliESDInputHandler.h"

#include "AliESDInputHandlerRP.h"
#include "AliESDVZERO.h"
#include "../ITS/AliITSRecPoint.h"
#include "AliCDBPath.h"
#include "AliCDBManager.h"
#include "AliCDBEntry.h"
#include "AliCDBStorage.h"
#include "AliGeomManager.h"

#include "AliMCEventHandler.h"
#include "AliMCEvent.h"
#include "AliStack.h"
#include "AliTrackReference.h"

#include "AliGenHijingEventHeader.h" 
#include "AliGenDPMjetEventHeader.h"

#include "AliLog.h"

#include "AliTriggerAnalysis.h" 
#include "AliPhysicsSelection.h"
#include "AliTrackletAlg.h" 
#include "AliAnalysisTaskSPDdNdEta.h"


ClassImp(AliAnalysisTaskSPDdNdEta)
//________________________________________________________________________
AliAnalysisTaskSPDdNdEta::AliAnalysisTaskSPDdNdEta(const char *name) 
  : AliAnalysisTaskSE(name), 

  fmyESD(0), 
  fOutput(0), 
  
  fUseMC(kFALSE), 
  fTrigger(AliTriggerAnalysis::kAcceptAll),
  fTR(kFALSE),
  fRecoTracklets(kFALSE),

  fMCCentralityBin(AliAnalysisTaskSPDdNdEta::kall),
  fCentrLowLim(0),
  fCentrUpLim(0),
  fCentrEst(kFALSE),
  fMinClMultLay2(0),
  fMaxClMultLay2(0),
  fMinMultV0(0),
  fVtxLim(0),
  fPartSpecies(0),

  fPhiWindow(0),
  fThetaWindow(0),
  fPhiShift(0),
  fRemoveClustersFromOverlaps(0),
  fPhiOverlapCut(0),
  fZetaOverlapCut(0),
  fPhiRotationAngle(0),
  fPhiWindowAna(0),

  fMultReco(0), 

  fV0Ampl(0),
  fHistSPDRAWMultvsZ(0),
  fHistSPDRAWMultvsZTriggCentrEvts(0),
  fHistSPDRAWMultvsZCentrEvts(0),
  fHistSPDRAWEtavsZ(0),
 
  fHistSPDmultEtacut(0),
  fHistSPDmult(0),
  fHistSPDmultcl1(0),
  fHistSPDmultcl2(0),
  fHistSPDmultcl1vscl2(0),
  fHistSPDmultvscl1(0),
  fHistSPDmultvscl2(0),

  fHistSPDeta(0),
  fHistSPDphi(0),
  fHistSPDtheta(0),
  fHistSPDdePhi(0),
  fHistSPDphivsSPDeta(0),  
  fHistSPDdeTheta(0),
  fHistSPDvtx(0),
  fHistSPDvtxAnalysis(0),
  fHistSPDdePhideTheta(0),

  fHistSPDphicl1(0),
  fHistSPDphicl2(0),

  fHistBkgCorrDen(0),
  fHistReconstructedProtons(0),
  fHistReconstructedKaons(0),
  fHistReconstructedPions(0),
  fHistReconstructedOthers(0), 
  fHistReconstructedSec(0),
  fHistBkgCorrDenPrimGen(0),
  fHistBkgCombLabels(0),
  fHistBkgCorrNum(0),
  fHistAlgEffNum(0),
  fHistNonDetectableCorrDen(0),

  fHistNonDetectableCorrNum(0),
  fHistProtons(0),
  fHistKaons(0),
  fHistPions(0),
  fHistOthers(0),
  fHistAllPrimaries(0),
  fHistTrackCentrEvts(0),
  fHistTrackTrigCentrEvts(0),

  fHistAllEvts(0),
  fHistCentrEvts(0),
  fHistTrigCentrEvts(0),
  fHistSelEvts(0),

  fHistMCmultEtacut(0),
  fHistMCmultEtacutvsSPDmultEtacut(0),
  fHistMCmultEtacutvsSPDmultcl1(0),
  fHistMCmultEtacutvsSPDmultcl2(0),
 
  fHistMCvtxx(0),
  fHistMCvtxy(0),
  fHistMCvtxz(0),

  fHistRecvsGenImpactPar(0),
  fHistMCNpart(0), 

  fHistdPhidThetaPP(0),
  fHistdPhidThetaSS(0),
  fHistdPhidThetaComb(0),

  fHistDeVtx(0)

{

  // Constructor

  // Define input and output slots here
  // Input slot #0 works with a TChain
//  DefineInput(0, TChain::Class());
  // Output slot #0 id reserved by the base class for AOD
  DefineOutput(1, TList::Class());  

}
//________________________________________________________________________
AliAnalysisTaskSPDdNdEta::~AliAnalysisTaskSPDdNdEta()
{

  // Destructor

  // histograms are in the output list and deleted when the output
  // list is deleted by the TSelector dtor
  delete fMultReco;

  if (fOutput && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) {
    delete fOutput;
    fOutput = 0;
  }

}
//________________________________________________________________________
void AliAnalysisTaskSPDdNdEta::UserCreateOutputObjects() 
{
  if (fRecoTracklets) {
    AliCDBManager *man = AliCDBManager::Instance();
    man->SetDefaultStorage("alien://Folder=/alice/data/2010/OCDB");
    if (fUseMC) man->SetDefaultStorage("alien://Folder=/alice/simulation/2008/v4-15-Release/Residual");
    else man->SetDefaultStorage("alien://Folder=/alice/data/2010/OCDB");
    man->SetRun(137161); 
    AliCDBEntry* obj = man->Get(AliCDBPath("GRP", "Geometry", "Data"));
    if(!obj) AliFatal("Unable to load geometry from CDB!");
    AliGeomManager::SetGeometry((TGeoManager*) obj->GetObject());
    AliGeomManager::GetNalignable("ITS");
    AliGeomManager::ApplyAlignObjsFromCDB("ITS");
  }

  fMultReco = new AliTrackletAlg();

  // Create histograms
  fOutput = new TList();
  fOutput->SetOwner(); 

  Int_t nBinVtx = 40;
  Double_t MaxVtx = 20.;

  Int_t nBinMultCorr = 200;
  Float_t nMaxMult = 20000.;
  Double_t binLimMultCorr[nBinMultCorr+1];
  binLimMultCorr[0] = 0.;
  binLimMultCorr[1] = 1.;
  for (Int_t i = 2; i<=nBinMultCorr;++i) {
    binLimMultCorr[i] = (i-1)*nMaxMult/nBinMultCorr;
  }

  Int_t nBinEtaCorr = 60; 
  Float_t etaMax = 3.;
  Float_t etaMin = -3.;
  Double_t *binLimEtaCorr = new Double_t[nBinEtaCorr+1];
  for (Int_t i = 0; i<nBinEtaCorr+1; ++i) {
    binLimEtaCorr[i] = (Double_t) etaMin+i*(etaMax*2.)/nBinEtaCorr;
  } 

  // Data to be corrected
  // ...event level    
  
  fV0Ampl = new TH1F("fV0Ampl","",500,0.,30000);
  fOutput->Add(fV0Ampl);

  fHistSPDRAWMultvsZ = new TH2F("fHistSPDRAWMultvsZ", "",nBinMultCorr,binLimMultCorr,nBinVtx,-MaxVtx,MaxVtx);
  fHistSPDRAWMultvsZ->GetXaxis()->SetTitle("Tracklet multiplicity");
  fHistSPDRAWMultvsZ->GetYaxis()->SetTitle("z_{SPDvtx} [cm]");
  fOutput->Add(fHistSPDRAWMultvsZ); 

  fHistSPDRAWMultvsZTriggCentrEvts = new TH2F("fHistSPDRAWMultvsZTriggCentrEvts", "",nBinMultCorr,binLimMultCorr,nBinVtx,-MaxVtx,MaxVtx);
  fHistSPDRAWMultvsZTriggCentrEvts->GetXaxis()->SetTitle("Tracklet multiplicity");
  fHistSPDRAWMultvsZTriggCentrEvts->GetYaxis()->SetTitle("z_{SPDvtx} [cm]");
  fOutput->Add(fHistSPDRAWMultvsZTriggCentrEvts);

  fHistSPDRAWMultvsZCentrEvts = new TH2F("fHistSPDRAWMultvsZCentrEvts", "",nBinMultCorr,binLimMultCorr,nBinVtx,-MaxVtx,MaxVtx);
  fHistSPDRAWMultvsZCentrEvts->GetXaxis()->SetTitle("Tracklet multiplicity");
  fHistSPDRAWMultvsZCentrEvts->GetYaxis()->SetTitle("z_{SPDvtx} [cm]");
  fOutput->Add(fHistSPDRAWMultvsZCentrEvts);

  // ...track level
  fHistSPDRAWEtavsZ = new TH2F("fHistSPDRAWEtavsZ", "Tracklet pseudorapidity distribution", nBinEtaCorr,binLimEtaCorr,nBinVtx,-MaxVtx,MaxVtx);
  fHistSPDRAWEtavsZ->GetXaxis()->SetTitle("Pseudorapidity #eta");
  fHistSPDRAWEtavsZ->GetYaxis()->SetTitle("z_{SPDvtx} [cm]");
  fOutput->Add(fHistSPDRAWEtavsZ);
  
  fHistSPDmultEtacut = new TH1F("fHistSPDmultEtacut", "Tracklet multiplicity distribution",nBinMultCorr,binLimMultCorr);
  fHistSPDmultEtacut->GetXaxis()->SetTitle("Tracklet multiplicity (|#eta|<1.4)");
  fHistSPDmultEtacut->GetYaxis()->SetTitle("Entries");
  fOutput->Add(fHistSPDmultEtacut);

  fHistSPDmult = new TH1F("fHistSPDmult", "Tracklet multiplicity distribution", nBinMultCorr,binLimMultCorr);
  fHistSPDmult->GetXaxis()->SetTitle("Tracklet multiplicity");
  fHistSPDmult->GetYaxis()->SetTitle("Entries");
  fOutput->Add(fHistSPDmult);

  fHistSPDmultcl1 = new TH1F("fHistSPDmultcl1", "Inner layer cluster multiplicity", nBinMultCorr,binLimMultCorr);
  fHistSPDmultcl1->GetXaxis()->SetTitle("Inner layer cluster multiplicity");
  fHistSPDmultcl1->GetYaxis()->SetTitle("Entries");
  fOutput->Add(fHistSPDmultcl1);

  fHistSPDmultcl2 = new TH1F("fHistSPDmultcl2", "Outer layer cluster multiplicity", nBinMultCorr,binLimMultCorr);
  fHistSPDmultcl2->GetXaxis()->SetTitle("Outer layer cluster multiplicity");
  fHistSPDmultcl2->GetYaxis()->SetTitle("Entries");
  fOutput->Add(fHistSPDmultcl2);

  fHistSPDmultcl1vscl2 = new TH2F("fHistSPDmultcl1vscl2", "Inner layer cluster vs outer multiplicity", nBinMultCorr,binLimMultCorr, nBinMultCorr,binLimMultCorr);
  fHistSPDmultcl1vscl2->GetXaxis()->SetTitle("Inner layer cluster multiplicity");
  fHistSPDmultcl1vscl2->GetYaxis()->SetTitle("Outer layer cluster multiplicity");
  fOutput->Add(fHistSPDmultcl1vscl2);

  fHistSPDmultvscl1 = new TH2F("fHistSPDmultvscl1", "Tracklet vs inner layer cluster multiplicity", nBinMultCorr,binLimMultCorr, nBinMultCorr,binLimMultCorr);
  fHistSPDmultvscl1->GetXaxis()->SetTitle("Inner layer cluster multiplicity");
  fHistSPDmultvscl1->GetYaxis()->SetTitle("Tracklet multiplicity");
  fOutput->Add(fHistSPDmultvscl1);

  fHistSPDmultvscl2 = new TH2F("fHistSPDmultvscl2", "Tracklet vs outer layer cluster multiplicity", nBinMultCorr,binLimMultCorr, nBinMultCorr,binLimMultCorr);
  fHistSPDmultvscl2->GetXaxis()->SetTitle("Outer layer cluster multiplicity");
  fHistSPDmultvscl2->GetYaxis()->SetTitle("Tracklet multiplicity");
  fOutput->Add(fHistSPDmultvscl2);

  fHistSPDphi = new TH1F("fHistSPDphi", "Tracklet #phi  distribution", 360, 0.,2*TMath::Pi());
  fHistSPDphi->GetXaxis()->SetTitle("#varphi [rad]");
  fHistSPDphi->GetYaxis()->SetTitle("Entries");
  fOutput->Add(fHistSPDphi);

  fHistSPDtheta = new TH1F("fHistSPDtheta", "Tracklet #theta  distribution", 180, 0.,TMath::Pi());
  fHistSPDtheta->GetXaxis()->SetTitle("#theta [rad]");
  fHistSPDtheta->GetYaxis()->SetTitle("Entries");
  fOutput->Add(fHistSPDtheta);

  fHistSPDdePhi= new TH1F("fHistSPDdePhi", "Tracklet #Delta#varphi  distribution",400,-0.1,.1);
  fHistSPDdePhi->GetXaxis()->SetTitle("#Delta#varphi [rad]");
  fHistSPDdePhi->GetYaxis()->SetTitle("Entries");
  fOutput->Add(fHistSPDdePhi);

  fHistSPDphivsSPDeta= new TH2F("fHistSPDphivsSPDeta", "Tracklets - #varphi vs #eta",120,-3.,3,360,0.,2*TMath::Pi());
  fHistSPDphivsSPDeta->GetXaxis()->SetTitle("Pseudorapidity #eta");
  fHistSPDphivsSPDeta->GetYaxis()->SetTitle("#varphi [rad]");
  fOutput->Add(fHistSPDphivsSPDeta);

  fHistSPDdeTheta= new TH1F("fHistSPDdeTheta", "Tracklet #Delta#theta distribution",100,-0.05,.05);
  fHistSPDdeTheta->GetXaxis()->SetTitle("#Delta#theta [rad]");
  fHistSPDdeTheta->GetYaxis()->SetTitle("Entries");
  fOutput->Add(fHistSPDdeTheta);

  fHistSPDvtx = new TH1F("fHistSPDvtx", "SPD vertex distribution",nBinVtx,-MaxVtx,MaxVtx);
  fHistSPDvtx->GetXaxis()->SetTitle("z_{SPDvtx} [cm]");
  fHistSPDvtx->GetYaxis()->SetTitle("Entries");
  fOutput->Add(fHistSPDvtx);

  fHistSPDvtxAnalysis = new TH1F("fHistSPDvtxAnalysis", "SPD vertex distribution: events selected for the analysis",nBinVtx,-MaxVtx,MaxVtx);
  fHistSPDvtxAnalysis->GetXaxis()->SetTitle("z_{SPDvtx} [cm]");
  fHistSPDvtxAnalysis->GetYaxis()->SetTitle("Entries");
  fOutput->Add(fHistSPDvtxAnalysis);

  fHistSPDdePhideTheta= new TH2F("fHistSPDdePhideTheta", "Tracklet #Delta#varphi  distribution",2000,-1.,1.,1000,-0.25,.25);
  fHistSPDdePhideTheta->GetXaxis()->SetTitle("#Delta#varphi [rad]");
  fHistSPDdePhideTheta->GetYaxis()->SetTitle("#Delta#theta [rad]");
  fOutput->Add(fHistSPDdePhideTheta);

  fHistSPDphicl1 = new TH1F("fHistSPDphicl1", "Tracklet #phi  distribution", 360, 0.,2*TMath::Pi());
  fHistSPDphicl1->GetXaxis()->SetTitle("#varphi [rad]");
  fHistSPDphicl1->GetYaxis()->SetTitle("Entries");
  fOutput->Add(fHistSPDphicl1);

  fHistSPDphicl2 = new TH1F("fHistSPDphicl2", "Tracklet #phi  distribution", 360, 0.,2*TMath::Pi());
  fHistSPDphicl2->GetXaxis()->SetTitle("#varphi [rad]");
  fHistSPDphicl2->GetYaxis()->SetTitle("Entries");
  fOutput->Add(fHistSPDphicl2);


  if (fUseMC) {

    // Track level correction histograms 
    fHistBkgCorrDen = new TH2F("fHistBkgCorrDen","",nBinEtaCorr,binLimEtaCorr,nBinVtx,-MaxVtx,MaxVtx);
    fOutput->Add(fHistBkgCorrDen);
   
    fHistReconstructedProtons = new TH2F("fHistReconstructedProtons","",nBinEtaCorr,binLimEtaCorr,nBinVtx,-MaxVtx,MaxVtx);
    fOutput->Add(fHistReconstructedProtons);
    fHistReconstructedKaons = new TH2F("fHistReconstructedKaons","",nBinEtaCorr,binLimEtaCorr,nBinVtx,-MaxVtx,MaxVtx);
    fOutput->Add(fHistReconstructedKaons);
    fHistReconstructedPions = new TH2F("fHistReconstructedPions","",nBinEtaCorr,binLimEtaCorr,nBinVtx,-MaxVtx,MaxVtx);
    fOutput->Add(fHistReconstructedPions);
    fHistReconstructedOthers = new TH2F("fHistReconstructedOthers","",nBinEtaCorr,binLimEtaCorr,nBinVtx,-MaxVtx,MaxVtx);
    fOutput->Add(fHistReconstructedOthers);
 
    fHistBkgCorrDenPrimGen = new TH2F("fHistBkgCorrDenPrimGen","",nBinEtaCorr,binLimEtaCorr,nBinVtx,-MaxVtx,MaxVtx);
    fOutput->Add(fHistBkgCorrDenPrimGen);

    fHistBkgCombLabels = new TH2F("fHistBkgCombLabels","",nBinEtaCorr,binLimEtaCorr,nBinVtx,-MaxVtx,MaxVtx);
    fOutput->Add(fHistBkgCombLabels);

    if (fTR) {
      fHistBkgCorrNum = new TH2F("fHistBkgCorrNum","",nBinEtaCorr,binLimEtaCorr,nBinVtx,-MaxVtx,MaxVtx);
      fOutput->Add(fHistBkgCorrNum);
 
      fHistAlgEffNum = new TH2F("fHistAlgEffNum","",nBinEtaCorr,binLimEtaCorr,nBinVtx,-MaxVtx,MaxVtx);
      fOutput->Add(fHistAlgEffNum);  

      fHistNonDetectableCorrDen = new TH2F("fHistNonDetectableCorrDen","",nBinEtaCorr,binLimEtaCorr,nBinVtx,-MaxVtx,MaxVtx);
      fOutput->Add(fHistNonDetectableCorrDen);

    }

    fHistNonDetectableCorrNum = new TH2F("fHistNonDetectableCorrNum","",nBinEtaCorr,binLimEtaCorr,nBinVtx,-MaxVtx,MaxVtx);
    fOutput->Add(fHistNonDetectableCorrNum);

    fHistProtons = new TH2F("fHistProtons","",nBinEtaCorr,binLimEtaCorr,nBinVtx,-MaxVtx,MaxVtx);
    fOutput->Add(fHistProtons);
    fHistKaons = new TH2F("fHistKaons","",nBinEtaCorr,binLimEtaCorr,nBinVtx,-MaxVtx,MaxVtx);
    fOutput->Add(fHistKaons);
    fHistPions = new TH2F("fHistPions","",nBinEtaCorr,binLimEtaCorr,nBinVtx,-MaxVtx,MaxVtx);
    fOutput->Add(fHistPions);
    fHistOthers = new TH2F("fHistOthers","",nBinEtaCorr,binLimEtaCorr,nBinVtx,-MaxVtx,MaxVtx);
    fOutput->Add(fHistOthers);
    fHistReconstructedSec = new TH2F("fHistReconstructedSec","",nBinEtaCorr,binLimEtaCorr,nBinVtx,-MaxVtx,MaxVtx);
    fOutput->Add(fHistReconstructedSec); 

 
    fHistAllPrimaries = new TH2F("fHistAllPrimaries","",nBinEtaCorr,binLimEtaCorr,nBinVtx,-MaxVtx,MaxVtx);
    fOutput->Add(fHistAllPrimaries);

    fHistTrackCentrEvts = new TH2F("fHistTrackCentrEvts","",nBinEtaCorr,binLimEtaCorr,nBinVtx,-MaxVtx,MaxVtx);
    fOutput->Add(fHistTrackCentrEvts);

    fHistTrackTrigCentrEvts = new TH2F("fHistTrackTrigCentrEvts","",nBinEtaCorr,binLimEtaCorr,nBinVtx,-MaxVtx,MaxVtx);
    fOutput->Add(fHistTrackTrigCentrEvts);


    // Event level correction histograms  
    fHistAllEvts = new TH2F("fHistAllEvts","",nBinMultCorr,binLimMultCorr,nBinVtx,-MaxVtx,MaxVtx);
    fOutput->Add(fHistAllEvts);

    fHistCentrEvts = new TH2F("fHistCentrEvts","",nBinMultCorr,binLimMultCorr,nBinVtx,-MaxVtx,MaxVtx);
    fOutput->Add(fHistCentrEvts);

    fHistTrigCentrEvts = new TH2F("fHistTrigCentrEvts","",nBinMultCorr,binLimMultCorr,nBinVtx,-MaxVtx,MaxVtx);
    fOutput->Add(fHistTrigCentrEvts);

    fHistSelEvts = new TH2F("fHistSelEvts","",nBinMultCorr,binLimMultCorr,nBinVtx,-MaxVtx,MaxVtx);
    fOutput->Add(fHistSelEvts);


    // MC distributions
    fHistMCmultEtacut = new TH1F("fHistMCmultEtacut","Generated multiplicity",nBinMultCorr,binLimMultCorr);
    fHistMCmultEtacut->GetXaxis()->SetTitle("Generated multiplicity |#eta|<1.4");
    fHistMCmultEtacut->GetYaxis()->SetTitle("Entries");
    fOutput->Add(fHistMCmultEtacut);

    fHistMCmultEtacutvsSPDmultEtacut = new TH2F("fHistMCmultEtacutvsSPDmultEtacut","",nBinMultCorr,binLimMultCorr,nBinMultCorr,binLimMultCorr);
    fHistMCmultEtacutvsSPDmultEtacut->GetXaxis()->SetTitle("Generated multiplicity |#eta|<1.4");
    fHistMCmultEtacutvsSPDmultEtacut->GetYaxis()->SetTitle("Tracklet multiplicity |#eta|<1.4");
    fOutput->Add(fHistMCmultEtacutvsSPDmultEtacut);

    fHistMCmultEtacutvsSPDmultcl1 = new TH2F("fHistMCmultEtacutvsSPDmultcl1","",nBinMultCorr,binLimMultCorr,nBinMultCorr,binLimMultCorr);
    fHistMCmultEtacutvsSPDmultcl1->GetXaxis()->SetTitle("Generated multiplicity |#eta|<1.4");
    fHistMCmultEtacutvsSPDmultcl1->GetYaxis()->SetTitle("Cluster inner layer multiplicity");
    fOutput->Add(fHistMCmultEtacutvsSPDmultcl1);

    fHistMCmultEtacutvsSPDmultcl2 = new TH2F("fHistMCmultEtacutvsSPDmultcl2","",nBinMultCorr,binLimMultCorr,nBinMultCorr,binLimMultCorr);
    fHistMCmultEtacutvsSPDmultcl2->GetXaxis()->SetTitle("Generated multiplicity |#eta|<1.4");
    fHistMCmultEtacutvsSPDmultcl2->GetYaxis()->SetTitle("Cluster outer layer multiplicity");
    fOutput->Add(fHistMCmultEtacutvsSPDmultcl2);


    fHistMCvtxx = new TH1F("fHistMCvtxx", "MC vertex distribution - x",100,-.5,.5);
    fOutput->Add(fHistMCvtxx);
    fHistMCvtxy = new TH1F("fHistMCvtxy", "MC vertex distribution - y",100,-.5,.5);
    fOutput->Add(fHistMCvtxy);
    fHistMCvtxz = new TH1F("fHistMCvtxz", "MC vertex distribution - z",500,-50.,50.);
    fOutput->Add(fHistMCvtxz);

    fHistRecvsGenImpactPar= new TH2F("fHistRecvsGenImpactPar","",20,0.,20.,20,0.,20.);
    fHistRecvsGenImpactPar->GetXaxis()->SetTitle("b_{gen} [fm]");
    fHistRecvsGenImpactPar->GetYaxis()->SetTitle("b_{rec} [fm]");
    fOutput->Add(fHistRecvsGenImpactPar);

    fHistMCNpart = new TH1F("fHistMCNpart","Number of participants",450,0,450);
    fHistMCNpart->GetXaxis()->SetTitle("N_{part}");
    fHistMCNpart->GetYaxis()->SetTitle("Entries"); 
    fOutput->Add(fHistMCNpart);
 
    fHistdPhidThetaPP = new TH2F("fHistdPhidThetaPP","",2000,-1.,1.,1000,-0.25,.25);
    fOutput->Add(fHistdPhidThetaPP);
    fHistdPhidThetaSS = new TH2F("fHistdPhidThetaSS","",2000,-1.,1.,1000,-0.25,.25);
    fOutput->Add(fHistdPhidThetaSS);
    fHistdPhidThetaComb = new TH2F("fHistdPhidThetaComb","",2000,-1.,1.,1000,-0.25,.25);
    fOutput->Add(fHistdPhidThetaComb);

    fHistDeVtx = new TH2F("fHistDeVtx","",80,-20.,20.,5000,-0.5,0.5);
    fHistDeVtx->GetXaxis()->SetTitle("z_{MCvtx} [cm]");
    fHistDeVtx->GetYaxis()->SetTitle("z_{MCvtx}-z_{SPDvtx} [cm]");
    fOutput->Add(fHistDeVtx);

  }
  PostData(1, fOutput);
//  Printf("Output objects created...");
}

//________________________________________________________________________
void AliAnalysisTaskSPDdNdEta::UserExec(Option_t *) 
{
  // Main loop

  // Called for each event
//  Printf("User exec..........");

  AliESDInputHandlerRP *hand = dynamic_cast<AliESDInputHandlerRP*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
  if (!hand) { printf("No RP handler\n"); return; }

  fmyESD = dynamic_cast<AliESDEvent*>(InputEvent()); 
  if (!fmyESD) {
    Printf("ERROR: fESD not available");
    return;
  }
    
  AliMagF* field = (AliMagF*)TGeoGlobalMagField::Instance()->GetField();
  if (!field && !fmyESD->InitMagneticField()) {Printf("Failed to initialize the B field\n");return;}


  // Trigger selection
  Bool_t eventTriggered = kTRUE;
  static AliTriggerAnalysis* triggerAnalysis = 0; 
  if (eventTriggered) // applying an offline trigger
    eventTriggered = triggerAnalysis->IsTriggerFired(fmyESD, fTrigger);
  if (!eventTriggered)
    Printf("No trigger");


  // Centrality selection 
  Bool_t eventInCentralityBin = kFALSE;
/*  AliESDCentrality *centrality = fmyESD->GetCentrality();
  if (fCentrEst=="") eventInCentralityBin = kTRUE;
  else {
    if(!centrality) {
      AliError("Centrality object not available"); 
    }  else {
      if (centrality->IsEventInCentralityClass(fCentrLowLim,fCentrUpLim,fCentrEst.Data())) eventInCentralityBin = kTRUE;
    }
  }
*/
  if (fCentrEst) {
    AliESDVZERO* esdV0 = fmyESD->GetVZEROData();
    Float_t multV0A=esdV0->GetMTotV0A();
    Float_t multV0C=esdV0->GetMTotV0C();
    fV0Ampl->Fill(multV0A+multV0C);
    if (multV0A+multV0C>=fMinMultV0) eventInCentralityBin = kTRUE; 
  } else if (!fCentrEst) {
    eventInCentralityBin = kTRUE;
  }

  const AliMultiplicity* multESD = fmyESD->GetMultiplicity();

  // ESD vertex
  Bool_t eventWithVertex = kFALSE;
  const AliESDVertex* vtxESD = fmyESD->GetVertex();
  const AliESDVertex* vtxTPC = fmyESD->GetPrimaryVertexTPC();
  Double_t esdvtx[3];
  vtxESD->GetXYZ(esdvtx);
  Int_t nContrib = vtxESD->GetNContributors();
  Int_t nContribTPC = vtxTPC->GetNContributors(); 
  if (nContrib>0&&nContribTPC>0) {
    if (vtxESD->GetDispersion()<0.04) 
      if (vtxESD->GetZRes()<0.25) 
        if (nContribTPC>(-10.+0.25*multESD->GetNumberOfITSClusters(0))) {
          fHistSPDvtx->Fill(esdvtx[2]);
          if (TMath::Abs(esdvtx[2])<fVtxLim)  
            eventWithVertex = kTRUE;   
        }
  } 

  // Reconstructing or loading tracklets...
  Int_t multSPD = multESD->GetNumberOfTracklets();
  Int_t nSingleCl1 = multESD->GetNumberOfSingleClusters();
  Int_t multSPDcl1 = nSingleCl1 + multSPD;  
  Int_t multSPDEtacut = 0;
  Int_t multSPDAna = 0;

  Int_t multSPDcl2 = multESD->GetNumberOfITSClusters(1);

  Float_t trackletCoord[multSPDcl1][5];
  Float_t trackletLab[multSPDcl1][2];

  Bool_t eventSelected = kFALSE;
  // Event selection: in centrality bin, triggered with vertex
  if (eventTriggered&&eventWithVertex&&eventInCentralityBin&&multSPDcl2>fMinClMultLay2&&multSPDcl2<fMaxClMultLay2) {
    eventSelected = kTRUE; 
    fHistSPDmultcl1->Fill(multSPDcl1);
    fHistSPDmultcl2->Fill(multSPDcl2);
    fHistSPDmultcl1vscl2->Fill(multSPDcl1,multSPDcl2);
    fHistSPDmultvscl1->Fill(multSPDcl1,multSPD);
    fHistSPDmultvscl2->Fill(multSPDcl2,multSPD);
    if (fRecoTracklets) {
      // Load ITS rec points tree
      TTree *itsClusterTree = hand->GetTreeR("ITS");
      if (!itsClusterTree) {
        AliError(" Invalid ITS cluster tree !\n");
        return;
      }
      float vtxf[3] = {static_cast<float>(vtxESD->GetX()),static_cast<float>(vtxESD->GetY()),static_cast<float>(vtxESD->GetZ())};

      fMultReco->SetPhiWindow(fPhiWindow);
      fMultReco->SetThetaWindow(fThetaWindow); 
      fMultReco->SetPhiShift(fPhiShift); 
      fMultReco->SetRemoveClustersFromOverlaps(fRemoveClustersFromOverlaps);
      fMultReco->SetPhiOverlapCut(fPhiOverlapCut);
      fMultReco->SetZetaOverlapCut(fZetaOverlapCut); 
      fMultReco->SetPhiRotationAngle(fPhiRotationAngle);
      fMultReco->SetHistOn(kFALSE); 

      fMultReco->Reconstruct(itsClusterTree,vtxf,vtxf);
//      Printf("cl 1 from alg %d",fMultReco->GetNClustersLayer1());
//      Printf("cl 2 from alg %d",fMultReco->GetNClustersLayer2());
      multSPD = fMultReco->GetNTracklets(); 
//      Printf("tracklets found...%d",multSPD);
      nSingleCl1 = fMultReco->GetNSingleClusters();
//      Printf("singl found...%d",nSingleCl1);
      for (Int_t itr = 0; itr<multSPD;++itr) {
        trackletCoord[itr][3] = fMultReco->GetTracklet(itr)[0]; //theta
        trackletCoord[itr][2] = fMultReco->GetTracklet(itr)[1]; //phi
        trackletCoord[itr][1] = fMultReco->GetTracklet(itr)[3]; //deTheta
        trackletCoord[itr][0] = fMultReco->GetTracklet(itr)[2]; //dephi
        trackletCoord[itr][4] = -TMath::Log(TMath::Tan(trackletCoord[itr][3]/2.)); //eta
        trackletLab[itr][0] = static_cast<Int_t>(fMultReco->GetTracklet(itr)[4]);  //label lay1
        trackletLab[itr][1] = static_cast<Int_t>(fMultReco->GetTracklet(itr)[5]);  //label lay2
      }
      for (Int_t icl1 = 0; icl1<multSPDcl1;++icl1) {
        fHistSPDphicl1->Fill(fMultReco->GetClusterLayer1(icl1)[1]); 
      }
      for (Int_t icl2 = 0; icl2<multSPDcl2; ++icl2) {
        fHistSPDphicl2->Fill(fMultReco->GetClusterLayer2(icl2)[1]);          
      }

    } else {
      // set variables from ESD
      for (Int_t itr = 0; itr<multSPD;++itr) {
        trackletCoord[itr][3] = multESD->GetTheta(itr);       //theta
        trackletCoord[itr][2] = multESD->GetPhi(itr);         //phi
        trackletCoord[itr][1] = multESD->GetDeltaTheta(itr);  //deTheta
        trackletCoord[itr][0] = multESD->GetDeltaPhi(itr);    //dePhi
        trackletCoord[itr][4] = multESD->GetEta(itr);         //eta 
        trackletLab[itr][0] = multESD->GetLabel(itr,0);       //label lay1
        trackletLab[itr][1] = multESD->GetLabel(itr,1);       //label lay2
      }
    }
//    Printf("tracklets in ESD...%d",multESD->GetNumberOfTracklets());

    for (Int_t itracklet=0; itracklet<multSPD; ++itracklet) {
      if (TMath::Abs(trackletCoord[itracklet][0])<fPhiWindowAna) { // select tracklets with tighter cuts
        fHistSPDRAWEtavsZ->Fill(trackletCoord[itracklet][4],esdvtx[2]);
        fHistSPDphi->Fill(trackletCoord[itracklet][2]);
        fHistSPDtheta->Fill(trackletCoord[itracklet][3]);
        fHistSPDdePhi->Fill(trackletCoord[itracklet][0]);
        fHistSPDdeTheta->Fill(trackletCoord[itracklet][1]);
 
        fHistSPDphivsSPDeta->Fill(trackletCoord[itracklet][4],trackletCoord[itracklet][2]);
        multSPDAna++;
        // Calculate multiplicity in etacut
        if (TMath::Abs(trackletCoord[itracklet][4])<1.4) multSPDEtacut++;
      }
      // for combinatorial background normalization
      fHistSPDdePhideTheta->Fill(trackletCoord[itracklet][0], trackletCoord[itracklet][1]);

    }
    if (multSPDAna!=0) fHistSPDvtxAnalysis->Fill(esdvtx[2]);
    fHistSPDmultEtacut->Fill(multSPDEtacut);
    fHistSPDmult->Fill(multSPDAna); 

    fHistSPDRAWMultvsZ->Fill(multSPDAna,esdvtx[2]);

  } // End selected events

  if (eventInCentralityBin) {
    fHistSPDRAWMultvsZCentrEvts->Fill(multSPDAna,esdvtx[2]);  
    if (eventTriggered) fHistSPDRAWMultvsZTriggCentrEvts->Fill(multSPDAna,esdvtx[2]);
  }

  if (fUseMC) {

    if (!fMCEvent) {
      AliError("No MC info found");
      return;
    } 
    AliMCEventHandler* eventHandler = dynamic_cast<AliMCEventHandler*> (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
    if (!eventHandler) {
      Printf("ERROR: Could not retrieve MC event handler");
      return;
    }

    AliStack* stack = fMCEvent->Stack();
    if (!stack) {
      AliDebug(AliLog::kError, "Stack not available");
      return;
    }

    Float_t impactParameter = 0.;
    Int_t npart = 0;

    AliGenHijingEventHeader* hijingHeader = dynamic_cast<AliGenHijingEventHeader*>(fMCEvent->Header()->GenEventHeader());
    AliGenDPMjetEventHeader* dpmHeader = dynamic_cast<AliGenDPMjetEventHeader*>(fMCEvent->Header()->GenEventHeader());

    if (hijingHeader) impactParameter = hijingHeader->ImpactParameter();
    else if (dpmHeader) impactParameter = dpmHeader->ImpactParameter();

    Bool_t IsEventInMCCentralityBin = kFALSE;
    switch (fMCCentralityBin) {

      case 1: if (impactParameter<3) IsEventInMCCentralityBin = kTRUE;
      break;
      case 2: if (impactParameter>3&&impactParameter<6) IsEventInMCCentralityBin = kTRUE;
      break;
      case 3: if (impactParameter>6&&impactParameter<9) IsEventInMCCentralityBin = kTRUE;
      break;
      case 4: if (impactParameter>9&&impactParameter<12) IsEventInMCCentralityBin = kTRUE;
      break;
      case 5: if (impactParameter>12&&impactParameter<15) IsEventInMCCentralityBin = kTRUE;
      break;
      case 6: if (impactParameter>15) IsEventInMCCentralityBin = kTRUE;
      break;
      case 7:  IsEventInMCCentralityBin = kTRUE;
      break;

    }

    if (IsEventInMCCentralityBin) {
      // MC vertex
      TArrayF vtxMC(3);
      fMCEvent->GenEventHeader()->PrimaryVertex(vtxMC);
      fHistMCvtxx->Fill(vtxMC[0]);   
      fHistMCvtxy->Fill(vtxMC[1]);
      fHistMCvtxz->Fill(vtxMC[2]);

//      Printf("Impact parameter gen: %f", impactParameter);
       if (hijingHeader) npart = hijingHeader->TargetParticipants()+hijingHeader->ProjectileParticipants();
       else if (dpmHeader)npart = dpmHeader->TargetParticipants()+dpmHeader->ProjectileParticipants();

      //Rec centrality vs gen centrality
      AliESDZDC *zdcRec = fmyESD->GetESDZDC();
      Double_t impactParameterZDC = zdcRec->GetImpactParameter();
//      Printf("Impact parameter rec: %f", impactParameterZDC);

      fHistRecvsGenImpactPar->Fill(impactParameter,impactParameterZDC);
      fHistMCNpart->Fill(npart);
  
      // Tracks from MC
      Int_t  multMCCharged = 0;
      Int_t  multMCChargedEtacut = 0;
//      Int_t  nMCPart = stack->GetNprimary();
      Int_t  nMCPart = stack->GetNtrack();  // decay products of D and B mesons are also primaries and produced in HIJING during transport
      Float_t* etagen = new Float_t[nMCPart];  
      Int_t* stackIndexOfPrimaryParts = new Int_t[nMCPart];
      Bool_t* reconstructedPrimaryPart = new Bool_t[nMCPart];
      Bool_t* detectedPrimaryPartLay1 = new Bool_t[nMCPart];
      Bool_t* detectedPrimaryPartLay2 = new Bool_t[nMCPart];
      Bool_t* detectablePrimaryPart = new Bool_t[nMCPart];

      TTree* tRefTree;  
      if (fTR) {
        tRefTree = eventHandler->TreeTR(); 
        fMCEvent->ConnectTreeTR(tRefTree); 
      }

      // Loop over MC particles
      for (Int_t imc=0; imc<nMCPart; imc++) {
        AliMCParticle *mcpart  = (AliMCParticle*)fMCEvent->GetTrack(imc);

        Bool_t isPrimary = stack->IsPhysicalPrimary(imc);
        if (!isPrimary)            continue;
        if (mcpart->Charge() == 0) continue;
        Float_t theta = mcpart->Theta();
        if (theta==0 || theta==TMath::Pi())    continue;
        Float_t eta = mcpart->Eta();
//        Float_t pt = mcpart->Pt();
        etagen[multMCCharged] = eta; 
        stackIndexOfPrimaryParts[multMCCharged] = imc;

        reconstructedPrimaryPart[multMCCharged]=kFALSE;
        detectedPrimaryPartLay1[multMCCharged]=kFALSE;
        detectedPrimaryPartLay2[multMCCharged]=kFALSE;
        detectablePrimaryPart[multMCCharged]=kFALSE;

        if (fTR) {
          Int_t nref = mcpart->GetNumberOfTrackReferences();
          if (nref==0) {
            detectablePrimaryPart[multMCCharged]= kTRUE;
          } else if (nref>0) {
            // Check if the primary is detectable 
            detectablePrimaryPart[multMCCharged] = IsDetectablePrimary(nref,mcpart);
            // Check if the primary is detected (if SPD 100% efficient) 
            if (detectablePrimaryPart[multMCCharged]) {
              detectedPrimaryPartLay1[multMCCharged] = IsDetectedPrimary(nref,mcpart,0);
              detectedPrimaryPartLay2[multMCCharged] = IsDetectedPrimary(nref,mcpart,1);
            }
          }  
        }
        if (eventSelected&&fPartSpecies) {
          if (TMath::Abs(mcpart->PdgCode())==2212) fHistProtons->Fill(etagen[multMCCharged],vtxMC[2]);
          else if (TMath::Abs(mcpart->PdgCode())==321) fHistKaons->Fill(etagen[multMCCharged],vtxMC[2]);
          else if (TMath::Abs(mcpart->PdgCode())==211) fHistPions->Fill(etagen[multMCCharged],vtxMC[2]);
          else fHistOthers->Fill(etagen[multMCCharged],vtxMC[2]);  //includes leptons pdg->11,13
        }
        multMCCharged++;
        if (TMath::Abs(eta)<1.4) multMCChargedEtacut++;
      } // end of MC particle loop

      fHistMCmultEtacut->Fill(multMCChargedEtacut);

      // Event selection: in centrality bin, triggered with vertex 
      if (eventTriggered&&eventWithVertex&&eventInCentralityBin&&multSPDcl2>fMinClMultLay2&&multSPDcl2<fMaxClMultLay2) {
    
        fHistDeVtx->Fill(vtxMC[2],vtxMC[2]-esdvtx[2]);      

        for (Int_t itracklet=0; itracklet<multSPD; ++itracklet) {
          if (TMath::Abs(trackletCoord[itracklet][0])<fPhiWindowAna) 
            fHistBkgCorrDen->Fill(trackletCoord[itracklet][4],esdvtx[2]);

          if (trackletLab[itracklet][0]==trackletLab[itracklet][1]) {
            Bool_t trakletByPrim = kFALSE; 
            for (Int_t imc=0; imc<multMCCharged; imc++) {
              if (trackletLab[itracklet][0]==stackIndexOfPrimaryParts[imc]) {
                fHistdPhidThetaPP->Fill(trackletCoord[itracklet][0],trackletCoord[itracklet][1]);
                if (TMath::Abs(trackletCoord[itracklet][0])<fPhiWindowAna) {
                  fHistBkgCorrDenPrimGen->Fill(etagen[imc],vtxMC[2]);
                  if (fPartSpecies) {
                    if (TMath::Abs(((AliMCParticle*)fMCEvent->GetTrack(stackIndexOfPrimaryParts[imc]))->PdgCode())==2212) 
                      fHistReconstructedProtons->Fill(trackletCoord[itracklet][4],esdvtx[2]);
                    else if (TMath::Abs(((AliMCParticle*)fMCEvent->GetTrack(stackIndexOfPrimaryParts[imc]))->PdgCode())==321) 
                      fHistReconstructedKaons->Fill(trackletCoord[itracklet][4],esdvtx[2]);
                    else if (TMath::Abs(((AliMCParticle*)fMCEvent->GetTrack(stackIndexOfPrimaryParts[imc]))->PdgCode())==211) 
                      fHistReconstructedPions->Fill(trackletCoord[itracklet][4],esdvtx[2]);
                    else fHistReconstructedOthers->Fill(trackletCoord[itracklet][4],esdvtx[2]);
                  }     
                }
                trakletByPrim = kTRUE; 
                if (detectedPrimaryPartLay1[imc]&&detectedPrimaryPartLay2[imc]) {
                  reconstructedPrimaryPart[imc]=kTRUE; // tracklet by prim and tr (=rp) on both layers 
                }
                break;
              }  
            }
            if (!trakletByPrim) {
              fHistdPhidThetaSS->Fill(trackletCoord[itracklet][0],trackletCoord[itracklet][1]);
              if (TMath::Abs(trackletCoord[itracklet][0])<fPhiWindowAna) {

                fHistBkgCorrDenPrimGen->Fill(trackletCoord[itracklet][4],esdvtx[2]);
                if (fPartSpecies) {
                  Int_t motherlab = ((AliMCParticle*)fMCEvent->GetTrack((Int_t)trackletLab[itracklet][0]))->GetMother(); 
                  if (motherlab>-1) { 
                    if (TMath::Abs(fMCEvent->GetTrack(motherlab)->PdgCode())==2212) fHistReconstructedProtons->Fill(trackletCoord[itracklet][4],esdvtx[2]);
                    else if (TMath::Abs(fMCEvent->GetTrack(motherlab)->PdgCode())==321) fHistReconstructedKaons->Fill(trackletCoord[itracklet][4],esdvtx[2]);
                    else if (TMath::Abs(fMCEvent->GetTrack(motherlab)->PdgCode())==211) fHistReconstructedPions->Fill(trackletCoord[itracklet][4],esdvtx[2]);
                    else fHistReconstructedOthers->Fill(trackletCoord[itracklet][4],esdvtx[2]);
                  } else fHistReconstructedSec->Fill(trackletCoord[itracklet][4],esdvtx[2]);
                }
              }
            }
          } else {
            fHistdPhidThetaComb->Fill(trackletCoord[itracklet][0],trackletCoord[itracklet][1]);
            if (TMath::Abs(trackletCoord[itracklet][0])<fPhiWindowAna) {
              fHistBkgCorrDenPrimGen->Fill(trackletCoord[itracklet][4],esdvtx[2]);
              fHistBkgCombLabels->Fill(trackletCoord[itracklet][4],esdvtx[2]); 
            }
          }
        } // end loop tracklets

        for (Int_t imc=0; imc<multMCCharged; imc++) {
          if (fTR) {
            if (reconstructedPrimaryPart[imc]) fHistBkgCorrNum->Fill(etagen[imc],vtxMC[2]); // only for separate corrections
            if (detectedPrimaryPartLay1[imc]&&detectedPrimaryPartLay2[imc]) fHistAlgEffNum->Fill(etagen[imc],vtxMC[2]);
            if (detectablePrimaryPart[imc]) fHistNonDetectableCorrDen->Fill(etagen[imc],vtxMC[2]); 
          }
          fHistNonDetectableCorrNum->Fill(etagen[imc],vtxMC[2]);
        }

        fHistSelEvts->Fill(multSPDAna,vtxMC[2]);
      } // end of selected events

      fHistMCmultEtacutvsSPDmultEtacut->Fill(multMCChargedEtacut,multSPDEtacut);
      fHistMCmultEtacutvsSPDmultcl1->Fill(multMCChargedEtacut,multSPDcl1);
      fHistMCmultEtacutvsSPDmultcl2->Fill(multMCChargedEtacut,multSPDcl2);
      fHistAllEvts->Fill(multSPDAna,vtxMC[2]);

      if (eventInCentralityBin) {
        fHistCentrEvts->Fill(multSPDAna,vtxMC[2]);
        if (eventTriggered) {
          fHistTrigCentrEvts->Fill(multSPDAna,vtxMC[2]);
        }
      }

      for (Int_t imc=0; imc<multMCCharged; imc++) { 
        fHistAllPrimaries->Fill(etagen[imc],vtxMC[2]);
        if (eventInCentralityBin) {
          fHistTrackCentrEvts->Fill(etagen[imc],vtxMC[2]);
          if (eventTriggered) fHistTrackTrigCentrEvts->Fill(etagen[imc],vtxMC[2]); 
        }
      } 
    
      delete[] etagen;
      delete[] stackIndexOfPrimaryParts;
      delete[] reconstructedPrimaryPart;
      delete[] detectedPrimaryPartLay1;
      delete[] detectedPrimaryPartLay2;
      delete[] detectablePrimaryPart;
    }  
  }
  PostData(1, fOutput);
}      
//________________________________________________________________________
Bool_t AliAnalysisTaskSPDdNdEta::IsDetectedPrimary(Int_t nref, AliMCParticle* mcpart, Int_t Layer) {
  Double_t rMinLay1 = 3.4; //min rad for track ref first SPD layer 
  Double_t rMaxLay1 = 4.4; //max rad for track ref first SPD layer 
  Double_t rMinLay2 = 6.9; //min rad for track ref second SPD layer  
  Double_t rMaxLay2 = 7.9; //max rad for track ref second SPD layer 
  Double_t rmin = (Layer > 0 ? rMinLay2 : rMinLay1);
  Double_t rmax = (Layer > 0 ? rMaxLay2 : rMaxLay1);
  AliTrackReference *tref=0x0;

  for (Int_t iref=0;iref<nref;iref++) {
     tref = mcpart->GetTrackReference(iref);
   if (tref) {
       if (tref->R()>rmin&&tref->R()<rmax) {
         if (tref->DetectorId()==0) {
           return kTRUE;
         }
       }
     }
  }
  return kFALSE;
}
//________________________________________________________________________
Bool_t AliAnalysisTaskSPDdNdEta::IsDetectablePrimary(Int_t nref, AliMCParticle* mcpart) {

  Double_t rMinLay2 = 6.9; //min rad for track ref second SPD layer  
  Double_t rMaxLay2 = 7.9; //max rad for track ref second SPD layer 

  AliTrackReference *tref= mcpart->GetTrackReference(nref-1);
  if (tref->DetectorId()!=-1) {
    return kTRUE;
  } else { //last is -1 -> particle disappeared. Where?
    if (tref->R()>rMaxLay2) {
      return kTRUE;  
    } else if (tref->R()>=rMinLay2&&tref->R()<=rMaxLay2) { // this last tr is in lay 2
      for (Int_t iref=0;iref<nref;iref++) {  // look for other tr in lay 2
        tref = mcpart->GetTrackReference(iref);
        if (tref) 
          if (tref->R()>=rMinLay2&&tref->R()<=rMaxLay2) 
            if (tref->DetectorId()==0) return kTRUE; 
      } 
    } // else particle disappeared before lay2
  }
  return kFALSE; 
}
//________________________________________________________________________
void AliAnalysisTaskSPDdNdEta::Terminate(Option_t *) 
{
  Printf("Terminating...");
//  AliAnalysisTaskSE::Terminate();

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